open: null,
select: null
}
-});
+} );
} );
assert.lacksClasses( button, "ui-selectmenu-button-open" );
assert.hasClasses( menuWrap, "ui-selectmenu-menu" );
assert.lacksClasses( menuWrap, "ui-selectmenu-menu-open" );
-});
+} );
asyncTest( "accessibility", function() {
var wrappers, button, menu,
element = $( "#speed" ).attr( "title", "A demo title" );
- element.find( "option" ).each(function( index ) {
+ element.find( "option" ).each( function( index ) {
$( this ).attr( "title", "A demo title #" + index );
- });
+ } );
element.selectmenu();
button = element.selectmenu( "widget" );
expect( 13 + wrappers.length * 3 );
- setTimeout(function() {
+ setTimeout( function() {
equal( button.attr( "role" ), "combobox", "button role" );
equal( button.attr( "aria-haspopup" ), "true", "button aria-haspopup" );
equal( button.attr( "aria-expanded" ), "false", "button aria-expanded" );
);
$.each( wrappers, function( index ) {
var item = $( this );
- equal( item.attr( "role" ), "option", "menu item #" + index +" role" );
- equal( item.attr( "tabindex" ), -1, "menu item #" + index +" tabindex" );
+ equal( item.attr( "role" ), "option", "menu item #" + index + " role" );
+ equal( item.attr( "tabindex" ), -1, "menu item #" + index + " tabindex" );
equal( item.attr( "title" ), "A demo title #" + index, "menu item #" + index + " title" );
- });
+ } );
start();
- });
-});
+ } );
+} );
test( "_renderButtonItem()", function() {
expect( 2 );
button.text(),
"click: button item text"
);
-});
+} );
-$.each([
+$.each( [
{
type: "default",
selector: "#speed"
selected = element.find( "option:selected" ).next();
button.simulate( "focus" );
- setTimeout(function() {
+ setTimeout( function() {
wrappers = menu.find( "li.ui-menu-item .ui-menu-item-wrapper" );
button.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
);
equal(
element.find( "option:selected" ).val(),
- selected.val() ,
+ selected.val(),
"original select state"
);
equal( button.text(), selected.text(), "button text" );
start();
- });
- });
+ } );
+ } );
asyncTest( "state synchronization - after click on item - " + settings.type, function() {
expect( 4 );
selected = element.find( "option" ).last();
button.simulate( "focus" );
- setTimeout(function() {
+ setTimeout( function() {
wrappers = menu.find( "li.ui-menu-item .ui-menu-item-wrapper" );
button.trigger( "click" );
equal( button.text(), selected.text(), "button text" );
start();
}, 1 );
- });
+ } );
asyncTest( "state synchronization - " +
"after focus item and keydown on button - " + settings.type, function() {
// Init menu
button.simulate( "focus" );
- setTimeout(function() {
+ setTimeout( function() {
wrappers = menu.find( "li.ui-menu-item .ui-menu-item-wrapper" );
// Open menu and click first item
// Close and use keyboard control on button
button.simulate( "keydown", { keyCode: $.ui.keyCode.ESCAPE } );
button.simulate( "focus" );
- setTimeout(function() {
+ setTimeout( function() {
button.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
equal( menu.attr( "aria-activedescendant" ), wrappers.eq( 1 ).attr( "id" ),
"menu aria-activedescendant" );
equal( button.attr( "aria-activedescendant" ), wrappers.eq( 1 ).attr( "id" ),
"button aria-activedescendant" );
- equal( element.find( "option:selected" ).val(), options.eq( 1 ).val() ,
+ equal( element.find( "option:selected" ).val(), options.eq( 1 ).val(),
"original select state" );
equal( button.text(), options.eq( 1 ).text(), "button text" );
start();
- });
- });
- });
+ } );
+ } );
+ } );
asyncTest( "item looping - " + settings.type, function() {
expect( 4 );
menu = element.selectmenu( "menuWidget" );
button.simulate( "focus" );
- setTimeout(function() {
+ setTimeout( function() {
wrappers = menu.find( "li.ui-menu-item .ui-menu-item-wrapper" );
button.trigger( "click" );
button.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
equal( element[ 0 ].selectedIndex, wrappers.length - 1, "No looping behind last item" );
start();
- });
- });
+ } );
+ } );
asyncTest( "item focus and active state - " + settings.type, function() {
expect( 4 );
menu = element.selectmenu( "menuWidget" );
button.simulate( "focus" );
- setTimeout(function() {
+ setTimeout( function() {
wrappers = menu.find( "li.ui-menu-item .ui-menu-item-wrapper" );
button.trigger( "click" );
- setTimeout(function() {
+ setTimeout( function() {
checkItemClasses();
wrappers.eq( 3 ).simulate( "mouseover" ).trigger( "click" );
$( document ).trigger( "click" );
button.trigger( "click" );
- setTimeout(function() {
+ setTimeout( function() {
checkItemClasses();
start();
- });
- });
- });
+ } );
+ } );
+ } );
function checkItemClasses() {
focusedItem = menu.find( ".ui-menu-item-wrapper.ui-state-active" );
equal( focusedItem.attr( "id" ), wrappers.eq( element[ 0 ].selectedIndex ).attr( "id" ),
"selected item has ui-state-focus class" );
}
- });
+ } );
asyncTest( "empty option - " + settings.type, function( assert ) {
expect( 7 );
menu = element.selectmenu( "menuWidget" );
button.simulate( "focus" );
- setTimeout(function() {
+ setTimeout( function() {
wrappers = menu.find( "li:not(.ui-selectmenu-optgroup) .ui-menu-item-wrapper" );
wrapper = wrappers.first();
equal( wrapper.attr( "role" ), "option", "empty item has role option" );
start();
- });
- });
-});
+ } );
+ } );
+} );
} );
setup: function() {
this.element = $( "#speed" );
}
-});
+} );
asyncTest( "change", function() {
expect( 3 );
var button, menu, options,
optionIndex = 1;
- this.element.selectmenu({
- change: function ( event, ui ) {
+ this.element.selectmenu( {
+ change: function( event, ui ) {
equal( ui.item.index, optionIndex, "ui.item.index contains correct option index" );
equal( ui.item.element[ 0 ], options.eq( optionIndex )[ 0 ],
"ui.item.element contains original option element" );
equal( ui.item.value, options.eq( optionIndex ).text(),
"ui.item.value property updated correctly" );
}
- });
+ } );
button = this.element.selectmenu( "widget" );
menu = this.element.selectmenu( "menuWidget" );
button.simulate( "focus" );
- setTimeout(function() {
+ setTimeout( function() {
button.trigger( "click" );
menu.find( "li" ).eq( optionIndex ).simulate( "mouseover" ).trigger( "click" );
start();
- });
-});
+ } );
+} );
test( "close", function() {
expect( 2 );
var shouldFire;
- this.element.selectmenu({
+ this.element.selectmenu( {
close: function() {
ok( shouldFire, "close event fired on close" );
}
- });
+ } );
shouldFire = false;
this.element.selectmenu( "open" );
this.element.selectmenu( "open" );
shouldFire = true;
$( "body" ).trigger( "mousedown" );
-});
+} );
asyncTest( "focus", function() {
expect( 9 );
optionIndex = this.element[ 0 ].selectedIndex + 1,
options = this.element.find( "option" );
- this.element.selectmenu({
+ this.element.selectmenu( {
focus: function( event, ui ) {
ok( true, "focus event fired on element #" + optionIndex + " mouseover" );
equal( ui.item.index, optionIndex, "ui.item.index contains correct option index" );
equal( ui.item.element[ 0 ], options.eq( optionIndex )[ 0 ],
"ui.item.element contains original option element" );
}
- });
+ } );
button = this.element.selectmenu( "widget" );
menu = this.element.selectmenu( "menuWidget" );
button.simulate( "focus" );
- setTimeout(function() {
+ setTimeout( function() {
button.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
button.trigger( "click" );
// This tests for unwanted, additional focus event on close
that.element.selectmenu( "close" );
start();
- });
-});
+ } );
+} );
test( "open", function() {
expect( 1 );
- this.element.selectmenu({
+ this.element.selectmenu( {
open: function() {
ok( true, "open event fired on open" );
}
- });
+ } );
this.element.selectmenu( "open" );
-});
+} );
asyncTest( "select", function() {
expect( 3 );
- this.element.selectmenu({
+ this.element.selectmenu( {
select: function( event, ui ) {
ok( true, "select event fired on item select" );
equal( ui.item.index, optionIndex, "ui.item.index contains correct option index" );
equal( ui.item.element[ 0 ], options.eq( optionIndex )[ 0 ],
"ui.item.element contains original option element" );
}
- });
+ } );
var button = this.element.selectmenu( "widget" ),
menu = this.element.selectmenu( "menuWidget" ),
optionIndex = 1;
button.simulate( "focus" );
- setTimeout(function() {
+ setTimeout( function() {
button.trigger( "click" );
menu.find( "li" ).eq( optionIndex ).simulate( "mouseover" ).trigger( "click" );
start();
- });
-});
+ } );
+} );
} );
expect( 1 );
assert.domEqual( "#speed", function() {
$( "#speed" ).selectmenu().selectmenu( "destroy" );
- });
-});
+ } );
+} );
test( "open / close", function() {
expect( 5 );
element.selectmenu( "close" );
ok( menu.is( ":hidden" ), "close: menu hidden" );
equal( menu.attr( "aria-hidden" ), "true", "close: menu aria-disabled" );
-});
+} );
test( "enable / disable", function() {
expect( 10 );
equal( button.attr( "aria-disabled" ), "false", "enable: button ARIA" );
equal( button.attr( "tabindex" ), 0, "enable: button tabindex" );
equal( menu.attr( "aria-disabled" ), "false", "enable: menu ARIA" );
-});
+} );
test( "refresh - structure", function() {
expect( 3 );
equal( options.length, menuItems.length, "menu item length" );
equal( "Added option", menuItems.last().text(), "added item" );
equal( "Changed value", menuItems.eq( 0 ).text(), "changed item" );
-});
+} );
asyncTest( "refresh - change selected option", function() {
expect( 4 );
equal( element.find( "option:selected" ).text(), button.text(), "button text after init" );
button.simulate( "focus" );
- setTimeout(function() {
+ setTimeout( function() {
equal( element.find( "option:selected" ).text(), button.text(), "button text after focus" );
element[ 0 ].selectedIndex = 0;
equal( "Selected option", button.text(), "button text after adding selected option" );
start();
- });
-});
+ } );
+} );
test( "refresh - disabled select", function() {
expect( 4 );
equal( button.attr( "aria-disabled" ), "true", "button ARIA" );
equal( button.attr( "tabindex" ), -1, "button tabindex" );
equal( menu.attr( "aria-disabled" ), "true", "menu ARIA" );
-});
+} );
test( "refresh - disabled option", function( assert ) {
expect( 1 );
disabledItem = menu.find( "li" ).not( ".ui-selectmenu-optgroup" ).eq( 2 );
assert.hasClasses( disabledItem, "ui-state-disabled" );
-});
+} );
test( "refresh - disabled optgroup", function( assert ) {
var i, item,
item = item.next( "li" );
assert.hasClasses( item, "ui-state-disabled" );
}
-});
+} );
test( "refresh - remove all options", function() {
expect( 2 );
equal( button.find( ".ui-selectmenu-text" ).html(), $( "<span> </span>" ).html(),
"Empty button text" );
equal( menu.children().length, 0, "Empty menu" );
-});
+} );
test( "widget and menuWidget", function( assert ) {
expect( 4 );
equal( menu.length, 1, "Menu Widget: one element" );
ok( menu.is( "ul.ui-menu" ), "Menu Widget: element and class" );
-});
+} );
} );
var element = $( "#speed" ).selectmenu();
equal( element.selectmenu( "menuWidget" ).parent().parent()[ 0 ], document.body,
"defaults to body" );
-});
+} );
test( "appendTo: explicit", function() {
expect( 6 );
var detached = $( "<div>" ),
element = $( "#speed" );
- element.selectmenu({
+ element.selectmenu( {
appendTo: ".selectmenu-wrap"
- });
+ } );
equal( element.selectmenu( "menuWidget" ).parent().parent()[ 0 ],
$( "#selectmenu-wrap1" )[ 0 ], "first found element" );
equal( $( "#selectmenu-wrap2 .ui-selectmenu" ).length, 0, "only appends to one element" );
$( "#selectmenu-wrap1" )[ 0 ], "modified after init" );
element.selectmenu( "destroy" );
- element.selectmenu({
+ element.selectmenu( {
appendTo: detached
- });
+ } );
equal( element.selectmenu( "menuWidget" ).parent().parent()[ 0 ], detached[ 0 ],
"detached jQuery object" );
element.selectmenu( "destroy" );
- element.selectmenu({
+ element.selectmenu( {
appendTo: detached[ 0 ]
- });
+ } );
equal( element.selectmenu( "menuWidget" ).parent().parent()[ 0 ], detached[ 0 ],
"detached DOM element" );
element.selectmenu( "destroy" );
equal( element.selectmenu( "menuWidget" ).parent().parent()[ 0 ], detached[ 0 ],
"detached DOM element via option()" );
element.selectmenu( "destroy" );
-});
+} );
test( "appendTo: ui-front", function() {
expect( 2 );
$( "#selectmenu-wrap2" )[ 0 ], "null, inside .ui-front" );
element.selectmenu( "destroy" );
- element.selectmenu({
+ element.selectmenu( {
appendTo: $()
- });
+ } );
equal( element.selectmenu( "menuWidget" ).parent().parent()[ 0 ],
$( "#selectmenu-wrap2" )[ 0 ], "empty jQuery object, inside .ui-front" );
-});
+} );
test( "CSS styles", function( assert ) {
expect( 5 );
assert.hasClasses( button.find( "span.ui-icon" ), "ui-icon-triangle-1-s" );
assert.hasClasses( menu, "ui-corner-bottom" );
assert.lacksClasses( button, "ui-corner-all" );
-});
+} );
test( "width", function() {
expect( 6 );
element
.selectmenu( "destroy" )
.css( "width", "100%" )
- .selectmenu({ width: null });
+ .selectmenu( { width: null } );
button = element.selectmenu( "widget" );
equal( button.outerWidth(), 300, "button width fills container" );
-});
+} );
} );