| | 34 | safeClick=dojo.byId('form1'); |
| | 35 | }, |
| | 36 | runTest: function(){ |
| | 37 | // assert onChange not fired |
| | 38 | doh.is("not fired yet!",dojo.byId('oc1').value); |
| | 39 | doh.is(1,spin1.smallDelta); |
| | 40 | var s=": 900\n" |
| | 41 | +"integerspinner1: 900\n" |
| | 42 | +": not fired yet!\n" |
| | 43 | +": 1,000\n" |
| | 44 | +"integerspinner2: 1000\n" |
| | 45 | +": \n" |
| | 46 | +"integertextbox3: NaN\n" |
| | 47 | +": 1.0\n" |
| | 48 | +"realspinner1: 1\n"; |
| | 49 | doh.is(s, dojo.doc.displayData().replace(/[a-zA-Z0-9_]*_displayed_/g, "")); |
| | 50 | } |
| | 51 | }); |
| | 52 | |
| | 53 | doh.register("setvaluetest",{ |
| | 54 | name: "valid", |
| | 55 | runTest:function(){ |
| | 56 | spin1.attr('value', 400); |
| | 57 | doh.is(400, spin1.focusNode.value); |
| | 58 | doh.is(true, spin1.isValid()); |
| | 59 | |
| | 60 | } |
| | 61 | }); |
| | 62 | |
| | 63 | doh.register("setvaluetest",{ |
| | 64 | name: "null_required", |
| | 65 | runTest:function(){ |
| | 66 | spin1.attr('value', null); |
| | 67 | doh.is('', spin1.focusNode.value); |
| | 68 | doh.is(false, spin1.isValid()); |
| | 69 | doh.is(true, isNaN(spin1.attr('value'))); |
| | 70 | } |
| | 71 | }); |
| | 72 | |
| | 73 | doh.register("setvaluetest",{ |
| | 74 | name: "null_notrequired", |
| | 75 | runTest:function(){ |
| | 76 | spin1.attr('value', null); |
| | 77 | spin1.attr('required',false); |
| | 78 | doh.is('', spin1.focusNode.value); |
| | 79 | doh.is(true, spin1.isValid()); |
| | 80 | doh.is(true, isNaN(spin1.attr('value'))); |
| | 81 | }, |
| | 82 | tearDown:function(){ |
| | 83 | spin1.attr('required',true); |
| 53 | | doh.register("dijit.form.Spinner", |
| | 111 | doh.register("arrowButton",{ |
| | 112 | name: "spinner1_max", |
| | 113 | timeout: 15000, |
| | 114 | setUp:function(){ |
| | 115 | spin1.attr('value', 1549); |
| | 116 | }, |
| | 117 | runTest: function(){ |
| | 118 | // test max with arrow button |
| | 119 | var d=new doh.Deferred(); |
| | 120 | // press once: should move up |
| | 121 | doh.robot.mouseMoveAt(spin1.upArrowNode, 500); |
| | 122 | doh.robot.mouseClick({left:true, middle:false, right:false}, 3); |
| | 123 | doh.robot.mouseMoveAt(safeClick, 500, 100, 0, 0); |
| | 124 | doh.robot.mouseClick({left:true, middle:false, right:false}, 3); |
| | 125 | doh.robot.sequence(function(){ |
| | 126 | try{ |
| | 127 | doh.is(1550,spin1.attr('value')); |
| | 128 | doh.is("1,550",spin1.focusNode.value); |
| | 129 | doh.is("1550",dojo.byId('oc1').value); |
| | 130 | doh.is(true,spin1.isValid()); |
| | 131 | // press again: shouldn't move |
| | 132 | doh.robot.mouseMoveAt(spin1.upArrowNode, 500); |
| | 133 | doh.robot.mouseClick({left:true, middle:false, right:false}, 3); |
| | 134 | doh.robot.mouseMoveAt(safeClick, 500, 100, 0, 0); |
| | 135 | doh.robot.mouseClick({left:true, middle:false, right:false}, 3); |
| | 136 | doh.robot.sequence(function(){ |
| | 137 | try{ |
| | 138 | doh.is(1550,spin1.attr('value')); |
| | 139 | doh.is("1,550",spin1.focusNode.value); |
| | 140 | doh.is("1550",dojo.byId('oc1').value); |
| | 141 | doh.is(true,spin1.isValid()); |
| | 142 | d.callback(true); |
| | 143 | }catch(e){ |
| | 144 | d.errback(e); |
| | 145 | } |
| | 146 | },500); |
| | 147 | }catch(e){ |
| | 148 | d.errback(e); |
| | 149 | } |
| | 150 | },500); |
| | 151 | |
| | 152 | return d; |
| | 153 | } |
| | 154 | }); |
| | 155 | doh.register("arrowButton",{ |
| | 156 | name: "spinner1_min", |
| | 157 | timeout: 15000, |
| | 158 | setUp:function(){ |
| | 159 | spin1.attr('value', 1); |
| | 160 | }, |
| | 161 | runTest: function(){ |
| | 162 | // test min with arrow button |
| | 163 | var d=new doh.Deferred(); |
| | 164 | // press once: should move up |
| | 165 | doh.robot.mouseMoveAt(spin1.downArrowNode, 500); |
| | 166 | doh.robot.mouseClick({left:true, middle:false, right:false}, 3); |
| | 167 | doh.robot.mouseMoveAt(safeClick, 500, 100, 0, 0); |
| | 168 | doh.robot.mouseClick({left:true, middle:false, right:false}, 3); |
| | 169 | doh.robot.sequence(function(){ |
| | 170 | try{ |
| | 171 | doh.is(0,spin1.attr('value')); |
| | 172 | doh.is("0",spin1.focusNode.value); |
| | 173 | doh.is("0",dojo.byId('oc1').value); |
| | 174 | doh.is(true,spin1.isValid()); |
| | 175 | // press again: can move since no min |
| | 176 | doh.robot.mouseMoveAt(spin1.downArrowNode, 500); |
| | 177 | doh.robot.mouseClick({left:true, middle:false, right:false}, 3); |
| | 178 | doh.robot.mouseMoveAt(safeClick, 500, 100, 0, 0); |
| | 179 | doh.robot.mouseClick({left:true, middle:false, right:false}, 3); |
| | 180 | doh.robot.sequence(function(){ |
| | 181 | try{ |
| | 182 | doh.is(-1,spin1.attr('value')); |
| | 183 | doh.is("-1",spin1.focusNode.value); |
| | 184 | doh.is("-1",dojo.byId('oc1').value); |
| | 185 | doh.is(true,spin1.isValid()); |
| | 186 | d.callback(true); |
| | 187 | }catch(e){ |
| | 188 | d.errback(e); |
| | 189 | } |
| | 190 | },500); |
| | 191 | }catch(e){ |
| | 192 | d.errback(e); |
| | 193 | } |
| | 194 | },500); |
| | 195 | |
| | 196 | return d; |
| | 197 | } |
| | 198 | }); |
| | 199 | doh.register("arrowButton",{ |
| | 200 | name: "spinner1_invalid", |
| | 201 | timeout: 15000, |
| | 202 | runTest: function(){ |
| | 203 | // assert invalid works |
| | 204 | var d=new doh.Deferred(); |
| | 205 | doh.robot.mouseMoveAt(spin1.focusNode,500); |
| | 206 | doh.robot.mouseClick({left:true},500); |
| | 207 | doh.robot.sequence(function(){ |
| | 208 | spin1.focusNode.value=""; |
| | 209 | },500); |
| | 210 | doh.robot.typeKeys("0.5",500,300); |
| | 211 | doh.robot.sequence(function(){ |
| | 212 | try{ |
| | 213 | doh.is(false,spin1.isValid()); |
| | 214 | d.callback(true); |
| | 215 | }catch(e){ |
| | 216 | d.errback(e); |
| | 217 | } |
| | 218 | },500); |
| | 219 | return d; |
| | 220 | }, |
| | 221 | tearDown:function(){ |
| | 222 | spin1.attr('value',1); |
| | 223 | } |
| | 224 | }); |
| | 225 | |
| | 226 | doh.register("arrowButton", |
| 110 | | doh.register("dijit.form.Spinner", |
| | 283 | doh.register("a11y",{ |
| | 284 | name: "spinner2_typematic", |
| | 285 | timeout: 15000, |
| | 286 | setUp:function(){ |
| | 287 | spin2.attr('value', 900); |
| | 288 | }, |
| | 289 | runTest: function(){ |
| | 290 | // test typematic |
| | 291 | var d=new doh.Deferred(); |
| | 292 | doh.robot.mouseMoveAt(spin2.focusNode, 500); |
| | 293 | doh.robot.mouseClick({left:true, middle:false, right:false}, 3); |
| | 294 | doh.robot.keyDown(dojo.keys.DOWN_ARROW, 500); |
| | 295 | doh.robot.keyUp(dojo.keys.DOWN_ARROW, 5000); |
| | 296 | doh.robot.sequence(function(){ |
| | 297 | if(spin2.attr('value')<=700){ |
| | 298 | d.callback(true); |
| | 299 | }else{ |
| | 300 | d.errback(new Error('Error in typematic test. Expected <=800, got '+spin2.attr('value'))); |
| | 301 | } |
| | 302 | }, 1000); |
| | 303 | return d; |
| | 304 | } |
| | 305 | }); |
| | 306 | |
| | 307 | doh.register("a11y",{ |
| | 308 | name: "spinner2_max", |
| | 309 | timeout: 15000, |
| | 310 | setUp:function(){ |
| | 311 | spin2.attr('value', 1549); |
| | 312 | }, |
| | 313 | runTest: function(){ |
| | 314 | // test max with arrow key |
| | 315 | var d=new doh.Deferred(); |
| | 316 | // press once: should move up |
| | 317 | doh.robot.mouseMoveAt(spin2.focusNode, 500); |
| | 318 | doh.robot.mouseClick({left:true, middle:false, right:false}, 3); |
| | 319 | doh.robot.keyPress(dojo.keys.UP_ARROW,500); |
| | 320 | doh.robot.sequence(function(){ |
| | 321 | try{ |
| | 322 | doh.is(1550,spin2.attr('value')); |
| | 323 | doh.is("1550",spin2.focusNode.value); |
| | 324 | doh.is(true,spin2.isValid()); |
| | 325 | // press again: shouldn't move |
| | 326 | doh.robot.mouseMoveAt(spin2.focusNode, 500); |
| | 327 | doh.robot.mouseClick({left:true, middle:false, right:false}, 3); |
| | 328 | doh.robot.keyPress(dojo.keys.UP_ARROW,500); |
| | 329 | doh.robot.sequence(function(){ |
| | 330 | try{ |
| | 331 | doh.is(1550,spin2.attr('value')); |
| | 332 | doh.is("1550",spin2.focusNode.value); |
| | 333 | doh.is(true,spin2.isValid()); |
| | 334 | d.callback(true); |
| | 335 | }catch(e){ |
| | 336 | d.errback(e); |
| | 337 | } |
| | 338 | },500); |
| | 339 | }catch(e){ |
| | 340 | d.errback(e); |
| | 341 | } |
| | 342 | },500); |
| | 343 | |
| | 344 | return d; |
| | 345 | } |
| | 346 | }); |
| | 347 | |
| | 348 | doh.register("a11y",{ |
| | 349 | name: "spinner2_min", |
| | 350 | timeout: 15000, |
| | 351 | setUp:function(){ |
| | 352 | spin2.attr('value', 10); |
| | 353 | }, |
| | 354 | runTest: function(){ |
| | 355 | // test min with arrow key |
| | 356 | var d=new doh.Deferred(); |
| | 357 | // press once: should move up |
| | 358 | doh.robot.mouseMoveAt(spin2.focusNode, 500); |
| | 359 | doh.robot.mouseClick({left:true, middle:false, right:false}, 3); |
| | 360 | doh.robot.keyPress(dojo.keys.DOWN_ARROW,500); |
| | 361 | doh.robot.sequence(function(){ |
| | 362 | try{ |
| | 363 | doh.is(9,spin2.attr('value')); |
| | 364 | doh.is("9",spin2.focusNode.value); |
| | 365 | doh.is(true,spin2.isValid()); |
| | 366 | // press again: shouldn't move |
| | 367 | doh.robot.mouseMoveAt(spin2.focusNode, 500); |
| | 368 | doh.robot.mouseClick({left:true, middle:false, right:false}, 3); |
| | 369 | doh.robot.keyPress(dojo.keys.DOWN_ARROW,500); |
| | 370 | doh.robot.sequence(function(){ |
| | 371 | try{ |
| | 372 | doh.is(9,spin2.attr('value')); |
| | 373 | doh.is("9",spin2.focusNode.value); |
| | 374 | doh.is(true,spin2.isValid()); |
| | 375 | d.callback(true); |
| | 376 | }catch(e){ |
| | 377 | d.errback(e); |
| | 378 | } |
| | 379 | },500); |
| | 380 | }catch(e){ |
| | 381 | d.errback(e); |
| | 382 | } |
| | 383 | },500); |
| | 384 | |
| | 385 | return d; |
| | 386 | } |
| | 387 | }); |
| | 388 | |
| | 389 | doh.register("a11y",{ |
| | 390 | name: "spinner2_invalid", |
| | 391 | timeout: 15000, |
| | 392 | runTest: function(){ |
| | 393 | // assert invalid works |
| | 394 | var d=new doh.Deferred(); |
| | 395 | doh.robot.mouseMoveAt(spin2.focusNode,500); |
| | 396 | doh.robot.mouseClick({left:true},500); |
| | 397 | doh.robot.sequence(function(){ |
| | 398 | spin2.focusNode.value=""; |
| | 399 | },500); |
| | 400 | doh.robot.typeKeys("0.5",500,300); |
| | 401 | doh.robot.sequence(function(){ |
| | 402 | try{ |
| | 403 | doh.is(false,spin2.isValid()); |
| | 404 | d.callback(true); |
| | 405 | }catch(e){ |
| | 406 | d.errback(e); |
| | 407 | } |
| | 408 | },500); |
| | 409 | return d; |
| | 410 | }, |
| | 411 | tearDown:function(){ |
| | 412 | spin2.attr('value',1); |
| | 413 | } |
| | 414 | }); |
| | 415 | doh.register("mouseWheel", |
| | 442 | |
| | 443 | |
| | 444 | doh.register("mouseWheel",{ |
| | 445 | name: "spinner3_max", |
| | 446 | timeout: 15000, |
| | 447 | setUp:function(){ |
| | 448 | spin3.attr('value', 155-0.1*delta); |
| | 449 | }, |
| | 450 | runTest: function(){ |
| | 451 | // test max with arrow key |
| | 452 | var d=new doh.Deferred(); |
| | 453 | // press once: should move up |
| | 454 | doh.robot.mouseMoveAt(spin3.focusNode, 500); |
| | 455 | doh.robot.mouseClick({left:true, middle:false, right:false}, 3); |
| | 456 | // wheel up 1; this will increase the value by delta |
| | 457 | doh.robot.mouseWheel(-1, 500, 1); |
| | 458 | doh.robot.sequence(function(){ |
| | 459 | try{ |
| | 460 | doh.is(155.0,spin3.attr('value')); |
| | 461 | doh.is("155.0",spin3.focusNode.value); |
| | 462 | doh.is(true,spin3.isValid()); |
| | 463 | // press again: shouldn't move |
| | 464 | doh.robot.mouseMoveAt(spin3.focusNode, 500); |
| | 465 | doh.robot.mouseClick({left:true, middle:false, right:false}, 3); |
| | 466 | // wheel up 1; this will increase the value by delta |
| | 467 | doh.robot.mouseWheel(-1, 500, 1); |
| | 468 | doh.robot.sequence(function(){ |
| | 469 | try{ |
| | 470 | doh.is(155.0,spin3.attr('value')); |