diff options
| author | Martijn Cuppens <[email protected]> | 2018-01-03 15:40:58 +0100 |
|---|---|---|
| committer | XhmikosR <[email protected]> | 2018-01-03 16:40:58 +0200 |
| commit | a1d134f8a8a93ae82f8553674d3c5f8b76c504ad (patch) | |
| tree | 7a331ae59ead17e3f983c0741da75e1a5c21e81b /js/tests | |
| parent | 7044ea82c17853c4d6d3483114b860ce4a5cf7b1 (diff) | |
| download | bootstrap-a1d134f8a8a93ae82f8553674d3c5f8b76c504ad.tar.xz bootstrap-a1d134f8a8a93ae82f8553674d3c5f8b76c504ad.zip | |
Multiple accordion support (#25161)
Diffstat (limited to 'js/tests')
| -rw-r--r-- | js/tests/unit/collapse.js | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/js/tests/unit/collapse.js b/js/tests/unit/collapse.js index 337ec647b..f34225dd3 100644 --- a/js/tests/unit/collapse.js +++ b/js/tests/unit/collapse.js @@ -581,6 +581,81 @@ $(function () { $trigger.trigger($.Event('click')) }) + QUnit.test('should allow accordion to target multiple elements', function (assert) { + assert.expect(8) + var done = assert.async() + var accordionHTML = '<div id="accordion">' + + '<a id="linkTriggerOne" data-toggle="collapse" data-target=".collapseOne" href="#" aria-expanded="false" aria-controls="collapseOne"></a>' + + '<a id="linkTriggerTwo" data-toggle="collapse" data-target=".collapseTwo" href="#" aria-expanded="false" aria-controls="collapseTwo"></a>' + + '<div id="collapseOneOne" class="collapse collapseOne" role="tabpanel" data-parent="#accordion"></div>' + + '<div id="collapseOneTwo" class="collapse collapseOne" role="tabpanel" data-parent="#accordion"></div>' + + '<div id="collapseTwoOne" class="collapse collapseTwo" role="tabpanel" data-parent="#accordion"></div>' + + '<div id="collapseTwoTwo" class="collapse collapseTwo" role="tabpanel" data-parent="#accordion"></div>' + + '</div>' + + $(accordionHTML).appendTo('#qunit-fixture') + var $trigger = $('#linkTriggerOne') + var $triggerTwo = $('#linkTriggerTwo') + var $collapseOneOne = $('#collapseOneOne') + var $collapseOneTwo = $('#collapseOneTwo') + var $collapseTwoOne = $('#collapseTwoOne') + var $collapseTwoTwo = $('#collapseTwoTwo') + var collapsedElements = { + one : false, + two : false + } + + function firstTest() { + assert.ok($collapseOneOne.hasClass('show'), '#collapseOneOne is shown') + assert.ok($collapseOneTwo.hasClass('show'), '#collapseOneTwo is shown') + assert.ok(!$collapseTwoOne.hasClass('show'), '#collapseTwoOne is not shown') + assert.ok(!$collapseTwoTwo.hasClass('show'), '#collapseTwoTwo is not shown') + $triggerTwo.trigger($.Event('click')) + } + + function secondTest() { + assert.ok(!$collapseOneOne.hasClass('show'), '#collapseOneOne is not shown') + assert.ok(!$collapseOneTwo.hasClass('show'), '#collapseOneTwo is not shown') + assert.ok($collapseTwoOne.hasClass('show'), '#collapseTwoOne is shown') + assert.ok($collapseTwoTwo.hasClass('show'), '#collapseTwoTwo is shown') + done() + } + + $collapseOneOne.on('shown.bs.collapse', function () { + if (collapsedElements.one) { + firstTest() + } else { + collapsedElements.one = true + } + }) + + $collapseOneTwo.on('shown.bs.collapse', function () { + if (collapsedElements.one) { + firstTest() + } else { + collapsedElements.one = true + } + }) + + $collapseTwoOne.on('shown.bs.collapse', function () { + if (collapsedElements.two) { + secondTest() + } else { + collapsedElements.two = true + } + }) + + $collapseTwoTwo.on('shown.bs.collapse', function () { + if (collapsedElements.two) { + secondTest() + } else { + collapsedElements.two = true + } + }) + + $trigger.trigger($.Event('click')) + }) + QUnit.test('should collapse accordion children but not nested accordion children', function (assert) { assert.expect(9) var done = assert.async() |
