xref: /trunk/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