Skip to content

Commit 06d61f5

Browse files
committed
Accordion: More tests.
1 parent 63c72ab commit 06d61f5

File tree

2 files changed

+94
-25
lines changed

2 files changed

+94
-25
lines changed

tests/unit/accordion/accordion_core.js

+12
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,18 @@
22

33
module( "accordion: core", accordionSetupTeardown() );
44

5+
test( "markup structure", function() {
6+
var ac = $( "#navigation" ).accordion();
7+
ok( ac.hasClass( "ui-accordion" ), "main element is .ui-accordion" );
8+
equal( ac.find( ".ui-accordion-header" ).length, 3,
9+
".ui-accordion-header elements exist, correct number" );
10+
equal( ac.find( ".ui-accordion-content" ).length, 3,
11+
".ui-accordion-content elements exist, correct number" );
12+
same( ac.find( ".ui-accordion-header" ).next().get(),
13+
ac.find( ".ui-accordion-content" ).get(),
14+
"content panels come immediately after headers" );
15+
});
16+
517
test( "handle click on header-descendant", function() {
618
var ac = $( "#navigation" ).accordion();
719
$( "#navigation h2:eq(1) a" ).click();

tests/unit/accordion/accordion_events.js

+82-25
Original file line numberDiff line numberDiff line change
@@ -2,31 +2,88 @@
22

33
module( "accordion: events", accordionSetupTeardown() );
44

5-
// TODO: verify correct elements in ui properties
6-
// TODO: add tests for switching between active panels (not collapsed)
7-
// TODO: add tests for changestart
8-
// TODO: move change/changestart to deprecated tests (add activate/beforeactivate)
9-
test( "accordionchange event, open closed and close again", function() {
10-
expect( 8 );
11-
$( "#list1" )
12-
.accordion({
13-
active: false,
14-
collapsible: true
15-
})
16-
.one( "accordionchange", function( event, ui ) {
17-
equals( ui.oldHeader.size(), 0 );
18-
equals( ui.oldContent.size(), 0 );
19-
equals( ui.newHeader.size(), 1 );
20-
equals( ui.newContent.size(), 1 );
21-
})
22-
.accordion( "option", "active", 0 )
23-
.one( "accordionchange", function( event, ui ) {
24-
equals( ui.oldHeader.size(), 1 );
25-
equals( ui.oldContent.size(), 1 );
26-
equals( ui.newHeader.size(), 0 );
27-
equals( ui.newContent.size(), 0 );
28-
})
29-
.accordion( "option", "active", false );
5+
test( "changestart", function() {
6+
expect( 20 );
7+
var ac = $( "#list1" ).accordion({
8+
active: false,
9+
collapsible: true
10+
});
11+
var headers = ac.find( ".ui-accordion-header" );
12+
var content = ac.find( ".ui-accordion-content" );
13+
14+
ac.one( "accordionchangestart", function( event, ui ) {
15+
equals( ui.oldHeader.size(), 0 );
16+
equals( ui.oldContent.size(), 0 );
17+
equals( ui.newHeader.size(), 1 );
18+
strictEqual( ui.newHeader[ 0 ], headers[ 0 ] );
19+
equals( ui.newContent.size(), 1 );
20+
strictEqual( ui.newContent[ 0 ], content[ 0 ] );
21+
});
22+
ac.accordion( "option", "active", 0 );
23+
24+
ac.one( "accordionchangestart", function( event, ui ) {
25+
equals( ui.oldHeader.size(), 1 );
26+
strictEqual( ui.oldHeader[ 0 ], headers[ 0 ] );
27+
equals( ui.oldContent.size(), 1 );
28+
strictEqual( ui.oldContent[ 0 ], content[ 0 ] );
29+
equals( ui.newHeader.size(), 1 );
30+
strictEqual( ui.newHeader[ 0 ], headers[ 1 ] );
31+
equals( ui.newContent.size(), 1 );
32+
strictEqual( ui.newContent[ 0 ], content[ 1 ] );
33+
});
34+
headers.eq( 1 ).click();
35+
36+
ac.one( "accordionchangestart", function( event, ui ) {
37+
equals( ui.oldHeader.size(), 1 );
38+
strictEqual( ui.oldHeader[ 0 ], headers[ 1 ] );
39+
equals( ui.oldContent.size(), 1 );
40+
strictEqual( ui.oldContent[ 0 ], content[ 1 ] );
41+
equals( ui.newHeader.size(), 0 );
42+
equals( ui.newContent.size(), 0 );
43+
});
44+
ac.accordion( "option", "active", false );
45+
});
46+
47+
test( "change", function() {
48+
expect( 20 );
49+
var ac = $( "#list1" ).accordion({
50+
active: false,
51+
collapsible: true
52+
});
53+
var headers = ac.find( ".ui-accordion-header" );
54+
var content = ac.find( ".ui-accordion-content" );
55+
56+
ac.one( "accordionchange", function( event, ui ) {
57+
equals( ui.oldHeader.size(), 0 );
58+
equals( ui.oldContent.size(), 0 );
59+
equals( ui.newHeader.size(), 1 );
60+
strictEqual( ui.newHeader[ 0 ], headers[ 0 ] );
61+
equals( ui.newContent.size(), 1 );
62+
strictEqual( ui.newContent[ 0 ], content[ 0 ] );
63+
});
64+
ac.accordion( "option", "active", 0 );
65+
66+
ac.one( "accordionchange", function( event, ui ) {
67+
equals( ui.oldHeader.size(), 1 );
68+
strictEqual( ui.oldHeader[ 0 ], headers[ 0 ] );
69+
equals( ui.oldContent.size(), 1 );
70+
strictEqual( ui.oldContent[ 0 ], content[ 0 ] );
71+
equals( ui.newHeader.size(), 1 );
72+
strictEqual( ui.newHeader[ 0 ], headers[ 1 ] );
73+
equals( ui.newContent.size(), 1 );
74+
strictEqual( ui.newContent[ 0 ], content[ 1 ] );
75+
});
76+
headers.eq( 1 ).click();
77+
78+
ac.one( "accordionchange", function( event, ui ) {
79+
equals( ui.oldHeader.size(), 1 );
80+
strictEqual( ui.oldHeader[ 0 ], headers[ 1 ] );
81+
equals( ui.oldContent.size(), 1 );
82+
strictEqual( ui.oldContent[ 0 ], content[ 1 ] );
83+
equals( ui.newHeader.size(), 0 );
84+
equals( ui.newContent.size(), 0 );
85+
});
86+
ac.accordion( "option", "active", false );
3087
});
3188

3289
}( jQuery ) );

0 commit comments

Comments
 (0)