Skip to content

Commit 0d30bda

Browse files
Dan Bowlesjzaefferer
Dan Bowles
authored andcommitted
Menubar: Added scaffolding for menubar unit tests
1 parent 2103094 commit 0d30bda

File tree

8 files changed

+346
-0
lines changed

8 files changed

+346
-0
lines changed

tests/unit/menubar/all.html

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8">
5+
<title>jQuery UI Menubar Test Suite</title>
6+
7+
<script src="../../../jquery-1.8.2.js"></script>
8+
9+
<link rel="stylesheet" href="../../../external/qunit.css">
10+
<link rel="stylesheet" href="../qunit-composite.css">
11+
<script src="../../../external/qunit.js"></script>
12+
<script src="../qunit-composite.js"></script>
13+
<script src="../subsuite.js"></script>
14+
15+
<script>
16+
testAllVersions( "menubar" );
17+
</script>
18+
</head>
19+
<body>
20+
21+
<h1 id="qunit-header">jQuery UI Menubar Test Suite</h1>
22+
<h2 id="qunit-banner"></h2>
23+
<div id="qunit-testrunner-toolbar"></div>
24+
<h2 id="qunit-userAgent"></h2>
25+
<ol id="qunit-tests"></ol>
26+
<div id="qunit-fixture">
27+
28+
</div>
29+
</body>
30+
</html>

tests/unit/menubar/menubar.html

