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