/[projects]/misc/horsensspejder-web/jquery/jquery-ui-1.10.3/tests/unit/spinner/spinner_core.js
ViewVC logotype

Contents of /misc/horsensspejder-web/jquery/jquery-ui-1.10.3/tests/unit/spinner/spinner_core.js

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2125 - (show annotations) (download) (as text)
Wed Mar 12 19:30:05 2014 UTC (10 years, 3 months ago) by torben
File MIME type: application/javascript
File size: 7066 byte(s)
initial import
1 (function( $ ) {
2
3 var simulateKeyDownUp = TestHelpers.spinner.simulateKeyDownUp;
4
5 module( "spinner: core" );
6
7 test( "keydown UP on input, increases value not greater than max", function() {
8 expect( 5 );
9 var element = $( "#spin" ).val( 70 ).spinner({
10 max: 100,
11 step: 10
12 });
13
14 simulateKeyDownUp( element, $.ui.keyCode.UP );
15 equal( element.val(), 80 );
16 simulateKeyDownUp( element, $.ui.keyCode.UP );
17 equal( element.val(), 90 );
18 simulateKeyDownUp( element, $.ui.keyCode.UP );
19 equal( element.val(), 100 );
20 simulateKeyDownUp( element, $.ui.keyCode.UP );
21 equal( element.val(), 100 );
22 simulateKeyDownUp( element, $.ui.keyCode.UP );
23 equal( element.val(), 100 );
24 });
25
26 test( "keydown DOWN on input, decreases value not less than min", function() {
27 expect( 5 );
28 var element = $( "#spin" ).val( 50 ).spinner({
29 min: 20,
30 step: 10
31 });
32
33 simulateKeyDownUp( element, $.ui.keyCode.DOWN );
34 equal( element.val(), 40 );
35 simulateKeyDownUp( element, $.ui.keyCode.DOWN );
36 equal( element.val(), 30 );
37 simulateKeyDownUp( element, $.ui.keyCode.DOWN );
38 equal( element.val(), 20 );
39 simulateKeyDownUp( element, $.ui.keyCode.DOWN );
40 equal( element.val(), 20 );
41 simulateKeyDownUp( element, $.ui.keyCode.DOWN );
42 equal( element.val(), 20 );
43 });
44
45 test( "keydown PAGE_UP on input, increases value not greater than max", function() {
46 expect( 5 );
47 var element = $( "#spin" ).val( 70 ).spinner({
48 max: 100,
49 page: 10
50 });
51
52 simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
53 equal( element.val(), 80 );
54 simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
55 equal( element.val(), 90 );
56 simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
57 equal( element.val(), 100 );
58 simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
59 equal( element.val(), 100 );
60 simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
61 equal( element.val(), 100 );
62 });
63
64 test( "keydown PAGE_DOWN on input, decreases value not less than min", function() {
65 expect( 5 );
66 var element = $( "#spin" ).val( 50 ).spinner({
67 min: 20,
68 page: 10
69 });
70
71 simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
72 equal( element.val(), 40 );
73 simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
74 equal( element.val(), 30 );
75 simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
76 equal( element.val(), 20 );
77 simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
78 equal( element.val(), 20 );
79 simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
80 equal( element.val(), 20 );
81 });
82
83 asyncTest( "blur input while spinning with UP", function() {
84 expect( 3 );
85 var value,
86 element = $( "#spin" ).val( 10 ).spinner();
87
88 function step1() {
89 element.simulate( "keydown", { keyCode: $.ui.keyCode.UP } );
90 equal( element.val(), 11 );
91 setTimeout( step2, 750 );
92 }
93
94 function step2() {
95 value = element.val();
96 ok( value > 11, "repeating while key is down" );
97
98 element.bind( "blur", function() {
99 value = element.val();
100 setTimeout( step3, 750 );
101 })[ 0 ].blur();
102 }
103
104 function step3() {
105 equal( element.val(), value, "stopped repeating on blur" );
106 start();
107 }
108
109 element[ 0 ].focus();
110 setTimeout( step1 );
111 });
112
113 test( "mouse click on up button, increases value not greater than max", function() {
114 expect( 3 );
115 var element = $( "#spin" ).val( 18 ).spinner({
116 max: 20
117 }),
118 button = element.spinner( "widget" ).find( ".ui-spinner-up" );
119
120 button.trigger( "mousedown" ).trigger( "mouseup" );
121 equal( element.val(), 19 );
122 button.trigger( "mousedown" ).trigger( "mouseup" );
123 equal( element.val(), 20 );
124 button.trigger( "mousedown" ).trigger( "mouseup" );
125 equal( element.val(), 20 );
126 });
127
128 test( "mouse click on up button, increases value not greater than max", function() {
129 expect( 3 );
130 var element = $( "#spin" ).val( 2 ).spinner({
131 min: 0
132 }),
133 button = element.spinner( "widget" ).find( ".ui-spinner-down" );
134
135 button.trigger( "mousedown" ).trigger( "mouseup" );
136 equal( element.val(), 1 );
137 button.trigger( "mousedown" ).trigger( "mouseup" );
138 equal( element.val(), 0 );
139 button.trigger( "mousedown" ).trigger( "mouseup" );
140 equal( element.val(), 0 );
141 });
142
143 test( "mousewheel on input", function() {
144 expect( 4 );
145
146 var element = $( "#spin" ).val( 0 ).spinner({
147 step: 2
148 });
149
150 element.trigger( "mousewheel" );
151 equal( element.val(), 0, "mousewheel event without delta does not change value" );
152
153 element.trigger( "mousewheel", 1 );
154 equal( element.val(), 2 );
155
156 element.trigger( "mousewheel", -0.2 );
157 equal( element.val(), 0 );
158
159 element.trigger( "mousewheel", -15 );
160 equal(element.val(), -2 );
161 });
162
163 test( "reading HTML5 attributes", function() {
164 expect( 6 );
165 var markup = "<input type='number' min='-100' max='100' value='5' step='2'>",
166 element = $( markup ).spinner();
167 equal( element.spinner( "option", "min" ), -100, "min from markup" );
168 equal( element.spinner( "option", "max" ), 100, "max from markup" );
169 equal( element.spinner( "option", "step" ), 2, "step from markup" );
170
171 element = $( markup ).spinner({
172 min: -200,
173 max: 200,
174 step: 5
175 });
176 equal( element.spinner( "option", "min" ), -200, "min from options" );
177 equal( element.spinner( "option", "max" ), 200, "max from options" );
178 equal( element.spinner( "option", "step" ), 5, "stop from options" );
179 });
180
181 test( "ARIA attributes", function() {
182 expect( 9 );
183 var element = $( "#spin" ).val( 2 ).spinner({ min: -5, max: 5 });
184
185 equal( element.attr( "role" ), "spinbutton", "role" );
186 equal( element.attr( "aria-valuemin" ), "-5", "aria-valuemin" );
187 equal( element.attr( "aria-valuemax" ), "5", "aria-valuemax" );
188 equal( element.attr( "aria-valuenow" ), "2", "aria-valuenow" );
189
190 element.spinner( "stepUp" );
191
192 equal( element.attr( "aria-valuenow" ), "3", "stepUp 1 step changes aria-valuenow" );
193
194 element.spinner( "option", { min: -10, max: 10 } );
195
196 equal( element.attr( "aria-valuemin" ), "-10", "min option changed aria-valuemin changes" );
197 equal( element.attr( "aria-valuemax" ), "10", "max option changed aria-valuemax changes" );
198
199 element.spinner( "option", "min", null );
200 equal( element.attr( "aria-valuemin" ), undefined, "aria-valuemin not set when no min" );
201
202 element.spinner( "option", "max", null );
203 equal( element.attr( "aria-valuemax" ), undefined, "aria-valuemax not set when no max" );
204 });
205
206 test( "focus text field when pressing button", function() {
207 expect( 2 );
208 var element = $( "#spin" ).spinner();
209 $( "body" ).focus();
210 ok( element[ 0 ] !== document.activeElement, "not focused before" );
211 element.spinner( "widget" ).find( ".ui-spinner-up" ).mousedown();
212 ok( element[ 0 ] === document.activeElement, "focused after" );
213 });
214
215 test( "don't clear invalid value on blur", function() {
216 expect( 1 );
217 var element = $( "#spin" ).spinner();
218 element.focus().val( "a" ).blur();
219 equal( element.val(), "a" );
220 });
221
222 test( "precision", function() {
223 expect( 2 );
224 var element = $( "#spin" ).val( 0.05 ).spinner({
225 step: 0.0001
226 });
227 element.spinner( "stepUp" );
228 equal( element.val(), "0.0501", "precision from step" );
229
230 element.val( 1.05 ).spinner( "option", {
231 step: 1,
232 min: -9.95
233 });
234 element.spinner( "stepDown" );
235 equal( element.val(), "0.05", "precision from min" );
236 });
237
238 })( jQuery );

  ViewVC Help
Powered by ViewVC 1.1.20