]> git.ipfire.org Git - thirdparty/bootstrap.git/commitdiff
Port new unit test for dropdown from v4 (#28913)
authorPatrick H. Lauke <redux@splintered.co.uk>
Tue, 25 Jun 2019 11:57:41 +0000 (12:57 +0100)
committerXhmikosR <xhmikosr@gmail.com>
Tue, 25 Jun 2019 11:57:41 +0000 (14:57 +0300)
Add unit test from #28912 to v5

js/tests/unit/dropdown.js

index ab0fdbd44460b2c68a1322b1fbe1380effcd40b9..04b506ff93ef17a18699afc7f5fa9a485cd877ee 100644 (file)
@@ -71,6 +71,31 @@ $(function () {
     $dropdown.trigger($.Event('click'))
   })
 
+  QUnit.test('should not open dropdown if escape key was pressed on the toggle', function (assert) {
+    assert.expect(1)
+    var done = assert.async()
+    var dropdownHTML = '<div class="tabs">' +
+        '<div class="dropdown">' +
+        '<button disabled href="#" class="btn dropdown-toggle" data-toggle="dropdown">Dropdown</button>' +
+        '<div class="dropdown-menu">' +
+        '<a class="dropdown-item" href="#">Secondary link</a>' +
+        '<a class="dropdown-item" href="#">Something else here</a>' +
+        '<div class="divider"/>' +
+        '<a class="dropdown-item" href="#">Another link</a>' +
+        '</div>' +
+        '</div>' +
+        '</div>'
+    $(dropdownHTML).appendTo('#qunit-fixture')
+    var $dropdown = $('#qunit-fixture').find('[data-toggle="dropdown"]').bootstrapDropdown()
+    var $button = $('button[data-toggle="dropdown"]')
+    // Key escape
+    $button.trigger('focus').trigger($.Event('keydown', {
+      which: 27
+    }))
+    assert.ok(!$dropdown.parent('.dropdown').hasClass('show'), 'dropdown menu is not shown after escape pressed')
+    done()
+  })
+
   QUnit.test('should not add class position-static to dropdown if boundary not set', function (assert) {
     assert.expect(1)
     var done = assert.async()