3 var log = TestHelpers.menu.log,
4 logOutput = TestHelpers.menu.logOutput,
5 click = TestHelpers.menu.click;
7 module( "menu: options", {
9 TestHelpers.menu.clearLog();
13 test( "{ disabled: true }", function() {
15 var element = $( "#menu1" ).menu({
21 ok( element.hasClass( "ui-state-disabled" ), "Missing ui-state-disabled class" );
23 click( element, "1" );
25 equal( logOutput(), "click,afterclick", "Click order not valid." );
28 test( "{ disabled: false }", function() {
30 var element = $( "#menu1" ).menu({
36 ok( !element.hasClass( "ui-state-disabled" ), "Has ui-state-disabled class" );
38 click( element, "1" );
40 equal( logOutput(), "click,1,afterclick", "Click order not valid." );
43 test( "{ icons: default }", function() {
45 var element = $( "#menu2" ).menu();
46 equal( element.find( ".ui-menu-icon" ).attr( "class" ), "ui-menu-icon ui-icon ui-icon-carat-1-e" );
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" );
52 test( "{ icons: { submenu: 'custom' } }", function() {
54 var element = $( "#menu2" ).menu({
56 submenu: "custom-class"
59 equal( element.find( ".ui-menu-icon" ).attr( "class" ), "ui-menu-icon ui-icon custom-class" );
62 // TODO: test menus option
64 // TODO: test position option
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 + ")" );
81 test( "{ role: 'listbox' } ", function() {
82 var element = $( "#menu1" ).menu({
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 + ")" );
98 test( "{ role: null }", function() {
99 var element = $( "#menu1" ).menu({
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 + ")" );