Skip to content

Commit 2fd2ab2

Browse files
committed
Menu tests: Handle async focus events in IE.
1 parent 0434bce commit 2fd2ab2

File tree

1 file changed

+101
-99
lines changed

1 file changed

+101
-99
lines changed

tests/unit/menu/menu_events.js

Lines changed: 101 additions & 99 deletions
Original file line numberDiff line numberDiff line change
@@ -211,78 +211,79 @@ asyncTest("handle keyboard navigation on menu without scroll and with submenus",
211211
element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
212212
equals( $("#log").html(), "2,1,0,keydown,", "Keydown DOWN");
213213

214-
menu_log("keydown",true);
215-
element.simulate( "keydown", { keyCode: $.ui.keyCode.UP } );
216-
element.simulate( "keydown", { keyCode: $.ui.keyCode.UP } );
217-
equals( $("#log").html(), "0,1,keydown,", "Keydown UP");
218-
219-
menu_log("keydown",true);
220-
element.simulate( "keydown", { keyCode: $.ui.keyCode.LEFT } );
221-
equals( $("#log").html(), "keydown,", "Keydown LEFT (no effect)");
222-
223-
menu_log("keydown",true);
224-
element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
225-
element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
226-
element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
227-
element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
228-
element.simulate( "keydown", { keyCode: $.ui.keyCode.RIGHT } );
229-
230-
setTimeout( function() {
231-
equals( $("#log").html(), "0,4,3,2,1,keydown,", "Keydown RIGHT (open submenu)");
232-
}, 50);
214+
setTimeout(function() {
215+
menu_log("keydown",true);
216+
element.simulate( "keydown", { keyCode: $.ui.keyCode.UP } );
217+
element.simulate( "keydown", { keyCode: $.ui.keyCode.UP } );
218+
equals( $("#log").html(), "0,1,keydown,", "Keydown UP");
233219

234-
setTimeout( function() {
235220
menu_log("keydown",true);
236221
element.simulate( "keydown", { keyCode: $.ui.keyCode.LEFT } );
237-
equals( $("#log").html(), "4,keydown,", "Keydown LEFT (close submenu)");
222+
equals( $("#log").html(), "keydown,", "Keydown LEFT (no effect)");
238223

239-
//re-open submenu
224+
menu_log("keydown",true);
225+
element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
226+
element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
227+
element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
228+
element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
240229
element.simulate( "keydown", { keyCode: $.ui.keyCode.RIGHT } );
241230

242231
setTimeout( function() {
243-
menu_log("keydown",true);
244-
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_DOWN } );
245-
equals( $("#log").html(), "2,keydown,", "Keydown PAGE_DOWN");
232+
equals( $("#log").html(), "0,4,3,2,1,keydown,", "Keydown RIGHT (open submenu)");
233+
}, 50);
246234

235+
setTimeout( function() {
247236
menu_log("keydown",true);
248-
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_DOWN } );
249-
equals( $("#log").html(), "keydown,", "Keydown PAGE_DOWN (no effect)");
237+
element.simulate( "keydown", { keyCode: $.ui.keyCode.LEFT } );
238+
equals( $("#log").html(), "4,keydown,", "Keydown LEFT (close submenu)");
250239

251-
menu_log("keydown",true);
252-
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_UP } );
253-
equals( $("#log").html(), "0,keydown,", "Keydown PAGE_UP");
240+
//re-open submenu
241+
element.simulate( "keydown", { keyCode: $.ui.keyCode.RIGHT } );
254242

255-
menu_log("keydown",true);
256-
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_UP } );
257-
equals( $("#log").html(), "keydown,", "Keydown PAGE_UP (no effect)");
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");
258247

259-
menu_log("keydown",true);
260-
element.simulate( "keydown", { keyCode: $.ui.keyCode.END } );
261-
equals( $("#log").html(), "2,keydown,", "Keydown END");
248+
menu_log("keydown",true);
249+
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_DOWN } );
250+
equals( $("#log").html(), "keydown,", "Keydown PAGE_DOWN (no effect)");
262251

