Skip to content

Commit c821aa6

Browse files
Menu:the first set of unit test files.
Signed-off-by: dominiquevincent <dominique.vincent@toitl.com>
1 parent c3d3249 commit c821aa6

File tree

7 files changed

+178
-0
lines changed

7 files changed

+178
-0
lines changed

tests/unit/menu/menu.html

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8" />
5+
<title>jQuery UI Menu Test Suite</title>
6+
7+
<link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css" type="text/css" title="ui-theme" />
8+
9+
<script type="text/javascript" src="../../../jquery-1.4.2.js"></script>
10+
<script type="text/javascript" src="../../../ui/jquery.ui.core.js"></script>
11+
<script type="text/javascript" src="../../../ui/jquery.ui.widget.js"></script>
12+
<script type="text/javascript" src="../../../ui/jquery.ui.menu.js"></script>
13+
14+
<link rel="stylesheet" href="../../../external/qunit.css" type="text/css"/>
15+
<script type="text/javascript" src="../../../external/qunit.js"></script>
16+
<script type="text/javascript" src="../../jquery.simulate.js"></script>
17+
<script type="text/javascript" src="../testsuite.js"></script>
18+
19+
<script type="text/javascript">
20+
21+
function log(message,clear) {
22+
if (clear && clear === true) {
23+
$("#log").html("");
24+
}
25+
if ( message === undefined ) {
26+
message = $("#log").data("lastItem");
27+
}
28+
$("#log").prepend( message + "," );
29+
}
30+
function clickMenu(menu,item) {
31+
$("#log").data("lastItem",item);
32+
$('li:eq(' + item + ') a',menu).trigger("click");
33+
}
34+
35+
36+
</script>
37+
<script type="text/javascript" src="menu_core.js"></script>
38+
<script type="text/javascript" src="menu_defaults.js"></script>
39+
<script type="text/javascript" src="menu_events.js"></script>
40+
<script type="text/javascript" src="menu_methods.js"></script>
41+
<script type="text/javascript" src="menu_options.js"></script>
42+
<script type="text/javascript" src="menu_tickets.js"></script>
43+
44+
45+
<style>
46+
#main { font-size: 10pt; font-family: 'trebuchet ms', verdana, arial; }
47+
#list, #list1 *, #navigation, #navigation * { margin: 0; padding: 0; font-size: 12px; }
48+
.mainOnMoon {position: absolute; top: -10000px; left: -10000px;}
49+
</style>
50+
</head>
51+
<body>
52+
53+
<h1 id="qunit-header">jQuery UI Menu Test Suite</h1>
54+
<h2 id="qunit-banner"></h2>
55+
<h2 id="qunit-userAgent"></h2>
56+
<ol id="qunit-tests">
57+
</ol>
58+
59+
60+
<div id="main" class="mainOnMoon">
61+
62+
<ul id="menu1">
63+
<li><a href="#">Aberdeen</a></li>
64+
<li><a href="#">Ada</a></li>
65+
<li><a href="#">Adamsville</a></li>
66+
<li><a href="#">Addyston</a></li>
67+
<li><a href="#">Adelphi</a></li>
68+
</ul>
69+
<div id="log"></div>
70+
71+
</div>
72+
73+
</body>
74+
</html>

tests/unit/menu/menu_core.js

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/*
2+
* menu_core.js
3+
*/
4+
5+
6+
(function($) {
7+
8+
module("menu: core");
9+
10+
test("accessibility", function () {
11+
expect(3);
12+
var ac = $('#menu1').menu();
13+
var item0 = $("li:eq(0) a");
14+
15+
ok( ac.hasClass("ui-menu ui-widget ui-widget-content ui-corner-all"), "menu class");
16+
equals( ac.attr("role"), "listbox", "main role");
17+
equals( ac.attr("aria-activedescendant"), "ui-active-menuitem", "aria attribute");
18+
});
19+
20+
test("items class and role", function () {
21+
var ac = $('#menu1').menu();
22+
expect(1 + 4 * $("li",ac).length);
23+
ok( ($("li",ac).length > 0 ), "number of menu items");
24+
$("li",ac).each(function(item) {
25+
ok( $(this).hasClass("ui-menu-item"), "menu item ("+ item + ") class for item");
26+
equals( $(this).attr("role"), "menuitem", "menu item ("+ item + ") role");
27+
ok( $("a",this).hasClass("ui-corner-all"), "a element class for menu item ("+ item + ") ");
28+
equals( $("a",this).attr("tabindex"), "-1", "a element tabindex for menu item ("+ item + ") ");
29+
});
30+
});
31+
32+
})(jQuery);

tests/unit/menu/menu_defaults.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
/*
2+
* menu_defaults.js
3+
*/
4+
5+
var menu_defaults = {
6+
disabled: false,
7+
navigationFilter: function() {}
8+
9+
};
10+
11+
commonWidgetTests('menu', { defaults: menu_defaults });

tests/unit/menu/menu_events.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
/*
2+
* menu_events.js
3+
*/
4+
(function($) {
5+
6+
module("menu: events");
7+
8+
test("handle click on menu", function() {
9+
expect(1);
10+
var ac = $('#menu1').menu({
11+
select: function(event, ui) {
12+
log();
13+
}
14+
});
15+
log("click",true);
16+
clickMenu($('#menu1'),"1");
17+
log("afterclick");
18+
clickMenu( ac,"2");
19+
clickMenu($('#menu1'),"3");
20+
clickMenu( ac,"1");
21+
equals( $("#log").html(), "1,3,2,afterclick,1,click,", "Click order not valid.");
22+
});
23+
24+
})(jQuery);

tests/unit/menu/menu_methods.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/*
2+
* menu_methods.js
3+
*/
4+
(function($) {
5+
6+
module("menu: methods");
7+
8+
test("destroy", function() {
9+
var beforeHtml = $("#menu1").find("div").css("font-style", "normal").end().parent().html();
10+
var afterHtml = $("#menu1").menu().menu("destroy").parent().html();
11+
// Opera 9 outputs role="" instead of removing the attribute like everyone else
12+
if ($.browser.opera) {
13+
afterHtml = afterHtml.replace(/ role=""/g, "");
14+
}
15+
equal( afterHtml, beforeHtml );
16+
});
17+
18+
19+
})(jQuery);

tests/unit/menu/menu_options.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/*
2+
* menu_options.js
3+
*/
4+
(function($) {
5+
6+
module("menu: options");
7+
8+
9+
10+
})(jQuery);

tests/unit/menu/menu_tickets.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
/*
2+
* menu_tickets.js
3+
*/
4+
(function($) {
5+
6+
module("menu: tickets");
7+
8+
})(jQuery);

0 commit comments

Comments
 (0)