Skip to content

Commit 890a45a

Browse files
committed
Menu: Add unit tests for testing disabled items
1 parent 1ce42f4 commit 890a45a

File tree

2 files changed

+68
-0
lines changed

2 files changed

+68
-0
lines changed

tests/unit/menu/menu.html

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,22 @@ <h2 id="qunit-userAgent"></h2>
251251
</blockquote>
252252
</div>
253253

254+
<ul id="menu6">
255+
<li class="foo"><a class="foo" href="#">Aberdeen</a></li>
256+
<li class="foo ui-state-disabled"><a class="foo" href="#">Ada</a></li>
257+
<li class="foo"><a class="foo" href="#">Adamsville</a></li>
258+
<li class="foo"><a class="foo" href="#">Addyston</a></li>
259+
<li class="ui-state-disabled">
260+
<a href="#">Delphi</a>
261+
<ul>
262+
<li class="foo"><a class="foo" href="#">Ada</a></li>
263+
<li class="foo"><a class="foo" href="#">Saarland</a></li>
264+
<li class="foo"><a class="foo" href="#">Salzburg</a></li>
265+
</ul>
266+
</li>
267+
<li class="foo"><a class="foo" href="#">Saarland</a></li>
268+
</ul>
269+
254270
<div id="log"></div>
255271

256272
</div>

tests/unit/menu/menu_events.js

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -466,4 +466,56 @@ asyncTest("handle keyboard navigation on menu with scroll and with submenus", fu
466466
}
467467
});
468468

469+
asyncTest("handle keyboard navigation and mouse click on menu with disabled items", function() {
470+
expect(6);
471+
var element = $('#menu6').menu({
472+
select: function(event, ui) {
473+
menu_log($(ui.item[0]).text());
474+
},
475+
focus: function( event, ui ) {
476+
menu_log($(event.target).find(".ui-state-focus").parent().index());
477+
}
478+
});
479+
480+
menu_log("keydown",true);
481+
element.one( "menufocus", function( event, ui ) {
482+
element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
483+
element.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
484+
equal( $("#log").html(), "1,keydown,", "Keydown focus but not select disabled item");
485+
setTimeout( menukeyboard1, 50 );
486+
});
487+
element.focus();
488+
489+
490+
function menukeyboard1() {
491+
menu_log("keydown",true);
492+
element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
493+
element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
494+
element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
495+
equal( $("#log").html(), "4,3,2,keydown,", "Keydown focus disabled item with submenu");
496+
497+
menu_log("keydown",true);
498+
element.simulate( "keydown", { keyCode: $.ui.keyCode.LEFT } );
499+
equal( $("#log").html(), "keydown,", "Keydown LEFT (no effect)");
500+
501+
menu_log("keydown",true);
502+
element.simulate( "keydown", { keyCode: $.ui.keyCode.RIGHT } );
503+
504+
setTimeout( function() {
505+
equal( $("#log").html(), "keydown,", "Keydown RIGHT (no effect on disabled sub-menu)");
506+
507+
menu_log("keydown",true);
508+
element.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
509+
510+
setTimeout( function() {
511+
equal( $("#log").html(), "keydown,", "Keydown ENTER (no effect on disabled sub-menu)");
512+
menu_log("click",true);
513+
menu_click( element, "1" );
514+
equal( $("#log").html(), "click,", "Click disabled item (no effect)");
515+
start();
516+
}, 50);
517+
}, 50);
518+
}
519+
});
520+
469521
})(jQuery);

0 commit comments

Comments
 (0)