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