diff --git a/tests/unit/selectmenu/core.js b/tests/unit/selectmenu/core.js index 689668e70..1c1a6b622 100644 --- a/tests/unit/selectmenu/core.js +++ b/tests/unit/selectmenu/core.js @@ -329,4 +329,22 @@ $.each( [ } ); } ); + asyncTest( "Selectmenu should reset when its parent form resets", function() { + expect( 2 ); + + var element = $( "#speed" ).selectmenu(), + widget = element.selectmenu( "widget" ), + initialValue = element.val(), + form = element.closest( "form" ); + + element.val( "Slower" ); + element.selectmenu( "refresh" ); + equal( $.trim( widget.text() ), "Slower" ); + form[ 0 ].reset(); + setTimeout( function() { + equal( $.trim( widget.text() ), initialValue ); + start(); + } ); + } ); + } ); diff --git a/tests/unit/selectmenu/selectmenu.html b/tests/unit/selectmenu/selectmenu.html index 1df6e3ebc..be8b826c8 100644 --- a/tests/unit/selectmenu/selectmenu.html +++ b/tests/unit/selectmenu/selectmenu.html @@ -13,7 +13,7 @@
-
+
-
+ ", options: { @@ -76,6 +77,7 @@ return $.widget( "ui.selectmenu", { this._drawButton(); this._drawMenu(); + this._bindFormResetHandler(); this._rendered = false; this.menuItems = $(); @@ -675,12 +677,13 @@ return $.widget( "ui.selectmenu", { }, _destroy: function() { + this._unbindFormResetHandler(); this.menuWrap.remove(); this.button.remove(); this.element.show(); this.element.removeUniqueId(); this.labels.attr( "for", this.ids.element ); } -} ); +} ] ); } ) );