263-
menu_log("keydown",true);
264-
element.simulate( "keydown", { keyCode: $.ui.keyCode.HOME } );
265-
equals( $("#log").html(), "0,keydown,", "Keydown HOME");
252+
menu_log("keydown",true);
253+
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_UP } );
254+
equals( $("#log").html(), "0,keydown,", "Keydown PAGE_UP");
266255

267-
menu_log("keydown",true);
268-
element.simulate( "keydown", { keyCode: $.ui.keyCode.ESCAPE } );
269-
equals( $("#log").html(), "4,keydown,", "Keydown ESCAPE (close submenu)");
256+
menu_log("keydown",true);
257+
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_UP } );
258+
equals( $("#log").html(), "keydown,", "Keydown PAGE_UP (no effect)");
270259

271-
menu_log("keydown",true);
272-
element.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
260+
menu_log("keydown",true);
261+
element.simulate( "keydown", { keyCode: $.ui.keyCode.END } );
262+
equals( $("#log").html(), "2,keydown,", "Keydown END");
273263

274-
setTimeout( function() {
275-
equals( $("#log").html(), "0,keydown,", "Keydown ENTER (open submenu)");
264+
menu_log("keydown",true);
265+
element.simulate( "keydown", { keyCode: $.ui.keyCode.HOME } );
266+
equals( $("#log").html(), "0,keydown,", "Keydown HOME");
267+
268+
menu_log("keydown",true);
269+
element.simulate( "keydown", { keyCode: $.ui.keyCode.ESCAPE } );
270+
equals( $("#log").html(), "4,keydown,", "Keydown ESCAPE (close submenu)");
276271

277272
menu_log("keydown",true);
278273
element.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
279-
equals( $("#log").html(), "Ada,keydown,", "Keydown ENTER (select item)");
280274

281-
start();
282-
}, 200);
283-
}, 150);
284-
}, 100);
275+
setTimeout( function() {
276+
equals( $("#log").html(), "0,keydown,", "Keydown ENTER (open submenu)");
285277

278+
menu_log("keydown",true);
279+
element.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
280+
equals( $("#log").html(), "Ada,keydown,", "Keydown ENTER (select item)");
281+
282+
start();
283+
}, 200);
284+
}, 150);
285+
}, 100);
286+
}, 50);
286287
});
287288

288289
test("handle keyboard navigation on menu with scroll and without submenus", function() {
@@ -373,75 +374,76 @@ asyncTest("handle keyboard navigation on menu with scroll and with submenus", fu
373374
element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
374375
equals( $("#log").html(), "2,1,0,keydown,", "Keydown DOWN");
375376

376-
menu_log("keydown",true);
377-
element.simulate( "keydown", { keyCode: $.ui.keyCode.UP } );
378-
element.simulate( "keydown", { keyCode: $.ui.keyCode.UP } );
379-
equals( $("#log").html(), "0,1,keydown,", "Keydown UP");
380-
381-
menu_log("keydown",true);
382-
element.simulate( "keydown", { keyCode: $.ui.keyCode.LEFT } );
383-
equals( $("#log").html(), "keydown,", "Keydown LEFT (no effect)");
384-
385-
menu_log("keydown",true);
386-
element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
387-
element.simulate( "keydown", { keyCode: $.ui.keyCode.RIGHT } );
388-
389-
setTimeout( function() {
390-
equals( $("#log").html(), "0,1,keydown,", "Keydown RIGHT (open submenu)");
391-
}, 50);
377+
setTimeout(function() {
378+
menu_log("keydown",true);
379+
element.simulate( "keydown", { keyCode: $.ui.keyCode.UP } );
380+
element.simulate( "keydown", { keyCode: $.ui.keyCode.UP } );
381+
equals( $("#log").html(), "0,1,keydown,", "Keydown UP");
392382

393-
setTimeout( function() {
394383
menu_log("keydown",true);
395384
element.simulate( "keydown", { keyCode: $.ui.keyCode.LEFT } );
396-
equals( $("#log").html(), "1,keydown,", "Keydown LEFT (close submenu)");
385+
equals( $("#log").html(), "keydown,", "Keydown LEFT (no effect)");
397386

398-
//re-open submenu
387+
menu_log("keydown",true);
388+
element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
399389
element.simulate( "keydown", { keyCode: $.ui.keyCode.RIGHT } );
400390

401391
setTimeout( function() {
402-
menu_log("keydown",true);
403-
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_DOWN } );
404-
equals( $("#log").html(), "10,keydown,", "Keydown PAGE_DOWN");
392+
equals( $("#log").html(), "0,1,keydown,", "Keydown RIGHT (open submenu)");
393+
}, 50);
405394

395+
setTimeout( function() {
406396
menu_log("keydown",true);
407-
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_DOWN } );
408-
equals( $("#log").html(), "20,keydown,", "Keydown PAGE_DOWN");
397+
element.simulate( "keydown", { keyCode: $.ui.keyCode.LEFT } );
398+
equals( $("#log").html(), "1,keydown,", "Keydown LEFT (close submenu)");
409399

410-
menu_log("keydown",true);
411-
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_UP } );
412-
equals( $("#log").html(), "10,keydown,", "Keydown PAGE_UP");
400+
//re-open submenu
401+
element.simulate( "keydown", { keyCode: $.ui.keyCode.RIGHT } );
413402

414-
menu_log("keydown",true);
415-
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_UP } );
416-
equals( $("#log").html(), "0,keydown,", "Keydown PAGE_UP");
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");
417407

418-
menu_log("keydown",true);
419-
element.simulate( "keydown", { keyCode: $.ui.keyCode.END } );
420-
equals( $("#log").html(), "27,keydown,", "Keydown END");
408+
menu_log("keydown",true);
409+
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_DOWN } );
410+
equals( $("#log").html(), "20,keydown,", "Keydown PAGE_DOWN");
421411

