/[projects]/misc/horsensspejder-web/jquery/jquery-ui-1.10.3/tests/unit/menu/menu_events.js
ViewVC logotype

Contents of /misc/horsensspejder-web/jquery/jquery-ui-1.10.3/tests/unit/menu/menu_events.js

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2125 - (show annotations) (download) (as text)
Wed Mar 12 19:30:05 2014 UTC (10 years, 3 months ago) by torben
File MIME type: application/javascript
File size: 19772 byte(s)
initial import
1 (function( $ ) {
2
3 var log = TestHelpers.menu.log,
4 logOutput = TestHelpers.menu.logOutput,
5 click = TestHelpers.menu.click;
6
7 module( "menu: events", {
8 setup: function() {
9 TestHelpers.menu.clearLog();
10 }
11 });
12
13 test( "handle click on menu", function() {
14 expect( 1 );
15 var element = $( "#menu1" ).menu({
16 select: function() {
17 log();
18 }
19 });
20 log( "click", true );
21 click( $( "#menu1" ), "1" );
22 log( "afterclick" );
23 click( element, "2" );
24 click( $( "#menu1" ), "3" );
25 click( element, "1" );
26 equal( logOutput(), "click,1,afterclick,2,3,1", "Click order not valid." );
27 });
28
29 test( "handle click on custom item menu", function() {
30 expect( 1 );
31 var element = $( "#menu5" ).menu({
32 select: function() {
33 log();
34 },
35 menus: "div"
36 });
37 log( "click", true );
38 click( $( "#menu5" ), "1" );
39 log( "afterclick" );
40 click( element, "2" );
41 click( $( "#menu5" ), "3" );
42 click( element, "1" );
43 equal( logOutput(), "click,1,afterclick,2,3,1", "Click order not valid." );
44 });
45
46 asyncTest( "handle blur", function() {
47 expect( 1 );
48 var blurHandled = false,
49 element = $( "#menu1" ).menu({
50 blur: function( event ) {
51 // Ignore duplicate blur event fired by IE
52 if ( !blurHandled ) {
53 blurHandled = true;
54 equal( event.type, "menublur", "blur event.type is 'menublur'" );
55 }
56 }
57 });
58
59 click( element, "1" );
60 setTimeout(function() {
61 element.blur();
62 setTimeout(function() {
63 start();
64 }, 350 );
65 });
66 });
67
68 asyncTest( "handle blur via click outside", function() {
69 expect( 1 );
70 var blurHandled = false,
71 element = $( "#menu1" ).menu({
72 blur: function( event ) {
73 // Ignore duplicate blur event fired by IE
74 if ( !blurHandled ) {
75 blurHandled = true;
76 equal( event.type, "menublur", "blur event.type is 'menublur'" );
77 }
78 }
79 });
80
81 click( element, "1" );
82 setTimeout(function() {
83 $( "<a>", { id: "remove"} ).appendTo( "body" ).trigger( "click" );
84 setTimeout(function() {
85 start();
86 }, 350 );
87 });
88 });
89
90 asyncTest( "handle focus of menu with active item", function() {
91 expect( 1 );
92 var element = $( "#menu1" ).menu({
93 focus: function( event ) {
94 log( $( event.target ).find( ".ui-state-focus" ).parent().index() );
95 }
96 });
97
98 log( "focus", true );
99 element[0].focus();
100 setTimeout(function() {
101 element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
102 element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
103 element[0].blur();
104 setTimeout(function() {
105 element[0].focus();
106 setTimeout(function() {
107 equal( logOutput(), "focus,0,1,2,2", "current active item remains active" );
108 start();
109 });
110 });
111 });
112 });
113
114 asyncTest( "handle submenu auto collapse: mouseleave", function() {
115 expect( 4 );
116 var element = $( "#menu2" ).menu(),
117 event = $.Event( "mouseenter" );
118
119 function menumouseleave1() {
120 equal( element.find( "ul[aria-expanded='true']" ).length, 1, "first submenu expanded" );
121 element.menu( "focus", event, element.find( "li:nth-child(7) li:first" ) );
122 setTimeout( menumouseleave2, 350 );
123 }
124 function menumouseleave2() {
125 equal( element.find( "ul[aria-expanded='true']" ).length, 2, "second submenu expanded" );
126 element.find( "ul[aria-expanded='true']:first" ).trigger( "mouseleave" );
127 setTimeout( menumouseleave3, 350 );
128 }
129 function menumouseleave3() {
130 equal( element.find( "ul[aria-expanded='true']" ).length, 1, "second submenu collapsed" );
131 element.trigger( "mouseleave" );
132 setTimeout( menumouseleave4, 350 );
133 }
134 function menumouseleave4() {
135 equal( element.find( "ul[aria-expanded='true']" ).length, 0, "first submenu collapsed" );
136 start();
137 }
138
139 element.find( "li:nth-child(7)" ).trigger( "mouseenter" );
140 setTimeout( menumouseleave1, 350 );
141 });
142
143 asyncTest( "handle submenu auto collapse: mouseleave", function() {
144 expect( 4 );
145 var element = $( "#menu5" ).menu({ menus: "div" }),
146 event = $.Event( "mouseenter" );
147
148 function menumouseleave1() {
149 equal( element.find( "div[aria-expanded='true']" ).length, 1, "first submenu expanded" );
150 element.menu( "focus", event, element.find( ":nth-child(7)" ).find( "div" ).eq( 0 ).children().eq( 0 ) );
151 setTimeout( menumouseleave2, 350 );
152 }
153 function menumouseleave2() {
154 equal( element.find( "div[aria-expanded='true']" ).length, 2, "second submenu expanded" );
155 element.find( "div[aria-expanded='true']:first" ).trigger( "mouseleave" );
156 setTimeout( menumouseleave3, 350 );
157 }
158 function menumouseleave3() {
159 equal( element.find( "div[aria-expanded='true']" ).length, 1, "second submenu collapsed" );
160 element.trigger( "mouseleave" );
161 setTimeout( menumouseleave4, 350 );
162 }
163 function menumouseleave4() {
164 equal( element.find( "div[aria-expanded='true']" ).length, 0, "first submenu collapsed" );
165 start();
166 }
167
168 element.find( ":nth-child(7)" ).trigger( "mouseenter" );
169 setTimeout( menumouseleave1, 350 );
170 });
171
172
173 asyncTest( "handle keyboard navigation on menu without scroll and without submenus", function() {
174 expect( 12 );
175 var element = $( "#menu1" ).menu({
176 select: function( event, ui ) {
177 log( $( ui.item[0] ).text() );
178 },
179 focus: function( event ) {
180 log( $( event.target ).find( ".ui-state-focus" ).parent().index() );
181 }
182 });
183
184 log( "keydown", true );
185 element[0].focus();
186 setTimeout(function() {
187 element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
188 element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
189 equal( logOutput(), "keydown,0,1,2", "Keydown DOWN" );
190
191 log( "keydown", true );
192 element.simulate( "keydown", { keyCode: $.ui.keyCode.UP } );
193 equal( logOutput(), "keydown,1", "Keydown UP" );
194
195 log( "keydown", true );
196 element.simulate( "keydown", { keyCode: $.ui.keyCode.LEFT } );
197 equal( logOutput(), "keydown", "Keydown LEFT (no effect)" );
198
199 log( "keydown", true );
200 element.simulate( "keydown", { keyCode: $.ui.keyCode.RIGHT } );
201 equal( logOutput(), "keydown", "Keydown RIGHT (no effect)" );
202
203 log( "keydown", true );
204 element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_DOWN } );
205 equal( logOutput(), "keydown,4", "Keydown PAGE_DOWN" );
206
207 log( "keydown", true );
208 element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_DOWN } );
209 equal( logOutput(), "keydown", "Keydown PAGE_DOWN (no effect)" );
210
211 log( "keydown", true );
212 element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_UP } );
213 equal( logOutput(), "keydown,0", "Keydown PAGE_UP" );
214
215 log( "keydown", true );
216 element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_UP } );
217 equal( logOutput(), "keydown", "Keydown PAGE_UP (no effect)" );
218
219 log( "keydown", true );
220 element.simulate( "keydown", { keyCode: $.ui.keyCode.END } );
221 equal( logOutput(), "keydown,4", "Keydown END" );
222
223 log( "keydown", true );
224 element.simulate( "keydown", { keyCode: $.ui.keyCode.HOME } );
225 equal( logOutput(), "keydown,0", "Keydown HOME" );
226
227 log( "keydown", true );
228 element.simulate( "keydown", { keyCode: $.ui.keyCode.ESCAPE } );
229 equal( logOutput(), "keydown", "Keydown ESCAPE (no effect)" );
230
231 log( "keydown", true );
232 element.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
233 equal( logOutput(), "keydown,Aberdeen", "Keydown ENTER" );
234
235 start();
236 });
237 });
238
239 asyncTest( "handle keyboard navigation on menu without scroll and with submenus", function() {
240 expect( 16 );
241 var element = $( "#menu2" ).menu({
242 select: function( event, ui ) {
243 log( $( ui.item[0] ).text() );
244 },
245 focus: function( event ) {
246 log( $( event.target ).find( ".ui-state-focus" ).parent().index() );
247 }
248 });
249
250 log( "keydown", true );
251 element.one( "menufocus", function() {
252 element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
253 element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
254 equal( logOutput(), "keydown,1,2", "Keydown DOWN" );
255 setTimeout( menukeyboard1, 50 );
256 });
257 element.focus();
258
259 function menukeyboard1() {
260 log( "keydown", true );
261 element.simulate( "keydown", { keyCode: $.ui.keyCode.UP } );
262 element.simulate( "keydown", { keyCode: $.ui.keyCode.UP } );
263 equal( logOutput(), "keydown,1,0", "Keydown UP" );
264
265 log( "keydown", true );
266 element.simulate( "keydown", { keyCode: $.ui.keyCode.LEFT } );
267 equal( logOutput(), "keydown", "Keydown LEFT (no effect)" );
268
269 log( "keydown", true );
270 element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
271 element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
272 element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
273 element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
274 element.simulate( "keydown", { keyCode: $.ui.keyCode.RIGHT } );
275
276 setTimeout(function() {
277 equal( logOutput(), "keydown,1,2,3,4,0", "Keydown RIGHT (open submenu)" );
278 setTimeout( menukeyboard2, 50 );
279 }, 50 );
280 }
281
282 function menukeyboard2() {
283 log( "keydown", true );
284 element.simulate( "keydown", { keyCode: $.ui.keyCode.LEFT } );
285 equal( logOutput(), "keydown,4", "Keydown LEFT (close submenu)" );
286
287 // re-open submenu
288 element.simulate( "keydown", { keyCode: $.ui.keyCode.RIGHT } );
289 setTimeout( menukeyboard3, 50 );
290 }
291
292 function menukeyboard3() {
293 log( "keydown", true );
294 element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_DOWN } );
295 equal( logOutput(), "keydown,2", "Keydown PAGE_DOWN" );
296
297 log( "keydown", true );
298 element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_DOWN } );
299 equal( logOutput(), "keydown", "Keydown PAGE_DOWN (no effect)" );
300
301 log( "keydown", true );
302 element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_UP } );
303 equal( logOutput(), "keydown,0", "Keydown PAGE_UP" );
304
305 log( "keydown", true );
306 element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_UP } );
307 equal( logOutput(), "keydown", "Keydown PAGE_UP (no effect)" );
308
309 log( "keydown", true );
310 element.simulate( "keydown", { keyCode: $.ui.keyCode.END } );
311 equal( logOutput(), "keydown,2", "Keydown END" );
312
313 log( "keydown", true );
314 element.simulate( "keydown", { keyCode: $.ui.keyCode.HOME } );
315 equal( logOutput(), "keydown,0", "Keydown HOME" );
316
317 log( "keydown", true );
318 element.simulate( "keydown", { keyCode: $.ui.keyCode.ESCAPE } );
319 equal( logOutput(), "keydown,4", "Keydown ESCAPE (close submenu)" );
320
321 log( "keydown", true );
322 element.simulate( "keydown", { keyCode: $.ui.keyCode.SPACE } );
323 setTimeout( menukeyboard4, 50 );
324 }
325
326 function menukeyboard4() {
327 equal( logOutput(), "keydown,0", "Keydown SPACE (open submenu)" );
328
329 log( "keydown", true );
330 element.simulate( "keydown", { keyCode: $.ui.keyCode.ESCAPE } );
331 equal( logOutput(), "keydown,4", "Keydown ESCAPE (close submenu)" );
332
333 log( "keydown", true );
334 element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
335 element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
336 element.simulate( "keydown", { keyCode: $.ui.keyCode.RIGHT } );
337 setTimeout( function() {
338 element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
339 element.simulate( "keydown", { keyCode: $.ui.keyCode.RIGHT } );
340 setTimeout( function() {
341 element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
342 element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
343 element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
344 equal( logOutput(), "keydown,5,6,0,1,0,2,4,0", "Keydown skip dividers and items without anchors" );
345
346 log( "keydown", true );
347 element.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
348 setTimeout( menukeyboard6, 50 );
349 }, 50 );
350 }, 50 );
351 }
352
353 function menukeyboard6() {
354 equal( logOutput(), "keydown,Ada", "Keydown ENTER (open submenu)" );
355 start();
356 }
357 });
358
359 asyncTest( "handle keyboard navigation on menu with scroll and without submenus", function() {
360 expect( 14 );
361 var element = $( "#menu3" ).menu({
362 select: function( event, ui ) {
363 log( $( ui.item[0] ).text() );
364 },
365 focus: function( event ) {
366 log( $( event.target ).find( ".ui-state-focus" ).parent().index());
367 }
368 });
369
370 log( "keydown", true );
371 element[0].focus();
372 setTimeout(function() {
373 element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
374 element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
375 equal( logOutput(), "keydown,0,1,2", "Keydown DOWN" );
376
377 log( "keydown", true );
378 element.simulate( "keydown", { keyCode: $.ui.keyCode.UP } );
379 element.simulate( "keydown", { keyCode: $.ui.keyCode.UP } );
380 equal( logOutput(), "keydown,1,0", "Keydown UP" );
381
382 log( "keydown", true );
383 element.simulate( "keydown", { keyCode: $.ui.keyCode.LEFT } );
384 equal( logOutput(), "keydown", "Keydown LEFT (no effect)" );
385
386 log( "keydown", true );
387 element.simulate( "keydown", { keyCode: $.ui.keyCode.RIGHT } );
388 equal( logOutput(), "keydown", "Keydown RIGHT (no effect)" );
389
390 log( "keydown", true );
391 element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_DOWN } );
392 equal( logOutput(), "keydown,10", "Keydown PAGE_DOWN" );
393
394 log( "keydown", true );
395 element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_DOWN } );
396 equal( logOutput(), "keydown,20", "Keydown PAGE_DOWN" );
397
398 log( "keydown", true );
399 element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_UP } );
400 equal( logOutput(), "keydown,10", "Keydown PAGE_UP" );
401
402 log( "keydown", true );
403 element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_UP } );
404 equal( logOutput(), "keydown,0", "Keydown PAGE_UP" );
405
406 log( "keydown", true );
407 element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_UP } );
408 equal( logOutput(), "keydown", "Keydown PAGE_UP (no effect)" );
409
410 log( "keydown", true );
411 element.simulate( "keydown", { keyCode: $.ui.keyCode.END } );
412 equal( logOutput(), "keydown,37", "Keydown END" );
413
414 log( "keydown", true );
415 element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_DOWN } );
416 equal( logOutput(), "keydown", "Keydown PAGE_DOWN (no effect)" );
417
418 log( "keydown", true );
419 element.simulate( "keydown", { keyCode: $.ui.keyCode.HOME } );
420 equal( logOutput(), "keydown,0", "Keydown HOME" );
421
422 log( "keydown", true );
423 element.simulate( "keydown", { keyCode: $.ui.keyCode.ESCAPE } );
424 equal( logOutput(), "keydown", "Keydown ESCAPE (no effect)" );
425
426 log( "keydown", true );
427 element.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
428 equal( logOutput(), "keydown,Aberdeen", "Keydown ENTER" );
429
430 start();
431 });
432 });
433
434 asyncTest( "handle keyboard navigation on menu with scroll and with submenus", function() {
435 expect( 14 );
436 var element = $( "#menu4" ).menu({
437 select: function( event, ui ) {
438 log( $( ui.item[0] ).text() );
439 },
440 focus: function( event ) {
441 log( $( event.target ).find( ".ui-state-focus" ).parent().index());
442 }
443 });
444
445 log( "keydown", true );
446 element.one( "menufocus", function() {
447 element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
448 element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
449 equal( logOutput(), "keydown,1,2", "Keydown DOWN" );
450 setTimeout( menukeyboard1, 50 );
451 });
452 element.focus();
453
454 function menukeyboard1() {
455 log( "keydown", true );
456 element.simulate( "keydown", { keyCode: $.ui.keyCode.UP } );
457 element.simulate( "keydown", { keyCode: $.ui.keyCode.UP } );
458 equal( logOutput(), "keydown,1,0", "Keydown UP" );
459
460 log( "keydown", true );
461 element.simulate( "keydown", { keyCode: $.ui.keyCode.LEFT } );
462 equal( logOutput(), "keydown", "Keydown LEFT (no effect)" );
463
464 log( "keydown", true );
465 element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
466 element.simulate( "keydown", { keyCode: $.ui.keyCode.RIGHT } );
467
468 setTimeout( function() {
469 equal( logOutput(), "keydown,1,0", "Keydown RIGHT (open submenu)" );
470 }, 50 );
471 setTimeout( menukeyboard2, 50 );
472 }
473
474 function menukeyboard2() {
475 log( "keydown", true );
476 element.simulate( "keydown", { keyCode: $.ui.keyCode.LEFT } );
477 equal( logOutput(), "keydown,1", "Keydown LEFT (close submenu)" );
478
479 // re-open submenu
480 element.simulate( "keydown", { keyCode: $.ui.keyCode.RIGHT } );
481 setTimeout( menukeyboard3, 50 );
482 }
483
484 function menukeyboard3() {
485 log( "keydown", true );
486 element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_DOWN } );
487 equal( logOutput(), "keydown,10", "Keydown PAGE_DOWN" );
488
489 log( "keydown", true );
490 element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_DOWN } );
491 equal( logOutput(), "keydown,20", "Keydown PAGE_DOWN" );
492
493 log( "keydown", true );
494 element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_UP } );
495 equal( logOutput(), "keydown,10", "Keydown PAGE_UP" );
496
497 log( "keydown", true );
498 element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_UP } );
499 equal( logOutput(), "keydown,0", "Keydown PAGE_UP" );
500
501 log( "keydown", true );
502 element.simulate( "keydown", { keyCode: $.ui.keyCode.END } );
503 equal( logOutput(), "keydown,27", "Keydown END" );
504
505 log( "keydown", true );
506 element.simulate( "keydown", { keyCode: $.ui.keyCode.HOME } );
507 equal( logOutput(), "keydown,0", "Keydown HOME" );
508
509 log( "keydown", true );
510 element.simulate( "keydown", { keyCode: $.ui.keyCode.ESCAPE } );
511 equal( logOutput(), "keydown,1", "Keydown ESCAPE (close submenu)" );
512
513 log( "keydown", true );
514 element.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
515 setTimeout( menukeyboard4, 50 );
516 }
517
518 function menukeyboard4() {
519 equal( logOutput(), "keydown,0", "Keydown ENTER (open submenu)" );
520
521 log( "keydown", true );
522 element.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
523 equal( logOutput(), "keydown,Aberdeen", "Keydown ENTER (select item)" );
524
525 start();
526 }
527 });
528
529 asyncTest( "handle keyboard navigation and mouse click on menu with disabled items", function() {
530 expect( 6 );
531 var element = $( "#menu6" ).menu({
532 select: function( event, ui ) {
533 log( $( ui.item[0] ).text() );
534 },
535 focus: function( event ) {
536 log( $( event.target ).find( ".ui-state-focus" ).parent().index());
537 }
538 });
539
540 log( "keydown", true );
541 element.one( "menufocus", function() {
542 element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
543 element.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
544 equal( logOutput(), "keydown,1", "Keydown focus but not select disabled item" );
545 setTimeout( menukeyboard1, 50 );
546 });
547 element.focus();
548
549 function menukeyboard1() {
550 log( "keydown", true );
551 element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
552 element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
553 element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
554 equal( logOutput(), "keydown,2,3,4", "Keydown focus disabled item with submenu" );
555
556 log( "keydown", true );
557 element.simulate( "keydown", { keyCode: $.ui.keyCode.LEFT } );
558 equal( logOutput(), "keydown", "Keydown LEFT (no effect)" );
559
560 log( "keydown", true );
561 element.simulate( "keydown", { keyCode: $.ui.keyCode.RIGHT } );
562
563 setTimeout( function() {
564 equal( logOutput(), "keydown", "Keydown RIGHT (no effect on disabled sub-menu)" );
565
566 log( "keydown", true );
567 element.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
568
569 setTimeout( function() {
570 equal( logOutput(), "keydown", "Keydown ENTER (no effect on disabled sub-menu)" );
571 log( "click", true );
572 click( element, "1" );
573 equal( logOutput(), "click", "Click disabled item (no effect)" );
574 start();
575 }, 50 );
576 }, 50 );
577 }
578 });
579
580 asyncTest( "handle keyboard navigation with spelling of menu items", function() {
581 expect( 2 );
582 var element = $( "#menu2" ).menu({
583 focus: function( event ) {
584 log( $( event.target ).find( ".ui-state-focus" ).parent().index() );
585 }
586 });
587
588 log( "keydown", true );
589 element.one( "menufocus", function() {
590 element.simulate( "keydown", { keyCode: 65 } );
591 element.simulate( "keydown", { keyCode: 68 } );
592 element.simulate( "keydown", { keyCode: 68 } );
593 equal( logOutput(), "keydown,0,1,3", "Keydown focus Addyston by spelling the first 3 letters" );
594 element.simulate( "keydown", { keyCode: 68 } );
595 equal( logOutput(), "keydown,0,1,3,4", "Keydown focus Delphi by repeating the 'd' again" );
596 start();
597 });
598 element[0].focus();
599 });
600
601 })( jQuery );

  ViewVC Help
Powered by ViewVC 1.1.20