1b164ae3eSLei De Bin /************************************************************** 2b164ae3eSLei De Bin * 3b164ae3eSLei De Bin * Licensed to the Apache Software Foundation (ASF) under one 4b164ae3eSLei De Bin * or more contributor license agreements. See the NOTICE file 5b164ae3eSLei De Bin * distributed with this work for additional information 6b164ae3eSLei De Bin * regarding copyright ownership. The ASF licenses this file 7b164ae3eSLei De Bin * to you under the Apache License, Version 2.0 (the 8b164ae3eSLei De Bin * "License"); you may not use this file except in compliance 9b164ae3eSLei De Bin * with the License. You may obtain a copy of the License at 10b164ae3eSLei De Bin * 11b164ae3eSLei De Bin * http://www.apache.org/licenses/LICENSE-2.0 12b164ae3eSLei De Bin * 13b164ae3eSLei De Bin * Unless required by applicable law or agreed to in writing, 14b164ae3eSLei De Bin * software distributed under the License is distributed on an 15b164ae3eSLei De Bin * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16b164ae3eSLei De Bin * KIND, either express or implied. See the License for the 17b164ae3eSLei De Bin * specific language governing permissions and limitations 18b164ae3eSLei De Bin * under the License. 19b164ae3eSLei De Bin * 20b164ae3eSLei De Bin *************************************************************/ 21b164ae3eSLei De Bin 22faa4b864SLei De Bin /** 23faa4b864SLei De Bin * 24faa4b864SLei De Bin */ 2580a6f5c5SLiu Zhe package bvt.gui; 2632c31156SLiu Zhe 2722a14f28SLiu Zhe import static org.junit.Assert.*; 2822a14f28SLiu Zhe import static org.openoffice.test.common.Testspace.*; 2922a14f28SLiu Zhe import static org.openoffice.test.vcl.Tester.*; 30b4d2d410SLiu Zhe import static testlib.gui.AppTool.*; 3122a14f28SLiu Zhe import static testlib.gui.UIMap.*; 32faa4b864SLei De Bin 33faa4b864SLei De Bin import java.awt.Rectangle; 3491745ed9SLiu Zhe import java.io.File; 35faa4b864SLei De Bin 3691745ed9SLiu Zhe import org.junit.AfterClass; 37faa4b864SLei De Bin import org.junit.Before; 38b4d2d410SLiu Zhe import org.junit.BeforeClass; 39faa4b864SLei De Bin import org.junit.Rule; 40faa4b864SLei De Bin import org.junit.Test; 41faa4b864SLei De Bin import org.openoffice.test.common.FileUtil; 42faa4b864SLei De Bin import org.openoffice.test.common.GraphicsUtil; 4322a14f28SLiu Zhe import org.openoffice.test.common.Logger; 44faa4b864SLei De Bin 45b4d2d410SLiu Zhe import testlib.gui.SCTool; 46faa4b864SLei De Bin 47faa4b864SLei De Bin /** 48faa4b864SLei De Bin * 49faa4b864SLei De Bin */ 5009c344eeSLiu Zhe public class BasicFunctionTest { 51faa4b864SLei De Bin 52faa4b864SLei De Bin @Rule 5322a14f28SLiu Zhe public Logger log = Logger.getLogger(this); 5432c31156SLiu Zhe 55b4d2d410SLiu Zhe @BeforeClass beforeClass()569edf8282SLiu Zhe public static void beforeClass() { 57b4d2d410SLiu Zhe app.clean(); 582fc12ec5SLiu Zhe } 592fc12ec5SLiu Zhe 6091745ed9SLiu Zhe @AfterClass afterClass()619edf8282SLiu Zhe public static void afterClass() { 629edf8282SLiu Zhe app.stop(); 6391745ed9SLiu Zhe } 6491745ed9SLiu Zhe 65b4d2d410SLiu Zhe @Before before()66b4d2d410SLiu Zhe public void before() { 679edf8282SLiu Zhe app.stop(); 68b4d2d410SLiu Zhe app.start(); 69faa4b864SLei De Bin } 709edf8282SLiu Zhe 7132c31156SLiu Zhe 7291745ed9SLiu Zhe @Test smokeTest()7391745ed9SLiu Zhe public void smokeTest() { 7491745ed9SLiu Zhe File smoketestOutput = new File(aoo.getUserInstallation(), "user/temp"); 7591745ed9SLiu Zhe prepareData("TestExtension.oxt"); 7691745ed9SLiu Zhe // Open sample file smoketestdoc.sxw 7791745ed9SLiu Zhe open(prepareData("smoketestdoc.sxw")); 7891745ed9SLiu Zhe writer.waitForEnabled(10, 2); 7991745ed9SLiu Zhe // Run test cases 8091745ed9SLiu Zhe app.dispatch("vnd.sun.star.script:Standard.Global.StartTestWithDefaultOptions?language=Basic&location=document", 120); 8191745ed9SLiu Zhe String smoketestlog = FileUtil.readFileAsString(new File(smoketestOutput, "smoketest.log")); 8291745ed9SLiu Zhe String testclosurelog = FileUtil.readFileAsString(new File(smoketestOutput, "testclosure.log")); 8391745ed9SLiu Zhe log.info(smoketestlog + "\n" + testclosurelog); 8491745ed9SLiu Zhe assertTrue("No Error", !smoketestlog.contains("error") && !testclosurelog.contains("error")); 8591745ed9SLiu Zhe 8691745ed9SLiu Zhe } 8791745ed9SLiu Zhe 88faa4b864SLei De Bin @Test testExportAsPDF()8932c31156SLiu Zhe public void testExportAsPDF() throws Exception { 90b4d2d410SLiu Zhe String file = prepareData("bvt/pdf.odt"); 91b4d2d410SLiu Zhe String exportTo1 = getPath("temp/1.pdf"); 92b4d2d410SLiu Zhe String exportTo2 = getPath("temp/2.pdf"); 93b4d2d410SLiu Zhe deleteFile(exportTo1); 94b4d2d410SLiu Zhe deleteFile(exportTo2); 95b4d2d410SLiu Zhe open(file); 96b4d2d410SLiu Zhe writer.waitForExistence(10, 1); 97cb6199d5SLiu Zhe app.dispatch(".uno:ExportToPDF"); 98b4d2d410SLiu Zhe pdfGeneralPage.ok(); 99b4d2d410SLiu Zhe submitSaveDlg(exportTo1); 100b4d2d410SLiu Zhe sleep(1); 101b4d2d410SLiu Zhe String magic = FileUtil.readFileAsString(exportTo1).substring(0, 4); 102b4d2d410SLiu Zhe assertEquals("PDF is exported?", "%PDF", magic); 103b4d2d410SLiu Zhe 104b4d2d410SLiu Zhe button(".uno:ExportDirectToPDF").click();//Click via toolbar 105b4d2d410SLiu Zhe submitSaveDlg(exportTo2); 106b4d2d410SLiu Zhe sleep(1); 107b4d2d410SLiu Zhe magic = FileUtil.readFileAsString(exportTo2).substring(0, 4); 108b4d2d410SLiu Zhe assertEquals("PDF is exported directly?", "%PDF", magic); 109faa4b864SLei De Bin } 11032c31156SLiu Zhe 111faa4b864SLei De Bin /** 11232c31156SLiu Zhe * Test the File -- Print Dialog show 113faa4b864SLei De Bin * 11432c31156SLiu Zhe */ 115faa4b864SLei De Bin @Test testPrinter()116b4d2d410SLiu Zhe public void testPrinter() { 11732c31156SLiu Zhe // Create a new text document 118b4d2d410SLiu Zhe newTextDocument(); 119b4d2d410SLiu Zhe app.dispatch(".uno:PrinterSetup"); 120b4d2d410SLiu Zhe if (activeMsgBox.exists(2)) 121b4d2d410SLiu Zhe activeMsgBox.ok(); 122b4d2d410SLiu Zhe 123b4d2d410SLiu Zhe // PrintService[] ps = PrintServiceLookup.lookupPrintServices(null, null); 124b4d2d410SLiu Zhe // String[] names = new String[ps.length]; 125b4d2d410SLiu Zhe // for (int i = 0; i < ps.length; i++) { 126b4d2d410SLiu Zhe // names[i] = ps[i].getName(); 127b4d2d410SLiu Zhe // } 128b4d2d410SLiu Zhe // 129b4d2d410SLiu Zhe // assertArrayEquals("Printers Names", names, printerSetUpDlgPrinterNames.getItemsText()); 130b4d2d410SLiu Zhe assertTrue("Printer Setup dialog appears", printerSetUpDlg.exists(3)); 131b4d2d410SLiu Zhe printerSetUpDlg.cancel(); 13232c31156SLiu Zhe } 13332c31156SLiu Zhe 134faa4b864SLei De Bin /** 13532c31156SLiu Zhe * Test the File -- Java Dialog show 136faa4b864SLei De Bin * 13732c31156SLiu Zhe */ 138b4d2d410SLiu Zhe // @Test 139b4d2d410SLiu Zhe // public void testJavaDialog() { 140b4d2d410SLiu Zhe // 141b4d2d410SLiu Zhe // // Create a new text document and launch a Wizards dialog which need JVM 142b4d2d410SLiu Zhe // // work correctly. 143b4d2d410SLiu Zhe // app.dispatch("private:factory/swriter"); 144b4d2d410SLiu Zhe // File tempfile = new File(oo.getUserInstallation(), "user/template/myAgendaTemplate.ott"); 145b4d2d410SLiu Zhe // FileUtil.deleteFile(tempfile); 146b4d2d410SLiu Zhe // sleep(3); 147b4d2d410SLiu Zhe // app.dispatch("service:com.sun.star.wizards.agenda.CallWizard?start"); 148b4d2d410SLiu Zhe // sleep(5); 149b4d2d410SLiu Zhe // assertTrue(Wizards_AgendaDialog.exists(10)); 150b4d2d410SLiu Zhe // Wizards_AgendaDialog_FinishButton.click(); 151b4d2d410SLiu Zhe // sleep(10); 152b4d2d410SLiu Zhe // writer.focus(); 153b4d2d410SLiu Zhe // sleep(1); 154b4d2d410SLiu Zhe // app.dispatch(".uno:SelectAll"); 155b4d2d410SLiu Zhe // typeKeys("<$copy>"); 156b4d2d410SLiu Zhe // // System.out.println("now txt:"+app.getClipboard()); 157b4d2d410SLiu Zhe // // assertTrue(app.getClipboard().startsWith("<Name>")); 158b4d2d410SLiu Zhe // assertNotNull(app.getClipboard()); 159b4d2d410SLiu Zhe // } 16032c31156SLiu Zhe 161faa4b864SLei De Bin /** 16232c31156SLiu Zhe * Test the Tools / Macros / Organize Dialogs" show 163faa4b864SLei De Bin * 16432c31156SLiu Zhe */ 165faa4b864SLei De Bin @Test testRunMacro()166b4d2d410SLiu Zhe public void testRunMacro() { 167b4d2d410SLiu Zhe open(prepareData("bvt/macro.ods")); 168b4d2d410SLiu Zhe calc.waitForExistence(10, 2); 169b4d2d410SLiu Zhe app.dispatch(".uno:RunMacro"); 170b4d2d410SLiu Zhe runMacroDlgCategories.expand("macro.ods"); 171b4d2d410SLiu Zhe runMacroDlgCategories.expand("Standard"); 172b4d2d410SLiu Zhe runMacroDlgCategories.select("Module1"); 173b4d2d410SLiu Zhe runMacroDlgCommands.select(0); 174b4d2d410SLiu Zhe runMacroDlg.ok(); 175b4d2d410SLiu Zhe assertEquals("A3 should be =1+3", "4", SCTool.getCellText("A3")); 176b4d2d410SLiu Zhe discard(); 177faa4b864SLei De Bin } 17832c31156SLiu Zhe 179faa4b864SLei De Bin /** 18032c31156SLiu Zhe * Test the About Dialog show 181faa4b864SLei De Bin * 18232c31156SLiu Zhe */ 183faa4b864SLei De Bin @Test testHelp()184b4d2d410SLiu Zhe public void testHelp() { 185cb6199d5SLiu Zhe app.dispatch(".uno:About"); 186b4d2d410SLiu Zhe assertTrue(aboutDialog.exists(5)); 187b4d2d410SLiu Zhe aboutDialog.ok(); 188b4d2d410SLiu Zhe sleep(1); 189b4d2d410SLiu Zhe typeKeys("<F1>"); 190b4d2d410SLiu Zhe assertTrue(helpWindow.exists(5)); 191b4d2d410SLiu Zhe helpWindow.close(); 192faa4b864SLei De Bin } 19332c31156SLiu Zhe 194faa4b864SLei De Bin /** 195faa4b864SLei De Bin * Test inserting a picture in text document 19632c31156SLiu Zhe * 197faa4b864SLei De Bin * @throws Exception 198faa4b864SLei De Bin */ 19932c31156SLiu Zhe 200faa4b864SLei De Bin @Test testInsertPictureInDocument()201faa4b864SLei De Bin public void testInsertPictureInDocument() throws Exception { 2026b55ece7SLiu Zhe String bmp_green = prepareData("image/green_256x256.bmp"); 2036b55ece7SLiu Zhe String bmp_red = prepareData("image/red_256x256.bmp"); 20432c31156SLiu Zhe 20532c31156SLiu Zhe // Create a new text document 206b4d2d410SLiu Zhe newTextDocument(); 20732c31156SLiu Zhe // Insert a picture fully filled with green 20832c31156SLiu Zhe app.dispatch(".uno:InsertGraphic"); 209faa4b864SLei De Bin submitOpenDlg(bmp_green); 210b4d2d410SLiu Zhe writer.click(5,200); 211faa4b864SLei De Bin sleep(1); 21232c31156SLiu Zhe 213faa4b864SLei De Bin // Verify if the picture is inserted successfully 21422a14f28SLiu Zhe Rectangle rectangle = GraphicsUtil.findRectangle(writer.getScreenRectangle(), 0xFF00FF00); 215b4d2d410SLiu Zhe assertTrue("Green Picture is inserted?" + rectangle, rectangle != null && rectangle.getWidth() > 10); 21632c31156SLiu Zhe // insert another picture 21732c31156SLiu Zhe app.dispatch(".uno:InsertGraphic"); 218faa4b864SLei De Bin submitOpenDlg(bmp_red); 219b4d2d410SLiu Zhe writer.click(5, 200); 220faa4b864SLei De Bin sleep(1); 221faa4b864SLei De Bin // Verify if the picture is inserted successfully 22222a14f28SLiu Zhe rectangle = GraphicsUtil.findRectangle(writer.getScreenRectangle(), 0xFFFF0000); 223b4d2d410SLiu Zhe assertTrue("Green Picture is inserted? " + rectangle, rectangle != null && rectangle.getWidth() > 10); 224b4d2d410SLiu Zhe discard(); 225faa4b864SLei De Bin } 226faa4b864SLei De Bin 227faa4b864SLei De Bin @Test testInsertPictureInSpreadsheet()228faa4b864SLei De Bin public void testInsertPictureInSpreadsheet() throws Exception { 229b4d2d410SLiu Zhe String bmp_green = prepareData("image/green_64x64.png"); 230b4d2d410SLiu Zhe String bmp_red = prepareData("image/red_64x64.png"); 231b4d2d410SLiu Zhe newSpreadsheet(); 23232c31156SLiu Zhe // Insert a picture fully filled with green 23332c31156SLiu Zhe app.dispatch(".uno:InsertGraphic"); 234faa4b864SLei De Bin submitOpenDlg(bmp_green); 235b4d2d410SLiu Zhe calc.click(5, 150); 236faa4b864SLei De Bin sleep(1); 23732c31156SLiu Zhe 238faa4b864SLei De Bin // Verify if the picture is inserted successfully 23922a14f28SLiu Zhe Rectangle rectangle = GraphicsUtil.findRectangle(calc.getScreenRectangle(), 0xFF00FF00); 240b4d2d410SLiu Zhe assertTrue("Green Picture is inserted?" + rectangle, rectangle != null && rectangle.getWidth() > 10); 241b4d2d410SLiu Zhe 242b4d2d410SLiu Zhe SCTool.selectRange("C1"); 24332c31156SLiu Zhe // insert another picture 24432c31156SLiu Zhe app.dispatch(".uno:InsertGraphic"); 245faa4b864SLei De Bin submitOpenDlg(bmp_red); 246b4d2d410SLiu Zhe calc.click(5, 150); 247faa4b864SLei De Bin sleep(1); 248faa4b864SLei De Bin // Verify if the picture is inserted successfully 24922a14f28SLiu Zhe rectangle = GraphicsUtil.findRectangle(calc.getScreenRectangle(), 0xFFFF0000); 250b4d2d410SLiu Zhe assertTrue("Red Picture is inserted? " + rectangle, rectangle != null && rectangle.getWidth() > 10); 251b4d2d410SLiu Zhe discard(); 252faa4b864SLei De Bin } 25332c31156SLiu Zhe 254faa4b864SLei De Bin @Test testInsertPictureInPresentation()255faa4b864SLei De Bin public void testInsertPictureInPresentation() throws Exception { 2566b55ece7SLiu Zhe String bmp_green = prepareData("image/green_256x256.bmp"); 2576b55ece7SLiu Zhe String bmp_red = prepareData("image/red_256x256.bmp"); 258b4d2d410SLiu Zhe newPresentation(); 25932c31156SLiu Zhe // Insert a picture fully filled with green 26032c31156SLiu Zhe app.dispatch(".uno:InsertGraphic"); 261faa4b864SLei De Bin submitOpenDlg(bmp_green); 26232c31156SLiu Zhe impress.click(5, 5); 263faa4b864SLei De Bin sleep(1); 26432c31156SLiu Zhe 265faa4b864SLei De Bin // Verify if the picture is inserted successfully 26622a14f28SLiu Zhe Rectangle rectangle = GraphicsUtil.findRectangle(impress.getScreenRectangle(), 0xFF00FF00); 267b4d2d410SLiu Zhe assertTrue("Green Picture is inserted?" + rectangle, rectangle != null && rectangle.getWidth() > 10); 26832c31156SLiu Zhe // insert another picture 26932c31156SLiu Zhe app.dispatch(".uno:InsertGraphic"); 270faa4b864SLei De Bin submitOpenDlg(bmp_red); 271faa4b864SLei De Bin impress.click(1, 1); 272faa4b864SLei De Bin sleep(1); 273faa4b864SLei De Bin // Verify if the picture is inserted successfully 27422a14f28SLiu Zhe rectangle = GraphicsUtil.findRectangle(impress.getScreenRectangle(), 0xFFFF0000); 275b4d2d410SLiu Zhe assertTrue("Red Picture is inserted? " + rectangle, rectangle != null && rectangle.getWidth() > 10); 276b4d2d410SLiu Zhe discard(); 277faa4b864SLei De Bin } 27832c31156SLiu Zhe 279faa4b864SLei De Bin @Test testSlideShow()280faa4b864SLei De Bin public void testSlideShow() throws Exception { 281b4d2d410SLiu Zhe open(prepareData("bvt/slideshow.odp")); 282faa4b864SLei De Bin impress.waitForExistence(10, 2); 283b4d2d410SLiu Zhe sleep(1); 284b4d2d410SLiu Zhe impress.typeKeys("<F5>"); 285faa4b864SLei De Bin sleep(3); 286b4d2d410SLiu Zhe Rectangle rectangle = GraphicsUtil.findRectangle(slideShow.getScreenRectangle(), 0xFFFF0000); 287faa4b864SLei De Bin assertNotNull("1st slide appears", rectangle); 288b4d2d410SLiu Zhe slideShow.click(0.5, 0.5); 289faa4b864SLei De Bin sleep(2); 290b4d2d410SLiu Zhe rectangle = GraphicsUtil.findRectangle(slideShow.getScreenRectangle(), 0xFF00FF00); 291faa4b864SLei De Bin assertNotNull("2nd slide appears", rectangle); 292faa4b864SLei De Bin typeKeys("<enter>"); 293faa4b864SLei De Bin sleep(2); 294b4d2d410SLiu Zhe rectangle = GraphicsUtil.findRectangle(slideShow.getScreenRectangle(), 0xFF0000FF); 295faa4b864SLei De Bin assertNotNull("3rd slide appears", rectangle); 296b4d2d410SLiu Zhe slideShow.click(0.5, 0.5); 297faa4b864SLei De Bin sleep(2); 298b4d2d410SLiu Zhe rectangle = GraphicsUtil.findRectangle(slideShow.getScreenRectangle(), 0xFF0000FF); 299faa4b864SLei De Bin assertNull("The end", rectangle); 300b4d2d410SLiu Zhe slideShow.click(0.5, 0.5); 301faa4b864SLei De Bin sleep(3); 302b4d2d410SLiu Zhe assertFalse("Quit", slideShow.exists()); 303faa4b864SLei De Bin } 30432c31156SLiu Zhe 305faa4b864SLei De Bin @Test testFind()306faa4b864SLei De Bin public void testFind() { 307b4d2d410SLiu Zhe open(prepareData("bvt/find.odt")); 308faa4b864SLei De Bin writer.waitForExistence(10, 2); 30932c31156SLiu Zhe app.dispatch(".uno:SearchDialog"); 310b4d2d410SLiu Zhe findDlgFor.setText("OpenOffice"); 311b4d2d410SLiu Zhe findDlgFind.click(); 312faa4b864SLei De Bin sleep(1); 313b4d2d410SLiu Zhe writer.typeKeys("<$copy>"); 314faa4b864SLei De Bin assertEquals("OpenOffice", app.getClipboard()); 315b4d2d410SLiu Zhe findDlgFindAll.click(); 316faa4b864SLei De Bin sleep(1); 317b4d2d410SLiu Zhe writer.typeKeys("<$copy>"); 318faa4b864SLei De Bin assertEquals("OpenOfficeOpenOfficeOpenOffice", app.getClipboard()); 319b4d2d410SLiu Zhe findDlgReplaceWith.setText("Awesome OpenOffice"); 320b4d2d410SLiu Zhe findDlgReplaceAll.click(); 321faa4b864SLei De Bin sleep(1); 322faa4b864SLei De Bin msgbox("Search key replaced 3 times.").ok(); 323b4d2d410SLiu Zhe findDlg.close(); 324faa4b864SLei De Bin sleep(1); 32532c31156SLiu Zhe assertEquals( 32632c31156SLiu 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. ", 327b4d2d410SLiu Zhe copyAll()); 32844cf0280SCarl Marcum discard(); 329faa4b864SLei De Bin } 330*133efdc1SDamjan Jovanovic 331*133efdc1SDamjan Jovanovic @Test testFindFormulasAndValues()332*133efdc1SDamjan Jovanovic public void testFindFormulasAndValues() { 333*133efdc1SDamjan Jovanovic open(prepareData("bvt/searchFormulasValues.ods")); 334*133efdc1SDamjan Jovanovic calc.waitForExistence(10, 2); 335*133efdc1SDamjan Jovanovic 336*133efdc1SDamjan Jovanovic // Searching for 2003 by formula finds A2 337*133efdc1SDamjan Jovanovic SCTool.selectRange("A1"); 338*133efdc1SDamjan Jovanovic app.dispatch(".uno:SearchDialog"); 339*133efdc1SDamjan Jovanovic findDlgFor.setText("2003"); 340*133efdc1SDamjan Jovanovic findDlgMore.click(); 341*133efdc1SDamjan Jovanovic findDlgCalcSearchIn.select("Formulas"); 342*133efdc1SDamjan Jovanovic findDlgFind.click(); 343*133efdc1SDamjan Jovanovic sleep(1); 344*133efdc1SDamjan Jovanovic assertEquals("wrong cell found for formulas search", "A2", scInputBarPosition.getText()); 345*133efdc1SDamjan Jovanovic findDlg.close(); 346*133efdc1SDamjan Jovanovic 347*133efdc1SDamjan Jovanovic // Searching for October by value finds A2 348*133efdc1SDamjan Jovanovic SCTool.selectRange("A1"); 349*133efdc1SDamjan Jovanovic app.dispatch(".uno:SearchDialog"); 350*133efdc1SDamjan Jovanovic findDlgFor.setText("October"); 351*133efdc1SDamjan Jovanovic findDlgMore.click(); 352*133efdc1SDamjan Jovanovic findDlgCalcSearchIn.select("Values"); 353*133efdc1SDamjan Jovanovic findDlgFind.click(); 354*133efdc1SDamjan Jovanovic sleep(1); 355*133efdc1SDamjan Jovanovic assertEquals("wrong cell found for values search", "A2", scInputBarPosition.getText()); 356*133efdc1SDamjan Jovanovic findDlg.close(); 357*133efdc1SDamjan Jovanovic 358*133efdc1SDamjan Jovanovic discard(); 359*133efdc1SDamjan Jovanovic } 36032c31156SLiu Zhe 361faa4b864SLei De Bin @Test testFillInSpreadsheet()362faa4b864SLei De Bin public void testFillInSpreadsheet() { 36322a14f28SLiu Zhe String[][] expected1 = new String[][] { { "1" }, { "1" }, { "1" }, { "1" }, { "1" }, { "1" }, }; 36422a14f28SLiu Zhe String[][] expected2 = new String[][] { { "2" }, { "2" }, { "2" }, { "2" }, { "2" }, { "2" }, }; 36522a14f28SLiu Zhe String[][] expected3 = new String[][] { { "Hi friends", "Hi friends", "Hi friends", "Hi friends" } }; 36622a14f28SLiu Zhe String[][] expected4 = new String[][] { { "99999.999", "99999.999", "99999.999", "99999.999" } }; 367faa4b864SLei De Bin String[][] expected5 = new String[][] { 36822a14f28SLiu Zhe { "99999.999", "-10" }, { "100000.999", "-9" }, { "100001.999", "-8" }, { "100002.999", "-7" }, { "100003.999", "-6" } 369faa4b864SLei De Bin }; 370b4d2d410SLiu Zhe newSpreadsheet(); 371b4d2d410SLiu Zhe SCTool.selectRange("C5"); 372faa4b864SLei De Bin typeKeys("1<enter>"); 373b4d2d410SLiu Zhe SCTool.selectRange("C5:C10"); 37432c31156SLiu Zhe app.dispatch(".uno:FillDown"); 375b4d2d410SLiu Zhe assertArrayEquals("Fill Down:", expected1, SCTool.getCellTexts("C5:C10")); 37632c31156SLiu Zhe 377b4d2d410SLiu Zhe SCTool.selectRange("D10"); 378faa4b864SLei De Bin typeKeys("2<enter>"); 379b4d2d410SLiu Zhe SCTool.selectRange("D5:D10"); 38032c31156SLiu Zhe app.dispatch(".uno:FillUp"); 381b4d2d410SLiu Zhe assertArrayEquals("Fill Up:", expected2, SCTool.getCellTexts("D5:D10")); 38232c31156SLiu Zhe 383b4d2d410SLiu Zhe SCTool.selectRange("A1"); 384faa4b864SLei De Bin typeKeys("Hi friends<enter>"); 385b4d2d410SLiu Zhe SCTool.selectRange("A1:D1"); 38632c31156SLiu Zhe app.dispatch(".uno:FillRight"); 387b4d2d410SLiu Zhe assertArrayEquals("Fill Right:", expected3, SCTool.getCellTexts("A1:D1")); 38832c31156SLiu Zhe 389b4d2d410SLiu Zhe SCTool.selectRange("D2"); 390faa4b864SLei De Bin typeKeys("99999.999<enter>"); 391b4d2d410SLiu Zhe SCTool.selectRange("A2:D2"); 39232c31156SLiu Zhe app.dispatch(".uno:FillLeft"); 393b4d2d410SLiu Zhe assertArrayEquals("Fill left:", expected4, SCTool.getCellTexts("A2:D2")); 394faa4b864SLei De Bin 395b4d2d410SLiu Zhe SCTool.selectRange("E1"); 396faa4b864SLei De Bin typeKeys("99999.999<tab>-10<enter>"); 39732c31156SLiu Zhe 398b4d2d410SLiu Zhe SCTool.selectRange("E1:F5"); 39932c31156SLiu Zhe app.dispatch(".uno:FillSeries"); 400b4d2d410SLiu Zhe fillSeriesDlg.ok(); 401faa4b864SLei De Bin sleep(1); 402b4d2d410SLiu Zhe assertArrayEquals("Fill series..", expected5, SCTool.getCellTexts("E1:F5")); 403b4d2d410SLiu Zhe discard(); 404faa4b864SLei De Bin } 40532c31156SLiu Zhe 406faa4b864SLei De Bin @Test testSort()407faa4b864SLei De Bin public void testSort() { 40822a14f28SLiu Zhe String[][] expected1 = new String[][] { { "-9999999" }, { "-1.1" }, { "-1.1" }, { "0" }, { "0" }, { "0.1" }, { "10" }, { "12" }, { "9999999" }, { "9999999" }, 409faa4b864SLei De Bin 410faa4b864SLei De Bin }; 41122a14f28SLiu Zhe String[][] expected2 = new String[][] { { "TRUE", "Oracle" }, { "TRUE", "OpenOffice" }, { "FALSE", "OpenOffice" }, { "TRUE", "IBM" }, { "FALSE", "IBM" }, 41222a14f28SLiu Zhe { "TRUE", "Google" }, { "FALSE", "facebook " }, { "TRUE", "Apache" }, { "TRUE", "!yahoo" }, { "TRUE", "" }, 413faa4b864SLei De Bin 414faa4b864SLei De Bin }; 415faa4b864SLei De Bin 41622a14f28SLiu Zhe String[][] expected3 = new String[][] { { "Sunday" }, { "Monday" }, { "Tuesday" }, { "Wednesday" }, { "Thursday" }, { "Friday" }, { "Saturday" }, 417faa4b864SLei De Bin 418faa4b864SLei De Bin }; 41932c31156SLiu Zhe 42022a14f28SLiu Zhe String[][] expected4 = new String[][] { { "-$10.00" }, { "$0.00" }, { "$0.00" }, { "$1.00" }, { "$3.00" }, { "$9.00" }, { "$123.00" }, { "$200.00" }, { "$400.00" }, 42122a14f28SLiu Zhe { "$10,000.00" }, 422faa4b864SLei De Bin 423faa4b864SLei De Bin }; 424b4d2d410SLiu Zhe open(prepareData("bvt/sort.ods")); 425faa4b864SLei De Bin calc.waitForExistence(10, 2); 426b4d2d410SLiu Zhe SCTool.selectRange("A1:A10"); 427cb6199d5SLiu Zhe app.dispatch(".uno:DataSort"); 428b4d2d410SLiu Zhe sortWarningDlgCurrent.click(); 429b4d2d410SLiu Zhe assertEquals(1, sortPageBy1.getSelIndex()); 430b4d2d410SLiu Zhe sortPage.ok(); 431faa4b864SLei De Bin sleep(1); 432b4d2d410SLiu Zhe assertArrayEquals("Sorted Data", expected1, SCTool.getCellTexts("A1:A10")); 433b4d2d410SLiu Zhe SCTool.selectRange("B1:C10"); 434cb6199d5SLiu Zhe app.dispatch(".uno:DataSort"); 4357dd7871fSLei De Bin 436b4d2d410SLiu Zhe sortPageBy1.select(2); 437b4d2d410SLiu Zhe sortPageDescending1.check(); 438b4d2d410SLiu Zhe assertFalse(sortPageBy3.isEnabled()); 439b4d2d410SLiu Zhe assertFalse(sortPageAscending3.isEnabled()); 440b4d2d410SLiu Zhe assertFalse(sortPageDescending3.isEnabled()); 441b4d2d410SLiu Zhe sortPageBy2.select(1); 442b4d2d410SLiu Zhe assertTrue(sortPageBy3.isEnabled()); 443b4d2d410SLiu Zhe assertTrue(sortPageAscending3.isEnabled()); 444b4d2d410SLiu Zhe assertTrue(sortPageDescending3.isEnabled()); 445b4d2d410SLiu Zhe sortPageDescending2.check(); 446b4d2d410SLiu Zhe sortPageBy2.select(0); 447b4d2d410SLiu Zhe assertFalse(sortPageBy3.isEnabled()); 448b4d2d410SLiu Zhe assertFalse(sortPageAscending3.isEnabled()); 449b4d2d410SLiu Zhe assertFalse(sortPageDescending3.isEnabled()); 450b4d2d410SLiu Zhe sortPageBy2.select(1); 451b4d2d410SLiu Zhe sortPage.ok(); 452faa4b864SLei De Bin sleep(1); 45332c31156SLiu Zhe 454b4d2d410SLiu Zhe assertArrayEquals("Sorted Data", expected2, SCTool.getCellTexts("B1:C10")); 455b4d2d410SLiu Zhe SCTool.selectRange("D1:D7"); 456cb6199d5SLiu Zhe app.dispatch(".uno:DataSort"); 457b4d2d410SLiu Zhe sortWarningDlgCurrent.click(); 458b4d2d410SLiu Zhe sortOptionsPage.select(); 459b4d2d410SLiu Zhe sortOptionsPageRangeContainsColumnLabels.uncheck(); 460b4d2d410SLiu Zhe sortOptionsPageCustomSortOrder.check(); 461b4d2d410SLiu Zhe sortOptionsPageCustomSortOrderList.select("Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday"); 462b4d2d410SLiu Zhe sortOptionsPage.ok(); 463faa4b864SLei De Bin sleep(1); 464b4d2d410SLiu Zhe assertArrayEquals("Sorted Data", expected3, SCTool.getCellTexts("D1:D7")); 46532c31156SLiu Zhe 466b4d2d410SLiu Zhe SCTool.selectRange("E1:E10"); 467cb6199d5SLiu Zhe app.dispatch(".uno:DataSort"); 468b4d2d410SLiu Zhe sortWarningDlgCurrent.click(); 469b4d2d410SLiu Zhe sortPage.ok(); 470faa4b864SLei De Bin sleep(1); 471b4d2d410SLiu Zhe assertArrayEquals("Sorted Data", expected4, SCTool.getCellTexts("E1:E10")); 472b4d2d410SLiu Zhe discard(); 473faa4b864SLei De Bin } 47432c31156SLiu Zhe 4757dd2b5bbSLiu Zhe /** 47632c31156SLiu Zhe * Test insert a chart in a draw document 1. New a draw document 2. Insert a 47732c31156SLiu Zhe * chart 3. Check if the chart is inserted successfully 47832c31156SLiu Zhe * 4797dd2b5bbSLiu Zhe * @throws Exception 4807dd2b5bbSLiu Zhe */ 4817dd2b5bbSLiu Zhe @Test testInsertChartInDraw()48232c31156SLiu Zhe public void testInsertChartInDraw() throws Exception { 4837dd2b5bbSLiu Zhe // Create a new drawing document 484b4d2d410SLiu Zhe newDrawing(); 4857dd2b5bbSLiu Zhe // Insert a chart 48632c31156SLiu Zhe app.dispatch(".uno:InsertObjectChart"); 4877dd2b5bbSLiu Zhe sleep(3); 48832c31156SLiu Zhe 4897dd2b5bbSLiu Zhe // Verify if the chart is inserted successfully 490b4d2d410SLiu Zhe assertTrue("Chart Editor appears", chart.exists(3)); 4917dd2b5bbSLiu Zhe // Focus on edit pane 49232c31156SLiu Zhe draw.click(5, 5); 4937dd2b5bbSLiu Zhe sleep(1); 494b4d2d410SLiu Zhe assertFalse("Chart Editor appears", chart.exists()); 495b4d2d410SLiu Zhe discard(); 4967dd2b5bbSLiu Zhe } 49732c31156SLiu Zhe 4987dd2b5bbSLiu Zhe /** 49932c31156SLiu Zhe * Test insert a chart in a text document 1. New a text document 2. Insert a 50032c31156SLiu Zhe * chart 3. Check if the chart is inserted successfully 50132c31156SLiu Zhe * 5027dd2b5bbSLiu Zhe * @throws Exception 5037dd2b5bbSLiu Zhe */ 5047dd2b5bbSLiu Zhe @Test testInsertChartInDocument()50532c31156SLiu Zhe public void testInsertChartInDocument() throws Exception { 5067dd2b5bbSLiu Zhe // Create a new text document 507b4d2d410SLiu Zhe newTextDocument(); 5087dd2b5bbSLiu Zhe // Insert a chart 50932c31156SLiu Zhe app.dispatch(".uno:InsertObjectChart"); 5107dd2b5bbSLiu Zhe sleep(3); 51132c31156SLiu Zhe 5127dd2b5bbSLiu Zhe // Verify if the chart is inserted successfully 513b4d2d410SLiu Zhe assertTrue("Chart Editor appears", chart.exists(3)); 5147dd2b5bbSLiu Zhe // Focus on edit pane 51532c31156SLiu Zhe writer.click(5, 5); 5167dd2b5bbSLiu Zhe sleep(1); 517b4d2d410SLiu Zhe assertFalse("Chart Editor appears", chart.exists()); 518b4d2d410SLiu Zhe discard(); 5197dd2b5bbSLiu Zhe } 52032c31156SLiu Zhe 5217dd2b5bbSLiu Zhe /** 52232c31156SLiu Zhe * Test insert a chart in a spreadsheet document 1. New a spreadsheet 52332c31156SLiu Zhe * document 2. Insert a chart 3. Check if the chart is inserted successfully 52432c31156SLiu Zhe * 5257dd2b5bbSLiu Zhe * @throws Exception 5267dd2b5bbSLiu Zhe */ 5277dd2b5bbSLiu Zhe @Test testInsertChartInSpreadsheet()52832c31156SLiu Zhe public void testInsertChartInSpreadsheet() throws Exception { 5297dd2b5bbSLiu Zhe // Create a new spreadsheet document 530b4d2d410SLiu Zhe newSpreadsheet(); 5317dd2b5bbSLiu Zhe // Insert a chart 53232c31156SLiu Zhe app.dispatch(".uno:InsertObjectChart"); 5337dd2b5bbSLiu Zhe sleep(3); 534b4d2d410SLiu Zhe chartWizard.ok(); 53532c31156SLiu Zhe 5367dd2b5bbSLiu Zhe // Verify if the chart is inserted successfully 537b4d2d410SLiu Zhe assertTrue("Chart Editor appears", chart.exists(3)); 5387dd2b5bbSLiu Zhe // Focus on edit pane 53932c31156SLiu Zhe calc.click(5, 5); 54032c31156SLiu Zhe sleep(1); 541b4d2d410SLiu Zhe assertFalse("Chart Editor appears", chart.exists()); 542b4d2d410SLiu Zhe discard(); 5437dd2b5bbSLiu Zhe } 54432c31156SLiu Zhe 5457dd2b5bbSLiu Zhe /** 54632c31156SLiu Zhe * Test insert a chart in a presentation document 1. New a presentation 54732c31156SLiu Zhe * document 2. Insert a chart 3. Check if the chart is inserted successfully 54832c31156SLiu Zhe * 5497dd2b5bbSLiu Zhe * @throws Exception 5507dd2b5bbSLiu Zhe */ 5512aaec72aSLiu Zhe @Test testInsertChartInPresentation()55232c31156SLiu Zhe public void testInsertChartInPresentation() throws Exception { 5537dd2b5bbSLiu Zhe // Create a new presentation document 554b4d2d410SLiu Zhe newPresentation(); 5557dd2b5bbSLiu Zhe // Insert a chart 55632c31156SLiu Zhe app.dispatch(".uno:InsertObjectChart"); 5577dd2b5bbSLiu Zhe sleep(3); 5587dd2b5bbSLiu Zhe // Verify if the chart is inserted successfully 559b4d2d410SLiu Zhe assertTrue("Chart Editor appears", chart.exists(3)); 5607dd2b5bbSLiu Zhe // Focus on edit pane 56132c31156SLiu Zhe impress.click(5, 5); 56232c31156SLiu Zhe sleep(1); 563b4d2d410SLiu Zhe assertFalse("Chart Editor appears", chart.exists()); 564b4d2d410SLiu Zhe discard(); 5657dd2b5bbSLiu Zhe } 56632c31156SLiu Zhe 5677dd2b5bbSLiu Zhe /** 56832c31156SLiu Zhe * Test insert a table in a draw document 1. New a draw document 2. Insert a 56932c31156SLiu Zhe * default table 3. Check if the table is inserted successfully 57032c31156SLiu Zhe * 5717dd2b5bbSLiu Zhe * @throws Exception 5727dd2b5bbSLiu Zhe */ 5737dd2b5bbSLiu Zhe @Test testInsertTableInDraw()57432c31156SLiu Zhe public void testInsertTableInDraw() throws Exception { 5757dd2b5bbSLiu Zhe // Create a new drawing document 576b4d2d410SLiu Zhe newDrawing(); 5777dd2b5bbSLiu Zhe // Insert a table 57832c31156SLiu Zhe app.dispatch(".uno:InsertTable"); 579b4d2d410SLiu Zhe insertTable.ok(); 5807dd2b5bbSLiu Zhe sleep(1); 581b4d2d410SLiu Zhe draw.typeKeys("3"); 582b4d2d410SLiu Zhe assertTrue("Table Toolbar appears", tableToolbar.exists(3)); 583b4d2d410SLiu Zhe // assertEquals("The cell content", "3", copyAll()); 584b4d2d410SLiu Zhe discard(); 5857dd2b5bbSLiu Zhe } 58632c31156SLiu Zhe 5877dd2b5bbSLiu Zhe /** 58832c31156SLiu Zhe * Test insert a table in a text document 1. New a text document 2. Insert a 58932c31156SLiu Zhe * default table 3. Check if the table is inserted successfully 59032c31156SLiu Zhe * 5917dd2b5bbSLiu Zhe * @throws Exception 5927dd2b5bbSLiu Zhe */ 5937dd2b5bbSLiu Zhe @Test testInsertTableInDocument()59432c31156SLiu Zhe public void testInsertTableInDocument() throws Exception { 5957dd2b5bbSLiu Zhe // Create a new text document 596b4d2d410SLiu Zhe newTextDocument(); 5977dd2b5bbSLiu Zhe // Insert a table 59832c31156SLiu Zhe app.dispatch(".uno:InsertTable"); 599b4d2d410SLiu Zhe writerInsertTable.ok(); 6007dd2b5bbSLiu Zhe sleep(1); 601b4d2d410SLiu Zhe writer.typeKeys("3"); 602b4d2d410SLiu Zhe // Verify if the table toolbar is active 603b4d2d410SLiu Zhe assertTrue("Table Toolbar appears", tableToolbar.exists(3)); 604b4d2d410SLiu Zhe // assertEquals("The cell content", "3", copyAll()); 605b4d2d410SLiu Zhe discard(); 6067dd2b5bbSLiu Zhe } 60732c31156SLiu Zhe 6087dd2b5bbSLiu Zhe /** 60932c31156SLiu Zhe * Test insert a table in a presentation document 1. New a presentation 61032c31156SLiu Zhe * document 2. Insert a default table 3. Check if the table is inserted 61132c31156SLiu Zhe * successfully 61232c31156SLiu Zhe * 6137dd2b5bbSLiu Zhe * @throws Exception 6147dd2b5bbSLiu Zhe */ 6157dd2b5bbSLiu Zhe @Test testInsertTableInPresentation()61632c31156SLiu Zhe public void testInsertTableInPresentation() throws Exception { 6177dd2b5bbSLiu Zhe // Create a new presentation document 618b4d2d410SLiu Zhe newPresentation(); 61932c31156SLiu Zhe 6207dd2b5bbSLiu Zhe // Insert a table 62132c31156SLiu Zhe app.dispatch(".uno:InsertTable"); 622b4d2d410SLiu Zhe insertTable.ok(); 6237dd2b5bbSLiu Zhe sleep(1); 624b4d2d410SLiu Zhe impress.typeKeys("3"); 625b4d2d410SLiu Zhe assertTrue("Table Toolbar appears", tableToolbar.exists(3)); 626b4d2d410SLiu Zhe // assertEquals("The cell content", "3", copyAll()); 627b4d2d410SLiu Zhe discard(); 6287dd2b5bbSLiu Zhe } 6297dd2b5bbSLiu Zhe 6307dd2b5bbSLiu Zhe /** 63132c31156SLiu Zhe * Test insert a function in a spreadsheet document via Sum button 1. New a 63232c31156SLiu Zhe * spreadsheet document 2. Insert a function via Sum button 3. Check if the 63332c31156SLiu Zhe * result is correct 63432c31156SLiu Zhe * 6357dd2b5bbSLiu Zhe * @throws Exception 6367dd2b5bbSLiu Zhe */ 6377dd2b5bbSLiu Zhe @Test testSumInFormulaBar()638b4d2d410SLiu Zhe public void testSumInFormulaBar() throws Exception { 6397dd2b5bbSLiu Zhe // Create a new spreadsheet document 640b4d2d410SLiu Zhe newSpreadsheet(); 6417dd2b5bbSLiu Zhe // Insert source numbers 6427dd2b5bbSLiu Zhe String sourceNumber1 = "5"; 6437dd2b5bbSLiu Zhe String sourceNumber2 = "3"; 6447dd2b5bbSLiu Zhe String expectedResult = "8"; 645b4d2d410SLiu Zhe SCTool.selectRange("A1"); 6467dd2b5bbSLiu Zhe typeKeys(sourceNumber1); 647b4d2d410SLiu Zhe SCTool.selectRange("B1"); 64832c31156SLiu Zhe typeKeys(sourceNumber2); 6497dd2b5bbSLiu Zhe // Insert a function via Sum button 650b4d2d410SLiu Zhe SCTool.selectRange("C1"); 651b4d2d410SLiu Zhe scInputBarSum.click(); 6527dd2b5bbSLiu Zhe typeKeys("<enter>"); 6537dd2b5bbSLiu Zhe // Verify if the calculated result is equal to the expected result 654b4d2d410SLiu Zhe assertEquals("The calculated result", expectedResult, SCTool.getCellText("C1")); 655b4d2d410SLiu Zhe discard(); 6567dd2b5bbSLiu Zhe } 65732c31156SLiu Zhe 6587dd2b5bbSLiu Zhe /** 65932c31156SLiu Zhe * Test insert a function in a spreadsheet document via inputbar 1. New a 66032c31156SLiu Zhe * spreadsheet document 2. Insert a function via inputbar: COS 3. Check if 66132c31156SLiu Zhe * the result is correct 66232c31156SLiu Zhe * 6637dd2b5bbSLiu Zhe * @throws Exception 6647dd2b5bbSLiu Zhe */ 6657dd2b5bbSLiu Zhe @Test testInsertFunctionViaFormulaBar()666b4d2d410SLiu Zhe public void testInsertFunctionViaFormulaBar() throws Exception { 6677dd2b5bbSLiu Zhe // Create a new spreadsheet document 668b4d2d410SLiu Zhe newSpreadsheet(); 6697dd2b5bbSLiu Zhe // Insert source numbers and expected result 67032c31156SLiu Zhe String sourceData = "0"; 67132c31156SLiu Zhe String expectedResult = "1"; 672b4d2d410SLiu Zhe SCTool.selectRange("A1"); 67332c31156SLiu Zhe typeKeys(sourceData); 67432c31156SLiu Zhe 67532c31156SLiu Zhe // Insert a function via inputbar: COS 676b4d2d410SLiu Zhe SCTool.selectRange("D1"); 677b4d2d410SLiu Zhe scInputBarInput.inputKeys("=COS(A1)"); 6787dd2b5bbSLiu Zhe typeKeys("<enter>"); 67932c31156SLiu Zhe 6807dd2b5bbSLiu Zhe // Verify if the calculated result is equal to the expected result 681b4d2d410SLiu Zhe assertEquals("The calculated result", expectedResult, SCTool.getCellText("D1")); 682b4d2d410SLiu Zhe discard(); 6837dd2b5bbSLiu Zhe } 68432c31156SLiu Zhe 6857dd2b5bbSLiu Zhe /** 68632c31156SLiu Zhe * Test insert a function in a spreadsheet document via Function Wizard 68732c31156SLiu Zhe * Dialog 1. New a spreadsheet document 2. Insert a function via Function 68832c31156SLiu Zhe * Wizard Dialog: ABS 3. Check if the result is correct 68932c31156SLiu Zhe * 6907dd2b5bbSLiu Zhe * @throws Exception 6917dd2b5bbSLiu Zhe */ 6927dd2b5bbSLiu Zhe @Test testFunctionWizardInFormulaBar()693b4d2d410SLiu Zhe public void testFunctionWizardInFormulaBar() throws Exception { 6947dd2b5bbSLiu Zhe // Create a new spreadsheet document 695b4d2d410SLiu Zhe newSpreadsheet(); 6967dd2b5bbSLiu Zhe // Insert source number 6977dd2b5bbSLiu Zhe String sourceNumber = "-5"; 6987dd2b5bbSLiu Zhe String expectedResult = "5"; 699b4d2d410SLiu Zhe SCTool.selectRange("A1"); 7007dd2b5bbSLiu Zhe typeKeys(sourceNumber); 7017dd2b5bbSLiu Zhe typeKeys("<enter>"); 7027dd2b5bbSLiu Zhe // Insert a function via Function Wizard Dialog: ABS 703b4d2d410SLiu Zhe SCTool.selectRange("B1"); 70432c31156SLiu Zhe app.dispatch(".uno:FunctionDialog"); 70522a14f28SLiu Zhe // SC_FunctionWizardDlg_FunctionList.doubleClick(5, 5); 706b4d2d410SLiu Zhe scFunctionWizardDlgFunctionList.select("ABS"); 707b4d2d410SLiu Zhe scFunctionWizardDlgNext.click(); // Use "Next" button 70844cf0280SCarl Marcum scFunctionWizardDlgEdit1.typeKeys("A1"); 709b4d2d410SLiu Zhe scFunctionWizardDlg.ok(); 7107dd2b5bbSLiu Zhe // Verify if the calculated result is equal to the expected result 711b4d2d410SLiu Zhe assertEquals("The calculated result", expectedResult, SCTool.getCellText("B1")); 712b4d2d410SLiu Zhe discard(); 7137dd2b5bbSLiu Zhe } 7147d082fd9SCarl Marcum 7157d082fd9SCarl Marcum /** 7167d082fd9SCarl Marcum * Test open a non-http(s) type hyperlink (with host only) in a text document. 7177d082fd9SCarl Marcum * (coverage included in fvt.gui.sw.hyperlink.WarningDialog 7187d082fd9SCarl Marcum * testHyperlinkDisplaysWarning() and included here for build verification) 7197d082fd9SCarl Marcum * 1. New a text document 7207d082fd9SCarl Marcum * 2. Insert a dav type hyperlink 7217d082fd9SCarl Marcum * 3. Open hyperlink 7227d082fd9SCarl Marcum * 4. Verify security warning dialog is displayed 7237d082fd9SCarl Marcum * 7247d082fd9SCarl Marcum * @throws Exception 7257d082fd9SCarl Marcum */ 7267d082fd9SCarl Marcum @Test testNonHttpHyperlinkWithHostOnly()7277d082fd9SCarl Marcum public void testNonHttpHyperlinkWithHostOnly() throws Exception { 7287d082fd9SCarl Marcum // Create a new text document 7297d082fd9SCarl Marcum newTextDocument(); 7307d082fd9SCarl Marcum writer.waitForExistence(10, 2); 7317d082fd9SCarl Marcum // open the hyperlink dialog 7327d082fd9SCarl Marcum writer.typeKeys("<alt i>"); // insert menu 7337d082fd9SCarl Marcum writer.typeKeys("h"); // hyperlink 7347d082fd9SCarl Marcum hyperlinkInetPathComboBox.setText("dav://nonexistant.url.com"); //target 7357d082fd9SCarl Marcum hyperlinkInetText.setText("dav://nonexistant.url.com"); // displayed text 7367d082fd9SCarl Marcum hyperlinkDialogOkBtn.click(); // apply 7377d082fd9SCarl Marcum hyperlinkDialogCancelBtn.click(); // close 7387d082fd9SCarl Marcum sleep(1); // give the dialog time to close 7397d082fd9SCarl Marcum typeKeys("<shift F10>"); // context menu 7407d082fd9SCarl Marcum typeKeys("o"); // open hyperlink 7417d082fd9SCarl Marcum // we can't be sure of the language so just check for the dialog 7427d082fd9SCarl Marcum boolean msgExists = activeMsgBox.exists(1); // wait 1 second for the dialog 7437d082fd9SCarl Marcum if (msgExists) { 7447d082fd9SCarl Marcum activeMsgBox.no(); // close dialog 7457d082fd9SCarl Marcum } 7467d082fd9SCarl Marcum assertTrue("security warning not displayed", msgExists); 7477d082fd9SCarl Marcum discard(); 7487d082fd9SCarl Marcum } 7497d082fd9SCarl Marcum 7507d082fd9SCarl Marcum }