Lines changed: 185 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,185 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8">
5+
<title>jQuery UI Menubar Test Suite</title>
6+
7+
<script src="../../jquery.js"></script>
8+
<link rel="stylesheet" href="../../../external/qunit.css">
9+
<script src="../../../external/qunit.js"></script>
10+
<script src="../../jquery.simulate.js"></script>
11+
<script src="../testsuite.js"></script>
12+
<script>
13+
TestHelpers.loadResources({
14+
css: [ "ui.core", "ui.menu", "ui.menubar" ],
15+
js: [
16+
"ui/jquery.ui.core.js",
17+
"ui/jquery.ui.widget.js",
18+
"ui/jquery.ui.position.js",
19+
"ui/jquery.ui.menu.js",
20+
"ui/jquery.ui.menubar.js"
21+
]
22+
});
23+
</script>
24+
25+
<script src="menubar_test_helpers.js"></script>
26+
<script src="menubar_common.js"></script>
27+
<script src="menubar_core.js"></script>
28+
<script src="menubar_events.js"></script>
29+
<script src="menubar_methods.js"></script>
30+
<script src="menubar_options.js"></script>
31+
32+
<script src="../swarminject.js"></script>
33+
<style>
34+
#bar1, #bar2 { margin: 0 0 0.4em; }
35+
</style>
36+
</head>
37+
<body>
38+
39+
<div id="qunit">jQuery UI Menubar Test Suite</div>
40+
<div id="qunit-fixture">
41+
42+
<ul id="bar1" class="menubar">
43+
<li><a href="#About">About</a></li>
44+
<li>
45+
<a href="#File">File</a>
46+
<ul>
47+
<li><a href="#Open...">Open...</a></li>
48+
<li class="ui-state-disabled"><a href="#">Open recent...</a></li>
49+
<li><a href="#Save">Save</a></li>
50+
<li><a href="#Save%20as...">Save as...</a></li>
51+
<li><a href="#Close">Close</a></li>
52+
<li><a href="#Quit">Quit</a></li>
53+
</ul>
54+
</li>
55+
<li>
56+
<a href="#Edit">Edit</a>
57+
<ul>
58+
<li><a href="#Copy">Copy</a></li>
59+
<li><a href="#Cut">Cut</a></li>
60+
<li class="ui-state-disabled"><a href="#">Paste</a></li>
61+
</ul>
62+
</li>
63+
<li>
64+
<a href="#View">View</a>
65+
<ul>
66+
<li><a href="#Fullscreen">Fullscreen</a></li>
67+
<li><a href="#Fit%20into%20view">Fit into view</a></li>
68+
<li>
69+
<a href="#Encoding">Encoding</a>
70+
<ul>
71+
<li><a href="#Auto-detect">Auto-detect</a></li>
72+
<li><a href="#UTF-8">UTF-8</a></li>
73+
<li>
74+
<a href="#UTF-16">UTF-16</a>
75+
<ul>
76+
<li><a href="#Option%201">Option 1</a></li>
77+
<li><a href="#Option%202">Option 2</a></li>
78+
<li><a href="#Option%203">Option 3</a></li>
79+
<li><a href="#Option%204">Option 4</a></li>
80+
</ul>
81+
</li>
82+
</ul>
83+
</li>
84+
<li><a href="#Customize...">Customize...</a></li>
85+
</ul>
86+
</li>
87+
</ul>
88+
89+
<ul id="bar2" class="menubar-icons">
90+
<li><a href="#About">About</a></li>
91+
<li>
92+
<a href="#File">File</a>
93+
<ul>
94+
<li><a href="#Open...">Open...</a></li>
95+
<li class="ui-state-disabled"><a href="#">Open recent...</a></li>
96+
<li><a href="#Save">Save</a></li>
97+
<li><a href="#Save%20as...">Save as...</a></li>
98+
<li><a href="#Close">Close</a></li>
99+
<li><a href="#Quit">Quit</a></li>
100+
</ul>
101+
</li>
102+
<li>
103+
<a href="#Edit">Edit</a>
104+
<ul>
105+
<li><a href="#Copy">Copy</a></li>
106+
<li><a href="#Cut">Cut</a></li>
107+
<li class="ui-state-disabled"><a href="#">Paste</a></li>
108+
</ul>
109+
</li>
110+
<li>
111+
<a href="#View">View</a>
112+
<ul>
113+
<li><a href="#Fullscreen">Fullscreen</a></li>
114+
<li><a href="#Fit%20into%20view">Fit into view</a></li>
115+
<li>
116+
<a href="#Encoding">Encoding</a>
117+
<ul>
118+
<li><a href="#Auto-detect">Auto-detect</a></li>
119+
<li><a href="#UTF-8">UTF-8</a></li>
120+
<li>
121+
<a href="#UTF-16">UTF-16</a>
122+
<ul>
123+
<li><a href="#Option%201">Option 1</a></li>
124+
<li><a href="#Option%202">Option 2</a></li>
125+
<li><a href="#Option%203">Option 3</a></li>
126+
<li><a href="#Option%204">Option 4</a></li>
127+
</ul>
128+
</li>
129+
</ul>
130+
</li>
131+
<li><a href="#Customize...">Customize...</a></li>
132+
</ul>
133+
</li>
134+
</ul>
135+
136+
<div id="bar3" class="menubar">
137+
<div class="menubarItem"><a href="#About">About</a></div>
138+
<div class="menubarItem">
139+
<a href="#File">File</a>
140+
<div class="menuElement">
141+
<div><a href="#Open...">Open...</a></div>
142+
<div class="ui-state-disabled"><a href="#">Open recent...</a></div>
143+
<div><a href="#Save">Save</a></div>
144+
<div><a href="#Save%20as...">Save as...</a></div>
145+
<div><a href="#Close">Close</a></div>
146+
<div><a href="#Quit">Quit</a></div>
147+
</div>
148+
</div>
149+
<div class="menubarItem">
150+
<a href="#Edit">Edit</a>
151+
<div class="menuElement">
152+
<div><a href="#Copy">Copy</a></div>
153+
<div><a href="#Cut">Cut</a></div>
154+
<div class="ui-state-disabled"><a href="#">Paste</a></div>
155+
</div>
156+
</div>
157+
<div class="menubarItem">
158+
<a href="#View">View</a>
159+
<div class="menuElement">
160+
<div><a href="#Fullscreen">Fullscreen</a></div>
161+
<div><a href="#Fit%20into%20view">Fit into view</a></div>
162+
<div>
163+
<a href="#Encoding">Encoding</a>
164+
<div class="menuElement">
165+
<div class="ui-state-disabled"><a href="#">Auto-detect</a></div>
166+
<div><a href="#UTF-8">UTF-8</a></div>
167+
<div>
168+
<a href="#UTF-16">UTF-16</a>
169+
<div class="menuElement">
170+
<div><a href="#Option%201">Option 1</a></div>
171+
<div><a href="#Option%202">Option 2</a></div>
172+
<div class="ui-state-disabled"><a href="#">Option 3</a></div>
173+
<div><a href="#Option%204">Option 4</a></div>
174+
</div>
175+
</div>
176+
</div>
177+
</div>
178+
<div><a href="#Customize...">Customize...</a></div>
179+
</div>
180+
</div>
181+
</div>
182+
183+
</div>
184+
</body>
185+
</html>

