1*739258c9SLi Feng Wang /************************************************************** 2*739258c9SLi Feng Wang * 3*739258c9SLi Feng Wang * Licensed to the Apache Software Foundation (ASF) under one 4*739258c9SLi Feng Wang * or more contributor license agreements. See the NOTICE file 5*739258c9SLi Feng Wang * distributed with this work for additional information 6*739258c9SLi Feng Wang * regarding copyright ownership. The ASF licenses this file 7*739258c9SLi Feng Wang * to you under the Apache License, Version 2.0 (the 8*739258c9SLi Feng Wang * "License"); you may not use this file except in compliance 9*739258c9SLi Feng Wang * with the License. You may obtain a copy of the License at 10*739258c9SLi Feng Wang * 11*739258c9SLi Feng Wang * http://www.apache.org/licenses/LICENSE-2.0 12*739258c9SLi Feng Wang * 13*739258c9SLi Feng Wang * Unless required by applicable law or agreed to in writing, 14*739258c9SLi Feng Wang * software distributed under the License is distributed on an 15*739258c9SLi Feng Wang * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*739258c9SLi Feng Wang * KIND, either express or implied. See the License for the 17*739258c9SLi Feng Wang * specific language governing permissions and limitations 18*739258c9SLi Feng Wang * under the License. 19*739258c9SLi Feng Wang * 20*739258c9SLi Feng Wang *************************************************************/ 21*739258c9SLi Feng Wang 22*739258c9SLi Feng Wang /** 23*739258c9SLi Feng Wang * 24*739258c9SLi Feng Wang */ 25*739258c9SLi Feng Wang 26*739258c9SLi Feng Wang package svt.gui.sc; 27*739258c9SLi Feng Wang 28*739258c9SLi Feng Wang import static org.openoffice.test.common.Testspace.*; 29*739258c9SLi Feng Wang import static org.openoffice.test.vcl.Tester.*; 30*739258c9SLi Feng Wang import static testlib.gui.AppTool.*; 31*739258c9SLi Feng Wang import static testlib.gui.UIMap.*; 32*739258c9SLi Feng Wang 33*739258c9SLi Feng Wang import java.io.FileOutputStream; 34*739258c9SLi Feng Wang import java.io.PrintStream; 35*739258c9SLi Feng Wang import java.util.HashMap; 36*739258c9SLi Feng Wang 37*739258c9SLi Feng Wang import org.junit.After; 38*739258c9SLi Feng Wang import org.junit.AfterClass; 39*739258c9SLi Feng Wang import org.junit.Before; 40*739258c9SLi Feng Wang import org.junit.BeforeClass; 41*739258c9SLi Feng Wang import org.junit.Ignore; 42*739258c9SLi Feng Wang import org.junit.Rule; 43*739258c9SLi Feng Wang import org.junit.Test; 44*739258c9SLi Feng Wang import org.junit.rules.TestName; 45*739258c9SLi Feng Wang import org.openoffice.test.OpenOffice; 46*739258c9SLi Feng Wang import org.openoffice.test.common.DataSheet; 47*739258c9SLi Feng Wang import org.openoffice.test.common.FileUtil; 48*739258c9SLi Feng Wang import org.openoffice.test.common.Logger; 49*739258c9SLi Feng Wang import org.openoffice.test.common.SystemUtil; 50*739258c9SLi Feng Wang import org.openoffice.test.common.Testspace; 51*739258c9SLi Feng Wang 52*739258c9SLi Feng Wang import testlib.gui.SCTool; 53*739258c9SLi Feng Wang 54*739258c9SLi Feng Wang public class BasicFuncOnCalc { 55*739258c9SLi Feng Wang @Rule 56*739258c9SLi Feng Wang public Logger log = Logger.getLogger(this); 57*739258c9SLi Feng Wang 58*739258c9SLi Feng Wang @Rule 59*739258c9SLi Feng Wang public TestName testname = new TestName(); 60*739258c9SLi Feng Wang 61*739258c9SLi Feng Wang private static DataSheet xmlResult; 62*739258c9SLi Feng Wang 63*739258c9SLi Feng Wang private String pid = null; 64*739258c9SLi Feng Wang 65*739258c9SLi Feng Wang private static int iterator = 100; 66*739258c9SLi Feng Wang 67*739258c9SLi Feng Wang private int i = 0; 68*739258c9SLi Feng Wang 69*739258c9SLi Feng Wang /** 70*739258c9SLi Feng Wang * @throws java.lang.Exception 71*739258c9SLi Feng Wang */ 72*739258c9SLi Feng Wang @BeforeClass 73*739258c9SLi Feng Wang public static void beforeClass() throws Exception { 74*739258c9SLi Feng Wang 75*739258c9SLi Feng Wang xmlResult = new DataSheet(getFile("output/svt_gui_sc.xml")); 76*739258c9SLi Feng Wang xmlResult.addRow("BasicFuncOnCalc", "Method", "Iterator", 77*739258c9SLi Feng Wang "Consumed Time(MS)", "Memory(KB)", "CPU(%)"); 78*739258c9SLi Feng Wang } 79*739258c9SLi Feng Wang 80*739258c9SLi Feng Wang @AfterClass 81*739258c9SLi Feng Wang public static void afterClass() throws Exception { 82*739258c9SLi Feng Wang app.stop(); 83*739258c9SLi Feng Wang } 84*739258c9SLi Feng Wang 85*739258c9SLi Feng Wang @Before 86*739258c9SLi Feng Wang public void before()throws Exception{ 87*739258c9SLi Feng Wang app.start(true); 88*739258c9SLi Feng Wang } 89*739258c9SLi Feng Wang 90*739258c9SLi Feng Wang 91*739258c9SLi Feng Wang @Test 92*739258c9SLi Feng Wang public void saveNewSCWithNumberFormat() { 93*739258c9SLi Feng Wang for (i = 1; i <= iterator; i++) { 94*739258c9SLi Feng Wang long start = System.currentTimeMillis(); 95*739258c9SLi Feng Wang createNewSC(); 96*739258c9SLi Feng Wang SCTool.selectRange("A1"); 97*739258c9SLi Feng Wang typeKeys("0.3"); 98*739258c9SLi Feng Wang sleep(1); 99*739258c9SLi Feng Wang app.dispatch(".uno:FormatCellDialog"); 100*739258c9SLi Feng Wang sleep(2); 101*739258c9SLi Feng Wang scFormatCode.setText("0%"); 102*739258c9SLi Feng Wang typeKeys("<enter>"); 103*739258c9SLi Feng Wang sleep(1); 104*739258c9SLi Feng Wang saveAndReopenNewSC(i); 105*739258c9SLi Feng Wang long end = System.currentTimeMillis(); 106*739258c9SLi Feng Wang addRecord(i, start, end); 107*739258c9SLi Feng Wang } 108*739258c9SLi Feng Wang } 109*739258c9SLi Feng Wang 110*739258c9SLi Feng Wang @Test 111*739258c9SLi Feng Wang public void saveNewSCWithPrintRange() throws Exception { 112*739258c9SLi Feng Wang for (i = 1; i <= iterator; i++) { 113*739258c9SLi Feng Wang long start = System.currentTimeMillis(); 114*739258c9SLi Feng Wang createNewSC(); 115*739258c9SLi Feng Wang app.dispatch(".uno:EditPrintArea"); 116*739258c9SLi Feng Wang sleep(1); 117*739258c9SLi Feng Wang scPrintAreaType.select("- user defined -"); 118*739258c9SLi Feng Wang scPrintArea.setText("$A$1:$C$4"); 119*739258c9SLi Feng Wang typeKeys("<enter>"); 120*739258c9SLi Feng Wang SCTool.selectRange("A1"); 121*739258c9SLi Feng Wang typeKeys("test"); 122*739258c9SLi Feng Wang saveAndReopenNewSC(i); 123*739258c9SLi Feng Wang long end = System.currentTimeMillis(); 124*739258c9SLi Feng Wang addRecord(i, start, end); 125*739258c9SLi Feng Wang } 126*739258c9SLi Feng Wang } 127*739258c9SLi Feng Wang 128*739258c9SLi Feng Wang @Test 129*739258c9SLi Feng Wang public void saveNewSCWithText() throws Exception { 130*739258c9SLi Feng Wang for (i = 1; i <= iterator; i++) { 131*739258c9SLi Feng Wang long start = System.currentTimeMillis(); 132*739258c9SLi Feng Wang createNewSC(); 133*739258c9SLi Feng Wang SCTool.selectRange("A1"); 134*739258c9SLi Feng Wang typeKeys("test"); 135*739258c9SLi Feng Wang saveAndReopenNewSC(i); 136*739258c9SLi Feng Wang long end = System.currentTimeMillis(); 137*739258c9SLi Feng Wang addRecord(i, start, end); 138*739258c9SLi Feng Wang } 139*739258c9SLi Feng Wang } 140*739258c9SLi Feng Wang 141*739258c9SLi Feng Wang @Test 142*739258c9SLi Feng Wang public void saveNewSCWithDataSort() throws Exception { 143*739258c9SLi Feng Wang for (i = 1; i <= iterator; i++) { 144*739258c9SLi Feng Wang long start = System.currentTimeMillis(); 145*739258c9SLi Feng Wang createNewSC(); 146*739258c9SLi Feng Wang SCTool.selectRange("A1"); 147*739258c9SLi Feng Wang typeKeys("3<down>2<down>5<down>1<down>6<down>4<down>10<down>8<down>9<down>7"); 148*739258c9SLi Feng Wang sleep(1); 149*739258c9SLi Feng Wang app.dispatch(".uno:DataSort"); 150*739258c9SLi Feng Wang sortOptionsPage.select(); 151*739258c9SLi Feng Wang sortOptionsPageRangeContainsColumnLabels.uncheck(); 152*739258c9SLi Feng Wang sortPage.select(); 153*739258c9SLi Feng Wang sortPageBy1.select(1); // "Column A" 154*739258c9SLi Feng Wang sortPageAscending1.check(); 155*739258c9SLi Feng Wang sortPage.ok(); 156*739258c9SLi Feng Wang saveAndReopenNewSC(i); 157*739258c9SLi Feng Wang long end = System.currentTimeMillis(); 158*739258c9SLi Feng Wang addRecord(i, start, end); 159*739258c9SLi Feng Wang } 160*739258c9SLi Feng Wang } 161*739258c9SLi Feng Wang 162*739258c9SLi Feng Wang @Test 163*739258c9SLi Feng Wang public void saveNewSCWithInsertSheets() throws Exception { 164*739258c9SLi Feng Wang for (i = 1; i <= iterator; i++) { 165*739258c9SLi Feng Wang long start = System.currentTimeMillis(); 166*739258c9SLi Feng Wang createNewSC(); 167*739258c9SLi Feng Wang app.dispatch(".uno:Insert"); 168*739258c9SLi Feng Wang scAfterCurrentSheet.check(); 169*739258c9SLi Feng Wang scNewSheetName.setText("Instant Filter"); 170*739258c9SLi Feng Wang scInsertSheetDlg.ok(); 171*739258c9SLi Feng Wang sleep(5); 172*739258c9SLi Feng Wang saveAndReopenNewSC(i); 173*739258c9SLi Feng Wang long end = System.currentTimeMillis(); 174*739258c9SLi Feng Wang addRecord(i, start, end); 175*739258c9SLi Feng Wang } 176*739258c9SLi Feng Wang } 177*739258c9SLi Feng Wang 178*739258c9SLi Feng Wang @Test 179*739258c9SLi Feng Wang public void saveNewSCWithStandardFilter() throws Exception { 180*739258c9SLi Feng Wang for (i = 1; i <= iterator; i++) { 181*739258c9SLi Feng Wang long start = System.currentTimeMillis(); 182*739258c9SLi Feng Wang createNewSC(); 183*739258c9SLi Feng Wang SCTool.selectRange("A1"); 184*739258c9SLi Feng Wang typeKeys("A<down>1<down>2<down>3<down>1<down>2<down>3<down>1<down>2<down>3"); 185*739258c9SLi Feng Wang sleep(1); 186*739258c9SLi Feng Wang SCTool.selectRange("A1"); 187*739258c9SLi Feng Wang app.dispatch(".uno:DataFilterStandardFilter"); 188*739258c9SLi Feng Wang sleep(2); 189*739258c9SLi Feng Wang filterValue1.setText("1"); 190*739258c9SLi Feng Wang standardFilterDlg.ok(); 191*739258c9SLi Feng Wang saveAndReopenNewSC(i); 192*739258c9SLi Feng Wang long end = System.currentTimeMillis(); 193*739258c9SLi Feng Wang addRecord(i, start, end); 194*739258c9SLi Feng Wang } 195*739258c9SLi Feng Wang } 196*739258c9SLi Feng Wang 197*739258c9SLi Feng Wang @Test 198*739258c9SLi Feng Wang public void saveNewSCWithInsertPic() throws Exception { 199*739258c9SLi Feng Wang String pic = prepareData("image/blue_256x256.jpg"); 200*739258c9SLi Feng Wang for (i = 1; i <= iterator; i++) { 201*739258c9SLi Feng Wang long start = System.currentTimeMillis(); 202*739258c9SLi Feng Wang createNewSC(); 203*739258c9SLi Feng Wang calc.menuItem("Insert->Picture->From File...").select(); 204*739258c9SLi Feng Wang sleep(2); 205*739258c9SLi Feng Wang filePickerPath.setText(pic); 206*739258c9SLi Feng Wang sleep(1); 207*739258c9SLi Feng Wang filePickerOpen.click(); 208*739258c9SLi Feng Wang sleep(2); 209*739258c9SLi Feng Wang typeKeys("<esc>"); 210*739258c9SLi Feng Wang sleep(2); 211*739258c9SLi Feng Wang saveAndReopenNewSC(i); 212*739258c9SLi Feng Wang long end = System.currentTimeMillis(); 213*739258c9SLi Feng Wang addRecord(i, start, end); 214*739258c9SLi Feng Wang } 215*739258c9SLi Feng Wang } 216*739258c9SLi Feng Wang 217*739258c9SLi Feng Wang @Test 218*739258c9SLi Feng Wang public void saveNewSCWithValidaty() throws Exception { 219*739258c9SLi Feng Wang for (i = 1; i <= iterator; i++) { 220*739258c9SLi Feng Wang long start = System.currentTimeMillis(); 221*739258c9SLi Feng Wang createNewSC(); 222*739258c9SLi Feng Wang app.dispatch(".uno:Insert"); 223*739258c9SLi Feng Wang scAfterCurrentSheet.check(); 224*739258c9SLi Feng Wang scNewSheetName.setText("Data Validate"); 225*739258c9SLi Feng Wang scInsertSheetDlg.ok(); 226*739258c9SLi Feng Wang sleep(5); 227*739258c9SLi Feng Wang SCTool.selectRange("B2:E5"); 228*739258c9SLi Feng Wang sleep(2); 229*739258c9SLi Feng Wang 230*739258c9SLi Feng Wang app.dispatch(".uno:Validation"); 231*739258c9SLi Feng Wang scValidityCriteriaTabpage.select(); 232*739258c9SLi Feng Wang scValidityCriteriaAllowList.select("Whole Numbers"); 233*739258c9SLi Feng Wang scValidityDecimalCompareOperator.select("greater than"); 234*739258c9SLi Feng Wang scValiditySourceInput.setText("1"); 235*739258c9SLi Feng Wang scValidityErrorAlertTabPage.select(); 236*739258c9SLi Feng Wang scValidityShowErrorMessage.check(); 237*739258c9SLi Feng Wang scValidityErrorMessageTitle.setText("Error"); 238*739258c9SLi Feng Wang scValidityErrorMessage.setText("Must greater than 1"); 239*739258c9SLi Feng Wang scValidityErrorAlertTabPage.ok(); 240*739258c9SLi Feng Wang 241*739258c9SLi Feng Wang SCTool.selectRange("B2"); 242*739258c9SLi Feng Wang typeKeys("0<enter>"); 243*739258c9SLi Feng Wang activeMsgBox.ok(); 244*739258c9SLi Feng Wang sleep(1); 245*739258c9SLi Feng Wang 246*739258c9SLi Feng Wang SCTool.selectRange("E5"); 247*739258c9SLi Feng Wang typeKeys("1<enter>"); 248*739258c9SLi Feng Wang activeMsgBox.ok(); 249*739258c9SLi Feng Wang sleep(1); 250*739258c9SLi Feng Wang 251*739258c9SLi Feng Wang SCTool.selectRange("E2"); 252*739258c9SLi Feng Wang typeKeys("2<enter>"); 253*739258c9SLi Feng Wang sleep(5); 254*739258c9SLi Feng Wang saveAndReopenNewSC(i); 255*739258c9SLi Feng Wang long end = System.currentTimeMillis(); 256*739258c9SLi Feng Wang addRecord(i, start, end); 257*739258c9SLi Feng Wang } 258*739258c9SLi Feng Wang } 259*739258c9SLi Feng Wang 260*739258c9SLi Feng Wang @Test 261*739258c9SLi Feng Wang public void insertChartToOpenedSC() throws Exception { 262*739258c9SLi Feng Wang String file = prepareData("pvt/plain_11s.ods"); 263*739258c9SLi Feng Wang String[][] inputStr = { { "Area", "Item", "Count" }, { "1", "2", "3" }, 264*739258c9SLi Feng Wang { "4", "5", "6" }, { "7", "8", "9" }, { "10", "11", "12" } }; 265*739258c9SLi Feng Wang for (i = 1; i <= iterator; i++) { 266*739258c9SLi Feng Wang long start = System.currentTimeMillis(); 267*739258c9SLi Feng Wang app.dispatch(".uno:Open"); 268*739258c9SLi Feng Wang submitOpenDlg(file); 269*739258c9SLi Feng Wang calc.waitForExistence(20, 2); 270*739258c9SLi Feng Wang sleep(2); 271*739258c9SLi Feng Wang 272*739258c9SLi Feng Wang // Insert Chart 273*739258c9SLi Feng Wang app.dispatch(".uno:Insert"); 274*739258c9SLi Feng Wang scAfterCurrentSheet.check(); 275*739258c9SLi Feng Wang scNewSheetName.setText("Instant Chart"); 276*739258c9SLi Feng Wang scInsertSheetDlg.ok(); 277*739258c9SLi Feng Wang sleep(5); 278*739258c9SLi Feng Wang inputCells(inputStr); 279*739258c9SLi Feng Wang sleep(2); 280*739258c9SLi Feng Wang SCTool.selectRange("A1:C5"); 281*739258c9SLi Feng Wang calc.menuItem("Insert->Chart...").select(); 282*739258c9SLi Feng Wang sleep(1); 283*739258c9SLi Feng Wang chartWizard.ok(); 284*739258c9SLi Feng Wang sleep(5); 285*739258c9SLi Feng Wang calc.typeKeys("<esc>"); 286*739258c9SLi Feng Wang sleep(5); 287*739258c9SLi Feng Wang calc.typeKeys("<esc>"); 288*739258c9SLi Feng Wang sleep(5); 289*739258c9SLi Feng Wang calc.typeKeys("<esc>"); 290*739258c9SLi Feng Wang sleep(5); 291*739258c9SLi Feng Wang closeWithoutSaveSC(); 292*739258c9SLi Feng Wang long end = System.currentTimeMillis(); 293*739258c9SLi Feng Wang addRecord(i, start, end); 294*739258c9SLi Feng Wang } 295*739258c9SLi Feng Wang } 296*739258c9SLi Feng Wang 297*739258c9SLi Feng Wang @Test 298*739258c9SLi Feng Wang public void insertPicToOpenedSC() throws Exception { 299*739258c9SLi Feng Wang String file = prepareData("pvt/plain_11s.ods"); 300*739258c9SLi Feng Wang String pic = prepareData("image/blue_256x256.jpg"); 301*739258c9SLi Feng Wang for (i = 1; i <= iterator; i++) { 302*739258c9SLi Feng Wang long start = System.currentTimeMillis(); 303*739258c9SLi Feng Wang app.dispatch(".uno:Open"); 304*739258c9SLi Feng Wang submitOpenDlg(file); 305*739258c9SLi Feng Wang calc.waitForExistence(20, 2); 306*739258c9SLi Feng Wang sleep(2); 307*739258c9SLi Feng Wang 308*739258c9SLi Feng Wang // Insert Chart 309*739258c9SLi Feng Wang app.dispatch(".uno:Insert"); 310*739258c9SLi Feng Wang scAfterCurrentSheet.check(); 311*739258c9SLi Feng Wang scNewSheetName.setText("Instant Graphic"); 312*739258c9SLi Feng Wang scInsertSheetDlg.ok(); 313*739258c9SLi Feng Wang sleep(5); 314*739258c9SLi Feng Wang calc.menuItem("Insert->Picture->From File...").select(); 315*739258c9SLi Feng Wang sleep(2); 316*739258c9SLi Feng Wang filePickerPath.setText(pic); 317*739258c9SLi Feng Wang sleep(1); 318*739258c9SLi Feng Wang filePickerOpen.click(); 319*739258c9SLi Feng Wang sleep(5); 320*739258c9SLi Feng Wang calc.typeKeys("<esc>"); 321*739258c9SLi Feng Wang sleep(2); 322*739258c9SLi Feng Wang closeWithoutSaveSC(); 323*739258c9SLi Feng Wang long end = System.currentTimeMillis(); 324*739258c9SLi Feng Wang addRecord(i, start, end); 325*739258c9SLi Feng Wang } 326*739258c9SLi Feng Wang } 327*739258c9SLi Feng Wang 328*739258c9SLi Feng Wang @Test 329*739258c9SLi Feng Wang public void insertFontWorkToOpenedSC() throws Exception { 330*739258c9SLi Feng Wang String file = prepareData("pvt/plain_11s.ods"); 331*739258c9SLi Feng Wang for (i = 1; i <= iterator; i++) { 332*739258c9SLi Feng Wang long start = System.currentTimeMillis(); 333*739258c9SLi Feng Wang app.dispatch(".uno:Open"); 334*739258c9SLi Feng Wang submitOpenDlg(file); 335*739258c9SLi Feng Wang calc.waitForExistence(20, 2); 336*739258c9SLi Feng Wang sleep(2); 337*739258c9SLi Feng Wang 338*739258c9SLi Feng Wang calc.menuItem("View->Toolbars->Fontwork").select(); 339*739258c9SLi Feng Wang sleep(2); 340*739258c9SLi Feng Wang app.dispatch(".uno:FontworkGalleryFloater"); 341*739258c9SLi Feng Wang sleep(2); 342*739258c9SLi Feng Wang typeKeys("<right>"); 343*739258c9SLi Feng Wang fontworkGalleryDlg.ok(); 344*739258c9SLi Feng Wang sleep(2); 345*739258c9SLi Feng Wang calc.typeKeys("<esc>"); 346*739258c9SLi Feng Wang sleep(2); 347*739258c9SLi Feng Wang 348*739258c9SLi Feng Wang closeWithoutSaveSC(); 349*739258c9SLi Feng Wang long end = System.currentTimeMillis(); 350*739258c9SLi Feng Wang addRecord(i, start, end); 351*739258c9SLi Feng Wang } 352*739258c9SLi Feng Wang } 353*739258c9SLi Feng Wang 354*739258c9SLi Feng Wang @Test 355*739258c9SLi Feng Wang public void switchFileContainingChart() throws Exception { 356*739258c9SLi Feng Wang String file1 = prepareData("svt/64K_Chart1.ods"); 357*739258c9SLi Feng Wang String file2 = prepareData("svt/64K_Chart2.ods"); 358*739258c9SLi Feng Wang String file3 = prepareData("svt/64K_Chart3.ods"); 359*739258c9SLi Feng Wang String file4 = prepareData("svt/64K_Chart4.ods"); 360*739258c9SLi Feng Wang String file5 = prepareData("svt/64K_Chart5.ods"); 361*739258c9SLi Feng Wang String file6 = prepareData("svt/64K_Chart6.ods"); 362*739258c9SLi Feng Wang 363*739258c9SLi Feng Wang for (i = 1; i <= iterator; i++) { 364*739258c9SLi Feng Wang long start = System.currentTimeMillis(); 365*739258c9SLi Feng Wang app.dispatch(".uno:Open"); 366*739258c9SLi Feng Wang submitOpenDlg(file1); 367*739258c9SLi Feng Wang calc.waitForExistence(20, 2); 368*739258c9SLi Feng Wang sleep(2); 369*739258c9SLi Feng Wang 370*739258c9SLi Feng Wang app.dispatch(".uno:Open"); 371*739258c9SLi Feng Wang submitOpenDlg(file2); 372*739258c9SLi Feng Wang calc.waitForExistence(20, 2); 373*739258c9SLi Feng Wang sleep(2); 374*739258c9SLi Feng Wang 375*739258c9SLi Feng Wang app.dispatch(".uno:Open"); 376*739258c9SLi Feng Wang submitOpenDlg(file3); 377*739258c9SLi Feng Wang calc.waitForExistence(20, 2); 378*739258c9SLi Feng Wang sleep(2); 379*739258c9SLi Feng Wang 380*739258c9SLi Feng Wang app.dispatch(".uno:Open"); 381*739258c9SLi Feng Wang submitOpenDlg(file4); 382*739258c9SLi Feng Wang calc.waitForExistence(20, 2); 383*739258c9SLi Feng Wang sleep(2); 384*739258c9SLi Feng Wang 385*739258c9SLi Feng Wang app.dispatch(".uno:Open"); 386*739258c9SLi Feng Wang submitOpenDlg(file5); 387*739258c9SLi Feng Wang calc.waitForExistence(20, 2); 388*739258c9SLi Feng Wang sleep(2); 389*739258c9SLi Feng Wang 390*739258c9SLi Feng Wang app.dispatch(".uno:Open"); 391*739258c9SLi Feng Wang submitOpenDlg(file6); 392*739258c9SLi Feng Wang calc.waitForExistence(20, 2); 393*739258c9SLi Feng Wang 394*739258c9SLi Feng Wang sleep(2); 395*739258c9SLi Feng Wang 396*739258c9SLi Feng Wang selectCertainFile(2); 397*739258c9SLi Feng Wang sleep(2); 398*739258c9SLi Feng Wang selectCertainFile(3); 399*739258c9SLi Feng Wang sleep(2); 400*739258c9SLi Feng Wang selectCertainFile(5); 401*739258c9SLi Feng Wang sleep(2); 402*739258c9SLi Feng Wang 403*739258c9SLi Feng Wang closeAlldocuments(); 404*739258c9SLi Feng Wang sleep(3); 405*739258c9SLi Feng Wang long end = System.currentTimeMillis(); 406*739258c9SLi Feng Wang addRecord(i, start, end); 407*739258c9SLi Feng Wang } 408*739258c9SLi Feng Wang } 409*739258c9SLi Feng Wang 410*739258c9SLi Feng Wang public void selectCertainFile(int k) { 411*739258c9SLi Feng Wang calc.menuItem("Window").select(); 412*739258c9SLi Feng Wang k += 5; 413*739258c9SLi Feng Wang for (int i = 0; i < k; i++) { 414*739258c9SLi Feng Wang typeKeys("<down>"); 415*739258c9SLi Feng Wang } 416*739258c9SLi Feng Wang typeKeys("<enter>"); 417*739258c9SLi Feng Wang sleep(2); 418*739258c9SLi Feng Wang } 419*739258c9SLi Feng Wang 420*739258c9SLi Feng Wang public void closeAlldocuments() { 421*739258c9SLi Feng Wang for (int index = 3; index < 9; index++) { 422*739258c9SLi Feng Wang calc.menuItem("File->Close").select(); 423*739258c9SLi Feng Wang sleep(2); 424*739258c9SLi Feng Wang } 425*739258c9SLi Feng Wang 426*739258c9SLi Feng Wang } 427*739258c9SLi Feng Wang 428*739258c9SLi Feng Wang public static void inputCells(String[][] inputs) { 429*739258c9SLi Feng Wang String back = ""; 430*739258c9SLi Feng Wang for (int i = 0; i < inputs.length; i++) { 431*739258c9SLi Feng Wang calc.typeKeys(back); 432*739258c9SLi Feng Wang sleep(1); 433*739258c9SLi Feng Wang back = ""; 434*739258c9SLi Feng Wang for (int j = 0; j < inputs[i].length; j++) { 435*739258c9SLi Feng Wang typeKeys(inputs[i][j]); 436*739258c9SLi Feng Wang typeKeys("<Right>"); 437*739258c9SLi Feng Wang sleep(0.5); 438*739258c9SLi Feng Wang back += "<Left>"; 439*739258c9SLi Feng Wang } 440*739258c9SLi Feng Wang back += "<enter>"; 441*739258c9SLi Feng Wang } 442*739258c9SLi Feng Wang sleep(2); 443*739258c9SLi Feng Wang } 444*739258c9SLi Feng Wang 445*739258c9SLi Feng Wang private void createNewSC() { 446*739258c9SLi Feng Wang app.dispatch("private:factory/scalc"); 447*739258c9SLi Feng Wang } 448*739258c9SLi Feng Wang 449*739258c9SLi Feng Wang private void saveAndReopenNewSC(int iterator) { 450*739258c9SLi Feng Wang String saveTo = getPath("temp/" + "tempSC_New" + iterator + ".ods"); 451*739258c9SLi Feng Wang calc.menuItem("File->Save As...").select(); 452*739258c9SLi Feng Wang FileUtil.deleteFile(saveTo); 453*739258c9SLi Feng Wang submitSaveDlg(saveTo); 454*739258c9SLi Feng Wang if (activeMsgBox.exists()) { 455*739258c9SLi Feng Wang activeMsgBox.yes(); 456*739258c9SLi Feng Wang sleep(2); 457*739258c9SLi Feng Wang } 458*739258c9SLi Feng Wang app.dispatch(".uno:CloseDoc"); 459*739258c9SLi Feng Wang // sleep(2); 460*739258c9SLi Feng Wang startCenterOpenButton.waitForExistence(30, 2); 461*739258c9SLi Feng Wang startCenterOpenButton.click(); 462*739258c9SLi Feng Wang submitOpenDlg(saveTo); 463*739258c9SLi Feng Wang sleep(1); 464*739258c9SLi Feng Wang app.dispatch(".uno:CloseDoc"); 465*739258c9SLi Feng Wang } 466*739258c9SLi Feng Wang 467*739258c9SLi Feng Wang private void closeWithoutSaveSC() { 468*739258c9SLi Feng Wang calc.menuItem("File->Close").select(); 469*739258c9SLi Feng Wang activeMsgBox.no(); 470*739258c9SLi Feng Wang sleep(2); 471*739258c9SLi Feng Wang } 472*739258c9SLi Feng Wang 473*739258c9SLi Feng Wang private HashMap<String, Object> getPerfData() { 474*739258c9SLi Feng Wang HashMap<String, Object> proccessInfo = SystemUtil 475*739258c9SLi Feng Wang .findProcess(".*(soffice\\.bin|soffice\\.exe|soffice).*"); 476*739258c9SLi Feng Wang String pid = (String) proccessInfo.get("pid"); 477*739258c9SLi Feng Wang return SystemUtil.getProcessPerfData(pid); 478*739258c9SLi Feng Wang } 479*739258c9SLi Feng Wang 480*739258c9SLi Feng Wang private void addRecord(int i, long start, long end) { 481*739258c9SLi Feng Wang HashMap<String, Object> perf = getPerfData(); 482*739258c9SLi Feng Wang xmlResult.addRow("BasicFuncOnCalc",testname.getMethodName(), i, (end - start), 483*739258c9SLi Feng Wang perf.get("rss"), perf.get("pcpu")); 484*739258c9SLi Feng Wang } 485*739258c9SLi Feng Wang } 486