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