Skip to content

Commit c6c9572

Browse files
committed
Spinner: Added more tests.
1 parent b897620 commit c6c9572

File tree

1 file changed

+90
-51
lines changed

1 file changed

+90
-51
lines changed

tests/unit/spinner/spinner_core.js

Lines changed: 90 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@ test( "keydown UP on input, increases value not greater than max", function() {
1111
});
1212

1313
spinner_simulateKeyDownUp( element, $.ui.keyCode.UP );
14-
equals( element.val(), 80 );
14+
equal( element.val(), 80 );
1515
spinner_simulateKeyDownUp( element, $.ui.keyCode.UP );
16-
equals( element.val(), 90 );
16+
equal( element.val(), 90 );
1717
spinner_simulateKeyDownUp( element, $.ui.keyCode.UP );
18-
equals( element.val(), 100 );
18+
equal( element.val(), 100 );
1919
spinner_simulateKeyDownUp( element, $.ui.keyCode.UP );
20-
equals( element.val(), 100 );
20+
equal( element.val(), 100 );
2121
spinner_simulateKeyDownUp( element, $.ui.keyCode.UP );
22-
equals( element.val(), 100 );
22+
equal( element.val(), 100 );
2323
});
2424

2525
test( "keydown DOWN on input, decreases value not less than min", function() {
@@ -31,18 +31,18 @@ test( "keydown DOWN on input, decreases value not less than min", function() {
3131
});
3232

3333
spinner_simulateKeyDownUp( element, $.ui.keyCode.DOWN );
34-
equals( element.val(), 40 );
34+
equal( element.val(), 40 );
3535
spinner_simulateKeyDownUp( element, $.ui.keyCode.DOWN );
36-
equals( element.val(), 30 );
36+
equal( element.val(), 30 );
3737
spinner_simulateKeyDownUp( element, $.ui.keyCode.DOWN );
38-
equals( element.val(), 20 );
38+
equal( element.val(), 20 );
3939
spinner_simulateKeyDownUp( element, $.ui.keyCode.DOWN );
40-
equals( element.val(), 20 );
40+
equal( element.val(), 20 );
4141
spinner_simulateKeyDownUp( element, $.ui.keyCode.DOWN );
42-
equals( element.val(), 20 );
42+
equal( element.val(), 20 );
4343
});
4444

