@@ -87,7 +87,7 @@ var th = new TestHelpers(),
8787 { title : "----" } ,
8888 { title : "More" , children : [
8989 { title : "Sub Item 1" , cmd : "sub1" } ,
90- { title : "Sub Item 2" , cmd : "sub2" }
90+ { title : "Sub Item 2" , cmd : "sub2" }
9191 ] }
9292 ] ,
9393 $ = jQuery ;
@@ -318,4 +318,60 @@ asyncTest("UL menu", function(){
318318} ) ;
319319
320320
321+ // ****************************************************************************
322+
323+
324+ module ( "'action' option" , lifecycle ) ;
325+
326+ asyncTest ( "Array menu" , function ( ) {
327+ var $ctx , $popup ,
328+ menu = [
329+ { title : "Cut" , cmd : "cut" , uiIcon : "ui-icon-scissors" ,
330+ action : function ( event , ui ) {
331+ log ( "cut action" ) ;
332+ equal ( ui . cmd , "cut" , "action: ui.cmd is set" ) ;
333+ equal ( ui . target . text ( ) , "AAA" , "action: ui.target is set" ) ;
334+ }
335+ } ,
336+ { title : "Copy" , cmd : "copy" , uiIcon : "ui-icon-copy" } ,
337+ { title : "Paste" , cmd : "paste" , uiIcon : "ui-icon-clipboard" , disabled : true }
338+ ] ;
339+
340+ expect ( 5 ) ;
341+
342+ $ ( "#container" ) . contextmenu ( {
343+ delegate : ".hasmenu" ,
344+ menu : menu ,
345+ open : function ( event ) {
346+ log ( "open" ) ;
347+ setTimeout ( function ( ) {
348+ click ( $popup , 0 ) ;
349+ } , 10 ) ;
350+ } ,
351+ select : function ( event , ui ) {
352+ var t = ui . item ? $ ( ui . item ) . find ( "a:first" ) . attr ( "href" ) : ui . item ;
353+ log ( "select(" + t + ")" ) ;
354+ equal ( ui . cmd , "cut" , "select: ui.cmd is set" ) ;
355+ equal ( ui . target . text ( ) , "AAA" , "select: ui.target is set" ) ;
356+ } ,
357+ close : function ( event ) {
358+ log ( "close" ) ;
359+ }
360+ } ) ;
361+
362+ $ctx = $ ( ":moogle-contextmenu" ) ;
363+ $popup = $ctx . contextmenu ( "getMenu" ) ;
364+
365+ log ( "open()" ) ;
366+ $ctx . contextmenu ( "open" , $ ( "span.hasmenu:first" ) ) ;
367+ log ( "after open()" ) ;
368+
369+ setTimeout ( function ( ) {
370+ equal ( logOutput ( ) , "open(),after open(),open,select(#cut),cut action,close" ,
371+ "Event sequence OK." ) ;
372+ start ( ) ;
373+ } , 500 ) ;
374+ } ) ;
375+
376+
321377} ) ;
0 commit comments