@@ -247,42 +247,78 @@ test('select', function() {
247
247
equals ( evenObj . originalEvent . type , "click" , "select triggered by click" ) ;
248
248
} ) ;
249
249
250
- module ( "tabs (deprecated): methods" ) ;
251
-
252
- test ( 'add' , function ( ) {
253
- expect ( 4 ) ;
254
-
255
- el = $ ( '#tabs1' ) . tabs ( ) ;
256
- el . tabs ( 'add' , '#new' , 'New' ) ;
257
-
258
- var added = $ ( 'li:last' , el ) . simulate ( 'mouseover' ) ;
259
- ok ( added . is ( '.ui-state-hover' ) , 'should add mouseover handler to added tab' ) ;
260
- added . simulate ( 'mouseout' ) ;
261
- var other = $ ( 'li:first' , el ) . simulate ( 'mouseover' ) ;
262
- ok ( other . is ( '.ui-state-hover' ) , 'should not remove mouseover handler from existing tab' ) ;
263
- other . simulate ( 'mouseout' ) ;
250
+ module ( "tabs (deprecated): methods" ) ;
251
+
252
+ test ( "add" , function ( ) {
253
+ expect ( 18 ) ;
254
+
255
+ var element = $ ( "#tabs1" ) . tabs ( ) ;
256
+ tabs_state ( element , 1 , 0 , 0 ) ;
257
+
258
+ // add without index
259
+ element . tabs ( "add" , "#new" , "New" ) ;
260
+ tabs_state ( element , 1 , 0 , 0 , 0 ) ;
261
+ var tab = element . find ( ".ui-tabs-nav li" ) . last ( ) ,
262
+ anchor = tab . find ( "a" ) ;
263
+ equals ( tab . text ( ) , "New" , "label" ) ;
264
+ equals ( anchor . attr ( "href" ) , "#new" , "href" ) ;
265
+ equals ( anchor . attr ( "aria-controls" ) , "new" , "aria-controls" ) ;
266
+ ok ( ! tab . hasClass ( "ui-state-hover" ) , "not hovered" ) ;
267
+ anchor . simulate ( "mouseover" ) ;
268
+ ok ( tab . hasClass ( "ui-state-hover" ) , "hovered" ) ;
269
+ anchor . simulate ( "click" ) ;
270
+ tabs_state ( element , 0 , 0 , 0 , 1 ) ;
271
+
272
+ // add remote tab with index
273
+ element . tabs ( "add" , "data/test.html" , "New Remote" , 1 ) ;
274
+ tabs_state ( element , 0 , 0 , 0 , 0 , 1 ) ;
275
+ tab = element . find ( ".ui-tabs-nav li" ) . eq ( 1 ) ;
276
+ anchor = tab . find ( "a" ) ;
277
+ equals ( tab . text ( ) , "New Remote" , "label" ) ;
278
+ equals ( anchor . attr ( "href" ) , "data/test.html" , "href" ) ;
279
+ ok ( / ^ u i - t a b s - \d + $ / . test ( anchor . attr ( "aria-controls" ) ) , "aria controls" ) ;
280
+ ok ( ! tab . hasClass ( "ui-state-hover" ) , "not hovered" ) ;
281
+ anchor . simulate ( "mouseover" ) ;
282
+ ok ( tab . hasClass ( "ui-state-hover" ) , "hovered" ) ;
283
+ anchor . simulate ( "click" ) ;
284
+ tabs_state ( element , 0 , 1 , 0 , 0 , 0 ) ;
285
+
286
+ // add to empty tab set
287
+ element = $ ( "<div><ul></ul></div>" ) . tabs ( ) ;
288
+ equals ( element . tabs ( "option" , "active" ) , false , "active: false on init" ) ;
289
+ element . tabs ( "add" , "#first" , "First" ) ;
290
+ tabs_state ( element , 1 ) ;
291
+ equals ( element . tabs ( "option" , "active" ) , 0 , "active: 0 after add" ) ;
292
+ } ) ;
264
293
265
- equals ( $ ( 'a' , added ) . attr ( 'href' ) , '#new' , 'should not expand href to full url of current page' ) ;
294
+ test ( "#5069 - ui.tabs.add creates two tab panels when using a full URL" , function ( ) {
295
+ expect ( 2 ) ;
266
296
267
- ok ( false , "missing test - untested code is broken code." ) ;
297
+ var element = $ ( "#tabs2" ) . tabs ( ) ;
298
+ equals ( element . children ( "div" ) . length , element . find ( ".ui-tabs-nav li" ) . length ) ;
299
+ element . tabs ( "add" , "/new" , "New" ) ;
300
+ equals ( element . children ( "div" ) . length , element . find ( ".ui-tabs-nav li" ) . length ) ;
268
301
} ) ;
269
302
270
- test ( ' remove' , function ( ) {
271
- expect ( 4 ) ;
303
+ test ( " remove" , function ( ) {
304
+ expect ( 8 ) ;
272
305
273
- el = $ ( '#tabs1' ) . tabs ( ) ;
306
+ var element = $ ( "#tabs1" ) . tabs ( { active : 1 } ) ;
307
+ tabs_state ( element , 0 , 1 , 0 ) ;
274
308
275
- el . tabs ( 'remove' , 0 ) ;
276
- equals ( el . tabs ( 'length' ) , 2 , 'remove tab' ) ;
277
- equals ( $ ( 'li a[href$="fragment-1"]' , el ) . length , 0 , 'remove associated list item' ) ;
278
- equals ( $ ( '#fragment-1' ) . length , 0 , 'remove associated panel' ) ;
309
+ element . tabs ( "remove" , 1 ) ;
310
+ tabs_state ( element , 0 , 1 ) ;
311
+ equals ( element . tabs ( "option" , "active" ) , 1 ) ;
312
+ equals ( element . find ( ".ui-tabs-nav li a[href$='fragment-2']" ) . length , 0 ,
313
+ "remove correct list item" ) ;
314
+ equals ( element . find ( "#fragment-2" ) . length , 0 , "remove correct panel" ) ;
279
315
280
- // TODO delete tab -> focus tab to right
281
- // TODO delete last tab -> focus tab to left
316
+ element . tabs ( "remove" , 1 ) ;
317
+ tabs_state ( element , 1 ) ;
318
+ equals ( element . tabs ( "option" , "active" ) , 0 ) ;
282
319
283
- el . tabs ( 'select' , 1 ) ;
284
- el . tabs ( 'remove' , 1 ) ;
285
- equals ( el . tabs ( 'option' , 'selected' ) , 0 , 'update selected property' ) ;
320
+ element . tabs ( "remove" , 0 ) ;
321
+ equals ( element . tabs ( "option" , "active" ) , false ) ;
286
322
} ) ;
287
323
288
324
test ( 'select' , function ( ) {
@@ -314,17 +350,6 @@ test('select', function() {
314
350
equals ( el . tabs ( 'option' , 'active' ) , 1 , 'should select tab by id' ) ;
315
351
} ) ;
316
352
317
-
318
- test ( '#5069 - ui.tabs.add creates two tab panels when using a full URL' , function ( ) {
319
- // http://dev.jqueryui.com/ticket/5069
320
- expect ( 2 ) ;
321
-
322
- el = $ ( '#tabs2' ) . tabs ( ) ;
323
- equals ( el . children ( 'div' ) . length , el . find ( '> ul > li' ) . length , 'After creation, number of panels should be equal to number of tabs' ) ;
324
- el . tabs ( 'add' , '/ajax_html_echo' , 'Test' ) ;
325
- equals ( el . children ( 'div' ) . length , el . find ( '> ul > li' ) . length , 'After add, number of panels should be equal to number of tabs' ) ;
326
- } ) ;
327
-
328
353
test ( "length" , function ( ) {
329
354
expect ( 2 ) ;
330
355
0 commit comments