xref: /AOO41X/test/testgui/source/fvt/gui/sd/headerandfooter/HeaderAndFooterSetting.java (revision fd3484265709667881cfaec27d41da15d46b6832)
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 /**
23  *
24  */
25 package fvt.gui.sd.headerandfooter;
26 
27 import static org.junit.Assert.*;
28 import static org.openoffice.test.common.Testspace.*;
29 import static org.openoffice.test.vcl.Tester.*;
30 import static testlib.gui.AppTool.*;
31 import static testlib.gui.UIMap.*;
32 
33 import org.junit.After;
34 import org.junit.Before;
35 import org.junit.Rule;
36 import org.junit.Test;
37 import org.openoffice.test.common.FileUtil;
38 import org.openoffice.test.common.Logger;
39 
40 import testlib.gui.AppTool;
41 import testlib.gui.SDTool;
42 
43 public class HeaderAndFooterSetting {
44 
45     @Rule
46     public Logger log = Logger.getLogger(this);
47 
48     @Before
setUp()49     public void setUp() throws Exception {
50         app.start(true);
51         AppTool.newPresentation();
52         for (int i = 0; i < 5; i++) {
53             sdInsertPageButtonOnToolbar.click();
54         }
55         // Pop up navigator panel
56         if (!sdNavigatorDlg.exists()) {
57             app.dispatch(".uno:Navigator");
58         }
59     }
60 
61     @After
tearDown()62     public void tearDown() throws Exception {
63         sleep(3);
64         if (sdNavigatorDlg.exists()) {
65             app.dispatch(".uno:Navigator");
66         }
67         app.stop();
68     }
69 
70     /**
71      * Test Copy slide with Apply Footer to same file and different file
72      *
73      * @throws Exception
74      */
75     @Test
testCopySlideWithApplyFooter()76     public void testCopySlideWithApplyFooter() throws Exception {
77 
78         // add header and footer
79         app.dispatch(".uno:HeaderAndFooter");
80 
81         sdDateAndTimeFooterOnSlide.check();
82         sdFixedDateAndTimeFooterOnSlide.check();
83         sdFixedDateAndTimeOnSlideInput.setText("Fix Date: 20120323");
84         sdFooterTextOnSlide.check();
85         sdFooterTextOnSlideInput.setText("Footer Test");
86         sdSlideNumAsFooterOnSlide.check();
87         sdApplyToAllButtonOnSlideFooter.click();
88 
89         // Click slide 3
90         impressSlideSorter.focus();
91         typeKeys("<up><up><up>");
92         sleep(1);
93         app.dispatch(".uno:HeaderAndFooter");
94         sdSlideNumAsFooterOnSlide.uncheck();
95         sdApplyButtonOnSlideFooter.click();
96 
97         // paste to the same file
98         impressSlideSorter.focus();
99         app.dispatch(".uno:Copy");
100         app.dispatch(".uno:Paste");
101 
102         app.dispatch(".uno:HeaderAndFooter");
103         assertEquals("Fix Date: 20120323", sdFixedDateAndTimeOnSlideInput.getText());
104         assertEquals("Footer Test", sdFooterTextOnSlideInput.getText());
105         assertEquals(false, sdSlideNumAsFooterOnSlide.isChecked());
106         sdHeaderAndFooterDlgSlideTab.cancel();
107 
108         // paste to different file
109         impress.focus();
110         app.dispatch("private:factory/simpress?slot=6686");
111         presentationWizard.ok();
112         app.dispatch(".uno:Paste");
113         impressSlideSorter.focus();
114         typeKeys("<down>");
115         sleep(1);
116 
117         app.dispatch(".uno:HeaderAndFooter");
118         assertEquals("Fix Date: 20120323", sdFixedDateAndTimeOnSlideInput.getText());
119         assertEquals("Footer Test", sdFooterTextOnSlideInput.getText());
120         assertEquals(false, sdSlideNumAsFooterOnSlide.isChecked());
121         sdHeaderAndFooterDlgSlideTab.cancel();
122 
123     }
124 
125     /**
126      * Test Copy slide with Apply to all Footer to same file and different file
127      *
128      * @throws Exception
129      */
130     @Test
testCopySlideWithApplyToAllFooter()131     public void testCopySlideWithApplyToAllFooter() throws Exception {
132 
133         // add header and footer
134         app.dispatch(".uno:HeaderAndFooter");
135 
136         sdDateAndTimeFooterOnSlide.check();
137         sdFixedDateAndTimeFooterOnSlide.check();
138         sdFixedDateAndTimeOnSlideInput.setText("Fix Date: 20120323");
139         sdFooterTextOnSlide.check();
140         sdFooterTextOnSlideInput.setText("Footer Test");
141         sdSlideNumAsFooterOnSlide.check();
142         sdApplyToAllButtonOnSlideFooter.click();
143 
144         impressSlideSorter.focus();
145         for (int j = 0; j <= 2; j++) {
146             typeKeys("<up>");
147         }
148         app.dispatch(".uno:HeaderAndFooter");
149         sdSlideNumAsFooterOnSlide.uncheck();
150         sdApplyButtonOnSlideFooter.click();
151 
152         // paste to the same file
153         impressSlideSorter.focus();
154         typeKeys("<up>");
155         app.dispatch(".uno:Copy");
156         typeKeys("<down>");
157         app.dispatch(".uno:Paste");
158 
159         app.dispatch(".uno:HeaderAndFooter");
160         assertEquals("Fix Date: 20120323", sdFixedDateAndTimeOnSlideInput.getText());
161         assertEquals("Footer Test", sdFooterTextOnSlideInput.getText());
162         assertEquals(true, sdSlideNumAsFooterOnSlide.isChecked());
163         sdHeaderAndFooterDlgSlideTab.cancel();
164 
165         // paste to different file
166         app.dispatch("private:factory/simpress?slot=6686");
167         presentationWizard.ok();
168         app.dispatch(".uno:Paste");
169         impressSlideSorter.focus();
170         typeKeys("<down>");
171         sleep(1); // If no sleep, error occur
172 
173         app.dispatch(".uno:HeaderAndFooter");
174         assertEquals("Fix Date: 20120323", sdFixedDateAndTimeOnSlideInput.getText());
175         assertEquals("Footer Test", sdFooterTextOnSlideInput.getText());
176         assertEquals(true, sdSlideNumAsFooterOnSlide.isChecked());
177         sdHeaderAndFooterDlgSlideTab.cancel();
178     }
179 
180     /**
181      * Test Copy slide with Notes Footer to same file and different file
182      *
183      * @throws Exception
184      */
185     @Test
testCopySlideWithNotesHeaderFooter()186     public void testCopySlideWithNotesHeaderFooter() throws Exception {
187 
188         // add header and footer
189         app.dispatch(".uno:HeaderAndFooter");
190         sdHeaderAndFooterOnNotesTabPage.select();
191         sdHeaderTextOnNotes.check();
192         sdHeaderTextOnNotesInput.setText("Header Test");
193         sdDateAndTimeFooterOnSlide.check();
194         sdFixedDateAndTimeFooterOnSlide.check();
195         sdFixedDateAndTimeOnSlideInput.setText("Fix Date: 20120329");
196         sdFooterTextOnSlide.check();
197         sdFooterTextOnSlideInput.setText("Footer Test");
198         sdSlideNumAsFooterOnSlide.check();
199         sdApplyToAllButtonOnSlideFooter.click();
200 
201         // paste to the same file
202         impressSlideSorter.focus();
203         typeKeys("<up>");
204         app.dispatch(".uno:Copy");
205         typeKeys("<down>");
206         app.dispatch(".uno:Paste");
207 
208         app.dispatch(".uno:HeaderAndFooter");
209         sdHeaderAndFooterOnNotesTabPage.select();
210         assertEquals("Header Test", sdHeaderTextOnNotesInput.getText());
211         assertEquals("Fix Date: 20120329", sdFixedDateAndTimeOnSlideInput.getText());
212         assertEquals("Footer Test", sdFooterTextOnSlideInput.getText());
213         assertEquals(true, sdSlideNumAsFooterOnSlide.isChecked());
214         sdHeaderAndFooterOnNotesTabPage.cancel();
215 
216         // paste to different file
217         impress.focus();
218         app.dispatch("private:factory/simpress?slot=6686");
219         presentationWizard.ok();
220         app.dispatch(".uno:Paste");
221         impressSlideSorter.focus();
222         typeKeys("<down>");
223         SDTool.getActiveView().activate();
224         app.dispatch(".uno:HeaderAndFooter");
225         sdHeaderAndFooterOnNotesTabPage.select();
226         assertEquals("Header Test", sdHeaderTextOnNotesInput.getText());
227         assertEquals("Fix Date: 20120329", sdFixedDateAndTimeOnSlideInput.getText());
228         assertEquals("Footer Test", sdFooterTextOnSlideInput.getText());
229         assertEquals(true, sdSlideNumAsFooterOnSlide.isChecked());
230         sdHeaderAndFooterOnNotesTabPage.cancel();
231     }
232 
233     /**
234      * Test duplicate slide with Apply to all Footer to same file
235      *
236      * @throws Exception
237      */
238     @Test
testDuplicateSlideWithApplyToAllFooter()239     public void testDuplicateSlideWithApplyToAllFooter() throws Exception {
240 
241         // add header and footer
242         app.dispatch(".uno:HeaderAndFooter");
243 
244         sdDateAndTimeFooterOnSlide.check();
245         sdFixedDateAndTimeFooterOnSlide.check();
246         sdFixedDateAndTimeOnSlideInput.setText("Fix Date: 20120323");
247         sdFooterTextOnSlide.check();
248         sdFooterTextOnSlideInput.setText("Footer Test");
249         sdSlideNumAsFooterOnSlide.check();
250         sdApplyToAllButtonOnSlideFooter.click();
251 
252         impressSlideSorter.focus();
253         for (int j = 0; j <= 2; j++) {
254             typeKeys("<up>");
255         }
256         app.dispatch(".uno:DuplicatePage");
257         app.dispatch(".uno:HeaderAndFooter");
258         assertEquals("Fix Date: 20120323", sdFixedDateAndTimeOnSlideInput.getText());
259         assertEquals("Footer Test", sdFooterTextOnSlideInput.getText());
260         assertEquals(true, sdSlideNumAsFooterOnSlide.isChecked());
261         sdHeaderAndFooterDlgSlideTab.cancel();
262     }
263 
264     /**
265      * Test footer not show on the first slide.
266      *
267      * @throws Exception
268      */
269     @Test
testFooterNotShowOn1stSlide()270     public void testFooterNotShowOn1stSlide() throws Exception {
271 
272         // add header and footer
273         app.dispatch(".uno:HeaderAndFooter");
274         sdFooterTextOnSlide.check();
275         sdFooterTextOnSlideInput.setText("Footer Test");
276         sdFooterNotShowOn1stSlide.check();
277         sdApplyToAllButtonOnSlideFooter.click();
278 
279         // Check slide 1
280         impressSlideSorter.focus();
281         // typeKeys("<up><up><up><up><up>"); // Not stable on ubuntu10.04
282         // sleep(1); // If no sleep, error occur
283         for (int i = 0; i < 5; i++) {
284             typeKeys("<up>");
285             sleep(1);
286         }
287 
288         app.dispatch(".uno:HeaderAndFooter");
289         assertEquals(true, sdFooterNotShowOn1stSlide.isChecked());
290         assertEquals(false, sdFooterTextOnSlide.isChecked());
291         sdHeaderAndFooterDlgSlideTab.cancel();
292     }
293 
294     /**
295      * Test Insert Footer to focus slide.
296      *
297      * @throws Exception
298      */
299     @Test
testInsertApplyFooterOnSlide()300     public void testInsertApplyFooterOnSlide() throws Exception {
301 
302         // add header and footer to focus slide.
303         app.dispatch(".uno:HeaderAndFooter");
304 
305         sdDateAndTimeFooterOnSlide.check();
306         sdFixedDateAndTimeFooterOnSlide.check();
307         sdFixedDateAndTimeOnSlideInput.setText("Fix Date: 20120323");
308         sdFooterTextOnSlide.check();
309         sdFooterTextOnSlideInput.setText("Footer Test");
310         sdSlideNumAsFooterOnSlide.check();
311         sdApplyButtonOnSlideFooter.click();
312 
313         app.dispatch(".uno:HeaderAndFooter");
314         assertEquals(true, sdDateAndTimeFooterOnSlide.isChecked());
315         assertEquals(true, sdFixedDateAndTimeFooterOnSlide.isChecked());
316         assertEquals("Fix Date: 20120323", sdFixedDateAndTimeOnSlideInput.getText());
317         assertEquals(true, sdFooterTextOnSlide.isChecked());
318         assertEquals("Footer Test", sdFooterTextOnSlideInput.getText());
319         assertEquals(true, sdSlideNumAsFooterOnSlide.isChecked());
320         // close header and footer dialog.
321         sdApplyButtonOnSlideFooter.focus();
322         typeKeys("<tab>");
323         typeKeys("<enter>");
324         // end close
325 
326         impressSlideSorter.focus();
327         typeKeys("<up>");
328         sleep(1); // If no sleep, error occur
329 
330         app.dispatch(".uno:HeaderAndFooter");
331         assertEquals("", sdFixedDateAndTimeOnSlideInput.getText());
332         assertEquals("", sdFooterTextOnSlideInput.getText());
333         assertEquals(false, sdSlideNumAsFooterOnSlide.isChecked());
334         // close header and footer dialog.
335         sdApplyButtonOnSlideFooter.focus();
336         typeKeys("<tab>");
337         typeKeys("<enter>");
338         // end close
339 
340         sdInsertPageButtonOnToolbar.click();
341         app.dispatch(".uno:HeaderAndFooter");
342         assertEquals("", sdFixedDateAndTimeOnSlideInput.getText());
343         assertEquals("", sdFooterTextOnSlideInput.getText());
344         assertEquals(false, sdSlideNumAsFooterOnSlide.isChecked());
345         sdHeaderAndFooterDlgSlideTab.cancel();
346     }
347 
348     /**
349      * Test Insert Footer to Notes View
350      *
351      * @throws Exception
352      */
353     @Test
testInsertApplyToAllFooterOnNotes()354     public void testInsertApplyToAllFooterOnNotes() throws Exception {
355 
356         // add header and footer to focus slide.
357         app.dispatch(".uno:HeaderAndFooter");
358         sdHeaderAndFooterOnNotesTabPage.select();
359         sdHeaderTextOnNotes.check();
360         sdHeaderTextOnNotesInput.setText("Header Test");
361         sdDateAndTimeFooterOnSlide.check();
362         sdFixedDateAndTimeFooterOnSlide.check();
363         sdFixedDateAndTimeOnSlideInput.setText("Fix Date: 20120323");
364         sdFooterTextOnSlide.check();
365         sdFooterTextOnSlideInput.setText("Footer Test");
366         sdSlideNumAsFooterOnSlide.check();
367         sdApplyToAllButtonOnSlideFooter.click();
368 
369         app.dispatch(".uno:HeaderAndFooter");
370         sdHeaderAndFooterOnNotesTabPage.select();
371         assertEquals(true, sdHeaderTextOnNotes.isChecked());
372         assertEquals("Header Test", sdHeaderTextOnNotesInput.getText());
373         assertEquals(true, sdDateAndTimeFooterOnSlide.isChecked());
374         assertEquals(true, sdFixedDateAndTimeFooterOnSlide.isChecked());
375         assertEquals("Fix Date: 20120323", sdFixedDateAndTimeOnSlideInput.getText());
376         assertEquals(true, sdFooterTextOnSlide.isChecked());
377         assertEquals("Footer Test", sdFooterTextOnSlideInput.getText());
378         assertEquals(true, sdSlideNumAsFooterOnSlide.isChecked());
379         // close header and footer dialog.
380         sdApplyToAllButtonOnSlideFooter.focus();
381         typeKeys("<tab>");
382         typeKeys("<enter>");
383         // end close
384 
385         impressSlideSorter.focus();
386         typeKeys("<up>");
387 
388         app.dispatch(".uno:HeaderAndFooter");
389         sdHeaderAndFooterOnNotesTabPage.select();
390         assertEquals(true, sdHeaderTextOnNotes.isChecked());
391         assertEquals("Header Test", sdHeaderTextOnNotesInput.getText());
392         assertEquals(true, sdDateAndTimeFooterOnSlide.isChecked());
393         assertEquals(true, sdFixedDateAndTimeFooterOnSlide.isChecked());
394         assertEquals("Fix Date: 20120323", sdFixedDateAndTimeOnSlideInput.getText());
395         assertEquals(true, sdFooterTextOnSlide.isChecked());
396         assertEquals("Footer Test", sdFooterTextOnSlideInput.getText());
397         assertEquals(true, sdSlideNumAsFooterOnSlide.isChecked());
398         // close header and footer dialog.
399         sdApplyToAllButtonOnSlideFooter.focus();
400         typeKeys("<tab>");
401         typeKeys("<enter>");
402         // end close
403 
404         sdInsertPageButtonOnToolbar.click();
405         app.dispatch(".uno:HeaderAndFooter");
406         sdHeaderAndFooterOnNotesTabPage.select();
407         assertEquals(true, sdHeaderTextOnNotes.isChecked());
408         assertEquals("Header Test", sdHeaderTextOnNotesInput.getText());
409         assertEquals(true, sdDateAndTimeFooterOnSlide.isChecked());
410         assertEquals(true, sdFixedDateAndTimeFooterOnSlide.isChecked());
411         assertEquals("Fix Date: 20120323", sdFixedDateAndTimeOnSlideInput.getText());
412         assertEquals(true, sdFooterTextOnSlide.isChecked());
413         assertEquals("Footer Test", sdFooterTextOnSlideInput.getText());
414         assertEquals(true, sdSlideNumAsFooterOnSlide.isChecked());
415         sdHeaderAndFooterOnNotesTabPage.cancel();
416     }
417 
418     /**
419      * Test Insert Footer to Slide, use Apply to All
420      *
421      * @throws Exception
422      */
423     @Test
testInsertApplyToAllFooterOnSlide()424     public void testInsertApplyToAllFooterOnSlide() throws Exception {
425 
426         // add header and footer to focus slide.
427         app.dispatch(".uno:HeaderAndFooter");
428 
429         sdDateAndTimeFooterOnSlide.check();
430         sdFixedDateAndTimeFooterOnSlide.check();
431         sdFixedDateAndTimeOnSlideInput.setText("Fix Date: 20120323");
432         sdFooterTextOnSlide.check();
433         sdFooterTextOnSlideInput.setText("Footer Test");
434         sdSlideNumAsFooterOnSlide.check();
435         sdApplyToAllButtonOnSlideFooter.click();
436 
437         app.dispatch(".uno:HeaderAndFooter");
438         assertEquals(true, sdDateAndTimeFooterOnSlide.isChecked());
439         assertEquals(true, sdFixedDateAndTimeFooterOnSlide.isChecked());
440         assertEquals("Fix Date: 20120323", sdFixedDateAndTimeOnSlideInput.getText());
441         assertEquals(true, sdFooterTextOnSlide.isChecked());
442         assertEquals("Footer Test", sdFooterTextOnSlideInput.getText());
443         assertEquals(true, sdSlideNumAsFooterOnSlide.isChecked());
444         // close header and footer dialog.
445         sdApplyButtonOnSlideFooter.focus();
446         typeKeys("<tab>");
447         typeKeys("<enter>");
448         // end close
449 
450         impressSlideSorter.focus();
451         typeKeys("<up>");
452 
453         app.dispatch(".uno:HeaderAndFooter");
454         assertEquals(true, sdDateAndTimeFooterOnSlide.isChecked());
455         assertEquals(true, sdFixedDateAndTimeFooterOnSlide.isChecked());
456         assertEquals("Fix Date: 20120323", sdFixedDateAndTimeOnSlideInput.getText());
457         assertEquals(true, sdFooterTextOnSlide.isChecked());
458         assertEquals("Footer Test", sdFooterTextOnSlideInput.getText());
459         assertEquals(true, sdSlideNumAsFooterOnSlide.isChecked());
460         // close header and footer dialog.
461         sdApplyButtonOnSlideFooter.focus();
462         typeKeys("<tab>");
463         typeKeys("<enter>");
464         // end close
465 
466         sdInsertPageButtonOnToolbar.click();
467         app.dispatch(".uno:HeaderAndFooter");
468         assertEquals(true, sdDateAndTimeFooterOnSlide.isChecked());
469         assertEquals(true, sdFixedDateAndTimeFooterOnSlide.isChecked());
470         assertEquals("Fix Date: 20120323", sdFixedDateAndTimeOnSlideInput.getText());
471         assertEquals(true, sdFooterTextOnSlide.isChecked());
472         assertEquals("Footer Test", sdFooterTextOnSlideInput.getText());
473         assertEquals(true, sdSlideNumAsFooterOnSlide.isChecked());
474         sdHeaderAndFooterDlgSlideTab.cancel();
475     }
476 
477     /**
478      * Test Insert update automatically time footer to slides.
479      *
480      * @throws Exception
481      */
482     @Test
testInsertAutoUpdateTimeFooter()483     public void testInsertAutoUpdateTimeFooter() throws Exception {
484 
485         // add header and footer
486         app.dispatch(".uno:HeaderAndFooter");
487         sdAutoUpdateTimeFooter.check();
488         sdAutoUpdateTimeFooterType.select(7);
489         String currentTime = sdAutoUpdateTimeFooterType.getItemText(7);
490         sdApplyToAllButtonOnSlideFooter.click();
491         sleep(1);
492 
493         app.dispatch(".uno:HeaderAndFooter");
494         String updatedTime = sdAutoUpdateTimeFooterType.getItemText(7);
495         assertNotSame("Time can not update", currentTime, updatedTime);
496         sdHeaderAndFooterDlgSlideTab.cancel();
497     }
498 
499     /**
500      * Test Insert update automatically time footer to Notes view.
501      *
502      * @throws Exception
503      */
504     @Test
testInsertAutoUpdateTimeFooterOnNotes()505     public void testInsertAutoUpdateTimeFooterOnNotes() throws Exception {
506 
507         // add header and footer
508         app.dispatch(".uno:HeaderAndFooter");
509         sdHeaderAndFooterOnNotesTabPage.select();
510         sdAutoUpdateTimeFooter.check();
511         String currentTime = sdAutoUpdateTimeFooterType.getItemText(7);
512         sdApplyToAllButtonOnSlideFooter.click();
513         sleep(1);
514 
515         app.dispatch(".uno:HeaderAndFooter");
516         sdHeaderAndFooterOnNotesTabPage.select();
517         String updatedTime = sdAutoUpdateTimeFooterType.getItemText(7);
518 
519         assertNotSame("Time can not update", currentTime, updatedTime);
520         sdHeaderAndFooterOnNotesTabPage.cancel();
521     }
522 
523     /**
524      * Test Insert Header and Footer to Notes view. Save and ReOpen
525      *
526      * @throws Exception
527      */
528     @Test
testInsertHeaderFooterOnNotes()529     public void testInsertHeaderFooterOnNotes() throws Exception {
530 
531         // add header and footer
532         app.dispatch(".uno:HeaderAndFooter");
533         sdHeaderAndFooterOnNotesTabPage.select();
534         sdHeaderTextOnNotes.check();
535         sdHeaderTextOnNotesInput.setText("Header Test");
536         sdDateAndTimeFooterOnSlide.check();
537         sdFixedDateAndTimeFooterOnSlide.check();
538         sdFixedDateAndTimeOnSlideInput.setText("Fix Date: 20120329");
539         sdFooterTextOnSlide.check();
540         sdFooterTextOnSlideInput.setText("Footer Test");
541         sdSlideNumAsFooterOnSlide.check();
542         sdApplyToAllButtonOnSlideFooter.click();
543 
544         impressSlideSorter.focus();
545         typeKeys("<up>");
546 
547         app.dispatch(".uno:HeaderAndFooter");
548         sdHeaderAndFooterOnNotesTabPage.select();
549         assertEquals("Header Test", sdHeaderTextOnNotesInput.getText());
550         assertEquals("Fix Date: 20120329", sdFixedDateAndTimeOnSlideInput.getText());
551         assertEquals("Footer Test", sdFooterTextOnSlideInput.getText());
552         assertEquals(true, sdSlideNumAsFooterOnSlide.isChecked());
553         sdHeaderAndFooterOnNotesTabPage.cancel();
554 
555         // save and reopen this file
556         String saveTo = getPath("temp/" + "hello.odp");
557         FileUtil.deleteFile(saveTo);
558         saveAs(saveTo);
559         close();
560         open(saveTo);
561         impress.waitForExistence(10, 2);
562 
563         // check after reopen
564         app.dispatch(".uno:HeaderAndFooter");
565         sdHeaderAndFooterOnNotesTabPage.select();
566         assertEquals("Header Test", sdHeaderTextOnNotesInput.getText());
567         assertEquals("Fix Date: 20120329", sdFixedDateAndTimeOnSlideInput.getText());
568         assertEquals("Footer Test", sdFooterTextOnSlideInput.getText());
569         assertEquals(true, sdSlideNumAsFooterOnSlide.isChecked());
570         sdHeaderAndFooterOnNotesTabPage.cancel();
571     }
572 
573     /**
574      * Test Insert Header and Footer to Slide Save and Reopen
575      *
576      * @throws Exception
577      */
578     @Test
testInsertHeaderFooterOnSlide()579     public void testInsertHeaderFooterOnSlide() throws Exception {
580 
581         // add header and footer
582         app.dispatch(".uno:HeaderAndFooter");
583         sdDateAndTimeFooterOnSlide.check();
584         sdFixedDateAndTimeFooterOnSlide.check();
585         sdFixedDateAndTimeOnSlideInput.setText("Fix Date: 20120329");
586         sdFooterTextOnSlide.check();
587         sdFooterTextOnSlideInput.setText("Footer Test");
588         sdSlideNumAsFooterOnSlide.check();
589         sdApplyToAllButtonOnSlideFooter.click();
590 
591         impressSlideSorter.focus();
592         typeKeys("<up>");
593 
594         app.dispatch(".uno:HeaderAndFooter");
595         assertEquals("Fix Date: 20120329", sdFixedDateAndTimeOnSlideInput.getText());
596         assertEquals("Footer Test", sdFooterTextOnSlideInput.getText());
597         assertEquals(true, sdSlideNumAsFooterOnSlide.isChecked());
598 
599         // close header and footer dialog.
600         sdApplyButtonOnSlideFooter.focus();
601         typeKeys("<tab>");
602         typeKeys("<enter>");
603 
604         // save this file
605         String saveTo = getPath("temp/" + "hello.odp");
606         FileUtil.deleteFile(saveTo);
607         saveAs(saveTo);
608         close();
609         open(saveTo);
610         impress.waitForExistence(10, 2);
611 
612         // check after reopen
613         app.dispatch(".uno:HeaderAndFooter");
614         assertEquals("Fix Date: 20120329", sdFixedDateAndTimeOnSlideInput.getText());
615         assertEquals("Footer Test", sdFooterTextOnSlideInput.getText());
616         assertEquals(true, sdSlideNumAsFooterOnSlide.isChecked());
617         sdHeaderAndFooterDlgSlideTab.cancel();
618     }
619 }
620