Skip to content

Commit 0ef4b4f

Browse files
committed
Widget: Added tests for ._hoverable() and ._focusable().
1 parent 711df1f commit 0ef4b4f

File tree

1 file changed

+64
-2
lines changed

1 file changed

+64
-2
lines changed

tests/unit/widget/widget_core.js

Lines changed: 64 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,7 @@ test( ".widget() - overriden", function() {
404404
same( wrapper[0], $( "<div></div>" ).testWidget().testWidget( "widget" )[0] );
405405
});
406406

407-
test( "_bind to element (default)", function() {
407+
test( "._bind() to element (default)", function() {
408408
expect( 12 );
409409
var self;
410410
$.widget( "ui.testWidget", {
@@ -444,7 +444,7 @@ test( "_bind to element (default)", function() {
444444
.trigger( "keydown" );
445445
});
446446

447-
test( "_bind to descendent", function() {
447+
test( "._bind() to descendent", function() {
448448
expect( 12 );
449449
var self;
450450
$.widget( "ui.testWidget", {
@@ -497,6 +497,68 @@ test( "_bind to descendent", function() {
497497
.trigger( "keydown" );
498498
});
499499

500+
test( "._hoverable()", function() {
501+
$.widget( "ui.testWidget", {
502+
_create: function() {
503+
this._hoverable( this.element.children() );
504+
}
505+
});
506+
507+
var div = $( "#widget" ).testWidget().children();
508+
ok( !div.hasClass( "ui-state-hover" ), "not hovered on init" );
509+
div.trigger( "mouseenter" );
510+
ok( div.hasClass( "ui-state-hover" ), "hovered after mouseenter" );
511+
div.trigger( "mouseleave" );
512+
ok( !div.hasClass( "ui-state-hover" ), "not hovered after mouseleave" );
513+
514+
div.trigger( "mouseenter" );
515+
ok( div.hasClass( "ui-state-hover" ), "hovered after mouseenter" );
516+
$( "#widget" ).testWidget( "disable" );
517+
ok( !div.hasClass( "ui-state-hover" ), "not hovered while disabled" );
518+
div.trigger( "mouseenter" );
519+
ok( !div.hasClass( "ui-state-hover" ), "can't hover while disabled" );
520+
$( "#widget" ).testWidget( "enable" );
521+
ok( !div.hasClass( "ui-state-hover" ), "enabling doesn't reset hover" );
522+
523+
div.trigger( "mouseenter" );
524+
ok( div.hasClass( "ui-state-hover" ), "hovered after mouseenter" );
525+
$( "#widget" ).testWidget( "destroy" );
526+
ok( !div.hasClass( "ui-state-hover" ), "not hovered after destroy" );
527+
div.trigger( "mouseenter" );
528+
ok( !div.hasClass( "ui-state-hover" ), "event handler removed on destroy" );
529+
});
530+
531+
test( "._focusable()", function() {
532+
$.widget( "ui.testWidget", {
533+
_create: function() {
534+
this._focusable( this.element.children() );
535+
}
536+
});
537+
538+
var div = $( "#widget" ).testWidget().children();
539+
ok( !div.hasClass( "ui-state-focus" ), "not focused on init" );
540+
div.trigger( "focus" );
541+
ok( div.hasClass( "ui-state-focus" ), "focused after explicit focus" );
542+
div.trigger( "blur" );
543+
ok( !div.hasClass( "ui-state-focus" ), "not focused after blur" );
544+
545+
div.trigger( "focus" );
546+
ok( div.hasClass( "ui-state-focus" ), "focused after explicit focus" );
547+
$( "#widget" ).testWidget( "disable" );
548+
ok( !div.hasClass( "ui-state-focus" ), "not focused while disabled" );
549+
div.trigger( "focus" );
550+
ok( !div.hasClass( "ui-state-focus" ), "can't focus while disabled" );
551+
$( "#widget" ).testWidget( "enable" );
552+
ok( !div.hasClass( "ui-state-focus" ), "enabling doesn't reset focus" );
553+
554+
div.trigger( "focus" );
555+
ok( div.hasClass( "ui-state-focus" ), "focused after explicit focus" );
556+
$( "#widget" ).testWidget( "destroy" );
557+
ok( !div.hasClass( "ui-state-focus" ), "not focused after destroy" );
558+
div.trigger( "focus" );
559+
ok( !div.hasClass( "ui-state-focus" ), "event handler removed on destroy" );
560+
});
561+
500562
test( "._trigger() - no event, no ui", function() {
501563
expect( 7 );
502564
var handlers = [];

0 commit comments

Comments
 (0)