@@ -145,8 +145,85 @@ test( "refresh", function() {
145
145
tabs_disabled ( element , false ) ;
146
146
} ) ;
147
147
148
- test ( 'load' , function ( ) {
149
- ok ( false , "missing test - untested code is broken code." ) ;
148
+ asyncTest ( "load" , function ( ) {
149
+ expect ( 30 ) ;
150
+
151
+ var element = $ ( "#tabs2" ) . tabs ( ) ;
152
+
153
+ // load content of inactive tab
154
+ // useful for preloading content with custom caching
155
+ element . one ( "tabsbeforeload" , function ( event , ui ) {
156
+ var tab = element . find ( ".ui-tabs-nav a" ) . eq ( 3 ) ,
157
+ panelId = tab . attr ( "aria-controls" ) ,
158
+ panel = $ ( "#" + panelId ) ;
159
+
160
+ ok ( ! ( "originalEvent" in event ) , "originalEvent" ) ;
161
+ equals ( ui . tab . size ( ) , 1 , "tab size" ) ;
162
+ strictEqual ( ui . tab [ 0 ] , tab [ 0 ] , "tab" ) ;
163
+ equals ( ui . panel . size ( ) , 1 , "panel size" ) ;
164
+ strictEqual ( ui . panel [ 0 ] , panel [ 0 ] , "panel" ) ;
165
+ tabs_state ( element , 1 , 0 , 0 , 0 , 0 ) ;
166
+ } ) ;
167
+ element . one ( "tabsload" , function ( event , ui ) {
168
+ var tab = element . find ( ".ui-tabs-nav a" ) . eq ( 3 ) ,
169
+ panelId = tab . attr ( "aria-controls" ) ,
170
+ panel = $ ( "#" + panelId ) ;
171
+
172
+ ok ( ! ( "originalEvent" in event ) , "originalEvent" ) ;
173
+ equals ( ui . tab . size ( ) , 1 , "tab size" ) ;
174
+ strictEqual ( ui . tab [ 0 ] , tab [ 0 ] , "tab" ) ;
175
+ equals ( ui . panel . size ( ) , 1 , "panel size" ) ;
176
+ strictEqual ( ui . panel [ 0 ] , panel [ 0 ] , "panel" ) ;
177
+ equals ( ui . panel . find ( "p" ) . length , 1 , "panel html" ) ;
178
+ tabs_state ( element , 1 , 0 , 0 , 0 , 0 ) ;
179
+ setTimeout ( tabsload1 , 1 ) ;
180
+ } ) ;
181
+ element . tabs ( "load" , 3 ) ;
182
+ tabs_state ( element , 1 , 0 , 0 , 0 , 0 ) ;
183
+
184
+ function tabsload1 ( ) {
185
+ // no need to test details of event (tested in events tests)
186
+ element . one ( "tabsbeforeload" , function ( ) {
187
+ ok ( true , "tabsbeforeload invoked" ) ;
188
+ } ) ;
189
+ element . one ( "tabsload" , function ( ) {
190
+ ok ( true , "tabsload invoked" ) ;
191
+ setTimeout ( tabsload2 , 1 ) ;
192
+ } ) ;
193
+ element . tabs ( "option" , "active" , 3 ) ;
194
+ tabs_state ( element , 0 , 0 , 0 , 1 , 0 ) ;
195
+ }
196
+
197
+ function tabsload2 ( ) {
198
+ // reload content of active tab
199
+ element . one ( "tabsbeforeload" , function ( event , ui ) {
200
+ var tab = element . find ( ".ui-tabs-nav a" ) . eq ( 3 ) ,
201
+ panelId = tab . attr ( "aria-controls" ) ,
202
+ panel = $ ( "#" + panelId ) ;
203
+
204
+ ok ( ! ( "originalEvent" in event ) , "originalEvent" ) ;
205
+ equals ( ui . tab . size ( ) , 1 , "tab size" ) ;
206
+ strictEqual ( ui . tab [ 0 ] , tab [ 0 ] , "tab" ) ;
207
+ equals ( ui . panel . size ( ) , 1 , "panel size" ) ;
208
+ strictEqual ( ui . panel [ 0 ] , panel [ 0 ] , "panel" ) ;
209
+ tabs_state ( element , 0 , 0 , 0 , 1 , 0 ) ;
210
+ } ) ;
211
+ element . one ( "tabsload" , function ( event , ui ) {
212
+ var tab = element . find ( ".ui-tabs-nav a" ) . eq ( 3 ) ,
213
+ panelId = tab . attr ( "aria-controls" ) ,
214
+ panel = $ ( "#" + panelId ) ;
215
+
216
+ ok ( ! ( "originalEvent" in event ) , "originalEvent" ) ;
217
+ equals ( ui . tab . size ( ) , 1 , "tab size" ) ;
218
+ strictEqual ( ui . tab [ 0 ] , tab [ 0 ] , "tab" ) ;
219
+ equals ( ui . panel . size ( ) , 1 , "panel size" ) ;
220
+ strictEqual ( ui . panel [ 0 ] , panel [ 0 ] , "panel" ) ;
221
+ tabs_state ( element , 0 , 0 , 0 , 1 , 0 ) ;
222
+ start ( ) ;
223
+ } ) ;
224
+ element . tabs ( "load" , 3 ) ;
225
+ tabs_state ( element , 0 , 0 , 0 , 1 , 0 ) ;
226
+ }
150
227
} ) ;
151
228
152
229
} ( jQuery ) ) ;
0 commit comments