422-
menu_log("keydown",true);
423-
element.simulate( "keydown", { keyCode: $.ui.keyCode.HOME } );
424-
equals( $("#log").html(), "0,keydown,", "Keydown HOME");
412+
menu_log("keydown",true);
413+
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_UP } );
414+
equals( $("#log").html(), "10,keydown,", "Keydown PAGE_UP");
425415

426-
menu_log("keydown",true);
427-
element.simulate( "keydown", { keyCode: $.ui.keyCode.ESCAPE } );
428-
equals( $("#log").html(), "1,keydown,", "Keydown ESCAPE (close submenu)");
416+
menu_log("keydown",true);
417+
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_UP } );
418+
equals( $("#log").html(), "0,keydown,", "Keydown PAGE_UP");
429419

430-
menu_log("keydown",true);
431-
element.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
420+
menu_log("keydown",true);
421+
element.simulate( "keydown", { keyCode: $.ui.keyCode.END } );
422+
equals( $("#log").html(), "27,keydown,", "Keydown END");
432423

433-
setTimeout( function() {
434-
equals( $("#log").html(), "0,keydown,", "Keydown ENTER (open submenu)");
424+
menu_log("keydown",true);
425+
element.simulate( "keydown", { keyCode: $.ui.keyCode.HOME } );
426+
equals( $("#log").html(), "0,keydown,", "Keydown HOME");
427+
428+
menu_log("keydown",true);
429+
element.simulate( "keydown", { keyCode: $.ui.keyCode.ESCAPE } );
430+
equals( $("#log").html(), "1,keydown,", "Keydown ESCAPE (close submenu)");
435431

436432
menu_log("keydown",true);
437433
element.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
438-
equals( $("#log").html(), "Aberdeen,keydown,", "Keydown ENTER (select item)");
439434

440-
start();
441-
}, 200);
442-
}, 150);
443-
}, 100);
435+
setTimeout( function() {
436+
equals( $("#log").html(), "0,keydown,", "Keydown ENTER (open submenu)");
437+
438+
menu_log("keydown",true);
439+
element.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
440+
equals( $("#log").html(), "Aberdeen,keydown,", "Keydown ENTER (select item)");
444441

442+
start();
443+
}, 200);
444+
}, 150);
445+
}, 100);
446+
}, 50);
445447
});
446448

447449
})(jQuery);

0 commit comments

Comments
 (0)