corrade-http-templates – Blame information for rev 57

Subversion Repositories:
Rev:
Rev Author Line No. Line
57 office 1 define( [
2 "qunit",
3 "jquery",
4 "./helper",
5 "ui/widgets/spinner"
6 ], function( QUnit, $, testHelper ) {
7  
8 var simulateKeyDownUp = testHelper.simulateKeyDownUp;
9  
10 QUnit.module( "spinner: events" );
11  
12 QUnit.test( "start", function( assert ) {
13 assert.expect( 10 );
14 var element = $( "#spin" ).spinner();
15  
16 function shouldStart( expectation, msg ) {
17 element.spinner( "option", "start", function() {
18 assert.ok( expectation, msg );
19 } );
20 }
21  
22 shouldStart( true, "key UP" );
23 simulateKeyDownUp( element, $.ui.keyCode.UP );
24 shouldStart( true, "key DOWN" );
25 simulateKeyDownUp( element, $.ui.keyCode.DOWN );
26  
27 shouldStart( true, "key PAGE_UP" );
28 simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
29 shouldStart( true, "key PAGE_DOWN" );
30 simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
31  
32 shouldStart( true, "button up" );
33 element.spinner( "widget" ).find( ".ui-spinner-up" ).trigger( "mousedown" ).trigger( "mouseup" );
34 shouldStart( true, "button down" );
35 element.spinner( "widget" ).find( ".ui-spinner-down" ).trigger( "mousedown" ).trigger( "mouseup" );
36  
37 shouldStart( true, "stepUp" );
38 element.spinner( "stepUp" );
39 shouldStart( true, "stepDown" );
40 element.spinner( "stepDown" );
41  
42 shouldStart( true, "pageUp" );
43 element.spinner( "pageUp" );
44 shouldStart( true, "pageDown" );
45 element.spinner( "pageDown" );
46  
47 shouldStart( false, "value" );
48 element.spinner( "value", 999 );
49 } );
50  
51 QUnit.test( "spin", function( assert ) {
52 assert.expect( 10 );
53 var element = $( "#spin" ).spinner();
54  
55 function shouldSpin( expectation, msg ) {
56 element.spinner( "option", "spin", function() {
57 assert.ok( expectation, msg );
58 } );
59 }
60  
61 shouldSpin( true, "key UP" );
62 simulateKeyDownUp( element, $.ui.keyCode.UP );
63 shouldSpin( true, "key DOWN" );
64 simulateKeyDownUp( element, $.ui.keyCode.DOWN );
65  
66 shouldSpin( true, "key PAGE_UP" );
67 simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
68 shouldSpin( true, "key PAGE_DOWN" );
69 simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
70  
71 shouldSpin( true, "button up" );
72 element.spinner( "widget" ).find( ".ui-spinner-up" ).trigger( "mousedown" ).trigger( "mouseup" );
73 shouldSpin( true, "button down" );
74 element.spinner( "widget" ).find( ".ui-spinner-down" ).trigger( "mousedown" ).trigger( "mouseup" );
75  
76 shouldSpin( true, "stepUp" );
77 element.spinner( "stepUp" );
78 shouldSpin( true, "stepDown" );
79 element.spinner( "stepDown" );
80  
81 shouldSpin( true, "pageUp" );
82 element.spinner( "pageUp" );
83 shouldSpin( true, "pageDown" );
84 element.spinner( "pageDown" );
85  
86 shouldSpin( false, "value" );
87 element.spinner( "value", 999 );
88 } );
89  
90 QUnit.test( "stop", function( assert ) {
91 assert.expect( 10 );
92 var element = $( "#spin" ).spinner();
93  
94 function shouldStop( expectation, msg ) {
95 element.spinner( "option", "stop", function() {
96 assert.ok( expectation, msg );
97 } );
98 }
99  
100 shouldStop( true, "key UP" );
101 simulateKeyDownUp( element, $.ui.keyCode.UP );
102 shouldStop( true, "key DOWN" );
103 simulateKeyDownUp( element, $.ui.keyCode.DOWN );
104  
105 shouldStop( true, "key PAGE_UP" );
106 simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
107 shouldStop( true, "key PAGE_DOWN" );
108 simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
109  
110 shouldStop( true, "button up" );
111 element.spinner( "widget" ).find( ".ui-spinner-up" ).trigger( "mousedown" ).trigger( "mouseup" );
112 shouldStop( true, "button down" );
113 element.spinner( "widget" ).find( ".ui-spinner-down" ).trigger( "mousedown" ).trigger( "mouseup" );
114  
115 shouldStop( true, "stepUp" );
116 element.spinner( "stepUp" );
117 shouldStop( true, "stepDown" );
118 element.spinner( "stepDown" );
119  
120 shouldStop( true, "pageUp" );
121 element.spinner( "pageUp" );
122 shouldStop( true, "pageDown" );
123 element.spinner( "pageDown" );
124  
125 shouldStop( false, "value" );
126 element.spinner( "value", 999 );
127 } );
128  
129 QUnit.test( "change", function( assert ) {
130 var ready = assert.async();
131 assert.expect( 12 );
132 var element = $( "#spin" ).spinner();
133  
134 function shouldChange( expectation, msg ) {
135 element.spinner( "option", "change", function() {
136 assert.ok( expectation, msg );
137 } );
138 }
139  
140 function focusWrap( fn, next ) {
141 element[ 0 ].focus();
142 setTimeout( function() {
143 fn();
144 setTimeout( function() {
145 element[ 0 ].blur();
146 setTimeout( next );
147 } );
148 } );
149 }
150  
151 function step1() {
152 focusWrap( function() {
153 shouldChange( false, "key UP, before blur" );
154 simulateKeyDownUp( element, $.ui.keyCode.UP );
155 shouldChange( true, "blur after key UP" );
156 }, step2 );
157 }
158  
159 function step2() {
160 focusWrap( function() {
161 shouldChange( false, "key DOWN, before blur" );
162 simulateKeyDownUp( element, $.ui.keyCode.DOWN );
163 shouldChange( true, "blur after key DOWN" );
164 }, step3 );
165 }
166  
167 function step3() {
168 focusWrap( function() {
169 shouldChange( false, "key PAGE_UP, before blur" );
170 simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
171 shouldChange( true, "blur after key PAGE_UP" );
172 }, step4 );
173 }
174  
175 function step4() {
176 focusWrap( function() {
177 shouldChange( false, "key PAGE_DOWN, before blur" );
178 simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
179 shouldChange( true, "blur after key PAGE_DOWN" );
180 }, step5 );
181 }
182  
183 function step5() {
184 focusWrap( function() {
185 shouldChange( false, "many keys, before blur" );
186 simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
187 simulateKeyDownUp( element, $.ui.keyCode.UP );
188 simulateKeyDownUp( element, $.ui.keyCode.UP );
189 simulateKeyDownUp( element, $.ui.keyCode.UP );
190 simulateKeyDownUp( element, $.ui.keyCode.DOWN );
191 shouldChange( true, "blur after many keys" );
192 }, step6 );
193 }
194  
195 function step6() {
196 focusWrap( function() {
197 shouldChange( false, "many keys, same final value, before blur" );
198 simulateKeyDownUp( element, $.ui.keyCode.UP );
199 simulateKeyDownUp( element, $.ui.keyCode.UP );
200 simulateKeyDownUp( element, $.ui.keyCode.DOWN );
201 simulateKeyDownUp( element, $.ui.keyCode.DOWN );
202 shouldChange( false, "blur after many keys, same final value" );
203  
204 shouldChange( false, "button up, before blur" );
205 element.spinner( "widget" ).find( ".ui-spinner-up" ).trigger( "mousedown" ).trigger( "mouseup" );
206 shouldChange( true, "blur after button up" );
207 }, step7 );
208 }
209  
210 function step7() {
211 focusWrap( function() {
212 shouldChange( false, "button down, before blur" );
213 element.spinner( "widget" ).find( ".ui-spinner-down" ).trigger( "mousedown" ).trigger( "mouseup" );
214 shouldChange( true, "blur after button down" );
215 }, step8 );
216 }
217  
218 function step8() {
219 focusWrap( function() {
220 shouldChange( false, "many buttons, same final value, before blur" );
221 element.spinner( "widget" ).find( ".ui-spinner-up" ).trigger( "mousedown" ).trigger( "mouseup" );
222 element.spinner( "widget" ).find( ".ui-spinner-up" ).trigger( "mousedown" ).trigger( "mouseup" );
223 element.spinner( "widget" ).find( ".ui-spinner-down" ).trigger( "mousedown" ).trigger( "mouseup" );
224 element.spinner( "widget" ).find( ".ui-spinner-down" ).trigger( "mousedown" ).trigger( "mouseup" );
225 shouldChange( false, "blur after many buttons, same final value" );
226 }, step9 );
227 }
228  
229 function step9() {
230 shouldChange( true, "stepUp" );
231 element.spinner( "stepUp" );
232  
233 shouldChange( true, "stepDown" );
234 element.spinner( "stepDown" );
235  
236 shouldChange( true, "pageUp" );
237 element.spinner( "pageUp" );
238  
239 shouldChange( true, "pageDown" );
240 element.spinner( "pageDown" );
241  
242 shouldChange( true, "value" );
243 element.spinner( "value", 999 );
244  
245 shouldChange( false, "value, same value" );
246 element.spinner( "value", 999 );
247  
248 shouldChange( false, "max, value not changed" );
249 element.spinner( "option", "max", 900 );
250  
251 shouldChange( false, "max, value not changed" );
252 element.spinner( "option", "max", 1000 );
253  
254 shouldChange( false, "min, value not changed" );
255 element.spinner( "option", "min", 950 );
256  
257 shouldChange( false, "min, value not changed" );
258 element.spinner( "option", "min", 200 );
259 ready();
260 }
261  
262 setTimeout( step1 );
263 } );
264  
265 } );