180a6f5c5SLiu Zhe /************************************************************** 280a6f5c5SLiu Zhe * 380a6f5c5SLiu Zhe * Licensed to the Apache Software Foundation (ASF) under one 480a6f5c5SLiu Zhe * or more contributor license agreements. See the NOTICE file 580a6f5c5SLiu Zhe * distributed with this work for additional information 680a6f5c5SLiu Zhe * regarding copyright ownership. The ASF licenses this file 780a6f5c5SLiu Zhe * to you under the Apache License, Version 2.0 (the 880a6f5c5SLiu Zhe * "License"); you may not use this file except in compliance 980a6f5c5SLiu Zhe * with the License. You may obtain a copy of the License at 1080a6f5c5SLiu Zhe * 1180a6f5c5SLiu Zhe * http://www.apache.org/licenses/LICENSE-2.0 1280a6f5c5SLiu Zhe * 1380a6f5c5SLiu Zhe * Unless required by applicable law or agreed to in writing, 1480a6f5c5SLiu Zhe * software distributed under the License is distributed on an 1580a6f5c5SLiu Zhe * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 1680a6f5c5SLiu Zhe * KIND, either express or implied. See the License for the 1780a6f5c5SLiu Zhe * specific language governing permissions and limitations 1880a6f5c5SLiu Zhe * under the License. 1980a6f5c5SLiu Zhe * 2080a6f5c5SLiu Zhe *************************************************************/ 2180a6f5c5SLiu Zhe 222c9c3879Smseidel 232c9c3879Smseidel 2480a6f5c5SLiu Zhe /** 2580a6f5c5SLiu Zhe * 2680a6f5c5SLiu Zhe */ 2780a6f5c5SLiu Zhe package bvt.gui; 2880a6f5c5SLiu Zhe 2980a6f5c5SLiu Zhe import static org.junit.Assert.*; 3080a6f5c5SLiu Zhe import static org.openoffice.test.common.Testspace.*; 3180a6f5c5SLiu Zhe import static org.openoffice.test.vcl.Tester.*; 3280a6f5c5SLiu Zhe import static testlib.gui.AppTool.*; 3380a6f5c5SLiu Zhe import static testlib.gui.UIMap.*; 3480a6f5c5SLiu Zhe 3580a6f5c5SLiu Zhe import java.awt.Rectangle; 3691745ed9SLiu Zhe import java.io.File; 3780a6f5c5SLiu Zhe 3891745ed9SLiu Zhe import org.junit.AfterClass; 3980a6f5c5SLiu Zhe import org.junit.Before; 4080a6f5c5SLiu Zhe import org.junit.BeforeClass; 4180a6f5c5SLiu Zhe import org.junit.Rule; 4280a6f5c5SLiu Zhe import org.junit.Test; 4380a6f5c5SLiu Zhe import org.openoffice.test.common.FileUtil; 4480a6f5c5SLiu Zhe import org.openoffice.test.common.GraphicsUtil; 4580a6f5c5SLiu Zhe import org.openoffice.test.common.Logger; 4680a6f5c5SLiu Zhe 4780a6f5c5SLiu Zhe import testlib.gui.SCTool; 4880a6f5c5SLiu Zhe 4980a6f5c5SLiu Zhe /** 5080a6f5c5SLiu Zhe * 5180a6f5c5SLiu Zhe */ 5280a6f5c5SLiu Zhe public class BasicFunctionTest { 5380a6f5c5SLiu Zhe 5480a6f5c5SLiu Zhe @Rule 5580a6f5c5SLiu Zhe public Logger log = Logger.getLogger(this); 5680a6f5c5SLiu Zhe 5780a6f5c5SLiu Zhe @BeforeClass beforeClass()589edf8282SLiu Zhe public static void beforeClass() { 5980a6f5c5SLiu Zhe app.clean(); 6080a6f5c5SLiu Zhe } 6180a6f5c5SLiu Zhe 6291745ed9SLiu Zhe @AfterClass afterClass()639edf8282SLiu Zhe public static void afterClass() { 649edf8282SLiu Zhe app.stop(); 6591745ed9SLiu Zhe } 6691745ed9SLiu Zhe 6780a6f5c5SLiu Zhe @Before before()6880a6f5c5SLiu Zhe public void before() { 699edf8282SLiu Zhe app.stop(); 7080a6f5c5SLiu Zhe app.start(); 7180a6f5c5SLiu Zhe } 7280a6f5c5SLiu Zhe 739edf8282SLiu Zhe 7480a6f5c5SLiu Zhe @Test smokeTest()7591745ed9SLiu Zhe public void smokeTest() { 7691745ed9SLiu Zhe File smoketestOutput = new File(aoo.getUserInstallation(), "user/temp"); 77a622bb93SDamjan Jovanovic File testDir = getFile().getParentFile(); 78a622bb93SDamjan Jovanovic File smokeTestDir = new File(testDir, "smoketestdoc"); 79a622bb93SDamjan Jovanovic File smokeTestTargetDir = new File(smokeTestDir, "target"); 80a622bb93SDamjan Jovanovic prepareData(new File(smokeTestTargetDir, "TestExtension.oxt").getAbsolutePath()); 8191745ed9SLiu Zhe // Open sample file smoketestdoc.sxw 82a622bb93SDamjan Jovanovic open(prepareData(new File(smokeTestTargetDir, "smoketestdoc.odt").getAbsolutePath())); 8391745ed9SLiu Zhe writer.waitForEnabled(10, 2); 8491745ed9SLiu Zhe // Run test cases 8591745ed9SLiu Zhe app.dispatch("vnd.sun.star.script:Standard.Global.StartTestWithDefaultOptions?language=Basic&location=document", 120); 8691745ed9SLiu Zhe String smoketestlog = FileUtil.readFileAsString(new File(smoketestOutput, "smoketest.log")); 8791745ed9SLiu Zhe String testclosurelog = FileUtil.readFileAsString(new File(smoketestOutput, "testclosure.log")); 8891745ed9SLiu Zhe log.info(smoketestlog + "\n" + testclosurelog); 8991745ed9SLiu Zhe assertTrue("No Error", !smoketestlog.contains("error") && !testclosurelog.contains("error")); 9091745ed9SLiu Zhe 9191745ed9SLiu Zhe } 9291745ed9SLiu Zhe 9391745ed9SLiu Zhe @Test testExportAsPDF()9480a6f5c5SLiu Zhe public void testExportAsPDF() throws Exception { 9580a6f5c5SLiu Zhe String file = prepareData("bvt/pdf.odt"); 9680a6f5c5SLiu Zhe String exportTo1 = getPath("temp/1.pdf"); 9780a6f5c5SLiu Zhe String exportTo2 = getPath("temp/2.pdf"); 9880a6f5c5SLiu Zhe deleteFile(exportTo1); 9980a6f5c5SLiu Zhe deleteFile(exportTo2); 10080a6f5c5SLiu Zhe open(file); 10180a6f5c5SLiu Zhe writer.waitForExistence(10, 1); 10280a6f5c5SLiu Zhe app.dispatch(".uno:ExportToPDF"); 10380a6f5c5SLiu Zhe pdfGeneralPage.ok(); 10480a6f5c5SLiu Zhe submitSaveDlg(exportTo1); 10580a6f5c5SLiu Zhe sleep(1); 10680a6f5c5SLiu Zhe String magic = FileUtil.readFileAsString(exportTo1).substring(0, 4); 10780a6f5c5SLiu Zhe assertEquals("PDF is exported?", "%PDF", magic); 10880a6f5c5SLiu Zhe 10980a6f5c5SLiu Zhe button(".uno:ExportDirectToPDF").click();//Click via toolbar 11080a6f5c5SLiu Zhe submitSaveDlg(exportTo2); 11180a6f5c5SLiu Zhe sleep(1); 11280a6f5c5SLiu Zhe magic = FileUtil.readFileAsString(exportTo2).substring(0, 4); 11380a6f5c5SLiu Zhe assertEquals("PDF is exported directly?", "%PDF", magic); 11480a6f5c5SLiu Zhe } 11580a6f5c5SLiu Zhe 11680a6f5c5SLiu Zhe /** 11780a6f5c5SLiu Zhe * Test the File -- Print Dialog show 11880a6f5c5SLiu Zhe * 11980a6f5c5SLiu Zhe */ 12080a6f5c5SLiu Zhe @Test testPrinter()12180a6f5c5SLiu Zhe public void testPrinter() { 12280a6f5c5SLiu Zhe // Create a new text document 12380a6f5c5SLiu Zhe newTextDocument(); 12480a6f5c5SLiu Zhe app.dispatch(".uno:PrinterSetup"); 12580a6f5c5SLiu Zhe if (activeMsgBox.exists(2)) 12680a6f5c5SLiu Zhe activeMsgBox.ok(); 12780a6f5c5SLiu Zhe 12880a6f5c5SLiu Zhe // PrintService[] ps = PrintServiceLookup.lookupPrintServices(null, null); 12980a6f5c5SLiu Zhe // String[] names = new String[ps.length]; 13080a6f5c5SLiu Zhe // for (int i = 0; i < ps.length; i++) { 13180a6f5c5SLiu Zhe // names[i] = ps[i].getName(); 13280a6f5c5SLiu Zhe // } 13380a6f5c5SLiu Zhe // 13480a6f5c5SLiu Zhe // assertArrayEquals("Printers Names", names, printerSetUpDlgPrinterNames.getItemsText()); 13580a6f5c5SLiu Zhe assertTrue("Printer Setup dialog appears", printerSetUpDlg.exists(3)); 13680a6f5c5SLiu Zhe printerSetUpDlg.cancel(); 13780a6f5c5SLiu Zhe } 13880a6f5c5SLiu Zhe 13980a6f5c5SLiu Zhe /** 14080a6f5c5SLiu Zhe * Test the File -- Java Dialog show 14180a6f5c5SLiu Zhe * 14280a6f5c5SLiu Zhe */ 14380a6f5c5SLiu Zhe // @Test 14480a6f5c5SLiu Zhe // public void testJavaDialog() { 14580a6f5c5SLiu Zhe // 14680a6f5c5SLiu Zhe // // Create a new text document and launch a Wizards dialog which need JVM 14780a6f5c5SLiu Zhe // // work correctly. 14880a6f5c5SLiu Zhe // app.dispatch("private:factory/swriter"); 14980a6f5c5SLiu Zhe // File tempfile = new File(oo.getUserInstallation(), "user/template/myAgendaTemplate.ott"); 15080a6f5c5SLiu Zhe // FileUtil.deleteFile(tempfile); 15180a6f5c5SLiu Zhe // sleep(3); 15280a6f5c5SLiu Zhe // app.dispatch("service:com.sun.star.wizards.agenda.CallWizard?start"); 15380a6f5c5SLiu Zhe // sleep(5); 15480a6f5c5SLiu Zhe // assertTrue(Wizards_AgendaDialog.exists(10)); 15580a6f5c5SLiu Zhe // Wizards_AgendaDialog_FinishButton.click(); 15680a6f5c5SLiu Zhe // sleep(10); 15780a6f5c5SLiu Zhe // writer.focus(); 15880a6f5c5SLiu Zhe // sleep(1); 15980a6f5c5SLiu Zhe // app.dispatch(".uno:SelectAll"); 16080a6f5c5SLiu Zhe // typeKeys("<$copy>"); 16180a6f5c5SLiu Zhe // // System.out.println("now txt:"+app.getClipboard()); 16280a6f5c5SLiu Zhe // // assertTrue(app.getClipboard().startsWith("<Name>")); 16380a6f5c5SLiu Zhe // assertNotNull(app.getClipboard()); 16480a6f5c5SLiu Zhe // } 16580a6f5c5SLiu Zhe 16680a6f5c5SLiu Zhe /** 16780a6f5c5SLiu Zhe * Test the Tools / Macros / Organize Dialogs" show 16880a6f5c5SLiu Zhe * 16980a6f5c5SLiu Zhe */ 17080a6f5c5SLiu Zhe @Test testRunMacro()17180a6f5c5SLiu Zhe public void testRunMacro() { 17280a6f5c5SLiu Zhe open(prepareData("bvt/macro.ods")); 17380a6f5c5SLiu Zhe calc.waitForExistence(10, 2); 17480a6f5c5SLiu Zhe app.dispatch(".uno:RunMacro"); 17580a6f5c5SLiu Zhe runMacroDlgCategories.expand("macro.ods"); 17680a6f5c5SLiu Zhe runMacroDlgCategories.expand("Standard"); 17780a6f5c5SLiu Zhe runMacroDlgCategories.select("Module1"); 17880a6f5c5SLiu Zhe runMacroDlgCommands.select(0); 17980a6f5c5SLiu Zhe runMacroDlg.ok(); 180882d61ebSCarl Marcum sleep(1); 18180a6f5c5SLiu Zhe assertEquals("A3 should be =1+3", "4", SCTool.getCellText("A3")); 18280a6f5c5SLiu Zhe discard(); 18380a6f5c5SLiu Zhe } 18480a6f5c5SLiu Zhe 18580a6f5c5SLiu Zhe /** 18680a6f5c5SLiu Zhe * Test the About Dialog show 18780a6f5c5SLiu Zhe * 18880a6f5c5SLiu Zhe */ 18980a6f5c5SLiu Zhe @Test testHelp()19080a6f5c5SLiu Zhe public void testHelp() { 19180a6f5c5SLiu Zhe app.dispatch(".uno:About"); 19280a6f5c5SLiu Zhe assertTrue(aboutDialog.exists(5)); 19380a6f5c5SLiu Zhe aboutDialog.ok(); 19480a6f5c5SLiu Zhe sleep(1); 19580a6f5c5SLiu Zhe typeKeys("<F1>"); 19680a6f5c5SLiu Zhe assertTrue(helpWindow.exists(5)); 19780a6f5c5SLiu Zhe helpWindow.close(); 19880a6f5c5SLiu Zhe } 19980a6f5c5SLiu Zhe 20080a6f5c5SLiu Zhe /** 20180a6f5c5SLiu Zhe * Test inserting a picture in text document 20280a6f5c5SLiu Zhe * 20380a6f5c5SLiu Zhe * @throws Exception 20480a6f5c5SLiu Zhe */ 20580a6f5c5SLiu Zhe 20680a6f5c5SLiu Zhe @Test testInsertPictureInDocument()20780a6f5c5SLiu Zhe public void testInsertPictureInDocument() throws Exception { 20880a6f5c5SLiu Zhe String bmp_green = prepareData("image/green_256x256.bmp"); 20980a6f5c5SLiu Zhe String bmp_red = prepareData("image/red_256x256.bmp"); 21080a6f5c5SLiu Zhe 21180a6f5c5SLiu Zhe // Create a new text document 21280a6f5c5SLiu Zhe newTextDocument(); 21380a6f5c5SLiu Zhe // Insert a picture fully filled with green 21480a6f5c5SLiu Zhe app.dispatch(".uno:InsertGraphic"); 21580a6f5c5SLiu Zhe submitOpenDlg(bmp_green); 21680a6f5c5SLiu Zhe writer.click(5,200); 21780a6f5c5SLiu Zhe sleep(1); 21880a6f5c5SLiu Zhe 21980a6f5c5SLiu Zhe // Verify if the picture is inserted successfully 22080a6f5c5SLiu Zhe Rectangle rectangle = GraphicsUtil.findRectangle(writer.getScreenRectangle(), 0xFF00FF00); 22180a6f5c5SLiu Zhe assertTrue("Green Picture is inserted?" + rectangle, rectangle != null && rectangle.getWidth() > 10); 22280a6f5c5SLiu Zhe // insert another picture 22380a6f5c5SLiu Zhe app.dispatch(".uno:InsertGraphic"); 22480a6f5c5SLiu Zhe submitOpenDlg(bmp_red); 22580a6f5c5SLiu Zhe writer.click(5, 200); 22680a6f5c5SLiu Zhe sleep(1); 22780a6f5c5SLiu Zhe // Verify if the picture is inserted successfully 22880a6f5c5SLiu Zhe rectangle = GraphicsUtil.findRectangle(writer.getScreenRectangle(), 0xFFFF0000); 22980a6f5c5SLiu Zhe assertTrue("Green Picture is inserted? " + rectangle, rectangle != null && rectangle.getWidth() > 10); 23080a6f5c5SLiu Zhe discard(); 23180a6f5c5SLiu Zhe } 23280a6f5c5SLiu Zhe 23380a6f5c5SLiu Zhe @Test testInsertPictureInSpreadsheet()23480a6f5c5SLiu Zhe public void testInsertPictureInSpreadsheet() throws Exception { 23580a6f5c5SLiu Zhe String bmp_green = prepareData("image/green_64x64.png"); 23680a6f5c5SLiu Zhe String bmp_red = prepareData("image/red_64x64.png"); 23780a6f5c5SLiu Zhe newSpreadsheet(); 23880a6f5c5SLiu Zhe // Insert a picture fully filled with green 23980a6f5c5SLiu Zhe app.dispatch(".uno:InsertGraphic"); 24080a6f5c5SLiu Zhe submitOpenDlg(bmp_green); 24180a6f5c5SLiu Zhe calc.click(5, 150); 24280a6f5c5SLiu Zhe sleep(1); 24380a6f5c5SLiu Zhe 24480a6f5c5SLiu Zhe // Verify if the picture is inserted successfully 24580a6f5c5SLiu Zhe Rectangle rectangle = GraphicsUtil.findRectangle(calc.getScreenRectangle(), 0xFF00FF00); 24680a6f5c5SLiu Zhe assertTrue("Green Picture is inserted?" + rectangle, rectangle != null && rectangle.getWidth() > 10); 24780a6f5c5SLiu Zhe 24880a6f5c5SLiu Zhe SCTool.selectRange("C1"); 24980a6f5c5SLiu Zhe // insert another picture 25080a6f5c5SLiu Zhe app.dispatch(".uno:InsertGraphic"); 25180a6f5c5SLiu Zhe submitOpenDlg(bmp_red); 25280a6f5c5SLiu Zhe calc.click(5, 150); 25380a6f5c5SLiu Zhe sleep(1); 25480a6f5c5SLiu Zhe // Verify if the picture is inserted successfully 25580a6f5c5SLiu Zhe rectangle = GraphicsUtil.findRectangle(calc.getScreenRectangle(), 0xFFFF0000); 25680a6f5c5SLiu Zhe assertTrue("Red Picture is inserted? " + rectangle, rectangle != null && rectangle.getWidth() > 10); 25780a6f5c5SLiu Zhe discard(); 25880a6f5c5SLiu Zhe } 25980a6f5c5SLiu Zhe 26080a6f5c5SLiu Zhe @Test testInsertPictureInPresentation()26180a6f5c5SLiu Zhe public void testInsertPictureInPresentation() throws Exception { 26280a6f5c5SLiu Zhe String bmp_green = prepareData("image/green_256x256.bmp"); 26380a6f5c5SLiu Zhe String bmp_red = prepareData("image/red_256x256.bmp"); 26480a6f5c5SLiu Zhe newPresentation(); 26580a6f5c5SLiu Zhe // Insert a picture fully filled with green 26680a6f5c5SLiu Zhe app.dispatch(".uno:InsertGraphic"); 26780a6f5c5SLiu Zhe submitOpenDlg(bmp_green); 26880a6f5c5SLiu Zhe impress.click(5, 5); 26980a6f5c5SLiu Zhe sleep(1); 27080a6f5c5SLiu Zhe 27180a6f5c5SLiu Zhe // Verify if the picture is inserted successfully 27280a6f5c5SLiu Zhe Rectangle rectangle = GraphicsUtil.findRectangle(impress.getScreenRectangle(), 0xFF00FF00); 27380a6f5c5SLiu Zhe assertTrue("Green Picture is inserted?" + rectangle, rectangle != null && rectangle.getWidth() > 10); 27480a6f5c5SLiu Zhe // insert another picture 27580a6f5c5SLiu Zhe app.dispatch(".uno:InsertGraphic"); 27680a6f5c5SLiu Zhe submitOpenDlg(bmp_red); 27780a6f5c5SLiu Zhe impress.click(1, 1); 27880a6f5c5SLiu Zhe sleep(1); 27980a6f5c5SLiu Zhe // Verify if the picture is inserted successfully 28080a6f5c5SLiu Zhe rectangle = GraphicsUtil.findRectangle(impress.getScreenRectangle(), 0xFFFF0000); 28180a6f5c5SLiu Zhe assertTrue("Red Picture is inserted? " + rectangle, rectangle != null && rectangle.getWidth() > 10); 28280a6f5c5SLiu Zhe discard(); 28380a6f5c5SLiu Zhe } 28480a6f5c5SLiu Zhe 28580a6f5c5SLiu Zhe @Test testSlideShow()28680a6f5c5SLiu Zhe public void testSlideShow() throws Exception { 28780a6f5c5SLiu Zhe open(prepareData("bvt/slideshow.odp")); 28880a6f5c5SLiu Zhe impress.waitForExistence(10, 2); 28980a6f5c5SLiu Zhe sleep(1); 29080a6f5c5SLiu Zhe impress.typeKeys("<F5>"); 29180a6f5c5SLiu Zhe sleep(3); 29280a6f5c5SLiu Zhe Rectangle rectangle = GraphicsUtil.findRectangle(slideShow.getScreenRectangle(), 0xFFFF0000); 29380a6f5c5SLiu Zhe assertNotNull("1st slide appears", rectangle); 29480a6f5c5SLiu Zhe slideShow.click(0.5, 0.5); 29580a6f5c5SLiu Zhe sleep(2); 29680a6f5c5SLiu Zhe rectangle = GraphicsUtil.findRectangle(slideShow.getScreenRectangle(), 0xFF00FF00); 29780a6f5c5SLiu Zhe assertNotNull("2nd slide appears", rectangle); 29880a6f5c5SLiu Zhe typeKeys("<enter>"); 29980a6f5c5SLiu Zhe sleep(2); 30080a6f5c5SLiu Zhe rectangle = GraphicsUtil.findRectangle(slideShow.getScreenRectangle(), 0xFF0000FF); 30180a6f5c5SLiu Zhe assertNotNull("3rd slide appears", rectangle); 30280a6f5c5SLiu Zhe slideShow.click(0.5, 0.5); 30380a6f5c5SLiu Zhe sleep(2); 30480a6f5c5SLiu Zhe rectangle = GraphicsUtil.findRectangle(slideShow.getScreenRectangle(), 0xFF0000FF); 30580a6f5c5SLiu Zhe assertNull("The end", rectangle); 30680a6f5c5SLiu Zhe slideShow.click(0.5, 0.5); 30780a6f5c5SLiu Zhe sleep(3); 30880a6f5c5SLiu Zhe assertFalse("Quit", slideShow.exists()); 30980a6f5c5SLiu Zhe } 31080a6f5c5SLiu Zhe 31180a6f5c5SLiu Zhe @Test testFind()31280a6f5c5SLiu Zhe public void testFind() { 31380a6f5c5SLiu Zhe open(prepareData("bvt/find.odt")); 31480a6f5c5SLiu Zhe writer.waitForExistence(10, 2); 31580a6f5c5SLiu Zhe app.dispatch(".uno:SearchDialog"); 31680a6f5c5SLiu Zhe findDlgFor.setText("OpenOffice"); 31780a6f5c5SLiu Zhe findDlgFind.click(); 31880a6f5c5SLiu Zhe sleep(1); 31980a6f5c5SLiu Zhe writer.typeKeys("<$copy>"); 32080a6f5c5SLiu Zhe assertEquals("OpenOffice", app.getClipboard()); 32180a6f5c5SLiu Zhe findDlgFindAll.click(); 32280a6f5c5SLiu Zhe sleep(1); 32380a6f5c5SLiu Zhe writer.typeKeys("<$copy>"); 32480a6f5c5SLiu Zhe assertEquals("OpenOfficeOpenOfficeOpenOffice", app.getClipboard()); 32580a6f5c5SLiu Zhe findDlgReplaceWith.setText("Awesome OpenOffice"); 32680a6f5c5SLiu Zhe findDlgReplaceAll.click(); 32780a6f5c5SLiu Zhe sleep(1); 32880a6f5c5SLiu Zhe msgbox("Search key replaced 3 times.").ok(); 32980a6f5c5SLiu Zhe findDlg.close(); 33080a6f5c5SLiu Zhe sleep(1); 33180a6f5c5SLiu Zhe assertEquals( 332*190f2c20Scbmarcum "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. ", 33380a6f5c5SLiu Zhe copyAll()); 334bf385f73SDamjan Jovanovic discard(); 33580a6f5c5SLiu Zhe } 3362e4d2335SDamjan Jovanovic 3372e4d2335SDamjan Jovanovic @Test testFindFormulasAndValues()3382e4d2335SDamjan Jovanovic public void testFindFormulasAndValues() { 3392e4d2335SDamjan Jovanovic open(prepareData("bvt/searchFormulasValues.ods")); 3402e4d2335SDamjan Jovanovic calc.waitForExistence(10, 2); 3412e4d2335SDamjan Jovanovic 3422e4d2335SDamjan Jovanovic // Searching for 2003 by formula finds A2 3432e4d2335SDamjan Jovanovic SCTool.selectRange("A1"); 3442e4d2335SDamjan Jovanovic app.dispatch(".uno:SearchDialog"); 3452e4d2335SDamjan Jovanovic findDlgFor.setText("2003"); 3462e4d2335SDamjan Jovanovic findDlgMore.click(); 3472e4d2335SDamjan Jovanovic findDlgCalcSearchIn.select("Formulas"); 3482e4d2335SDamjan Jovanovic findDlgFind.click(); 3492e4d2335SDamjan Jovanovic sleep(1); 3502e4d2335SDamjan Jovanovic assertEquals("wrong cell found for formulas search", "A2", scInputBarPosition.getText()); 3512e4d2335SDamjan Jovanovic findDlg.close(); 3522e4d2335SDamjan Jovanovic 3532e4d2335SDamjan Jovanovic // Searching for October by value finds A2 3542e4d2335SDamjan Jovanovic SCTool.selectRange("A1"); 3552e4d2335SDamjan Jovanovic app.dispatch(".uno:SearchDialog"); 3562e4d2335SDamjan Jovanovic findDlgFor.setText("October"); 3572e4d2335SDamjan Jovanovic findDlgMore.click(); 3582e4d2335SDamjan Jovanovic findDlgCalcSearchIn.select("Values"); 3592e4d2335SDamjan Jovanovic findDlgFind.click(); 3602e4d2335SDamjan Jovanovic sleep(1); 3612e4d2335SDamjan Jovanovic assertEquals("wrong cell found for values search", "A2", scInputBarPosition.getText()); 3622e4d2335SDamjan Jovanovic findDlg.close(); 3632e4d2335SDamjan Jovanovic 3642e4d2335SDamjan Jovanovic discard(); 3652e4d2335SDamjan Jovanovic } 36680a6f5c5SLiu Zhe 36780a6f5c5SLiu Zhe @Test testFillInSpreadsheet()36880a6f5c5SLiu Zhe public void testFillInSpreadsheet() { 36980a6f5c5SLiu Zhe String[][] expected1 = new String[][] { { "1" }, { "1" }, { "1" }, { "1" }, { "1" }, { "1" }, }; 37080a6f5c5SLiu Zhe String[][] expected2 = new String[][] { { "2" }, { "2" }, { "2" }, { "2" }, { "2" }, { "2" }, }; 37180a6f5c5SLiu Zhe String[][] expected3 = new String[][] { { "Hi friends", "Hi friends", "Hi friends", "Hi friends" } }; 37280a6f5c5SLiu Zhe String[][] expected4 = new String[][] { { "99999.999", "99999.999", "99999.999", "99999.999" } }; 37380a6f5c5SLiu Zhe String[][] expected5 = new String[][] { 37480a6f5c5SLiu Zhe { "99999.999", "-10" }, { "100000.999", "-9" }, { "100001.999", "-8" }, { "100002.999", "-7" }, { "100003.999", "-6" } 37580a6f5c5SLiu Zhe }; 37680a6f5c5SLiu Zhe newSpreadsheet(); 37780a6f5c5SLiu Zhe SCTool.selectRange("C5"); 37880a6f5c5SLiu Zhe typeKeys("1<enter>"); 37980a6f5c5SLiu Zhe SCTool.selectRange("C5:C10"); 38080a6f5c5SLiu Zhe app.dispatch(".uno:FillDown"); 38180a6f5c5SLiu Zhe assertArrayEquals("Fill Down:", expected1, SCTool.getCellTexts("C5:C10")); 38280a6f5c5SLiu Zhe 38380a6f5c5SLiu Zhe SCTool.selectRange("D10"); 38480a6f5c5SLiu Zhe typeKeys("2<enter>"); 38580a6f5c5SLiu Zhe SCTool.selectRange("D5:D10"); 38680a6f5c5SLiu Zhe app.dispatch(".uno:FillUp"); 38780a6f5c5SLiu Zhe assertArrayEquals("Fill Up:", expected2, SCTool.getCellTexts("D5:D10")); 38880a6f5c5SLiu Zhe 38980a6f5c5SLiu Zhe SCTool.selectRange("A1"); 39080a6f5c5SLiu Zhe typeKeys("Hi friends<enter>"); 39180a6f5c5SLiu Zhe SCTool.selectRange("A1:D1"); 39280a6f5c5SLiu Zhe app.dispatch(".uno:FillRight"); 39380a6f5c5SLiu Zhe assertArrayEquals("Fill Right:", expected3, SCTool.getCellTexts("A1:D1")); 39480a6f5c5SLiu Zhe 39580a6f5c5SLiu Zhe SCTool.selectRange("D2"); 39680a6f5c5SLiu Zhe typeKeys("99999.999<enter>"); 39780a6f5c5SLiu Zhe SCTool.selectRange("A2:D2"); 39880a6f5c5SLiu Zhe app.dispatch(".uno:FillLeft"); 39980a6f5c5SLiu Zhe assertArrayEquals("Fill left:", expected4, SCTool.getCellTexts("A2:D2")); 40080a6f5c5SLiu Zhe 40180a6f5c5SLiu Zhe SCTool.selectRange("E1"); 40280a6f5c5SLiu Zhe typeKeys("99999.999<tab>-10<enter>"); 40380a6f5c5SLiu Zhe 40480a6f5c5SLiu Zhe SCTool.selectRange("E1:F5"); 40580a6f5c5SLiu Zhe app.dispatch(".uno:FillSeries"); 40680a6f5c5SLiu Zhe fillSeriesDlg.ok(); 40780a6f5c5SLiu Zhe sleep(1); 40880a6f5c5SLiu Zhe assertArrayEquals("Fill series..", expected5, SCTool.getCellTexts("E1:F5")); 40980a6f5c5SLiu Zhe discard(); 41080a6f5c5SLiu Zhe } 41180a6f5c5SLiu Zhe 41280a6f5c5SLiu Zhe @Test testSort()41380a6f5c5SLiu Zhe public void testSort() { 41480a6f5c5SLiu Zhe String[][] expected1 = new String[][] { { "-9999999" }, { "-1.1" }, { "-1.1" }, { "0" }, { "0" }, { "0.1" }, { "10" }, { "12" }, { "9999999" }, { "9999999" }, 41580a6f5c5SLiu Zhe 41680a6f5c5SLiu Zhe }; 41780a6f5c5SLiu Zhe String[][] expected2 = new String[][] { { "TRUE", "Oracle" }, { "TRUE", "OpenOffice" }, { "FALSE", "OpenOffice" }, { "TRUE", "IBM" }, { "FALSE", "IBM" }, 41880a6f5c5SLiu Zhe { "TRUE", "Google" }, { "FALSE", "facebook " }, { "TRUE", "Apache" }, { "TRUE", "!yahoo" }, { "TRUE", "" }, 41980a6f5c5SLiu Zhe 42080a6f5c5SLiu Zhe }; 42180a6f5c5SLiu Zhe 42280a6f5c5SLiu Zhe String[][] expected3 = new String[][] { { "Sunday" }, { "Monday" }, { "Tuesday" }, { "Wednesday" }, { "Thursday" }, { "Friday" }, { "Saturday" }, 42380a6f5c5SLiu Zhe 42480a6f5c5SLiu Zhe }; 42580a6f5c5SLiu Zhe 42680a6f5c5SLiu Zhe String[][] expected4 = new String[][] { { "-$10.00" }, { "$0.00" }, { "$0.00" }, { "$1.00" }, { "$3.00" }, { "$9.00" }, { "$123.00" }, { "$200.00" }, { "$400.00" }, 42780a6f5c5SLiu Zhe { "$10,000.00" }, 42880a6f5c5SLiu Zhe 42980a6f5c5SLiu Zhe }; 43080a6f5c5SLiu Zhe open(prepareData("bvt/sort.ods")); 43180a6f5c5SLiu Zhe calc.waitForExistence(10, 2); 43280a6f5c5SLiu Zhe SCTool.selectRange("A1:A10"); 43380a6f5c5SLiu Zhe app.dispatch(".uno:DataSort"); 43480a6f5c5SLiu Zhe sortWarningDlgCurrent.click(); 43580a6f5c5SLiu Zhe assertEquals(1, sortPageBy1.getSelIndex()); 43680a6f5c5SLiu Zhe sortPage.ok(); 43780a6f5c5SLiu Zhe sleep(1); 43880a6f5c5SLiu Zhe assertArrayEquals("Sorted Data", expected1, SCTool.getCellTexts("A1:A10")); 43980a6f5c5SLiu Zhe SCTool.selectRange("B1:C10"); 44080a6f5c5SLiu Zhe app.dispatch(".uno:DataSort"); 44180a6f5c5SLiu Zhe 44280a6f5c5SLiu Zhe sortPageBy1.select(2); 44380a6f5c5SLiu Zhe sortPageDescending1.check(); 44480a6f5c5SLiu Zhe assertFalse(sortPageBy3.isEnabled()); 44580a6f5c5SLiu Zhe assertFalse(sortPageAscending3.isEnabled()); 44680a6f5c5SLiu Zhe assertFalse(sortPageDescending3.isEnabled()); 44780a6f5c5SLiu Zhe sortPageBy2.select(1); 44880a6f5c5SLiu Zhe assertTrue(sortPageBy3.isEnabled()); 44980a6f5c5SLiu Zhe assertTrue(sortPageAscending3.isEnabled()); 45080a6f5c5SLiu Zhe assertTrue(sortPageDescending3.isEnabled()); 45180a6f5c5SLiu Zhe sortPageDescending2.check(); 45280a6f5c5SLiu Zhe sortPageBy2.select(0); 45380a6f5c5SLiu Zhe assertFalse(sortPageBy3.isEnabled()); 45480a6f5c5SLiu Zhe assertFalse(sortPageAscending3.isEnabled()); 45580a6f5c5SLiu Zhe assertFalse(sortPageDescending3.isEnabled()); 45680a6f5c5SLiu Zhe sortPageBy2.select(1); 45780a6f5c5SLiu Zhe sortPage.ok(); 45880a6f5c5SLiu Zhe sleep(1); 45980a6f5c5SLiu Zhe 46080a6f5c5SLiu Zhe assertArrayEquals("Sorted Data", expected2, SCTool.getCellTexts("B1:C10")); 46180a6f5c5SLiu Zhe SCTool.selectRange("D1:D7"); 46280a6f5c5SLiu Zhe app.dispatch(".uno:DataSort"); 46380a6f5c5SLiu Zhe sortWarningDlgCurrent.click(); 46480a6f5c5SLiu Zhe sortOptionsPage.select(); 46580a6f5c5SLiu Zhe sortOptionsPageRangeContainsColumnLabels.uncheck(); 46680a6f5c5SLiu Zhe sortOptionsPageCustomSortOrder.check(); 46780a6f5c5SLiu Zhe sortOptionsPageCustomSortOrderList.select("Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday"); 46880a6f5c5SLiu Zhe sortOptionsPage.ok(); 46980a6f5c5SLiu Zhe sleep(1); 47080a6f5c5SLiu Zhe assertArrayEquals("Sorted Data", expected3, SCTool.getCellTexts("D1:D7")); 47180a6f5c5SLiu Zhe 47280a6f5c5SLiu Zhe SCTool.selectRange("E1:E10"); 47380a6f5c5SLiu Zhe app.dispatch(".uno:DataSort"); 47480a6f5c5SLiu Zhe sortWarningDlgCurrent.click(); 47580a6f5c5SLiu Zhe sortPage.ok(); 47680a6f5c5SLiu Zhe sleep(1); 47780a6f5c5SLiu Zhe assertArrayEquals("Sorted Data", expected4, SCTool.getCellTexts("E1:E10")); 47880a6f5c5SLiu Zhe discard(); 47980a6f5c5SLiu Zhe } 48080a6f5c5SLiu Zhe 48180a6f5c5SLiu Zhe /** 48280a6f5c5SLiu Zhe * Test insert a chart in a draw document 1. New a draw document 2. Insert a 48380a6f5c5SLiu Zhe * chart 3. Check if the chart is inserted successfully 48480a6f5c5SLiu Zhe * 48580a6f5c5SLiu Zhe * @throws Exception 48680a6f5c5SLiu Zhe */ 48780a6f5c5SLiu Zhe @Test testInsertChartInDraw()48880a6f5c5SLiu Zhe public void testInsertChartInDraw() throws Exception { 48980a6f5c5SLiu Zhe // Create a new drawing document 49080a6f5c5SLiu Zhe newDrawing(); 49180a6f5c5SLiu Zhe // Insert a chart 49280a6f5c5SLiu Zhe app.dispatch(".uno:InsertObjectChart"); 49380a6f5c5SLiu Zhe sleep(3); 49480a6f5c5SLiu Zhe 49580a6f5c5SLiu Zhe // Verify if the chart is inserted successfully 49680a6f5c5SLiu Zhe assertTrue("Chart Editor appears", chart.exists(3)); 49780a6f5c5SLiu Zhe // Focus on edit pane 49880a6f5c5SLiu Zhe draw.click(5, 5); 49980a6f5c5SLiu Zhe sleep(1); 50080a6f5c5SLiu Zhe assertFalse("Chart Editor appears", chart.exists()); 50180a6f5c5SLiu Zhe discard(); 50280a6f5c5SLiu Zhe } 50380a6f5c5SLiu Zhe 50480a6f5c5SLiu Zhe /** 50580a6f5c5SLiu Zhe * Test insert a chart in a text document 1. New a text document 2. Insert a 50680a6f5c5SLiu Zhe * chart 3. Check if the chart is inserted successfully 50780a6f5c5SLiu Zhe * 50880a6f5c5SLiu Zhe * @throws Exception 50980a6f5c5SLiu Zhe */ 51080a6f5c5SLiu Zhe @Test testInsertChartInDocument()51180a6f5c5SLiu Zhe public void testInsertChartInDocument() throws Exception { 51280a6f5c5SLiu Zhe // Create a new text document 51380a6f5c5SLiu Zhe newTextDocument(); 51480a6f5c5SLiu Zhe // Insert a chart 51580a6f5c5SLiu Zhe app.dispatch(".uno:InsertObjectChart"); 51680a6f5c5SLiu Zhe sleep(3); 51780a6f5c5SLiu Zhe 51880a6f5c5SLiu Zhe // Verify if the chart is inserted successfully 51980a6f5c5SLiu Zhe assertTrue("Chart Editor appears", chart.exists(3)); 52080a6f5c5SLiu Zhe // Focus on edit pane 52180a6f5c5SLiu Zhe writer.click(5, 5); 52280a6f5c5SLiu Zhe sleep(1); 52380a6f5c5SLiu Zhe assertFalse("Chart Editor appears", chart.exists()); 52480a6f5c5SLiu Zhe discard(); 52580a6f5c5SLiu Zhe } 52680a6f5c5SLiu Zhe 52780a6f5c5SLiu Zhe /** 52880a6f5c5SLiu Zhe * Test insert a chart in a spreadsheet document 1. New a spreadsheet 52980a6f5c5SLiu Zhe * document 2. Insert a chart 3. Check if the chart is inserted successfully 53080a6f5c5SLiu Zhe * 53180a6f5c5SLiu Zhe * @throws Exception 53280a6f5c5SLiu Zhe */ 53380a6f5c5SLiu Zhe @Test testInsertChartInSpreadsheet()53480a6f5c5SLiu Zhe public void testInsertChartInSpreadsheet() throws Exception { 53580a6f5c5SLiu Zhe // Create a new spreadsheet document 53680a6f5c5SLiu Zhe newSpreadsheet(); 53780a6f5c5SLiu Zhe // Insert a chart 53880a6f5c5SLiu Zhe app.dispatch(".uno:InsertObjectChart"); 53980a6f5c5SLiu Zhe sleep(3); 54080a6f5c5SLiu Zhe chartWizard.ok(); 54180a6f5c5SLiu Zhe 54280a6f5c5SLiu Zhe // Verify if the chart is inserted successfully 54380a6f5c5SLiu Zhe assertTrue("Chart Editor appears", chart.exists(3)); 54480a6f5c5SLiu Zhe // Focus on edit pane 54580a6f5c5SLiu Zhe calc.click(5, 5); 54680a6f5c5SLiu Zhe sleep(1); 54780a6f5c5SLiu Zhe assertFalse("Chart Editor appears", chart.exists()); 54880a6f5c5SLiu Zhe discard(); 54980a6f5c5SLiu Zhe } 55080a6f5c5SLiu Zhe 55180a6f5c5SLiu Zhe /** 55280a6f5c5SLiu Zhe * Test insert a chart in a presentation document 1. New a presentation 55380a6f5c5SLiu Zhe * document 2. Insert a chart 3. Check if the chart is inserted successfully 55480a6f5c5SLiu Zhe * 55580a6f5c5SLiu Zhe * @throws Exception 55680a6f5c5SLiu Zhe */ 55780a6f5c5SLiu Zhe @Test testInsertChartInPresentation()55880a6f5c5SLiu Zhe public void testInsertChartInPresentation() throws Exception { 55980a6f5c5SLiu Zhe // Create a new presentation document 56080a6f5c5SLiu Zhe newPresentation(); 56180a6f5c5SLiu Zhe // Insert a chart 56280a6f5c5SLiu Zhe app.dispatch(".uno:InsertObjectChart"); 56380a6f5c5SLiu Zhe sleep(3); 56480a6f5c5SLiu Zhe // Verify if the chart is inserted successfully 56580a6f5c5SLiu Zhe assertTrue("Chart Editor appears", chart.exists(3)); 56680a6f5c5SLiu Zhe // Focus on edit pane 56780a6f5c5SLiu Zhe impress.click(5, 5); 56880a6f5c5SLiu Zhe sleep(1); 56980a6f5c5SLiu Zhe assertFalse("Chart Editor appears", chart.exists()); 57080a6f5c5SLiu Zhe discard(); 57180a6f5c5SLiu Zhe } 57280a6f5c5SLiu Zhe 57380a6f5c5SLiu Zhe /** 57480a6f5c5SLiu Zhe * Test insert a table in a draw document 1. New a draw document 2. Insert a 57580a6f5c5SLiu Zhe * default table 3. Check if the table is inserted successfully 57680a6f5c5SLiu Zhe * 57780a6f5c5SLiu Zhe * @throws Exception 57880a6f5c5SLiu Zhe */ 57980a6f5c5SLiu Zhe @Test testInsertTableInDraw()58080a6f5c5SLiu Zhe public void testInsertTableInDraw() throws Exception { 58180a6f5c5SLiu Zhe // Create a new drawing document 58280a6f5c5SLiu Zhe newDrawing(); 58380a6f5c5SLiu Zhe // Insert a table 58480a6f5c5SLiu Zhe app.dispatch(".uno:InsertTable"); 58580a6f5c5SLiu Zhe insertTable.ok(); 58680a6f5c5SLiu Zhe sleep(1); 58780a6f5c5SLiu Zhe draw.typeKeys("3"); 58880a6f5c5SLiu Zhe assertTrue("Table Toolbar appears", tableToolbar.exists(3)); 58980a6f5c5SLiu Zhe // assertEquals("The cell content", "3", copyAll()); 59080a6f5c5SLiu Zhe discard(); 59180a6f5c5SLiu Zhe } 59280a6f5c5SLiu Zhe 59380a6f5c5SLiu Zhe /** 59480a6f5c5SLiu Zhe * Test insert a table in a text document 1. New a text document 2. Insert a 59580a6f5c5SLiu Zhe * default table 3. Check if the table is inserted successfully 59680a6f5c5SLiu Zhe * 59780a6f5c5SLiu Zhe * @throws Exception 59880a6f5c5SLiu Zhe */ 59980a6f5c5SLiu Zhe @Test testInsertTableInDocument()60080a6f5c5SLiu Zhe public void testInsertTableInDocument() throws Exception { 60180a6f5c5SLiu Zhe // Create a new text document 60280a6f5c5SLiu Zhe newTextDocument(); 60380a6f5c5SLiu Zhe // Insert a table 60480a6f5c5SLiu Zhe app.dispatch(".uno:InsertTable"); 60580a6f5c5SLiu Zhe writerInsertTable.ok(); 60680a6f5c5SLiu Zhe sleep(1); 60780a6f5c5SLiu Zhe writer.typeKeys("3"); 60880a6f5c5SLiu Zhe // Verify if the table toolbar is active 60980a6f5c5SLiu Zhe assertTrue("Table Toolbar appears", tableToolbar.exists(3)); 61080a6f5c5SLiu Zhe // assertEquals("The cell content", "3", copyAll()); 61180a6f5c5SLiu Zhe discard(); 61280a6f5c5SLiu Zhe } 61380a6f5c5SLiu Zhe 61480a6f5c5SLiu Zhe /** 61580a6f5c5SLiu Zhe * Test insert a table in a presentation document 1. New a presentation 61680a6f5c5SLiu Zhe * document 2. Insert a default table 3. Check if the table is inserted 61780a6f5c5SLiu Zhe * successfully 61880a6f5c5SLiu Zhe * 61980a6f5c5SLiu Zhe * @throws Exception 62080a6f5c5SLiu Zhe */ 62180a6f5c5SLiu Zhe @Test testInsertTableInPresentation()62280a6f5c5SLiu Zhe public void testInsertTableInPresentation() throws Exception { 62380a6f5c5SLiu Zhe // Create a new presentation document 62480a6f5c5SLiu Zhe newPresentation(); 62580a6f5c5SLiu Zhe 62680a6f5c5SLiu Zhe // Insert a table 62780a6f5c5SLiu Zhe app.dispatch(".uno:InsertTable"); 62880a6f5c5SLiu Zhe insertTable.ok(); 62980a6f5c5SLiu Zhe sleep(1); 63080a6f5c5SLiu Zhe impress.typeKeys("3"); 63180a6f5c5SLiu Zhe assertTrue("Table Toolbar appears", tableToolbar.exists(3)); 63280a6f5c5SLiu Zhe // assertEquals("The cell content", "3", copyAll()); 63380a6f5c5SLiu Zhe discard(); 63480a6f5c5SLiu Zhe } 63580a6f5c5SLiu Zhe 63680a6f5c5SLiu Zhe /** 63780a6f5c5SLiu Zhe * Test insert a function in a spreadsheet document via Sum button 1. New a 63880a6f5c5SLiu Zhe * spreadsheet document 2. Insert a function via Sum button 3. Check if the 63980a6f5c5SLiu Zhe * result is correct 64080a6f5c5SLiu Zhe * 64180a6f5c5SLiu Zhe * @throws Exception 64280a6f5c5SLiu Zhe */ 64380a6f5c5SLiu Zhe @Test testSumInFormulaBar()64480a6f5c5SLiu Zhe public void testSumInFormulaBar() throws Exception { 64580a6f5c5SLiu Zhe // Create a new spreadsheet document 64680a6f5c5SLiu Zhe newSpreadsheet(); 64780a6f5c5SLiu Zhe // Insert source numbers 64880a6f5c5SLiu Zhe String sourceNumber1 = "5"; 64980a6f5c5SLiu Zhe String sourceNumber2 = "3"; 65080a6f5c5SLiu Zhe String expectedResult = "8"; 65180a6f5c5SLiu Zhe SCTool.selectRange("A1"); 65280a6f5c5SLiu Zhe typeKeys(sourceNumber1); 65380a6f5c5SLiu Zhe SCTool.selectRange("B1"); 65480a6f5c5SLiu Zhe typeKeys(sourceNumber2); 65580a6f5c5SLiu Zhe // Insert a function via Sum button 65680a6f5c5SLiu Zhe SCTool.selectRange("C1"); 65780a6f5c5SLiu Zhe scInputBarSum.click(); 65880a6f5c5SLiu Zhe typeKeys("<enter>"); 65980a6f5c5SLiu Zhe // Verify if the calculated result is equal to the expected result 66080a6f5c5SLiu Zhe assertEquals("The calculated result", expectedResult, SCTool.getCellText("C1")); 66180a6f5c5SLiu Zhe discard(); 66280a6f5c5SLiu Zhe } 66380a6f5c5SLiu Zhe 66480a6f5c5SLiu Zhe /** 66580a6f5c5SLiu Zhe * Test insert a function in a spreadsheet document via inputbar 1. New a 66680a6f5c5SLiu Zhe * spreadsheet document 2. Insert a function via inputbar: COS 3. Check if 66780a6f5c5SLiu Zhe * the result is correct 66880a6f5c5SLiu Zhe * 66980a6f5c5SLiu Zhe * @throws Exception 67080a6f5c5SLiu Zhe */ 67180a6f5c5SLiu Zhe @Test testInsertFunctionViaFormulaBar()67280a6f5c5SLiu Zhe public void testInsertFunctionViaFormulaBar() throws Exception { 67380a6f5c5SLiu Zhe // Create a new spreadsheet document 67480a6f5c5SLiu Zhe newSpreadsheet(); 67580a6f5c5SLiu Zhe // Insert source numbers and expected result 67680a6f5c5SLiu Zhe String sourceData = "0"; 67780a6f5c5SLiu Zhe String expectedResult = "1"; 67880a6f5c5SLiu Zhe SCTool.selectRange("A1"); 67980a6f5c5SLiu Zhe typeKeys(sourceData); 68080a6f5c5SLiu Zhe 68180a6f5c5SLiu Zhe // Insert a function via inputbar: COS 68280a6f5c5SLiu Zhe SCTool.selectRange("D1"); 68380a6f5c5SLiu Zhe scInputBarInput.inputKeys("=COS(A1)"); 68480a6f5c5SLiu Zhe typeKeys("<enter>"); 685882d61ebSCarl Marcum sleep(1); 68680a6f5c5SLiu Zhe // Verify if the calculated result is equal to the expected result 687882d61ebSCarl Marcum String result = SCTool.getCellText("D1"); 688882d61ebSCarl Marcum sleep(1); 689882d61ebSCarl Marcum assertEquals("The calculated result", expectedResult, result); 69080a6f5c5SLiu Zhe discard(); 69180a6f5c5SLiu Zhe } 69280a6f5c5SLiu Zhe 69380a6f5c5SLiu Zhe /** 69480a6f5c5SLiu Zhe * Test insert a function in a spreadsheet document via Function Wizard 69580a6f5c5SLiu Zhe * Dialog 1. New a spreadsheet document 2. Insert a function via Function 69680a6f5c5SLiu Zhe * Wizard Dialog: ABS 3. Check if the result is correct 69780a6f5c5SLiu Zhe * 69880a6f5c5SLiu Zhe * @throws Exception 69980a6f5c5SLiu Zhe */ 70080a6f5c5SLiu Zhe @Test testFunctionWizardInFormulaBar()70180a6f5c5SLiu Zhe public void testFunctionWizardInFormulaBar() throws Exception { 70280a6f5c5SLiu Zhe // Create a new spreadsheet document 70380a6f5c5SLiu Zhe newSpreadsheet(); 70480a6f5c5SLiu Zhe // Insert source number 70580a6f5c5SLiu Zhe String sourceNumber = "-5"; 70680a6f5c5SLiu Zhe String expectedResult = "5"; 70780a6f5c5SLiu Zhe SCTool.selectRange("A1"); 70880a6f5c5SLiu Zhe typeKeys(sourceNumber); 70980a6f5c5SLiu Zhe typeKeys("<enter>"); 71080a6f5c5SLiu Zhe // Insert a function via Function Wizard Dialog: ABS 71180a6f5c5SLiu Zhe SCTool.selectRange("B1"); 71280a6f5c5SLiu Zhe app.dispatch(".uno:FunctionDialog"); 71380a6f5c5SLiu Zhe // SC_FunctionWizardDlg_FunctionList.doubleClick(5, 5); 71480a6f5c5SLiu Zhe scFunctionWizardDlgFunctionList.select("ABS"); 71580a6f5c5SLiu Zhe scFunctionWizardDlgNext.click(); // Use "Next" button 716f9b06548Sdamjan scFunctionWizardDlgEdit1.typeKeys("A1"); 717882d61ebSCarl Marcum sleep(1); 71880a6f5c5SLiu Zhe scFunctionWizardDlg.ok(); 719882d61ebSCarl Marcum sleep(1); 72080a6f5c5SLiu Zhe // Verify if the calculated result is equal to the expected result 721882d61ebSCarl Marcum String result = SCTool.getCellText("B1"); 722882d61ebSCarl Marcum sleep(1); 723882d61ebSCarl Marcum assertEquals("The calculated result", expectedResult, result); 72480a6f5c5SLiu Zhe discard(); 72580a6f5c5SLiu Zhe } 726be190f59SCarl Marcum 727be190f59SCarl Marcum /** 728be190f59SCarl Marcum * Test open a non-http(s) type hyperlink (with host only) in a text document. 729be190f59SCarl Marcum * (coverage included in fvt.gui.sw.hyperlink.WarningDialog 730be190f59SCarl Marcum * testHyperlinkDisplaysWarning() and included here for build verification) 731be190f59SCarl Marcum * 1. New a text document 732be190f59SCarl Marcum * 2. Insert a dav type hyperlink 733be190f59SCarl Marcum * 3. Open hyperlink 734be190f59SCarl Marcum * 4. Verify security warning dialog is displayed 735be190f59SCarl Marcum * 736be190f59SCarl Marcum * @throws Exception 737be190f59SCarl Marcum */ 738be190f59SCarl Marcum @Test testNonHttpHyperlinkWithHostOnly()739be190f59SCarl Marcum public void testNonHttpHyperlinkWithHostOnly() throws Exception { 740be190f59SCarl Marcum // Create a new text document 741be190f59SCarl Marcum newTextDocument(); 742be190f59SCarl Marcum writer.waitForExistence(10, 2); 743be190f59SCarl Marcum // open the hyperlink dialog 744be190f59SCarl Marcum writer.typeKeys("<alt i>"); // insert menu 745be190f59SCarl Marcum writer.typeKeys("h"); // hyperlink 746be190f59SCarl Marcum hyperlinkInetPathComboBox.setText("dav://nonexistant.url.com"); //target 747be190f59SCarl Marcum hyperlinkInetText.setText("dav://nonexistant.url.com"); // displayed text 748be190f59SCarl Marcum hyperlinkDialogOkBtn.click(); // apply 749be190f59SCarl Marcum hyperlinkDialogCancelBtn.click(); // close 750be190f59SCarl Marcum sleep(1); // give the dialog time to close 751be190f59SCarl Marcum typeKeys("<shift F10>"); // context menu 752be190f59SCarl Marcum typeKeys("o"); // open hyperlink 753be190f59SCarl Marcum // we can't be sure of the language so just check for the dialog 754be190f59SCarl Marcum boolean msgExists = activeMsgBox.exists(1); // wait 1 second for the dialog 755be190f59SCarl Marcum if (msgExists) { 756be190f59SCarl Marcum activeMsgBox.no(); // close dialog 757be190f59SCarl Marcum } 758be190f59SCarl Marcum assertTrue("security warning not displayed", msgExists); 759be190f59SCarl Marcum discard(); 760be190f59SCarl Marcum } 761be190f59SCarl Marcum 76280a6f5c5SLiu Zhe } 763