Changeset 15315

Show
Ignore:
Timestamp:
09/23/08 09:16:42 (4 months ago)
Author:
doughays
Message:

References #7681. Proxy commit for haysmark.
Commit Spinner robot test.

Location:
dijit/trunk/tests/form
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • dijit/trunk/tests/form/robot/test_Spinner.html

    r14955 r15315  
    2121                                var spin2; 
    2222                                var spin3; 
     23                                var safeClick; 
    2324                                var delta=1; // redefine with doh.robot.mouseWheelSize when it is available 
    2425                                doh.robot.initRobot('../test_Spinner.html'); 
    25                                 doh.register("dijit.form.Spinner",{ 
    26                                         name: "spinner0", 
     26 
     27                                doh.register("setUp",{ 
     28                                        name: "setUp", 
    2729                                        timeout: 15000, 
    2830                                        setUp:function(){ 
     
    3032                                                spin2=dijit.byId('integerspinner2'); 
    3133                                                spin3=dijit.byId('realspinner1'); 
     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); 
    3284                                                spin1.attr('value', 900); 
     85                                        } 
     86                                }); 
     87 
     88                                doh.register("arrowButton",{ 
     89                                        name: "spinner1_typematic", 
     90                                        timeout: 15000, 
     91                                        setUp:function(){ 
     92                                                spin1.attr('value', 900); 
    3393                                        }, 
    3494                                        runTest: function(){ 
    3595                                                // test typematic 
    3696                                                var d=new doh.Deferred(); 
    37                                                 doh.robot.mouseMove(80, 175, 1083, true); 
    38                                                 doh.robot.mouseMoveAt(spin1.domNode, 663, 100, 54, 3); 
    39                                                 doh.robot.mouseClick({left:true,  middle:false,  right:false}, 3); 
    40                                                 doh.robot.keyDown(dojo.keys.DOWN_ARROW, 30); 
    41                                                 doh.robot.keyUp(dojo.keys.DOWN_ARROW, 11000); 
     97                                                doh.robot.mouseMoveAt(spin1.downArrowNode, 500); 
     98                                                doh.robot.mousePress({left:true,  middle:false,  right:false}, 3); 
     99                                                doh.robot.mouseRelease({left:true,  middle:false,  right:false}, 11000); 
    42100                                                doh.robot.sequence(function(){ 
    43101                                                        if(spin1.attr('value')<=800){ 
     
    51109                                }); 
    52110 
    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", 
    54227                                { 
    55228                                        name:"spinner1", 
     
    80253                                }); 
    81254 
    82                                 doh.register("dijit.form.Spinner", 
     255                                doh.register("a11y", 
    83256                                { 
    84257                                        name:"spinner2", 
     
    96269                                                // this should decrease the value by 90 
    97270                                                // takes 100ms/click 
    98                                                 doh.robot.mouseWheel(9, 1000, 1000); 
     271                                                doh.robot.mouseWheel(9, 1000, 900); 
    99272                                                doh.robot.sequence(function(){ 
    100273                                                        if(spin2.attr('value')==(1000-90*delta)){ 
     
    108281                                }); 
    109282 
    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", 
    111416                                { 
    112417                                        name:"spinner3", 
     
    135440                                        } 
    136441                                }); 
     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'));