@@ -375,24 +375,25 @@ QUnit.test("UL menu", function(assert) {
375
375
376
376
// ****************************************************************************
377
377
378
- QUnit . module ( "'action' option " , lifecycle ) ;
378
+ QUnit . module ( "Dynmic options " , lifecycle ) ;
379
379
380
- QUnit . test ( "Array menu " , function ( assert ) {
380
+ QUnit . test ( "'action' option " , function ( assert ) {
381
381
var $ctx , $popup ,
382
382
menu = [
383
- { title : "Cut" , cmd : "cut" , uiIcon : "ui-icon-scissors" ,
384
- data : { foo : "bar" } , addClass : "custom-class-1" ,
385
- action : function ( event , ui ) {
386
- log ( "cut action" ) ;
387
- assert . equal ( ui . cmd , "cut" , "action: ui.cmd is set" ) ;
388
- assert . equal ( ui . target . text ( ) , "AAA" , "action: ui.target is set" ) ;
389
- assert . equal ( ui . item . data ( ) . foo , "bar" , "action: ui.item.data() is set" ) ;
390
- assert . ok ( ui . item . hasClass ( "custom-class-1" ) , "action: addClass property works" ) ;
391
- }
392
- } ,
393
- { title : "Copy" , cmd : "copy" , uiIcon : "ui-icon-copy" } ,
394
- { title : "Paste" , cmd : "paste" , uiIcon : "ui-icon-clipboard" , disabled : true }
395
- ] ,
383
+ { title : "Cut" , cmd : "cut" , uiIcon : "ui-icon-scissors" ,
384
+ data : { foo : "bar" } , addClass : "custom-class-1" ,
385
+ action : function ( event , ui ) {
386
+ log ( "cut action" ) ;
387
+ assert . equal ( ui . cmd , "cut" , "action: ui.cmd is set" ) ;
388
+ assert . equal ( ui . target . text ( ) , "AAA" , "action: ui.target is set" ) ;
389
+ assert . equal ( ui . item . data ( ) . foo , "bar" , "action: ui.item.data() is set" ) ;
390
+ assert . ok ( ui . item . hasClass ( "custom-class-1" ) ,
391
+ "action: addClass property works" ) ;
392
+ }
393
+ } ,
394
+ { title : "Copy" , cmd : "copy" , uiIcon : "ui-icon-copy" } ,
395
+ { title : "Paste" , cmd : "paste" , uiIcon : "ui-icon-clipboard" , disabled : true }
396
+ ] ,
396
397
done = assert . async ( ) ;
397
398
398
399
assert . expect ( 9 ) ;
@@ -416,7 +417,86 @@ QUnit.test("Array menu", function(assert) {
416
417
} ,
417
418
close : function ( event ) {
418
419
log ( "close" ) ;
419
- assert . equal ( logOutput ( ) , "open(),after open(),open,select(cut),cut action,close" ,
420
+ assert . equal ( logOutput ( ) ,
421
+ "open(),after open(),open,select(cut),cut action,close" ,
422
+ "Event sequence OK." ) ;
423
+ done ( ) ;
424
+ }
425
+ } ) ;
426
+
427
+ $ctx = $ ( ":moogle-contextmenu" ) ;
428
+ $popup = $ctx . contextmenu ( "getMenu" ) ;
429
+
430
+ log ( "open()" ) ;
431
+ $ctx . contextmenu ( "open" , $ ( "span.hasmenu:first" ) ) ;
432
+ log ( "after open()" ) ;
433
+ } ) ;
434
+
435
+ QUnit . test ( "'tooltip' / 'disabled' options" , function ( assert ) {
436
+ var $ctx , $popup ,
437
+ menu = [ {
438
+ title : "Cut" , cmd : "cut" , tooltip : function ( event , ui ) {
439
+ log ( "tooltip(cut)" ) ;
440
+ assert . equal ( ui . cmd , "cut" , "ui.cmd is set" ) ;
441
+ assert . equal ( ui . target . text ( ) , "AAA" , "ui.target is set" ) ;
442
+ assert . equal ( ui . item . text ( ) , "Cut" , "ui.item is set" ) ;
443
+ return "dynamic tt" ;
444
+ }
445
+ } ,
446
+ { title : "Copy" , cmd : "copy" , tooltip : "static tt" } ,
447
+ { title : "Paste" , cmd : "paste" , disabled : true } ,
448
+ { title : "Delete" , cmd : "delete" , disabled : function ( event , ui ) {
449
+ log ( "disabled(delete)" ) ;
450
+ return false ;
451
+ }
452
+ } ,
453
+ { title : "Edit" , cmd : "edit" , disabled : function ( event , ui ) {
454
+ log ( "disabled(edit)" ) ;
455
+ return true ; }
456
+ } ,
457
+ { title : "Hidden" , cmd : "hidden" , disabled : function ( event , ui ) {
458
+ log ( "disabled(hidden)" ) ;
459
+ return "hide" ;
460
+ }
461
+ }
462
+ ] ,
463
+ done = assert . async ( ) ;
464
+
465
+ assert . expect ( 12 ) ;
466
+
467
+ $ ( "#container" ) . contextmenu ( {
468
+ delegate : ".hasmenu" ,
469
+ menu : menu ,
470
+ open : function ( event ) {
471
+ log ( "open" ) ;
472
+ assert . equal ( entry ( $popup , "cut" ) . attr ( "title" ) , "dynamic tt" ,
473
+ "tooltip callback result was used" ) ;
474
+ assert . equal ( entry ( $popup , "copy" ) . attr ( "title" ) , "static tt" ,
475
+ "static tooltip value was used" ) ;
476
+
477
+ assert . equal ( entry ( $popup , "paste" ) . hasClass ( "ui-state-disabled" ) , true ,
478
+ "static disabled value was used" ) ;
479
+ assert . equal ( entry ( $popup , "delete" ) . hasClass ( "ui-state-disabled" ) , false ,
480
+ "dynamic disabled value 'false' was used" ) ;
481
+ assert . ok ( entry ( $popup , "delete" ) . is ( ":visible" ) ,
482
+ "dynamic disabled value 'false' does not hide" ) ;
483
+ assert . equal ( entry ( $popup , "paste" ) . hasClass ( "ui-state-disabled" ) , true ,
484
+ "dynamic disabled value 'true' was used" ) ;
485
+ assert . ok ( entry ( $popup , "delete" ) . is ( ":visible" ) ,
486
+ "dynamic disabled value 'true' does not hide" ) ;
487
+ assert . ok ( entry ( $popup , "hidden" ) . is ( ":hidden" ) ,
488
+ "dynamic disabled value 'hide' was used" ) ;
489
+
490
+ // Click s.th. to close the menu
491
+ setTimeout ( function ( ) {
492
+ click ( $popup , 0 ) ;
493
+ } , 10 ) ;
494
+ } ,
495
+ close : function ( event ) {
496
+ log ( "close" ) ;
497
+ assert . equal ( logOutput ( ) ,
498
+ "open(),tooltip(cut),disabled(delete),disabled(edit),disabled(hidden)," +
499
+ "after open(),open,close" ,
420
500
"Event sequence OK." ) ;
421
501
done ( ) ;
422
502
}
0 commit comments