Skip to content

Commit

Permalink
Selectmenu: Test cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
scottgonzalez committed Apr 22, 2014
1 parent 56f6f92 commit bdb0f7a
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 49 deletions.
6 changes: 1 addition & 5 deletions tests/unit/selectmenu/selectmenu_events.js
Expand Up @@ -35,7 +35,6 @@ asyncTest( "change", function() {
}); });
}); });



test( "close", function() { test( "close", function() {
expect( 2 ); expect( 2 );


Expand All @@ -48,7 +47,7 @@ test( "close", function() {
}); });


shouldFire = false; shouldFire = false;
this.element.selectmenu( "open" ) this.element.selectmenu( "open" );
shouldFire = true; shouldFire = true;
this.element.selectmenu( "close" ); this.element.selectmenu( "close" );
shouldFire = false; shouldFire = false;
Expand All @@ -57,7 +56,6 @@ test( "close", function() {
$( "body" ).trigger( "mousedown" ); $( "body" ).trigger( "mousedown" );
}); });



asyncTest( "focus", function() { asyncTest( "focus", function() {
expect( 9 ); expect( 9 );


Expand Down Expand Up @@ -95,7 +93,6 @@ asyncTest( "focus", function() {
}); });
}); });



test( "open", function() { test( "open", function() {
expect( 1 ); expect( 1 );


Expand All @@ -108,7 +105,6 @@ test( "open", function() {
this.element.selectmenu( "open" ); this.element.selectmenu( "open" );
}); });



asyncTest( "select", function() { asyncTest( "select", function() {
expect( 3 ); expect( 3 );


Expand Down
90 changes: 46 additions & 44 deletions tests/unit/selectmenu/selectmenu_methods.js
Expand Up @@ -9,13 +9,14 @@ test( "destroy", function() {
}); });
}); });



