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 }