@@ -4,6 +4,7 @@ module( "widget factory", {
44 teardown : function ( ) {
55 if ( $ . ui ) {
66 delete $ . ui . testWidget ;
7+ delete $ . fn . testWidget ;
78 }
89 }
910} ) ;
@@ -1305,4 +1306,56 @@ asyncTest( "_delay", function() {
13051306 $ ( "#widget" ) . testWidget ( ) ;
13061307} ) ;
13071308
1309+ test ( "$.widget.bridge()" , function ( ) {
1310+ expect ( 9 ) ;
1311+
1312+ var instance , ret ,
1313+ elem = $ ( "<div>" ) ;
1314+
1315+ function TestWidget ( options , element ) {
1316+ deepEqual ( options , { foo : "bar" } , "options passed" ) ;
1317+ strictEqual ( element , elem [ 0 ] , "element passed" ) ;
1318+ }
1319+
1320+ $ . extend ( TestWidget . prototype , {
1321+ method : function ( param ) {
1322+ ok ( true , "method called via .pluginName(methodName)" ) ;
1323+ equal ( param , "value1" ,
1324+ "parameter passed via .pluginName(methodName, param)" ) ;
1325+ } ,
1326+ getter : function ( ) {
1327+ return "qux" ;
1328+ }
1329+ } ) ;
1330+
1331+ $ . widget . bridge ( "testWidget" , TestWidget ) ;
1332+
1333+ ok ( $ . isFunction ( $ . fn . testWidget ) , "jQuery plugin was created" ) ;
1334+
1335+ strictEqual ( elem . testWidget ( { foo : "bar" } ) , elem , "plugin returns original jQuery object" ) ;
1336+ instance = elem . data ( "testWidget" ) ;
1337+ equal ( typeof instance , "object" , "instance stored in .data(pluginName)" ) ;
1338+
1339+ ret = elem . testWidget ( "method" , "value1" ) ;
1340+ equal ( ret , elem , "jQuery object returned from method call" ) ;
1341+
1342+ ret = elem . testWidget ( "getter" ) ;
1343+ equal ( ret , "qux" , "getter returns value" ) ;
1344+ } ) ;
1345+
1346+ test ( "$.widget.bridge() - widgetFullName" , function ( ) {
1347+ expect ( 1 ) ;
1348+
1349+ var instance ,
1350+ elem = $ ( "<div>" ) ;
1351+
1352+ function TestWidget ( ) { }
1353+ TestWidget . prototype . widgetFullName = "custom-widget" ;
1354+ $ . widget . bridge ( "testWidget" , TestWidget ) ;
1355+
1356+ elem . testWidget ( ) ;
1357+ instance = elem . data ( "custom-widget" ) ;
1358+ equal ( typeof instance , "object" , "instance stored in .data(widgetFullName)" ) ;
1359+ } ) ;
1360+
13081361} ( jQuery ) ) ;
0 commit comments