45-
test( "keydown PGUP on input, increases value not greater than max", function() {
45+
test( "keydown PAGE_UP on input, increases value not greater than max", function() {
4646
expect( 5 );
4747
var element = $( "#spin" ).spinner({
4848
max: 100,
@@ -51,18 +51,18 @@ test( "keydown PGUP on input, increases value not greater than max", function()
5151
});
5252

5353
spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
54-
equals( element.val(), 80 );
54+
equal( element.val(), 80 );
5555
spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
56-
equals( element.val(), 90 );
56+
equal( element.val(), 90 );
5757
spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
58-
equals( element.val(), 100 );
58+
equal( element.val(), 100 );
5959
spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
60-
equals( element.val(), 100 );
60+
equal( element.val(), 100 );
6161
spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
62-
equals( element.val(), 100 );
62+
equal( element.val(), 100 );
6363
});
6464

65-
test( "keydown PGDN on input, decreases value not less than min", function() {
65+
test( "keydown PAGE_DOWN on input, decreases value not less than min", function() {
6666
expect( 5 );
6767
var element = $( "#spin" ).spinner({
6868
min: 20,
@@ -71,70 +71,109 @@ test( "keydown PGDN on input, decreases value not less than min", function() {
7171
});
7272

7373
spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
74-
equals( element.val(), 40 );
74+
equal( element.val(), 40 );
7575
spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
76-
equals( element.val(), 30 );
76+
equal( element.val(), 30 );
7777
spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
78-
equals( element.val(), 20 );
78+
equal( element.val(), 20 );
7979
spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
80-
equals( element.val(), 20 );
80+
equal( element.val(), 20 );
8181
spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
82-
equals( element.val(), 20 );
82+
equal( element.val(), 20 );
8383
});
8484

85-
test( "mouse click on buttons", function() {
86-
expect( 2 );
87-
var element = $( "#spin" ).spinner(),
88-
val = 0;
89-
90-
$( ".ui-spinner-up" ).trigger( "mousedown" ).trigger( "mouseup" );
91-
equals( element.val(), ++val, "mouse click on up" );
85+
test( "mouse click on up button, increases value not greater than max", function() {
86+
expect( 3 );
87+
var element = $( "#spin" ).spinner({
88+
max: 20,
89+
value: 18
90+
}),
91+
button = element.spinner( "widget" ).find( ".ui-spinner-up" );
92+
93+
button.trigger( "mousedown" ).trigger( "mouseup" );
94+
equal( element.val(), 19 );
95+
button.trigger( "mousedown" ).trigger( "mouseup" );
96+
equal( element.val(), 20 );
97+
button.trigger( "mousedown" ).trigger( "mouseup" );
98+
equal( element.val(), 20 );
99+
});
92100

93-
$( ".ui-spinner-down" ).trigger( "mousedown" ).trigger( "mouseup" );
94-
equals( element.val(), --val, "mouse click on down");
101+
test( "mouse click on up button, increases value not greater than max", function() {
102+
expect( 3 );
103+
var element = $( "#spin" ).spinner({
104+
min: 0,
105+
value: 2
106+
}),
107+
button = element.spinner( "widget" ).find( ".ui-spinner-down" );
108+
109+
button.trigger( "mousedown" ).trigger( "mouseup" );
110+
equal( element.val(), 1 );
111+
button.trigger( "mousedown" ).trigger( "mouseup" );
112+
equal( element.val(), 0 );
113+
button.trigger( "mousedown" ).trigger( "mouseup" );
114+
equal( element.val(), 0 );
95115
});
96116

97-
test( "mouse wheel on input", function() {
98-
expect( 4 );
117+
test( "mousewheel on input", function() {
118+
expect( 5 );
119+
120+
var element = $( "#spin" ).spinner({
121+
step: 2
122+
});
99123

100-
var element = $( "#spin" ).spinner();
101124
equal( element.val(), 0 );
125+
126+
element.trigger( "mousewheel" );
127+
equal( element.val(), 0, "mousewheel event without delta does not change value" );
128+
102129
element.trigger( "mousewheel", 1 );
103-
equal( element.val(), 1 );
130+
equal( element.val(), 2 );
104131

105-
element.trigger( "mousewheel", -1 );
132+
element.trigger( "mousewheel", -0.2 );
106133
equal( element.val(), 0 );
107134

108-
element.trigger( "mousewheel", -1 );
109-
equal(element.val(), -1 );
135+
element.trigger( "mousewheel", -15 );
136+
equal(element.val(), -2 );
110137
});
111138

112139
test( "reading HTML5 attributes", function() {
113-
expect( 4 );
114-
var element = $( "<input id='spinner' type='number' min='-100' max='100' value='5' step='2'>" ).spinner();
115-
equals( element.spinner( "option", "value" ), 5, "value" );
116-
equals( element.spinner( "option", "max" ), 100, "max" );
117-
equals( element.spinner( "option", "min" ), -100, "min" );
118-
equals( element.spinner( "option", "step" ), 2, "step" );
140+
expect( 8 );
141+
var markup = "<input type='number' min='-100' max='100' value='5' step='2'>",
142+
element = $( markup ).spinner();
143+
equal( element.spinner( "option", "value" ), 5, "value from markup" );
144+
equal( element.spinner( "option", "min" ), -100, "min from markup" );
145+
equal( element.spinner( "option", "max" ), 100, "max from markup" );
146+
equal( element.spinner( "option", "step" ), 2, "step from markup" );
147+
148+
element = $( markup ).spinner({
149+
min: -200,
150+
max: 200,
151+
value: 20,
152+
step: 5
153+
});
154+
equal( element.spinner( "option", "value" ), 20, "value from options" );
155+
equal( element.spinner( "option", "min" ), -200, "min from options" );
156+
equal( element.spinner( "option", "max" ), 200, "max from options" );
157+
equal( element.spinner( "option", "step" ), 5, "stop from options" );
119158
});
120159

121160
test( "ARIA attributes", function() {
122161
expect( 7 );
123162
var element = $( "#spin" ).spinner({ min: -5, max: 5, value: 2 });
124163

125-
equals( element.attr( "role" ), "spinbutton", "role" );
126-
equals( element.attr( "aria-valuemin" ), -5, "aria-valuemin" );
127-
equals( element.attr( "aria-valuemax" ), 5, "aria-valuemax" );
128-
equals( element.attr( "aria-valuenow" ), 2, "aria-valuenow" );
164+
equal( element.attr( "role" ), "spinbutton", "role" );
165+
equal( element.attr( "aria-valuemin" ), -5, "aria-valuemin" );
166+
equal( element.attr( "aria-valuemax" ), 5, "aria-valuemax" );
167+
equal( element.attr( "aria-valuenow" ), 2, "aria-valuenow" );
129168

130169
element.spinner( "stepUp" );
131170

132-
equals( element.attr( "aria-valuenow" ), 3, "stepUp 1 step changes aria-valuenow" );
171+
equal( element.attr( "aria-valuenow" ), 3, "stepUp 1 step changes aria-valuenow" );
133172

134173
element.spinner( "option", { min: -10, max: 10 } );
135174

136-
equals( element.attr( "aria-valuemin" ), -10, "min option changed aria-valuemin changes" );
137-
equals( element.attr( "aria-valuemax" ), 10, "max option changed aria-valuemax changes" );
175+
equal( element.attr( "aria-valuemin" ), -10, "min option changed aria-valuemin changes" );
176+
equal( element.attr( "aria-valuemax" ), 10, "max option changed aria-valuemax changes" );
138177
});
139178

140179
})( jQuery );

0 commit comments

Comments
 (0)