diff --git a/js/src/dropdown.js b/js/src/dropdown.js index b1487b64ad..fbbaa08fa0 100644 --- a/js/src/dropdown.js +++ b/js/src/dropdown.js @@ -479,7 +479,7 @@ class Dropdown { EventHandler.trigger(SelectorEngine.findOne(Selector.DATA_TOGGLE, parent), 'focus') } - EventHandler.trigger(this, 'click') + Dropdown._clearMenus() return } diff --git a/js/tests/unit/carousel.js b/js/tests/unit/carousel.js index 6533454a69..9016f61abb 100644 --- a/js/tests/unit/carousel.js +++ b/js/tests/unit/carousel.js @@ -676,7 +676,7 @@ $(function () { $template.bootstrapCarousel() var done = assert.async() - function handlerKeydown() { + function handlerKeydown(event) { assert.strictEqual(event.defaultPrevented, false) $template[0].removeEventListener('keydown', handlerKeydown) } @@ -687,7 +687,7 @@ $(function () { keyDown.which = 40 $template[0].dispatchEvent(keyDown) - function handlerKeydown2() { + function handlerKeydown2(event) { assert.strictEqual(event.defaultPrevented, false) $template[0].addEventListener('keydown', handlerKeydown2) done() diff --git a/js/tests/unit/collapse.js b/js/tests/unit/collapse.js index bb11645b2b..c59af20624 100644 --- a/js/tests/unit/collapse.js +++ b/js/tests/unit/collapse.js @@ -73,7 +73,7 @@ $(function () { assert.ok(!/height/i.test($el2.attr('style')), 'has height reset') done() }) - $target[0].dispatchEvent(new Event('click')) + $target[0].click() }) QUnit.test('should collapse only the first collapse', function (assert) { @@ -760,11 +760,11 @@ $(function () { assert.ok($trigger3.hasClass('collapsed'), 'trigger3 has collapsed class') done() }) - $trigger1[0].dispatchEvent(new Event('click')) + $trigger1[0].click() }) - $trigger2[0].dispatchEvent(new Event('click')) + $trigger2[0].click() }) - $trigger3[0].dispatchEvent(new Event('click')) + $trigger3[0].click() }) QUnit.test('should set aria-expanded="true" to triggers targeting shown collaspe and aria-expanded="false" only when all the targeted collapses are shown', function (assert) { @@ -792,11 +792,11 @@ $(function () { assert.strictEqual($trigger3.attr('aria-expanded'), 'false', 'aria-expanded on trigger3 is "false"') done() }) - $trigger1[0].dispatchEvent(new Event('click')) + $trigger1[0].click() }) - $trigger2[0].dispatchEvent(new Event('click')) + $trigger2[0].click() }) - $trigger3[0].dispatchEvent(new Event('click')) + $trigger3[0].click() }) QUnit.test('should not prevent interactions inside the collapse element', function (assert) { diff --git a/js/tests/unit/dropdown.js b/js/tests/unit/dropdown.js index 44fe761ad8..a9a5773e61 100644 --- a/js/tests/unit/dropdown.js +++ b/js/tests/unit/dropdown.js @@ -663,6 +663,8 @@ $(function () { $dropdown[0].dispatchEvent(keydown40) assert.ok($(document.activeElement).is($('#item1')), 'item1 is focused') + keydown40 = new Event('keydown') + keydown40.which = 40 document.activeElement.dispatchEvent(keydown40) assert.ok($(document.activeElement).is($('#item2')), 'item2 is focused') @@ -899,11 +901,15 @@ $(function () { assert.ok(document.activeElement === $('#item1')[0], 'item1 is focused') done() - }).bootstrapDropdown('toggle') - $input[0].dispatchEvent(new Event('click')) + }) + .bootstrapDropdown('toggle') + + $input.bootstrapDropdown('toggle') }) - $input[0].dispatchEvent(new Event('click')) + + $input.bootstrapDropdown('toggle') }) + $input[0].dispatchEvent(new Event('click')) }) @@ -973,10 +979,13 @@ $(function () { assert.ok(document.activeElement === $('#item1')[0], 'item1 is focused') done() - }).bootstrapDropdown('toggle') - $textarea[0].dispatchEvent(new Event('click')) + }) + .bootstrapDropdown('toggle') + + $textarea.bootstrapDropdown('toggle') }) - $textarea[0].dispatchEvent(new Event('click')) + + $textarea.bootstrapDropdown('toggle') }) $textarea[0].dispatchEvent(new Event('click')) }) diff --git a/js/tests/visual/dropdown.html b/js/tests/visual/dropdown.html index 2fbfd50dd5..fe1ca333e1 100644 --- a/js/tests/visual/dropdown.html +++ b/js/tests/visual/dropdown.html @@ -211,6 +211,7 @@ +