module( "selectmenu: core" );
test( "markup structure", function( assert ) {
- expect( 4 );
+ expect( 5 );
var element = $( "#files" ).selectmenu(),
button = element.selectmenu( "widget" ),
assert.hasClasses( button,
"ui-selectmenu-button ui-selectmenu-button-closed ui-widget" );
assert.lacksClasses( button, "ui-selectmenu-button-open" );
+ assert.lacksClasses( button, "ui-selectmenu-open" );
assert.hasClasses( menuWrap, "ui-selectmenu-menu" );
assert.lacksClasses( menuWrap, "ui-selectmenu-menu-open" );
} );
element.selectmenu( "refresh" );
option = element.find( "option:selected" );
equal(
- option.text() + element[ 0 ].selectedIndex,
+ " " + option.text() + element[ 0 ].selectedIndex,
button.text(),
"refresh: button item text"
);
menu.find( "li" ).last().simulate( "mouseover" ).trigger( "click" );
option = element.find( "option" ).last();
equal(
- option.text() + element[ 0 ].selectedIndex,
+ " " + option.text() + element[ 0 ].selectedIndex,
button.text(),
"click: button item text"
);
selected.val(),
"original select state"
);
- equal( button.text(), selected.text(), "button text" );
+ equal( button.text(), " " + selected.text(), "button text" );
start();
} );
} );
selected.val(),
"original select state"
);
- equal( button.text(), selected.text(), "button text" );
+ equal( button.text(), " " + selected.text(), "button text" );
start();
}, 1 );
} );
"button aria-activedescendant" );
equal( element.find( "option:selected" ).val(), options.eq( 1 ).val(),
"original select state" );
- equal( button.text(), options.eq( 1 ).text(), "button text" );
+ equal( button.text(), " " + options.eq( 1 ).text(), "button text" );
start();
} );
} );
var element = $( "#speed" ).selectmenu(),
button = element.selectmenu( "widget" );
- equal( element.find( "option:selected" ).text(), button.text(), "button text after init" );
+ equal( button.text(), " Medium", "button text after init" );
button.simulate( "focus" );
+
setTimeout( function() {
- equal( element.find( "option:selected" ).text(), button.text(), "button text after focus" );
+ equal( button.text(), " Medium", "button text after focus" );
element[ 0 ].selectedIndex = 0;
element.selectmenu( "refresh" );
- equal( element.find( "option:selected" ).text(), button.text(),
- "button text after changing selected option" );
+ equal( button.text(), " Slower", "button text after changing selected option" );
element.find( "option" ).prop( "selected", false );
element.append( "<option selected value=\"selected_option\">Selected option</option>" );
element.selectmenu( "refresh" );
- equal( "Selected option", button.text(), "button text after adding selected option" );
+ equal( button.text(), " Selected option", "button text after adding selected option" );
start();
} );
menu = element.selectmenu( "menuWidget" );
equal( button.length, 1, "button: one element" );
- assert.hasClasses( button, "ui-selectmenu-button" );
+ assert.hasClasses( button, "ui-button" );
equal( menu.length, 1, "Menu Widget: one element" );
ok( menu.is( "ul.ui-menu" ), "Menu Widget: element and class" );
<head>
<meta charset="utf-8">
<title>jQuery UI Selectmenu Test Suite</title>
-
<script src="../../../external/requirejs/require.js"></script>
- <script src="../../lib/css.js" data-modules="core menu selectmenu"></script>
+ <script src="../../lib/css.js" data-modules="core menu selectmenu button"></script>
<script src="../../lib/bootstrap.js" data-widget="selectmenu"></script>
+
</head>
<body>
.ui-selectmenu-open {
display: block;
}
-.ui-selectmenu-button {
- display: inline-block;
- overflow: hidden;
- position: relative;
- text-decoration: none;
- cursor: pointer;
- width: 14em;
-}
-.ui-selectmenu-button span.ui-icon {
- right: 0.5em;
- left: auto;
- margin-top: -8px;
- position: absolute;
- top: 50%;
-}
-.ui-selectmenu-button span.ui-selectmenu-text {
+.ui-selectmenu-button.ui-button {
text-align: left;
- padding: 0.4em 2.1em 0.4em 1em;
- display: block;
- line-height: 1.4;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
+ width: 14em;
}
//>>docs: http://api.jqueryui.com/selectmenu/
//>>demos: http://jqueryui.com/selectmenu/
//>>css.structure: ../themes/base/core.css
-//>>css.structure: ../themes/base/selectmenu.css
+//>>css.structure: ../themes/base/selectmenu.css, ../themes/base/button.css
//>>css.theme: ../themes/base/theme.css
( function( factory ) {
},
_drawButton: function() {
- var icon,
+ var icon, space,
that = this,
item = this._parseOption(
this.element.find( "option:selected" ),
.insertAfter( this.element );
this._addClass( this.button, "ui-selectmenu-button ui-selectmenu-button-closed",
- "ui-widget ui-state-default" );
+ "ui-button ui-widget" );
icon = $( "<span>" ).prependTo( this.button );
+ space = $( "<span> </span>" );
+ this._addClass( space, "ui-selectmenu-icon-space" );
this._addClass( icon, null, "ui-icon " + this.options.icons.button );
+ icon.after( space );
this.buttonItem = this._renderButtonItem( item )
.appendTo( this.button );
that._refreshMenu();
}
} );
- this._hoverable( this.button );
- this._focusable( this.button );
},
_drawMenu: function() {
// we always remove classes first and add them second, otherwise if both classes have the
// same theme class, it will be removed after we add it.
this._removeClass( this.button, "ui-selectmenu-button-" +
- ( this.isOpen ? "closed" : "open" ) )
+ ( this.isOpen ? "closed" : "open" ) )
._addClass( this.button, "ui-selectmenu-button-" +
( this.isOpen ? "open" : "closed" ) )
._toggleClass( this.menuWrap, "ui-selectmenu-open", null, this.isOpen );