Skip to content

Commit 735d8f9

Browse files
committed
Widget: Use new has/lacksClasses assertions for all class checks
1 parent cfc28c8 commit 735d8f9

File tree

3 files changed

+42
-39
lines changed

3 files changed

+42
-39
lines changed

tests/unit/widget/widget.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
<script src="../../../external/qunit/qunit.js"></script>
1010
<script src="../../../external/jquery-simulate/jquery.simulate.js"></script>
1111
<script src="../testsuite.js"></script>
12+
<script src="../../../external/qunit-assert-classes/qunit-assert-classes.js"></script>
1213
<script>
1314
TestHelpers.loadResources({
1415
css: [ "core" ],

tests/unit/widget/widget_classes.js

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ $.widget( "ui.classesWidget", {
5757
}
5858
});
5959

60-
test( ".option() - classes setter", function(){
60+
test( ".option() - classes setter", function( assert ){
6161
expect( 12 );
6262

6363
var testWidget = $.ui.classesWidget(),
@@ -73,18 +73,18 @@ test( ".option() - classes setter", function(){
7373
}
7474
});
7575

76-
equal( testWidget.element.is( ".test-self.self-class-2" ), true,
76+
assert.hasClasses( testWidget.element, "test-self self-class-2",
7777
"Removing a class leaves the structure and other classes in value" );
78-
equal( !testWidget.element.is( ".self-class" ), true,
78+
assert.lacksClasses( testWidget.element, "self-class",
7979
"Removing a class from the value removes the class" );
8080
testWidget.option( "classes.test-self", "" );
81-
equal( testWidget.element.is( ".test-self" ), true,
81+
assert.hasClasses( testWidget.element, "test-self",
8282
"Setting to empty value leaves structure class" );
83-
equal( !testWidget.element.is( ".self-class-2" ), true,
83+
assert.lacksClasses( testWidget.element, "self-class-2",
8484
"Setting empty value removes previous value classes" );
85-
equal( testWidget.span.is( ".test-span.self-span-new" ), true,
85+
assert.hasClasses( testWidget.span, "test-span self-span-new",
8686
"Adding a class to an empty value works as expected" );
87-
equal( testWidget.wrapper.is( ".test-wrapper.self-wrapper-new" ), true,
87+
assert.hasClasses( testWidget.wrapper, "test-wrapper self-wrapper-new",
8888
"Appending a class to the current value works as expected" );
8989
});
9090

@@ -96,19 +96,21 @@ test( ".destroy() - class removal", function(){
9696
});
9797
});
9898

99-
function testElementClasses( widget, bool, method, toggle ) {
100-
toggle = toggle || "";
101-
equal( widget.is( ".test-self.self-class.self-class-2" ), bool,
99+
function testElementClasses( widget, bool, method ) {
100+
var toggle = method === "toggle" ? ( ", " + bool ) : "",
101+
assertion = QUnit.assert[ ( bool? "has" : "lacks" ) + "Classes" ];
102+
103+
assertion( widget, "test-self self-class self-class-2",
102104
"_" + method + "Class works with ( keys, extra " + toggle + ")" );
103-
equal( widget.is( ".test-self-2" ), bool,
105+
assertion( widget, "test-self-2",
104106
"_" + method + "Class works with ( keys, null " + toggle + ")" );
105-
equal( widget.is( ".test-self-extra-null" ), bool,
107+
assertion( widget, "test-self-extra-null",
106108
"_" + method + "Class works with ( null, extra " + toggle + ")" );
107-
equal( widget.parent().is( ".test-wrapper.self-wrapper" ), bool,
109+
assertion( widget.parent(), "test-wrapper self-wrapper",
108110
"_" + method + "Class works with ( element, null, extra " + toggle + ")" );
109-
equal( widget.find( "span" ).is( ".test-span.test-span-extra" ), bool,
111+
assertion( widget.find( "span" ), "test-span test-span-extra",
110112
"_" + method + "Class works with ( element, keys, extra " + toggle + ")" );
111-
equal( widget.find( "span" ).is( ".test-span-extra-null" ), bool,
113+
assertion( widget.find( "span" ), "test-span-extra-null",
112114
"_" + method + "Class works with ( element, keys, null " + toggle + ")" );
113115
}
114116

@@ -119,9 +121,9 @@ test( "._add/_remove/_toggleClass()", function(){
119121

120122
testElementClasses( widget, true, "add" );
121123
widget.classesWidget( "toggleClasses", false );
122-
testElementClasses( widget, false, "toggle", ", false ");
124+
testElementClasses( widget, false, "toggle" );
123125
widget.classesWidget( "toggleClasses", true );
124-
testElementClasses( widget, true, "toggle", ", true ");
126+
testElementClasses( widget, true, "toggle" );
125127
widget.classesWidget( "removeClasses" );
126128
testElementClasses( widget, false, "remove" );
127129
});

tests/unit/widget/widget_core.js

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -983,7 +983,7 @@ test( "_off() - all events", function() {
983983
element.trigger( "bar" );
984984
});
985985

986-
test( "._hoverable()", function() {
986+
test( "._hoverable()", function( assert ) {
987987
expect( 10 );
988988
$.widget( "ui.testWidget", {
989989
_create: function() {
@@ -992,30 +992,30 @@ test( "._hoverable()", function() {
992992
});
993993

994994
var div = $( "#widget" ).testWidget().children();
995-
ok( !div.hasClass( "ui-state-hover" ), "not hovered on init" );
995+
assert.lacksClasses( div, "ui-state-hover", "not hovered on init" );
996996
div.trigger( "mouseenter" );
997-
ok( div.hasClass( "ui-state-hover" ), "hovered after mouseenter" );
997+
assert.hasClasses( div, "ui-state-hover", "hovered after mouseenter" );
998998
div.trigger( "mouseleave" );
999-
ok( !div.hasClass( "ui-state-hover" ), "not hovered after mouseleave" );
999+
assert.lacksClasses( div, "ui-state-hover", "not hovered after mouseleave" );
10001000

10011001
div.trigger( "mouseenter" );
1002-
ok( div.hasClass( "ui-state-hover" ), "hovered after mouseenter" );
1002+
assert.hasClasses( div, "ui-state-hover", "hovered after mouseenter" );
10031003
$( "#widget" ).testWidget( "disable" );
1004-
ok( !div.hasClass( "ui-state-hover" ), "not hovered while disabled" );
1004+
assert.lacksClasses( div, "ui-state-hover", "not hovered while disabled" );
10051005
div.trigger( "mouseenter" );
1006-
ok( !div.hasClass( "ui-state-hover" ), "can't hover while disabled" );
1006+
assert.lacksClasses( div, "ui-state-hover", "can't hover while disabled" );
10071007
$( "#widget" ).testWidget( "enable" );
1008-
ok( !div.hasClass( "ui-state-hover" ), "enabling doesn't reset hover" );
1008+
assert.lacksClasses( div, "ui-state-hover", "enabling doesn't reset hover" );
10091009

10101010
div.trigger( "mouseenter" );
1011-
ok( div.hasClass( "ui-state-hover" ), "hovered after mouseenter" );
1011+
assert.hasClasses( div, "ui-state-hover", "hovered after mouseenter" );
10121012
$( "#widget" ).testWidget( "destroy" );
1013-
ok( !div.hasClass( "ui-state-hover" ), "not hovered after destroy" );
1013+
assert.lacksClasses( div, "ui-state-hover", "not hovered after destroy" );
10141014
div.trigger( "mouseenter" );
1015-
ok( !div.hasClass( "ui-state-hover" ), "event handler removed on destroy" );
1015+
assert.lacksClasses( div, "ui-state-hover", "event handler removed on destroy" );
10161016
});
10171017

1018-
test( "._focusable()", function() {
1018+
test( "._focusable()", function( assert ) {
10191019
expect( 10 );
10201020
$.widget( "ui.testWidget", {
10211021
_create: function() {
@@ -1024,27 +1024,27 @@ test( "._focusable()", function() {
10241024
});
10251025

10261026
var div = $( "#widget" ).testWidget().children();
1027-
ok( !div.hasClass( "ui-state-focus" ), "not focused on init" );
1027+
assert.lacksClasses( div, "ui-state-focus", "not focused on init" );
10281028
div.trigger( "focusin" );
1029-
ok( div.hasClass( "ui-state-focus" ), "focused after explicit focus" );
1029+
assert.hasClasses( div, "ui-state-focus", "focused after explicit focus" );
10301030
div.trigger( "focusout" );
1031-
ok( !div.hasClass( "ui-state-focus" ), "not focused after blur" );
1031+
assert.lacksClasses( div, "ui-state-focus", "not focused after blur" );
10321032

10331033
div.trigger( "focusin" );
1034-
ok( div.hasClass( "ui-state-focus" ), "focused after explicit focus" );
1034+
assert.hasClasses( div, "ui-state-focus", "focused after explicit focus" );
10351035
$( "#widget" ).testWidget( "disable" );
1036-
ok( !div.hasClass( "ui-state-focus" ), "not focused while disabled" );
1036+
assert.lacksClasses( div, "ui-state-focus", "not focused while disabled" );
10371037
div.trigger( "focusin" );
1038-
ok( !div.hasClass( "ui-state-focus" ), "can't focus while disabled" );
1038+
assert.lacksClasses( div, "ui-state-focus", "can't focus while disabled" );
10391039
$( "#widget" ).testWidget( "enable" );
1040-
ok( !div.hasClass( "ui-state-focus" ), "enabling doesn't reset focus" );
1040+
assert.lacksClasses( div, "ui-state-focus", "enabling doesn't reset focus" );
10411041

10421042
div.trigger( "focusin" );
1043-
ok( div.hasClass( "ui-state-focus" ), "focused after explicit focus" );
1043+
assert.hasClasses( div, "ui-state-focus", "focused after explicit focus" );
10441044
$( "#widget" ).testWidget( "destroy" );
1045-
ok( !div.hasClass( "ui-state-focus" ), "not focused after destroy" );
1045+
assert.lacksClasses( div, "ui-state-focus", "not focused after destroy" );
10461046
div.trigger( "focusin" );
1047-
ok( !div.hasClass( "ui-state-focus" ), "event handler removed on destroy" );
1047+
assert.lacksClasses( div, "ui-state-focus", "event handler removed on destroy" );
10481048
});
10491049

10501050
test( "._trigger() - no event, no ui", function() {

0 commit comments

Comments
 (0)