aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/unit/widget/widget_core.js13
-rw-r--r--ui/jquery.ui.widget.js5
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 ) );
}