]> source.dussan.org Git - jquery-ui.git/commitdiff
Menu:the first set of unit test files.
authordominiquevincent <dominique.vincent@toitl.com>
Thu, 6 May 2010 15:10:52 +0000 (17:10 +0200)
committerdominiquevincent <dominique.vincent@toitl.com>
Thu, 6 May 2010 15:10:52 +0000 (17:10 +0200)
Signed-off-by: dominiquevincent <dominique.vincent@toitl.com>
tests/unit/menu/menu.html [new file with mode: 0644]
tests/unit/menu/menu_core.js [new file with mode: 0644]
tests/unit/menu/menu_defaults.js [new file with mode: 0644]
tests/unit/menu/menu_events.js [new file with mode: 0644]
tests/unit/menu/menu_methods.js [new file with mode: 0644]
tests/unit/menu/menu_options.js [new file with mode: 0644]
tests/unit/menu/menu_tickets.js [new file with mode: 0644]

diff --git a/tests/unit/menu/menu.html b/tests/unit/menu/menu.html
new file mode 100644 (file)
index 0000000..14a5d06
--- /dev/null
@@ -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 (file)
index 0000000..a1cf11b
--- /dev/null
@@ -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 (file)
index 0000000..c3f741d
--- /dev/null
@@ -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 (file)
index 0000000..a03bec3
--- /dev/null
@@ -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 (file)
index 0000000..b6ebaf2
--- /dev/null
@@ -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 (file)
index 0000000..03822fd
--- /dev/null
@@ -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 (file)
index 0000000..760afd3
--- /dev/null
@@ -0,0 +1,8 @@
+/*
+ * menu_tickets.js
+ */
+(function($) {
+
+module("menu: tickets");
+
+})(jQuery);