Skip to content

Commit

Permalink
ensure hidePrevented.bs.modal can be prevented (#31696)
Browse files Browse the repository at this point in the history
  • Loading branch information
joakimriedel committed Sep 21, 2020
1 parent ab0aec3 commit b0a0c56
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 1 deletion.
2 changes: 1 addition & 1 deletion js/src/modal.js
Expand Up @@ -234,7 +234,7 @@ class Modal {
const hideEventPrevented = $.Event(EVENT_HIDE_PREVENTED)

$(this._element).trigger(hideEventPrevented)
if (hideEventPrevented.defaultPrevented) {
if (hideEventPrevented.isDefaultPrevented()) {
return
}

Expand Down
39 changes: 39 additions & 0 deletions js/tests/unit/modal.js
Expand Up @@ -976,4 +976,43 @@ $(function () {
backdrop: 'static'
})
})

QUnit.test('should get modal-static class when clicking outside of modal-content if backdrop = static', function (assert) {
assert.expect(1)
var done = assert.async()
var $modal = $('<div class="modal" data-backdrop="static"><div class="modal-dialog" style="transition-duration: 20ms;"/></div>').appendTo('#qunit-fixture')

$modal.on('shown.bs.modal', function () {
$modal.trigger('click')
setTimeout(function () {
assert.ok($modal.hasClass('modal-static'), 'has modal-static class')
done()
}, 0)
})
.bootstrapModal({
backdrop: 'static'
})
})

QUnit.test('should not get modal-static class when clicking outside of modal-content if backdrop = static and event is prevented', function (assert) {
assert.expect(2)
var done = assert.async()
var $modal = $('<div class="modal" data-backdrop="static"><div class="modal-dialog" style="transition-duration: 20ms;"/></div>').appendTo('#qunit-fixture')

$modal.on('hidePrevented.bs.modal', function (e) {
assert.ok(true, 'should trigger hidePrevented event')
e.preventDefault()
})

$modal.on('shown.bs.modal', function () {
$modal.trigger('click')
setTimeout(function () {
assert.notOk($modal.hasClass('modal-static'), 'should not have modal-static class')
done()
}, 0)
})
.bootstrapModal({
backdrop: 'static'
})
})
})

0 comments on commit b0a0c56

Please sign in to comment.