diff --git a/tests/unit/widget/widget_core.js b/tests/unit/widget/widget_core.js index 49abaff24d1..c63b99afbfc 100644 --- a/tests/unit/widget/widget_core.js +++ b/tests/unit/widget/widget_core.js @@ -608,17 +608,20 @@ test( ".option() - deep option setter", function() { }); test( "_classes", function(){ - expect( 3 ); + expect( 4 ); $.widget( "ui.testWidget", { options: { classes: { "test": "class1 class2", + "testEmpty": "", "test2": "class3" } }, _create: function() { equal( this._classes( "test" ), "test class1 class2" ); equal( this._classes( "test2" ), "test2 class3" ); + equal( this._classes( "testEmpty" ), "testEmpty", + "Computed value of empty-string-valued class key has no extra spaces" ); equal( this._classes( "test test2" ), "test2 class3 test class1 class2" ); } }); diff --git a/ui/widget.js b/ui/widget.js index cee9daf2d4e..4ac503654ba 100644 --- a/ui/widget.js +++ b/ui/widget.js @@ -410,7 +410,11 @@ $.Widget.prototype = { while ( i-- ) { out.push( parts[ i ] ); - out.push( classes[ parts[ i ] ] ); + + // Avoid extra spaces in the return value resulting from pushing an empty classes value + if ( classes[ parts[ i ] ] ) { + out.push( classes[ parts[ i ] ] ); + } } return out.join( " " );