9
test("init", function() {
13
ok(true, '.spinner() called on element');
15
$('<input id="spinner_dis">').spinner().remove();
16
ok(true, '.spinner() called on disconnected element');
20
test("destroy", function() {
23
$("#spin").spinner().spinner("destroy");
24
ok(true, '.spinner("destroy") called on element');
26
$('<input id="spinner_dis">').spinner().spinner("destroy").remove();
27
ok(true, '.spinner().spinner("destroy") called on disconnected element');
31
test("re-attach", function() {
34
el = $("#spin").spinner().spinner("destroy").spinner();
35
ok(true, '.spinner().spinner("destroy").spinner() called on element');
37
$('<input id="spinner_dis">').spinner().spinner("destroy").spinner().remove();
38
ok(true, '.spinner().spinner("destroy").spinner() called on disconnected element');
42
test("disable", function() {
45
$("#spin").spinner().spinner("disable");
46
ok(true, '.spinner("disable") called on element');
50
test("enable", function() {
53
$("#spin").spinner().spinner("disable").spinner("enable");
54
ok(true, '.spinner("enable") called on element');
58
test("defaults", function() {
60
el = $("#spin").spinner();
62
equals(el.data("currency.spinner"), false, "currency");
63
equals(el.data("disabled.spinner"), false, "disabled");
64
equals(el.data("incremental.spinner"), true, "incremental");
65
equals(el.data("max.spinner"), undefined, "max");
66
equals(el.data("min.spinner"), undefined, "min");
67
equals(el.data("start.spinner"), 0, "start");
68
equals(el.data("stepping.spinner"), 1, "stepping");
72
test("set defaults on init", function() {
74
el = $("#spin").spinner({ currency:"��", disabled:true, incremental:false, max:200, min:-100, start:50, stepping:2 });
76
equals(el.data("currency.spinner"), "��", "currency");
77
equals(el.data("disabled.spinner"), true, "disabled");
78
equals(el.data("incremental.spinner"), false, "incremental");
79
equals(el.data("max.spinner"), 200, "max");
80
equals(el.data("min.spinner"), -100, "min");
81
equals(el.data("start.spinner"), 50, "start");
82
equals(el.data("stepping.spinner"), 2, "stepping");
86
test("keydown on input", function() {
88
el = $("#spin").spinner();
90
equals(el.val(), 0, "start number");
92
el.simulate("keydown",{keyCode:$.simulate.VK_UP})
93
.simulate("keyup",{keyCode:$.simulate.VK_UP});
95
equals(el.val(), 1, "Up key");
97
el.simulate("keydown",{keyCode:$.simulate.VK_RIGHT})
98
.simulate("keyup",{keyCode:$.simulate.VK_RIGHT});
100
equals(el.val(), 1, "Right key");
102
el.simulate("keydown",{keyCode:$.simulate.VK_HOME})
103
.simulate("keyup",{keyCode:$.simulate.VK_HOME});
105
equals(el.val(), 0, "Home key to start");
107
el.simulate("keydown",{keyCode:$.simulate.VK_DOWN})
108
.simulate("keyup",{keyCode:$.simulate.VK_DOWN});
110
equals(el.val(), -1, "Down Key");
112
el.simulate("keydown",{keyCode:$.simulate.VK_LEFT})
113
.simulate("keyup",{keyCode:$.simulate.VK_LEFT});
115
equals(el.val(), -1, "Left Key");
119
test("keydown on input with options", function() {
122
el = $("#spin").spinner({ incremental:false, max:200, min:-100, start:50, stepping:10 });
124
equals(el.val(), 50, "start number");
126
el.simulate("keydown",{keyCode:$.simulate.VK_UP})
127
.simulate("keyup",{keyCode:$.simulate.VK_UP});
129
equals(el.val(), 60, "stepping 10 on 50");
131
el.simulate("keydown",{keyCode:$.simulate.VK_END})
132
.simulate("keyup",{keyCode:$.simulate.VK_END});
134
equals(el.val(), 200, "End key to max");
136
el.simulate("keydown",{keyCode:$.simulate.VK_HOME})
137
.simulate("keyup",{keyCode:$.simulate.VK_HOME});
139
equals(el.val(), -100, "Home key to min");
144
test("currency and decimal options", function() {
147
el = $("#spin").spinner({ currency:"$", incremental:false, max:120, min:-50, stepping:0.3 });
149
equals(el.val(), "$0.00", "start number");
151
el.simulate("keydown",{keyCode:$.simulate.VK_UP})
152
.simulate("keyup",{keyCode:$.simulate.VK_UP});
154
equals(el.val(), "$0.30", "stepping 0.30");
156
el.simulate("keydown",{keyCode:$.simulate.VK_END})
157
.simulate("keyup",{keyCode:$.simulate.VK_END});
159
equals(el.val(), "$120.00", "End key to max");
161
el.simulate("keydown",{keyCode:$.simulate.VK_HOME})
162
.simulate("keyup",{keyCode:$.simulate.VK_HOME});
164
equals(el.val(), "-$50.00", "Home key to min");
166
for ( var i = 1 ; i<=120 ; i++ ) {
167
el.simulate("keydown",{keyCode:$.simulate.VK_UP});
170
el.simulate("keyup",{keyCode:$.simulate.VK_UP});
172
equals(el.val(), "-$14.00", "keydown 120 times");
176
test("decimal options", function() {
179
el = $("#spin").spinner({ currency:false, incremental:false, stepping:0.7 });
181
equals(el.val(), "0.0", "start number");
183
el.simulate("keydown",{keyCode:$.simulate.VK_DOWN})
184
.simulate("keyup",{keyCode:$.simulate.VK_DOWN});
186
equals(el.val(), "-0.7", "stepping 0.7");
188
for ( var i = 1 ; i<=11 ; i++ ) {
189
el.simulate("keydown",{keyCode:$.simulate.VK_UP});
192
el.simulate("keyup",{keyCode:$.simulate.VK_UP});
194
equals(el.val(), "7.0", "keydown 11 times");
198
test("spin without auto-incremental stepping", function() {
201
el = $("#spin").spinner({ incremental:false });
203
for ( var i = 1 ; i<=120 ; i++ ) {
204
el.simulate("keydown",{keyCode:$.simulate.VK_UP});
207
el.simulate("keyup",{keyCode:$.simulate.VK_UP});
209
equals(el.val(), 120, "keydown 120 times");
211
for ( var i = 1 ; i<=210 ; i++ ) {
212
el.simulate("keydown",{keyCode:$.simulate.VK_DOWN});
215
el.simulate("keyup",{keyCode:$.simulate.VK_DOWN});
217
equals(el.val(), -90, "keydown 210 times");
221
test("spin with auto-incremental stepping", function() {
224
el = $("#spin").spinner();
226
for ( var i = 1 ; i<=120 ; i++ ) {
227
el.simulate("keydown",{keyCode:$.simulate.VK_UP});
230
el.simulate("keyup",{keyCode:$.simulate.VK_UP});
232
equals(el.val(), 300, "keydown 120 times (100+20*10)");
234
for ( var i = 1 ; i<=210 ; i++ ) {
235
el.simulate("keydown",{keyCode:$.simulate.VK_DOWN});
238
el.simulate("keyup",{keyCode:$.simulate.VK_DOWN});
240
equals(el.val(), -1800, "keydown 210 times (300-100-100*10-10*100)");
244
test("mouse click on buttons", function() {
246
el = $("#spin").spinner();
248
$(".ui-spinner-up").trigger("mousedown").trigger("mouseup");
250
equals(el.val(), 1, "mouse click to up");
252
$(".ui-spinner-up").trigger("dblclick");
254
equals(el.val(), 2, "mouse double click to up");
256
$(".ui-spinner-down").trigger("mousedown").trigger("mouseup");
258
equals(el.val(), 1, "mouse click to down");
260
$(".ui-spinner-down").trigger("dblclick");
262
equals(el.val(), 0, "mouse double click to down");
267
test("callback", function() {
270
var s = c = d = u = 0;
272
el = $("#spin").spinner({
287
el.simulate("keydown",{keyCode:$.simulate.VK_UP}).simulate("keyup",{keyCode:$.simulate.VK_UP});
289
equals(u, 1, "Up 1 time");
291
el.simulate("keydown",{keyCode:$.simulate.VK_DOWN}).simulate("keyup",{keyCode:$.simulate.VK_DOWN});
293
equals(d, 1, "Down 1 time");
295
el.simulate("keydown",{keyCode:$.simulate.VK_UP}).simulate("keyup",{keyCode:$.simulate.VK_UP});
297
equals(s, 3, "Spin 3 times");
299
el.simulate("keydown",{keyCode:$.simulate.VK_UP}).simulate("keyup",{keyCode:$.simulate.VK_UP});
301
equals(c, 4, "Change 4 times");
305
test("mouse wheel on input", function() {