]> git.ipfire.org Git - thirdparty/bootstrap.git/commitdiff
minor jQuery.hasclass removal (#28158)
authorJoshua Wilson <10873576+jwilson8767@users.noreply.github.com>
Mon, 11 Feb 2019 13:15:03 +0000 (08:15 -0500)
committerXhmikosR <xhmikosr@gmail.com>
Wed, 20 Feb 2019 20:05:45 +0000 (22:05 +0200)
js/src/modal.js
js/tests/unit/modal.js

index e2d61621d32efbc4ce96d58a05ac26d4c4ed9f15..69b77009d19ef857ab0cee1c329ab387fd4970d5 100644 (file)
@@ -245,7 +245,7 @@ class Modal {
     this._element.removeAttribute('aria-hidden')
     this._element.setAttribute('aria-modal', true)
 
-    if ($(this._dialog).hasClass(ClassName.SCROLLABLE)) {
+    if (this._dialog.classList.contains(ClassName.SCROLLABLE)) {
       this._dialog.querySelector(Selector.MODAL_BODY).scrollTop = 0
     } else {
       this._element.scrollTop = 0
index dacb1fb8d71071ef55cf6378468881f42cd0a69e..a9a3df838be02680471967eb617e0c97c8750d9c 100644 (file)
@@ -41,7 +41,7 @@ $(function () {
 
   QUnit.test('should throw explicit error on undefined method', function (assert) {
     assert.expect(1)
-    var $el = $('<div id="modal-test"/>')
+    var $el = $('<div id="modal-test"><div class="modal-dialog" /></div>')
     $el.bootstrapModal()
     try {
       $el.bootstrapModal('noMethod')
@@ -52,7 +52,7 @@ $(function () {
 
   QUnit.test('should return jquery collection containing the element', function (assert) {
     assert.expect(2)
-    var $el = $('<div id="modal-test"/>')
+    var $el = $('<div id="modal-test"><div class="modal-dialog" /></div>')
     var $modal = $el.bootstrapModal()
     assert.ok($modal instanceof $, 'returns jquery collection')
     assert.strictEqual($modal[0], $el[0], 'collection contains element')
@@ -67,7 +67,7 @@ $(function () {
     assert.expect(1)
     var done = assert.async()
 
-    $('<div id="modal-test"/>')
+    $('<div id="modal-test"><div class="modal-dialog" /></div>')
       .on('shown.bs.modal', function () {
         assert.notEqual($('#modal-test').length, 0, 'modal inserted into dom')
         done()
@@ -79,7 +79,7 @@ $(function () {
     assert.expect(1)
     var done = assert.async()
 
-    $('<div id="modal-test"/>')
+    $('<div id="modal-test"><div class="modal-dialog" /></div>')
       .on('show.bs.modal', function () {
         assert.ok(true, 'show event fired')
         done()
@@ -91,7 +91,7 @@ $(function () {
     assert.expect(1)
     var done = assert.async()
 
-    $('<div id="modal-test"/>')
+    $('<div id="modal-test"><div class="modal-dialog" /></div>')
       .on('show.bs.modal', function (e) {
         e.preventDefault()
         assert.ok(true, 'show event fired')
@@ -107,7 +107,7 @@ $(function () {
     assert.expect(3)
     var done = assert.async()
 
-    $('<div id="modal-test"/>')
+    $('<div id="modal-test"><div class="modal-dialog" /></div>')
       .on('shown.bs.modal', function () {
         assert.ok($('#modal-test').is(':visible'), 'modal visible')
         assert.notEqual($('#modal-test').length, 0, 'modal inserted into dom')
@@ -124,7 +124,7 @@ $(function () {
     assert.expect(3)
     var done = assert.async()
 
-    $('<div id="modal-test"/>')
+    $('<div id="modal-test"><div class="modal-dialog" /></div>')
       .on('shown.bs.modal', function () {
         assert.ok($('#modal-test').is(':visible'), 'modal visible')
         assert.notEqual($('#modal-test').length, 0, 'modal inserted into dom')
@@ -140,8 +140,7 @@ $(function () {
   QUnit.test('should remove from dom when click [data-dismiss="modal"]', function (assert) {
     assert.expect(3)
     var done = assert.async()
-
-    $('<div id="modal-test"><span class="close" data-dismiss="modal"/></div>')
+    $('<div id="modal-test"><div class="modal-dialog" /><span class="close" data-dismiss="modal"/></div>')
       .on('shown.bs.modal', function () {
         assert.ok($('#modal-test').is(':visible'), 'modal visible')
         assert.notEqual($('#modal-test').length, 0, 'modal inserted into dom')
@@ -158,7 +157,7 @@ $(function () {
     assert.expect(2)
     var done = assert.async()
 
-    $('<div id="modal-test" data-backdrop="false"/>')
+    $('<div id="modal-test" data-backdrop="false"><div class="modal-dialog" /></div>')
       .on('shown.bs.modal', function () {
         assert.ok($('#modal-test').is(':visible'), 'modal visible')
         $(this).bootstrapModal('hide')
@@ -174,7 +173,7 @@ $(function () {
     assert.expect(3)
     var done = assert.async()
 
-    $('<div id="modal-test"><div class="contents"/></div>')
+    $('<div id="modal-test"><div class="modal-dialog" /><div class="contents"/></div>')
       .on('shown.bs.modal', function () {
         assert.notEqual($('#modal-test').length, 0, 'modal inserted into dom')
         $('.contents').trigger('click')
@@ -192,7 +191,7 @@ $(function () {
     assert.expect(1)
     var done = assert.async()
 
-    $('<div id="modal-test" data-backdrop="false"><div class="contents"/></div>')
+    $('<div id="modal-test" data-backdrop="false"><div class="modal-dialog" /><div class="contents"/></div>')
       .on('shown.bs.modal', function () {
         $('#modal-test').trigger('click')
         assert.ok($('#modal-test').is(':visible'), 'modal not hidden')
@@ -205,7 +204,7 @@ $(function () {
     assert.expect(3)
     var done = assert.async()
 
-    var $div = $('<div id="modal-test"/>')
+    var $div = $('<div id="modal-test"><div class="modal-dialog" /></div>')
     $div
       .on('shown.bs.modal', function () {
         assert.ok($('#modal-test').length, 'modal inserted into dom')
@@ -230,7 +229,7 @@ $(function () {
     assert.expect(3)
     var done = assert.async()
 
-    var $div = $('<div id="modal-test"/>')
+    var $div = $('<div id="modal-test"><div class="modal-dialog" /></div>')
     $div
       .on('shown.bs.modal', function () {
         assert.ok($('#modal-test').length, 'modal inserted into dom')
@@ -254,7 +253,7 @@ $(function () {
 
     var triggered
 
-    $('<div id="modal-test"><div class="contents"/></div>')
+    $('<div id="modal-test"><div class="modal-dialog" /><div class="contents"/></div>')
       .on('shown.bs.modal', function () {
         triggered = 0
         $('#modal-test').trigger('click')
@@ -271,7 +270,7 @@ $(function () {
     assert.expect(3)
     var done = assert.async()
 
-    $('<div id="modal-test" aria-hidden="true"/>')
+    $('<div id="modal-test" aria-hidden="true"><div class="modal-dialog" /></div>')
       .on('shown.bs.modal', function () {
         assert.notOk($('#modal-test').is('[aria-hidden]'), 'aria-hidden attribute removed')
         $(this).bootstrapModal('hide')
@@ -288,7 +287,7 @@ $(function () {
     assert.expect(3)
     var done = assert.async()
 
-    $('<div id="modal-test"/>')
+    $('<div id="modal-test"><div class="modal-dialog" /></div>')
       .on('shown.bs.modal', function () {
         assert.ok($('#modal-test').is('[aria-modal]'), 'aria-modal attribute added')
         assert.strictEqual($('#modal-test').attr('aria-modal'), 'true', 'correct aria-modal="true" added')
@@ -304,8 +303,15 @@ $(function () {
   QUnit.test('should close reopened modal with [data-dismiss="modal"] click', function (assert) {
     assert.expect(2)
     var done = assert.async()
+    var html = [
+      '<div id="modal-test">',
+      '  <div class="modal-dialog">',
+      '    <div class="contents"><div id="close" data-dismiss="modal"/></div>',
+      '  </div>',
+      '</div>'
+    ].join('')
 
-    $('<div id="modal-test"><div class="contents"><div id="close" data-dismiss="modal"/></div></div>')
+    $(html)
       .one('shown.bs.modal', function () {
         $('#close').trigger('click')
       })
@@ -332,10 +338,16 @@ $(function () {
   QUnit.test('should restore focus to toggling element when modal is hidden after having been opened via data-api', function (assert) {
     assert.expect(1)
     var done = assert.async()
-
     var $toggleBtn = $('<button data-toggle="modal" data-target="#modal-test"/>').appendTo('#qunit-fixture')
+    var html = [
+      '<div id="modal-test">',
+      '  <div class="modal-dialog">',
+      '    <div class="contents"><div id="close" data-dismiss="modal"/></div>',
+      '  </div>',
+      '</div>'
+    ].join('')
 
-    $('<div id="modal-test"><div class="contents"><div id="close" data-dismiss="modal"/></div></div>')
+    $(html)
       .on('hidden.bs.modal', function () {
         setTimeout(function () {
           assert.ok($(document.activeElement).is($toggleBtn), 'toggling element is once again focused')
@@ -355,8 +367,15 @@ $(function () {
     var done = assert.async()
     var $toggleBtn = $('<button data-toggle="modal" data-target="#modal-test"/>').appendTo('#qunit-fixture')
     var $otherBtn = $('<button id="other-btn"/>').appendTo('#qunit-fixture')
+    var html = [
+      '<div id="modal-test">',
+      '  <div class="modal-dialog">',
+      '    <div class="contents"><div id="close" data-dismiss="modal"/></div>',
+      '  </div>',
+      '</div>'
+    ].join('')
 
-    $('<div id="modal-test"><div class="contents"><div id="close" data-dismiss="modal"/></div>')
+    $(html)
       .one('show.bs.modal', function (e) {
         e.preventDefault()
         $otherBtn.trigger('focus')
@@ -382,10 +401,10 @@ $(function () {
     assert.expect(1)
     var done = assert.async()
 
-    $('<div id="modal-test"/>')
+    $('<div id="modal-test"><div class="modal-dialog" /></div>')
       .on('shown.bs.modal', function () {
-        var expectedPadding = $(this).getScrollbarWidth() + 'px'
-        var currentPadding = $(this).css('padding-right')
+        var expectedPadding = parseInt($(this).getScrollbarWidth(), 10)
+        var currentPadding = parseInt($(this).css('padding-right'), 10)
         assert.strictEqual(currentPadding, expectedPadding, 'modal padding should be adjusted while opening')
         done()
       })
@@ -396,18 +415,18 @@ $(function () {
     assert.expect(2)
     var done = assert.async()
     var $body = $(document.body)
-    var originalPadding = $body.css('padding-right')
+    var originalPadding = parseInt($body.css('padding-right'), 10)
 
-    $('<div id="modal-test"/>')
+    $('<div id="modal-test"><div class="modal-dialog" /></div>')
       .on('hidden.bs.modal', function () {
-        var currentPadding = $body.css('padding-right')
+        var currentPadding = parseInt($body.css('padding-right'), 10)
         assert.strictEqual(currentPadding, originalPadding, 'body padding should be reset after closing')
         $body.removeAttr('style')
         done()
       })
       .on('shown.bs.modal', function () {
-        var expectedPadding = parseFloat(originalPadding) + $(this).getScrollbarWidth() + 'px'
-        var currentPadding = $body.css('padding-right')
+        var expectedPadding = parseInt(originalPadding, 10) + parseInt($(this).getScrollbarWidth(), 10)
+        var currentPadding = parseInt($body.css('padding-right'), 10)
         assert.strictEqual(currentPadding, expectedPadding, 'body padding should be adjusted while opening')
         $(this).bootstrapModal('hide')
       })
@@ -421,7 +440,7 @@ $(function () {
     var originalPadding = '0px'
     $body.css('padding-right', originalPadding)
 
-    $('<div id="modal-test"/>')
+    $('<div id="modal-test"><div class="modal-dialog" /></div>')
       .on('hidden.bs.modal', function () {
         assert.strictEqual(document.body.getAttribute('data-padding-right'), null, 'data-padding-right should be cleared after closing')
         $body.removeAttr('style')
@@ -444,7 +463,7 @@ $(function () {
     $body.css('overflow', 'hidden')        // Real scrollbar (for in-browser testing)
     $('html').css('padding-right', '0px')  // Simulated scrollbar (for PhantomJS)
 
-    $('<div id="modal-test"/>')
+    $('<div id="modal-test"><div class="modal-dialog" /></div>')
       .on('shown.bs.modal', function () {
         var currentPadding = $body.css('padding-right')
         assert.strictEqual(currentPadding, originalPadding, 'body padding should not be adjusted')
@@ -462,18 +481,18 @@ $(function () {
     assert.expect(2)
     var done = assert.async()
     var $element = $('<div class="fixed-top"></div>').appendTo('#qunit-fixture')
-    var originalPadding = $element.css('padding-right')
+    var originalPadding = parseInt($element.css('padding-right'), 10)
 
-    $('<div id="modal-test"/>')
+    $('<div id="modal-test"><div class="modal-dialog" /></div>')
       .on('hidden.bs.modal', function () {
-        var currentPadding = $element.css('padding-right')
+        var currentPadding = parseInt($element.css('padding-right'), 10)
         assert.strictEqual(currentPadding, originalPadding, 'fixed element padding should be reset after closing')
         $element.remove()
         done()
       })
       .on('shown.bs.modal', function () {
-        var expectedPadding = parseFloat(originalPadding) + $(this).getScrollbarWidth() + 'px'
-        var currentPadding = $element.css('padding-right')
+        var expectedPadding = parseFloat(originalPadding) + parseInt($(this).getScrollbarWidth(), 10)
+        var currentPadding = parseInt($element.css('padding-right'), 10)
         assert.strictEqual(currentPadding, expectedPadding, 'fixed element padding should be adjusted while opening')
         $(this).bootstrapModal('hide')
       })
@@ -487,7 +506,7 @@ $(function () {
     var originalPadding = '0px'
     $element.css('padding-right', originalPadding)
 
-    $('<div id="modal-test"/>')
+    $('<div id="modal-test"><div class="modal-dialog" /></div>')
       .on('hidden.bs.modal', function () {
         assert.strictEqual($element[0].getAttribute('data-padding-right'), null, 'data-padding-right should be cleared after closing')
         $element.remove()
@@ -504,18 +523,18 @@ $(function () {
     assert.expect(2)
     var done = assert.async()
     var $element = $('<div class="sticky-top"></div>').appendTo('#qunit-fixture')
-    var originalPadding = $element.css('margin-right')
+    var originalPadding = parseInt($element.css('margin-right'), 10)
 
-    $('<div id="modal-test"/>')
+    $('<div id="modal-test"><div class="modal-dialog" /></div>')
       .on('hidden.bs.modal', function () {
-        var currentPadding = $element.css('margin-right')
+        var currentPadding = parseInt($element.css('margin-right'), 10)
         assert.strictEqual(currentPadding, originalPadding, 'sticky element margin should be reset after closing')
         $element.remove()
         done()
       })
       .on('shown.bs.modal', function () {
-        var expectedPadding = parseFloat(originalPadding) - $(this).getScrollbarWidth() + 'px'
-        var currentPadding = $element.css('margin-right')
+        var expectedPadding = parseFloat(originalPadding) - $(this).getScrollbarWidth()
+        var currentPadding = parseInt($element.css('margin-right'), 10)
         assert.strictEqual(currentPadding, expectedPadding, 'sticky element margin should be adjusted while opening')
         $(this).bootstrapModal('hide')
       })
@@ -529,7 +548,7 @@ $(function () {
     var originalPadding = '0px'
     $element.css('margin-right', originalPadding)
 
-    $('<div id="modal-test"/>')
+    $('<div id="modal-test"><div class="modal-dialog" /></div>')
       .on('hidden.bs.modal', function () {
         assert.strictEqual($element[0].getAttribute('data-margin-right'), null, 'data-margin-right should be cleared after closing')
         $element.remove()
@@ -548,7 +567,7 @@ $(function () {
     var $body = $(document.body)
     var $style = $('<style>body { padding-right: 42px; }</style>').appendTo('head')
 
-    $('<div id="modal-test"/>')
+    $('<div id="modal-test"><div class="modal-dialog" /></div>')
       .on('hidden.bs.modal', function () {
         assert.strictEqual($body.css('padding-left'), '0px', 'body does not have inline padding set')
         $style.remove()
@@ -568,7 +587,7 @@ $(function () {
 
     $body.css('color', 'red')
 
-    $('<div id="modal-test"/>')
+    $('<div id="modal-test"><div class="modal-dialog" /></div>')
       .on('hidden.bs.modal', function () {
         assert.strictEqual($body[0].style.paddingRight, '', 'body does not have inline padding set')
         assert.strictEqual($body[0].style.color, 'red', 'body still has other inline styles set')
@@ -589,7 +608,7 @@ $(function () {
 
     $body.css('padding-right', '5%')
 
-    $('<div id="modal-test"/>')
+    $('<div id="modal-test"><div class="modal-dialog" /></div>')
       .on('hidden.bs.modal', function () {
         assert.strictEqual($body[0].style.paddingRight, '5%', 'body does not have inline padding set')
         $body.removeAttr('style')
@@ -607,7 +626,15 @@ $(function () {
     $('<map><area id="test" shape="default" data-toggle="modal" data-target="#modal-test" href="demo.html"/></map>')
       .appendTo('#qunit-fixture')
 
-    $('<div id="modal-test"><div class="contents"><div id="close" data-dismiss="modal"/></div></div>')
+    var modalHtml = [
+      '<div id="modal-test">',
+      '  <div class="modal-dialog">',
+      '    <div class="contents"><div id="close" data-dismiss="modal"/></div>',
+      '  </div>',
+      '</div>'
+    ].join('')
+
+    $(modalHtml)
       .appendTo('#qunit-fixture')
 
     // We need to use CustomEvent here to have a working preventDefault in IE tests.
@@ -630,7 +657,7 @@ $(function () {
     var done = assert.async()
     var count = 0
 
-    $('<div id="modal-test"/>').on('shown.bs.modal', function () {
+    $('<div id="modal-test"><div class="modal-dialog" /></div>').on('shown.bs.modal', function () {
       count++
     }).on('hidden.bs.modal', function () {
       assert.strictEqual(count, 1, 'show() runs only once')