@@ -281,4 +281,132 @@ test( ".widget() - overriden", function() {
281
281
same ( wrapper [ 0 ] , $ ( "<div></div>" ) . testWidget ( ) . testWidget ( "widget" ) [ 0 ] ) ;
282
282
} ) ;
283
283
284
+ test ( "._trigger() - no event, no ui" , function ( ) {
285
+ expect ( 7 ) ;
286
+ var handlers = [ ] ;
287
+
288
+ $ . widget ( "ui.testWidget" , {
289
+ _create : function ( ) { }
290
+ } ) ;
291
+
292
+ $ ( "#widget" ) . testWidget ( {
293
+ foo : function ( event , ui ) {
294
+ same ( event . type , "testwidgetfoo" , "correct event type in callback" ) ;
295
+ same ( ui , { } , "empty ui hash passed" ) ;
296
+ handlers . push ( "callback" ) ;
297
+ }
298
+ } ) ;
299
+ $ ( document ) . add ( "#widget-wrapper" ) . add ( "#widget" )
300
+ . bind ( "testwidgetfoo" , function ( event , ui ) {
301
+ same ( ui , { } , "empty ui hash passed" ) ;
302
+ handlers . push ( this ) ;
303
+ } ) ;
304
+ same ( $ ( "#widget" ) . data ( "testWidget" ) . _trigger ( "foo" ) , true ,
305
+ "_trigger returns true when event is not cancelled" ) ;
306
+ same ( handlers , [
307
+ $ ( "#widget" ) [ 0 ] ,
308
+ $ ( "#widget-wrapper" ) [ 0 ] ,
309
+ document ,
310
+ "callback"
311
+ ] , "event bubbles and then invokes callback" ) ;
312
+
313
+ $ ( document ) . unbind ( "testwidgetfoo" ) ;
314
+ } ) ;
315
+
316
+ test ( "._trigger() - cancelled event" , function ( ) {
317
+ expect ( 3 ) ;
318
+
319
+ $ . widget ( "ui.testWidget" , {
320
+ _create : function ( ) { }
321
+ } ) ;
322
+
323
+ $ ( "#widget" ) . testWidget ( {
324
+ foo : function ( event , ui ) {
325
+ ok ( true , "callback invoked even if event is cancelled" ) ;
326
+ }
327
+ } )
328
+ . bind ( "testwidgetfoo" , function ( event , ui ) {
329
+ ok ( true , "event was triggered" ) ;
330
+ return false ;
331
+ } ) ;
332
+ same ( $ ( "#widget" ) . data ( "testWidget" ) . _trigger ( "foo" ) , false ,
333
+ "_trigger returns false when event is cancelled" ) ;
334
+ } ) ;
335
+
336
+ test ( "._trigger() - cancelled callback" , function ( ) {
337
+ $ . widget ( "ui.testWidget" , {
338
+ _create : function ( ) { }
339
+ } ) ;
340
+
341
+ $ ( "#widget" ) . testWidget ( {
342
+ foo : function ( event , ui ) {
343
+ return false ;
344
+ }
345
+ } ) ;
346
+ same ( $ ( "#widget" ) . data ( "testWidget" ) . _trigger ( "foo" ) , false ,
347
+ "_trigger returns false when callback returns false" ) ;
348
+ } ) ;
349
+
350
+ test ( "._trigger() - provide event and ui" , function ( ) {
351
+ expect ( 7 ) ;
352
+
353
+ var originalEvent = $ . Event ( "originalTest" ) ;
354
+ $ . widget ( "ui.testWidget" , {
355
+ _create : function ( ) { } ,
356
+ testEvent : function ( ) {
357
+ var ui = {
358
+ foo : "bar" ,
359
+ baz : {
360
+ qux : 5 ,
361
+ quux : 20
362
+ }
363
+ } ;
364
+ this . _trigger ( "foo" , originalEvent , ui ) ;
365
+ same ( ui , {
366
+ foo : "notbar" ,
367
+ baz : {
368
+ qux : 10 ,
369
+ quux : "jQuery"
370
+ }
371
+ } , "ui object modified" ) ;
372
+ }
373
+ } ) ;
374
+ $ ( "#widget" ) . bind ( "testwidgetfoo" , function ( event , ui ) {
375
+ equal ( event . originalEvent , originalEvent , "original event object passed" ) ;
376
+ same ( ui , {
377
+ foo : "bar" ,
378
+ baz : {
379
+ qux : 5 ,
380
+ quux : 20
381
+ }
382
+ } , "ui hash passed" ) ;
383
+ ui . foo = "notbar" ;
384
+ } ) ;
385
+ $ ( "#widget-wrapper" ) . bind ( "testwidgetfoo" , function ( event , ui ) {
386
+ equal ( event . originalEvent , originalEvent , "original event object passed" ) ;
387
+ same ( ui , {
388
+ foo : "notbar" ,
389
+ baz : {
390
+ qux : 5 ,
391
+ quux : 20
392
+ }
393
+ } , "modified ui hash passed" ) ;
394
+ ui . baz . qux = 10 ;
395
+ } ) ;
396
+ $ ( "#widget" ) . testWidget ( {
397
+ foo : function ( event , ui ) {
398
+ equal ( event . originalEvent , originalEvent , "original event object passed" ) ;
399
+ same ( ui , {
400
+ foo : "notbar" ,
401
+ baz : {
402
+ qux : 10 ,
403
+ quux : 20
404
+ }
405
+ } , "modified ui hash passed" ) ;
406
+ ui . baz . quux = "jQuery" ;
407
+ }
408
+ } )
409
+ . testWidget ( "testEvent" ) ;
410
+ } ) ;
411
+
284
412
} ) ( jQuery ) ;
0 commit comments