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