]> git.pond.sub.org Git - eow/blob - static/dojo-release-1.1.1/dojox/form/tests/test_PasswordValidator.html
add Dojo 1.1.1
[eow] / static / dojo-release-1.1.1 / dojox / form / tests / test_PasswordValidator.html
1 <html>
2         <head>
3             <script type="text/javascript" 
4                 src="../../../dojo/dojo.js"
5                 djConfig="isDebug: true, parseOnLoad: true">
6             </script>
7             <script type="text/javascript">
8                         dojo.require("doh.runner");
9                 dojo.require("dojo.parser");
10                         dojo.require("dojox.form.PasswordValidator");
11                         dojo.require("dijit.form.Button");
12                         dojo.require("dijit.form.Form");
13                         
14                         dojo.addOnLoad(function(){
15                                 doh.register("tests",
16                                         [
17                                                 function test_setDisabled(t){
18                                                         valid1.setAttribute("disabled", true);
19                                                         t.t(dojo.every(dojo.query("[widgetId]", 
20                                                                                                         valid1.domNode).map(function(i){
21                                                                                                                 return dijit.byNode(i);
22                                                                                                         }), function(i){return i.disabled;}));
23                                                         valid1.setAttribute("disabled", false);
24                                                         t.t(dojo.every(dojo.query("[widgetId]", 
25                                                                                                         valid1.domNode).map(function(i){
26                                                                                                                 return dijit.byNode(i);
27                                                                                                         }), function(i){return !i.disabled;}));
28                                                 },
29                                                 function test_isValid(t){
30                                                         t.f(form1.isValid());
31                                                         dijit.byId("nv1").setValue("test");
32                                                         dijit.byId("vv1").setValue("Test");
33                                                         t.f(form1.isValid());
34                                                         dijit.byId("vv1").setValue("test");
35                                                         t.t(form1.isValid());
36                                                         t.t(form6.isValid());
37                                                         t.is({password: ""}, form6.getValues());
38                                                         dijit.byId("nv6").setValue("test");
39                                                         t.f(form6.isValid());
40                                                         t.is({password: ""}, form6.getValues());
41                                                         dijit.byId("vv6").setValue("test");
42                                                         t.t(form6.isValid());
43                                                         t.is({password: "test"}, form6.getValues());
44                                                 },
45                                                 function test_getValue(t){
46                                                         dijit.byId("nv1").setValue("test");
47                                                         dijit.byId("vv1").setValue("Test");
48                                                         t.is({password: ""}, form1.getValues());
49                                                         dijit.byId("vv1").setValue("test123");
50                                                         dijit.byId("nv1").setValue("test123");
51                                                         t.is({password: "test123"}, form1.getValues());
52                                                 },
53                                                 function test_oldPW(t){
54                                                         dijit.byId("nv2").setValue("test");
55                                                         dijit.byId("vv2").setValue("test");
56                                                         t.f(form2.isValid());
57                                                         dijit.byId("ov2").setValue("oldpw4");
58                                                         t.f(form2.isValid());
59                                                         dijit.byId("ov2").setValue("oldpw2");
60                                                         t.t(form2.isValid());
61                                                 },
62                                                 function test_getOldValue(t){
63                                                         t.is({password: "test"}, form2.getValues());
64                                                         dijit.byId("nv3").setValue("test");
65                                                         dijit.byId("vv3").setValue("test");
66                                                         dijit.byId("ov3").setValue("oldpw4");
67                                                         t.is({password: "", oldPassword: ""}, form3.getValues());
68                                                         dijit.byId("ov3").setValue("oldpw3");
69                                                         dijit.byId("vv3").setValue("Test");
70                                                         t.is({password: "", oldPassword: ""}, form3.getValues());
71                                                         dijit.byId("vv3").setValue("test");
72                                                         t.is({password: "test", oldPassword: "oldpw3"}, form3.getValues());                                                     
73                                                 },
74                                                 function test_getValuesInTable(t){ 
75                                                         dijit.byId("nv4").setValue("test"); 
76                                                         dijit.byId("vv4").setValue("test"); 
77                                                         dijit.byId("ov4").setValue("oldpw4"); 
78                                                         t.is({password: "test"}, form4.getValues()); 
79                                                         dijit.byId("nv5").setValue("test"); 
80                                                         dijit.byId("vv5").setValue("test"); 
81                                                         dijit.byId("ov5").setValue("oldpw5"); 
82                                                         t.is({password: "test", oldPassword: "oldpw5"}, form5.getValues()); 
83                                                 } 
84                                         ]
85                                 );
86                                 doh.run();
87                         });
88                 </script>
89                 <link rel="stylesheet" type="text/css" href="../../../dijit/themes/tundra/tundra.css">
90                 <link rel="stylesheet" type="text/css" href="../../../dijit/tests/css/dijitTests.css">
91         </head> 
92         <body class="tundra">
93                 <h1 class="testTitle">Test: dojox.form.PasswordValidator</h1>
94                 <h2>Automated test</h2>
95                 <h4 class="testSubtitle">No old password</h4>
96                 <form dojoType="dijit.form.Form" jsId="form1">
97                         <div dojoType="dojox.form.PasswordValidator" jsId="valid1" name="password">
98                                 <label>Password: <input type="password" id="nv1" pwType="new" /></label><br>
99                                 <label>Validate: <input type="password" id="vv1" pwType="verify" /></label><br>
100                         </div>
101                 </form>
102                 <hr>
103                 <h4 class="testSubtitle">Old password (hard-coded to "oldpw2") - not passed to getValues</h4>
104                 <form dojoType="dijit.form.Form" jsId="form2">
105                         <div dojoType="dojox.form.PasswordValidator" jsId="valid2" name="password">
106                                 <script type="dojo/method" event="pwCheck" args="password">
107                                         /* 
108                                                 NOTE:  Do NOT EVER EVER EVER do this sort of a check!!!
109                                                 
110                                                 This is only as an example.  You will probably want to 
111                                                 override the pwCheck function to callback to a server to
112                                                 verify the password (the callback will need to be 
113                                                 syncronous) - and it's probably a good idea to validate
114                                                 it again on form submission before actually doing
115                                                 anything destructive - that's why the "oldName" value 
116                                                 is there.
117                                                 
118                                                 And don't just fetch the password from the server 
119                                                 either :)  Send the test password (probably hashed, for
120                                                 security) and return from the server a status instead.
121                                                 
122                                                 Again - DON'T DO THIS - it is HORRIBLY INSECURE!!!!
123                                                 
124                                                 Security is left as an exercise to the reader :)
125                                         */
126                                         return password === "oldpw2";
127                                 </script>
128                                 <label>Old Password: <input type="password" id="ov2" pwType="old" /></label><br>
129                                 <label>Password: <input type="password" id="nv2" pwType="new" /></label><br>
130                                 <label>Validate: <input type="password" id="vv2" pwType="verify" /></label><br>
131                         </div>
132                 </form>
133                 <hr>
134                 <h4 class="testSubtitle">Old password (hard-coded to "oldpw3") - passed to getValues</h4>
135                 <form dojoType="dijit.form.Form" jsId="form3">
136                         <div dojoType="dojox.form.PasswordValidator" jsId="valid3" name="password" oldName="oldPassword">
137                                 <script type="dojo/method" event="pwCheck" args="password">
138                                         console.log("Checking " + password);
139                                         return password === "oldpw3";
140                                 </script>
141                                 <label>Old Password: <input type="password" id="ov3" pwType="old" /></label><br>
142                                 <label>Password: <input type="password" id="nv3" pwType="new" /></label><br>
143                                 <label>Validate: <input type="password" id="vv3" pwType="verify" /></label><br>
144                         </div>
145                 </form>
146                 <hr>
147                 <h4 class="testSubtitle">In Table, Old password (hard-coded to "oldpw4") - not passed to getValues</h4> 
148                 <form dojoType="dijit.form.Form" jsId="form4"> 
149                                 <div dojoType="dojox.form.PasswordValidator" jsId="valid4" name="password"> 
150                                                 <script type="dojo/method" event="pwCheck" args="password"> 
151                                                                 return password === "oldpw4"; 
152                                                 </script> 
153                                                 <table> 
154                                                                 <tr> 
155                                                                                 <td><label for="ov4">Old Password:</label></td> 
156                                                                                 <td><input type="password" id="ov4" pwType="old" /></td> 
157                                                                 </tr> 
158                                                                 <tr> 
159                                                                                 <td><label for="nv4">Password:</label></td> 
160                                                                                 <td><input type="password" id="nv4" pwType="new" /></td> 
161                                                                 </tr> 
162                                                                 <tr> 
163                                                                                 <td><label for="vv4">Validate:</label></td> 
164                                                                                 <td><input type="password" id="vv4" pwType="verify" /></td> 
165                                                                 </tr> 
166                                                 </table> 
167                                 </div> 
168                 </form> 
169                 <hr>
170                 <h4 class="testSubtitle">In Table, Old password (hard-coded to "oldpw5") - passed to getValues</h4> 
171                 <form dojoType="dijit.form.Form" jsId="form5"> 
172                                 <div dojoType="dojox.form.PasswordValidator" jsId="valid5" name="password" oldName="oldPassword"> 
173                                                 <script type="dojo/method" event="pwCheck" args="password"> 
174                                                                 return password === "oldpw5"; 
175                                                 </script> 
176                                                 <table> 
177                                                                 <tr> 
178                                                                                 <td><label for="ov5">Old Password:</label></td> 
179                                                                                 <td><input type="password" id="ov5" pwType="old" /></td> 
180                                                                 </tr> 
181                                                                 <tr> 
182                                                                                 <td><label for="nv5">Password:</label></td> 
183                                                                                 <td><input type="password" id="nv5" pwType="new" /></td> 
184                                                                 </tr> 
185                                                                 <tr> 
186                                                                                 <td><label for="vv5">Validate:</label></td> 
187                                                                                 <td><input type="password" id="vv5" pwType="verify" /></td> 
188                                                                 </tr> 
189                                                 </table> 
190                                 </div> 
191                 </form> 
192                 <hr>
193                 <h4 class="testSubtitle">No old password, not required</h4>
194                 <form dojoType="dijit.form.Form" jsId="form6">
195                         <div dojoType="dojox.form.PasswordValidator" required="false" jsId="valid6" name="password">
196                                 <label>Password: <input type="password" id="nv6" pwType="new" /></label><br>
197                                 <label>Validate: <input type="password" id="vv6" pwType="verify" /></label><br>
198                         </div>
199                 </form>
200                 <hr>
201                 <button dojoType="dijit.form.Button">
202                         <script type="dojo/method" event="onClick">
203                                 dojo.forEach([form1, form2, form3, form4, form5, form6], function(i){
204                                         console.dir(i.getValues());
205                                 });
206                         </script>
207                         Get Values
208                 </button>
209                 <button dojoType="dijit.form.Button">
210                         <script type="dojo/method" event="onClick">
211                                 valid5.setAttribute("disabled", !valid5.disabled);
212                         </script>
213                         Toggle Disabled
214                 </button>
215         </body>
216 </html>