@@ -6,7 +6,7 @@ var menuRuntime = null;
6
6
module ( 'contextMenu events' ) ;
7
7
8
8
// before each test
9
- function createContextMenu ( ) {
9
+ function createContextMenu ( items ) {
10
10
var $fixture = $ ( "#qunit-fixture" ) ;
11
11
12
12
// ensure `#qunit-fixture` exists when testing with karma runner
@@ -17,6 +17,13 @@ function createContextMenu() {
17
17
18
18
$fixture . append ( "<div class='context-menu'>right click me!</div>" ) ;
19
19
20
+ if ( ! items ) {
21
+ items = {
22
+ "copy" : { name : "Copy" , icon : "copy" } ,
23
+ "paste" : { name : "Paste" , icon : "paste" }
24
+ } ;
25
+ }
26
+
20
27
$ . contextMenu ( {
21
28
selector : '.context-menu' ,
22
29
events : {
@@ -31,10 +38,7 @@ function createContextMenu() {
31
38
callback : function ( key , options ) {
32
39
itemSelectedCounter = itemSelectedCounter + 1 ;
33
40
} ,
34
- items : {
35
- "copy" : { name : "Copy" , icon : "copy" } ,
36
- "paste" : { name : "Paste" , icon : "paste" }
37
- }
41
+ items : items
38
42
} ) ;
39
43
} ;
40
44
@@ -115,3 +119,18 @@ test('activate contextMenu item', function() {
115
119
equal ( itemSelectedCounter , 1 , 'selected menu item was clicked once' ) ;
116
120
destroyContextMenuAndCleanup ( ) ;
117
121
} ) ;
122
+
123
+
124
+
125
+ test ( 'do not open context menu with no visible items' , function ( ) {
126
+ createContextMenu ( items = {
127
+ "copy" : { name : "Copy" , icon : "copy" , visible : function ( ) { return false } } ,
128
+ "paste" : { name : "Paste" , icon : "paste" , visible : function ( ) { return false } }
129
+
130
+ } ) ;
131
+ $ ( ".context-menu" ) . contextMenu ( ) ;
132
+
133
+ equal ( menuOpenCounter , 0 , 'selected menu wat not opened' ) ;
134
+ destroyContextMenuAndCleanup ( ) ;
135
+ } ) ;
136
+
0 commit comments