tests/unit/menubar/menubar_common.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
TestHelpers.commonWidgetTests( "menubar", {
2+
defaults: {
3+
autoExpand: false,
4+
buttons: false,
5+
items: "li",
6+
menuElement: "ul",
7+
menuIcon: false,
8+
position: {
9+
my: "left top",
10+
at: "left bottom"
11+
},
12+
disabled: false,
13+
14+
// callbacks
15+
create: null
16+
}
17+
});

tests/unit/menubar/menubar_core.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
(function( $ ) {
2+
3+
module( "menubar: core" );
4+
5+
test( "markup structure", function() {
6+
expect( 5 );
7+
var element = $( "#bar1" ).menubar();
8+
ok( element.hasClass( "ui-menubar" ), "main element is .ui-menubar" );
9+
element.children().each(function( index ) {
10+
ok( $( this ).hasClass( "ui-menubar-item" ), "child " + index + " is .ui-menu-item" );
11+
});
12+
});
13+
14+
test( "accessibility", function () {
15+
expect( 2 );
16+
var element = $( "#bar1" ).menubar();
17+
18+
equal( element.attr( "role" ), "menubar", "main role" );
19+
ok( !element.attr( "aria-activedescendant" ), "aria-activedescendant not set" );
20+
});
21+
22+
})( jQuery );

tests/unit/menubar/menubar_events.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
(function( $ ) {
2+
3+
var log = TestHelpers.menubar.log,
4+
logOutput = TestHelpers.menubar.logOutput,
5+
click = TestHelpers.menubar.click;
6+
7+
module( "menubar: events", {
8+
setup: function() {
9+
TestHelpers.menubar.clearLog();
10+
}
11+
});
12+
13+
test( "handle click on menu item", function() {
14+
expect( 1 );
15+
var element = $( "#bar1" ).menubar({
16+
select: function( event, ui ) {
17+
log();
18+
}
19+
});
20+
21+
log( "click", true );
22+
click( element, "1", "2" );
23+
log( "afterclick" );
24+
click( element, "2", "1" );
25+
click( $( "#bar1" ), "3", "3" );
26+
click( element, "1", "2" );
27+
equal( logOutput(), "click,(1,2),afterclick,(2,1),(3,3),(1,2)", "Click order not valid." );
28+
});
29+
30+
})( jQuery );

tests/unit/menubar/menubar_methods.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
(function( $ ) {
2+
3+
var log = TestHelpers.menubar.log,
4+
logOutput = TestHelpers.menubar.logOutput,
5+
click = TestHelpers.menubar.click;
6+
7+
module( "menubar: methods", {
8+
setup: function() {
9+
TestHelpers.menubar.clearLog();
10+
}
11+
});
12+
13+
})( jQuery );

tests/unit/menubar/menubar_options.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
(function( $ ) {
2+
3+
var log = TestHelpers.menubar.log,
4+
logOutput = TestHelpers.menubar.logOutput,
5+
click = TestHelpers.menubar.click;
6+
7+
module( "menubar: options", {
8+
setup: function() {
9+
TestHelpers.menubar.clearLog();
10+
}
11+
});
12+
13+
})( jQuery );
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
(function() {
2+
3+
var lastItem,
4+
log = [];
5+
6+
TestHelpers.menubar = {
7+
log: function( message, clear ) {
8+
if ( clear ) {
9+
log.length = 0;
10+
}
11+
if ( message === undefined ) {
12+
message = lastItem;
13+
}
14+
log.push( $.trim( message ) );
15+
},
16+
17+
logOutput: function() {
18+
return log.join( "," );
19+
},
20+
21+
clearLog: function() {
22+
log.length = 0;
23+
},
24+
25+
click: function( menubar, item, menuItem ) {
26+
lastItem = "(" + item + "," + menuItem + ")";
27+
menubar
28+
.children(":eq(" + item + ")")
29+
.children(".ui-menu")
30+
.children(":eq(" + menuItem + ")")
31+
.find("a:first")
32+
.trigger("click");
33+
}
34+
};
35+
36+
})();

0 commit comments

Comments
 (0)