aboutsummaryrefslogtreecommitdiff
path: root/js/tests
diff options
context:
space:
mode:
authorDavid Bailey <[email protected]>2017-08-25 22:01:41 +0100
committerJohann-S <[email protected]>2017-08-25 22:01:41 +0100
commitba6a6f13691000ffaf22ef8e731513737659447f (patch)
treece649fd410b7e9a38758ef8318e1d9aba5eef3e8 /js/tests
parent5a90b4aa3e102e387839a39fbf0ab1444eebbc76 (diff)
downloadbootstrap-ba6a6f13691000ffaf22ef8e731513737659447f.tar.xz
bootstrap-ba6a6f13691000ffaf22ef8e731513737659447f.zip
Fix sticky margin when a modal is opened (#23669)
* Adjust margin for sticky elements on modal Previously white space was visible to the right of sticky elements due to right padding being added to the body. This fixes #23661. * Add unit tests for margin of sticky elements on modal
Diffstat (limited to 'js/tests')
-rw-r--r--js/tests/unit/modal.js42
1 files changed, 42 insertions, 0 deletions
diff --git a/js/tests/unit/modal.js b/js/tests/unit/modal.js
index 09c352443..3b028dc10 100644
--- a/js/tests/unit/modal.js
+++ b/js/tests/unit/modal.js
@@ -433,6 +433,48 @@ $(function () {
.bootstrapModal('show')
})
+ QUnit.test('should adjust the inline margin of sticky elements when opening and restore when closing', function (assert) {
+ assert.expect(2)
+ var done = assert.async()
+ var $element = $('<div class="sticky-top"></div>').appendTo('#qunit-fixture')
+ var originalPadding = $element.css('margin-right')
+
+ $('<div id="modal-test"/>')
+ .on('hidden.bs.modal', function () {
+ var currentPadding = $element.css('margin-right')
+ 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')
+ assert.strictEqual(currentPadding, expectedPadding, 'sticky element margin should be adjusted while opening')
+ $(this).bootstrapModal('hide')
+ })
+ .bootstrapModal('show')
+ })
+
+ QUnit.test('should store the original margin of sticky elements in data-margin-right before showing', function (assert) {
+ assert.expect(2)
+ var done = assert.async()
+ var $element = $('<div class="sticky-top"></div>').appendTo('#qunit-fixture')
+ var originalPadding = '0px'
+ $element.css('margin-right', originalPadding)
+
+ $('<div id="modal-test"/>')
+ .on('hidden.bs.modal', function () {
+ assert.strictEqual(typeof $element.data('margin-right'), 'undefined', 'data-margin-right should be cleared after closing')
+ $element.remove()
+ done()
+ })
+ .on('shown.bs.modal', function () {
+ assert.strictEqual($element.data('margin-right'), originalPadding, 'original sticky element margin should be stored in data-margin-right')
+ $(this).bootstrapModal('hide')
+ })
+ .bootstrapModal('show')
+ })
+
QUnit.test('should adjust the inline margin of the navbar-toggler when opening and restore when closing', function (assert) {
assert.expect(2)
var done = assert.async()