View Javadoc

1   /**
2    * Copyright 2005-2013 The Kuali Foundation
3    *
4    * Licensed under the Educational Community License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    * http://www.opensource.org/licenses/ecl2.php
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package edu.samplu.travel.krad.test;
17  
18  import edu.samplu.common.Failable;
19  import edu.samplu.common.ITUtil;
20  import edu.samplu.common.WebDriverLegacyITBase;
21  
22  /**
23   * Tests the Component section in Rice.
24   *
25   * @author Kuali Rice Team (rice.collab@kuali.org)
26   */
27  public abstract class UIFComponentValidationRegexPatternAbstractSmokeTestBase extends WebDriverLegacyITBase  {
28  
29      /**
30       * "/kr-krad/uicomponents?viewId=UifCompView_KNS&methodToCall=start&readOnlyFields=field91"
31       */
32      public static final String BOOKMARK_URL = "/kr-krad/uicomponents?viewId=UifCompView_KNS&methodToCall=start&readOnlyFields=field91";
33  
34  
35      protected void bookmark() {
36          open(ITUtil.getBaseUrlString() + BOOKMARK_URL);
37      }
38  
39      /**
40       * Nav tests start at {@link edu.samplu.common.ITUtil#PORTAL}.  Bookmark Tests should override and return {@link UifComponentValidationRegexPatternAbstractSmokeTestBase#BOOKMARK_URL}
41       * {@inheritDoc}
42       * @return
43       */
44      @Override
45      public String getTestUrl() {
46          return ITUtil.PORTAL;
47      }
48  
49  
50      protected void navigation() throws InterruptedException {
51          waitAndClickKRAD();
52          waitAndClickByXpath(KITCHEN_SINK_XPATH);
53          switchToWindow(KUALI_UIF_COMPONENTS_WINDOW_XPATH);
54      }
55  
56      protected void testValidCharacterConstraintNav(Failable failable) throws Exception {
57          navigation();
58          testValidCharacterConstraint();
59          passed();
60      }
61  
62      protected void testValidCharacterConstraintBookmark(Failable failable) throws Exception {
63          testValidCharacterConstraint();
64          passed();
65      }
66  
67      protected void testValidCharacterConstraint() throws Exception {
68          waitAndClickByXpath("//a[contains(text(),'Validation - Regex')]");
69  
70          //---------------------------------------------Fixed Point------------------------------//
71          waitAndTypeByName("field50", "123.123");
72          fireEvent("field50", "blur");
73          validateErrorImage(true);
74          clearTextByName("field50");
75          waitAndTypeByXpath("//input[@name='field50']", "1234.4");
76          fireEvent("field50", "blur");
77          validateErrorImage(true);
78          clearTextByName("field50");
79          waitAndTypeByXpath("//input[@name='field50']", "1234.434");
80          fireEvent("field50", "blur");
81          validateErrorImage(true);
82          clearTextByName("field50");
83          waitAndTypeByXpath("//input[@name='field50']", "123.67");
84          fireEvent("field50", "blur");
85          validateErrorImage(false);
86          clearTextByName("field50");
87  
88          //---------------------------------------------Floating Point------------------------------//
89          waitAndTypeByXpath("//input[@name='field51']", "127.");
90          fireEvent("field51", "blur");
91          validateErrorImage(true);
92          clearTextByName("field51");
93          waitAndTypeByXpath("//input[@name='field51']", "1234()98");
94          fireEvent("field51", "blur");
95          validateErrorImage(true);
96          clearTextByName("field51");
97          waitAndTypeByXpath("//input[@name='field51']", "-123.67");
98          fireEvent("field51", "blur");
99          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 }