aboutsummaryrefslogtreecommitdiff
path: root/js/tests
diff options
context:
space:
mode:
authorPierre Vanduynslager <[email protected]>2017-04-25 03:32:14 -0400
committerJohann-S <[email protected]>2017-04-25 09:32:14 +0200
commitab39defe74914109df164c823af927de68320d55 (patch)
tree0b6fd0360c1a8db58367074770d2dd6859349ef5 /js/tests
parentba312c20a5ceca42117dd53303bafda485d8facd (diff)
downloadbootstrap-ab39defe74914109df164c823af927de68320d55.tar.xz
bootstrap-ab39defe74914109df164c823af927de68320d55.zip
Detach accordion from card without requiring 'data-children'
Diffstat (limited to 'js/tests')
-rw-r--r--js/tests/unit/collapse.js76
1 files changed, 67 insertions, 9 deletions
diff --git a/js/tests/unit/collapse.js b/js/tests/unit/collapse.js
index 35fcf2108..2b9d0e58f 100644
--- a/js/tests/unit/collapse.js
+++ b/js/tests/unit/collapse.js
@@ -491,27 +491,85 @@ $(function () {
})
QUnit.test('should allow accordion to use children other than card', function (assert) {
- assert.expect(2)
+ assert.expect(4)
var done = assert.async()
- var accordionHTML = '<div id="accordion" data-children=".item">'
+ var accordionHTML = '<div id="accordion">'
+ '<div class="item">'
+ '<a id="linkTrigger" data-parent="#accordion" data-toggle="collapse" href="#collapseOne" aria-expanded="false" aria-controls="collapseOne"></a>'
+ '<div id="collapseOne" class="collapse" role="tabpanel" aria-labelledby="headingThree"></div>'
+ '</div>'
+ '<div class="item">'
- + '<a data-toggle="collapse" data-parent="#accordion" href="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo"></a>'
+ + '<a id="linkTriggerTwo" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo"></a>'
+ '<div id="collapseTwo" class="collapse show" role="tabpanel" aria-labelledby="headingTwo"></div>'
+ '</div>'
+ '</div>'
$(accordionHTML).appendTo('#qunit-fixture')
- var $target = $('#linkTrigger')
- $('#collapseOne').on('shown.bs.collapse', function () {
- assert.ok($(this).hasClass('show'))
- assert.ok(!$('#collapseTwo').hasClass('show'))
- done()
+ var $trigger = $('#linkTrigger')
+ var $triggerTwo = $('#linkTriggerTwo')
+ var $collapseOne = $('#collapseOne')
+ var $collapseTwo = $('#collapseTwo')
+ $collapseOne.on('shown.bs.collapse', function () {
+ assert.ok($collapseOne.hasClass('show'), '#collapseOne is shown')
+ assert.ok(!$collapseTwo.hasClass('show'), '#collapseTwo is not shown')
+ $collapseTwo.on('shown.bs.collapse', function () {
+ assert.ok(!$collapseOne.hasClass('show'), '#collapseOne is not shown')
+ assert.ok($collapseTwo.hasClass('show'), '#collapseTwo is shown')
+ done()
+ })
+ $triggerTwo.trigger($.Event('click'))
})
- $target.trigger($.Event('click'))
+ $trigger.trigger($.Event('click'))
+ })
+
+ QUnit.test('should collapse accordion children but not nested accordion children', function (assert) {
+ assert.expect(9)
+ var done = assert.async()
+ $('<div id="accordion">'
+ + '<div class="item">'
+ + '<a id="linkTrigger" data-parent="#accordion" data-toggle="collapse" href="#collapseOne" aria-expanded="false" aria-controls="collapseOne"></a>'
+ + '<div id="collapseOne" class="collapse" role="tabpanel" aria-labelledby="headingThree">'
+ + '<div id="nestedAccordion">'
+ + '<div class="item">'
+ + '<a id="nestedLinkTrigger" data-parent="#nestedAccordion" data-toggle="collapse" href="#nestedCollapseOne" aria-expanded="false" aria-controls="nestedCollapseOne"></a>'
+ + '<div id="nestedCollapseOne" class="collapse" role="tabpanel" aria-labelledby="headingThree">'
+ + '</div>'
+ + '</div>'
+ + '</div>'
+ + '</div>'
+ + '</div>'
+ + '<div class="item">'
+ + '<a id="linkTriggerTwo" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo"></a>'
+ + '<div id="collapseTwo" class="collapse show" role="tabpanel" aria-labelledby="headingTwo"></div>'
+ + '</div>'
+ + '</div>').appendTo('#qunit-fixture')
+ var $trigger = $('#linkTrigger')
+ var $triggerTwo = $('#linkTriggerTwo')
+ var $nestedTrigger = $('#nestedLinkTrigger')
+ var $collapseOne = $('#collapseOne')
+ var $collapseTwo = $('#collapseTwo')
+ var $nestedCollapseOne = $('#nestedCollapseOne')
+
+
+ $collapseOne.one('shown.bs.collapse', function () {
+ assert.ok($collapseOne.hasClass('show'), '#collapseOne is shown')
+ assert.ok(!$collapseTwo.hasClass('show'), '#collapseTwo is not shown')
+ assert.ok(!$('#nestedCollapseOne').hasClass('show'), '#nestedCollapseOne is not shown')
+ $nestedCollapseOne.one('shown.bs.collapse', function () {
+ assert.ok($collapseOne.hasClass('show'), '#collapseOne is shown')
+ assert.ok(!$collapseTwo.hasClass('show'), '#collapseTwo is not shown')
+ assert.ok($nestedCollapseOne.hasClass('show'), '#nestedCollapseOne is shown')
+ $collapseTwo.one('shown.bs.collapse', function () {
+ assert.ok(!$collapseOne.hasClass('show'), '#collapseOne is not shown')
+ assert.ok($collapseTwo.hasClass('show'), '#collapseTwo is shown')
+ assert.ok($nestedCollapseOne.hasClass('show'), '#nestedCollapseOne is shown')
+ done()
+ })
+ $triggerTwo.trigger($.Event('click'))
+ })
+ $nestedTrigger.trigger($.Event('click'))
+ })
+ $trigger.trigger($.Event('click'))
})
QUnit.test('should not prevent event for input', function (assert) {