001 /** 002 * Copyright 2005-2013 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/ecl2.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.sampleu.travel; 017 018 import org.kuali.rice.testtools.common.JiraAwareFailable; 019 import org.kuali.rice.testtools.selenium.WebDriverLegacyITBase; 020 021 /** 022 * Tests the Component section in Rice. 023 * 024 * @author Kuali Rice Team (rice.collab@kuali.org) 025 */ 026 public abstract class UifComponentValidationRegexPatternAftBase extends WebDriverLegacyITBase { 027 028 /** 029 * "/kr-krad/uicomponents?viewId=UifCompView&methodToCall=start&readOnlyFields=field91" 030 */ 031 public static final String BOOKMARK_URL = "/kr-krad/uicomponents?viewId=UifCompView&methodToCall=start&readOnlyFields=field91"; 032 033 @Override 034 protected String getBookmarkUrl() { 035 return BOOKMARK_URL; 036 } 037 038 protected void navigation() throws InterruptedException { 039 waitAndClickKRAD(); 040 waitAndClickByXpath(KITCHEN_SINK_XPATH); 041 switchToWindow(KUALI_UIF_COMPONENTS_WINDOW_XPATH); 042 } 043 044 protected void testValidCharacterConstraintNav(JiraAwareFailable failable) throws Exception { 045 navigation(); 046 testValidCharacterConstraint(); 047 passed(); 048 } 049 050 protected void testValidCharacterConstraintBookmark(JiraAwareFailable failable) throws Exception { 051 testValidCharacterConstraint(); 052 passed(); 053 } 054 055 protected void testValidCharacterConstraint() throws Exception { 056 // waitAndClickByXpath("//a[contains(text(),'Validation - Regex')][2]"); 057 waitAndClickById("UifCompView-Navigation4"); 058 059 //---------------------------------------------Fixed Point------------------------------// 060 waitAndTypeByName("field50", "123.12"); 061 fireEvent("field50", "blur"); 062 try { 063 validateErrorImage(true); 064 fail("Framework error validateErrorImage(true) should have thrown an AssertionExcpetion"); 065 } catch (AssertionError ae) { 066 jGrowl("validateErrorImage(true) when not expected okay."); 067 // expected 068 } 069 validateErrorImage(false); 070 071 clearTextByName("field50"); 072 waitAndTypeByName("field50", "123.123"); 073 fireEvent("field50", "blur"); 074 try { 075 validateErrorImage(false); 076 fail("Framework error validateErrorImage(false) should have thrown an AssertionExcpetion"); 077 } catch (AssertionError ae) { 078 jGrowl("validateErrorImage(false) when expected okay."); 079 } 080 validateErrorImage(true); 081 082 clearTextByName("field50"); 083 waitAndTypeByXpath("//input[@name='field50']", "1234.4"); 084 fireEvent("field50", "blur"); 085 validateErrorImage(true); 086 clearTextByName("field50"); 087 waitAndTypeByXpath("//input[@name='field50']", "1234.434"); 088 fireEvent("field50", "blur"); 089 validateErrorImage(true); 090 clearTextByName("field50"); 091 waitAndTypeByXpath("//input[@name='field50']", "123.67"); 092 fireEvent("field50", "blur"); 093 validateErrorImage(false); 094 clearTextByName("field50"); 095 096 //---------------------------------------------Floating Point------------------------------// 097 waitAndTypeByXpath("//input[@name='field51']", "127."); 098 fireEvent("field51", "blur"); 099 validateErrorImage(true); 100 clearTextByName("field51"); 101 waitAndTypeByXpath("//input[@name='field51']", "1234()98"); 102 fireEvent("field51", "blur"); 103 validateErrorImage(true); 104 clearTextByName("field51"); 105 waitAndTypeByXpath("//input[@name='field51']", "-123.67"); 106 fireEvent("field51", "blur"); 107 validateErrorImage(false); 108 clearTextByName("field51"); 109 110 //---------------------------------------------Integer Pattern constraint------------------------------// 111 waitAndTypeByXpath("//input[@name='field77']", "127."); 112 fireEvent("field77", "blur"); 113 validateErrorImage(true); 114 clearTextByName("field77"); 115 waitAndTypeByXpath("//input[@name='field77']", "1234.4123"); 116 fireEvent("field77", "blur"); 117 validateErrorImage(true); 118 clearTextByName("field77"); 119 waitAndTypeByXpath("//input[@name='field77']", "123E123"); 120 fireEvent("field77", "blur"); 121 validateErrorImage(true); 122 clearTextByName("field77"); 123 waitAndTypeByXpath("//input[@name='field77']", "-123"); 124 fireEvent("field77", "blur"); 125 validateErrorImage(false); 126 clearTextByName("field77"); 127 128 //---------------------------------------------Phone Text------------------------------// 129 waitAndTypeByXpath("//input[@name='field52']", "1271231234"); 130 fireEvent("field52", "blur"); 131 validateErrorImage(true); 132 clearTextByName("field52"); 133 waitAndTypeByXpath("//input[@name='field52']", "123-123-123"); 134 fireEvent("field52", "blur"); 135 validateErrorImage(true); 136 clearTextByName("field52"); 137 waitAndTypeByXpath("//input[@name='field52']", "12-12-123445"); 138 fireEvent("field52", "blur"); 139 validateErrorImage(true); 140 clearTextByName("field52"); 141 waitAndTypeByXpath("//input[@name='field52']", "1234-12-1234"); 142 fireEvent("field52", "blur"); 143 validateErrorImage(true); 144 clearTextByName("field52"); 145 waitAndTypeByXpath("//input[@name='field52']", "123.123.1234"); 146 fireEvent("field52", "blur"); 147 validateErrorImage(true); 148 clearTextByName("field52"); 149 waitAndTypeByXpath("//input[@name='field52']", "123-123-12345"); 150 fireEvent("field52", "blur"); 151 validateErrorImage(true); 152 clearTextByName("field52"); 153 waitAndTypeByXpath("//input[@name='field52']", "123-123-1234"); 154 fireEvent("field52", "blur"); 155 validateErrorImage(false); 156 clearTextByName("field52"); 157 158 //---------------------------------------------JavaClass Text------------------------------// 159 waitAndTypeByXpath("//input[@name='field53']", "127"); 160 fireEvent("field53", "blur"); 161 validateErrorImage(true); 162 clearTextByName("field53"); 163 waitAndTypeByXpath("//input[@name='field53']", "TestJava!@#Class"); 164 fireEvent("field53", "blur"); 165 validateErrorImage(true); 166 clearTextByName("field53"); 167 waitAndTypeByXpath("//input[@name='field53']", "Test JavaClass"); 168 fireEvent("field53", "blur"); 169 validateErrorImage(true); 170 clearTextByName("field53"); 171 waitAndTypeByXpath("//input[@name='field53']", "Test JavaClass"); 172 fireEvent("field53", "blur"); 173 validateErrorImage(true); 174 clearTextByName("field53"); 175 waitAndTypeByXpath("//input[@name='field53']", "TestJavaClass"); 176 fireEvent("field53", "blur"); 177 validateErrorImage(false); 178 clearTextByName("field53"); 179 180 //---------------------------------------------Email Text------------------------------// 181 waitAndTypeByXpath("//input[@name='field54']", "123@123.123"); 182 fireEvent("field54", "blur"); 183 validateErrorImage(true); 184 clearTextByName("field54"); 185 waitAndTypeByXpath("//input[@name='field54']", "email.com@emailServer"); 186 fireEvent("field54", "blur"); 187 validateErrorImage(true); 188 clearTextByName("field54"); 189 waitAndTypeByXpath("//input[@name='field54']", "emailemailServer@.com"); 190 fireEvent("field54", "blur"); 191 validateErrorImage(true); 192 clearTextByName("field54"); 193 waitAndTypeByXpath("//input[@name='field54']", "email@emailServercom"); 194 fireEvent("field54", "blur"); 195 validateErrorImage(true); 196 clearTextByName("field54"); 197 waitAndTypeByXpath("//input[@name='field54']", "email@emailServer.com"); 198 fireEvent("field54", "blur"); 199 validateErrorImage(false); 200 clearTextByName("field54"); 201 202 //---------------------------------------------URL pattern Text------------------------------// 203 waitAndTypeByXpath("//input[@name='field84']", "www.google.com"); 204 fireEvent("field84", "blur"); 205 validateErrorImage(true); 206 clearTextByName("field84"); 207 waitAndTypeByXpath("//input[@name='field84']", "https:www.google.com"); 208 fireEvent("field84", "blur"); 209 validateErrorImage(true); 210 clearTextByName("field84"); 211 waitAndTypeByXpath("//input[@name='field84']", "ftp://www.google.comsdfa123!#@"); 212 fireEvent("field84", "blur"); 213 validateErrorImage(true); 214 clearTextByName("field84"); 215 waitAndTypeByXpath("//input[@name='field84']", "ftp:/www.google.coms"); 216 fireEvent("field84", "blur"); 217 validateErrorImage(true); 218 clearTextByName("field84"); 219 waitAndTypeByXpath("//input[@name='field84']", "ftp://www.google.com"); 220 fireEvent("field84", "blur"); 221 validateErrorImage(false); 222 clearTextByName("field84"); 223 waitAndTypeByXpath("//input[@name='field84']", "https://www.google.com"); 224 fireEvent("field84", "blur"); 225 validateErrorImage(false); 226 clearTextByName("field84"); 227 waitAndTypeByXpath("//input[@name='field84']", "http://www.google.com"); 228 fireEvent("field84", "blur"); 229 validateErrorImage(false); 230 clearTextByName("field84"); 231 232 //---------------------------------------------Date pattern Text------------------------------// 233 //-------------invalid formats 234 waitAndTypeByXpath("//input[@name='field55']", "12/12/2112 12:12:87 am"); 235 fireEvent("field55", "blur"); 236 validateErrorImage(true); 237 clearTextByName("field55"); 238 waitAndTypeByXpath("//input[@name='field55']", "12-12-2112 12:12 am"); 239 fireEvent("field55", "blur"); 240 validateErrorImage(true); 241 clearTextByName("field55"); 242 waitAndTypeByXpath("//input[@name='field55']", "12-12-2112 12:12"); 243 fireEvent("field55", "blur"); 244 validateErrorImage(true); 245 clearTextByName("field55"); 246 waitAndTypeByXpath("//input[@name='field55']", "12/12/2112 12:12"); 247 fireEvent("field55", "blur"); 248 validateErrorImage(true); 249 clearTextByName("field55"); 250 waitAndTypeByXpath("//input[@name='field55']", "12-12-2112 12:12:78"); 251 fireEvent("field55", "blur"); 252 validateErrorImage(true); 253 clearTextByName("field55"); 254 waitAndTypeByXpath("//input[@name='field55']", "12 Sept"); 255 fireEvent("field55", "blur"); 256 validateErrorImage(true); 257 clearTextByName("field55"); 258 waitAndTypeByXpath("//input[@name='field55']", "Sept 12 12:12"); 259 fireEvent("field55", "blur"); 260 validateErrorImage(true); 261 clearTextByName("field55"); 262 waitAndTypeByXpath("//input[@name='field55']", "221299 12:12:13"); 263 fireEvent("field55", "blur"); 264 validateErrorImage(true); 265 clearTextByName("field55"); 266 waitAndTypeByXpath("//input[@name='field55']", "111222 12:12"); 267 fireEvent("field55", "blur"); 268 validateErrorImage(true); 269 clearTextByName("field55"); 270 waitAndTypeByXpath("//input[@name='field55']", "9/9/2012 12:12 am"); 271 fireEvent("field55", "blur"); 272 validateErrorImage(true); 273 clearTextByName("field55"); 274 275 //-------------valid formats 276 waitAndTypeByXpath("//input[@name='field55']", "09/09/2012 12:12 pm"); 277 fireEvent("field55", "blur"); 278 validateErrorImage(false); 279 clearTextByName("field55"); 280 waitAndTypeByXpath("//input[@name='field55']", "090923"); 281 fireEvent("field55", "blur"); 282 validateErrorImage(false); 283 clearTextByName("field55"); 284 waitAndTypeByXpath("//input[@name='field55']", "Sept 12"); 285 fireEvent("field55", "blur"); 286 validateErrorImage(false); 287 clearTextByName("field55"); 288 waitAndTypeByXpath("//input[@name='field55']", "2034"); 289 fireEvent("field55", "blur"); 290 validateErrorImage(false); 291 clearTextByName("field55"); 292 waitAndTypeByXpath("//input[@name='field55']", "12/12/2012 23:12:59"); 293 fireEvent("field55", "blur"); 294 validateErrorImage(false); 295 clearTextByName("field55"); 296 waitAndTypeByXpath("//input[@name='field55']", "12-12-12 23:12:59"); 297 fireEvent("field55", "blur"); 298 validateErrorImage(false); 299 clearTextByName("field55"); 300 waitAndTypeByXpath("//input[@name='field55']", "121212 23:12:32"); 301 fireEvent("field55", "blur"); 302 validateErrorImage(false); 303 clearTextByName("field55"); 304 waitAndTypeByXpath("//input[@name='field55']", "Sept 12 23:45:50"); 305 fireEvent("field55", "blur"); 306 validateErrorImage(false); 307 clearTextByName("field55"); 308 waitAndTypeByXpath("//input[@name='field55']", "2011 12:23:32"); 309 fireEvent("field55", "blur"); 310 validateErrorImage(false); 311 clearTextByName("field55"); 312 313 //---------------------------------------------BasicDate pattern Text------------------------------// 314 waitAndTypeByXpath("//input[@name='field75']", "12122012"); 315 fireEvent("field75", "blur"); 316 validateErrorImage(true); 317 clearTextByName("field75"); 318 waitAndTypeByXpath("//input[@name='field75']", "13-12-34"); 319 fireEvent("field75", "blur"); 320 validateErrorImage(true); 321 clearTextByName("field75"); 322 waitAndTypeByXpath("//input[@name='field75']", "12:12:2034"); 323 fireEvent("field75", "blur"); 324 validateErrorImage(true); 325 clearTextByName("field75"); 326 waitAndTypeByXpath("//input[@name='field75']", "12-12-2034"); 327 fireEvent("field75", "blur"); 328 validateErrorImage(false); 329 clearTextByName("field75"); 330 331 //---------------------------------------------Time12H Pattern Text------------------------------// 332 waitAndTypeByXpath("//input[@name='field82']", "13:00:12"); 333 fireEvent("field82", "blur"); 334 validateErrorImage(true); 335 clearTextByName("field82"); 336 waitAndTypeByXpath("//input[@name='field82']", "09:00:"); 337 fireEvent("field82", "blur"); 338 validateErrorImage(true); 339 clearTextByName("field82"); 340 waitAndTypeByXpath("//input[@name='field82']", "3-00:12"); 341 fireEvent("field82", "blur"); 342 validateErrorImage(true); 343 clearTextByName("field82"); 344 waitAndTypeByXpath("//input[@name='field82']", "3:00:34"); 345 fireEvent("field82", "blur"); 346 validateErrorImage(false); 347 clearTextByName("field82"); 348 waitAndTypeByXpath("//input[@name='field82']", "3:00"); 349 fireEvent("field82", "blur"); 350 validateErrorImage(false); 351 clearTextByName("field82"); 352 353 //---------------------------------------------Time24H Pattern Text------------------------------// 354 waitAndTypeByXpath("//input[@name='field83']", "24:00:12"); 355 fireEvent("field83", "blur"); 356 validateErrorImage(true); 357 clearTextByName("field83"); 358 waitAndTypeByXpath("//input[@name='field83']", "14:00:"); 359 fireEvent("field83", "blur"); 360 validateErrorImage(true); 361 clearTextByName("field83"); 362 waitAndTypeByXpath("//input[@name='field83']", "13:00:76"); 363 fireEvent("field83", "blur"); 364 validateErrorImage(true); 365 clearTextByName("field83"); 366 waitAndTypeByXpath("//input[@name='field83']", "13:00:23"); 367 fireEvent("field83", "blur"); 368 validateErrorImage(false); 369 clearTextByName("field83"); 370 waitAndTypeByXpath("//input[@name='field83']", "23:00:12"); 371 fireEvent("field83", "blur"); 372 validateErrorImage(false); 373 clearTextByName("field83"); 374 375 //---------------------------------------------Timestamp pattern Text------------------------------// 376 waitAndTypeByXpath("//input[@name='field56']", "1000-12-12 12:12:12.103"); 377 fireEvent("field56", "blur"); 378 validateErrorImage(true); 379 clearTextByName("field56"); 380 waitAndTypeByXpath("//input[@name='field56']", "2000/12/12 12-12-12.87"); 381 fireEvent("field56", "blur"); 382 validateErrorImage(true); 383 clearTextByName("field56"); 384 waitAndTypeByXpath("//input[@name='field56']", "2000/12/12 12-12-12.87"); 385 fireEvent("field56", "blur"); 386 validateErrorImage(true); 387 clearTextByName("field56"); 388 waitAndTypeByXpath("//input[@name='field56']", "2011-08-12 12:12:12"); 389 fireEvent("field56", "blur"); 390 validateErrorImage(true); 391 clearTextByName("field56"); 392 393 //--------this should not be allowed 394 /* 395 clearTimeStampText(); 396 waitAndType("//input[@name='field56']", "2999-12-12 12:12:12.103"); 397 focus("//input[@name='field57']"); 398 Thread.sleep(100); 399 assertTrue(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.")); 400 */ 401 waitAndTypeByXpath("//input[@name='field56']", "2099-12-12 12:12:12.103"); 402 fireEvent("field56", "blur"); 403 validateErrorImage(false); 404 clearTextByName("field56"); 405 406 //---------------------------------------------Year Pattern Text------------------------------// 407 waitAndTypeByXpath("//input[@name='field57']", "1599"); 408 fireEvent("field57", "blur"); 409 validateErrorImage(true); 410 clearTextByName("field57"); 411 waitAndTypeByXpath("//input[@name='field57']", "2200"); 412 fireEvent("field57", "blur"); 413 validateErrorImage(true); 414 clearTextByName("field57"); 415 waitAndTypeByXpath("//input[@name='field57']", "20000"); 416 fireEvent("field57", "blur"); 417 validateErrorImage(true); 418 clearTextByName("field57"); 419 waitAndTypeByXpath("//input[@name='field57']", "-202"); 420 fireEvent("field57", "blur"); 421 validateErrorImage(true); 422 clearTextByName("field57"); 423 waitAndTypeByXpath("//input[@name='field57']", "2000"); 424 fireEvent("field57", "blur"); 425 validateErrorImage(false); 426 clearTextByName("field57"); 427 428 //---------------------------------------------Month Pattern Text------------------------------// 429 waitAndTypeByXpath("//input[@name='field58']", "0"); 430 fireEvent("field58", "blur"); 431 validateErrorImage(true); 432 clearTextByName("field58"); 433 waitAndTypeByXpath("//input[@name='field58']", "-12"); 434 fireEvent("field58", "blur"); 435 validateErrorImage(true); 436 clearTextByName("field58"); 437 waitAndTypeByXpath("//input[@name='field58']", "100"); 438 fireEvent("field58", "blur"); 439 validateErrorImage(true); 440 clearTextByName("field58"); 441 waitAndTypeByXpath("//input[@name='field58']", "12"); 442 fireEvent("field58", "blur"); 443 validateErrorImage(false); 444 clearTextByName("field58"); 445 446 //---------------------------------------------ZipCode Pattern Text------------------------------// 447 waitAndTypeByXpath("//input[@name='field61']", "123"); 448 fireEvent("field61", "blur"); 449 validateErrorImage(true); 450 clearTextByName("field61"); 451 waitAndTypeByXpath("//input[@name='field61']", "2341 12"); 452 fireEvent("field61", "blur"); 453 validateErrorImage(true); 454 clearTextByName("field61"); 455 waitAndTypeByXpath("//input[@name='field61']", "0-1231"); 456 fireEvent("field61", "blur"); 457 validateErrorImage(true); 458 clearTextByName("field61"); 459 waitAndTypeByXpath("//input[@name='field61']", "12345"); 460 fireEvent("field61", "blur"); 461 validateErrorImage(false); 462 clearTextByName("field61"); 463 464 //---------------------------------------------Alpha Numeric w/o options Text------------------------------// 465 waitAndTypeByXpath("//input[@name='field62']", "123 23 @#"); 466 fireEvent("field62", "blur"); 467 validateErrorImage(true); 468 clearTextByName("field62"); 469 waitAndTypeByXpath("//input[@name='field62']", "-asd123"); 470 fireEvent("field62", "blur"); 471 validateErrorImage(true); 472 clearTextByName("field62"); 473 waitAndTypeByXpath("//input[@name='field62']", "asd/123"); 474 fireEvent("field62", "blur"); 475 validateErrorImage(true); 476 clearTextByName("field62"); 477 waitAndTypeByXpath("//input[@name='field62']", "asd123"); 478 fireEvent("field62", "blur"); 479 validateErrorImage(false); 480 clearTextByName("field62"); 481 482 //---------------------------------------------Alpha Numeric with options Text------------------------------// 483 waitAndTypeByXpath("//input[@name='field63']", "123^we"); 484 fireEvent("field63", "blur"); 485 validateErrorImage(true); 486 clearTextByName("field63"); 487 waitAndTypeByXpath("//input[@name='field63']", "-123_asd"); 488 fireEvent("field63", "blur"); 489 validateErrorImage(true); 490 clearTextByName("field63"); 491 waitAndTypeByXpath("//input[@name='field63']", "123 23 @#"); 492 fireEvent("field63", "blur"); 493 clearTextByName("field63"); 494 waitAndTypeByXpath("//input[@name='field63']", "as_de 456/123"); 495 fireEvent("field63", "blur"); 496 validateErrorImage(false); 497 clearTextByName("field63"); 498 499 //---------------------------------------------Alpha with Whitespace and commas Text------------------------------// 500 waitAndTypeByXpath("//input[@name='field64']", "123^we"); 501 fireEvent("field64", "blur"); 502 validateErrorImage(true); 503 clearTextByName("field64"); 504 waitAndTypeByXpath("//input[@name='field64']", "asd_pqr"); 505 fireEvent("field64", "blur"); 506 validateErrorImage(true); 507 clearTextByName("field64"); 508 waitAndTypeByXpath("//input[@name='field64']", "asd/def"); 509 fireEvent("field64", "blur"); 510 validateErrorImage(true); 511 clearTextByName("field64"); 512 waitAndTypeByXpath("//input[@name='field64']", "asd ,pqr"); 513 fireEvent("field64", "blur"); 514 validateErrorImage(false); 515 clearTextByName("field64"); 516 517 //---------------------------------------------AlphaPatterrn with disallowed charset Text------------------------------// 518 waitAndTypeByXpath("//input[@name='field76']", "123"); 519 fireEvent("field76", "blur"); 520 validateErrorImage(true); 521 clearTextByName("field76"); 522 waitAndTypeByXpath("//input[@name='field76']", "`abcd`"); 523 fireEvent("field76", "blur"); 524 validateErrorImage(true); 525 clearTextByName("field76"); 526 waitAndTypeByXpath("//input[@name='field76']", "|abcd|"); 527 fireEvent("field76", "blur"); 528 validateErrorImage(true); 529 clearTextByName("field76"); 530 waitAndTypeByXpath("//input[@name='field76']", "~abcd~"); 531 fireEvent("field76", "blur"); 532 validateErrorImage(true); 533 clearTextByName("field76"); 534 waitAndTypeByXpath("//input[@name='field76']", " ab_c d_ef "); 535 fireEvent("field76", "blur"); 536 validateErrorImage(false); 537 clearTextByName("field76"); 538 539 //---------------------------------------------Anything with No Whitespace Text------------------------------// 540 waitAndTypeByXpath("//input[@name='field65']", "123 ^we"); 541 fireEvent("field65", "blur"); 542 validateErrorImage(true); 543 clearTextByName("field65"); 544 waitAndTypeByXpath("//input[@name='field65']", "123^we!@#^&*~:"); 545 fireEvent("field65", "blur"); 546 validateErrorImage(false); 547 clearTextByName("field65"); 548 549 //---------------------------------------------CharacterSet Text------------------------------// 550 waitAndTypeByXpath("//input[@name='field66']", "123 ^we"); 551 fireEvent("field66", "blur"); 552 validateErrorImage(true); 553 clearTextByName("field66"); 554 waitAndTypeByXpath("//input[@name='field66']", "123_^we"); 555 fireEvent("field66", "blur"); 556 validateErrorImage(true); 557 clearTextByName("field66"); 558 waitAndTypeByXpath("//input[@name='field66']", "abc ABC"); 559 fireEvent("field66", "blur"); 560 validateErrorImage(true); 561 clearTextByName("field66"); 562 waitAndTypeByXpath("//input[@name='field66']", "aAbBcC"); 563 fireEvent("field66", "blur"); 564 validateErrorImage(false); 565 clearTextByName("field66"); 566 567 //---------------------------------------------Numeric Character Text------------------------------// 568 waitAndTypeByXpath("//input[@name='field67']", "123 ^we"); 569 fireEvent("field67", "blur"); 570 validateErrorImage(true); 571 clearTextByName("field67"); 572 waitAndTypeByXpath("//input[@name='field67']", "123/10"); 573 fireEvent("field67", "blur"); 574 validateErrorImage(true); 575 clearTextByName("field67"); 576 waitAndTypeByXpath("//input[@name='field67']", "(123.00)"); 577 fireEvent("field67", "blur"); 578 validateErrorImage(true); 579 clearTextByName("field67"); 580 waitAndTypeByXpath("//input[@name='field67']", "(12-3)"); 581 fireEvent("field67", "blur"); 582 validateErrorImage(false); 583 clearTextByName("field67"); 584 585 //---------------------------------------------Valid Chars Custom Text------------------------------// 586 waitAndTypeByXpath("//input[@name='field68']", "123.123"); 587 fireEvent("field68", "blur"); 588 validateErrorImage(true); 589 clearTextByName("field68"); 590 waitAndTypeByXpath("//input[@name='field68']", "a.b"); 591 fireEvent("field68", "blur"); 592 validateErrorImage(true); 593 clearTextByName("field68"); 594 waitAndTypeByXpath("//input[@name='field68']", "123 qwe"); 595 fireEvent("field68", "blur"); 596 validateErrorImage(true); 597 clearTextByName("field68"); 598 waitAndTypeByXpath("//input[@name='field68']", "5.a"); 599 fireEvent("field68", "blur"); 600 validateErrorImage(true); 601 clearTextByName("field68"); 602 waitAndTypeByXpath("//input[@name='field68']", "a.0,b.4"); 603 fireEvent("field68", "blur"); 604 validateErrorImage(true); 605 clearTextByName("field68"); 606 waitAndTypeByXpath("//input[@name='field68']", "a.0"); 607 fireEvent("field68", "blur"); 608 validateErrorImage(false); 609 clearTextByName("field68"); 610 passed(); 611 } 612 }