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