xref: /AOO41X/test/testgui/source/fvt/gui/sc/validity/ValidityDialogSetting.java (revision d3e0dd8eb215533c15e891ee35bd141abe9397ee)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 package fvt.gui.sc.validity;
23 
24 import static org.junit.Assert.*;
25 import static testlib.gui.AppTool.*;
26 import static testlib.gui.UIMap.*;
27 
28 import org.junit.After;
29 import org.junit.Before;
30 import org.junit.Ignore;
31 import org.junit.Rule;
32 import org.junit.Test;
33 import org.openoffice.test.common.Logger;
34 
35 import testlib.gui.AppTool;
36 import testlib.gui.SCTool;
37 
38 public class ValidityDialogSetting {
39 
40     @Rule
41     public Logger log = Logger.getLogger(this);
42 
43     @Before
setUp()44     public void setUp() throws Exception {
45         app.start(true);
46         AppTool.newSpreadsheet();
47         SCTool.selectRange("A1:C5");
48         app.dispatch(".uno:Validation");
49     }
50 
51     @After
tearDown()52     public void tearDown() throws Exception {
53         app.stop();
54     }
55 
56     /**
57      * test Allow not between Date type in Validity.
58      */
59     @Test
testAllowDateNotBetween()60     public void testAllowDateNotBetween() {
61         scValidityCriteriaTabpage.select();
62         scValidityCriteriaAllowList.select(3); // "Date"
63         scValidityDecimalCompareOperator.select(7); // "not between"
64         scValiditySourceInput.setText("01/01/08");
65         scValidityMaxValueInput.setText("03/01/08");
66         scValidityErrorAlertTabPage.select();
67         scValidityShowErrorMessage.check();
68         scValidityErrorMessageTitle.setText("Stop to enter");
69         scValidityErrorMessage.setText("Invalid value");
70         scValidityErrorAlertTabPage.ok();
71 
72         SCTool.selectRange("A1");
73         scInputBarInput.activate();
74         typeKeys("12/31/07");
75         typeKeys("<enter>");
76         assertEquals("12/31/07", SCTool.getCellText("A1"));
77 
78         SCTool.selectRange("A2");
79         scInputBarInput.activate();
80         typeKeys("03/02/08");
81         typeKeys("<enter>");
82         assertEquals("03/02/08", SCTool.getCellText("A2"));
83 
84         SCTool.selectRange("A3");
85         scInputBarInput.activate();
86         typeKeys("01/01/08");
87         typeKeys("<enter>");
88         assertEquals("Invalid value", activeMsgBox.getMessage());
89         activeMsgBox.ok();
90         assertEquals("", SCTool.getCellText("A3"));
91 
92         SCTool.selectRange("A4");
93         scInputBarInput.activate();
94         typeKeys("03/01/08");
95         typeKeys("<enter>");
96         assertEquals("Invalid value", activeMsgBox.getMessage());
97         activeMsgBox.ok();
98         assertEquals("", SCTool.getCellText("A4"));
99 
100         SCTool.selectRange("A5");
101         scInputBarInput.activate();
102         typeKeys("01/02/08");
103         typeKeys("<enter>");
104         assertEquals("Invalid value", activeMsgBox.getMessage());
105         activeMsgBox.ok();
106         assertEquals("", SCTool.getCellText("A5"));
107 
108         SCTool.selectRange("B1");
109         scInputBarInput.activate();
110         typeKeys("02/29/08");
111         typeKeys("<enter>");
112         assertEquals("Invalid value", activeMsgBox.getMessage());
113         activeMsgBox.ok();
114         assertEquals("", SCTool.getCellText("B1"));
115 
116         SCTool.selectRange("B2");
117         scInputBarInput.activate();
118         typeKeys("test");
119         typeKeys("<enter>");
120         assertEquals("Invalid value", activeMsgBox.getMessage());
121         activeMsgBox.ok();
122         assertEquals("", SCTool.getCellText("B2"));
123 
124         SCTool.selectRange("B3");
125         scInputBarInput.activate();
126         typeKeys("39448");
127         typeKeys("<enter>");
128         assertEquals("Invalid value", activeMsgBox.getMessage());
129         activeMsgBox.ok();
130         assertEquals("", SCTool.getCellText("B3"));
131     }
132 
133     /**
134      * test Allow Decimal equal in Validity.
135      */
136     @Test
testAllowDecimalEqual()137     public void testAllowDecimalEqual() {
138 
139         scValidityCriteriaTabpage.select();
140         scValidityCriteriaAllowList.select(2); // "Decimal"
141         scValidityDecimalCompareOperator.select(0); // "equal"
142         scValiditySourceInput.setText("0.33333333");
143         scValidityErrorAlertTabPage.select();
144         scValidityShowErrorMessage.check();
145         scValidityErrorMessageTitle.setText("Stop to enter");
146         scValidityErrorMessage.setText("Invalid value");
147         scValidityErrorAlertTabPage.ok();
148 
149         SCTool.selectRange("A1");
150         scInputBarInput.activate();
151         typeKeys("0.33333333");
152         typeKeys("<enter>");
153         assertEquals("0.33333333", SCTool.getCellText("A1"));
154 
155         SCTool.selectRange("A2");
156         scInputBarInput.activate();
157         typeKeys("=1/3");
158         typeKeys("<enter>");
159         assertEquals("Invalid value", activeMsgBox.getMessage());
160         activeMsgBox.ok();
161         assertEquals("", SCTool.getCellText("A2"));
162 
163         SCTool.selectRange("A3");
164         scInputBarInput.activate();
165         typeKeys("0.3");
166         typeKeys("<enter>");
167         assertEquals("Invalid value", activeMsgBox.getMessage());
168         activeMsgBox.ok();
169         assertEquals("", SCTool.getCellText("A3"));
170 
171         SCTool.selectRange("A4");
172         scInputBarInput.activate();
173         typeKeys("0.333333333");
174         typeKeys("<enter>");
175         assertEquals("Invalid value", activeMsgBox.getMessage());
176         activeMsgBox.ok();
177         assertEquals("", SCTool.getCellText("A4"));
178 
179         SCTool.selectRange("B2");
180         scInputBarInput.activate();
181         typeKeys("test");
182         typeKeys("<enter>");
183         assertEquals("Invalid value", activeMsgBox.getMessage());
184         activeMsgBox.ok();
185         assertEquals("", SCTool.getCellText("B2"));
186     }
187 
188     /**
189      * test Allow Text length, greater than or equal to in Validity.
190      */
191     @Test
testAllowGreaterTextLength()192     public void testAllowGreaterTextLength() {
193 
194         scValidityCriteriaTabpage.select();
195         scValidityCriteriaAllowList.select(7); // "Text length"
196         scValidityDecimalCompareOperator.select(4); // "greater than or equal to"
197         scValiditySourceInput.setText("10");
198         scValidityErrorAlertTabPage.select();
199         scValidityShowErrorMessage.check();
200         scValidityErrorMessageTitle.setText("Stop to enter");
201         scValidityErrorMessage.setText("Invalid value");
202         scValidityErrorAlertTabPage.ok();
203 
204         SCTool.selectRange("A1");
205         scInputBarInput.activate();
206         typeKeys("testtesttesttest");
207         typeKeys("<enter>");
208         assertEquals("testtesttesttest", SCTool.getCellText("A1"));
209 
210         SCTool.selectRange("A2");
211         scInputBarInput.activate();
212         typeKeys("test test ");
213         typeKeys("<enter>");
214         assertEquals("test test ", SCTool.getCellText("A2"));
215 
216         SCTool.selectRange("A4");
217         scInputBarInput.activate();
218         typeKeys(" ");
219         typeKeys("<enter>");
220         assertEquals("Invalid value", activeMsgBox.getMessage());
221         activeMsgBox.ok();
222         assertEquals("", SCTool.getCellText("A4"));
223 
224         SCTool.selectRange("A3");
225         scInputBarInput.activate();
226         typeKeys("Testatest");
227         typeKeys("<enter>");
228         assertEquals("Invalid value", activeMsgBox.getMessage());
229         activeMsgBox.ok();
230         assertEquals("", SCTool.getCellText("A3"));
231     }
232 
233     /**
234      * test Allow Text length, less than in Validity.
235      */
236     @Test
testAllowLessThanTextLength()237     public void testAllowLessThanTextLength() {
238 
239         scValidityCriteriaTabpage.select();
240         scValidityCriteriaAllowList.select(7); // "Text length"
241         scValidityDecimalCompareOperator.select(1); // "less than"
242         scValiditySourceInput.setText("10");
243 
244         scValidityInputHelpTabPage.select();
245         scValidityInputHelpCheckbox.check();
246         scValidityInputHelpTitle.setText("Help Info Title");
247         scValidityHelpMessage.setText("help info");
248 
249         scValidityErrorAlertTabPage.select();
250         scValidityShowErrorMessage.check();
251         scValidityErrorAlertActionList.select("Information");
252         scValidityErrorMessageTitle.setText("Notes to enter");
253         scValidityErrorMessage.setText("Invalid value");
254         scValidityErrorAlertTabPage.ok();
255 
256         SCTool.selectRange("A1");
257         scInputBarInput.activate();
258         typeKeys("testtesttesttest<enter>");
259         activeMsgBox.ok();
260         assertEquals("testtesttesttest", SCTool.getCellText("A1"));
261 
262         SCTool.selectRange("A2");
263         scInputBarInput.activate();
264         typeKeys("sfsafsddddddd<enter>");
265         activeMsgBox.cancel();
266         assertEquals("", SCTool.getCellText("A2"));
267 
268         SCTool.selectRange("A2");
269         scInputBarInput.activate();
270         typeKeys("10<enter>");
271         assertEquals("10", SCTool.getCellText("A2"));
272 
273         SCTool.selectRange("A3");
274         scInputBarInput.activate();
275         typeKeys("ok<enter>");
276         assertEquals("ok", SCTool.getCellText("A3"));
277     }
278 
279     /**
280      * test Allow list.
281      */
282     @Test
testAllowListSpecialChar()283     public void testAllowListSpecialChar() {
284 
285         scValidityCriteriaTabpage.select();
286         scValidityCriteriaAllowList.select(6); // "List"
287         scValidityEntries.focus();
288         typeKeys("a");
289         typeKeys("<enter>");
290         typeKeys("b");
291         scValidityErrorAlertTabPage.select();
292         scValidityShowErrorMessage.check();
293         scValidityErrorMessageTitle.setText("Stop to enter");
294         scValidityErrorMessage.setText("Invalid value");
295         scValidityCriteriaTabpage.select();
296         scValidityCriteriaTabpage.ok();
297 
298         // These codes are not stable: start
299         // calc.rightClick(1, 1);
300         // typeKeys("<shift s>");
301         // typeKeys("<down><enter>"); // Choose a
302         // sleep(2); // if no sleep, error occur
303         // These codes are not stable: end
304         SCTool.selectRange("A1");
305         scInputBarInput.activate();
306         typeKeys("a<enter>");
307         assertEquals("a", SCTool.getCellText("A1"));
308 
309         SCTool.selectRange("B2");
310         scInputBarInput.activate();
311         typeKeys("test");
312         typeKeys("<enter>");
313         assertEquals("Invalid value", activeMsgBox.getMessage());
314         activeMsgBox.ok();
315         assertEquals("", SCTool.getCellText("B2"));
316     }
317 
318     /**
319      * test Allow time between in Validity.
320      */
321     @Test
testAllowTimeBetween()322     public void testAllowTimeBetween() {
323 
324         scValidityCriteriaTabpage.select();
325         scValidityCriteriaAllowList.select(4); // "Time"
326         scValidityDecimalCompareOperator.select(6); // "between"
327         scValiditySourceInput.setText("27:00");
328         scValidityMaxValueInput.setText("21:00");
329         scValidityErrorAlertTabPage.select();
330         scValidityShowErrorMessage.check();
331         scValidityErrorMessageTitle.setText("Stop to enter");
332         scValidityErrorMessage.setText("Invalid value");
333         scValidityErrorAlertTabPage.ok();
334 
335         SCTool.selectRange("A1");
336         scInputBarInput.activate();
337         typeKeys("21:00");
338         typeKeys("<enter>");
339         assertEquals("09:00:00 PM", SCTool.getCellText("A1"));
340 
341         SCTool.selectRange("A2");
342         scInputBarInput.activate();
343         typeKeys("27:00");
344         typeKeys("<enter>");
345         assertEquals("27:00:00", SCTool.getCellText("A2"));
346 
347         SCTool.selectRange("A3");
348         scInputBarInput.activate();
349         typeKeys("1.125");
350         typeKeys("<enter>");
351         assertEquals("1.125", SCTool.getCellText("A3"));
352 
353         SCTool.selectRange("A4");
354         scInputBarInput.activate();
355         typeKeys("0.875");
356         typeKeys("<enter>");
357         assertEquals("0.875", SCTool.getCellText("A4"));
358 
359         SCTool.selectRange("B1");
360         scInputBarInput.activate();
361         typeKeys("03:00:01");
362         typeKeys("<enter>");
363         assertEquals("Invalid value", activeMsgBox.getMessage());
364         activeMsgBox.ok();
365         assertEquals("", SCTool.getCellText("B1"));
366 
367         SCTool.selectRange("B2");
368         scInputBarInput.activate();
369         typeKeys("20:59:59");
370         typeKeys("<enter>");
371         assertEquals("Invalid value", activeMsgBox.getMessage());
372         activeMsgBox.ok();
373         assertEquals("", SCTool.getCellText("B2"));
374 
375         SCTool.selectRange("B3");
376         scInputBarInput.activate();
377         typeKeys("1.126");
378         typeKeys("<enter>");
379         assertEquals("Invalid value", activeMsgBox.getMessage());
380         activeMsgBox.ok();
381         assertEquals("", SCTool.getCellText("B3"));
382 
383         SCTool.selectRange("B4");
384         scInputBarInput.activate();
385         typeKeys("0.874");
386         typeKeys("<enter>");
387         assertEquals("Invalid value", activeMsgBox.getMessage());
388         activeMsgBox.ok();
389         assertEquals("", SCTool.getCellText("B4"));
390 
391         SCTool.selectRange("C1");
392         scInputBarInput.activate();
393         typeKeys("test");
394         typeKeys("<enter>");
395         assertEquals("Invalid value", activeMsgBox.getMessage());
396         activeMsgBox.ok();
397         assertEquals("", SCTool.getCellText("C1"));
398 
399         SCTool.selectRange("C2");
400         scInputBarInput.activate();
401         typeKeys("24:00");
402         typeKeys("<enter>");
403         assertEquals("24:00:00", SCTool.getCellText("C2"));
404 
405         SCTool.selectRange("C3");
406         scInputBarInput.activate();
407         typeKeys("12:00");
408         typeKeys("<enter>");
409         assertEquals("Invalid value", activeMsgBox.getMessage());
410         activeMsgBox.ok();
411         assertEquals("", SCTool.getCellText("C3"));
412     }
413 
414     /**
415      * test Allow time Greater than and equal to in Validity.
416      */
417     @Test
testAllowTimeGreaterThan()418     public void testAllowTimeGreaterThan() {
419 
420         scValidityCriteriaTabpage.select();
421         scValidityCriteriaAllowList.select(4); // "Time"
422         scValidityDecimalCompareOperator.select(4); // "greater than or equal to"
423         scValiditySourceInput.setText("8:00");
424 
425         scValidityErrorAlertTabPage.select();
426         scValidityShowErrorMessage.check();
427         scValidityErrorAlertActionList.select(1); // "Warning"
428 
429         scValidityErrorMessageTitle.setText("warning to enter");
430         scValidityErrorMessage.setText("Invalid value");
431         scValidityErrorAlertTabPage.ok();
432 
433         SCTool.selectRange("A1");
434         scInputBarInput.activate();
435         typeKeys("7:30");
436         typeKeys("<enter>");
437         assertEquals("Invalid value", activeMsgBox.getMessage());
438         activeMsgBox.ok();
439         assertEquals("07:30:00 AM", SCTool.getCellText("A1"));
440 
441         SCTool.selectRange("A2");
442         scInputBarInput.activate();
443         typeKeys("6:00");
444         typeKeys("<enter>");
445         assertEquals("Invalid value", activeMsgBox.getMessage());
446         activeMsgBox.cancel();
447         assertEquals("", SCTool.getCellText("A2"));
448 
449         SCTool.selectRange("A3");
450         scInputBarInput.activate();
451         typeKeys("8:00");
452         typeKeys("<enter>");
453         assertEquals("08:00:00 AM", SCTool.getCellText("A3"));
454     }
455 
456     /**
457      * test Allow whole number, less than or equal to in Validity.
458      */
459     @Test
testAllowWholeNumLessThan()460     public void testAllowWholeNumLessThan() {
461 
462         scValidityCriteriaTabpage.select();
463         scValidityCriteriaAllowList.select(1); // "Whole Numbers"
464         scValidityDecimalCompareOperator.select(3); // "less than or equal"
465         scValiditySourceInput.setText("100");
466         scValidityErrorAlertTabPage.select();
467         scValidityShowErrorMessage.check();
468         scValidityErrorMessageTitle.setText("Stop to enter");
469         scValidityErrorMessage.setText("Invalid value");
470         scValidityErrorAlertTabPage.ok();
471 
472         SCTool.selectRange("A1");
473         scInputBarInput.activate();
474         typeKeys("99");
475         typeKeys("<enter>");
476         assertEquals("99", SCTool.getCellText("A1"));
477 
478         SCTool.selectRange("A2");
479         scInputBarInput.activate();
480         typeKeys("100");
481         typeKeys("<enter>");
482         assertEquals("100", SCTool.getCellText("A2"));
483 
484         SCTool.selectRange("B1");
485         scInputBarInput.activate();
486         typeKeys("101");
487         typeKeys("<enter>");
488         assertEquals("Invalid value", activeMsgBox.getMessage());
489         activeMsgBox.ok();
490         assertEquals("", SCTool.getCellText("B1"));
491 
492         SCTool.selectRange("B2");
493         scInputBarInput.activate();
494         typeKeys("45.5");
495         typeKeys("<enter>");
496         assertEquals("Invalid value", activeMsgBox.getMessage());
497         activeMsgBox.ok();
498         assertEquals("", SCTool.getCellText("B2"));
499 
500         SCTool.selectRange("C1");
501         scInputBarInput.activate();
502         typeKeys("test");
503         typeKeys("<enter>");
504         assertEquals("Invalid value", activeMsgBox.getMessage());
505         activeMsgBox.ok();
506         assertEquals("", SCTool.getCellText("C1"));
507     }
508 
509     /**
510      * test default message of Error Alert in Validity.
511      */
512     @Test
testDefaultErrorAlertMessage()513     public void testDefaultErrorAlertMessage() {
514 
515         scValidityCriteriaTabpage.select();
516         scValidityCriteriaAllowList.select(2); // "Decimal"
517         scValidityDecimalCompareOperator.select(0); // "equal"
518         scValiditySourceInput.setText("1");
519 
520         scValidityErrorAlertTabPage.select();
521         scValidityShowErrorMessage.check();
522         scValidityErrorAlertActionList.select(0); // "Stop"
523         scValidityErrorAlertTabPage.ok();
524 
525         SCTool.selectRange("A1");
526         scInputBarInput.activate();
527         typeKeys("13");
528         typeKeys("<enter>");
529         assertEquals("OpenOffice Calc", activeMsgBox.getCaption());
530         // assertEquals("Invalid value.",ActiveMsgBox.getMessage()); // Can not
531         // verify in multi-language
532         activeMsgBox.ok();
533         assertEquals("", SCTool.getCellText("A1"));
534     }
535 
536     /**
537      * test uncheck Error Alert in Validity.
538      */
539     @Test
testUncheckErrorAlert()540     public void testUncheckErrorAlert() {
541 
542         scValidityCriteriaTabpage.select();
543         scValidityCriteriaAllowList.select(2); // "Decimal"
544         scValidityDecimalCompareOperator.select(0); // "equal"
545         scValiditySourceInput.setText("1");
546 
547         scValidityErrorAlertTabPage.select();
548         scValidityShowErrorMessage.uncheck();
549         scValidityErrorAlertActionList.select(0); // "Stop"
550         scValidityErrorAlertTabPage.ok();
551 
552         SCTool.selectRange("A1");
553         typeKeys("13");
554         typeKeys("<enter>");
555         assertEquals("13", SCTool.getCellText("A1"));
556     }
557 
558     /**
559      * test Cell range source picker in Validity. Input from Edit Box.
560      */
561     @Test
testValidityCellRangeSourcePicker()562     public void testValidityCellRangeSourcePicker() {
563 
564         scValidityCriteriaTabpage.select();
565         scValidityCriteriaAllowList.select(5); // "Cell range"
566         scValiditySourcePicker.click();
567         assertEquals(false, scValidityCriteriaAllowList.exists());
568         scValiditySourceInput.setText("$E$2:$G$5");
569         scValiditySourcePicker.click();
570         assertEquals(true, scValidityCriteriaAllowList.exists());
571 
572         scValidityErrorAlertTabPage.select();
573         scValidityShowErrorMessage.check();
574         scValidityErrorAlertActionList.select(0); // "Stop"
575         scValidityErrorMessageTitle.setText("Stop to enter");
576         scValidityErrorMessage.setText("Invalid value.");
577         scValidityErrorAlertTabPage.ok();
578 
579         // calc.focus();
580         SCTool.selectRange("E2");
581         scInputBarInput.activate();
582         typeKeys("test");
583         typeKeys("<enter>");
584 
585         SCTool.selectRange("A1");
586         scInputBarInput.activate();
587         typeKeys("test32");
588         typeKeys("<enter>");
589         assertEquals("Invalid value.", activeMsgBox.getMessage());
590         activeMsgBox.ok();
591         assertEquals("", SCTool.getCellText("A1"));
592 
593         SCTool.selectRange("B1");
594         scInputBarInput.activate();
595         typeKeys("test");
596         typeKeys("<enter>");
597         assertEquals("test", SCTool.getCellText("B1"));
598     }
599 
600     /**
601      * test Allow Blank cell Checkbox in Validity.
602      */
603     @Test
testAllowBlankCells()604     public void testAllowBlankCells() {
605         scValidityCriteriaTabpage.select();
606         scValidityCriteriaAllowList.select(5); // "Cell range"
607         scValiditySourceInput.setText("$E$1:$E$5");
608         scValidityAllowBlankCells.check();
609         scValidityCriteriaTabpage.ok();
610 
611         SCTool.selectRange("E1");
612         typeKeys("A<enter>A<enter>A<enter>A<enter>A<enter>");
613 
614         SCTool.selectRange("A1");
615         typeKeys("A<enter>");
616         SCTool.selectRange("D1");
617         scInputBarInput.activate();
618         typeKeys("<backspace><enter>");
619         assertEquals("", SCTool.getCellText("D1"));
620 
621         SCTool.selectRange("B1");
622         app.dispatch(".uno:Validation");
623         scValidityCriteriaTabpage.select();
624         scValidityAllowBlankCells.uncheck();
625         typeKeys("<enter>");
626 
627         SCTool.selectRange("B1");
628         scInputBarInput.activate();
629         typeKeys("<backspace><enter>");
630         typeKeys("<enter>");
631     }
632 }
633