001 /* 002 * Copyright 2011 The Kuali Foundation 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl1.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 package edu.samplu.travel.krad.test; 017 018 import com.thoughtworks.selenium.DefaultSelenium; 019 import com.thoughtworks.selenium.Selenium; 020 import org.junit.After; 021 import org.junit.Before; 022 import org.junit.Test; 023 024 import static org.junit.Assert.assertEquals; 025 import static org.junit.Assert.assertTrue; 026 027 /** 028 * TODO Administrator don't forget to fill this in. 029 * 030 * @author Kuali Rice Team (rice.collab@kuali.org) 031 */ 032 public class UIFComponentValidationRegexPatternIT { 033 private Selenium selenium; 034 035 @Before 036 public void setUp() throws Exception { 037 selenium = new DefaultSelenium("localhost", 4444, "*firefox", System.getProperty("remote.public.url")); 038 selenium.start(); 039 } 040 041 @Test 042 public void testValidCharacterConstraint() throws Exception { 043 044 /* 045 * Timestamp pattern validation message says it allows years from 1900 - 2099 046 * In fact it also allows 2999 as the upper limit. This needs to be sorted out. 047 * Test failing this condition is commented in the below code section for Timestamp Validation. Once resolved can be uncommented 048 * 049 */ 050 051 selenium.open(System.getProperty("remote.public.url")); 052 assertEquals("Login", selenium.getTitle()); 053 selenium.type("__login_user", "admin"); 054 selenium.click("//input[@value='Login']"); 055 selenium.waitForPageToLoad("50000"); 056 assertEquals("Kuali Portal Index", selenium.getTitle()); 057 selenium.click("link=Uif Components (Kitchen Sink)"); 058 selenium.waitForPageToLoad("50000"); 059 assertEquals("Kuali Portal Index", selenium.getTitle()); 060 selenium.selectFrame("iframeportlet"); 061 selenium.click("link=Validation - Regex"); 062 //selenium.waitForPageToLoad("30000"); 063 Thread.sleep(5000); 064 065 066 //---------------------------------------------Fixed Point------------------------------// 067 clearText("//input[@name='field50']"); 068 selenium.type("//input[@name='field50']", "127.344"); 069 selenium.focus("//input[@name='field51']"); 070 Thread.sleep(100); 071 assertTrue(selenium.isTextPresent("Must be a positive fixed point number, with 5 max digits and 2 digits to the right of the decimal point")); 072 073 clearText("//input[@name='field50']"); 074 selenium.type("//input[@name='field50']", "1234.4"); 075 selenium.focus("//input[@name='field51']"); 076 Thread.sleep(100); 077 assertTrue(selenium.isTextPresent("Must be a positive fixed point number, with 5 max digits and 2 digits to the right of the decimal point")); 078 079 clearText("//input[@name='field50']"); 080 selenium.type("//input[@name='field50']", "1234.434"); 081 selenium.focus("//input[@name='field51']"); 082 Thread.sleep(100); 083 assertTrue(selenium.isTextPresent("Must be a positive fixed point number, with 5 max digits and 2 digits to the right of the decimal point")); 084 085 clearText("//input[@name='field50']"); 086 selenium.type("//input[@name='field50']", "123.67"); 087 selenium.focus("//input[@name='field51']"); 088 Thread.sleep(100); 089 assertTrue(! selenium.isTextPresent("Must be a positive fixed point number, with 5 max digits and 2 digits to the right of the decimal point")); 090 091 //---------------------------------------------Floating Point------------------------------// 092 clearText("//input[@name='field51']"); 093 selenium.type("//input[@name='field51']", "127."); 094 selenium.focus("//input[@name='field77']"); 095 Thread.sleep(100); 096 assertTrue(selenium.isTextPresent("Must be a positive or negative number, with any number of digits to the right of the decimal.")); 097 098 clearText("//input[@name='field51']"); 099 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 }