From ea58cd5ac0d852a9c7d7ceadbcbb74006cf9052d Mon Sep 17 00:00:00 2001 From: jzaefferer Date: Fri, 30 Jul 2010 14:26:58 +0200 Subject: [PATCH] Use pushStack in widget method. Fixes #5732 - make the widget method maintain the stack --- tests/unit/autocomplete/autocomplete_methods.js | 10 +++++++++- tests/unit/button/button_methods.js | 14 ++++++++++++++ tests/unit/dialog/dialog_methods.js | 6 ++++++ tests/unit/widget/widget_core.js | 9 ++++++--- ui/jquery.ui.autocomplete.js | 2 +- ui/jquery.ui.button.js | 2 +- ui/jquery.ui.dialog.js | 2 +- ui/jquery.ui.widget.js | 2 +- 8 files changed, 39 insertions(+), 8 deletions(-) diff --git a/tests/unit/autocomplete/autocomplete_methods.js b/tests/unit/autocomplete/autocomplete_methods.js index 05a7d6e14..a009a83f5 100644 --- a/tests/unit/autocomplete/autocomplete_methods.js +++ b/tests/unit/autocomplete/autocomplete_methods.js @@ -38,6 +38,14 @@ test("search", function() { same( $(".ui-menu .ui-menu-item").length, 2, "only java and javascript for 'ja'" ); $("#autocomplete").autocomplete("destroy"); -}) +}); + +test("widget", function() { + var ac = $("#autocomplete").autocomplete({ + source: data + }); + same(ac.autocomplete("widget")[0], $(":ui-menu")[0]); + same(ac.autocomplete("widget").end()[0], ac[0]); +}); })(jQuery); diff --git a/tests/unit/button/button_methods.js b/tests/unit/button/button_methods.js index a83a73ba4..5197bc40c 100644 --- a/tests/unit/button/button_methods.js +++ b/tests/unit/button/button_methods.js @@ -16,4 +16,18 @@ test("destroy", function() { equal( afterHtml, beforeHtml ); }); +test("widget", function() { + var submit = $("#submit").button(); + same(submit.button("widget")[0], submit[0]); + same(submit.button("widget").end()[0], submit[0]); + + var check = $("#check").button(); + same(check.button("widget")[0], check.next("label")[0]); + same(check.button("widget").end()[0], check[0]); + + var radio = $("#radio01").button(); + same(radio.button("widget")[0], radio.next("label")[0]); + same(radio.button("widget").end()[0], radio[0]); +}); + })(jQuery); diff --git a/tests/unit/dialog/dialog_methods.js b/tests/unit/dialog/dialog_methods.js index 93d1b25db..e4b77aa0b 100644 --- a/tests/unit/dialog/dialog_methods.js +++ b/tests/unit/dialog/dialog_methods.js @@ -130,4 +130,10 @@ test("open", function() { ok(dlg().is(':visible') && !dlg().is(':hidden'), 'dialog visible after open method called'); }); +test("widget", function() { + var dialog = $('
').dialog(); + same(dialog.dialog("widget")[0], dialog.parent()[0]); + same(dialog.dialog("widget").end()[0], dialog[0]); +}); + })(jQuery); diff --git a/tests/unit/widget/widget_core.js b/tests/unit/widget/widget_core.js index 3c870f1fe..52c91d51e 100644 --- a/tests/unit/widget/widget_core.js +++ b/tests/unit/widget/widget_core.js @@ -151,7 +151,8 @@ test(".widget() - base", function() { _create: function() {} }); var div = $("
").testWidget() - same(div[0], div.testWidget("widget")[0]); + same(div.testWidget("widget")[0], div[0]); + same(div.testWidget("widget").end()[0], div[0]); }); test(".widget() - overriden", function() { @@ -159,10 +160,12 @@ test(".widget() - overriden", function() { $.widget("ui.testWidget", { _create: function() {}, widget: function() { - return wrapper; + return this.element.pushStack(wrapper.get()); } }); - same(wrapper[0], $("
").testWidget().testWidget("widget")[0]); + var div = $("
").testWidget(); + same(div.testWidget("widget")[0], wrapper[0]); + same(div.testWidget("widget").end()[0], div[0]); }); })(jQuery); diff --git a/ui/jquery.ui.autocomplete.js b/ui/jquery.ui.autocomplete.js index 855037824..e93818d53 100644 --- a/ui/jquery.ui.autocomplete.js +++ b/ui/jquery.ui.autocomplete.js @@ -311,7 +311,7 @@ $.widget( "ui.autocomplete", { }, widget: function() { - return this.menu.element; + return this.element.pushStack(this.menu.element.get()); } }); diff --git a/ui/jquery.ui.button.js b/ui/jquery.ui.button.js index b2fab4d24..54e099a0a 100644 --- a/ui/jquery.ui.button.js +++ b/ui/jquery.ui.button.js @@ -210,7 +210,7 @@ $.widget( "ui.button", { }, widget: function() { - return this.buttonElement; + return this.element.pushStack(this.buttonElement.get()); }, destroy: function() { diff --git a/ui/jquery.ui.dialog.js b/ui/jquery.ui.dialog.js index df11e2190..0122ce905 100644 --- a/ui/jquery.ui.dialog.js +++ b/ui/jquery.ui.dialog.js @@ -207,7 +207,7 @@ $.widget("ui.dialog", { }, widget: function() { - return this.uiDialog; + return this.element.pushStack(this.uiDialog.get()); }, close: function(event) { diff --git a/ui/jquery.ui.widget.js b/ui/jquery.ui.widget.js index e21287ae0..b5e10ba0f 100644 --- a/ui/jquery.ui.widget.js +++ b/ui/jquery.ui.widget.js @@ -160,7 +160,7 @@ $.Widget.prototype = { }, widget: function() { - return this.element; + return this.element.pushStack(this.element.get()); }, option: function( key, value ) { -- 2.39.5