From 768ef69e6bf91d6e349ccdf61716f18405e569dd Mon Sep 17 00:00:00 2001 From: Derk-Jan Hartman Date: Thu, 17 May 2018 20:20:13 +0200 Subject: [PATCH] makeCollapsible: Add test for nested collapsibles Follow-up to: I1c3c29dc9ca4ccbf8da83796e56964a7a6d58a81 Bug: T168689 Change-Id: I7059d870976e36b20634e9c2c919408b3eb1d7fc --- .../jquery/jquery.makeCollapsible.test.js | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tests/qunit/suites/resources/jquery/jquery.makeCollapsible.test.js b/tests/qunit/suites/resources/jquery/jquery.makeCollapsible.test.js index d51dc373dd..d3f65335d3 100644 --- a/tests/qunit/suites/resources/jquery/jquery.makeCollapsible.test.js +++ b/tests/qunit/suites/resources/jquery/jquery.makeCollapsible.test.js @@ -374,4 +374,24 @@ $clone.find( '.mw-collapsible-toggle a' ).trigger( 'click' ); } ); + + QUnit.test( 'T168689 - nested collapsible divs should keep independent state', function ( assert ) { + var $collapsible1 = prepareCollapsible( + '
' + loremIpsum + '
' + ), + $collapsible2 = prepareCollapsible( + '
' + loremIpsum + '
' + ); + + $collapsible1 + .append( $collapsible2 ) + .appendTo( '#qunit-fixture' ).makeCollapsible(); + + $collapsible1.on( 'afterCollapse.mw-collapsible', function () { + assert.assertTrue( $collapsible1.hasClass( 'mw-collapsed' ), 'after collapsing: parent is collapsed' ); + assert.assertFalse( $collapsible2.hasClass( 'mw-collapsed' ), 'after collapsing: child is not collapsed' ); + assert.assertTrue( $collapsible1.find( '> .mw-collapsible-toggle' ).hasClass( 'mw-collapsible-toggle-collapsed' ) ); + assert.assertFalse( $collapsible2.find( '> .mw-collapsible-toggle' ).hasClass( 'mw-collapsible-toggle-collapsed' ) ); + } ).find( '> .mw-collapsible-toggle a' ).trigger( 'click' ); + } ); }( jQuery ) ); -- 2.20.1