1*80a6f5c5SLiu Zhe /************************************************************** 2*80a6f5c5SLiu Zhe * 3*80a6f5c5SLiu Zhe * Licensed to the Apache Software Foundation (ASF) under one 4*80a6f5c5SLiu Zhe * or more contributor license agreements. See the NOTICE file 5*80a6f5c5SLiu Zhe * distributed with this work for additional information 6*80a6f5c5SLiu Zhe * regarding copyright ownership. The ASF licenses this file 7*80a6f5c5SLiu Zhe * to you under the Apache License, Version 2.0 (the 8*80a6f5c5SLiu Zhe * "License"); you may not use this file except in compliance 9*80a6f5c5SLiu Zhe * with the License. You may obtain a copy of the License at 10*80a6f5c5SLiu Zhe * 11*80a6f5c5SLiu Zhe * http://www.apache.org/licenses/LICENSE-2.0 12*80a6f5c5SLiu Zhe * 13*80a6f5c5SLiu Zhe * Unless required by applicable law or agreed to in writing, 14*80a6f5c5SLiu Zhe * software distributed under the License is distributed on an 15*80a6f5c5SLiu Zhe * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*80a6f5c5SLiu Zhe * KIND, either express or implied. See the License for the 17*80a6f5c5SLiu Zhe * specific language governing permissions and limitations 18*80a6f5c5SLiu Zhe * under the License. 19*80a6f5c5SLiu Zhe * 20*80a6f5c5SLiu Zhe *************************************************************/ 21*80a6f5c5SLiu Zhe 22*80a6f5c5SLiu Zhe /** 23*80a6f5c5SLiu Zhe * 24*80a6f5c5SLiu Zhe */ 25*80a6f5c5SLiu Zhe package bvt.gui; 26*80a6f5c5SLiu Zhe 27*80a6f5c5SLiu Zhe import static org.junit.Assert.*; 28*80a6f5c5SLiu Zhe import static org.openoffice.test.common.Testspace.*; 29*80a6f5c5SLiu Zhe import static org.openoffice.test.vcl.Tester.*; 30*80a6f5c5SLiu Zhe import static testlib.gui.AppTool.*; 31*80a6f5c5SLiu Zhe import static testlib.gui.UIMap.*; 32*80a6f5c5SLiu Zhe 33*80a6f5c5SLiu Zhe import java.awt.Rectangle; 34*80a6f5c5SLiu Zhe 35*80a6f5c5SLiu Zhe import org.junit.Before; 36*80a6f5c5SLiu Zhe import org.junit.BeforeClass; 37*80a6f5c5SLiu Zhe import org.junit.Rule; 38*80a6f5c5SLiu Zhe import org.junit.Test; 39*80a6f5c5SLiu Zhe import org.openoffice.test.common.FileUtil; 40*80a6f5c5SLiu Zhe import org.openoffice.test.common.GraphicsUtil; 41*80a6f5c5SLiu Zhe import org.openoffice.test.common.Logger; 42*80a6f5c5SLiu Zhe 43*80a6f5c5SLiu Zhe import testlib.gui.SCTool; 44*80a6f5c5SLiu Zhe 45*80a6f5c5SLiu Zhe /** 46*80a6f5c5SLiu Zhe * 47*80a6f5c5SLiu Zhe */ 48*80a6f5c5SLiu Zhe public class BasicFunctionTest { 49*80a6f5c5SLiu Zhe 50*80a6f5c5SLiu Zhe @Rule 51*80a6f5c5SLiu Zhe public Logger log = Logger.getLogger(this); 52*80a6f5c5SLiu Zhe 53*80a6f5c5SLiu Zhe @BeforeClass 54*80a6f5c5SLiu Zhe public static void beforeClass() throws Exception { 55*80a6f5c5SLiu Zhe app.clean(); 56*80a6f5c5SLiu Zhe } 57*80a6f5c5SLiu Zhe 58*80a6f5c5SLiu Zhe @Before 59*80a6f5c5SLiu Zhe public void before() { 60*80a6f5c5SLiu Zhe app.close(); 61*80a6f5c5SLiu Zhe app.start(); 62*80a6f5c5SLiu Zhe } 63*80a6f5c5SLiu Zhe 64*80a6f5c5SLiu Zhe @Test 65*80a6f5c5SLiu Zhe public void testExportAsPDF() throws Exception { 66*80a6f5c5SLiu Zhe String file = prepareData("bvt/pdf.odt"); 67*80a6f5c5SLiu Zhe String exportTo1 = getPath("temp/1.pdf"); 68*80a6f5c5SLiu Zhe String exportTo2 = getPath("temp/2.pdf"); 69*80a6f5c5SLiu Zhe deleteFile(exportTo1); 70*80a6f5c5SLiu Zhe deleteFile(exportTo2); 71*80a6f5c5SLiu Zhe open(file); 72*80a6f5c5SLiu Zhe writer.waitForExistence(10, 1); 73*80a6f5c5SLiu Zhe app.dispatch(".uno:ExportToPDF"); 74*80a6f5c5SLiu Zhe pdfGeneralPage.ok(); 75*80a6f5c5SLiu Zhe submitSaveDlg(exportTo1); 76*80a6f5c5SLiu Zhe sleep(1); 77*80a6f5c5SLiu Zhe String magic = FileUtil.readFileAsString(exportTo1).substring(0, 4); 78*80a6f5c5SLiu Zhe assertEquals("PDF is exported?", "%PDF", magic); 79*80a6f5c5SLiu Zhe 80*80a6f5c5SLiu Zhe button(".uno:ExportDirectToPDF").click();//Click via toolbar 81*80a6f5c5SLiu Zhe submitSaveDlg(exportTo2); 82*80a6f5c5SLiu Zhe sleep(1); 83*80a6f5c5SLiu Zhe magic = FileUtil.readFileAsString(exportTo2).substring(0, 4); 84*80a6f5c5SLiu Zhe assertEquals("PDF is exported directly?", "%PDF", magic); 85*80a6f5c5SLiu Zhe } 86*80a6f5c5SLiu Zhe 87*80a6f5c5SLiu Zhe /** 88*80a6f5c5SLiu Zhe * Test the File -- Print Dialog show 89*80a6f5c5SLiu Zhe * 90*80a6f5c5SLiu Zhe */ 91*80a6f5c5SLiu Zhe @Test 92*80a6f5c5SLiu Zhe public void testPrinter() { 93*80a6f5c5SLiu Zhe // Create a new text document 94*80a6f5c5SLiu Zhe newTextDocument(); 95*80a6f5c5SLiu Zhe app.dispatch(".uno:PrinterSetup"); 96*80a6f5c5SLiu Zhe if (activeMsgBox.exists(2)) 97*80a6f5c5SLiu Zhe activeMsgBox.ok(); 98*80a6f5c5SLiu Zhe 99*80a6f5c5SLiu Zhe // PrintService[] ps = PrintServiceLookup.lookupPrintServices(null, null); 100*80a6f5c5SLiu Zhe // String[] names = new String[ps.length]; 101*80a6f5c5SLiu Zhe // for (int i = 0; i < ps.length; i++) { 102*80a6f5c5SLiu Zhe // names[i] = ps[i].getName(); 103*80a6f5c5SLiu Zhe // } 104*80a6f5c5SLiu Zhe // 105*80a6f5c5SLiu Zhe // assertArrayEquals("Printers Names", names, printerSetUpDlgPrinterNames.getItemsText()); 106*80a6f5c5SLiu Zhe assertTrue("Printer Setup dialog appears", printerSetUpDlg.exists(3)); 107*80a6f5c5SLiu Zhe printerSetUpDlg.cancel(); 108*80a6f5c5SLiu Zhe } 109*80a6f5c5SLiu Zhe 110*80a6f5c5SLiu Zhe /** 111*80a6f5c5SLiu Zhe * Test the File -- Java Dialog show 112*80a6f5c5SLiu Zhe * 113*80a6f5c5SLiu Zhe */ 114*80a6f5c5SLiu Zhe // @Test 115*80a6f5c5SLiu Zhe // public void testJavaDialog() { 116*80a6f5c5SLiu Zhe // 117*80a6f5c5SLiu Zhe // // Create a new text document and launch a Wizards dialog which need JVM 118*80a6f5c5SLiu Zhe // // work correctly. 119*80a6f5c5SLiu Zhe // app.dispatch("private:factory/swriter"); 120*80a6f5c5SLiu Zhe // File tempfile = new File(oo.getUserInstallation(), "user/template/myAgendaTemplate.ott"); 121*80a6f5c5SLiu Zhe // FileUtil.deleteFile(tempfile); 122*80a6f5c5SLiu Zhe // sleep(3); 123*80a6f5c5SLiu Zhe // app.dispatch("service:com.sun.star.wizards.agenda.CallWizard?start"); 124*80a6f5c5SLiu Zhe // sleep(5); 125*80a6f5c5SLiu Zhe // assertTrue(Wizards_AgendaDialog.exists(10)); 126*80a6f5c5SLiu Zhe // Wizards_AgendaDialog_FinishButton.click(); 127*80a6f5c5SLiu Zhe // sleep(10); 128*80a6f5c5SLiu Zhe // writer.focus(); 129*80a6f5c5SLiu Zhe // sleep(1); 130*80a6f5c5SLiu Zhe // app.dispatch(".uno:SelectAll"); 131*80a6f5c5SLiu Zhe // typeKeys("<$copy>"); 132*80a6f5c5SLiu Zhe // // System.out.println("now txt:"+app.getClipboard()); 133*80a6f5c5SLiu Zhe // // assertTrue(app.getClipboard().startsWith("<Name>")); 134*80a6f5c5SLiu Zhe // assertNotNull(app.getClipboard()); 135*80a6f5c5SLiu Zhe // } 136*80a6f5c5SLiu Zhe 137*80a6f5c5SLiu Zhe /** 138*80a6f5c5SLiu Zhe * Test the Tools / Macros / Organize Dialogs" show 139*80a6f5c5SLiu Zhe * 140*80a6f5c5SLiu Zhe */ 141*80a6f5c5SLiu Zhe @Test 142*80a6f5c5SLiu Zhe public void testRunMacro() { 143*80a6f5c5SLiu Zhe open(prepareData("bvt/macro.ods")); 144*80a6f5c5SLiu Zhe calc.waitForExistence(10, 2); 145*80a6f5c5SLiu Zhe app.dispatch(".uno:RunMacro"); 146*80a6f5c5SLiu Zhe runMacroDlgCategories.expand("macro.ods"); 147*80a6f5c5SLiu Zhe runMacroDlgCategories.expand("Standard"); 148*80a6f5c5SLiu Zhe runMacroDlgCategories.select("Module1"); 149*80a6f5c5SLiu Zhe runMacroDlgCommands.select(0); 150*80a6f5c5SLiu Zhe runMacroDlg.ok(); 151*80a6f5c5SLiu Zhe assertEquals("A3 should be =1+3", "4", SCTool.getCellText("A3")); 152*80a6f5c5SLiu Zhe discard(); 153*80a6f5c5SLiu Zhe } 154*80a6f5c5SLiu Zhe 155*80a6f5c5SLiu Zhe /** 156*80a6f5c5SLiu Zhe * Test the About Dialog show 157*80a6f5c5SLiu Zhe * 158*80a6f5c5SLiu Zhe */ 159*80a6f5c5SLiu Zhe @Test 160*80a6f5c5SLiu Zhe public void testHelp() { 161*80a6f5c5SLiu Zhe app.dispatch(".uno:About"); 162*80a6f5c5SLiu Zhe assertTrue(aboutDialog.exists(5)); 163*80a6f5c5SLiu Zhe aboutDialog.ok(); 164*80a6f5c5SLiu Zhe sleep(1); 165*80a6f5c5SLiu Zhe typeKeys("<F1>"); 166*80a6f5c5SLiu Zhe assertTrue(helpWindow.exists(5)); 167*80a6f5c5SLiu Zhe helpWindow.close(); 168*80a6f5c5SLiu Zhe } 169*80a6f5c5SLiu Zhe 170*80a6f5c5SLiu Zhe /** 171*80a6f5c5SLiu Zhe * Test inserting a picture in text document 172*80a6f5c5SLiu Zhe * 173*80a6f5c5SLiu Zhe * @throws Exception 174*80a6f5c5SLiu Zhe */ 175*80a6f5c5SLiu Zhe 176*80a6f5c5SLiu Zhe @Test 177*80a6f5c5SLiu Zhe public void testInsertPictureInDocument() throws Exception { 178*80a6f5c5SLiu Zhe String bmp_green = prepareData("image/green_256x256.bmp"); 179*80a6f5c5SLiu Zhe String bmp_red = prepareData("image/red_256x256.bmp"); 180*80a6f5c5SLiu Zhe 181*80a6f5c5SLiu Zhe // Create a new text document 182*80a6f5c5SLiu Zhe newTextDocument(); 183*80a6f5c5SLiu Zhe // Insert a picture fully filled with green 184*80a6f5c5SLiu Zhe app.dispatch(".uno:InsertGraphic"); 185*80a6f5c5SLiu Zhe submitOpenDlg(bmp_green); 186*80a6f5c5SLiu Zhe writer.click(5,200); 187*80a6f5c5SLiu Zhe sleep(1); 188*80a6f5c5SLiu Zhe 189*80a6f5c5SLiu Zhe // Verify if the picture is inserted successfully 190*80a6f5c5SLiu Zhe Rectangle rectangle = GraphicsUtil.findRectangle(writer.getScreenRectangle(), 0xFF00FF00); 191*80a6f5c5SLiu Zhe assertTrue("Green Picture is inserted?" + rectangle, rectangle != null && rectangle.getWidth() > 10); 192*80a6f5c5SLiu Zhe // insert another picture 193*80a6f5c5SLiu Zhe app.dispatch(".uno:InsertGraphic"); 194*80a6f5c5SLiu Zhe submitOpenDlg(bmp_red); 195*80a6f5c5SLiu Zhe writer.click(5, 200); 196*80a6f5c5SLiu Zhe sleep(1); 197*80a6f5c5SLiu Zhe // Verify if the picture is inserted successfully 198*80a6f5c5SLiu Zhe rectangle = GraphicsUtil.findRectangle(writer.getScreenRectangle(), 0xFFFF0000); 199*80a6f5c5SLiu Zhe assertTrue("Green Picture is inserted? " + rectangle, rectangle != null && rectangle.getWidth() > 10); 200*80a6f5c5SLiu Zhe discard(); 201*80a6f5c5SLiu Zhe } 202*80a6f5c5SLiu Zhe 203*80a6f5c5SLiu Zhe @Test 204*80a6f5c5SLiu Zhe public void testInsertPictureInSpreadsheet() throws Exception { 205*80a6f5c5SLiu Zhe String bmp_green = prepareData("image/green_64x64.png"); 206*80a6f5c5SLiu Zhe String bmp_red = prepareData("image/red_64x64.png"); 207*80a6f5c5SLiu Zhe newSpreadsheet(); 208*80a6f5c5SLiu Zhe // Insert a picture fully filled with green 209*80a6f5c5SLiu Zhe app.dispatch(".uno:InsertGraphic"); 210*80a6f5c5SLiu Zhe submitOpenDlg(bmp_green); 211*80a6f5c5SLiu Zhe calc.click(5, 150); 212*80a6f5c5SLiu Zhe sleep(1); 213*80a6f5c5SLiu Zhe 214*80a6f5c5SLiu Zhe // Verify if the picture is inserted successfully 215*80a6f5c5SLiu Zhe Rectangle rectangle = GraphicsUtil.findRectangle(calc.getScreenRectangle(), 0xFF00FF00); 216*80a6f5c5SLiu Zhe assertTrue("Green Picture is inserted?" + rectangle, rectangle != null && rectangle.getWidth() > 10); 217*80a6f5c5SLiu Zhe 218*80a6f5c5SLiu Zhe SCTool.selectRange("C1"); 219*80a6f5c5SLiu Zhe // insert another picture 220*80a6f5c5SLiu Zhe app.dispatch(".uno:InsertGraphic"); 221*80a6f5c5SLiu Zhe submitOpenDlg(bmp_red); 222*80a6f5c5SLiu Zhe calc.click(5, 150); 223*80a6f5c5SLiu Zhe sleep(1); 224*80a6f5c5SLiu Zhe // Verify if the picture is inserted successfully 225*80a6f5c5SLiu Zhe rectangle = GraphicsUtil.findRectangle(calc.getScreenRectangle(), 0xFFFF0000); 226*80a6f5c5SLiu Zhe assertTrue("Red Picture is inserted? " + rectangle, rectangle != null && rectangle.getWidth() > 10); 227*80a6f5c5SLiu Zhe discard(); 228*80a6f5c5SLiu Zhe } 229*80a6f5c5SLiu Zhe 230*80a6f5c5SLiu Zhe @Test 231*80a6f5c5SLiu Zhe public void testInsertPictureInPresentation() throws Exception { 232*80a6f5c5SLiu Zhe String bmp_green = prepareData("image/green_256x256.bmp"); 233*80a6f5c5SLiu Zhe String bmp_red = prepareData("image/red_256x256.bmp"); 234*80a6f5c5SLiu Zhe newPresentation(); 235*80a6f5c5SLiu Zhe // Insert a picture fully filled with green 236*80a6f5c5SLiu Zhe app.dispatch(".uno:InsertGraphic"); 237*80a6f5c5SLiu Zhe submitOpenDlg(bmp_green); 238*80a6f5c5SLiu Zhe impress.click(5, 5); 239*80a6f5c5SLiu Zhe sleep(1); 240*80a6f5c5SLiu Zhe 241*80a6f5c5SLiu Zhe // Verify if the picture is inserted successfully 242*80a6f5c5SLiu Zhe Rectangle rectangle = GraphicsUtil.findRectangle(impress.getScreenRectangle(), 0xFF00FF00); 243*80a6f5c5SLiu Zhe assertTrue("Green Picture is inserted?" + rectangle, rectangle != null && rectangle.getWidth() > 10); 244*80a6f5c5SLiu Zhe // insert another picture 245*80a6f5c5SLiu Zhe app.dispatch(".uno:InsertGraphic"); 246*80a6f5c5SLiu Zhe submitOpenDlg(bmp_red); 247*80a6f5c5SLiu Zhe impress.click(1, 1); 248*80a6f5c5SLiu Zhe sleep(1); 249*80a6f5c5SLiu Zhe // Verify if the picture is inserted successfully 250*80a6f5c5SLiu Zhe rectangle = GraphicsUtil.findRectangle(impress.getScreenRectangle(), 0xFFFF0000); 251*80a6f5c5SLiu Zhe assertTrue("Red Picture is inserted? " + rectangle, rectangle != null && rectangle.getWidth() > 10); 252*80a6f5c5SLiu Zhe discard(); 253*80a6f5c5SLiu Zhe } 254*80a6f5c5SLiu Zhe 255*80a6f5c5SLiu Zhe @Test 256*80a6f5c5SLiu Zhe public void testSlideShow() throws Exception { 257*80a6f5c5SLiu Zhe open(prepareData("bvt/slideshow.odp")); 258*80a6f5c5SLiu Zhe impress.waitForExistence(10, 2); 259*80a6f5c5SLiu Zhe sleep(1); 260*80a6f5c5SLiu Zhe impress.typeKeys("<F5>"); 261*80a6f5c5SLiu Zhe sleep(3); 262*80a6f5c5SLiu Zhe Rectangle rectangle = GraphicsUtil.findRectangle(slideShow.getScreenRectangle(), 0xFFFF0000); 263*80a6f5c5SLiu Zhe assertNotNull("1st slide appears", rectangle); 264*80a6f5c5SLiu Zhe slideShow.click(0.5, 0.5); 265*80a6f5c5SLiu Zhe sleep(2); 266*80a6f5c5SLiu Zhe rectangle = GraphicsUtil.findRectangle(slideShow.getScreenRectangle(), 0xFF00FF00); 267*80a6f5c5SLiu Zhe assertNotNull("2nd slide appears", rectangle); 268*80a6f5c5SLiu Zhe typeKeys("<enter>"); 269*80a6f5c5SLiu Zhe sleep(2); 270*80a6f5c5SLiu Zhe rectangle = GraphicsUtil.findRectangle(slideShow.getScreenRectangle(), 0xFF0000FF); 271*80a6f5c5SLiu Zhe assertNotNull("3rd slide appears", rectangle); 272*80a6f5c5SLiu Zhe slideShow.click(0.5, 0.5); 273*80a6f5c5SLiu Zhe sleep(2); 274*80a6f5c5SLiu Zhe rectangle = GraphicsUtil.findRectangle(slideShow.getScreenRectangle(), 0xFF0000FF); 275*80a6f5c5SLiu Zhe assertNull("The end", rectangle); 276*80a6f5c5SLiu Zhe slideShow.click(0.5, 0.5); 277*80a6f5c5SLiu Zhe sleep(3); 278*80a6f5c5SLiu Zhe assertFalse("Quit", slideShow.exists()); 279*80a6f5c5SLiu Zhe } 280*80a6f5c5SLiu Zhe 281*80a6f5c5SLiu Zhe @Test 282*80a6f5c5SLiu Zhe public void testFind() { 283*80a6f5c5SLiu Zhe open(prepareData("bvt/find.odt")); 284*80a6f5c5SLiu Zhe writer.waitForExistence(10, 2); 285*80a6f5c5SLiu Zhe app.dispatch(".uno:SearchDialog"); 286*80a6f5c5SLiu Zhe findDlgFor.setText("OpenOffice"); 287*80a6f5c5SLiu Zhe findDlgFind.click(); 288*80a6f5c5SLiu Zhe sleep(1); 289*80a6f5c5SLiu Zhe writer.typeKeys("<$copy>"); 290*80a6f5c5SLiu Zhe assertEquals("OpenOffice", app.getClipboard()); 291*80a6f5c5SLiu Zhe findDlgFindAll.click(); 292*80a6f5c5SLiu Zhe sleep(1); 293*80a6f5c5SLiu Zhe writer.typeKeys("<$copy>"); 294*80a6f5c5SLiu Zhe assertEquals("OpenOfficeOpenOfficeOpenOffice", app.getClipboard()); 295*80a6f5c5SLiu Zhe findDlgReplaceWith.setText("Awesome OpenOffice"); 296*80a6f5c5SLiu Zhe findDlgReplaceAll.click(); 297*80a6f5c5SLiu Zhe sleep(1); 298*80a6f5c5SLiu Zhe msgbox("Search key replaced 3 times.").ok(); 299*80a6f5c5SLiu Zhe findDlg.close(); 300*80a6f5c5SLiu Zhe sleep(1); 301*80a6f5c5SLiu Zhe assertEquals( 302*80a6f5c5SLiu Zhe "Apache Awesome OpenOffice is comprised of six personal productivity applications: a word processor (and its web-authoring component), spreadsheet, presentation graphics, drawing, equation editor, and database. Awesome OpenOffice is released on Windows, Solaris, Linux and Macintosh operation systems, with more communities joining, including a mature FreeBSD port. Awesome OpenOffice is localized, supporting over 110 languages worldwide. ", 303*80a6f5c5SLiu Zhe copyAll()); 304*80a6f5c5SLiu Zhe } 305*80a6f5c5SLiu Zhe 306*80a6f5c5SLiu Zhe @Test 307*80a6f5c5SLiu Zhe public void testFillInSpreadsheet() { 308*80a6f5c5SLiu Zhe String[][] expected1 = new String[][] { { "1" }, { "1" }, { "1" }, { "1" }, { "1" }, { "1" }, }; 309*80a6f5c5SLiu Zhe String[][] expected2 = new String[][] { { "2" }, { "2" }, { "2" }, { "2" }, { "2" }, { "2" }, }; 310*80a6f5c5SLiu Zhe String[][] expected3 = new String[][] { { "Hi friends", "Hi friends", "Hi friends", "Hi friends" } }; 311*80a6f5c5SLiu Zhe String[][] expected4 = new String[][] { { "99999.999", "99999.999", "99999.999", "99999.999" } }; 312*80a6f5c5SLiu Zhe String[][] expected5 = new String[][] { 313*80a6f5c5SLiu Zhe { "99999.999", "-10" }, { "100000.999", "-9" }, { "100001.999", "-8" }, { "100002.999", "-7" }, { "100003.999", "-6" } 314*80a6f5c5SLiu Zhe }; 315*80a6f5c5SLiu Zhe newSpreadsheet(); 316*80a6f5c5SLiu Zhe SCTool.selectRange("C5"); 317*80a6f5c5SLiu Zhe typeKeys("1<enter>"); 318*80a6f5c5SLiu Zhe SCTool.selectRange("C5:C10"); 319*80a6f5c5SLiu Zhe app.dispatch(".uno:FillDown"); 320*80a6f5c5SLiu Zhe assertArrayEquals("Fill Down:", expected1, SCTool.getCellTexts("C5:C10")); 321*80a6f5c5SLiu Zhe 322*80a6f5c5SLiu Zhe SCTool.selectRange("D10"); 323*80a6f5c5SLiu Zhe typeKeys("2<enter>"); 324*80a6f5c5SLiu Zhe SCTool.selectRange("D5:D10"); 325*80a6f5c5SLiu Zhe app.dispatch(".uno:FillUp"); 326*80a6f5c5SLiu Zhe assertArrayEquals("Fill Up:", expected2, SCTool.getCellTexts("D5:D10")); 327*80a6f5c5SLiu Zhe 328*80a6f5c5SLiu Zhe SCTool.selectRange("A1"); 329*80a6f5c5SLiu Zhe typeKeys("Hi friends<enter>"); 330*80a6f5c5SLiu Zhe SCTool.selectRange("A1:D1"); 331*80a6f5c5SLiu Zhe app.dispatch(".uno:FillRight"); 332*80a6f5c5SLiu Zhe assertArrayEquals("Fill Right:", expected3, SCTool.getCellTexts("A1:D1")); 333*80a6f5c5SLiu Zhe 334*80a6f5c5SLiu Zhe SCTool.selectRange("D2"); 335*80a6f5c5SLiu Zhe typeKeys("99999.999<enter>"); 336*80a6f5c5SLiu Zhe SCTool.selectRange("A2:D2"); 337*80a6f5c5SLiu Zhe app.dispatch(".uno:FillLeft"); 338*80a6f5c5SLiu Zhe assertArrayEquals("Fill left:", expected4, SCTool.getCellTexts("A2:D2")); 339*80a6f5c5SLiu Zhe 340*80a6f5c5SLiu Zhe SCTool.selectRange("E1"); 341*80a6f5c5SLiu Zhe typeKeys("99999.999<tab>-10<enter>"); 342*80a6f5c5SLiu Zhe 343*80a6f5c5SLiu Zhe SCTool.selectRange("E1:F5"); 344*80a6f5c5SLiu Zhe app.dispatch(".uno:FillSeries"); 345*80a6f5c5SLiu Zhe fillSeriesDlg.ok(); 346*80a6f5c5SLiu Zhe sleep(1); 347*80a6f5c5SLiu Zhe assertArrayEquals("Fill series..", expected5, SCTool.getCellTexts("E1:F5")); 348*80a6f5c5SLiu Zhe discard(); 349*80a6f5c5SLiu Zhe } 350*80a6f5c5SLiu Zhe 351*80a6f5c5SLiu Zhe @Test 352*80a6f5c5SLiu Zhe public void testSort() { 353*80a6f5c5SLiu Zhe String[][] expected1 = new String[][] { { "-9999999" }, { "-1.1" }, { "-1.1" }, { "0" }, { "0" }, { "0.1" }, { "10" }, { "12" }, { "9999999" }, { "9999999" }, 354*80a6f5c5SLiu Zhe 355*80a6f5c5SLiu Zhe }; 356*80a6f5c5SLiu Zhe String[][] expected2 = new String[][] { { "TRUE", "Oracle" }, { "TRUE", "OpenOffice" }, { "FALSE", "OpenOffice" }, { "TRUE", "IBM" }, { "FALSE", "IBM" }, 357*80a6f5c5SLiu Zhe { "TRUE", "Google" }, { "FALSE", "facebook " }, { "TRUE", "Apache" }, { "TRUE", "!yahoo" }, { "TRUE", "" }, 358*80a6f5c5SLiu Zhe 359*80a6f5c5SLiu Zhe }; 360*80a6f5c5SLiu Zhe 361*80a6f5c5SLiu Zhe String[][] expected3 = new String[][] { { "Sunday" }, { "Monday" }, { "Tuesday" }, { "Wednesday" }, { "Thursday" }, { "Friday" }, { "Saturday" }, 362*80a6f5c5SLiu Zhe 363*80a6f5c5SLiu Zhe }; 364*80a6f5c5SLiu Zhe 365*80a6f5c5SLiu Zhe String[][] expected4 = new String[][] { { "-$10.00" }, { "$0.00" }, { "$0.00" }, { "$1.00" }, { "$3.00" }, { "$9.00" }, { "$123.00" }, { "$200.00" }, { "$400.00" }, 366*80a6f5c5SLiu Zhe { "$10,000.00" }, 367*80a6f5c5SLiu Zhe 368*80a6f5c5SLiu Zhe }; 369*80a6f5c5SLiu Zhe open(prepareData("bvt/sort.ods")); 370*80a6f5c5SLiu Zhe calc.waitForExistence(10, 2); 371*80a6f5c5SLiu Zhe SCTool.selectRange("A1:A10"); 372*80a6f5c5SLiu Zhe app.dispatch(".uno:DataSort"); 373*80a6f5c5SLiu Zhe sortWarningDlgCurrent.click(); 374*80a6f5c5SLiu Zhe assertEquals(1, sortPageBy1.getSelIndex()); 375*80a6f5c5SLiu Zhe sortPage.ok(); 376*80a6f5c5SLiu Zhe sleep(1); 377*80a6f5c5SLiu Zhe assertArrayEquals("Sorted Data", expected1, SCTool.getCellTexts("A1:A10")); 378*80a6f5c5SLiu Zhe SCTool.selectRange("B1:C10"); 379*80a6f5c5SLiu Zhe app.dispatch(".uno:DataSort"); 380*80a6f5c5SLiu Zhe 381*80a6f5c5SLiu Zhe sortPageBy1.select(2); 382*80a6f5c5SLiu Zhe sortPageDescending1.check(); 383*80a6f5c5SLiu Zhe assertFalse(sortPageBy3.isEnabled()); 384*80a6f5c5SLiu Zhe assertFalse(sortPageAscending3.isEnabled()); 385*80a6f5c5SLiu Zhe assertFalse(sortPageDescending3.isEnabled()); 386*80a6f5c5SLiu Zhe sortPageBy2.select(1); 387*80a6f5c5SLiu Zhe assertTrue(sortPageBy3.isEnabled()); 388*80a6f5c5SLiu Zhe assertTrue(sortPageAscending3.isEnabled()); 389*80a6f5c5SLiu Zhe assertTrue(sortPageDescending3.isEnabled()); 390*80a6f5c5SLiu Zhe sortPageDescending2.check(); 391*80a6f5c5SLiu Zhe sortPageBy2.select(0); 392*80a6f5c5SLiu Zhe assertFalse(sortPageBy3.isEnabled()); 393*80a6f5c5SLiu Zhe assertFalse(sortPageAscending3.isEnabled()); 394*80a6f5c5SLiu Zhe assertFalse(sortPageDescending3.isEnabled()); 395*80a6f5c5SLiu Zhe sortPageBy2.select(1); 396*80a6f5c5SLiu Zhe sortPage.ok(); 397*80a6f5c5SLiu Zhe sleep(1); 398*80a6f5c5SLiu Zhe 399*80a6f5c5SLiu Zhe assertArrayEquals("Sorted Data", expected2, SCTool.getCellTexts("B1:C10")); 400*80a6f5c5SLiu Zhe SCTool.selectRange("D1:D7"); 401*80a6f5c5SLiu Zhe app.dispatch(".uno:DataSort"); 402*80a6f5c5SLiu Zhe sortWarningDlgCurrent.click(); 403*80a6f5c5SLiu Zhe sortOptionsPage.select(); 404*80a6f5c5SLiu Zhe sortOptionsPageRangeContainsColumnLabels.uncheck(); 405*80a6f5c5SLiu Zhe sortOptionsPageCustomSortOrder.check(); 406*80a6f5c5SLiu Zhe sortOptionsPageCustomSortOrderList.select("Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday"); 407*80a6f5c5SLiu Zhe sortOptionsPage.ok(); 408*80a6f5c5SLiu Zhe sleep(1); 409*80a6f5c5SLiu Zhe assertArrayEquals("Sorted Data", expected3, SCTool.getCellTexts("D1:D7")); 410*80a6f5c5SLiu Zhe 411*80a6f5c5SLiu Zhe SCTool.selectRange("E1:E10"); 412*80a6f5c5SLiu Zhe app.dispatch(".uno:DataSort"); 413*80a6f5c5SLiu Zhe sortWarningDlgCurrent.click(); 414*80a6f5c5SLiu Zhe sortPage.ok(); 415*80a6f5c5SLiu Zhe sleep(1); 416*80a6f5c5SLiu Zhe assertArrayEquals("Sorted Data", expected4, SCTool.getCellTexts("E1:E10")); 417*80a6f5c5SLiu Zhe discard(); 418*80a6f5c5SLiu Zhe } 419*80a6f5c5SLiu Zhe 420*80a6f5c5SLiu Zhe /** 421*80a6f5c5SLiu Zhe * Test insert a chart in a draw document 1. New a draw document 2. Insert a 422*80a6f5c5SLiu Zhe * chart 3. Check if the chart is inserted successfully 423*80a6f5c5SLiu Zhe * 424*80a6f5c5SLiu Zhe * @throws Exception 425*80a6f5c5SLiu Zhe */ 426*80a6f5c5SLiu Zhe @Test 427*80a6f5c5SLiu Zhe public void testInsertChartInDraw() throws Exception { 428*80a6f5c5SLiu Zhe // Create a new drawing document 429*80a6f5c5SLiu Zhe newDrawing(); 430*80a6f5c5SLiu Zhe // Insert a chart 431*80a6f5c5SLiu Zhe app.dispatch(".uno:InsertObjectChart"); 432*80a6f5c5SLiu Zhe sleep(3); 433*80a6f5c5SLiu Zhe 434*80a6f5c5SLiu Zhe // Verify if the chart is inserted successfully 435*80a6f5c5SLiu Zhe assertTrue("Chart Editor appears", chart.exists(3)); 436*80a6f5c5SLiu Zhe // Focus on edit pane 437*80a6f5c5SLiu Zhe draw.click(5, 5); 438*80a6f5c5SLiu Zhe sleep(1); 439*80a6f5c5SLiu Zhe assertFalse("Chart Editor appears", chart.exists()); 440*80a6f5c5SLiu Zhe discard(); 441*80a6f5c5SLiu Zhe } 442*80a6f5c5SLiu Zhe 443*80a6f5c5SLiu Zhe /** 444*80a6f5c5SLiu Zhe * Test insert a chart in a text document 1. New a text document 2. Insert a 445*80a6f5c5SLiu Zhe * chart 3. Check if the chart is inserted successfully 446*80a6f5c5SLiu Zhe * 447*80a6f5c5SLiu Zhe * @throws Exception 448*80a6f5c5SLiu Zhe */ 449*80a6f5c5SLiu Zhe @Test 450*80a6f5c5SLiu Zhe public void testInsertChartInDocument() throws Exception { 451*80a6f5c5SLiu Zhe // Create a new text document 452*80a6f5c5SLiu Zhe newTextDocument(); 453*80a6f5c5SLiu Zhe // Insert a chart 454*80a6f5c5SLiu Zhe app.dispatch(".uno:InsertObjectChart"); 455*80a6f5c5SLiu Zhe sleep(3); 456*80a6f5c5SLiu Zhe 457*80a6f5c5SLiu Zhe // Verify if the chart is inserted successfully 458*80a6f5c5SLiu Zhe assertTrue("Chart Editor appears", chart.exists(3)); 459*80a6f5c5SLiu Zhe // Focus on edit pane 460*80a6f5c5SLiu Zhe writer.click(5, 5); 461*80a6f5c5SLiu Zhe sleep(1); 462*80a6f5c5SLiu Zhe assertFalse("Chart Editor appears", chart.exists()); 463*80a6f5c5SLiu Zhe discard(); 464*80a6f5c5SLiu Zhe } 465*80a6f5c5SLiu Zhe 466*80a6f5c5SLiu Zhe /** 467*80a6f5c5SLiu Zhe * Test insert a chart in a spreadsheet document 1. New a spreadsheet 468*80a6f5c5SLiu Zhe * document 2. Insert a chart 3. Check if the chart is inserted successfully 469*80a6f5c5SLiu Zhe * 470*80a6f5c5SLiu Zhe * @throws Exception 471*80a6f5c5SLiu Zhe */ 472*80a6f5c5SLiu Zhe @Test 473*80a6f5c5SLiu Zhe public void testInsertChartInSpreadsheet() throws Exception { 474*80a6f5c5SLiu Zhe // Create a new spreadsheet document 475*80a6f5c5SLiu Zhe newSpreadsheet(); 476*80a6f5c5SLiu Zhe // Insert a chart 477*80a6f5c5SLiu Zhe app.dispatch(".uno:InsertObjectChart"); 478*80a6f5c5SLiu Zhe sleep(3); 479*80a6f5c5SLiu Zhe chartWizard.ok(); 480*80a6f5c5SLiu Zhe 481*80a6f5c5SLiu Zhe // Verify if the chart is inserted successfully 482*80a6f5c5SLiu Zhe assertTrue("Chart Editor appears", chart.exists(3)); 483*80a6f5c5SLiu Zhe // Focus on edit pane 484*80a6f5c5SLiu Zhe calc.click(5, 5); 485*80a6f5c5SLiu Zhe sleep(1); 486*80a6f5c5SLiu Zhe assertFalse("Chart Editor appears", chart.exists()); 487*80a6f5c5SLiu Zhe discard(); 488*80a6f5c5SLiu Zhe } 489*80a6f5c5SLiu Zhe 490*80a6f5c5SLiu Zhe /** 491*80a6f5c5SLiu Zhe * Test insert a chart in a presentation document 1. New a presentation 492*80a6f5c5SLiu Zhe * document 2. Insert a chart 3. Check if the chart is inserted successfully 493*80a6f5c5SLiu Zhe * 494*80a6f5c5SLiu Zhe * @throws Exception 495*80a6f5c5SLiu Zhe */ 496*80a6f5c5SLiu Zhe @Test 497*80a6f5c5SLiu Zhe public void testInsertChartInPresentation() throws Exception { 498*80a6f5c5SLiu Zhe // Create a new presentation document 499*80a6f5c5SLiu Zhe newPresentation(); 500*80a6f5c5SLiu Zhe // Insert a chart 501*80a6f5c5SLiu Zhe app.dispatch(".uno:InsertObjectChart"); 502*80a6f5c5SLiu Zhe sleep(3); 503*80a6f5c5SLiu Zhe // Verify if the chart is inserted successfully 504*80a6f5c5SLiu Zhe assertTrue("Chart Editor appears", chart.exists(3)); 505*80a6f5c5SLiu Zhe // Focus on edit pane 506*80a6f5c5SLiu Zhe impress.click(5, 5); 507*80a6f5c5SLiu Zhe sleep(1); 508*80a6f5c5SLiu Zhe assertFalse("Chart Editor appears", chart.exists()); 509*80a6f5c5SLiu Zhe discard(); 510*80a6f5c5SLiu Zhe } 511*80a6f5c5SLiu Zhe 512*80a6f5c5SLiu Zhe /** 513*80a6f5c5SLiu Zhe * Test insert a table in a draw document 1. New a draw document 2. Insert a 514*80a6f5c5SLiu Zhe * default table 3. Check if the table is inserted successfully 515*80a6f5c5SLiu Zhe * 516*80a6f5c5SLiu Zhe * @throws Exception 517*80a6f5c5SLiu Zhe */ 518*80a6f5c5SLiu Zhe @Test 519*80a6f5c5SLiu Zhe public void testInsertTableInDraw() throws Exception { 520*80a6f5c5SLiu Zhe // Create a new drawing document 521*80a6f5c5SLiu Zhe newDrawing(); 522*80a6f5c5SLiu Zhe // Insert a table 523*80a6f5c5SLiu Zhe app.dispatch(".uno:InsertTable"); 524*80a6f5c5SLiu Zhe insertTable.ok(); 525*80a6f5c5SLiu Zhe sleep(1); 526*80a6f5c5SLiu Zhe draw.typeKeys("3"); 527*80a6f5c5SLiu Zhe assertTrue("Table Toolbar appears", tableToolbar.exists(3)); 528*80a6f5c5SLiu Zhe // assertEquals("The cell content", "3", copyAll()); 529*80a6f5c5SLiu Zhe discard(); 530*80a6f5c5SLiu Zhe } 531*80a6f5c5SLiu Zhe 532*80a6f5c5SLiu Zhe /** 533*80a6f5c5SLiu Zhe * Test insert a table in a text document 1. New a text document 2. Insert a 534*80a6f5c5SLiu Zhe * default table 3. Check if the table is inserted successfully 535*80a6f5c5SLiu Zhe * 536*80a6f5c5SLiu Zhe * @throws Exception 537*80a6f5c5SLiu Zhe */ 538*80a6f5c5SLiu Zhe @Test 539*80a6f5c5SLiu Zhe public void testInsertTableInDocument() throws Exception { 540*80a6f5c5SLiu Zhe // Create a new text document 541*80a6f5c5SLiu Zhe newTextDocument(); 542*80a6f5c5SLiu Zhe // Insert a table 543*80a6f5c5SLiu Zhe app.dispatch(".uno:InsertTable"); 544*80a6f5c5SLiu Zhe writerInsertTable.ok(); 545*80a6f5c5SLiu Zhe sleep(1); 546*80a6f5c5SLiu Zhe writer.typeKeys("3"); 547*80a6f5c5SLiu Zhe // Verify if the table toolbar is active 548*80a6f5c5SLiu Zhe assertTrue("Table Toolbar appears", tableToolbar.exists(3)); 549*80a6f5c5SLiu Zhe // assertEquals("The cell content", "3", copyAll()); 550*80a6f5c5SLiu Zhe discard(); 551*80a6f5c5SLiu Zhe } 552*80a6f5c5SLiu Zhe 553*80a6f5c5SLiu Zhe /** 554*80a6f5c5SLiu Zhe * Test insert a table in a presentation document 1. New a presentation 555*80a6f5c5SLiu Zhe * document 2. Insert a default table 3. Check if the table is inserted 556*80a6f5c5SLiu Zhe * successfully 557*80a6f5c5SLiu Zhe * 558*80a6f5c5SLiu Zhe * @throws Exception 559*80a6f5c5SLiu Zhe */ 560*80a6f5c5SLiu Zhe @Test 561*80a6f5c5SLiu Zhe public void testInsertTableInPresentation() throws Exception { 562*80a6f5c5SLiu Zhe // Create a new presentation document 563*80a6f5c5SLiu Zhe newPresentation(); 564*80a6f5c5SLiu Zhe 565*80a6f5c5SLiu Zhe // Insert a table 566*80a6f5c5SLiu Zhe app.dispatch(".uno:InsertTable"); 567*80a6f5c5SLiu Zhe insertTable.ok(); 568*80a6f5c5SLiu Zhe sleep(1); 569*80a6f5c5SLiu Zhe impress.typeKeys("3"); 570*80a6f5c5SLiu Zhe assertTrue("Table Toolbar appears", tableToolbar.exists(3)); 571*80a6f5c5SLiu Zhe // assertEquals("The cell content", "3", copyAll()); 572*80a6f5c5SLiu Zhe discard(); 573*80a6f5c5SLiu Zhe } 574*80a6f5c5SLiu Zhe 575*80a6f5c5SLiu Zhe /** 576*80a6f5c5SLiu Zhe * Test insert a function in a spreadsheet document via Sum button 1. New a 577*80a6f5c5SLiu Zhe * spreadsheet document 2. Insert a function via Sum button 3. Check if the 578*80a6f5c5SLiu Zhe * result is correct 579*80a6f5c5SLiu Zhe * 580*80a6f5c5SLiu Zhe * @throws Exception 581*80a6f5c5SLiu Zhe */ 582*80a6f5c5SLiu Zhe @Test 583*80a6f5c5SLiu Zhe public void testSumInFormulaBar() throws Exception { 584*80a6f5c5SLiu Zhe // Create a new spreadsheet document 585*80a6f5c5SLiu Zhe newSpreadsheet(); 586*80a6f5c5SLiu Zhe // Insert source numbers 587*80a6f5c5SLiu Zhe String sourceNumber1 = "5"; 588*80a6f5c5SLiu Zhe String sourceNumber2 = "3"; 589*80a6f5c5SLiu Zhe String expectedResult = "8"; 590*80a6f5c5SLiu Zhe SCTool.selectRange("A1"); 591*80a6f5c5SLiu Zhe typeKeys(sourceNumber1); 592*80a6f5c5SLiu Zhe SCTool.selectRange("B1"); 593*80a6f5c5SLiu Zhe typeKeys(sourceNumber2); 594*80a6f5c5SLiu Zhe // Insert a function via Sum button 595*80a6f5c5SLiu Zhe SCTool.selectRange("C1"); 596*80a6f5c5SLiu Zhe scInputBarSum.click(); 597*80a6f5c5SLiu Zhe typeKeys("<enter>"); 598*80a6f5c5SLiu Zhe // Verify if the calculated result is equal to the expected result 599*80a6f5c5SLiu Zhe assertEquals("The calculated result", expectedResult, SCTool.getCellText("C1")); 600*80a6f5c5SLiu Zhe discard(); 601*80a6f5c5SLiu Zhe } 602*80a6f5c5SLiu Zhe 603*80a6f5c5SLiu Zhe /** 604*80a6f5c5SLiu Zhe * Test insert a function in a spreadsheet document via inputbar 1. New a 605*80a6f5c5SLiu Zhe * spreadsheet document 2. Insert a function via inputbar: COS 3. Check if 606*80a6f5c5SLiu Zhe * the result is correct 607*80a6f5c5SLiu Zhe * 608*80a6f5c5SLiu Zhe * @throws Exception 609*80a6f5c5SLiu Zhe */ 610*80a6f5c5SLiu Zhe @Test 611*80a6f5c5SLiu Zhe public void testInsertFunctionViaFormulaBar() throws Exception { 612*80a6f5c5SLiu Zhe // Create a new spreadsheet document 613*80a6f5c5SLiu Zhe newSpreadsheet(); 614*80a6f5c5SLiu Zhe // Insert source numbers and expected result 615*80a6f5c5SLiu Zhe String sourceData = "0"; 616*80a6f5c5SLiu Zhe String expectedResult = "1"; 617*80a6f5c5SLiu Zhe SCTool.selectRange("A1"); 618*80a6f5c5SLiu Zhe typeKeys(sourceData); 619*80a6f5c5SLiu Zhe 620*80a6f5c5SLiu Zhe // Insert a function via inputbar: COS 621*80a6f5c5SLiu Zhe SCTool.selectRange("D1"); 622*80a6f5c5SLiu Zhe scInputBarInput.inputKeys("=COS(A1)"); 623*80a6f5c5SLiu Zhe typeKeys("<enter>"); 624*80a6f5c5SLiu Zhe 625*80a6f5c5SLiu Zhe // Verify if the calculated result is equal to the expected result 626*80a6f5c5SLiu Zhe assertEquals("The calculated result", expectedResult, SCTool.getCellText("D1")); 627*80a6f5c5SLiu Zhe discard(); 628*80a6f5c5SLiu Zhe } 629*80a6f5c5SLiu Zhe 630*80a6f5c5SLiu Zhe /** 631*80a6f5c5SLiu Zhe * Test insert a function in a spreadsheet document via Function Wizard 632*80a6f5c5SLiu Zhe * Dialog 1. New a spreadsheet document 2. Insert a function via Function 633*80a6f5c5SLiu Zhe * Wizard Dialog: ABS 3. Check if the result is correct 634*80a6f5c5SLiu Zhe * 635*80a6f5c5SLiu Zhe * @throws Exception 636*80a6f5c5SLiu Zhe */ 637*80a6f5c5SLiu Zhe @Test 638*80a6f5c5SLiu Zhe public void testFunctionWizardInFormulaBar() throws Exception { 639*80a6f5c5SLiu Zhe // Create a new spreadsheet document 640*80a6f5c5SLiu Zhe newSpreadsheet(); 641*80a6f5c5SLiu Zhe // Insert source number 642*80a6f5c5SLiu Zhe String sourceNumber = "-5"; 643*80a6f5c5SLiu Zhe String expectedResult = "5"; 644*80a6f5c5SLiu Zhe SCTool.selectRange("A1"); 645*80a6f5c5SLiu Zhe typeKeys(sourceNumber); 646*80a6f5c5SLiu Zhe typeKeys("<enter>"); 647*80a6f5c5SLiu Zhe // Insert a function via Function Wizard Dialog: ABS 648*80a6f5c5SLiu Zhe SCTool.selectRange("B1"); 649*80a6f5c5SLiu Zhe app.dispatch(".uno:FunctionDialog"); 650*80a6f5c5SLiu Zhe // SC_FunctionWizardDlg_FunctionList.doubleClick(5, 5); 651*80a6f5c5SLiu Zhe scFunctionWizardDlgFunctionList.select("ABS"); 652*80a6f5c5SLiu Zhe scFunctionWizardDlgNext.click(); // Use "Next" button 653*80a6f5c5SLiu Zhe scFunctionWizardDlgEdit1.inputKeys("A1"); 654*80a6f5c5SLiu Zhe scFunctionWizardDlg.ok(); 655*80a6f5c5SLiu Zhe // Verify if the calculated result is equal to the expected result 656*80a6f5c5SLiu Zhe assertEquals("The calculated result", expectedResult, SCTool.getCellText("B1")); 657*80a6f5c5SLiu Zhe discard(); 658*80a6f5c5SLiu Zhe } 659*80a6f5c5SLiu Zhe } 660