@@ -24,7 +24,7 @@ test( "widget creation", function() {
24
24
} ) ;
25
25
26
26
test ( "element normalization" , function ( ) {
27
- expect ( 12 ) ;
27
+ expect ( 11 ) ;
28
28
var elem ;
29
29
$ . widget ( "ui.testWidget" , { } ) ;
30
30
@@ -67,7 +67,6 @@ test( "element normalization", function() {
67
67
$ . ui . testWidget . prototype . _create = function ( ) {
68
68
// using strictEqual throws an error (Maximum call stack size exceeded)
69
69
ok ( this . element [ 0 ] === this , "instance as element" ) ;
70
- ok ( this . element . data ( "testWidget" ) === this , "instance stored in .data()" ) ;
71
70
} ;
72
71
$ . ui . testWidget ( ) ;
73
72
} ) ;
@@ -219,7 +218,7 @@ test( "merge multiple option arguments", function() {
219
218
} ) ;
220
219
} ) ;
221
220
222
- test ( "_getCreateOptions()" , function ( ) {
221
+ test ( ". _getCreateOptions()" , function ( ) {
223
222
expect ( 1 ) ;
224
223
$ . widget ( "ui.testWidget" , {
225
224
options : {
@@ -450,6 +449,165 @@ test( ".widget() - overriden", function() {
450
449
same ( wrapper [ 0 ] , $ ( "<div>" ) . testWidget ( ) . testWidget ( "widget" ) [ 0 ] ) ;
451
450
} ) ;
452
451
452
+ test ( "._bind() to element (default)" , function ( ) {
453
+ expect ( 12 ) ;
454
+ var self ;
455
+ $ . widget ( "ui.testWidget" , {
456
+ _create : function ( ) {
457
+ self = this ;
458
+ this . _bind ( {
459
+ keyup : this . keyup ,
460
+ keydown : "keydown"
461
+ } ) ;
462
+ } ,
463
+ keyup : function ( event ) {
464
+ equals ( self , this ) ;
465
+ equals ( self . element [ 0 ] , event . currentTarget ) ;
466
+ equals ( "keyup" , event . type ) ;
467
+ } ,
468
+ keydown : function ( event ) {
469
+ equals ( self , this ) ;
470
+ equals ( self . element [ 0 ] , event . currentTarget ) ;
471
+ equals ( "keydown" , event . type ) ;
472
+ }
473
+ } ) ;
474
+ var widget = $ ( "<div></div>" )
475
+ . testWidget ( )
476
+ . trigger ( "keyup" )
477
+ . trigger ( "keydown" ) ;
478
+ widget
479
+ . testWidget ( "disable" )
480
+ . trigger ( "keyup" )
481
+ . trigger ( "keydown" ) ;
482
+ widget
483
+ . testWidget ( "enable" )
484
+ . trigger ( "keyup" )
485
+ . trigger ( "keydown" ) ;
486
+ widget
487
+ . testWidget ( "destroy" )
488
+ . trigger ( "keyup" )
489
+ . trigger ( "keydown" ) ;
490
+ } ) ;
491
+
492
+ test ( "._bind() to descendent" , function ( ) {
493
+ expect ( 12 ) ;
494
+ var self ;
495
+ $ . widget ( "ui.testWidget" , {
496
+ _create : function ( ) {
497
+ self = this ;
498
+ this . _bind ( this . element . find ( "strong" ) , {
499
+ keyup : this . keyup ,
500
+ keydown : "keydown"
501
+ } ) ;
502
+ } ,
503
+ keyup : function ( event ) {
504
+ equals ( self , this ) ;
505
+ equals ( self . element . find ( "strong" ) [ 0 ] , event . currentTarget ) ;
506
+ equals ( "keyup" , event . type ) ;
507
+ } ,
508
+ keydown : function ( event ) {
509
+ equals ( self , this ) ;
510
+ equals ( self . element . find ( "strong" ) [ 0 ] , event . currentTarget ) ;
511
+ equals ( "keydown" , event . type ) ;
512
+ }
513
+ } ) ;
514
+ // trigger events on both widget and descendent to ensure that only descendent receives them
515
+ var widget = $ ( "<div><p><strong>hello</strong> world</p></div>" )
516
+ . testWidget ( )
517
+ . trigger ( "keyup" )
518
+ . trigger ( "keydown" ) ;
519
+ var descendent = widget . find ( "strong" )
520
+ . trigger ( "keyup" )
521
+ . trigger ( "keydown" ) ;
522
+ widget
523
+ . testWidget ( "disable" )
524
+ . trigger ( "keyup" )
525
+ . trigger ( "keydown" ) ;
526
+ descendent
527
+ . trigger ( "keyup" )
528
+ . trigger ( "keydown" ) ;
529
+ widget
530
+ . testWidget ( "enable" )
531
+ . trigger ( "keyup" )
532
+ . trigger ( "keydown" ) ;
533
+ descendent
534
+ . trigger ( "keyup" )
535
+ . trigger ( "keydown" ) ;
536
+ descendent
537
+ . addClass ( "ui-state-disabled" )
538
+ . trigger ( "keyup" )
539
+ . trigger ( "keydown" ) ;
540
+ widget
541
+ . testWidget ( "destroy" )
542
+ . trigger ( "keyup" )
543
+ . trigger ( "keydown" ) ;
544
+ descendent
545
+ . trigger ( "keyup" )
546
+ . trigger ( "keydown" ) ;
547
+ } ) ;
548
+
549
+ test ( "._hoverable()" , function ( ) {
550
+ $ . widget ( "ui.testWidget" , {
551
+ _create : function ( ) {
552
+ this . _hoverable ( this . element . children ( ) ) ;
553
+ }
554
+ } ) ;
555
+
556
+ var div = $ ( "#widget" ) . testWidget ( ) . children ( ) ;
557
+ ok ( ! div . hasClass ( "ui-state-hover" ) , "not hovered on init" ) ;
558
+ div . trigger ( "mouseenter" ) ;
559
+ ok ( div . hasClass ( "ui-state-hover" ) , "hovered after mouseenter" ) ;
560
+ div . trigger ( "mouseleave" ) ;
561
+ ok ( ! div . hasClass ( "ui-state-hover" ) , "not hovered after mouseleave" ) ;
562
+
563
+ div . trigger ( "mouseenter" ) ;
564
+ ok ( div . hasClass ( "ui-state-hover" ) , "hovered after mouseenter" ) ;
565
+ $ ( "#widget" ) . testWidget ( "disable" ) ;
566
+ ok ( ! div . hasClass ( "ui-state-hover" ) , "not hovered while disabled" ) ;
567
+ div . trigger ( "mouseenter" ) ;
568
+ ok ( ! div . hasClass ( "ui-state-hover" ) , "can't hover while disabled" ) ;
569
+ $ ( "#widget" ) . testWidget ( "enable" ) ;
570
+ ok ( ! div . hasClass ( "ui-state-hover" ) , "enabling doesn't reset hover" ) ;
571
+
572
+ div . trigger ( "mouseenter" ) ;
573
+ ok ( div . hasClass ( "ui-state-hover" ) , "hovered after mouseenter" ) ;
574
+ $ ( "#widget" ) . testWidget ( "destroy" ) ;
575
+ ok ( ! div . hasClass ( "ui-state-hover" ) , "not hovered after destroy" ) ;
576
+ div . trigger ( "mouseenter" ) ;
577
+ ok ( ! div . hasClass ( "ui-state-hover" ) , "event handler removed on destroy" ) ;
578
+ } ) ;
579
+
580
+ test ( "._focusable()" , function ( ) {
581
+ $ . widget ( "ui.testWidget" , {
582
+ _create : function ( ) {
583
+ this . _focusable ( this . element . children ( ) ) ;
584
+ }
585
+ } ) ;
586
+
587
+ var div = $ ( "#widget" ) . testWidget ( ) . children ( ) ;
588
+ ok ( ! div . hasClass ( "ui-state-focus" ) , "not focused on init" ) ;
589
+ div . trigger ( "focusin" ) ;
590
+ ok ( div . hasClass ( "ui-state-focus" ) , "focused after explicit focus" ) ;
591
+ div . trigger ( "focusout" ) ;
592
+ ok ( ! div . hasClass ( "ui-state-focus" ) , "not focused after blur" ) ;
593
+
594
+ div . trigger ( "focusin" ) ;
595
+ ok ( div . hasClass ( "ui-state-focus" ) , "focused after explicit focus" ) ;
596
+ $ ( "#widget" ) . testWidget ( "disable" ) ;
597
+ ok ( ! div . hasClass ( "ui-state-focus" ) , "not focused while disabled" ) ;
598
+ div . trigger ( "focusin" ) ;
599
+ ok ( ! div . hasClass ( "ui-state-focus" ) , "can't focus while disabled" ) ;
600
+ $ ( "#widget" ) . testWidget ( "enable" ) ;
601
+ ok ( ! div . hasClass ( "ui-state-focus" ) , "enabling doesn't reset focus" ) ;
602
+
603
+ div . trigger ( "focusin" ) ;
604
+ ok ( div . hasClass ( "ui-state-focus" ) , "focused after explicit focus" ) ;
605
+ $ ( "#widget" ) . testWidget ( "destroy" ) ;
606
+ ok ( ! div . hasClass ( "ui-state-focus" ) , "not focused after destroy" ) ;
607
+ div . trigger ( "focusin" ) ;
608
+ ok ( ! div . hasClass ( "ui-state-focus" ) , "event handler removed on destroy" ) ;
609
+ } ) ;
610
+
453
611
test ( "._trigger() - no event, no ui" , function ( ) {
454
612
expect ( 7 ) ;
455
613
var handlers = [ ] ;
0 commit comments