Skip to content

Commit

Permalink
Merge branch 'menu' of http://github.com/dominiquevincent/jquery-ui i…
Browse files Browse the repository at this point in the history
…nto vincent/menu
  • Loading branch information
jzaefferer committed Jun 18, 2010
2 parents f1edd5b + c821aa6 commit 921e40f
Show file tree
Hide file tree
Showing 7 changed files with 178 additions and 0 deletions.
74 changes: 74 additions & 0 deletions tests/unit/menu/menu.html
@@ -0,0 +1,74 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>jQuery UI Menu Test Suite</title>

<link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css" type="text/css" title="ui-theme" />

<script type="text/javascript" src="../../../jquery-1.4.2.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.core.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.widget.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.menu.js"></script>

<link rel="stylesheet" href="../../../external/qunit.css" type="text/css"/>
<script type="text/javascript" src="../../../external/qunit.js"></script>
<script type="text/javascript" src="../../jquery.simulate.js"></script>
<script type="text/javascript" src="../testsuite.js"></script>

<script type="text/javascript">

function log(message,clear) {
if (clear && clear === true) {
$("#log").html("");
}
if ( message === undefined ) {
message = $("#log").data("lastItem");
}
$("#log").prepend( message + "," );
}
function clickMenu(menu,item) {
$("#log").data("lastItem",item);
$('li:eq(' + item + ') a',menu).trigger("click");
}


</script>
<script type="text/javascript" src="menu_core.js"></script>
<script type="text/javascript" src="menu_defaults.js"></script>
<script type="text/javascript" src="menu_events.js"></script>
<script type="text/javascript" src="menu_methods.js"></script>
<script type="text/javascript" src="menu_options.js"></script>
<script type="text/javascript" src="menu_tickets.js"></script>


<style>
#main { font-size: 10pt; font-family: 'trebuchet ms', verdana, arial; }
#list, #list1 *, #navigation, #navigation * { margin: 0; padding: 0; font-size: 12px; }
.mainOnMoon {position: absolute; top: -10000px; left: -10000px;}
</style>
</head>
<body>

<h1 id="qunit-header">jQuery UI Menu Test Suite</h1>
<h2 id="qunit-banner"></h2>
<h2 id="qunit-userAgent"></h2>
<ol id="qunit-tests">
</ol>


<div id="main" class="mainOnMoon">

<ul id="menu1">
<li><a href="#">Aberdeen</a></li>
<li><a href="#">Ada</a></li>
<li><a href="#">Adamsville</a></li>
<li><a href="#">Addyston</a></li>
<li><a href="#">Adelphi</a></li>
</ul>
<div id="log"></div>

</div>

</body>
</html>
32 changes: 32 additions & 0 deletions tests/unit/menu/menu_core.js
@@ -0,0 +1,32 @@
/*
* menu_core.js
*/


(function($) {

module("menu: core");

test("accessibility", function () {
expect(3);
var ac = $('#menu1').menu();
var item0 = $("li:eq(0) a");

ok( ac.hasClass("ui-menu ui-widget ui-widget-content ui-corner-all"), "menu class");
equals( ac.attr("role"), "listbox", "main role");
equals( ac.attr("aria-activedescendant"), "ui-active-menuitem", "aria attribute");
});

test("items class and role", function () {
var ac = $('#menu1').menu();
expect(1 + 4 * $("li",ac).length);
ok( ($("li",ac).length > 0 ), "number of menu items");
$("li",ac).each(function(item) {
ok( $(this).hasClass("ui-menu-item"), "menu item ("+ item + ") class for item");
equals( $(this).attr("role"), "menuitem", "menu item ("+ item + ") role");
ok( $("a",this).hasClass("ui-corner-all"), "a element class for menu item ("+ item + ") ");
equals( $("a",this).attr("tabindex"), "-1", "a element tabindex for menu item ("+ item + ") ");
});
});

})(jQuery);
11 changes: 11 additions & 0 deletions tests/unit/menu/menu_defaults.js
@@ -0,0 +1,11 @@
/*
* menu_defaults.js
*/

var menu_defaults = {
disabled: false,
navigationFilter: function() {}

};

commonWidgetTests('menu', { defaults: menu_defaults });
24 changes: 24 additions & 0 deletions tests/unit/menu/menu_events.js
@@ -0,0 +1,24 @@
/*
* menu_events.js
*/
(function($) {

module("menu: events");

test("handle click on menu", function() {
expect(1);
var ac = $('#menu1').menu({
select: function(event, ui) {
log();
}
});
log("click",true);
clickMenu($('#menu1'),"1");
log("afterclick");
clickMenu( ac,"2");
clickMenu($('#menu1'),"3");
clickMenu( ac,"1");
equals( $("#log").html(), "1,3,2,afterclick,1,click,", "Click order not valid.");
});

})(jQuery);
19 changes: 19 additions & 0 deletions tests/unit/menu/menu_methods.js
@@ -0,0 +1,19 @@
/*
* menu_methods.js
*/
(function($) {

module("menu: methods");

test("destroy", function() {
var beforeHtml = $("#menu1").find("div").css("font-style", "normal").end().parent().html();
var afterHtml = $("#menu1").menu().menu("destroy").parent().html();
// Opera 9 outputs role="" instead of removing the attribute like everyone else
if ($.browser.opera) {
afterHtml = afterHtml.replace(/ role=""/g, "");
}
equal( afterHtml, beforeHtml );
});


})(jQuery);
10 changes: 10 additions & 0 deletions tests/unit/menu/menu_options.js
@@ -0,0 +1,10 @@
/*
* menu_options.js
*/
(function($) {

module("menu: options");



})(jQuery);
8 changes: 8 additions & 0 deletions tests/unit/menu/menu_tickets.js
@@ -0,0 +1,8 @@
/*
* menu_tickets.js
*/
(function($) {

module("menu: tickets");

})(jQuery);

0 comments on commit 921e40f

Please sign in to comment.