imported the whole jquery-ui package, refreshed with 1.10.2
[myslice.git] / third-party / jquery-ui-1.10.2 / tests / unit / accordion / accordion_events.js
1 (function( $ ) {
2
3 var setupTeardown = TestHelpers.accordion.setupTeardown,
4         state = TestHelpers.accordion.state;
5
6 module( "accordion: events", setupTeardown() );
7
8 test( "create", function() {
9         expect( 15 );
10
11         var element = $( "#list1" ),
12                 headers = element.children( "h3" ),
13                 contents = headers.next();
14
15         element.accordion({
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" );
23                 }
24         });
25         element.accordion( "destroy" );
26
27         element.accordion({
28                 active: 2,
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" );
36                 }
37         });
38         element.accordion( "destroy" );
39
40         element.accordion({
41                 active: false,
42                 collapsible: true,
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" );
47                 }
48         });
49         element.accordion( "destroy" );
50 });
51
52 test( "beforeActivate", function() {
53         expect( 38 );
54         var element = $( "#list1" ).accordion({
55                         active: false,
56                         collapsible: true
57                 }),
58                 headers = element.find( ".ui-accordion-header" ),
59                 content = element.find( ".ui-accordion-content" );
60
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 );
70         });
71         element.accordion( "option", "active", 0 );
72         state( element, 1, 0, 0 );
73
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 );
85         });
86         headers.eq( 1 ).click();
87         state( element, 0, 1, 0 );
88
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 );
98         });
99         element.accordion( "option", "active", false );
100         state( element, 0, 0, 0 );
101
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 );
112         });
113         element.accordion( "option", "active", 2 );
114         state( element, 0, 0, 0 );
115 });
116
117 test( "activate", function() {
118         expect( 21 );
119         var element = $( "#list1" ).accordion({
120                         active: false,
121                         collapsible: true
122                 }),
123                 headers = element.find( ".ui-accordion-header" ),
124                 content = element.find( ".ui-accordion-content" );
125
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 ] );
133         });
134         element.accordion( "option", "active", 0 );
135
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 ] );
145         });
146         headers.eq( 1 ).click();
147
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 );
155         });
156         element.accordion( "option", "active", false );
157
158         // prevent activation
159         element.one( "accordionbeforeactivate", function( event ) {
160                 ok( true );
161                 event.preventDefault();
162         });
163         element.one( "accordionactivate", function() {
164                 ok( false );
165         });
166         element.accordion( "option", "active", 1 );
167 });
168
169 }( jQuery ) );