xref: /trunk/test/testgui/source/svt/gui/sc/BasicFuncOnCalc.java (revision 3309286857f19787ae62bd793a98b5af4edd2ad3)
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