@@ -87,48 +87,55 @@ asyncTest( "handle submenu auto collapse: mouseleave", function() {
87
87
var $menu = $ ( "#menu2" ) . menu ( ) ;
88
88
89
89
$menu . find ( "li:nth-child(7)" ) . trigger ( "mouseover" ) ;
90
- setTimeout ( function ( ) {
90
+ setTimeout ( menumouseleave1 , 350 ) ;
91
+
92
+ function menumouseleave1 ( ) {
91
93
equal ( $menu . find ( "ul[aria-expanded='true']" ) . length , 1 , "first submenu expanded" ) ;
92
94
$menu . find ( "li:nth-child(7) li:first" ) . trigger ( "mouseover" ) ;
93
- setTimeout ( function ( ) {
94
- equal ( $menu . find ( "ul[aria-expanded='true']" ) . length , 2 , "second submenu expanded" ) ;
95
- $menu . find ( "ul[aria-expanded='true']:first" ) . trigger ( "mouseleave" ) ;
96
- setTimeout ( function ( ) {
97
- equal ( $menu . find ( "ul[aria-expanded='true']" ) . length , 1 , "second submenu collapsed" ) ;
98
- $menu . trigger ( "mouseleave" ) ;
99
- setTimeout ( function ( ) {
100
- equal ( $menu . find ( "ul[aria-expanded='true']" ) . length , 0 , "first submenu collapsed" ) ;
101
- start ( ) ;
102
- } , 1400 ) ;
103
- } , 1050 ) ;
104
- } , 700 ) ;
105
- } , 350 ) ;
95
+ setTimeout ( menumouseleave2 , 350 ) ;
96
+ }
97
+ function menumouseleave2 ( ) {
98
+ equal ( $menu . find ( "ul[aria-expanded='true']" ) . length , 2 , "second submenu expanded" ) ;
99
+ $menu . find ( "ul[aria-expanded='true']:first" ) . trigger ( "mouseleave" ) ;
100
+ setTimeout ( menumouseleave3 , 350 ) ;
101
+ }
102
+ function menumouseleave3 ( ) {
103
+ equal ( $menu . find ( "ul[aria-expanded='true']" ) . length , 1 , "second submenu collapsed" ) ;
104
+ $menu . trigger ( "mouseleave" ) ;
105
+ setTimeout ( menumouseleave4 , 350 ) ;
106
+ }
107
+ function menumouseleave4 ( ) {
108
+ equal ( $menu . find ( "ul[aria-expanded='true']" ) . length , 0 , "first submenu collapsed" ) ;
109
+ start ( ) ;
110
+ }
106
111
} ) ;
107
112
108
- asyncTest ( "handle custom menu item submenu auto collapse: mouseleave" , function ( ) {
109
- expect ( 5 ) ;
113
+ asyncTest ( "handle submenu auto collapse: mouseleave" , function ( ) {
114
+ expect ( 4 ) ;
110
115
var $menu = $ ( "#menu5" ) . menu ( { menus : "div" } ) ;
111
116
112
- $menu . children ( ":nth-child(7)" ) . trigger ( "mouseover" ) ;
113
- setTimeout ( function ( ) {
117
+ $menu . find ( ":nth-child(7)" ) . trigger ( "mouseover" ) ;
118
+ setTimeout ( menumouseleave1 , 350 ) ;
119
+
120
+ function menumouseleave1 ( ) {
114
121
equal ( $menu . find ( "div[aria-expanded='true']" ) . length , 1 , "first submenu expanded" ) ;
115
- $menu . children ( ":nth-child(7)" ) . find ( "div:first " ) . children ( ":first" ) . trigger ( "mouseover" ) ;
116
- setTimeout ( function ( ) {
117
- equal ( $menu . find ( "div[aria-expanded='true']" ) . length , 2 , "second submenu expanded" ) ;
118
- $menu . find ( "div[aria-expanded='true']:first" ) . trigger ( "mouseleave" ) ;
119
- setTimeout ( function ( ) {
120
- equal ( $menu . find ( "div[aria-expanded='true']" ) . length , 1 , "second submenu collapsed " ) ;
121
- $menu . simulate ( "keydown" , { keyCode : $ . ui . keyCode . DOWN } ) ;
122
- ok ( $menu . find ( ".ui-state-active" ) . is ( "#menu5 :nth-child(7) a" ) ,
123
- "down keypress selected an item from the first submenu" ) ;
124
- $menu . trigger ( "mouseleave " ) ;
125
- setTimeout ( function ( ) {
126
- equal ( $menu . find ( "div[aria-expanded='true']" ) . length , 0 , "first submenu collapsed" ) ;
127
- start ( ) ;
128
- } , 1400 ) ;
129
- } , 1050 ) ;
130
- } , 700 ) ;
131
- } , 350 ) ;
122
+ $menu . find ( ":nth-child(7)" ) . find ( "div" ) . eq ( 0 ) . children ( ) . eq ( 0 ) . trigger ( "mouseover" ) ;
123
+ setTimeout ( menumouseleave2 , 350 ) ;
124
+ }
125
+ function menumouseleave2 ( ) {
126
+ equal ( $menu . find ( "div[aria-expanded='true']" ) . length , 2 , "second submenu expanded" ) ;
127
+ $menu . find ( "div[aria-expanded='true']:first " ) . trigger ( "mouseleave " ) ;
128
+ setTimeout ( menumouseleave3 , 350 ) ;
129
+ }
130
+ function menumouseleave3 ( ) {
131
+ equal ( $menu . find ( "div[aria-expanded='true']" ) . length , 1 , "second submenu collapsed " ) ;
132
+ $menu . trigger ( "mouseleave" ) ;
133
+ setTimeout ( menumouseleave4 , 350 ) ;
134
+ }
135
+ function menumouseleave4 ( ) {
136
+ equal ( $menu . find ( "div[aria-expanded='true']" ) . length , 0 , "first submenu collapsed" ) ;
137
+ start ( ) ;
138
+ }
132
139
} ) ;
133
140
134
141
@@ -206,12 +213,15 @@ asyncTest("handle keyboard navigation on menu without scroll and with submenus",
206
213
} ) ;
207
214
208
215
menu_log ( "keydown" , true ) ;
216
+ element . one ( "menufocus" , function ( event , ui ) {
217
+ element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . DOWN } ) ;
218
+ element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . DOWN } ) ;
219
+ equals ( $ ( "#log" ) . html ( ) , "2,1,keydown," , "Keydown DOWN" ) ;
220
+ setTimeout ( menukeyboard1 , 50 ) ;
221
+ } ) ;
209
222
element . focus ( ) ;
210
- element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . DOWN } ) ;
211
- element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . DOWN } ) ;
212
- equals ( $ ( "#log" ) . html ( ) , "2,1,0,keydown," , "Keydown DOWN" ) ;
213
223
214
- setTimeout ( function ( ) {
224
+ function menukeyboard1 ( ) {
215
225
menu_log ( "keydown" , true ) ;
216
226
element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . UP } ) ;
217
227
element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . UP } ) ;
@@ -231,59 +241,62 @@ asyncTest("handle keyboard navigation on menu without scroll and with submenus",
231
241
setTimeout ( function ( ) {
232
242
equals ( $ ( "#log" ) . html ( ) , "0,4,3,2,1,keydown," , "Keydown RIGHT (open submenu)" ) ;
233
243
} , 50 ) ;
244
+ setTimeout ( menukeyboard2 , 50 ) ;
245
+ }
234
246
235
- setTimeout ( function ( ) {
236
- menu_log ( "keydown" , true ) ;
237
- element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . LEFT } ) ;
238
- equals ( $ ( "#log" ) . html ( ) , "4,keydown," , "Keydown LEFT (close submenu)" ) ;
247
+ function menukeyboard2 ( ) {
248
+ menu_log ( "keydown" , true ) ;
249
+ element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . LEFT } ) ;
250
+ equals ( $ ( "#log" ) . html ( ) , "4,keydown," , "Keydown LEFT (close submenu)" ) ;
239
251
240
- //re-open submenu
241
- element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . RIGHT } ) ;
252
+ //re-open submenu
253
+ element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . RIGHT } ) ;
254
+ setTimeout ( menukeyboard3 , 50 ) ;
255
+ }
242
256
243
- setTimeout ( function ( ) {
244
- menu_log ( "keydown" , true ) ;
245
- element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . PAGE_DOWN } ) ;
246
- equals ( $ ( "#log" ) . html ( ) , "2,keydown," , "Keydown PAGE_DOWN" ) ;
257
+ function menukeyboard3 ( ) {
258
+ menu_log ( "keydown" , true ) ;
259
+ element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . PAGE_DOWN } ) ;
260
+ equals ( $ ( "#log" ) . html ( ) , "2,keydown," , "Keydown PAGE_DOWN" ) ;
247
261
248
- menu_log ( "keydown" , true ) ;
249
- element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . PAGE_DOWN } ) ;
250
- equals ( $ ( "#log" ) . html ( ) , "keydown," , "Keydown PAGE_DOWN (no effect)" ) ;
262
+ menu_log ( "keydown" , true ) ;
263
+ element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . PAGE_DOWN } ) ;
264
+ equals ( $ ( "#log" ) . html ( ) , "keydown," , "Keydown PAGE_DOWN (no effect)" ) ;
251
265
252
- menu_log ( "keydown" , true ) ;
253
- element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . PAGE_UP } ) ;
254
- equals ( $ ( "#log" ) . html ( ) , "0,keydown," , "Keydown PAGE_UP" ) ;
266
+ menu_log ( "keydown" , true ) ;
267
+ element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . PAGE_UP } ) ;
268
+ equals ( $ ( "#log" ) . html ( ) , "0,keydown," , "Keydown PAGE_UP" ) ;
255
269
256
- menu_log ( "keydown" , true ) ;
257
- element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . PAGE_UP } ) ;
258
- equals ( $ ( "#log" ) . html ( ) , "keydown," , "Keydown PAGE_UP (no effect)" ) ;
270
+ menu_log ( "keydown" , true ) ;
271
+ element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . PAGE_UP } ) ;
272
+ equals ( $ ( "#log" ) . html ( ) , "keydown," , "Keydown PAGE_UP (no effect)" ) ;
259
273
260
- menu_log ( "keydown" , true ) ;
261
- element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . END } ) ;
262
- equals ( $ ( "#log" ) . html ( ) , "2,keydown," , "Keydown END" ) ;
274
+ menu_log ( "keydown" , true ) ;
275
+ element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . END } ) ;
276
+ equals ( $ ( "#log" ) . html ( ) , "2,keydown," , "Keydown END" ) ;
263
277
264
- menu_log ( "keydown" , true ) ;
265
- element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . HOME } ) ;
266
- equals ( $ ( "#log" ) . html ( ) , "0,keydown," , "Keydown HOME" ) ;
278
+ menu_log ( "keydown" , true ) ;
279
+ element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . HOME } ) ;
280
+ equals ( $ ( "#log" ) . html ( ) , "0,keydown," , "Keydown HOME" ) ;
267
281
268
- menu_log ( "keydown" , true ) ;
269
- element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . ESCAPE } ) ;
270
- equals ( $ ( "#log" ) . html ( ) , "4,keydown," , "Keydown ESCAPE (close submenu)" ) ;
282
+ menu_log ( "keydown" , true ) ;
283
+ element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . ESCAPE } ) ;
284
+ equals ( $ ( "#log" ) . html ( ) , "4,keydown," , "Keydown ESCAPE (close submenu)" ) ;
271
285
272
- menu_log ( "keydown" , true ) ;
273
- element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . ENTER } ) ;
286
+ menu_log ( "keydown" , true ) ;
287
+ element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . ENTER } ) ;
288
+ setTimeout ( menukeyboard4 , 50 ) ;
289
+ }
274
290
275
- setTimeout ( function ( ) {
276
- equals ( $ ( "#log" ) . html ( ) , "0,keydown," , "Keydown ENTER (open submenu)" ) ;
291
+ function menukeyboard4 ( ) {
292
+ equals ( $ ( "#log" ) . html ( ) , "0,keydown," , "Keydown ENTER (open submenu)" ) ;
277
293
278
- menu_log ( "keydown" , true ) ;
279
- element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . ENTER } ) ;
280
- equals ( $ ( "#log" ) . html ( ) , "Ada,keydown," , "Keydown ENTER (select item)" ) ;
294
+ menu_log ( "keydown" , true ) ;
295
+ element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . ENTER } ) ;
296
+ equals ( $ ( "#log" ) . html ( ) , "Ada,keydown," , "Keydown ENTER (select item)" ) ;
281
297
282
- start ( ) ;
283
- } , 200 ) ;
284
- } , 150 ) ;
285
- } , 100 ) ;
286
- } , 50 ) ;
298
+ start ( ) ;
299
+ }
287
300
} ) ;
288
301
289
302
test ( "handle keyboard navigation on menu with scroll and without submenus" , function ( ) {
@@ -369,12 +382,16 @@ asyncTest("handle keyboard navigation on menu with scroll and with submenus", fu
369
382
} ) ;
370
383
371
384
menu_log ( "keydown" , true ) ;
385
+ element . one ( "menufocus" , function ( event , ui ) {
386
+ element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . DOWN } ) ;
387
+ element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . DOWN } ) ;
388
+ equals ( $ ( "#log" ) . html ( ) , "2,1,keydown," , "Keydown DOWN" ) ;
389
+ setTimeout ( menukeyboard1 , 50 ) ;
390
+ } ) ;
372
391
element . focus ( ) ;
373
- element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . DOWN } ) ;
374
- element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . DOWN } ) ;
375
- equals ( $ ( "#log" ) . html ( ) , "2,1,0,keydown," , "Keydown DOWN" ) ;
392
+
376
393
377
- setTimeout ( function ( ) {
394
+ function menukeyboard1 ( ) {
378
395
menu_log ( "keydown" , true ) ;
379
396
element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . UP } ) ;
380
397
element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . UP } ) ;
@@ -391,59 +408,62 @@ asyncTest("handle keyboard navigation on menu with scroll and with submenus", fu
391
408
setTimeout ( function ( ) {
392
409
equals ( $ ( "#log" ) . html ( ) , "0,1,keydown," , "Keydown RIGHT (open submenu)" ) ;
393
410
} , 50 ) ;
411
+ setTimeout ( menukeyboard2 , 50 ) ;
412
+ }
394
413
395
- setTimeout ( function ( ) {
396
- menu_log ( "keydown" , true ) ;
397
- element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . LEFT } ) ;
398
- equals ( $ ( "#log" ) . html ( ) , "1,keydown," , "Keydown LEFT (close submenu)" ) ;
414
+ function menukeyboard2 ( ) {
415
+ menu_log ( "keydown" , true ) ;
416
+ element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . LEFT } ) ;
417
+ equals ( $ ( "#log" ) . html ( ) , "1,keydown," , "Keydown LEFT (close submenu)" ) ;
399
418
400
- //re-open submenu
401
- element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . RIGHT } ) ;
419
+ //re-open submenu
420
+ element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . RIGHT } ) ;
421
+ setTimeout ( menukeyboard3 , 50 ) ;
422
+ }
402
423
403
- setTimeout ( function ( ) {
404
- menu_log ( "keydown" , true ) ;
405
- element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . PAGE_DOWN } ) ;
406
- equals ( $ ( "#log" ) . html ( ) , "10,keydown," , "Keydown PAGE_DOWN" ) ;
424
+ function menukeyboard3 ( ) {
425
+ menu_log ( "keydown" , true ) ;
426
+ element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . PAGE_DOWN } ) ;
427
+ equals ( $ ( "#log" ) . html ( ) , "10,keydown," , "Keydown PAGE_DOWN" ) ;
407
428
408
- menu_log ( "keydown" , true ) ;
409
- element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . PAGE_DOWN } ) ;
410
- equals ( $ ( "#log" ) . html ( ) , "20,keydown," , "Keydown PAGE_DOWN" ) ;
429
+ menu_log ( "keydown" , true ) ;
430
+ element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . PAGE_DOWN } ) ;
431
+ equals ( $ ( "#log" ) . html ( ) , "20,keydown," , "Keydown PAGE_DOWN" ) ;
411
432
412
- menu_log ( "keydown" , true ) ;
413
- element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . PAGE_UP } ) ;
414
- equals ( $ ( "#log" ) . html ( ) , "10,keydown," , "Keydown PAGE_UP" ) ;
433
+ menu_log ( "keydown" , true ) ;
434
+ element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . PAGE_UP } ) ;
435
+ equals ( $ ( "#log" ) . html ( ) , "10,keydown," , "Keydown PAGE_UP" ) ;
415
436
416
- menu_log ( "keydown" , true ) ;
417
- element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . PAGE_UP } ) ;
418
- equals ( $ ( "#log" ) . html ( ) , "0,keydown," , "Keydown PAGE_UP" ) ;
437
+ menu_log ( "keydown" , true ) ;
438
+ element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . PAGE_UP } ) ;
439
+ equals ( $ ( "#log" ) . html ( ) , "0,keydown," , "Keydown PAGE_UP" ) ;
419
440
420
- menu_log ( "keydown" , true ) ;
421
- element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . END } ) ;
422
- equals ( $ ( "#log" ) . html ( ) , "27,keydown," , "Keydown END" ) ;
441
+ menu_log ( "keydown" , true ) ;
442
+ element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . END } ) ;
443
+ equals ( $ ( "#log" ) . html ( ) , "27,keydown," , "Keydown END" ) ;
423
444
424
- menu_log ( "keydown" , true ) ;
425
- element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . HOME } ) ;
426
- equals ( $ ( "#log" ) . html ( ) , "0,keydown," , "Keydown HOME" ) ;
445
+ menu_log ( "keydown" , true ) ;
446
+ element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . HOME } ) ;
447
+ equals ( $ ( "#log" ) . html ( ) , "0,keydown," , "Keydown HOME" ) ;
427
448
428
- menu_log ( "keydown" , true ) ;
429
- element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . ESCAPE } ) ;
430
- equals ( $ ( "#log" ) . html ( ) , "1,keydown," , "Keydown ESCAPE (close submenu)" ) ;
449
+ menu_log ( "keydown" , true ) ;
450
+ element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . ESCAPE } ) ;
451
+ equals ( $ ( "#log" ) . html ( ) , "1,keydown," , "Keydown ESCAPE (close submenu)" ) ;
431
452
432
- menu_log ( "keydown" , true ) ;
433
- element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . ENTER } ) ;
453
+ menu_log ( "keydown" , true ) ;
454
+ element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . ENTER } ) ;
455
+ setTimeout ( menukeyboard4 , 50 ) ;
456
+ }
434
457
435
- setTimeout ( function ( ) {
436
- equals ( $ ( "#log" ) . html ( ) , "0,keydown," , "Keydown ENTER (open submenu)" ) ;
458
+ function menukeyboard4 ( ) {
459
+ equals ( $ ( "#log" ) . html ( ) , "0,keydown," , "Keydown ENTER (open submenu)" ) ;
437
460
438
- menu_log ( "keydown" , true ) ;
439
- element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . ENTER } ) ;
440
- equals ( $ ( "#log" ) . html ( ) , "Aberdeen,keydown," , "Keydown ENTER (select item)" ) ;
461
+ menu_log ( "keydown" , true ) ;
462
+ element . simulate ( "keydown" , { keyCode : $ . ui . keyCode . ENTER } ) ;
463
+ equals ( $ ( "#log" ) . html ( ) , "Aberdeen,keydown," , "Keydown ENTER (select item)" ) ;
441
464
442
- start ( ) ;
443
- } , 200 ) ;
444
- } , 150 ) ;
445
- } , 100 ) ;
446
- } , 50 ) ;
465
+ start ( ) ;
466
+ }
447
467
} ) ;
448
468
449
469
} ) ( jQuery ) ;
0 commit comments