imported the whole jquery-ui package, refreshed with 1.10.2
[myslice.git] / third-party / jquery-ui-1.10.2 / tests / unit / menu / menu_options.js
1 (function( $ ) {
2
3 var log = TestHelpers.menu.log,
4         logOutput = TestHelpers.menu.logOutput,
5         click = TestHelpers.menu.click;
6
7 module( "menu: options", {
8         setup: function() {
9                 TestHelpers.menu.clearLog();
10         }
11 });
12
13 test( "{ disabled: true }", function() {
14         expect( 2 );
15         var element = $( "#menu1" ).menu({
16                 disabled: true,
17                 select: function() {
18                         log();
19                 }
20         });
21         ok( element.hasClass( "ui-state-disabled" ), "Missing ui-state-disabled class" );
22         log( "click", true );
23         click( element, "1" );
24         log( "afterclick" );
25         equal( logOutput(), "click,afterclick", "Click order not valid." );
26 });
27
28 test( "{ disabled: false }", function() {
29         expect( 2 );
30         var element = $( "#menu1" ).menu({
31                 disabled: false,
32                 select: function() {
33                         log();
34                 }
35         });
36         ok( !element.hasClass( "ui-state-disabled" ), "Has ui-state-disabled class" );
37         log( "click", true );
38         click( element, "1" );
39         log( "afterclick" );
40         equal( logOutput(), "click,1,afterclick", "Click order not valid." );
41 });
42
43 test( "{ icons: default }", function() {
44         expect( 2 );
45         var element = $( "#menu2" ).menu();
46         equal( element.find( ".ui-menu-icon" ).attr( "class" ), "ui-menu-icon ui-icon ui-icon-carat-1-e" );
47
48         element.menu("option", "icons.submenu", "ui-icon-triangle-1-e");
49         equal( element.find( ".ui-menu-icon" ).attr( "class" ), "ui-menu-icon ui-icon ui-icon-triangle-1-e" );
50 });
51
52 test( "{ icons: { submenu: 'custom' } }", function() {
53         expect( 1 );
54         var element = $( "#menu2" ).menu({
55                 icons: {
56                         submenu: "custom-class"
57                 }
58         });
59         equal( element.find( ".ui-menu-icon" ).attr( "class" ), "ui-menu-icon ui-icon custom-class" );
60 });
61
62 // TODO: test menus option
63
64 // TODO: test position option
65
66 test( "{ role: 'menu' } ", function() {
67         var element = $( "#menu1" ).menu(),
68                 items = element.find( "li" );
69         expect( 2 + 5 * items.length );
70         equal( element.attr( "role" ), "menu" );
71         ok( items.length > 0, "number of menu items" );
72         items.each(function( item ) {
73                 ok( $( this ).hasClass( "ui-menu-item" ), "menu item ("+ item + ") class for item" );
74                 equal( $( this ).attr( "role" ), "presentation", "menu item ("+ item + ") role" );
75                 equal( $( "a", this ).attr( "role" ), "menuitem", "menu item ("+ item + ") role" );
76                 ok( $( "a", this ).hasClass( "ui-corner-all" ), "a element class for menu item ("+ item + ")" );
77                 equal( $( "a", this ).attr( "tabindex" ), "-1", "a element tabindex for menu item ("+ item + ")" );
78         });
79 });
80
81 test( "{ role: 'listbox' } ", function() {
82         var element = $( "#menu1" ).menu({
83                         role: "listbox"
84                 }),
85                 items = element.find( "li" );
86         expect( 2 + 5 * items.length );
87         equal( element.attr( "role" ), "listbox" );
88         ok( items.length > 0, "number of menu items" );
89         items.each(function( item ) {
90                 ok( $( this ).hasClass( "ui-menu-item" ), "menu item ("+ item + ") class for item" );
91                 equal( $( this ).attr( "role" ), "presentation", "menu item ("+ item + ") role" );
92                 equal( $( "a", this ).attr( "role" ), "option", "menu item ("+ item + ") role" );
93                 ok( $( "a", this ).hasClass( "ui-corner-all" ), "a element class for menu item ("+ item + ")" );
94                 equal( $( "a", this ).attr( "tabindex" ), "-1", "a element tabindex for menu item ("+ item + ")" );
95         });
96 });
97
98 test( "{ role: null }", function() {
99         var element = $( "#menu1" ).menu({
100                         role: null
101                 }),
102                 items = element.find( "li" );
103         expect( 2 + 5 * items.length );
104         strictEqual( element.attr( "role" ), undefined );
105         ok( items.length > 0, "number of menu items" );
106         items.each(function( item ) {
107                 ok( $( this ).hasClass( "ui-menu-item" ), "menu item ("+ item + ") class for item" );
108                 equal( $( this ).attr( "role" ), "presentation", "menu item ("+ item + ") role" );
109                 equal( $( "a", this ).attr( "role" ), undefined, "menu item ("+ item + ") role" );
110                 ok( $( "a", this ).hasClass( "ui-corner-all" ), "a element class for menu item ("+ item + ")" );
111                 equal( $( "a", this ).attr( "tabindex" ), "-1", "a element tabindex for menu item ("+ item + ")" );
112         });
113 });
114
115 })( jQuery );