1739258c9SLi Feng Wang /**************************************************************
2739258c9SLi Feng Wang  *
3739258c9SLi Feng Wang  * Licensed to the Apache Software Foundation (ASF) under one
4739258c9SLi Feng Wang  * or more contributor license agreements.  See the NOTICE file
5739258c9SLi Feng Wang  * distributed with this work for additional information
6739258c9SLi Feng Wang  * regarding copyright ownership.  The ASF licenses this file
7739258c9SLi Feng Wang  * to you under the Apache License, Version 2.0 (the
8739258c9SLi Feng Wang  * "License"); you may not use this file except in compliance
9739258c9SLi Feng Wang  * with the License.  You may obtain a copy of the License at
10739258c9SLi Feng Wang  *
11739258c9SLi Feng Wang  *   http://www.apache.org/licenses/LICENSE-2.0
12739258c9SLi Feng Wang  *
13739258c9SLi Feng Wang  * Unless required by applicable law or agreed to in writing,
14739258c9SLi Feng Wang  * software distributed under the License is distributed on an
15739258c9SLi Feng Wang  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16739258c9SLi Feng Wang  * KIND, either express or implied.  See the License for the
17739258c9SLi Feng Wang  * specific language governing permissions and limitations
18739258c9SLi Feng Wang  * under the License.
19739258c9SLi Feng Wang  *
20739258c9SLi Feng Wang  *************************************************************/
21739258c9SLi Feng Wang 
22739258c9SLi Feng Wang /**
23739258c9SLi Feng Wang  *
24739258c9SLi Feng Wang  */
25739258c9SLi Feng Wang package svt.gui.sw;
26739258c9SLi Feng Wang 
27739258c9SLi Feng Wang import static org.openoffice.test.common.Testspace.getFile;
28739258c9SLi Feng Wang import static org.openoffice.test.common.Testspace.getPath;
29739258c9SLi Feng Wang import static org.openoffice.test.common.Testspace.prepareData;
30739258c9SLi Feng Wang import static org.openoffice.test.vcl.Tester.*;
31739258c9SLi Feng Wang import static testlib.gui.AppTool.*;
32739258c9SLi Feng Wang import static testlib.gui.UIMap.*;
33739258c9SLi Feng Wang 
34739258c9SLi Feng Wang import java.io.FileOutputStream;
35739258c9SLi Feng Wang import java.io.PrintStream;
36739258c9SLi Feng Wang import java.util.HashMap;
37739258c9SLi Feng Wang 
38739258c9SLi Feng Wang import org.junit.After;
39739258c9SLi Feng Wang import org.junit.AfterClass;
40739258c9SLi Feng Wang import org.junit.Before;
41739258c9SLi Feng Wang import org.junit.BeforeClass;
42739258c9SLi Feng Wang import org.junit.Ignore;
43739258c9SLi Feng Wang import org.junit.Rule;
44739258c9SLi Feng Wang import org.junit.Test;
45739258c9SLi Feng Wang import org.junit.rules.TestName;
46739258c9SLi Feng Wang import org.openoffice.test.common.DataSheet;
47739258c9SLi Feng Wang import org.openoffice.test.common.FileUtil;
48739258c9SLi Feng Wang import org.openoffice.test.common.Logger;
49739258c9SLi Feng Wang import org.openoffice.test.common.SystemUtil;
50739258c9SLi Feng Wang import org.openoffice.test.common.Testspace;
51739258c9SLi Feng Wang 
52739258c9SLi Feng Wang public class BasicFuncOnWriter {
53739258c9SLi Feng Wang 	@Rule
54739258c9SLi Feng Wang 	public Logger log = Logger.getLogger(this);
55739258c9SLi Feng Wang 
56739258c9SLi Feng Wang 	@Rule
57739258c9SLi Feng Wang 	public TestName testname = new TestName();
58739258c9SLi Feng Wang 
59739258c9SLi Feng Wang 	private static DataSheet xmlResult;
60739258c9SLi Feng Wang 
61739258c9SLi Feng Wang 	private String pid = null;
62739258c9SLi Feng Wang 
6366d0652aSLi Feng Wang 	private static int iterator = 100;
64739258c9SLi Feng Wang 
65739258c9SLi Feng Wang 	private int i = 0;
66739258c9SLi Feng Wang 
67739258c9SLi Feng Wang 	/**
68739258c9SLi Feng Wang 	 * @throws java.lang.Exception
69739258c9SLi Feng Wang 	 */
70739258c9SLi Feng Wang 	@BeforeClass
71739258c9SLi Feng Wang 	public static void beforeClass() throws Exception {
72*688c272fSLi Feng Wang 		xmlResult = new DataSheet(getFile("output/svt_writer.xml"));
73ac2ddd9cSLi Feng Wang 		xmlResult.addRow("Data", "Method", "No", "Consumed Time(MS)", "Memory(VSZ)", "Memory(RSS)", "Handles(Windows Only)");
74739258c9SLi Feng Wang 	}
75739258c9SLi Feng Wang 
76739258c9SLi Feng Wang 	@AfterClass
77739258c9SLi Feng Wang 	public static void afterClass() throws Exception {
78739258c9SLi Feng Wang 		app.stop();
79739258c9SLi Feng Wang 	}
80739258c9SLi Feng Wang 
81739258c9SLi Feng Wang 	@Before
82739258c9SLi Feng Wang 	public void before()throws Exception{
83739258c9SLi Feng Wang 		app.start(true);
84739258c9SLi Feng Wang 	}
85739258c9SLi Feng Wang 
86739258c9SLi Feng Wang 	@Test
87739258c9SLi Feng Wang 	public void saveNewSWWithPic() throws Exception {
88739258c9SLi Feng Wang 		String pic = prepareData("image/blue_256x256.jpg");
89739258c9SLi Feng Wang 		for (i = 1; i <= iterator; i++) {
90739258c9SLi Feng Wang 			long start = System.currentTimeMillis();
91739258c9SLi Feng Wang 			createNewSW();
92739258c9SLi Feng Wang 			writer.menuItem("Insert->Picture->From File...").select();
93739258c9SLi Feng Wang 			sleep(2);
94739258c9SLi Feng Wang 			filePickerPath.setText(pic);
95739258c9SLi Feng Wang 			sleep(1);
96739258c9SLi Feng Wang 			filePickerOpen.click();
97739258c9SLi Feng Wang 			sleep(5);
98739258c9SLi Feng Wang 			typeKeys("<esc>");
99739258c9SLi Feng Wang 			sleep(2);
100739258c9SLi Feng Wang 			saveAndReopenNewSW(i);
101739258c9SLi Feng Wang 			long end = System.currentTimeMillis();
102739258c9SLi Feng Wang 			addRecord(i, start, end);
103739258c9SLi Feng Wang 		}
104739258c9SLi Feng Wang 	}
105739258c9SLi Feng Wang 
106739258c9SLi Feng Wang 
107739258c9SLi Feng Wang 	@Test
108739258c9SLi Feng Wang 	public void saveNewSWWithBullet() throws Exception {
109739258c9SLi Feng Wang 		for (i = 1; i <= iterator; i++) {
110739258c9SLi Feng Wang 			long start = System.currentTimeMillis();
111739258c9SLi Feng Wang 			createNewSW();
112739258c9SLi Feng Wang 			writer.typeKeys("The first");
113739258c9SLi Feng Wang 			writer.typeKeys("<enter>");
114739258c9SLi Feng Wang 			sleep(3);
115739258c9SLi Feng Wang 			writer.typeKeys("The second");
116739258c9SLi Feng Wang 			app.dispatch(".uno:SelectAll");
117739258c9SLi Feng Wang 			writer.menuItem("Format->Bullets and Numbering...").select();
118739258c9SLi Feng Wang 			sleep(3);
119739258c9SLi Feng Wang 			bulletPage.ok();
120739258c9SLi Feng Wang 			writer.typeKeys("<ctrl z");
121739258c9SLi Feng Wang 			sleep(1);
122739258c9SLi Feng Wang 			writer.typeKeys("<ctrl y>");
123739258c9SLi Feng Wang 			sleep(1);
124739258c9SLi Feng Wang 			writer.typeKeys("<ctrl end>");
125739258c9SLi Feng Wang 			writer.typeKeys("<enter>");
126739258c9SLi Feng Wang 			sleep(2);
127739258c9SLi Feng Wang 
128739258c9SLi Feng Wang 			writer.focus();
129739258c9SLi Feng Wang 			saveAndReopenNewSW(i);
130739258c9SLi Feng Wang 			long end = System.currentTimeMillis();
131739258c9SLi Feng Wang 			addRecord(i, start, end);
132739258c9SLi Feng Wang 		}
133739258c9SLi Feng Wang 	}
134739258c9SLi Feng Wang 
135739258c9SLi Feng Wang 	@Test
136739258c9SLi Feng Wang 	public void saveNewSWWithUnDoDelete()throws Exception{
137739258c9SLi Feng Wang 		if(!sdDrawingToolbar.exists()){
138739258c9SLi Feng Wang 			app.dispatch(".uno:AvailableToolbars?Toolbar:string=toolbar");
139739258c9SLi Feng Wang 		}
140739258c9SLi Feng Wang 		for (i = 1; i <= iterator; i++) {
141739258c9SLi Feng Wang 			long start = System.currentTimeMillis();
142739258c9SLi Feng Wang 			createNewSW();
143739258c9SLi Feng Wang 			app.dispatch(".uno:Ellipse");
144739258c9SLi Feng Wang 			writer.focus();
145739258c9SLi Feng Wang 			writer.drag(200, 200, 300, 300);
146739258c9SLi Feng Wang 			typeKeys("<Delete>");
147739258c9SLi Feng Wang 			typeKeys("<ctrl z>");
148739258c9SLi Feng Wang 			typeKeys("<ctrl y>");
149739258c9SLi Feng Wang 
150739258c9SLi Feng Wang 			saveAndReopenNewSW(i);
151739258c9SLi Feng Wang 			long end = System.currentTimeMillis();
152739258c9SLi Feng Wang 			addRecord(i, start, end);
153739258c9SLi Feng Wang 		}
154739258c9SLi Feng Wang 	}
155739258c9SLi Feng Wang 
156739258c9SLi Feng Wang 
157739258c9SLi Feng Wang 	@Test
158739258c9SLi Feng Wang 	public void saveNewSWWithSpellCheck() throws Exception {
159739258c9SLi Feng Wang 		for (i = 1; i <= iterator; i++) {
160739258c9SLi Feng Wang 			long start = System.currentTimeMillis();
161739258c9SLi Feng Wang 			createNewSW();
162739258c9SLi Feng Wang 			writer.typeKeys("goood");
163739258c9SLi Feng Wang 			sleep(2);
164739258c9SLi Feng Wang 			writer.menuItem("Tools->Spelling and Grammar...").select();
165739258c9SLi Feng Wang 			sleep(2);
166739258c9SLi Feng Wang 			spellcheckDlgSuggestionList.select(0);
167739258c9SLi Feng Wang 			spellcheckDlgIgnoreOnce.click();
168739258c9SLi Feng Wang 			activeMsgBox.ok();
169739258c9SLi Feng Wang 			sleep(2);
170739258c9SLi Feng Wang 			saveAndReopenNewSW(i);
171739258c9SLi Feng Wang 			long end = System.currentTimeMillis();
172739258c9SLi Feng Wang 			addRecord(i, start, end);
173739258c9SLi Feng Wang 		}
174739258c9SLi Feng Wang 	}
175739258c9SLi Feng Wang 
176739258c9SLi Feng Wang 	@Test
177739258c9SLi Feng Wang 	public void saveNewSWWithHeaderFooter() throws Exception {
178739258c9SLi Feng Wang 		for (i = 1; i <= iterator; i++) {
179739258c9SLi Feng Wang 			long start = System.currentTimeMillis();
180739258c9SLi Feng Wang 			createNewSW();
181739258c9SLi Feng Wang 			writer.menuItem("Insert->Header->Default").select();
182739258c9SLi Feng Wang 			sleep(2);
183739258c9SLi Feng Wang 			writer.typeKeys("Header");
184739258c9SLi Feng Wang 			sleep(2);
185739258c9SLi Feng Wang 			writer.menuItem("Insert->Footer->Default").select();
186739258c9SLi Feng Wang 			sleep(2);
187739258c9SLi Feng Wang 			writer.typeKeys("Footer");
188739258c9SLi Feng Wang 			sleep(2);
189739258c9SLi Feng Wang 			writer.typeKeys("<ctrl end>");
190739258c9SLi Feng Wang 			sleep(2);
191739258c9SLi Feng Wang 			writer.typeKeys("<enter>");
192739258c9SLi Feng Wang 			sleep(2);
193739258c9SLi Feng Wang 			saveAndReopenNewSW(i);
194739258c9SLi Feng Wang 			long end = System.currentTimeMillis();
195739258c9SLi Feng Wang 			addRecord(i, start, end);
196739258c9SLi Feng Wang 		}
197739258c9SLi Feng Wang 	}
198739258c9SLi Feng Wang 
199739258c9SLi Feng Wang 	@Test
200739258c9SLi Feng Wang 	public void saveNewSWWithFrameAnchor() throws Exception {
201739258c9SLi Feng Wang 		for (i = 1; i <= iterator; i++) {
202739258c9SLi Feng Wang 			long start = System.currentTimeMillis();
203739258c9SLi Feng Wang 			createNewSW();
204739258c9SLi Feng Wang 			writer.menuItem("Insert->Frame...").select();
205739258c9SLi Feng Wang 			sleep(2);
206739258c9SLi Feng Wang 			writerFrameDlg.ok();
207739258c9SLi Feng Wang 			writer.menuItem("Format->Anchor->To Page").select();
208739258c9SLi Feng Wang 			sleep(2);
209739258c9SLi Feng Wang 			writer.menuItem("Format->Anchor->To Paragraph").select();
210739258c9SLi Feng Wang 			sleep(2);
211739258c9SLi Feng Wang 			writer.menuItem("Format->Anchor->To Character").select();
212739258c9SLi Feng Wang 			sleep(2);
213739258c9SLi Feng Wang 			writer.menuItem("Format->Anchor->As Character").select();
214739258c9SLi Feng Wang 			sleep(2);
215739258c9SLi Feng Wang 			writer.typeKeys("<esc>");
216739258c9SLi Feng Wang 			sleep(2);
217739258c9SLi Feng Wang 			writer.typeKeys("<enter>");
218739258c9SLi Feng Wang 			sleep(2);
219739258c9SLi Feng Wang 			saveAndReopenNewSW(i);
220739258c9SLi Feng Wang 			long end = System.currentTimeMillis();
221739258c9SLi Feng Wang 			addRecord(i, start, end);
222739258c9SLi Feng Wang 		}
223739258c9SLi Feng Wang 	}
224739258c9SLi Feng Wang 
225739258c9SLi Feng Wang 	@Test
226739258c9SLi Feng Wang 	public void saveNewSWWithSDAsOLE()throws Exception{
227739258c9SLi Feng Wang 		String linkFile = prepareData("pvt/plain_200p.odp");
228739258c9SLi Feng Wang 		for (i = 1; i <= iterator; i++) {
229739258c9SLi Feng Wang 			long start = System.currentTimeMillis();
230739258c9SLi Feng Wang 			createNewSW();
231739258c9SLi Feng Wang 			app.dispatch(".uno:InsertObject");
232739258c9SLi Feng Wang 			sleep(2);
233739258c9SLi Feng Wang 			insertObject.waitForExistence(60, 2);
234739258c9SLi Feng Wang 			objectFromFile.check();
235739258c9SLi Feng Wang 			objectFilePath.setText(linkFile);
236739258c9SLi Feng Wang 			objectFileLink.check();
237739258c9SLi Feng Wang 			insertObject.ok();
238739258c9SLi Feng Wang 			sleep(10);
239739258c9SLi Feng Wang 
240739258c9SLi Feng Wang 			writer.focus();
241739258c9SLi Feng Wang 			writer.doubleClick(200, 300);
242739258c9SLi Feng Wang 			sleep(15);
243739258c9SLi Feng Wang 			writer.activate();
244739258c9SLi Feng Wang 			writer.click(10, 10);
245739258c9SLi Feng Wang 			sleep(5);
246739258c9SLi Feng Wang 
247739258c9SLi Feng Wang 			saveAndReopenNewSW(i);
248739258c9SLi Feng Wang 			long end = System.currentTimeMillis();
249739258c9SLi Feng Wang 			addRecord(i, start, end);
250739258c9SLi Feng Wang 		}
251739258c9SLi Feng Wang 	}
252739258c9SLi Feng Wang 
253739258c9SLi Feng Wang 	@Test
254739258c9SLi Feng Wang 	public void saveNewSWWithTOC() throws Exception {
255739258c9SLi Feng Wang 		for (i = 1; i <= iterator; i++) {
256739258c9SLi Feng Wang 			long start = System.currentTimeMillis();
257739258c9SLi Feng Wang 			createNewSW();
258739258c9SLi Feng Wang 			for (int j = 0; j < 6; j++) {
259739258c9SLi Feng Wang 				writer.typeKeys(String.valueOf(j + 1));
260739258c9SLi Feng Wang 				writer.typeKeys("<enter>");
261739258c9SLi Feng Wang 			}
262739258c9SLi Feng Wang 			writer.typeKeys("<ctrl home>");
263739258c9SLi Feng Wang 			for (int k = 0; k < 2; k++) {
264739258c9SLi Feng Wang 				writer.typeKeys("<shift down>");
265739258c9SLi Feng Wang 			}
266739258c9SLi Feng Wang 			if (!styleAndFormattingDlg.exists()) {
267739258c9SLi Feng Wang 				app.dispatch(".uno:DesignerDialog");
268739258c9SLi Feng Wang 				sleep(2);
269739258c9SLi Feng Wang 			}
270739258c9SLi Feng Wang 
271739258c9SLi Feng Wang 			styleAndFormattingList.doubleClick(0.5, 0.25);
272739258c9SLi Feng Wang 			sleep(2);
273739258c9SLi Feng Wang 			writer.typeKeys("<down>");
274739258c9SLi Feng Wang 			writer.typeKeys("<right>");
275739258c9SLi Feng Wang 			writer.typeKeys("<left>");
276739258c9SLi Feng Wang 			for (int k = 0; k < 2; k++) {
277739258c9SLi Feng Wang 				writer.typeKeys("<shift down>");
278739258c9SLi Feng Wang 			}
279739258c9SLi Feng Wang 			styleAndFormattingList.doubleClick(0.5, 0.3);
280739258c9SLi Feng Wang 			sleep(2);
281739258c9SLi Feng Wang 			writer.typeKeys("<ctrl home>");
282739258c9SLi Feng Wang 			sleep(2);
283739258c9SLi Feng Wang 			writer.menuItem("Insert->Indexes and Tables->Indexes and Tables...").select();
284739258c9SLi Feng Wang 			sleep(2);
285739258c9SLi Feng Wang 			insertIndexDlg.ok();
286739258c9SLi Feng Wang 			sleep(2);
287739258c9SLi Feng Wang 			writer.typeKeys("<ctrl end>");
288739258c9SLi Feng Wang 			saveAndReopenNewSW(i);
289739258c9SLi Feng Wang 			long end = System.currentTimeMillis();
290739258c9SLi Feng Wang 			addRecord(i, start, end);
291739258c9SLi Feng Wang 		}
292739258c9SLi Feng Wang 	}
293739258c9SLi Feng Wang 
294739258c9SLi Feng Wang 	@Test
295739258c9SLi Feng Wang 	public void splitMergeTableOnOpenedSW() throws Exception {
296739258c9SLi Feng Wang 		String file = prepareData("svt/swdesign.odt");
297739258c9SLi Feng Wang 		for (i = 1; i <= iterator; i++) {
298739258c9SLi Feng Wang 			long start = System.currentTimeMillis();
299739258c9SLi Feng Wang 			app.dispatch(".uno:Open");
300739258c9SLi Feng Wang 			submitOpenDlg(file);
301739258c9SLi Feng Wang 			writer.waitForExistence(10, 2);
302739258c9SLi Feng Wang 			writer.typeKeys("<down>");
303739258c9SLi Feng Wang 			writer.typeKeys("<down>");
304739258c9SLi Feng Wang 			sleep(2);
305739258c9SLi Feng Wang 
306739258c9SLi Feng Wang 			writer.menuItem("Table->Split Cells").select();
307739258c9SLi Feng Wang 			sleep(2);
308739258c9SLi Feng Wang 			writerSplitCellDlg.ok();
309739258c9SLi Feng Wang 			sleep(2);
310739258c9SLi Feng Wang 
311739258c9SLi Feng Wang 			writer.typeKeys("<shift down>");
312739258c9SLi Feng Wang 			writer.typeKeys("<shift down>");
313739258c9SLi Feng Wang 			writer.typeKeys("<shift down>");
314739258c9SLi Feng Wang 			writer.typeKeys("<shift down>");
315739258c9SLi Feng Wang 			writer.typeKeys("<shift down>");
316739258c9SLi Feng Wang 			sleep(2);
317739258c9SLi Feng Wang 			writer.menuItem("Table->Merge Cells").select();
318739258c9SLi Feng Wang 			sleep(2);
319739258c9SLi Feng Wang 
320739258c9SLi Feng Wang 			writer.typeKeys("<enter>");
321739258c9SLi Feng Wang 			closeWithoutSaveSW();
322739258c9SLi Feng Wang 			long end = System.currentTimeMillis();
323739258c9SLi Feng Wang 			addRecord(i, start, end);
324739258c9SLi Feng Wang 		}
325739258c9SLi Feng Wang 	}
326739258c9SLi Feng Wang 
327739258c9SLi Feng Wang 	@Test
328739258c9SLi Feng Wang 	public void addDelColumnsRowsInTableOnOpenedSW() throws Exception {
329739258c9SLi Feng Wang 		String file = prepareData("svt/swdesign.odt");
330739258c9SLi Feng Wang 		for (i = 1; i <= iterator; i++) {
331739258c9SLi Feng Wang 			long start = System.currentTimeMillis();
332739258c9SLi Feng Wang 			app.dispatch(".uno:Open");
333739258c9SLi Feng Wang 			submitOpenDlg(file);
334739258c9SLi Feng Wang 			writer.waitForExistence(10, 2);
335739258c9SLi Feng Wang 			writer.typeKeys("<down>");
336739258c9SLi Feng Wang 			writer.typeKeys("<down>");
337739258c9SLi Feng Wang 			sleep(2);
338739258c9SLi Feng Wang 
339739258c9SLi Feng Wang 			app.dispatch(".uno:InsertRowDialog");
340739258c9SLi Feng Wang 			writerInsertRowsDlg.ok();
341739258c9SLi Feng Wang 			sleep(2);
342739258c9SLi Feng Wang 
343739258c9SLi Feng Wang 			writer.menuItem("Table->Delete->Rows").select();
344739258c9SLi Feng Wang 			sleep(2);
345739258c9SLi Feng Wang 
346739258c9SLi Feng Wang 			app.dispatch(".uno:InsertColumnDialog");
347739258c9SLi Feng Wang 			writerInsertColumnsDlg.ok();
348739258c9SLi Feng Wang 			sleep(2);
349739258c9SLi Feng Wang 
350739258c9SLi Feng Wang 			writer.menuItem("Table->Delete->Columns").select();
351739258c9SLi Feng Wang 			sleep(2);
352739258c9SLi Feng Wang 
353739258c9SLi Feng Wang 			closeWithoutSaveSW();
354739258c9SLi Feng Wang 			long end = System.currentTimeMillis();
355739258c9SLi Feng Wang 			addRecord(i, start, end);
356739258c9SLi Feng Wang 		}
357739258c9SLi Feng Wang 	}
358739258c9SLi Feng Wang 
359739258c9SLi Feng Wang 	@Test
360739258c9SLi Feng Wang 	public void setParaPropertoesOnOpenedSW() throws Exception {
361739258c9SLi Feng Wang 		String file = prepareData("pvt/plain_200p.odt");
362739258c9SLi Feng Wang 		for (i = 1; i <= iterator; i++) {
363739258c9SLi Feng Wang 			long start = System.currentTimeMillis();
364739258c9SLi Feng Wang 			app.dispatch(".uno:Open");
365739258c9SLi Feng Wang 			submitOpenDlg(file);
366739258c9SLi Feng Wang 			writer.waitForExistence(10, 2);
367739258c9SLi Feng Wang 			writer.focus();
368739258c9SLi Feng Wang 			app.dispatch(".uno:ParagraphDialog");
369739258c9SLi Feng Wang 			alignPage.select();
370739258c9SLi Feng Wang 			alignPageRight.check();
371739258c9SLi Feng Wang 			sleep(2);
372739258c9SLi Feng Wang 			alignPageVerticalAlign.select("Bottom");
373739258c9SLi Feng Wang 			sleep(2);
374739258c9SLi Feng Wang 			alignPage.ok();
375739258c9SLi Feng Wang 			sleep(2);
376739258c9SLi Feng Wang 			writer.typeKeys("<ctrl end>");
377739258c9SLi Feng Wang 			sleep(5);
378739258c9SLi Feng Wang 
379739258c9SLi Feng Wang 			closeWithoutSaveSW();
380739258c9SLi Feng Wang 			long end = System.currentTimeMillis();
381739258c9SLi Feng Wang 			addRecord(i, start, end);
382739258c9SLi Feng Wang 		}
383739258c9SLi Feng Wang 	}
384739258c9SLi Feng Wang 
385739258c9SLi Feng Wang 	@Test
386739258c9SLi Feng Wang 	public void InsertPicToOpenedSW() throws Exception {
387739258c9SLi Feng Wang 		String file = prepareData("pvt/plain_200p.odt");
388739258c9SLi Feng Wang 		String pic = prepareData("image/blue_256x256.jpg");
389739258c9SLi Feng Wang 		for (i = 1; i <= iterator; i++) {
390739258c9SLi Feng Wang 			long start = System.currentTimeMillis();
391739258c9SLi Feng Wang 			app.dispatch(".uno:Open");
392739258c9SLi Feng Wang 			submitOpenDlg(file);
393739258c9SLi Feng Wang 			writer.waitForExistence(10, 2);
394739258c9SLi Feng Wang 			writer.focus();
395739258c9SLi Feng Wang 			writer.menuItem("Insert->Picture->From File...").select();
396739258c9SLi Feng Wang 			sleep(2);
397739258c9SLi Feng Wang 			filePickerPath.setText(pic);
398739258c9SLi Feng Wang 			sleep(1);
399739258c9SLi Feng Wang 			filePickerOpen.click();
400739258c9SLi Feng Wang 			sleep(5);
401739258c9SLi Feng Wang 			writer.typeKeys("<esc>");
402739258c9SLi Feng Wang 			sleep(2);
403739258c9SLi Feng Wang 			closeWithoutSaveSW();
404739258c9SLi Feng Wang 			long end = System.currentTimeMillis();
405739258c9SLi Feng Wang 			addRecord(i, start, end);
406739258c9SLi Feng Wang 		}
407739258c9SLi Feng Wang 	}
408739258c9SLi Feng Wang 
409739258c9SLi Feng Wang 	@Test
410739258c9SLi Feng Wang 	public void InsertOLEToOpenedSW() throws Exception {
411739258c9SLi Feng Wang 		String file = prepareData("pvt/plain_200p.odt");
412739258c9SLi Feng Wang 		for (i = 1; i <= iterator; i++) {
413739258c9SLi Feng Wang 			long start = System.currentTimeMillis();
414739258c9SLi Feng Wang 			app.dispatch(".uno:Open");
415739258c9SLi Feng Wang 			submitOpenDlg(file);
416739258c9SLi Feng Wang 			writer.waitForExistence(10, 2);
417739258c9SLi Feng Wang 			writer.focus();
418739258c9SLi Feng Wang 			app.dispatch(".uno:InsertObject");
419739258c9SLi Feng Wang 			sleep(2);
420739258c9SLi Feng Wang 			insertObject.ok();
421739258c9SLi Feng Wang 			sleep(10);
422739258c9SLi Feng Wang 			typeKeys("<esc>");
423739258c9SLi Feng Wang 			sleep(5);
424739258c9SLi Feng Wang 			typeKeys("<esc>");
425739258c9SLi Feng Wang 			sleep(5);
426739258c9SLi Feng Wang 			closeWithoutSaveSW();
427739258c9SLi Feng Wang 			long end = System.currentTimeMillis();
428739258c9SLi Feng Wang 			addRecord(i, start, end);
429739258c9SLi Feng Wang 		}
430739258c9SLi Feng Wang 	}
431739258c9SLi Feng Wang 
432739258c9SLi Feng Wang 	@Test
433739258c9SLi Feng Wang 	public void InsertChartToOpenedSW() throws Exception {
434739258c9SLi Feng Wang 		String file = prepareData("pvt/plain_200p.odt");
435739258c9SLi Feng Wang 		for (i = 1; i <= iterator; i++) {
436739258c9SLi Feng Wang 			long start = System.currentTimeMillis();
437739258c9SLi Feng Wang 			app.dispatch(".uno:Open");
438739258c9SLi Feng Wang 			submitOpenDlg(file);
439739258c9SLi Feng Wang 			writer.waitForExistence(10, 2);
440739258c9SLi Feng Wang 			writer.focus();
441ac2ddd9cSLi Feng Wang 			app.dispatch(".uno:InsertObjectChart");
442ac2ddd9cSLi Feng Wang //			writer.menuItem("Insert->Object->Chart...").select();
443739258c9SLi Feng Wang 			sleep(5);
444739258c9SLi Feng Wang 			typeKeys("<esc>");
445739258c9SLi Feng Wang 			sleep(5);
446739258c9SLi Feng Wang 			typeKeys("<esc>");
447739258c9SLi Feng Wang 			sleep(5);
448739258c9SLi Feng Wang 			typeKeys("<esc>");
449739258c9SLi Feng Wang 			sleep(5);
450739258c9SLi Feng Wang 			closeWithoutSaveSW();
451739258c9SLi Feng Wang 			long end = System.currentTimeMillis();
452739258c9SLi Feng Wang 			addRecord(i, start, end);
453739258c9SLi Feng Wang 		}
454739258c9SLi Feng Wang 	}
455739258c9SLi Feng Wang 
456739258c9SLi Feng Wang 	@Test
457739258c9SLi Feng Wang 	public void openSWWithXForm()throws Exception{
458739258c9SLi Feng Wang 		String file = prepareData("svt/sickness_self-certification_meory issue.odt");
459739258c9SLi Feng Wang 		for (i = 1; i <= iterator; i++) {
460739258c9SLi Feng Wang 			long start = System.currentTimeMillis();
461739258c9SLi Feng Wang 			app.dispatch(".uno:Open");
462739258c9SLi Feng Wang 			submitOpenDlg(file);
463739258c9SLi Feng Wang 			writer.waitForExistence(10, 2);
464739258c9SLi Feng Wang 			app.dispatch(".uno:CloseDoc");
465739258c9SLi Feng Wang 
466739258c9SLi Feng Wang 			long end = System.currentTimeMillis();
467739258c9SLi Feng Wang 			addRecord(i, start, end);
468739258c9SLi Feng Wang 		}
469739258c9SLi Feng Wang 	}
470739258c9SLi Feng Wang 
471739258c9SLi Feng Wang 	@Test
472739258c9SLi Feng Wang 	public void openSWWithSecuritySignature()throws Exception{
473739258c9SLi Feng Wang 		String file = prepareData("svt/howtouse.odt");
474739258c9SLi Feng Wang 		for (i = 1; i <= iterator; i++) {
475739258c9SLi Feng Wang 			long start = System.currentTimeMillis();
476739258c9SLi Feng Wang 			app.dispatch(".uno:Open");
477739258c9SLi Feng Wang 			submitOpenDlg(file);
478739258c9SLi Feng Wang 			writer.waitForExistence(10, 2);
479739258c9SLi Feng Wang 			app.dispatch(".uno:CloseDoc");
480739258c9SLi Feng Wang 
481739258c9SLi Feng Wang 			long end = System.currentTimeMillis();
482739258c9SLi Feng Wang 			addRecord(i, start, end);
483739258c9SLi Feng Wang 		}
484739258c9SLi Feng Wang 	}
485739258c9SLi Feng Wang 
486739258c9SLi Feng Wang 
487739258c9SLi Feng Wang 	private void createNewSW() {
488739258c9SLi Feng Wang 		app.dispatch("private:factory/swriter");
489739258c9SLi Feng Wang 	}
490739258c9SLi Feng Wang 
491739258c9SLi Feng Wang 	private void saveAndReopenNewSW(int iterator) {
492739258c9SLi Feng Wang 		String saveTo = getPath("temp/" + "tempSW_New" + iterator + ".odt");
493739258c9SLi Feng Wang 		writer.menuItem("File->Save As...").select();
494739258c9SLi Feng Wang 		FileUtil.deleteFile(saveTo);
495739258c9SLi Feng Wang 		submitSaveDlg(saveTo);
496739258c9SLi Feng Wang 		if (activeMsgBox.exists()) {
497739258c9SLi Feng Wang 			activeMsgBox.yes();
498739258c9SLi Feng Wang 			sleep(2);
499739258c9SLi Feng Wang 		}
500739258c9SLi Feng Wang 		app.dispatch(".uno:CloseDoc");
501739258c9SLi Feng Wang 		startCenterOpenButton.waitForExistence(30, 2);
502739258c9SLi Feng Wang 		startCenterOpenButton.click();
503739258c9SLi Feng Wang 		submitOpenDlg(saveTo);
504739258c9SLi Feng Wang 		sleep(1);
505739258c9SLi Feng Wang 		app.dispatch(".uno:CloseDoc");
506739258c9SLi Feng Wang 	}
507739258c9SLi Feng Wang 
508739258c9SLi Feng Wang 	private void closeWithoutSaveSW() {
509739258c9SLi Feng Wang 		writer.menuItem("File->Close").select();
510739258c9SLi Feng Wang 		if (activeMsgBox.exists()) {
511739258c9SLi Feng Wang 			activeMsgBox.no();
512739258c9SLi Feng Wang 			sleep(2);
513739258c9SLi Feng Wang 		}
514739258c9SLi Feng Wang 	}
515739258c9SLi Feng Wang 
516739258c9SLi Feng Wang 	private void addRecord(int i, long start, long end) {
517ac2ddd9cSLi Feng Wang 		HashMap<String, Object>  perf = aoo.getPerfData();
518ac2ddd9cSLi Feng Wang 		xmlResult.addRow("Data",testname.getMethodName(), i, (end - start),
519ac2ddd9cSLi Feng Wang 				perf.get("vsz"), perf.get("rss"), perf.get("handles"));
520739258c9SLi Feng Wang 	}
521739258c9SLi Feng Wang 
522739258c9SLi Feng Wang }
523