diff options
author | Jörn Zaefferer <joern.zaefferer@gmail.com> | 2013-09-11 22:11:58 +0200 |
---|---|---|
committer | Jörn Zaefferer <joern.zaefferer@gmail.com> | 2013-09-11 22:26:34 +0200 |
commit | 6e799c39d33be8eee02224d2f754dc42228a4cbb (patch) | |
tree | a6134169056aa77286a821ba7f432026d7938881 | |
parent | 37bba1eb920298994903e866625bb662f391a1f5 (diff) | |
download | jquery-ui-6e799c39d33be8eee02224d2f754dc42228a4cbb.tar.gz jquery-ui-6e799c39d33be8eee02224d2f754dc42228a4cbb.zip |
Widget Bridge: Make the _init method optional. Add tests for both states. Fixes #9543 - Widget bridge: Make _init() optional.
-rw-r--r-- | tests/unit/widget/widget_core.js | 13 | ||||
-rw-r--r-- | ui/jquery.ui.widget.js | 5 |
2 files changed, 16 insertions, 2 deletions
diff --git a/tests/unit/widget/widget_core.js b/tests/unit/widget/widget_core.js index 3db79ec06..ec4c85874 100644 --- a/tests/unit/widget/widget_core.js +++ b/tests/unit/widget/widget_core.js @@ -1409,7 +1409,7 @@ asyncTest( "_delay", function() { }); test( "$.widget.bridge()", function() { - expect( 10 ); + expect( 14 ); var instance, ret, elem = $( "<div>" ); @@ -1427,6 +1427,9 @@ test( "$.widget.bridge()", function() { }, getter: function() { return "qux"; + }, + option: function( options ) { + deepEqual( options, {} ); } }); @@ -1444,6 +1447,14 @@ test( "$.widget.bridge()", function() { ret = elem.testWidget( "getter" ); equal( ret, "qux", "getter returns value" ); + + elem.testWidget(); + ok( true, "_init is optional" ); + + TestWidget.prototype._init = function() { + ok( "_init", "_init now exists, so its called" ); + }; + elem.testWidget(); }); test( "$.widget.bridge() - widgetFullName", function() { diff --git a/ui/jquery.ui.widget.js b/ui/jquery.ui.widget.js index 885e2019f..b4aab5f3e 100644 --- a/ui/jquery.ui.widget.js +++ b/ui/jquery.ui.widget.js @@ -203,7 +203,10 @@ $.widget.bridge = function( name, object ) { this.each(function() { var instance = $.data( this, fullName ); if ( instance ) { - instance.option( options || {} )._init(); + instance.option( options || {} ); + if ( instance._init ) { + instance._init(); + } } else { $.data( this, fullName, new object( options, this ) ); } |