]> git.ipfire.org Git - thirdparty/bootstrap.git/commitdiff
Fix unit tests in PhantomJS
authorDavid Bailey <techdavid@users.noreply.github.com>
Tue, 29 Aug 2017 11:01:41 +0000 (12:01 +0100)
committerDavid Bailey <techdavid@users.noreply.github.com>
Tue, 29 Aug 2017 11:01:41 +0000 (12:01 +0100)
Use a virtual scrollbar as this is simpler than having a real one (overflow: scroll doesn't seem to work in Phantom), and disable it for the new test.

One test has also been altered to prevent erroneous fails when other inline styles are added to the body (e.g. overflow).

js/tests/unit/modal.js

index 3611dfdf11247584ee01b5cdf90c4d4738c2f503..735dc4f0c88b680d42725cffecf992ffc717a987 100644 (file)
@@ -21,6 +21,8 @@ $(function () {
         document.body.removeChild(scrollDiv)
         return scrollbarWidth
       }
+      // Simulate scrollbars in PhantomJS
+      $('html').css('padding-right', '16px')
     },
     beforeEach: function () {
       // Run all tests in noConflict mode -- it's the only way to ensure that the plugin works in noConflict mode
@@ -397,14 +399,19 @@ $(function () {
     var $body = $(document.body)
     var originalPadding = $body.css('padding-right')
 
-    $('#qunit-container').hide()
+    // Hide scrollbars to prevent the body overflowing
+    $body.css('overflow', 'hidden')        // real scrollbar (for in-browser testing)
+    $('html').css('padding-right', '0px')  // simulated scrollbar (for PhantomJS)
+
     $('<div id="modal-test"/>')
       .on('shown.bs.modal', function () {
         var currentPadding = $body.css('padding-right')
         assert.strictEqual(currentPadding, originalPadding, 'body padding should not be adjusted')
         $(this).bootstrapModal('hide')
 
-        $('#qunit-container').show()
+        // restore scrollbars
+        $body.css('overflow', 'auto')
+        $('html').css('padding-right', '16px')
         done()
       })
       .bootstrapModal('show')
@@ -544,7 +551,7 @@ $(function () {
 
     $('<div id="modal-test"/>')
       .on('hidden.bs.modal', function () {
-        assert.ok(!$body.attr('style'), 'body does not have inline padding set')
+        assert.strictEqual($body.attr('style').indexOf('padding-right'), -1, 'body does not have inline padding set')
         $style.remove()
         done()
       })