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