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 
26739258c9SLi Feng Wang package svt.gui.sc;
27739258c9SLi Feng Wang 
28bc99f727SLiu Zhe import static org.openoffice.test.common.Testspace.getFile;
29bc99f727SLiu Zhe import static org.openoffice.test.common.Testspace.getPath;
30bc99f727SLiu Zhe import static org.openoffice.test.common.Testspace.prepareData;
31bc99f727SLiu Zhe import static org.openoffice.test.vcl.Tester.sleep;
32bc99f727SLiu Zhe import static testlib.gui.AppTool.submitOpenDlg;
33bc99f727SLiu Zhe import static testlib.gui.AppTool.submitSaveDlg;
34bc99f727SLiu Zhe import static testlib.gui.AppTool.typeKeys;
35bc99f727SLiu Zhe import static testlib.gui.UIMap.activeMsgBox;
36bc99f727SLiu Zhe import static testlib.gui.UIMap.aoo;
37bc99f727SLiu Zhe import static testlib.gui.UIMap.app;
38bc99f727SLiu Zhe import static testlib.gui.UIMap.calc;
39bc99f727SLiu Zhe import static testlib.gui.UIMap.chartWizard;
40bc99f727SLiu Zhe import static testlib.gui.UIMap.filePickerOpen;
41bc99f727SLiu Zhe import static testlib.gui.UIMap.filePickerPath;
42bc99f727SLiu Zhe import static testlib.gui.UIMap.filterValue1;
43bc99f727SLiu Zhe import static testlib.gui.UIMap.fontworkGalleryDlg;
44bc99f727SLiu Zhe import static testlib.gui.UIMap.scAfterCurrentSheet;
45bc99f727SLiu Zhe import static testlib.gui.UIMap.scFormatCode;
46bc99f727SLiu Zhe import static testlib.gui.UIMap.scInsertSheetDlg;
47bc99f727SLiu Zhe import static testlib.gui.UIMap.scNewSheetName;
48bc99f727SLiu Zhe import static testlib.gui.UIMap.scPrintArea;
49bc99f727SLiu Zhe import static testlib.gui.UIMap.scPrintAreaType;
50bc99f727SLiu Zhe import static testlib.gui.UIMap.scValidityCriteriaAllowList;
51bc99f727SLiu Zhe import static testlib.gui.UIMap.scValidityCriteriaTabpage;
52bc99f727SLiu Zhe import static testlib.gui.UIMap.scValidityDecimalCompareOperator;
53bc99f727SLiu Zhe import static testlib.gui.UIMap.scValidityErrorAlertTabPage;
54bc99f727SLiu Zhe import static testlib.gui.UIMap.scValidityErrorMessage;
55bc99f727SLiu Zhe import static testlib.gui.UIMap.scValidityErrorMessageTitle;
56bc99f727SLiu Zhe import static testlib.gui.UIMap.scValidityShowErrorMessage;
57bc99f727SLiu Zhe import static testlib.gui.UIMap.scValiditySourceInput;
58bc99f727SLiu Zhe import static testlib.gui.UIMap.sortOptionsPage;
59bc99f727SLiu Zhe import static testlib.gui.UIMap.sortOptionsPageRangeContainsColumnLabels;
60bc99f727SLiu Zhe import static testlib.gui.UIMap.sortPage;
61bc99f727SLiu Zhe import static testlib.gui.UIMap.sortPageAscending1;
62bc99f727SLiu Zhe import static testlib.gui.UIMap.sortPageBy1;
63bc99f727SLiu Zhe import static testlib.gui.UIMap.standardFilterDlg;
64bc99f727SLiu Zhe import static testlib.gui.UIMap.startCenterOpenButton;
65739258c9SLi Feng Wang 
66739258c9SLi Feng Wang import java.util.HashMap;
67*122356beSHerbert Dürr import java.util.logging.Level;
68739258c9SLi Feng Wang 
69739258c9SLi Feng Wang import org.junit.AfterClass;
70739258c9SLi Feng Wang import org.junit.Before;
71739258c9SLi Feng Wang import org.junit.BeforeClass;
72739258c9SLi Feng Wang import org.junit.Rule;
73739258c9SLi Feng Wang import org.junit.Test;
74739258c9SLi Feng Wang import org.junit.rules.TestName;
75739258c9SLi Feng Wang import org.openoffice.test.common.DataSheet;
76739258c9SLi Feng Wang import org.openoffice.test.common.FileUtil;
77739258c9SLi Feng Wang import org.openoffice.test.common.Logger;
78739258c9SLi Feng Wang 
79739258c9SLi Feng Wang import testlib.gui.SCTool;
80739258c9SLi Feng Wang 
81739258c9SLi Feng Wang public class BasicFuncOnCalc {
82739258c9SLi Feng Wang 	@Rule
83739258c9SLi Feng Wang 	public Logger log = Logger.getLogger(this);
84739258c9SLi Feng Wang 
85739258c9SLi Feng Wang 	@Rule
86739258c9SLi Feng Wang 	public TestName testname = new TestName();
87739258c9SLi Feng Wang 
88739258c9SLi Feng Wang 	private static DataSheet xmlResult;
89739258c9SLi Feng Wang 
9066d0652aSLi Feng Wang 	private static int iterator = 100;
91739258c9SLi Feng Wang 
92739258c9SLi Feng Wang 	private int i = 0;
93739258c9SLi Feng Wang 
94739258c9SLi Feng Wang 	/**
95739258c9SLi Feng Wang 	 * @throws java.lang.Exception
96739258c9SLi Feng Wang 	 */
97739258c9SLi Feng Wang 	@BeforeClass
beforeClass()98739258c9SLi Feng Wang 	public static void beforeClass() throws Exception {
99688c272fSLi Feng Wang 		xmlResult = new DataSheet(getFile("output/svt_calc.xml"));
100ac2ddd9cSLi Feng Wang 		xmlResult.addRow("Data", "Method", "No", "Consumed Time(MS)", "Memory(VSZ)", "Memory(RSS)", "Handles(Windows Only)");
101739258c9SLi Feng Wang 	}
102739258c9SLi Feng Wang 
103739258c9SLi Feng Wang 	@AfterClass
afterClass()104739258c9SLi Feng Wang 	public static void afterClass() throws Exception {
105739258c9SLi Feng Wang 		app.stop();
106739258c9SLi Feng Wang 	}
107739258c9SLi Feng Wang 
108739258c9SLi Feng Wang 	@Before
before()109739258c9SLi Feng Wang 	public void before()throws Exception{
110739258c9SLi Feng Wang 		app.start(true);
111739258c9SLi Feng Wang 	}
112739258c9SLi Feng Wang 
113739258c9SLi Feng Wang 
114739258c9SLi Feng Wang 	@Test
saveNewSCWithNumberFormat()115739258c9SLi Feng Wang 	public void saveNewSCWithNumberFormat() {
116739258c9SLi Feng Wang 		for (i = 1; i <= iterator; i++) {
117739258c9SLi Feng Wang 			long start = System.currentTimeMillis();
118739258c9SLi Feng Wang 			createNewSC();
119739258c9SLi Feng Wang 			SCTool.selectRange("A1");
120739258c9SLi Feng Wang 			typeKeys("0.3");
121739258c9SLi Feng Wang 			sleep(1);
122739258c9SLi Feng Wang 			app.dispatch(".uno:FormatCellDialog");
123739258c9SLi Feng Wang 			sleep(2);
124739258c9SLi Feng Wang 			scFormatCode.setText("0%");
125739258c9SLi Feng Wang 			typeKeys("<enter>");
126739258c9SLi Feng Wang 			sleep(1);
127739258c9SLi Feng Wang 			saveAndReopenNewSC(i);
128739258c9SLi Feng Wang 			long end = System.currentTimeMillis();
129739258c9SLi Feng Wang 			addRecord(i, start, end);
130739258c9SLi Feng Wang 		}
131739258c9SLi Feng Wang 	}
132739258c9SLi Feng Wang 
133739258c9SLi Feng Wang 	@Test
saveNewSCWithPrintRange()134739258c9SLi Feng Wang 	public void saveNewSCWithPrintRange() throws Exception {
135739258c9SLi Feng Wang 		for (i = 1; i <= iterator; i++) {
136739258c9SLi Feng Wang 			long start = System.currentTimeMillis();
137739258c9SLi Feng Wang 			createNewSC();
138739258c9SLi Feng Wang 			app.dispatch(".uno:EditPrintArea");
139739258c9SLi Feng Wang 			sleep(1);
140739258c9SLi Feng Wang 			scPrintAreaType.select("- user defined -");
141739258c9SLi Feng Wang 			scPrintArea.setText("$A$1:$C$4");
142739258c9SLi Feng Wang 			typeKeys("<enter>");
143739258c9SLi Feng Wang 			SCTool.selectRange("A1");
144739258c9SLi Feng Wang 			typeKeys("test");
145739258c9SLi Feng Wang 			saveAndReopenNewSC(i);
146739258c9SLi Feng Wang 			long end = System.currentTimeMillis();
147739258c9SLi Feng Wang 			addRecord(i, start, end);
148739258c9SLi Feng Wang 		}
149739258c9SLi Feng Wang 	}
150739258c9SLi Feng Wang 
151739258c9SLi Feng Wang 	@Test
saveNewSCWithText()152739258c9SLi Feng Wang 	public void saveNewSCWithText() throws Exception {
153739258c9SLi Feng Wang 		for (i = 1; i <= iterator; i++) {
154739258c9SLi Feng Wang 			long start = System.currentTimeMillis();
155739258c9SLi Feng Wang 			createNewSC();
156739258c9SLi Feng Wang 			SCTool.selectRange("A1");
157739258c9SLi Feng Wang 			typeKeys("test");
158739258c9SLi Feng Wang 			saveAndReopenNewSC(i);
159739258c9SLi Feng Wang 			long end = System.currentTimeMillis();
160739258c9SLi Feng Wang 			addRecord(i, start, end);
161739258c9SLi Feng Wang 		}
162739258c9SLi Feng Wang 	}
163739258c9SLi Feng Wang 
164739258c9SLi Feng Wang 	@Test
saveNewSCWithDataSort()165739258c9SLi Feng Wang 	public void saveNewSCWithDataSort() throws Exception {
166739258c9SLi Feng Wang 		for (i = 1; i <= iterator; i++) {
167739258c9SLi Feng Wang 			long start = System.currentTimeMillis();
168739258c9SLi Feng Wang 			createNewSC();
169739258c9SLi Feng Wang 			SCTool.selectRange("A1");
170739258c9SLi Feng Wang 			typeKeys("3<down>2<down>5<down>1<down>6<down>4<down>10<down>8<down>9<down>7");
171739258c9SLi Feng Wang 			sleep(1);
172739258c9SLi Feng Wang 			app.dispatch(".uno:DataSort");
173739258c9SLi Feng Wang 			sortOptionsPage.select();
174739258c9SLi Feng Wang 			sortOptionsPageRangeContainsColumnLabels.uncheck();
175739258c9SLi Feng Wang 			sortPage.select();
176739258c9SLi Feng Wang 			sortPageBy1.select(1); // "Column A"
177739258c9SLi Feng Wang 			sortPageAscending1.check();
178739258c9SLi Feng Wang 			sortPage.ok();
179739258c9SLi Feng Wang 			saveAndReopenNewSC(i);
180739258c9SLi Feng Wang 			long end = System.currentTimeMillis();
181739258c9SLi Feng Wang 			addRecord(i, start, end);
182739258c9SLi Feng Wang 		}
183739258c9SLi Feng Wang 	}
184739258c9SLi Feng Wang 
185739258c9SLi Feng Wang 	@Test
saveNewSCWithInsertSheets()186739258c9SLi Feng Wang 	public void saveNewSCWithInsertSheets() throws Exception {
187739258c9SLi Feng Wang 		for (i = 1; i <= iterator; i++) {
188739258c9SLi Feng Wang 			long start = System.currentTimeMillis();
189739258c9SLi Feng Wang 			createNewSC();
190739258c9SLi Feng Wang 			app.dispatch(".uno:Insert");
191739258c9SLi Feng Wang 			scAfterCurrentSheet.check();
192739258c9SLi Feng Wang 			scNewSheetName.setText("Instant Filter");
193739258c9SLi Feng Wang 			scInsertSheetDlg.ok();
194739258c9SLi Feng Wang 			sleep(5);
195739258c9SLi Feng Wang 			saveAndReopenNewSC(i);
196739258c9SLi Feng Wang 			long end = System.currentTimeMillis();
197739258c9SLi Feng Wang 			addRecord(i, start, end);
198739258c9SLi Feng Wang 		}
199739258c9SLi Feng Wang 	}
200739258c9SLi Feng Wang 
201739258c9SLi Feng Wang 	@Test
saveNewSCWithStandardFilter()202739258c9SLi Feng Wang 	public void saveNewSCWithStandardFilter() throws Exception {
203739258c9SLi Feng Wang 		for (i = 1; i <= iterator; i++) {
204739258c9SLi Feng Wang 			long start = System.currentTimeMillis();
205739258c9SLi Feng Wang 			createNewSC();
206739258c9SLi Feng Wang 			SCTool.selectRange("A1");
207739258c9SLi Feng Wang 			typeKeys("A<down>1<down>2<down>3<down>1<down>2<down>3<down>1<down>2<down>3");
208739258c9SLi Feng Wang 			sleep(1);
209739258c9SLi Feng Wang 			SCTool.selectRange("A1");
210739258c9SLi Feng Wang 			app.dispatch(".uno:DataFilterStandardFilter");
211739258c9SLi Feng Wang 			sleep(2);
212739258c9SLi Feng Wang 			filterValue1.setText("1");
213739258c9SLi Feng Wang 			standardFilterDlg.ok();
214739258c9SLi Feng Wang 			saveAndReopenNewSC(i);
215739258c9SLi Feng Wang 			long end = System.currentTimeMillis();
216739258c9SLi Feng Wang 			addRecord(i, start, end);
217739258c9SLi Feng Wang 		}
218739258c9SLi Feng Wang 	}
219739258c9SLi Feng Wang 
220739258c9SLi Feng Wang 	@Test
saveNewSCWithInsertPic()221739258c9SLi Feng Wang 	public void saveNewSCWithInsertPic() throws Exception {
222739258c9SLi Feng Wang 		String pic = prepareData("image/blue_256x256.jpg");
223739258c9SLi Feng Wang 		for (i = 1; i <= iterator; i++) {
224739258c9SLi Feng Wang 			long start = System.currentTimeMillis();
225739258c9SLi Feng Wang 			createNewSC();
226739258c9SLi Feng Wang 			calc.menuItem("Insert->Picture->From File...").select();
227739258c9SLi Feng Wang 			sleep(2);
228739258c9SLi Feng Wang 			filePickerPath.setText(pic);
229739258c9SLi Feng Wang 			sleep(1);
230739258c9SLi Feng Wang 			filePickerOpen.click();
231739258c9SLi Feng Wang 			sleep(2);
232739258c9SLi Feng Wang 			typeKeys("<esc>");
233739258c9SLi Feng Wang 			sleep(2);
234739258c9SLi Feng Wang 			saveAndReopenNewSC(i);
235739258c9SLi Feng Wang 			long end = System.currentTimeMillis();
236739258c9SLi Feng Wang 			addRecord(i, start, end);
237739258c9SLi Feng Wang 		}
238739258c9SLi Feng Wang 	}
239739258c9SLi Feng Wang 
240739258c9SLi Feng Wang 	@Test
saveNewSCWithValidaty()241739258c9SLi Feng Wang 	public void saveNewSCWithValidaty() throws Exception {
242739258c9SLi Feng Wang 		for (i = 1; i <= iterator; i++) {
243739258c9SLi Feng Wang 			long start = System.currentTimeMillis();
244739258c9SLi Feng Wang 			createNewSC();
245739258c9SLi Feng Wang 			app.dispatch(".uno:Insert");
246739258c9SLi Feng Wang 			scAfterCurrentSheet.check();
247739258c9SLi Feng Wang 			scNewSheetName.setText("Data Validate");
248739258c9SLi Feng Wang 			scInsertSheetDlg.ok();
249739258c9SLi Feng Wang 			sleep(5);
250739258c9SLi Feng Wang 			SCTool.selectRange("B2:E5");
251739258c9SLi Feng Wang 			sleep(2);
252739258c9SLi Feng Wang 
253739258c9SLi Feng Wang 			app.dispatch(".uno:Validation");
254739258c9SLi Feng Wang 			scValidityCriteriaTabpage.select();
255739258c9SLi Feng Wang 			scValidityCriteriaAllowList.select("Whole Numbers");
256739258c9SLi Feng Wang 			scValidityDecimalCompareOperator.select("greater than");
257739258c9SLi Feng Wang 			scValiditySourceInput.setText("1");
258739258c9SLi Feng Wang 			scValidityErrorAlertTabPage.select();
259739258c9SLi Feng Wang 			scValidityShowErrorMessage.check();
260739258c9SLi Feng Wang 			scValidityErrorMessageTitle.setText("Error");
261739258c9SLi Feng Wang 			scValidityErrorMessage.setText("Must greater than 1");
262739258c9SLi Feng Wang 			scValidityErrorAlertTabPage.ok();
263739258c9SLi Feng Wang 
264739258c9SLi Feng Wang 			SCTool.selectRange("B2");
265739258c9SLi Feng Wang 			typeKeys("0<enter>");
266739258c9SLi Feng Wang 			activeMsgBox.ok();
267739258c9SLi Feng Wang 			sleep(1);
268739258c9SLi Feng Wang 
269739258c9SLi Feng Wang 			SCTool.selectRange("E5");
270739258c9SLi Feng Wang 			typeKeys("1<enter>");
271739258c9SLi Feng Wang 			activeMsgBox.ok();
272739258c9SLi Feng Wang 			sleep(1);
273739258c9SLi Feng Wang 
274739258c9SLi Feng Wang 			SCTool.selectRange("E2");
275739258c9SLi Feng Wang 			typeKeys("2<enter>");
276739258c9SLi Feng Wang 			sleep(5);
277739258c9SLi Feng Wang 			saveAndReopenNewSC(i);
278739258c9SLi Feng Wang 			long end = System.currentTimeMillis();
279739258c9SLi Feng Wang 			addRecord(i, start, end);
280739258c9SLi Feng Wang 		}
281739258c9SLi Feng Wang 	}
282739258c9SLi Feng Wang 
283739258c9SLi Feng Wang 	@Test
insertChartToOpenedSC()284739258c9SLi Feng Wang 	public void insertChartToOpenedSC() throws Exception {
285739258c9SLi Feng Wang 		String file = prepareData("pvt/plain_11s.ods");
286739258c9SLi Feng Wang 		String[][] inputStr = { { "Area", "Item", "Count" }, { "1", "2", "3" },
287739258c9SLi Feng Wang 				{ "4", "5", "6" }, { "7", "8", "9" }, { "10", "11", "12" } };
288739258c9SLi Feng Wang 		for (i = 1; i <= iterator; i++) {
289739258c9SLi Feng Wang 			long start = System.currentTimeMillis();
290739258c9SLi Feng Wang 			app.dispatch(".uno:Open");
291739258c9SLi Feng Wang 			submitOpenDlg(file);
292739258c9SLi Feng Wang 			calc.waitForExistence(20, 2);
293739258c9SLi Feng Wang 			sleep(2);
294739258c9SLi Feng Wang 
295739258c9SLi Feng Wang 			// Insert Chart
296739258c9SLi Feng Wang 			app.dispatch(".uno:Insert");
297739258c9SLi Feng Wang 			scAfterCurrentSheet.check();
298739258c9SLi Feng Wang 			scNewSheetName.setText("Instant Chart");
299739258c9SLi Feng Wang 			scInsertSheetDlg.ok();
300739258c9SLi Feng Wang 			sleep(5);
301739258c9SLi Feng Wang 			inputCells(inputStr);
302739258c9SLi Feng Wang 			sleep(2);
303739258c9SLi Feng Wang 			SCTool.selectRange("A1:C5");
304739258c9SLi Feng Wang 			calc.menuItem("Insert->Chart...").select();
305739258c9SLi Feng Wang 			sleep(1);
306739258c9SLi Feng Wang 			chartWizard.ok();
307739258c9SLi Feng Wang 			sleep(5);
308739258c9SLi Feng Wang 			calc.typeKeys("<esc>");
309739258c9SLi Feng Wang 			sleep(5);
310739258c9SLi Feng Wang 			calc.typeKeys("<esc>");
311739258c9SLi Feng Wang 			sleep(5);
312739258c9SLi Feng Wang 			calc.typeKeys("<esc>");
313739258c9SLi Feng Wang 			sleep(5);
314739258c9SLi Feng Wang 			closeWithoutSaveSC();
315739258c9SLi Feng Wang 			long end = System.currentTimeMillis();
316739258c9SLi Feng Wang 			addRecord(i, start, end);
317739258c9SLi Feng Wang 		}
318739258c9SLi Feng Wang 	}
319739258c9SLi Feng Wang 
320739258c9SLi Feng Wang 	@Test
insertPicToOpenedSC()321739258c9SLi Feng Wang 	public void insertPicToOpenedSC() throws Exception {
322739258c9SLi Feng Wang 		String file = prepareData("pvt/plain_11s.ods");
323739258c9SLi Feng Wang 		String pic = prepareData("image/blue_256x256.jpg");
324739258c9SLi Feng Wang 		for (i = 1; i <= iterator; i++) {
325739258c9SLi Feng Wang 			long start = System.currentTimeMillis();
326739258c9SLi Feng Wang 			app.dispatch(".uno:Open");
327739258c9SLi Feng Wang 			submitOpenDlg(file);
328739258c9SLi Feng Wang 			calc.waitForExistence(20, 2);
329739258c9SLi Feng Wang 			sleep(2);
330739258c9SLi Feng Wang 
331739258c9SLi Feng Wang 			// Insert Chart
332739258c9SLi Feng Wang 			app.dispatch(".uno:Insert");
333739258c9SLi Feng Wang 			scAfterCurrentSheet.check();
334739258c9SLi Feng Wang 			scNewSheetName.setText("Instant Graphic");
335739258c9SLi Feng Wang 			scInsertSheetDlg.ok();
336739258c9SLi Feng Wang 			sleep(5);
337739258c9SLi Feng Wang 			calc.menuItem("Insert->Picture->From File...").select();
338739258c9SLi Feng Wang 			sleep(2);
339739258c9SLi Feng Wang 			filePickerPath.setText(pic);
340739258c9SLi Feng Wang 			sleep(1);
341739258c9SLi Feng Wang 			filePickerOpen.click();
342739258c9SLi Feng Wang 			sleep(5);
343739258c9SLi Feng Wang 			calc.typeKeys("<esc>");
344739258c9SLi Feng Wang 			sleep(2);
345739258c9SLi Feng Wang 			closeWithoutSaveSC();
346739258c9SLi Feng Wang 			long end = System.currentTimeMillis();
347739258c9SLi Feng Wang 			addRecord(i, start, end);
348739258c9SLi Feng Wang 		}
349739258c9SLi Feng Wang 	}
350739258c9SLi Feng Wang 
351739258c9SLi Feng Wang 	@Test
insertFontWorkToOpenedSC()352739258c9SLi Feng Wang 	public void insertFontWorkToOpenedSC() throws Exception {
353739258c9SLi Feng Wang 		String file = prepareData("pvt/plain_11s.ods");
354739258c9SLi Feng Wang 		for (i = 1; i <= iterator; i++) {
355739258c9SLi Feng Wang 			long start = System.currentTimeMillis();
356739258c9SLi Feng Wang 			app.dispatch(".uno:Open");
357739258c9SLi Feng Wang 			submitOpenDlg(file);
358739258c9SLi Feng Wang 			calc.waitForExistence(20, 2);
359739258c9SLi Feng Wang 			sleep(2);
360739258c9SLi Feng Wang 
361739258c9SLi Feng Wang 			calc.menuItem("View->Toolbars->Fontwork").select();
362739258c9SLi Feng Wang 			sleep(2);
363739258c9SLi Feng Wang 			app.dispatch(".uno:FontworkGalleryFloater");
364739258c9SLi Feng Wang 			sleep(2);
365739258c9SLi Feng Wang 			typeKeys("<right>");
366739258c9SLi Feng Wang 			fontworkGalleryDlg.ok();
367739258c9SLi Feng Wang 			sleep(2);
368739258c9SLi Feng Wang 			calc.typeKeys("<esc>");
369739258c9SLi Feng Wang 			sleep(2);
370739258c9SLi Feng Wang 
371739258c9SLi Feng Wang 			closeWithoutSaveSC();
372739258c9SLi Feng Wang 			long end = System.currentTimeMillis();
373739258c9SLi Feng Wang 			addRecord(i, start, end);
374739258c9SLi Feng Wang 		}
375739258c9SLi Feng Wang 	}
376739258c9SLi Feng Wang 
377739258c9SLi Feng Wang 	@Test
switchFileContainingChart()378739258c9SLi Feng Wang 	public void switchFileContainingChart() throws Exception {
379739258c9SLi Feng Wang 		String file1 = prepareData("svt/64K_Chart1.ods");
380739258c9SLi Feng Wang 		String file2 = prepareData("svt/64K_Chart2.ods");
381739258c9SLi Feng Wang 		String file3 = prepareData("svt/64K_Chart3.ods");
382739258c9SLi Feng Wang 		String file4 = prepareData("svt/64K_Chart4.ods");
383739258c9SLi Feng Wang 		String file5 = prepareData("svt/64K_Chart5.ods");
384739258c9SLi Feng Wang 		String file6 = prepareData("svt/64K_Chart6.ods");
385739258c9SLi Feng Wang 
386739258c9SLi Feng Wang 		for (i = 1; i <= iterator; i++) {
387739258c9SLi Feng Wang 			long start = System.currentTimeMillis();
388739258c9SLi Feng Wang 			app.dispatch(".uno:Open");
389739258c9SLi Feng Wang 			submitOpenDlg(file1);
390739258c9SLi Feng Wang 			calc.waitForExistence(20, 2);
391739258c9SLi Feng Wang 			sleep(2);
392739258c9SLi Feng Wang 
393739258c9SLi Feng Wang 			app.dispatch(".uno:Open");
394739258c9SLi Feng Wang 			submitOpenDlg(file2);
395739258c9SLi Feng Wang 			calc.waitForExistence(20, 2);
396739258c9SLi Feng Wang 			sleep(2);
397739258c9SLi Feng Wang 
398739258c9SLi Feng Wang 			app.dispatch(".uno:Open");
399739258c9SLi Feng Wang 			submitOpenDlg(file3);
400739258c9SLi Feng Wang 			calc.waitForExistence(20, 2);
401739258c9SLi Feng Wang 			sleep(2);
402739258c9SLi Feng Wang 
403739258c9SLi Feng Wang 			app.dispatch(".uno:Open");
404739258c9SLi Feng Wang 			submitOpenDlg(file4);
405739258c9SLi Feng Wang 			calc.waitForExistence(20, 2);
406739258c9SLi Feng Wang 			sleep(2);
407739258c9SLi Feng Wang 
408739258c9SLi Feng Wang 			app.dispatch(".uno:Open");
409739258c9SLi Feng Wang 			submitOpenDlg(file5);
410739258c9SLi Feng Wang 			calc.waitForExistence(20, 2);
411739258c9SLi Feng Wang 			sleep(2);
412739258c9SLi Feng Wang 
413739258c9SLi Feng Wang 			app.dispatch(".uno:Open");
414739258c9SLi Feng Wang 			submitOpenDlg(file6);
415739258c9SLi Feng Wang 			calc.waitForExistence(20, 2);
416739258c9SLi Feng Wang 
417739258c9SLi Feng Wang 			sleep(2);
418739258c9SLi Feng Wang 
419739258c9SLi Feng Wang 			selectCertainFile(2);
420739258c9SLi Feng Wang 			sleep(2);
421739258c9SLi Feng Wang 			selectCertainFile(3);
422739258c9SLi Feng Wang 			sleep(2);
423739258c9SLi Feng Wang 			selectCertainFile(5);
424739258c9SLi Feng Wang 			sleep(2);
425739258c9SLi Feng Wang 
426739258c9SLi Feng Wang 			closeAlldocuments();
427739258c9SLi Feng Wang 			sleep(3);
428739258c9SLi Feng Wang 			long end = System.currentTimeMillis();
429739258c9SLi Feng Wang 			addRecord(i, start, end);
430739258c9SLi Feng Wang 		}
431739258c9SLi Feng Wang 	}
432739258c9SLi Feng Wang 
selectCertainFile(int k)433739258c9SLi Feng Wang 	public void selectCertainFile(int k) {
434739258c9SLi Feng Wang 		calc.menuItem("Window").select();
435739258c9SLi Feng Wang 		k += 5;
436739258c9SLi Feng Wang 		for (int i = 0; i < k; i++) {
437739258c9SLi Feng Wang 			typeKeys("<down>");
438739258c9SLi Feng Wang 		}
439739258c9SLi Feng Wang 		typeKeys("<enter>");
440739258c9SLi Feng Wang 		sleep(2);
441739258c9SLi Feng Wang 	}
442739258c9SLi Feng Wang 
closeAlldocuments()443739258c9SLi Feng Wang 	public void closeAlldocuments() {
444739258c9SLi Feng Wang 		for (int index = 3; index < 9; index++) {
445739258c9SLi Feng Wang 			calc.menuItem("File->Close").select();
446739258c9SLi Feng Wang 			sleep(2);
447739258c9SLi Feng Wang 		}
448739258c9SLi Feng Wang 
449739258c9SLi Feng Wang 	}
450739258c9SLi Feng Wang 
inputCells(String[][] inputs)451739258c9SLi Feng Wang 	public static void inputCells(String[][] inputs) {
452739258c9SLi Feng Wang 		String back = "";
453739258c9SLi Feng Wang 		for (int i = 0; i < inputs.length; i++) {
454739258c9SLi Feng Wang 			calc.typeKeys(back);
455739258c9SLi Feng Wang 			sleep(1);
456739258c9SLi Feng Wang 			back = "";
457739258c9SLi Feng Wang 			for (int j = 0; j < inputs[i].length; j++) {
458739258c9SLi Feng Wang 				typeKeys(inputs[i][j]);
459739258c9SLi Feng Wang 				typeKeys("<Right>");
460739258c9SLi Feng Wang 				sleep(0.5);
461739258c9SLi Feng Wang 				back += "<Left>";
462739258c9SLi Feng Wang 			}
463739258c9SLi Feng Wang 			back += "<enter>";
464739258c9SLi Feng Wang 		}
465739258c9SLi Feng Wang 		sleep(2);
466739258c9SLi Feng Wang 	}
467739258c9SLi Feng Wang 
createNewSC()468739258c9SLi Feng Wang 	private void createNewSC() {
469739258c9SLi Feng Wang 		app.dispatch("private:factory/scalc");
470739258c9SLi Feng Wang 	}
471739258c9SLi Feng Wang 
saveAndReopenNewSC(int iterator)472739258c9SLi Feng Wang 	private void saveAndReopenNewSC(int iterator) {
473739258c9SLi Feng Wang 		String saveTo = getPath("temp/" + "tempSC_New" + iterator + ".ods");
474739258c9SLi Feng Wang 		calc.menuItem("File->Save As...").select();
475739258c9SLi Feng Wang 		FileUtil.deleteFile(saveTo);
476739258c9SLi Feng Wang 		submitSaveDlg(saveTo);
477739258c9SLi Feng Wang 		if (activeMsgBox.exists()) {
478739258c9SLi Feng Wang 			activeMsgBox.yes();
479739258c9SLi Feng Wang 			sleep(2);
480739258c9SLi Feng Wang 		}
481739258c9SLi Feng Wang 		app.dispatch(".uno:CloseDoc");
482739258c9SLi Feng Wang 		// sleep(2);
483739258c9SLi Feng Wang 		startCenterOpenButton.waitForExistence(30, 2);
484739258c9SLi Feng Wang 		startCenterOpenButton.click();
485739258c9SLi Feng Wang 		submitOpenDlg(saveTo);
486739258c9SLi Feng Wang 		sleep(1);
487739258c9SLi Feng Wang 		app.dispatch(".uno:CloseDoc");
488739258c9SLi Feng Wang 	}
489739258c9SLi Feng Wang 
closeWithoutSaveSC()490739258c9SLi Feng Wang 	private void closeWithoutSaveSC() {
491739258c9SLi Feng Wang 		calc.menuItem("File->Close").select();
492739258c9SLi Feng Wang 		activeMsgBox.no();
493739258c9SLi Feng Wang 		sleep(2);
494739258c9SLi Feng Wang 	}
495739258c9SLi Feng Wang 
addRecord(int i, long start, long end)496739258c9SLi Feng Wang 	private void addRecord(int i, long start, long end) {
497bc99f727SLiu Zhe 		HashMap<String, Object>  perf = aoo.getPerfData();
498ac2ddd9cSLi Feng Wang 		xmlResult.addRow("Data",testname.getMethodName(), i, (end - start),
499bc99f727SLiu Zhe 				perf.get("vsz"), perf.get("rss"), perf.get("handles"));
500*122356beSHerbert Dürr 		log.log( Level.INFO, "\t"+testname.getMethodName()+"["+i+"] took "+(end-start)+"ms");
501739258c9SLi Feng Wang 	}
502739258c9SLi Feng Wang }
503