3 var setupTeardown = TestHelpers.accordion.setupTeardown,
4 state = TestHelpers.accordion.state;
6 module( "accordion: events", setupTeardown() );
8 test( "create", function() {
11 var element = $( "#list1" ),
12 headers = element.children( "h3" ),
13 contents = headers.next();
16 create: function( event, ui ) {
17 equal( ui.header.length, 1, "header length" );
18 strictEqual( ui.header[ 0 ], headers[ 0 ], "header" );
19 equal( ui.panel.length, 1, "panel length" );
20 strictEqual( ui.panel[ 0 ], contents[ 0 ], "panel" );
21 equal( ui.content.length, 1, "content length" );
22 strictEqual( ui.content[ 0 ], contents[ 0 ], "content" );
25 element.accordion( "destroy" );
29 create: function( event, ui ) {
30 equal( ui.header.length, 1, "header length" );
31 strictEqual( ui.header[ 0 ], headers[ 2 ], "header" );
32 equal( ui.panel.length, 1, "panel length" );
33 strictEqual( ui.panel[ 0 ], contents[ 2 ], "panel" );
34 equal( ui.content.length, 1, "content length" );
35 strictEqual( ui.content[ 0 ], contents[ 2 ], "content" );
38 element.accordion( "destroy" );
43 create: function( event, ui ) {
44 equal( ui.header.length, 0, "header length" );
45 equal( ui.panel.length, 0, "panel length" );
46 equal( ui.content.length, 0, "content length" );
49 element.accordion( "destroy" );
52 test( "beforeActivate", function() {
54 var element = $( "#list1" ).accordion({
58 headers = element.find( ".ui-accordion-header" ),
59 content = element.find( ".ui-accordion-content" );
61 element.one( "accordionbeforeactivate", function( event, ui ) {
62 ok( !( "originalEvent" in event ) );
63 equal( ui.oldHeader.length, 0 );
64 equal( ui.oldPanel.length, 0 );
65 equal( ui.newHeader.length, 1 );
66 strictEqual( ui.newHeader[ 0 ], headers[ 0 ] );
67 equal( ui.newPanel.length, 1 );
68 strictEqual( ui.newPanel[ 0 ], content[ 0 ] );
69 state( element, 0, 0, 0 );
71 element.accordion( "option", "active", 0 );
72 state( element, 1, 0, 0 );
74 element.one( "accordionbeforeactivate", function( event, ui ) {
75 equal( event.originalEvent.type, "click" );
76 equal( ui.oldHeader.length, 1 );
77 strictEqual( ui.oldHeader[ 0 ], headers[ 0 ] );
78 equal( ui.oldPanel.length, 1 );
79 strictEqual( ui.oldPanel[ 0 ], content[ 0 ] );
80 equal( ui.newHeader.length, 1 );
81 strictEqual( ui.newHeader[ 0 ], headers[ 1 ] );
82 equal( ui.newPanel.length, 1 );
83 strictEqual( ui.newPanel[ 0 ], content[ 1 ] );
84 state( element, 1, 0, 0 );
86 headers.eq( 1 ).click();
87 state( element, 0, 1, 0 );
89 element.one( "accordionbeforeactivate", function( event, ui ) {
90 ok( !( "originalEvent" in event ) );
91 equal( ui.oldHeader.length, 1 );
92 strictEqual( ui.oldHeader[ 0 ], headers[ 1 ] );
93 equal( ui.oldPanel.length, 1 );
94 strictEqual( ui.oldPanel[ 0 ], content[ 1 ] );
95 equal( ui.newHeader.length, 0 );
96 equal( ui.newPanel.length, 0 );
97 state( element, 0, 1, 0 );
99 element.accordion( "option", "active", false );
100 state( element, 0, 0, 0 );
102 element.one( "accordionbeforeactivate", function( event, ui ) {
103 ok( !( "originalEvent" in event ) );
104 equal( ui.oldHeader.length, 0 );
105 equal( ui.oldPanel.length, 0 );
106 equal( ui.newHeader.length, 1 );
107 strictEqual( ui.newHeader[ 0 ], headers[ 2 ] );
108 equal( ui.newPanel.length, 1 );
109 strictEqual( ui.newPanel[ 0 ], content[ 2 ] );
110 event.preventDefault();
111 state( element, 0, 0, 0 );
113 element.accordion( "option", "active", 2 );
114 state( element, 0, 0, 0 );
117 test( "activate", function() {
119 var element = $( "#list1" ).accordion({
123 headers = element.find( ".ui-accordion-header" ),
124 content = element.find( ".ui-accordion-content" );
126 element.one( "accordionactivate", function( event, ui ) {
127 equal( ui.oldHeader.length, 0 );
128 equal( ui.oldPanel.length, 0 );
129 equal( ui.newHeader.length, 1 );
130 strictEqual( ui.newHeader[ 0 ], headers[ 0 ] );
131 equal( ui.newPanel.length, 1 );
132 strictEqual( ui.newPanel[ 0 ], content[ 0 ] );
134 element.accordion( "option", "active", 0 );
136 element.one( "accordionactivate", function( event, ui ) {
137 equal( ui.oldHeader.length, 1 );
138 strictEqual( ui.oldHeader[ 0 ], headers[ 0 ] );
139 equal( ui.oldPanel.length, 1 );
140 strictEqual( ui.oldPanel[ 0 ], content[ 0 ] );
141 equal( ui.newHeader.length, 1 );
142 strictEqual( ui.newHeader[ 0 ], headers[ 1 ] );
143 equal( ui.newPanel.length, 1 );
144 strictEqual( ui.newPanel[ 0 ], content[ 1 ] );
146 headers.eq( 1 ).click();
148 element.one( "accordionactivate", function( event, ui ) {
149 equal( ui.oldHeader.length, 1 );
150 strictEqual( ui.oldHeader[ 0 ], headers[ 1 ] );
151 equal( ui.oldPanel.length, 1 );
152 strictEqual( ui.oldPanel[ 0 ], content[ 1 ] );
153 equal( ui.newHeader.length, 0 );
154 equal( ui.newPanel.length, 0 );
156 element.accordion( "option", "active", false );
158 // prevent activation
159 element.one( "accordionbeforeactivate", function( event ) {
161 event.preventDefault();
163 element.one( "accordionactivate", function() {
166 element.accordion( "option", "active", 1 );