2011-10-19 17:47:02 +00:00
|
|
|
(function( $ ) {
|
|
|
|
|
|
|
|
module( "selectmenu: methods" );
|
|
|
|
|
|
|
|
test( "destroy", function() {
|
|
|
|
expect( 1 );
|
|
|
|
domEqual( "#speed", function() {
|
|
|
|
$( "#speed" ).selectmenu().selectmenu( "destroy" );
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2011-11-21 23:35:27 +00:00
|
|
|
|
2011-11-28 00:22:41 +00:00
|
|
|
test( "open / close", function() {
|
|
|
|
expect( 4 );
|
2012-02-21 17:08:14 +00:00
|
|
|
|
2012-01-13 18:49:42 +00:00
|
|
|
var element = $('#speed').selectmenu(),
|
2012-02-26 00:24:52 +00:00
|
|
|
menu = element.selectmenu("menuWidget");
|
2012-02-21 17:08:14 +00:00
|
|
|
|
2011-11-21 23:35:27 +00:00
|
|
|
element.selectmenu("open");
|
2012-02-26 00:24:52 +00:00
|
|
|
ok( menu.is( ":visible" ), "open: menu visible" );
|
2012-03-01 03:11:20 +00:00
|
|
|
equal( menu.attr("aria-hidden"), "false", "open: menu aria-disabled" );
|
2012-02-21 17:08:14 +00:00
|
|
|
|
2011-11-28 00:22:41 +00:00
|
|
|
element.selectmenu("close");
|
2012-02-26 00:24:52 +00:00
|
|
|
ok( menu.is( ":hidden" ), "close: menu hidden" );
|
2012-03-01 03:11:20 +00:00
|
|
|
equal( menu.attr("aria-hidden"), "true", "close: menu aria-disabled" );
|
2011-11-21 23:35:27 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
|
2011-11-28 00:22:41 +00:00
|
|
|
test("enable / disable", function () {
|
2012-02-21 19:22:13 +00:00
|
|
|
expect(10);
|
2012-02-21 17:08:14 +00:00
|
|
|
|
2012-01-13 18:49:42 +00:00
|
|
|
var element = $('#speed').selectmenu(),
|
2012-02-21 19:22:13 +00:00
|
|
|
button = element.selectmenu("widget"),
|
2012-02-21 23:09:44 +00:00
|
|
|
menu = element.selectmenu("menuWidget");
|
2012-02-21 17:08:14 +00:00
|
|
|
|
|
|
|
element.selectmenu("disable");
|
2011-11-28 00:22:41 +00:00
|
|
|
ok( element.selectmenu("option", "disabled"), "disable: widget option" );
|
2012-03-01 03:11:20 +00:00
|
|
|
equal( element.attr("disabled"), "disabled", "disable: native select disabled" );
|
|
|
|
equal( button.attr("aria-disabled"), "true", "disable: button wrapper ARIA" );
|
|
|
|
equal( button.attr("tabindex"), -1, "disable: button tabindex" );
|
|
|
|
equal( menu.attr("aria-disabled"), "true", "disable: menu wrapper ARIA" );
|
2012-02-21 17:08:14 +00:00
|
|
|
|
|
|
|
element.selectmenu("enable");
|
2011-11-28 00:22:41 +00:00
|
|
|
ok( !element.selectmenu("option", "disabled"), "enable: widget option" );
|
2012-03-01 03:11:20 +00:00
|
|
|
equal( element.attr("disabled"), undefined, "enable: native select disabled" );
|
|
|
|
equal( button.attr("aria-disabled"), "false", "enable: button wrapper ARIA" );
|
|
|
|
equal( button.attr("tabindex"), 0, "enable: button tabindex" );
|
|
|
|
equal( menu.attr("aria-disabled"), "false", "enable: menu wrapper ARIA" );
|
2011-11-21 23:35:27 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
|
2011-11-28 00:22:41 +00:00
|
|
|
test("refresh - structure", function () {
|
|
|
|
expect(3);
|
2012-02-21 17:08:14 +00:00
|
|
|
|
2012-01-13 18:49:42 +00:00
|
|
|
var element = $('#speed').selectmenu(),
|
2012-02-21 19:22:13 +00:00
|
|
|
menu = element.selectmenu("menuWidget").parent();
|
2012-02-21 17:08:14 +00:00
|
|
|
|
2011-11-28 00:22:41 +00:00
|
|
|
element.find("option").eq(2).remove();
|
|
|
|
element.find("option").eq(3).remove();
|
|
|
|
element.append('<option value="added_option">Added option</option>');
|
|
|
|
element.find("option").first()
|
|
|
|
.attr("value", "changed_value")
|
|
|
|
.text("Changed value");
|
|
|
|
element.selectmenu("refresh");
|
2012-02-21 17:08:14 +00:00
|
|
|
|
2012-03-01 03:11:20 +00:00
|
|
|
equal( element.find("option").length, menu.find("li").not(".ui-selectmenu-optgroup").length, "menu item length" );
|
|
|
|
equal( element.find("option").last().text(), menu.find("li").not(".ui-selectmenu-optgroup").last().text(), "added item" );
|
|
|
|
equal( element.find("option").first().text(), menu.find("li").not(".ui-selectmenu-optgroup").first().text(), "changed item" );
|
2011-11-28 00:22:41 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
test("refresh - disabled select", function () {
|
2012-02-21 19:22:13 +00:00
|
|
|
expect(4);
|
2012-02-21 17:08:14 +00:00
|
|
|
|
2012-01-13 18:49:42 +00:00
|
|
|
var element = $('#speed').selectmenu(),
|
2012-02-21 19:22:13 +00:00
|
|
|
button = element.selectmenu("widget"),
|
|
|
|
menu = element.selectmenu("menuWidget");
|
2012-02-21 17:08:14 +00:00
|
|
|
|
2011-11-28 00:22:41 +00:00
|
|
|
element.attr("disabled", "disabled");
|
|
|
|
element.selectmenu("refresh");
|
2012-02-21 17:08:14 +00:00
|
|
|
|
2011-11-28 00:22:41 +00:00
|
|
|
ok( element.selectmenu("option", "disabled"), "widget option" );
|
2012-03-01 03:11:20 +00:00
|
|
|
equal( button.attr("aria-disabled"), "true", "button wrapper ARIA" );
|
|
|
|
equal( button.attr("tabindex"), -1, "button tabindex" );
|
|
|
|
equal( menu.attr("aria-disabled"), "true", "menu wrapper ARIA" );
|
2011-11-28 00:22:41 +00:00
|
|
|
});
|
|
|
|
|
2012-01-13 19:46:47 +00:00
|
|
|
|
2011-11-28 00:22:41 +00:00
|
|
|
test("refresh - disabled option", function () {
|
2012-04-01 21:18:32 +00:00
|
|
|
expect(1);
|
2012-02-21 17:08:14 +00:00
|
|
|
|
2012-05-24 16:54:47 +00:00
|
|
|
var disabledItem,
|
|
|
|
element = $('#speed').selectmenu(),
|
2012-02-21 19:22:13 +00:00
|
|
|
button = element.selectmenu("widget").parent(),
|
|
|
|
menu = element.selectmenu("menuWidget").parent();
|
2012-02-21 17:08:14 +00:00
|
|
|
|
2011-11-28 00:22:41 +00:00
|
|
|
element.attr("disabled", "disabled");
|
|
|
|
element.find("option").eq(2).attr("disabled", "disabled");
|
|
|
|
element.selectmenu("refresh");
|
2012-02-21 17:08:14 +00:00
|
|
|
|
2012-05-24 16:54:47 +00:00
|
|
|
disabledItem = menu.find("li").not(".ui-selectmenu-optgroup").eq(2);
|
2011-11-28 00:22:41 +00:00
|
|
|
ok( disabledItem.hasClass("ui-state-disabled"), "class" );
|
|
|
|
});
|
2012-02-21 17:08:14 +00:00
|
|
|
|
|
|
|
|
2011-11-28 00:22:41 +00:00
|
|
|
test("refresh - disabled optgroup", function () {
|
2012-02-21 17:08:14 +00:00
|
|
|
|
2012-05-24 16:54:47 +00:00
|
|
|
var i,
|
|
|
|
item,
|
|
|
|
element = $('#files').selectmenu(),
|
2012-02-21 19:22:13 +00:00
|
|
|
button = element.selectmenu("widget").parent(),
|
|
|
|
menu = element.selectmenu("menuWidget").parent(),
|
2012-01-13 18:49:42 +00:00
|
|
|
originalDisabledOptgroup = element.find("optgroup").first(),
|
|
|
|
originalDisabledOptions = originalDisabledOptgroup.find("option");
|
2012-02-21 17:08:14 +00:00
|
|
|
|
2012-04-01 21:18:32 +00:00
|
|
|
expect(2 + originalDisabledOptions.length);
|
2012-02-21 17:08:14 +00:00
|
|
|
|
2011-11-28 00:22:41 +00:00
|
|
|
originalDisabledOptgroup.attr("disabled", "disabled");
|
|
|
|
element.selectmenu("refresh");
|
2012-02-21 17:08:14 +00:00
|
|
|
|
2012-05-24 16:54:47 +00:00
|
|
|
item = menu.find("li.ui-selectmenu-optgroup").first();
|
2011-11-28 00:22:41 +00:00
|
|
|
ok( item.hasClass("ui-state-disabled"), "class" );
|
2012-02-21 17:08:14 +00:00
|
|
|
|
2012-03-01 03:11:20 +00:00
|
|
|
equal( menu.find("li").not(".ui-selectmenu-optgroup").filter(".ui-state-disabled").length, originalDisabledOptions.length, "disabled options" );
|
2012-05-24 16:54:47 +00:00
|
|
|
for ( i = 0; i < originalDisabledOptions.length; i++ ) {
|
2011-11-28 00:22:41 +00:00
|
|
|
item = item.next("li");
|
|
|
|
ok( item.hasClass("ui-state-disabled"), "item #" + i + ": class" );
|
2011-11-21 23:35:27 +00:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
|
2011-10-19 17:47:02 +00:00
|
|
|
})( jQuery );
|