Skip to content

Commit

Permalink
Add test to make sure we enforce focus on modal (#27723)
Browse files Browse the repository at this point in the history
  • Loading branch information
Johann-S authored and XhmikosR committed Nov 25, 2018
1 parent 72bd3f5 commit 32ab52b
Showing 1 changed file with 41 additions and 0 deletions.
41 changes: 41 additions & 0 deletions js/tests/unit/modal.js
Original file line number Diff line number Diff line change
Expand Up @@ -735,4 +735,45 @@ $(function () {
done()
}).bootstrapModal('show')
})

QUnit.test('should enforce focus', function (assert) {
assert.expect(4)
var done = assert.async()

var $modal = $([
'<div id="modal-test" data-show="false">',
' <div class="modal-dialog">',
' <div class="modal-content">',
' <div class="modal-body" />',
' </div>',
' </div>',
'</div>'
].join(''))
.bootstrapModal()
.appendTo('#qunit-fixture')

var modal = $modal.data('bs.modal')
var spy = sinon.spy(modal, '_enforceFocus')
var spyDocOff = sinon.spy($(document), 'off')
var spyDocOn = sinon.spy($(document), 'on')

$modal.one('shown.bs.modal', function () {
assert.ok(spy.called, '_enforceFocus called')
assert.ok(spyDocOff.withArgs('focusin.bs.modal'))
assert.ok(spyDocOn.withArgs('focusin.bs.modal'))

var spyFocus = sinon.spy(modal._element, 'focus')
var event = $.Event('focusin', {
target: $('#qunit-fixture')[0]
})

$(document).one('focusin', function () {
assert.ok(spyFocus.called)
done()
})

$(document).trigger(event)
})
.bootstrapModal('show')
})
})

0 comments on commit 32ab52b

Please sign in to comment.