View Javadoc
1   /**
2    * Copyright 2005-2011 The Kuali Foundation
3    *
4    * Licensed under the Educational Community License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    * http://www.opensource.org/licenses/ecl2.php
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package edu.samplu.travel.krad.test;
17  
18  import com.thoughtworks.selenium.DefaultSelenium;
19  import com.thoughtworks.selenium.Selenium;
20  import org.junit.After;
21  import org.junit.Before;
22  import org.junit.Test;
23  
24  import static org.junit.Assert.assertEquals;
25  import static org.junit.Assert.assertTrue;
26  
27  /**
28   * TODO Administrator don't forget to fill this in. 
29   * 
30   * @author Kuali Rice Team (rice.collab@kuali.org)
31   */
32  public class UIFComponentValidationRegexPatternIT {
33      private Selenium selenium;
34  
35      @Before
36      public void setUp() throws Exception {
37          selenium = new DefaultSelenium("localhost", 4444, "*firefox", System.getProperty("remote.public.url"));
38          selenium.start();
39      }
40  
41      @Test
42      public void testValidCharacterConstraint() throws Exception {
43          
44          /*
45           *  Timestamp pattern validation message says it allows years from 1900 - 2099 
46           *  In fact it also allows 2999 as the upper limit. This needs to be sorted out.
47           *  Test failing this condition is commented in the below code section for Timestamp Validation. Once resolved can be uncommented  
48           *  
49           */
50          
51          selenium.open(System.getProperty("remote.public.url"));
52          assertEquals("Login", selenium.getTitle());
53          selenium.type("__login_user", "admin");
54          selenium.click("//input[@value='Login']");
55          selenium.waitForPageToLoad("50000");
56          assertEquals("Kuali Portal Index", selenium.getTitle());
57          selenium.click("link=Uif Components (Kitchen Sink)");
58          selenium.waitForPageToLoad("50000");
59          assertEquals("Kuali Portal Index", selenium.getTitle());
60          selenium.selectFrame("iframeportlet");
61          selenium.click("link=Validation - Regex");
62          //selenium.waitForPageToLoad("30000");
63          Thread.sleep(5000);
64          
65         
66          //---------------------------------------------Fixed Point------------------------------//
67          clearText("//input[@name='field50']");
68          selenium.type("//input[@name='field50']", "127.344");
69          selenium.focus("//input[@name='field51']");
70          Thread.sleep(100);               
71          assertTrue(selenium.isTextPresent("Must be a positive fixed point number, with 5 max digits and 2 digits to the right of the decimal point"));
72          
73          clearText("//input[@name='field50']"); 
74          selenium.type("//input[@name='field50']", "1234.4"); 
75          selenium.focus("//input[@name='field51']");
76          Thread.sleep(100);  
77          assertTrue(selenium.isTextPresent("Must be a positive fixed point number, with 5 max digits and 2 digits to the right of the decimal point"));
78          
79          clearText("//input[@name='field50']");
80          selenium.type("//input[@name='field50']", "1234.434"); 
81          selenium.focus("//input[@name='field51']");
82          Thread.sleep(100);       
83          assertTrue(selenium.isTextPresent("Must be a positive fixed point number, with 5 max digits and 2 digits to the right of the decimal point"));
84          
85          clearText("//input[@name='field50']");
86          selenium.type("//input[@name='field50']", "123.67");        
87          selenium.focus("//input[@name='field51']");      
88          Thread.sleep(100);        
89          assertTrue(! selenium.isTextPresent("Must be a positive fixed point number, with 5 max digits and 2 digits to the right of the decimal point"));
90         
91          //---------------------------------------------Floating Point------------------------------//
92          clearText("//input[@name='field51']");
93          selenium.type("//input[@name='field51']", "127.");
94          selenium.focus("//input[@name='field77']");
95          Thread.sleep(100);               
96          assertTrue(selenium.isTextPresent("Must be a positive or negative number, with any number of digits to the right of the decimal."));
97          
98          clearText("//input[@name='field51']");
99          selenium.type("//input[@name='field51']", "1234.4123"); 
100         selenium.focus("//input[@name='field77']");
101         Thread.sleep(100);  
102         assertTrue(! selenium.isTextPresent("Must be a positive or negative number, with any number of digits to the right of the decimal."));
103         
104         clearText("//input[@name='field51']");
105         selenium.type("//input[@name='field51']", "1234()98"); 
106         selenium.focus("//input[@name='field77']");
107         Thread.sleep(100);       
108         assertTrue(selenium.isTextPresent("Must be a positive or negative number, with any number of digits to the right of the decimal."));
109         
110         clearText("//input[@name='field51']");
111         selenium.type("//input[@name='field51']", "-123.67");        
112         selenium.focus("//input[@name='field77']");      
113         Thread.sleep(100);        
114         assertTrue(! selenium.isTextPresent("Must be a positive or negative number, with any number of digits to the right of the decimal."));
115 
116         
117       //---------------------------------------------Integer Pattern constraint------------------------------//
118         clearText("//input[@name='field77']");
119         selenium.type("//input[@name='field77']", "127.");
120         selenium.focus("//input[@name='field52']");
121         Thread.sleep(100);               
122         assertTrue(selenium.isTextPresent("Must be a positive or negative whole number"));
123         
124         clearText("//input[@name='field77']");
125         selenium.type("//input[@name='field77']", "1234.4123"); 
126         selenium.focus("//input[@name='field52']");
127         Thread.sleep(100);  
128         assertTrue(selenium.isTextPresent("Must be a positive or negative whole number"));
129         
130         clearText("//input[@name='field77']");
131         selenium.type("//input[@name='field77']", "123E123"); 
132         selenium.focus("//input[@name='field52']");
133         Thread.sleep(100);       
134         assertTrue(selenium.isTextPresent("Must be a positive or negative whole number"));
135         
136         clearText("//input[@name='field77']");
137         selenium.type("//input[@name='field77']", "-123");        
138         selenium.focus("//input[@name='field52']");      
139         Thread.sleep(100);        
140         assertTrue(! selenium.isTextPresent("Must be a positive or negative whole number"));
141         
142         //---------------------------------------------Phone Text------------------------------//
143         clearText("//input[@name='field52']");
144         selenium.type("//input[@name='field52']", "1271231234");
145         selenium.focus("//input[@name='field53']");
146         Thread.sleep(100);
147         assertTrue(selenium.isTextPresent("Must be a phone number, in the format of ###-###-####."));
148         
149         
150         clearText("//input[@name='field52']");
151         selenium.type("//input[@name='field52']", "123-123-123"); 
152         selenium.focus("//input[@name='field53']");
153         Thread.sleep(100);  
154         assertTrue(selenium.isTextPresent("Must be a phone number, in the format of ###-###-####."));
155         
156         clearText("//input[@name='field52']");
157         selenium.type("//input[@name='field52']", "12-12-123445"); 
158         selenium.focus("//input[@name='field53']");
159         Thread.sleep(100);       
160         assertTrue(selenium.isTextPresent("Must be a phone number, in the format of ###-###-####."));
161         
162         clearText("//input[@name='field52']");
163         selenium.type("//input[@name='field52']", "1234-12-1234"); 
164         selenium.focus("//input[@name='field53']");
165         Thread.sleep(100);       
166         assertTrue(selenium.isTextPresent("Must be a phone number, in the format of ###-###-####."));
167         
168         clearText("//input[@name='field52']");
169         selenium.type("//input[@name='field52']", "123.123.1234"); 
170         selenium.focus("//input[@name='field53']");
171         Thread.sleep(100);       
172         assertTrue(selenium.isTextPresent("Must be a phone number, in the format of ###-###-####."));
173         
174         clearText("//input[@name='field52']");
175         selenium.type("//input[@name='field52']", "123-123-12345"); 
176         selenium.focus("//input[@name='field53']");
177         Thread.sleep(100);       
178         assertTrue(selenium.isTextPresent("Must be a phone number, in the format of ###-###-####."));
179         
180         clearText("//input[@name='field52']");
181         selenium.type("//input[@name='field52']", "123-123-1234");        
182         selenium.focus("//input[@name='field53']");      
183         Thread.sleep(100);        
184         assertTrue(! selenium.isTextPresent("Must be a phone number, in the format of ###-###-####."));
185         
186         //---------------------------------------------JavaClass Text------------------------------//
187         clearText("//input[@name='field53']");
188         selenium.type("//input[@name='field53']", "127");
189         selenium.focus("//input[@name='field54']");
190         Thread.sleep(100);
191         assertTrue(selenium.isTextPresent("Must be a valid Java class name."));
192         
193         clearText("//input[@name='field53']");
194         selenium.type("//input[@name='field53']", "TestJava!@#Class");
195         selenium.focus("//input[@name='field54']");
196         Thread.sleep(100);
197         assertTrue(selenium.isTextPresent("Must be a valid Java class name."));
198         
199         clearText("//input[@name='field53']");
200         selenium.type("//input[@name='field53']", "Test JavaClass"); 
201         selenium.focus("//input[@name='field54']");
202         Thread.sleep(100);
203         assertTrue(selenium.isTextPresent("Must be a valid Java class name."));
204         
205         clearText("//input[@name='field53']");
206         selenium.type("//input[@name='field53']", "Test JavaClass"); 
207         selenium.focus("//input[@name='field54']");
208         Thread.sleep(100);
209         assertTrue(selenium.isTextPresent("Must be a valid Java class name."));
210         
211         clearText("//input[@name='field53']");
212         selenium.type("//input[@name='field53']", "TestJavaClass");        
213         selenium.focus("//input[@name='field54']");      
214         Thread.sleep(100);
215         assertTrue(! selenium.isTextPresent("Must be a valid Java class name."));
216         
217         //---------------------------------------------Email Text------------------------------//
218         clearText("//input[@name='field54']");
219         selenium.type("//input[@name='field54']", "123@123.123");
220         selenium.focus("//input[@name='field84']");
221         Thread.sleep(100);
222         assertTrue(selenium.isTextPresent("Must be a properly formatted email address."));
223         
224         clearText("//input[@name='field54']");
225         selenium.type("//input[@name='field54']", "email.com@emailServer");
226         selenium.focus("//input[@name='field84']");
227         Thread.sleep(100);
228         assertTrue(selenium.isTextPresent("Must be a properly formatted email address."));
229         
230         clearText("//input[@name='field54']");
231         selenium.type("//input[@name='field54']", "emailemailServer@.com"); 
232         selenium.focus("//input[@name='field84']");
233         Thread.sleep(100);
234         assertTrue(selenium.isTextPresent("Must be a properly formatted email address."));
235         
236         clearText("//input[@name='field54']");
237         selenium.type("//input[@name='field54']", "email@emailServercom"); 
238         selenium.focus("//input[@name='field84']");
239         Thread.sleep(100);
240         assertTrue(selenium.isTextPresent("Must be a properly formatted email address."));
241         
242         clearText("//input[@name='field54']");
243         selenium.type("//input[@name='field54']", "email@emailServer.com");        
244         selenium.focus("//input[@name='field84']");      
245         Thread.sleep(100);
246         assertTrue(! selenium.isTextPresent("Must be a properly formatted email address."));
247         
248         
249         //---------------------------------------------URL pattern Text------------------------------//
250         clearText("//input[@name='field84']");
251         selenium.type("//input[@name='field84']", "www.google.com");
252         selenium.focus("//input[@name='field55']");
253         Thread.sleep(100);
254         assertTrue(selenium.isTextPresent("Must be a valid url beginning with http, https, or ftp"));
255         
256         clearText("//input[@name='field84']");
257         selenium.type("//input[@name='field84']", "https:www.google.com");
258         selenium.focus("//input[@name='field55']");
259         Thread.sleep(100);
260         assertTrue(selenium.isTextPresent("Must be a valid url beginning with http, https, or ftp"));
261         
262         clearText("//input[@name='field84']");
263         selenium.type("//input[@name='field84']", "ftp://www.google.comsdfa123!#@");
264         selenium.focus("//input[@name='field55']");
265         Thread.sleep(100);
266         assertTrue(selenium.isTextPresent("Must be a valid url beginning with http, https, or ftp"));
267         
268         clearText("//input[@name='field84']");
269         selenium.type("//input[@name='field84']", "ftp:/www.google.coms");
270         selenium.focus("//input[@name='field55']");
271         Thread.sleep(100);
272         assertTrue(selenium.isTextPresent("Must be a valid url beginning with http, https, or ftp"));
273         
274         clearText("//input[@name='field84']");
275         selenium.type("//input[@name='field84']", "ftp://www.google.com");
276         selenium.focus("//input[@name='field55']");
277         Thread.sleep(100);
278         assertTrue(! selenium.isTextPresent("Must be a valid url beginning with http, https, or ftp"));
279         
280         clearText("//input[@name='field84']");
281         selenium.type("//input[@name='field84']", "https://www.google.com");
282         selenium.focus("//input[@name='field55']");
283         Thread.sleep(100);
284         assertTrue(! selenium.isTextPresent("Must be a valid url beginning with http, https, or ftp"));
285         
286         clearText("//input[@name='field84']");
287         selenium.type("//input[@name='field84']", "http://www.google.com");
288         selenium.focus("//input[@name='field55']");
289         Thread.sleep(100);
290         assertTrue(! selenium.isTextPresent("Must be a valid url beginning with http, https, or ftp"));
291         
292         
293         //---------------------------------------------Date pattern Text------------------------------//
294         //-------------invalid formats
295         clearText("//input[@name='field55']");
296         selenium.type("//input[@name='field55']", "12/12/2112 12:12:87 am");
297         selenium.focus("//input[@name='field75']");
298         Thread.sleep(100);
299         assertTrue(selenium.isTextPresent("Must be a date in the following format(s): MM/dd/yyyy hh:mm a, MM/dd/yy, MM/dd/yyyy, MM-dd-yy, MM-dd-yyyy, MMddyy, MMMM dd, yyyy, MM/dd/yy HH:mm:ss, MM/dd/yyyy HH:mm:ss, MM-dd-yy HH:mm:ss, MMddyy HH:mm:ss, MMMM dd HH:mm:ss, yyyy HH:mm:ss"));
300 
301         clearText("//input[@name='field55']");
302         selenium.type("//input[@name='field55']", "12-12-2112 12:12 am");
303         selenium.focus("//input[@name='field75']");
304         Thread.sleep(100);
305         assertTrue(selenium.isTextPresent("Must be a date in the following format(s): MM/dd/yyyy hh:mm a, MM/dd/yy, MM/dd/yyyy, MM-dd-yy, MM-dd-yyyy, MMddyy, MMMM dd, yyyy, MM/dd/yy HH:mm:ss, MM/dd/yyyy HH:mm:ss, MM-dd-yy HH:mm:ss, MMddyy HH:mm:ss, MMMM dd HH:mm:ss, yyyy HH:mm:ss"));
306       
307         clearText("//input[@name='field55']");
308         selenium.type("//input[@name='field55']", "12-12-2112 12:12");
309         selenium.focus("//input[@name='field75']");
310         Thread.sleep(100);
311         assertTrue(selenium.isTextPresent("Must be a date in the following format(s): MM/dd/yyyy hh:mm a, MM/dd/yy, MM/dd/yyyy, MM-dd-yy, MM-dd-yyyy, MMddyy, MMMM dd, yyyy, MM/dd/yy HH:mm:ss, MM/dd/yyyy HH:mm:ss, MM-dd-yy HH:mm:ss, MMddyy HH:mm:ss, MMMM dd HH:mm:ss, yyyy HH:mm:ss"));
312      
313         clearText("//input[@name='field55']");
314         selenium.type("//input[@name='field55']", "12/12/2112 12:12");
315         selenium.focus("//input[@name='field75']");
316         Thread.sleep(100);
317         assertTrue(selenium.isTextPresent("Must be a date in the following format(s): MM/dd/yyyy hh:mm a, MM/dd/yy, MM/dd/yyyy, MM-dd-yy, MM-dd-yyyy, MMddyy, MMMM dd, yyyy, MM/dd/yy HH:mm:ss, MM/dd/yyyy HH:mm:ss, MM-dd-yy HH:mm:ss, MMddyy HH:mm:ss, MMMM dd HH:mm:ss, yyyy HH:mm:ss"));
318         
319         clearText("//input[@name='field55']");
320         selenium.type("//input[@name='field55']", "12-12-2112 12:12:78");
321         selenium.focus("//input[@name='field75']");
322         Thread.sleep(100);
323         assertTrue(selenium.isTextPresent("Must be a date in the following format(s): MM/dd/yyyy hh:mm a, MM/dd/yy, MM/dd/yyyy, MM-dd-yy, MM-dd-yyyy, MMddyy, MMMM dd, yyyy, MM/dd/yy HH:mm:ss, MM/dd/yyyy HH:mm:ss, MM-dd-yy HH:mm:ss, MMddyy HH:mm:ss, MMMM dd HH:mm:ss, yyyy HH:mm:ss"));
324    
325         clearText("//input[@name='field55']");
326         selenium.type("//input[@name='field55']", "12 Sept");
327         selenium.focus("//input[@name='field75']");
328         Thread.sleep(100);
329         assertTrue(selenium.isTextPresent("Must be a date in the following format(s): MM/dd/yyyy hh:mm a, MM/dd/yy, MM/dd/yyyy, MM-dd-yy, MM-dd-yyyy, MMddyy, MMMM dd, yyyy, MM/dd/yy HH:mm:ss, MM/dd/yyyy HH:mm:ss, MM-dd-yy HH:mm:ss, MMddyy HH:mm:ss, MMMM dd HH:mm:ss, yyyy HH:mm:ss"));
330    
331         clearText("//input[@name='field55']");
332         selenium.type("//input[@name='field55']", "Sept 12 12:12");
333         selenium.focus("//input[@name='field75']");
334         Thread.sleep(100);
335         assertTrue(selenium.isTextPresent("Must be a date in the following format(s): MM/dd/yyyy hh:mm a, MM/dd/yy, MM/dd/yyyy, MM-dd-yy, MM-dd-yyyy, MMddyy, MMMM dd, yyyy, MM/dd/yy HH:mm:ss, MM/dd/yyyy HH:mm:ss, MM-dd-yy HH:mm:ss, MMddyy HH:mm:ss, MMMM dd HH:mm:ss, yyyy HH:mm:ss"));
336    
337         clearText("//input[@name='field55']");
338         selenium.type("//input[@name='field55']", "221299 12:12:13");
339         selenium.focus("//input[@name='field75']");
340         Thread.sleep(100);
341         assertTrue(selenium.isTextPresent("Must be a date in the following format(s): MM/dd/yyyy hh:mm a, MM/dd/yy, MM/dd/yyyy, MM-dd-yy, MM-dd-yyyy, MMddyy, MMMM dd, yyyy, MM/dd/yy HH:mm:ss, MM/dd/yyyy HH:mm:ss, MM-dd-yy HH:mm:ss, MMddyy HH:mm:ss, MMMM dd HH:mm:ss, yyyy HH:mm:ss"));
342    
343         clearText("//input[@name='field55']");
344         selenium.type("//input[@name='field55']", "111222 12:12");
345         selenium.focus("//input[@name='field75']");
346         Thread.sleep(100);
347         assertTrue(selenium.isTextPresent("Must be a date in the following format(s): MM/dd/yyyy hh:mm a, MM/dd/yy, MM/dd/yyyy, MM-dd-yy, MM-dd-yyyy, MMddyy, MMMM dd, yyyy, MM/dd/yy HH:mm:ss, MM/dd/yyyy HH:mm:ss, MM-dd-yy HH:mm:ss, MMddyy HH:mm:ss, MMMM dd HH:mm:ss, yyyy HH:mm:ss"));
348 
349         clearText("//input[@name='field55']");
350         selenium.type("//input[@name='field55']", "9/9/2012 12:12 am");
351         selenium.focus("//input[@name='field75']");
352         Thread.sleep(100);
353         assertTrue(selenium.isTextPresent("Must be a date in the following format(s): MM/dd/yyyy hh:mm a, MM/dd/yy, MM/dd/yyyy, MM-dd-yy, MM-dd-yyyy, MMddyy, MMMM dd, yyyy, MM/dd/yy HH:mm:ss, MM/dd/yyyy HH:mm:ss, MM-dd-yy HH:mm:ss, MMddyy HH:mm:ss, MMMM dd HH:mm:ss, yyyy HH:mm:ss"));
354         
355         //-------------valid formats      
356         clearText("//input[@name='field55']");
357         selenium.type("//input[@name='field55']", "09/09/2012 12:12 pm");
358         selenium.focus("//input[@name='field75']");
359         Thread.sleep(100);
360         assertTrue(! selenium.isTextPresent("Must be a date in the following format(s): MM/dd/yyyy hh:mm a, MM/dd/yy, MM/dd/yyyy, MM-dd-yy, MM-dd-yyyy, MMddyy, MMMM dd, yyyy, MM/dd/yy HH:mm:ss, MM/dd/yyyy HH:mm:ss, MM-dd-yy HH:mm:ss, MMddyy HH:mm:ss, MMMM dd HH:mm:ss, yyyy HH:mm:ss"));
361         
362         clearText("//input[@name='field55']");
363         selenium.type("//input[@name='field55']", "090923");
364         selenium.focus("//input[@name='field75']");
365         Thread.sleep(100);
366         assertTrue(! selenium.isTextPresent("Must be a date in the following format(s): MM/dd/yyyy hh:mm a, MM/dd/yy, MM/dd/yyyy, MM-dd-yy, MM-dd-yyyy, MMddyy, MMMM dd, yyyy, MM/dd/yy HH:mm:ss, MM/dd/yyyy HH:mm:ss, MM-dd-yy HH:mm:ss, MMddyy HH:mm:ss, MMMM dd HH:mm:ss, yyyy HH:mm:ss"));
367         
368         clearText("//input[@name='field55']");
369         selenium.type("//input[@name='field55']", "Sept 12");
370         selenium.focus("//input[@name='field75']");
371         Thread.sleep(100);
372         assertTrue(! selenium.isTextPresent("Must be a date in the following format(s): MM/dd/yyyy hh:mm a, MM/dd/yy, MM/dd/yyyy, MM-dd-yy, MM-dd-yyyy, MMddyy, MMMM dd, yyyy, MM/dd/yy HH:mm:ss, MM/dd/yyyy HH:mm:ss, MM-dd-yy HH:mm:ss, MMddyy HH:mm:ss, MMMM dd HH:mm:ss, yyyy HH:mm:ss"));
373    
374         
375         clearText("//input[@name='field55']");
376         selenium.type("//input[@name='field55']", "2034");
377         selenium.focus("//input[@name='field75']");
378         Thread.sleep(100);
379         assertTrue(! selenium.isTextPresent("Must be a date in the following format(s): MM/dd/yyyy hh:mm a, MM/dd/yy, MM/dd/yyyy, MM-dd-yy, MM-dd-yyyy, MMddyy, MMMM dd, yyyy, MM/dd/yy HH:mm:ss, MM/dd/yyyy HH:mm:ss, MM-dd-yy HH:mm:ss, MMddyy HH:mm:ss, MMMM dd HH:mm:ss, yyyy HH:mm:ss"));
380         
381         clearText("//input[@name='field55']");
382         selenium.type("//input[@name='field55']", "12/12/2012 23:12:59");
383         selenium.focus("//input[@name='field75']");
384         Thread.sleep(100);
385         assertTrue(! selenium.isTextPresent("Must be a date in the following format(s): MM/dd/yyyy hh:mm a, MM/dd/yy, MM/dd/yyyy, MM-dd-yy, MM-dd-yyyy, MMddyy, MMMM dd, yyyy, MM/dd/yy HH:mm:ss, MM/dd/yyyy HH:mm:ss, MM-dd-yy HH:mm:ss, MMddyy HH:mm:ss, MMMM dd HH:mm:ss, yyyy HH:mm:ss"));
386         
387         clearText("//input[@name='field55']");
388         selenium.type("//input[@name='field55']", "12-12-12 23:12:59");
389         selenium.focus("//input[@name='field75']");
390         Thread.sleep(100);
391         assertTrue(! selenium.isTextPresent("Must be a date in the following format(s): MM/dd/yyyy hh:mm a, MM/dd/yy, MM/dd/yyyy, MM-dd-yy, MM-dd-yyyy, MMddyy, MMMM dd, yyyy, MM/dd/yy HH:mm:ss, MM/dd/yyyy HH:mm:ss, MM-dd-yy HH:mm:ss, MMddyy HH:mm:ss, MMMM dd HH:mm:ss, yyyy HH:mm:ss"));
392         
393         clearText("//input[@name='field55']");
394         selenium.type("//input[@name='field55']", "121212 23:12:32");
395         selenium.focus("//input[@name='field75']");
396         Thread.sleep(100);
397         assertTrue(! selenium.isTextPresent("Must be a date in the following format(s): MM/dd/yyyy hh:mm a, MM/dd/yy, MM/dd/yyyy, MM-dd-yy, MM-dd-yyyy, MMddyy, MMMM dd, yyyy, MM/dd/yy HH:mm:ss, MM/dd/yyyy HH:mm:ss, MM-dd-yy HH:mm:ss, MMddyy HH:mm:ss, MMMM dd HH:mm:ss, yyyy HH:mm:ss"));
398         
399         clearText("//input[@name='field55']");
400         selenium.type("//input[@name='field55']", "Sept 12 23:45:50");
401         selenium.focus("//input[@name='field75']");
402         Thread.sleep(100);
403         assertTrue(! selenium.isTextPresent("Must be a date in the following format(s): MM/dd/yyyy hh:mm a, MM/dd/yy, MM/dd/yyyy, MM-dd-yy, MM-dd-yyyy, MMddyy, MMMM dd, yyyy, MM/dd/yy HH:mm:ss, MM/dd/yyyy HH:mm:ss, MM-dd-yy HH:mm:ss, MMddyy HH:mm:ss, MMMM dd HH:mm:ss, yyyy HH:mm:ss"));
404         
405         clearText("//input[@name='field55']");
406         selenium.type("//input[@name='field55']", "2011 12:23:32");
407         selenium.focus("//input[@name='field75']");
408         Thread.sleep(100);
409         assertTrue(! selenium.isTextPresent("Must be a date in the following format(s): MM/dd/yyyy hh:mm a, MM/dd/yy, MM/dd/yyyy, MM-dd-yy, MM-dd-yyyy, MMddyy, MMMM dd, yyyy, MM/dd/yy HH:mm:ss, MM/dd/yyyy HH:mm:ss, MM-dd-yy HH:mm:ss, MMddyy HH:mm:ss, MMMM dd HH:mm:ss, yyyy HH:mm:ss"));
410         
411         
412         //---------------------------------------------BasicDate pattern Text------------------------------//
413         clearText("//input[@name='field75']");
414         selenium.type("//input[@name='field75']", "12122012");
415         selenium.focus("//input[@name='field82']");
416         Thread.sleep(100);
417         assertTrue(selenium.isTextPresent("Must be a date in the following format(s): MM/dd/yy, MM/dd/yyyy, MM-dd-yy, MM-dd-yyyy"));
418         
419         clearText("//input[@name='field75']");
420         selenium.type("//input[@name='field75']", "13-12-34");
421         selenium.focus("//input[@name='field82']");
422         Thread.sleep(100);
423         assertTrue(selenium.isTextPresent("Must be a date in the following format(s): MM/dd/yy, MM/dd/yyyy, MM-dd-yy, MM-dd-yyyy"));
424         
425         clearText("//input[@name='field75']");
426         selenium.type("//input[@name='field75']", "12:12:2034");
427         selenium.focus("//input[@name='field82']");
428         Thread.sleep(100);
429         assertTrue(selenium.isTextPresent("Must be a date in the following format(s): MM/dd/yy, MM/dd/yyyy, MM-dd-yy, MM-dd-yyyy"));
430         
431         clearText("//input[@name='field75']");
432         selenium.type("//input[@name='field75']", "12-12-2034");
433         selenium.focus("//input[@name='field82']");
434         Thread.sleep(100);
435         assertTrue(! selenium.isTextPresent("Must be a date in the following format(s): MM/dd/yy, MM/dd/yyyy, MM-dd-yy, MM-dd-yyyy"));
436         
437         
438         //---------------------------------------------Time12H Pattern Text------------------------------//
439         clearText("//input[@name='field82']");
440         selenium.type("//input[@name='field82']", "13:00:12");
441         selenium.focus("//input[@name='field83']");
442         Thread.sleep(100);
443         assertTrue(selenium.isTextPresent("Must be a valid 12 hour time in HH:mm format, seconds are optional"));
444         
445         clearText("//input[@name='field82']");
446         selenium.type("//input[@name='field82']", "09:00:");
447         selenium.focus("//input[@name='field83']");
448         Thread.sleep(100);
449         assertTrue(selenium.isTextPresent("Must be a valid 12 hour time in HH:mm format, seconds are optional"));
450         
451         clearText("//input[@name='field82']");
452         selenium.type("//input[@name='field82']", "3-00:12");
453         selenium.focus("//input[@name='field83']");
454         Thread.sleep(100);
455         assertTrue(selenium.isTextPresent("Must be a valid 12 hour time in HH:mm format, seconds are optional"));
456         
457         clearText("//input[@name='field82']");
458         selenium.type("//input[@name='field82']", "3:00:34");
459         selenium.focus("//input[@name='field83']");
460         Thread.sleep(100);
461         assertTrue(! selenium.isTextPresent("Must be a valid 12 hour time in HH:mm format, seconds are optional"));
462         
463         clearText("//input[@name='field82']");
464         selenium.type("//input[@name='field82']", "3:00");
465         selenium.focus("//input[@name='field83']");
466         Thread.sleep(100);
467         assertTrue(! selenium.isTextPresent("Must be a valid 12 hour time in HH:mm format, seconds are optional"));
468        
469         
470         //---------------------------------------------Time24H Pattern Text------------------------------//
471         clearText("//input[@name='field83']");
472         selenium.type("//input[@name='field83']", "24:00:12");
473         selenium.focus("//input[@name='field56']");
474         Thread.sleep(100);
475         assertTrue(selenium.isTextPresent("Must be a valid 24 hour (0-23) time in HH:mm format, seconds are optional"));
476         
477         clearText("//input[@name='field83']");
478         selenium.type("//input[@name='field83']", "14:00:");
479         selenium.focus("//input[@name='field56']");
480         Thread.sleep(100);
481         assertTrue(selenium.isTextPresent("Must be a valid 24 hour (0-23) time in HH:mm format, seconds are optional"));
482         
483         clearText("//input[@name='field83']");
484         selenium.type("//input[@name='field83']", "13:00:76");
485         selenium.focus("//input[@name='field56']");
486         Thread.sleep(100);
487         assertTrue(selenium.isTextPresent("Must be a valid 24 hour (0-23) time in HH:mm format, seconds are optional"));
488         
489         clearText("//input[@name='field83']");
490         selenium.type("//input[@name='field83']", "13:00:23");
491         selenium.focus("//input[@name='field56']");
492         Thread.sleep(100);
493         assertTrue(! selenium.isTextPresent("Must be a valid 24 hour (0-23) time in HH:mm format, seconds are optional"));
494         
495         clearText("//input[@name='field83']");
496         selenium.type("//input[@name='field83']", "23:00:12");
497         selenium.focus("//input[@name='field56']");
498         Thread.sleep(100);
499         assertTrue(! selenium.isTextPresent("Must be a valid 24 hour (0-23) time in HH:mm format, seconds are optional"));
500        
501         
502         
503         
504         //---------------------------------------------Timestamp pattern Text------------------------------//
505         clearText("//input[@name='field56']");
506         selenium.type("//input[@name='field56']", "1000-12-12 12:12:12.103");
507         selenium.focus("//input[@name='field57']");
508         Thread.sleep(100);
509         assertTrue(selenium.isTextPresent("Must be a date/time in the format of yyyy-mm-dd hh:mm:ss.ms, between the years of 1900 and 2099, inclusive. \"ms\" represents milliseconds, and must be included."));
510         
511         clearText("//input[@name='field56']");
512         selenium.type("//input[@name='field56']", "2000/12/12 12-12-12.87");
513         selenium.focus("//input[@name='field57']");
514         Thread.sleep(100);
515         assertTrue(selenium.isTextPresent("Must be a date/time in the format of yyyy-mm-dd hh:mm:ss.ms, between the years of 1900 and 2099, inclusive. \"ms\" represents milliseconds, and must be included."));
516 
517         clearText("//input[@name='field56']");
518         selenium.type("//input[@name='field56']", "2000/12/12 12-12-12.87");
519         selenium.focus("//input[@name='field57']");
520         Thread.sleep(100);
521         assertTrue(selenium.isTextPresent("Must be a date/time in the format of yyyy-mm-dd hh:mm:ss.ms, between the years of 1900 and 2099, inclusive. \"ms\" represents milliseconds, and must be included."));
522         
523         clearText("//input[@name='field56']");
524         selenium.type("//input[@name='field56']", "2011-08-12 12:12:12");
525         selenium.focus("//input[@name='field57']");
526         Thread.sleep(100);
527         assertTrue(selenium.isTextPresent("Must be a date/time in the format of yyyy-mm-dd hh:mm:ss.ms, between the years of 1900 and 2099, inclusive. \"ms\" represents milliseconds, and must be included."));
528         
529         //--------this should not be allowed
530         /*
531         clearTimeStampText();
532         selenium.type("//input[@name='field56']", "2999-12-12 12:12:12.103");
533         selenium.focus("//input[@name='field57']");
534         Thread.sleep(100);
535         assertTrue(selenium.isTextPresent("Must be a date/time in the format of yyyy-mm-dd hh:mm:ss.ms, between the years of 1900 and 2099, inclusive. \"ms\" represents milliseconds, and must be included."));
536         
537         */
538         clearText("//input[@name='field56']");
539         selenium.type("//input[@name='field56']", "2099-12-12 12:12:12.103");
540         selenium.focus("//input[@name='field57']");
541         Thread.sleep(100);
542         assertTrue(! selenium.isTextPresent("Must be a date/time in the format of yyyy-mm-dd hh:mm:ss.ms, between the years of 1900 and 2099, inclusive. \"ms\" represents milliseconds, and must be included."));
543         
544         
545         //---------------------------------------------Year Pattern Text------------------------------//
546         clearText("//input[@name='field57']");
547         selenium.type("//input[@name='field57']", "1599");
548         selenium.focus("//input[@name='field58']");
549         Thread.sleep(100);
550         assertTrue(selenium.isTextPresent("Must be a four digit year between 1600 to 2199, inclusive."));
551         
552         clearText("//input[@name='field57']");
553         selenium.type("//input[@name='field57']", "2200");
554         selenium.focus("//input[@name='field58']");
555         Thread.sleep(100);
556         assertTrue(selenium.isTextPresent("Must be a four digit year between 1600 to 2199, inclusive."));
557         
558         clearText("//input[@name='field57']");
559         selenium.type("//input[@name='field57']", "20000"); 
560         selenium.focus("//input[@name='field58']");
561         Thread.sleep(100);
562         assertTrue(selenium.isTextPresent("Must be a four digit year between 1600 to 2199, inclusive."));
563         
564         clearText("//input[@name='field57']");
565         selenium.type("//input[@name='field57']", "-202"); 
566         selenium.focus("//input[@name='field58']");
567         Thread.sleep(100);
568         assertTrue(selenium.isTextPresent("Must be a four digit year between 1600 to 2199, inclusive."));
569         
570         clearText("//input[@name='field57']");
571         selenium.type("//input[@name='field57']", "2000");        
572         selenium.focus("//input[@name='field58']");      
573         Thread.sleep(100);
574         assertTrue(! selenium.isTextPresent("Must be a four digit year between 1600 to 2199, inclusive."));
575         
576         //---------------------------------------------Month Pattern Text------------------------------//
577         clearText("//input[@name='field58']");
578         selenium.type("//input[@name='field58']", "0");
579         selenium.focus("//input[@name='field61']");
580         Thread.sleep(100);
581         assertTrue(selenium.isTextPresent("Must be 1 to 12, representing a month."));
582         
583         clearText("//input[@name='field58']");
584         selenium.type("//input[@name='field58']", "-12");
585         selenium.focus("//input[@name='field61']");
586         Thread.sleep(100);
587         assertTrue(selenium.isTextPresent("Must be 1 to 12, representing a month."));
588         
589         clearText("//input[@name='field58']");
590         selenium.type("//input[@name='field58']", "100"); 
591         selenium.focus("//input[@name='field61']");
592         Thread.sleep(100);
593         assertTrue(selenium.isTextPresent("Must be 1 to 12, representing a month."));
594         
595         clearText("//input[@name='field58']");
596         selenium.type("//input[@name='field58']", "12"); 
597         selenium.focus("//input[@name='field61']");
598         Thread.sleep(100);
599         assertTrue(! selenium.isTextPresent("Must be 1 to 12, representing a month."));
600         
601         
602         //---------------------------------------------ZipCode Pattern Text------------------------------//
603        
604         clearText("//input[@name='field61']");
605         selenium.type("//input[@name='field61']", "123");
606         selenium.focus("//input[@name='field62']");
607         Thread.sleep(100);
608         assertTrue(selenium.isTextPresent("Must be a ZIP code. ZIP + 4 codes are also accepted."));
609         
610         clearText("//input[@name='field61']");
611         selenium.type("//input[@name='field61']", "2341 12");
612         selenium.focus("//input[@name='field62']");
613         Thread.sleep(100);
614         assertTrue(selenium.isTextPresent("Must be a ZIP code. ZIP + 4 codes are also accepted."));
615         
616         clearText("//input[@name='field61']");
617         selenium.type("//input[@name='field61']", "0-1231");
618         selenium.focus("//input[@name='field62']");
619         Thread.sleep(100);
620         assertTrue(selenium.isTextPresent("Must be a ZIP code. ZIP + 4 codes are also accepted."));
621         
622         clearText("//input[@name='field61']");
623         selenium.type("//input[@name='field61']", "12345");
624         selenium.focus("//input[@name='field62']");
625         Thread.sleep(100);
626         assertTrue(! selenium.isTextPresent("Must be a ZIP code. ZIP + 4 codes are also accepted."));
627        
628         
629         //---------------------------------------------Alpha Numeric w/o options Text------------------------------//
630         clearText("//input[@name='field62']");
631         selenium.type("//input[@name='field62']", "123 23 @#");
632         selenium.focus("//input[@name='field63']");
633         Thread.sleep(100);
634         assertTrue(selenium.isTextPresent("Can only be alphanumeric characters "));
635         
636         clearText("//input[@name='field62']");
637         selenium.type("//input[@name='field62']", "-asd123");
638         selenium.focus("//input[@name='field63']");
639         Thread.sleep(100);
640         assertTrue(selenium.isTextPresent("Can only be alphanumeric characters "));
641         
642         clearText("//input[@name='field62']");
643         selenium.type("//input[@name='field62']", "asd/123");
644         selenium.focus("//input[@name='field63']");
645         Thread.sleep(100);
646         assertTrue(selenium.isTextPresent("Can only be alphanumeric characters "));
647         
648         clearText("//input[@name='field62']");
649         selenium.type("//input[@name='field62']", "asd123");
650         selenium.focus("//input[@name='field63']");
651         Thread.sleep(100);
652         assertTrue(! selenium.isTextPresent("Can only be alphanumeric characters "));
653                 
654       //---------------------------------------------Alpha Numeric with options Text------------------------------//
655         clearText("//input[@name='field63']");
656         selenium.type("//input[@name='field63']", "123^we");
657         selenium.focus("//input[@name='field64']");
658         Thread.sleep(100);
659         assertTrue(selenium.isTextPresent("Can only be alphanumeric characters, whitespace, underscores, forward slashes "));
660         
661         clearText("//input[@name='field63']");
662         selenium.type("//input[@name='field63']", "-123_asd");
663         selenium.focus("//input[@name='field64']");
664         Thread.sleep(100);
665         assertTrue(selenium.isTextPresent("Can only be alphanumeric characters, whitespace, underscores, forward slashes "));
666                        
667         clearText("//input[@name='field63']");
668         selenium.type("//input[@name='field63']", "123 23 @#");
669         selenium.focus("//input[@name='field64']");
670         Thread.sleep(100);
671         assertTrue(selenium.isTextPresent("Can only be alphanumeric characters, whitespace, underscores, forward slashes "));
672         
673         clearText("//input[@name='field63']");
674         selenium.type("//input[@name='field63']", "as_de 456/123");
675         selenium.focus("//input[@name='field64']");
676         Thread.sleep(100);
677         assertTrue(! selenium.isTextPresent("Can only be alphanumeric characters, whitespace, underscores, forward slashes "));
678         
679         //---------------------------------------------Alpha with Whitespace and commas Text------------------------------//
680         clearText("//input[@name='field64']");
681         selenium.type("//input[@name='field64']", "123^we");
682         selenium.focus("//input[@name='field76']");
683         Thread.sleep(100);
684         assertTrue(selenium.isTextPresent("Can only be alpha characters, whitespace, commas"));
685        
686         clearText("//input[@name='field64']");
687         selenium.type("//input[@name='field64']", "asd_pqr");
688         selenium.focus("//input[@name='field76']");
689         Thread.sleep(100);
690         assertTrue(selenium.isTextPresent("Can only be alpha characters, whitespace, commas"));
691         
692         clearText("//input[@name='field64']");
693         selenium.type("//input[@name='field64']", "asd/def");
694         selenium.focus("//input[@name='field76']");
695         Thread.sleep(100);
696         assertTrue(selenium.isTextPresent("Can only be alpha characters, whitespace, commas"));
697         
698         clearText("//input[@name='field64']");
699         selenium.type("//input[@name='field64']", "asd ,pqr");
700         selenium.focus("//input[@name='field76']");
701         Thread.sleep(100);
702         assertTrue(! selenium.isTextPresent("Can only be alpha characters, whitespace, commas"));
703         
704         
705         //---------------------------------------------AlphaPatterrn with disallowed charset Text------------------------------//
706         clearText("//input[@name='field76']");
707         selenium.type("//input[@name='field76']", "123");
708         selenium.focus("//input[@name='field65']");
709         Thread.sleep(100);
710         assertTrue(selenium.isTextPresent("Can only be alpha characters, whitespace, underscores, periods, parentheses, dollar signs, forward slashes, double quotes, apostrophes, commas, colons, null, question marks, exclaimation marks, dashes, plus signs, equals signs, *, @, %, #"));
711      
712         clearText("//input[@name='field76']");
713         selenium.type("//input[@name='field76']", "<abcd>");
714         selenium.focus("//input[@name='field65']");
715         Thread.sleep(100);
716         assertTrue(selenium.isTextPresent("Can only be alpha characters, whitespace, underscores, periods, parentheses, dollar signs, forward slashes, double quotes, apostrophes, commas, colons, null, question marks, exclaimation marks, dashes, plus signs, equals signs, *, @, %, #"));
717         
718         clearText("//input[@name='field76']");
719         selenium.type("//input[@name='field76']", "|abcd|");
720         selenium.focus("//input[@name='field65']");
721         Thread.sleep(100);
722         assertTrue(selenium.isTextPresent("Can only be alpha characters, whitespace, underscores, periods, parentheses, dollar signs, forward slashes, double quotes, apostrophes, commas, colons, null, question marks, exclaimation marks, dashes, plus signs, equals signs, *, @, %, #"));
723         
724         clearText("//input[@name='field76']");
725         selenium.type("//input[@name='field76']", "~abcd~");
726         selenium.focus("//input[@name='field65']");
727         Thread.sleep(100);
728         assertTrue(selenium.isTextPresent("Can only be alpha characters, whitespace, underscores, periods, parentheses, dollar signs, forward slashes, double quotes, apostrophes, commas, colons, null, question marks, exclaimation marks, dashes, plus signs, equals signs, *, @, %, #"));
729         
730         clearText("//input[@name='field76']");
731         selenium.type("//input[@name='field76']", " ab_c d_ef ");
732         selenium.focus("//input[@name='field65']");
733         Thread.sleep(100);
734         assertTrue(! selenium.isTextPresent("Can only be alpha characters, whitespace, underscores, periods, parentheses, dollar signs, forward slashes, double quotes, apostrophes, commas, colons, null, question marks, exclaimation marks, dashes, plus signs, equals signs, *, @, %, #"));
735         
736         
737         //---------------------------------------------Anything with No Whitespace Text------------------------------//
738         clearText("//input[@name='field65']");
739         selenium.type("//input[@name='field65']", "123 ^we");
740         selenium.focus("//input[@name='field66']");
741         Thread.sleep(100);
742         assertTrue(selenium.isTextPresent("Must not contain any whitespace (spaces, returns, etc)"));
743        
744         clearText("//input[@name='field65']");
745         selenium.type("//input[@name='field65']", "123^we!@#^&*~:");
746         selenium.focus("//input[@name='field66']");
747         Thread.sleep(100);
748         assertTrue(! selenium.isTextPresent("Must not contain any whitespace (spaces, returns, etc)"));
749         
750         //---------------------------------------------CharacterSet Text------------------------------//
751         clearText("//input[@name='field66']");
752         selenium.type("//input[@name='field66']", "123 ^we");
753         selenium.focus("//input[@name='field67']");
754         Thread.sleep(100);
755         assertTrue(selenium.isTextPresent("Can be any of the following characters: abcABC"));
756         
757         clearText("//input[@name='field66']");
758         selenium.type("//input[@name='field66']", "123_^we");
759         selenium.focus("//input[@name='field67']");
760         Thread.sleep(100);
761         assertTrue(selenium.isTextPresent("Can be any of the following characters: abcABC"));
762         
763         clearText("//input[@name='field66']");
764         selenium.type("//input[@name='field66']", "abc ABC");
765         selenium.focus("//input[@name='field67']");
766         Thread.sleep(100);
767         assertTrue(selenium.isTextPresent("Can be any of the following characters: abcABC"));
768         
769         clearText("//input[@name='field66']");
770         selenium.type("//input[@name='field66']", "aAbBcC");
771         selenium.focus("//input[@name='field67']");
772         Thread.sleep(100);
773         assertTrue(! selenium.isTextPresent("Can be any of the following characters: abcABC"));
774         
775         //---------------------------------------------Numeric Character Text------------------------------//
776         clearText("//input[@name='field67']");
777         selenium.type("//input[@name='field67']", "123 ^we");
778         selenium.focus("//input[@name='field68']");
779         Thread.sleep(100);
780         assertTrue(selenium.isTextPresent("Can only be numeric characters, parentheses, dashes"));
781         
782         clearText("//input[@name='field67']");
783         selenium.type("//input[@name='field67']", "123/10");
784         selenium.focus("//input[@name='field68']");
785         Thread.sleep(100);
786         assertTrue(selenium.isTextPresent("Can only be numeric characters, parentheses, dashes"));
787         
788         clearText("//input[@name='field67']");
789         selenium.type("//input[@name='field67']", "(123.00)");
790         selenium.focus("//input[@name='field68']");
791         Thread.sleep(100);
792         assertTrue(selenium.isTextPresent("Can only be numeric characters, parentheses, dashes"));
793         
794         clearText("//input[@name='field67']");
795         selenium.type("//input[@name='field67']", "(12-3)");
796         selenium.focus("//input[@name='field68']");
797         Thread.sleep(100);
798         assertTrue(! selenium.isTextPresent("Can only be numeric characters, parentheses, dashes"));
799         
800         //---------------------------------------------Valid Chars Custom Text------------------------------//
801         clearText("//input[@name='field68']");
802         selenium.type("//input[@name='field68']", "123.123");
803         selenium.focus("//input[@name='field67']");
804         Thread.sleep(100);
805         assertTrue(selenium.isTextPresent("only 1 alpha character followed by a period and then followed by 1 number (a.8, b.0, etc)"));
806         
807         clearText("//input[@name='field68']");
808         selenium.type("//input[@name='field68']", "a.b");
809         selenium.focus("//input[@name='field67']");
810         Thread.sleep(100);
811         assertTrue(selenium.isTextPresent("only 1 alpha character followed by a period and then followed by 1 number (a.8, b.0, etc)"));
812         
813         clearText("//input[@name='field68']");
814         selenium.type("//input[@name='field68']", "123 qwe");
815         selenium.focus("//input[@name='field67']");
816         Thread.sleep(100);
817         assertTrue(selenium.isTextPresent("only 1 alpha character followed by a period and then followed by 1 number (a.8, b.0, etc)"));
818         
819         clearText("//input[@name='field68']");
820         selenium.type("//input[@name='field68']", "5.a");
821         selenium.focus("//input[@name='field67']");
822         Thread.sleep(100);
823         assertTrue(selenium.isTextPresent("only 1 alpha character followed by a period and then followed by 1 number (a.8, b.0, etc)"));
824         
825         clearText("//input[@name='field68']");
826         selenium.type("//input[@name='field68']", "a.0,b.4");
827         selenium.focus("//input[@name='field67']");
828         Thread.sleep(100);
829         assertTrue(selenium.isTextPresent("only 1 alpha character followed by a period and then followed by 1 number (a.8, b.0, etc)"));
830         
831         
832         clearText("//input[@name='field68']");
833         selenium.type("//input[@name='field68']", "a.0");
834         selenium.focus("//input[@name='field67']");
835         Thread.sleep(100);
836         assertTrue(! selenium.isTextPresent("only 1 alpha character followed by a period and then followed by 1 number (a.8, b.0, etc)"));
837     }
838 
839     @After
840     public void tearDown() throws Exception {
841         selenium.stop();
842     }
843     
844     public void clearText(String field) throws Exception {
845         selenium.focus(field);
846         selenium.type(field, "");  
847         Thread.sleep(100); 
848     }
849 }