test( "open / close", function() { test( "open / close", function() {
expect( 4 ); expect( 5 );


var element = $( "#speed" ).selectmenu(), var element = $( "#speed" ).selectmenu(),
menu = element.selectmenu( "menuWidget" ); menu = element.selectmenu( "menuWidget" );


ok( menu.is( ":hidden" ), "menu hidden on init" );

element.selectmenu( "open" ); element.selectmenu( "open" );
ok( menu.is( ":visible" ), "open: menu visible" ); ok( menu.is( ":visible" ), "open: menu visible" );
equal( menu.attr( "aria-hidden" ), "false", "open: menu aria-disabled" ); equal( menu.attr( "aria-hidden" ), "false", "open: menu aria-disabled" );
Expand All @@ -25,9 +26,8 @@ test( "open / close", function() {
equal( menu.attr( "aria-hidden" ), "true", "close: menu aria-disabled" ); equal( menu.attr( "aria-hidden" ), "true", "close: menu aria-disabled" );
}); });



test( "enable / disable", function() {
test( "enable / disable", function () { expect( 10 );
expect(10);


var element = $( "#speed" ).selectmenu(), var element = $( "#speed" ).selectmenu(),
button = element.selectmenu( "widget" ), button = element.selectmenu( "widget" ),
Expand All @@ -36,39 +36,43 @@ test( "enable / disable", function () {
element.selectmenu( "disable" ); element.selectmenu( "disable" );
ok( element.selectmenu( "option", "disabled" ), "disable: widget option" ); ok( element.selectmenu( "option", "disabled" ), "disable: widget option" );
equal( element.attr( "disabled" ), "disabled", "disable: native select disabled" ); equal( element.attr( "disabled" ), "disabled", "disable: native select disabled" );
equal( button.attr( "aria-disabled" ), "true", "disable: button wrapper ARIA" ); equal( button.attr( "aria-disabled" ), "true", "disable: button ARIA" );
equal( button.attr( "tabindex" ), -1, "disable: button tabindex" ); equal( button.attr( "tabindex" ), -1, "disable: button tabindex" );
equal( menu.attr( "aria-disabled" ), "true", "disable: menu wrapper ARIA" ); equal( menu.attr( "aria-disabled" ), "true", "disable: menu ARIA" );


element.selectmenu( "enable" ); element.selectmenu( "enable" );
ok( !element.selectmenu( "option", "disabled" ), "enable: widget option" ); ok( !element.selectmenu( "option", "disabled" ), "enable: widget option" );
equal( element.attr( "disabled" ), undefined, "enable: native select disabled" ); equal( element.attr( "disabled" ), undefined, "enable: native select disabled" );
equal( button.attr( "aria-disabled" ), "false", "enable: button wrapper ARIA" ); equal( button.attr( "aria-disabled" ), "false", "enable: button ARIA" );
equal( button.attr( "tabindex" ), 0, "enable: button tabindex" ); equal( button.attr( "tabindex" ), 0, "enable: button tabindex" );
equal( menu.attr( "aria-disabled" ), "false", "enable: menu wrapper ARIA" ); equal( menu.attr( "aria-disabled" ), "false", "enable: menu ARIA" );
}); });



test( "refresh - structure", function() {
test( "refresh - structure", function () {
expect( 3 ); expect( 3 );


var element = $( "#speed" ).selectmenu(), var menuItems,
menu = element.selectmenu( "menuWidget" ).parent(); element = $( "#speed" ).selectmenu(),
menu = element.selectmenu( "menuWidget" ),
options = element.find( "option" );


element.find( "option" ).eq( 2 ).remove(); options.eq( 0 )
element.find( "option" ).eq( 3 ).remove();
element.append( "<option value=\"added_option\">Added option</option>" );
element.find( "option" ).first()
.attr( "value", "changed_value" ) .attr( "value", "changed_value" )
.text( "Changed value" ); .text( "Changed value" );
options.eq( 2 ).remove();
options.eq( 3 ).remove();
element.append( "<option value=\"added_option\">Added option</option>" );
element.selectmenu( "refresh" ); element.selectmenu( "refresh" );


equal( element.find( "option" ).length, menu.find( "li" ).not( ".ui-selectmenu-optgroup" ).length, "menu item length" ); options = element.find( "option" );
equal( element.find( "option" ).last().text(), menu.find( "li" ).not( ".ui-selectmenu-optgroup" ).last().text(), "added item" ); menuItems = menu.find( "li" ).not( ".ui-selectmenu-optgroup" );
equal( element.find( "option" ).first().text(), menu.find( "li" ).not( ".ui-selectmenu-optgroup" ).first().text(), "changed item" );
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 () { asyncTest( "refresh - change selected option", function() {
expect( 4 ); expect( 4 );


var element = $( "#speed" ).selectmenu(), var element = $( "#speed" ).selectmenu(),
Expand All @@ -77,59 +81,54 @@ asyncTest( "refresh - change selected option", function () {
equal( element.find( "option:selected" ).text(), button.text(), "button text after init" ); equal( element.find( "option:selected" ).text(), button.text(), "button text after init" );


button.simulate( "focus" ); button.simulate( "focus" );

setTimeout(function() { setTimeout(function() {
equal( element.find( "option:selected" ).text(), button.text(), "button text after focus" ); equal( element.find( "option:selected" ).text(), button.text(), "button text after focus" );


element[ 0 ].selectedIndex = 0; element[ 0 ].selectedIndex = 0;
element.selectmenu( "refresh" ); element.selectmenu( "refresh" );
equal( element.find( "option:selected" ).text(), button.text(), "button text after changing selected option" ); equal( element.find( "option:selected" ).text(), button.text(),
"button text after changing selected option" );


element.find( "option" ).removeAttr( "selected" ); element.find( "option" ).prop( "selected", false );
element.prepend( "<option selected value=\"selected_option\">Selected option</option>" ); element.prepend( "<option selected value=\"selected_option\">Selected option</option>" );
element.selectmenu( "refresh" ); element.selectmenu( "refresh" );
equal( element.find( "option:selected" ).text(), button.text(), "button text after adding selected option" ); equal( "Selected option", button.text(), "button text after adding selected option" );


start(); start();
}, 1 ); });
}); });



test( "refresh - disabled select", function() {
test( "refresh - disabled select", function () {
expect( 4 ); expect( 4 );


var element = $( "#speed" ).selectmenu(), var element = $( "#speed" ).selectmenu(),
button = element.selectmenu( "widget" ), button = element.selectmenu( "widget" ),
menu = element.selectmenu( "menuWidget" ); menu = element.selectmenu( "menuWidget" );


element.attr( "disabled", "disabled" ); element.prop( "disabled", true );
element.selectmenu( "refresh" ); element.selectmenu( "refresh" );


ok( element.selectmenu( "option", "disabled" ), "widget option" ); ok( element.selectmenu( "option", "disabled" ), "widget option" );
equal( button.attr( "aria-disabled" ), "true", "button wrapper ARIA" ); equal( button.attr( "aria-disabled" ), "true", "button ARIA" );
equal( button.attr( "tabindex" ), -1, "button tabindex" ); equal( button.attr( "tabindex" ), -1, "button tabindex" );
equal( menu.attr( "aria-disabled" ), "true", "menu wrapper ARIA" ); equal( menu.attr( "aria-disabled" ), "true", "menu ARIA" );
}); });



test( "refresh - disabled option", function() {
test( "refresh - disabled option", function () { expect( 1 );
expect(1);


var disabledItem, var disabledItem,
element = $( "#speed" ).selectmenu(), element = $( "#speed" ).selectmenu(),
menu = element.selectmenu( "menuWidget" ).parent(); menu = element.selectmenu( "menuWidget" ).parent();


element.attr( "disabled", "disabled" ); element.find( "option" ).eq( 2 ).prop( "disabled", true );
element.find( "option" ).eq( 2 ).attr( "disabled", "disabled" );
element.selectmenu( "refresh" ); element.selectmenu( "refresh" );


disabledItem = menu.find( "li" ).not( ".ui-selectmenu-optgroup" ).eq(2); disabledItem = menu.find( "li" ).not( ".ui-selectmenu-optgroup" ).eq( 2 );
ok( disabledItem.hasClass( "ui-state-disabled" ), "class" ); ok( disabledItem.hasClass( "ui-state-disabled" ), "class" );
}); });



test( "refresh - disabled optgroup", function() {
test( "refresh - disabled optgroup", function () {

var i, item, var i, item,
element = $( "#files" ).selectmenu(), element = $( "#files" ).selectmenu(),
menu = element.selectmenu( "menuWidget" ).parent(), menu = element.selectmenu( "menuWidget" ).parent(),
Expand All @@ -138,13 +137,17 @@ test( "refresh - disabled optgroup", function () {


expect( 2 + originalDisabledOptions.length ); expect( 2 + originalDisabledOptions.length );


originalDisabledOptgroup.attr( "disabled", "disabled" ); originalDisabledOptgroup.prop( "disabled", true );
element.selectmenu( "refresh" ); element.selectmenu( "refresh" );


item = menu.find( "li.ui-selectmenu-optgroup" ).first(); item = menu.find( "li.ui-selectmenu-optgroup" ).first();
ok( item.hasClass( "ui-state-disabled" ), "class" ); ok( item.hasClass( "ui-state-disabled" ), "class" );


equal( menu.find( "li" ).not( ".ui-selectmenu-optgroup" ).filter( ".ui-state-disabled" ).length, originalDisabledOptions.length, "disabled options" ); equal(
menu.find( "li" ).not( ".ui-selectmenu-optgroup" ).filter( ".ui-state-disabled" ).length,
originalDisabledOptions.length,
"disabled options"
);
for ( i = 0; i < originalDisabledOptions.length; i++ ) { for ( i = 0; i < originalDisabledOptions.length; i++ ) {
item = item.next( "li" ); item = item.next( "li" );
ok( item.hasClass( "ui-state-disabled" ), "item #" + i + ": class" ); ok( item.hasClass( "ui-state-disabled" ), "item #" + i + ": class" );
Expand All @@ -153,12 +156,11 @@ test( "refresh - disabled optgroup", function () {


test( "widget and menuWidget", function() { test( "widget and menuWidget", function() {
expect( 4 ); expect( 4 );

var element = $( "#speed" ).selectmenu(), var element = $( "#speed" ).selectmenu(),
button = element.selectmenu( "widget" ), button = element.selectmenu( "widget" ),
menu = element.selectmenu( "menuWidget" ); menu = element.selectmenu( "menuWidget" );


element.selectmenu( "refresh" );

This comment has been minimized.

Copy link
@fnagel

fnagel Apr 23, 2014

Member

Removing the refresh will cause errors: as the menu is lazy loaded on refresh!


equal( button.length, 1, "button: one element" ); equal( button.length, 1, "button: one element" );
ok( button.is( ".ui-selectmenu-button" ), "button: class" ); ok( button.is( ".ui-selectmenu-button" ), "button: class" );


Expand Down

1 comment on commit bdb0f7a

@jzaefferer
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This caused a regression in IE8, 10 and 11: http://swarm.jquery.org/job/2888 (previous job didn't have those three failures).

Please sign in to comment.