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