Skip to content

Commit 160a301

Browse files
committed
Spinner tests: Cleanup.
1 parent 2b22bbd commit 160a301

File tree

6 files changed

+142
-156
lines changed

6 files changed

+142
-156
lines changed

tests/unit/spinner/spinner.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
<script src="../../jquery.simulate.js"></script>
2020
<script src="../testsuite.js"></script>
2121

22+
<script src="spinner_test_helpers.js"></script>
2223
<script src="spinner_core.js"></script>
2324
<script src="spinner_defaults.js"></script>
2425
<script src="spinner_events.js"></script>

tests/unit/spinner/spinner_core.js

Lines changed: 124 additions & 144 deletions
Original file line numberDiff line numberDiff line change
@@ -1,171 +1,151 @@
1-
/*
2-
* spinner_core.js
3-
*/
1+
(function( $ ) {
42

5-
var simulateKeyDownUp = function(el, kCode, shift) {
6-
el.simulate("keydown",{keyCode:kCode, shiftKey: shift || false })
7-
.simulate("keyup",{keyCode:kCode, shiftKey: shift || false });
8-
};
3+
module( "spinner: core" );
94

10-
(function($) {
11-
12-
// Spinner Tests
13-
module("spinner: core");
14-
15-
test("destroy", function() {
5+
// TODO: move to spinner_methods
6+
test( "destroy", function() {
7+
expect( 1 );
8+
// TODO: is this cheat still needed?
169
// cheat a bit to get IE6 to pass
17-
$("#spin").val(0);
18-
var beforeHtml = $("#spin").parent().html();
19-
var afterHtml = $("#spin").spinner().spinner("destroy").parent().html();
20-
equal( afterHtml, beforeHtml, "before/after html should be the same" );
10+
$( "#spin" ).val( 0 );
11+
domEqual( "#spin", function() {
12+
$( "#spin" ).spinner().spinner( "destroy" );
13+
});
2114
});
2215

23-
test("keydown UP on input, increases value not greater than max", function() {
24-
var el = $("#spin").spinner({
25-
max:100,
26-
value:50,
27-
step:10
16+
test( "keydown UP on input, increases value not greater than max", function() {
17+
expect( 5 );
18+
var element = $( "#spin" ).spinner({
19+
max: 100,
20+
value: 70,
21+
step: 10
2822
});
29-
30-
simulateKeyDownUp(el, $.ui.keyCode.UP);
31-
equals(el.val(), 60);
32-
33-
for (i = 0; i<11; i++) {
34-
simulateKeyDownUp(el, $.ui.keyCode.UP);
35-
}
36-
equals(el.val(), 100);
37-
38-
el.spinner("value", 50);
39-
simulateKeyDownUp(el, $.ui.keyCode.UP);
40-
equals(el.val(), 60);
23+
24+
spinner_simulateKeyDownUp( element, $.ui.keyCode.UP );
25+
equals( element.val(), 80 );
26+
spinner_simulateKeyDownUp( element, $.ui.keyCode.UP );
27+
equals( element.val(), 90 );
28+
spinner_simulateKeyDownUp( element, $.ui.keyCode.UP );
29+
equals( element.val(), 100 );
30+
spinner_simulateKeyDownUp( element, $.ui.keyCode.UP );
31+
equals( element.val(), 100 );
32+
spinner_simulateKeyDownUp( element, $.ui.keyCode.UP );
33+
equals( element.val(), 100 );
4134
});
4235

43-
test("keydown DOWN on input, decreases value not less than min", function() {
44-
var el = $("#spin").spinner({
45-
min:-100,
46-
value:50,
47-
step:10
36+
test( "keydown DOWN on input, decreases value not less than min", function() {
37+
expect( 5 );
38+
var element = $( "#spin" ).spinner({
39+
min: 20,
40+
value: 50,
41+
step: 10
4842
});
4943

50-
simulateKeyDownUp(el, $.ui.keyCode.DOWN);
51-
equals(el.val(), 40);
52-
53-
for (i = 0; i<21; i++) {
54-
simulateKeyDownUp(el, $.ui.keyCode.DOWN);
55-
}
56-
equals(el.val(), -100);
57-
58-
el.spinner("value", 50);
59-
simulateKeyDownUp(el, $.ui.keyCode.DOWN);
60-
equals(el.val(), 40);
44+
spinner_simulateKeyDownUp( element, $.ui.keyCode.DOWN );
45+
equals( element.val(), 40 );
46+
spinner_simulateKeyDownUp( element, $.ui.keyCode.DOWN );
47+
equals( element.val(), 30 );
48+
spinner_simulateKeyDownUp( element, $.ui.keyCode.DOWN );
49+
equals( element.val(), 20 );
50+
spinner_simulateKeyDownUp( element, $.ui.keyCode.DOWN );
51+
equals( element.val(), 20 );
52+
spinner_simulateKeyDownUp( element, $.ui.keyCode.DOWN );
53+
equals( element.val(), 20 );
6154
});
6255

63-
test("keydown PGUP on input, increases value not greater than max", function() {
64-
var el = $("#spin").spinner({
65-
max: 500,
66-
value: 0,
67-
step: 10
56+
test( "keydown PGUP on input, increases value not greater than max", function() {
57+
expect( 5 );
58+
var element = $( "#spin" ).spinner({
59+
max: 100,
60+
value: 70,
61+
page: 10
6862
});
69-
70-
simulateKeyDownUp(el, $.ui.keyCode.PAGE_UP);
71-
equal(el.val(), 100);
72-
73-
for (i = 0; i<5; i++) {
74-
simulateKeyDownUp(el, $.ui.keyCode.PAGE_UP);
75-
}
76-
equal(el.val(), 500);
77-
78-
el.spinner("value", 0);
79-
simulateKeyDownUp(el, $.ui.keyCode.PAGE_UP);
80-
equals(el.val(), 100);
63+
64+
spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
65+
equals( element.val(), 80 );
66+
spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
67+
equals( element.val(), 90 );
68+
spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
69+
equals( element.val(), 100 );
70+
spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
71+
equals( element.val(), 100 );
72+
spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
73+
equals( element.val(), 100 );
8174
});
8275

83-
test("keydown PGDN on input, decreases value not less than min", function() {
84-
var el = $("#spin").spinner({
85-
min:-500,
86-
value:0,
87-
step:10
76+
test( "keydown PGDN on input, decreases value not less than min", function() {
77+
expect( 5 );
78+
var element = $( "#spin" ).spinner({
79+
min: 20,
80+
value: 50,
81+
page: 10
8882
});
89-
90-
simulateKeyDownUp(el, $.ui.keyCode.PAGE_DOWN);
91-
equals(el.val(), -100);
92-
93-
for (i = 0; i<5; i++) {
94-
simulateKeyDownUp(el, $.ui.keyCode.PAGE_DOWN);
95-
}
96-
equals(el.val(), -500);
97-
98-
el.spinner("value", 0);
99-
simulateKeyDownUp(el, $.ui.keyCode.PAGE_DOWN);
100-
equals(el.val(), -100);
83+
84+
spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
85+
equals( element.val(), 40 );
86+
spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
87+
equals( element.val(), 30 );
88+
spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
89+
equals( element.val(), 20 );
90+
spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
91+
equals( element.val(), 20 );
92+
spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
93+
equals( element.val(), 20 );
10194
});
10295

103-
test("mouse click on buttons", function() {
104-
var el = $("#spin").spinner(),
96+
test( "mouse click on buttons", function() {
97+
expect( 2 );
98+
var element = $( "#spin" ).spinner(),
10599
val = 0;
106-
107-
$(".ui-spinner-up").trigger("mousedown").trigger("mouseup");
108-
equals(el.val(), ++val, "mouse click to up");
109-
110-
$(".ui-spinner-down").trigger("mousedown").trigger("mouseup");
111-
equals(el.val(), --val, "mouse click to down");
112-
113-
el.spinner("value", 50);
114-
$(".ui-spinner-up").trigger("mousedown").trigger("mouseup");
115-
equals(el.val(), 51);
116-
117-
el.spinner("value", 50);
118-
$(".ui-spinner-down").trigger("mousedown").trigger("mouseup");
119-
equals(el.val(), 49);
100+
101+
$( ".ui-spinner-up" ).trigger( "mousedown" ).trigger( "mouseup" );
102+
equals( element.val(), ++val, "mouse click on up" );
103+
104+
$( ".ui-spinner-down" ).trigger( "mousedown" ).trigger( "mouseup" );
105+
equals( element.val(), --val, "mouse click on down");
120106
});
121107

122-
test("mouse wheel on input", function() {
123-
expect(4);
124-
stop();
125-
126-
var el = $("#spin").spinner();
127-
equal(el.val(), 0);
128-
el.trigger("mousewheel", 1);
129-
equal(el.val(), 1);
130-
131-
// mousewheel handler uses a timeout, need to accomodate that
132-
setTimeout(function() {
133-
el.trigger("mousewheel", -1);
134-
equal(el.val(), 0);
135-
136-
setTimeout(function() {
137-
el.trigger("mousewheel", -1);
138-
equal(el.val(), -1);
139-
start();
140-
}, 100);
141-
}, 100);
142-
108+
test( "mouse wheel on input", function() {
109+
expect( 4 );
110+
111+
var element = $( "#spin" ).spinner();
112+
equal( element.val(), 0 );
113+
element.trigger( "mousewheel", 1 );
114+
equal( element.val(), 1 );
115+
116+
element.trigger( "mousewheel", -1 );
117+
equal( element.val(), 0 );
118+
119+
element.trigger( "mousewheel", -1 );
120+
equal(element.val(), -1 );
143121
});
144122

145-
test("reading HTML5 attributes", function() {
146-
var el = $('<input id="spinner" type="number" min="-100" max="100" value="5" step="2">').spinner();
147-
equals(el.spinner('option', 'value'), 5, 'value');
148-
equals(el.spinner('option', 'max'), 100, 'max');
149-
equals(el.spinner('option', 'min'), -100, 'min');
150-
equals(el.spinner('option', 'step'), 2, 'step');
123+
test( "reading HTML5 attributes", function() {
124+
expect( 4 );
125+
var element = $( "<input id='spinner' type='number' min='-100' max='100' value='5' step='2'>" ).spinner();
126+
equals( element.spinner( "option", "value" ), 5, "value" );
127+
equals( element.spinner( "option", "max" ), 100, "max" );
128+
equals( element.spinner( "option", "min" ), -100, "min" );
129+
equals( element.spinner( "option", "step" ), 2, "step" );
151130
});
152131

153-
test("ARIA attributes", function() {
154-
var el = $('#spin').spinner({ min: -5, max: 5, value: 2 });;
155-
156-
equals(el.attr('role'), 'spinbutton', 'role');
157-
equals(el.attr('aria-valuemin'), -5, 'aria-valuemin');
158-
equals(el.attr('aria-valuemax'), 5, 'aria-valuemax');
159-
equals(el.attr('aria-valuenow'), 2, 'aria-valuenow');
160-
161-
el.spinner('stepUp');
162-
163-
equals(el.attr('aria-valuenow'), 3, 'stepUp 1 step changes aria-valuenow');
164-
165-
el.spinner('option', { min: -10, max: 10 });
166-
167-
equals(el.attr('aria-valuemin'), -10, 'min option changed aria-valuemin changes');
168-
equals(el.attr('aria-valuemax'), 10, 'max option changed aria-valuemax changes');
132+
test( "ARIA attributes", function() {
133+
expect( 7 );
134+
var element = $( "#spin" ).spinner({ min: -5, max: 5, value: 2 });
135+
136+
equals( element.attr( "role" ), "spinbutton", "role" );
137+
equals( element.attr( "aria-valuemin" ), -5, "aria-valuemin" );
138+
equals( element.attr( "aria-valuemax" ), 5, "aria-valuemax" );
139+
equals( element.attr( "aria-valuenow" ), 2, "aria-valuenow" );
140+
141+
element.spinner( "stepUp" );
142+
143+
equals( element.attr( "aria-valuenow" ), 3, "stepUp 1 step changes aria-valuenow" );
144+
145+
element.spinner( "option", { min: -10, max: 10 } );
146+
147+
equals( element.attr( "aria-valuemin" ), -10, "min option changed aria-valuemin changes" );
148+
equals( element.attr( "aria-valuemax" ), 10, "max option changed aria-valuemax changes" );
169149
});
170150

171-
})(jQuery);
151+
})( jQuery );

tests/unit/spinner/spinner_events.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ test("start", function() {
1414
}
1515
});
1616

17-
simulateKeyDownUp(el, $.ui.keyCode.UP);
17+
spinner_simulateKeyDownUp(el, $.ui.keyCode.UP);
1818

1919
equals(start, 1, "Start triggered");
2020
});
@@ -28,7 +28,7 @@ test("spin", function() {
2828
}
2929
});
3030

31-
simulateKeyDownUp(el, $.ui.keyCode.UP);
31+
spinner_simulateKeyDownUp(el, $.ui.keyCode.UP);
3232

3333
equals(spin, 1, "Spin triggered");
3434
});
@@ -42,7 +42,7 @@ test("stop", function() {
4242
}
4343
});
4444

45-
simulateKeyDownUp(el, $.ui.keyCode.DOWN);
45+
spinner_simulateKeyDownUp(el, $.ui.keyCode.DOWN);
4646

4747
equals(stop, 1, "Stop triggered");
4848
});
@@ -56,7 +56,7 @@ test("change", function() {
5656
}
5757
});
5858

59-
simulateKeyDownUp(el, $.ui.keyCode.UP);
59+
spinner_simulateKeyDownUp(el, $.ui.keyCode.UP);
6060
el.blur();
6161

6262
equals(change, 1, "Change triggered");

tests/unit/spinner/spinner_methods.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,16 @@ test("disable", function() {
1717
ok(wrapper.hasClass("ui-spinner-disabled"), "after: wrapper has ui-spinner-disabled class");
1818
ok(el.is(':disabled'), "after: input has disabled attribute");
1919

20-
simulateKeyDownUp(el, $.ui.keyCode.UP);
20+
spinner_simulateKeyDownUp(el, $.ui.keyCode.UP);
2121
equals(val, el.val(), "keyboard - value does not change on key UP");
2222

23-
simulateKeyDownUp(el, $.ui.keyCode.DOWN);
23+
spinner_simulateKeyDownUp(el, $.ui.keyCode.DOWN);
2424
equals(val, el.val(), "keyboard - value does not change on key DOWN");
2525

26-
simulateKeyDownUp(el, $.ui.keyCode.PAGE_UP);
26+
spinner_simulateKeyDownUp(el, $.ui.keyCode.PAGE_UP);
2727
equals(val, el.val(), "keyboard - value does not change on key PGUP");
2828

29-
simulateKeyDownUp(el, $.ui.keyCode.PAGE_DOWN);
29+
spinner_simulateKeyDownUp(el, $.ui.keyCode.PAGE_DOWN);
3030
equals(val, el.val(), "keyboard - value does not change on key PGDN");
3131

3232
wrapper.find(":ui-button").first().trigger('mousedown').trigger('mouseup');

tests/unit/spinner/spinner_options.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ test("step, 2", function() {
9494
equals(el.val(), "0", "value initialized to");
9595

9696
for ( var i = 0 ; i < 5 ; i++ ) {
97-
simulateKeyDownUp(el, $.ui.keyCode.UP);
97+
spinner_simulateKeyDownUp(el, $.ui.keyCode.UP);
9898
}
9999
equals(el.val(), "10", "UP 5 times with step: 2");
100100

@@ -103,7 +103,7 @@ test("step, 2", function() {
103103

104104
el.spinner('option', 'step', 2);
105105
for ( var i = 0 ; i < 5 ; i++ ) {
106-
simulateKeyDownUp(el, $.ui.keyCode.UP);
106+
spinner_simulateKeyDownUp(el, $.ui.keyCode.UP);
107107
}
108108
equals(el.val(), "20.5", "UP 5 times with step: 2");
109109
});
@@ -115,11 +115,11 @@ test("step, 0.7", function() {
115115
});
116116
equals(el.val(), "0.0", "value initialized to");
117117

118-
simulateKeyDownUp(el, $.ui.keyCode.DOWN);
118+
spinner_simulateKeyDownUp(el, $.ui.keyCode.DOWN);
119119
equals(el.val(), "-0.7", "DOWN 1 time with step: 0.7");
120120

121121
for ( var i = 0 ; i < 11 ; i++ ) {
122-
simulateKeyDownUp(el, $.ui.keyCode.UP);
122+
spinner_simulateKeyDownUp(el, $.ui.keyCode.UP);
123123
}
124124
equals(el.val(), "7.0", "UP 11 times with step: 0.7");
125125
});
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
var spinner_simulateKeyDownUp = function( element, keyCode, shift ) {
2+
element
3+
.simulate( "keydown", { keyCode: keyCode, shiftKey: shift || false } )
4+
.simulate( "keyup", { keyCode: keyCode, shiftKey: shift || false } );
5+
};

0 commit comments

Comments
 (0)