aboutsummaryrefslogtreecommitdiffstats
path: root/tests/unit/menu
diff options
context:
space:
mode:
authordominiquevincent <dominique.vincent@toitl.com>2010-05-06 17:10:52 +0200
committerdominiquevincent <dominique.vincent@toitl.com>2010-05-06 17:10:52 +0200
commitc821aa680c617412cc9e9c74a4030722f6302379 (patch)
treebfacabec19361ccf8f8cbbd7efb350b500d10237 /tests/unit/menu
parentc3d32496565bb29ba5e0dc3eaf5f47850af2a6d4 (diff)
downloadjquery-ui-c821aa680c617412cc9e9c74a4030722f6302379.tar.gz
jquery-ui-c821aa680c617412cc9e9c74a4030722f6302379.zip
Menu:the first set of unit test files.
Signed-off-by: dominiquevincent <dominique.vincent@toitl.com>
Diffstat (limited to 'tests/unit/menu')
-rw-r--r--tests/unit/menu/menu.html74
-rw-r--r--tests/unit/menu/menu_core.js32
-rw-r--r--tests/unit/menu/menu_defaults.js11
-rw-r--r--tests/unit/menu/menu_events.js24
-rw-r--r--tests/unit/menu/menu_methods.js19
-rw-r--r--tests/unit/menu/menu_options.js10
-rw-r--r--tests/unit/menu/menu_tickets.js8
7 files changed, 178 insertions, 0 deletions
diff --git a/tests/unit/menu/menu.html b/tests/unit/menu/menu.html
new file mode 100644
index 000000000..14a5d06db
--- /dev/null
+++ b/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>
diff --git a/tests/unit/menu/menu_core.js b/tests/unit/menu/menu_core.js
new file mode 100644
index 000000000..a1cf11b7f
--- /dev/null
+++ b/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);
diff --git a/tests/unit/menu/menu_defaults.js b/tests/unit/menu/menu_defaults.js
new file mode 100644
index 000000000..c3f741d2a
--- /dev/null
+++ b/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 });
diff --git a/tests/unit/menu/menu_events.js b/tests/unit/menu/menu_events.js
new file mode 100644
index 000000000..a03bec3f6
--- /dev/null
+++ b/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);
diff --git a/tests/unit/menu/menu_methods.js b/tests/unit/menu/menu_methods.js
new file mode 100644
index 000000000..b6ebaf215
--- /dev/null
+++ b/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);
diff --git a/tests/unit/menu/menu_options.js b/tests/unit/menu/menu_options.js
new file mode 100644
index 000000000..03822fd74
--- /dev/null
+++ b/tests/unit/menu/menu_options.js
@@ -0,0 +1,10 @@
+/*
+ * menu_options.js
+ */
+(function($) {
+
+module("menu: options");
+
+
+
+})(jQuery);
diff --git a/tests/unit/menu/menu_tickets.js b/tests/unit/menu/menu_tickets.js
new file mode 100644
index 000000000..760afd368
--- /dev/null
+++ b/tests/unit/menu/menu_tickets.js
@@ -0,0 +1,8 @@
+/*
+ * menu_tickets.js
+ */
+(function($) {
+
+module("menu: tickets");
+
+})(jQuery);