xref: /AOO41X/test/testgui/source/bvt/gui/BasicFunctionTest.java (revision 91745ed9cb1044f73855806801ed70bab0d3c49b)
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 
2280a6f5c5SLiu Zhe /**
2380a6f5c5SLiu Zhe  *
2480a6f5c5SLiu Zhe  */
2580a6f5c5SLiu Zhe package bvt.gui;
2680a6f5c5SLiu Zhe 
2780a6f5c5SLiu Zhe import static org.junit.Assert.*;
2880a6f5c5SLiu Zhe import static org.openoffice.test.common.Testspace.*;
2980a6f5c5SLiu Zhe import static org.openoffice.test.vcl.Tester.*;
3080a6f5c5SLiu Zhe import static testlib.gui.AppTool.*;
3180a6f5c5SLiu Zhe import static testlib.gui.UIMap.*;
3280a6f5c5SLiu Zhe 
3380a6f5c5SLiu Zhe import java.awt.Rectangle;
34*91745ed9SLiu Zhe import java.io.File;
3580a6f5c5SLiu Zhe 
36*91745ed9SLiu Zhe import org.junit.AfterClass;
3780a6f5c5SLiu Zhe import org.junit.Before;
3880a6f5c5SLiu Zhe import org.junit.BeforeClass;
3980a6f5c5SLiu Zhe import org.junit.Rule;
4080a6f5c5SLiu Zhe import org.junit.Test;
4180a6f5c5SLiu Zhe import org.openoffice.test.common.FileUtil;
4280a6f5c5SLiu Zhe import org.openoffice.test.common.GraphicsUtil;
4380a6f5c5SLiu Zhe import org.openoffice.test.common.Logger;
4480a6f5c5SLiu Zhe 
4580a6f5c5SLiu Zhe import testlib.gui.SCTool;
4680a6f5c5SLiu Zhe 
4780a6f5c5SLiu Zhe /**
4880a6f5c5SLiu Zhe  *
4980a6f5c5SLiu Zhe  */
5080a6f5c5SLiu Zhe public class BasicFunctionTest {
5180a6f5c5SLiu Zhe 
5280a6f5c5SLiu Zhe 	@Rule
5380a6f5c5SLiu Zhe 	public Logger log = Logger.getLogger(this);
5480a6f5c5SLiu Zhe 
5580a6f5c5SLiu Zhe 	@BeforeClass
5680a6f5c5SLiu Zhe 	public static void beforeClass() throws Exception {
5780a6f5c5SLiu Zhe 		app.clean();
5880a6f5c5SLiu Zhe 	}
5980a6f5c5SLiu Zhe 
60*91745ed9SLiu Zhe 	@AfterClass
61*91745ed9SLiu Zhe 	public static void afterClass() throws Exception {
62*91745ed9SLiu Zhe 		app.close();
63*91745ed9SLiu Zhe 	}
64*91745ed9SLiu Zhe 
6580a6f5c5SLiu Zhe 	@Before
6680a6f5c5SLiu Zhe 	public void before() {
6780a6f5c5SLiu Zhe 		app.close();
6880a6f5c5SLiu Zhe 		app.start();
6980a6f5c5SLiu Zhe 	}
7080a6f5c5SLiu Zhe 
7180a6f5c5SLiu Zhe 	@Test
72*91745ed9SLiu Zhe 	public void smokeTest() {
73*91745ed9SLiu Zhe 		File smoketestOutput = new File(aoo.getUserInstallation(), "user/temp");
74*91745ed9SLiu Zhe 		prepareData("TestExtension.oxt");
75*91745ed9SLiu Zhe 		// Open sample file smoketestdoc.sxw
76*91745ed9SLiu Zhe 		open(prepareData("smoketestdoc.sxw"));
77*91745ed9SLiu Zhe 		writer.waitForEnabled(10, 2);
78*91745ed9SLiu Zhe 		// Run test cases
79*91745ed9SLiu Zhe 		app.dispatch("vnd.sun.star.script:Standard.Global.StartTestWithDefaultOptions?language=Basic&location=document", 120);
80*91745ed9SLiu Zhe 		String smoketestlog = FileUtil.readFileAsString(new File(smoketestOutput, "smoketest.log"));
81*91745ed9SLiu Zhe 		String testclosurelog = FileUtil.readFileAsString(new File(smoketestOutput, "testclosure.log"));
82*91745ed9SLiu Zhe 		log.info(smoketestlog + "\n" + testclosurelog);
83*91745ed9SLiu Zhe 		assertTrue("No Error", !smoketestlog.contains("error") && !testclosurelog.contains("error"));
84*91745ed9SLiu Zhe 
85*91745ed9SLiu Zhe 	}
86*91745ed9SLiu Zhe 
87*91745ed9SLiu Zhe 	@Test
8880a6f5c5SLiu Zhe 	public void testExportAsPDF() throws Exception {
8980a6f5c5SLiu Zhe 		String file = prepareData("bvt/pdf.odt");
9080a6f5c5SLiu Zhe 		String exportTo1 = getPath("temp/1.pdf");
9180a6f5c5SLiu Zhe 		String exportTo2 = getPath("temp/2.pdf");
9280a6f5c5SLiu Zhe 		deleteFile(exportTo1);
9380a6f5c5SLiu Zhe 		deleteFile(exportTo2);
9480a6f5c5SLiu Zhe 		open(file);
9580a6f5c5SLiu Zhe 		writer.waitForExistence(10, 1);
9680a6f5c5SLiu Zhe 		app.dispatch(".uno:ExportToPDF");
9780a6f5c5SLiu Zhe 		pdfGeneralPage.ok();
9880a6f5c5SLiu Zhe 		submitSaveDlg(exportTo1);
9980a6f5c5SLiu Zhe 		sleep(1);
10080a6f5c5SLiu Zhe 		String magic = FileUtil.readFileAsString(exportTo1).substring(0, 4);
10180a6f5c5SLiu Zhe 		assertEquals("PDF is exported?", "%PDF", magic);
10280a6f5c5SLiu Zhe 
10380a6f5c5SLiu Zhe 		button(".uno:ExportDirectToPDF").click();//Click via toolbar
10480a6f5c5SLiu Zhe 		submitSaveDlg(exportTo2);
10580a6f5c5SLiu Zhe 		sleep(1);
10680a6f5c5SLiu Zhe 		magic = FileUtil.readFileAsString(exportTo2).substring(0, 4);
10780a6f5c5SLiu Zhe 		assertEquals("PDF is exported directly?", "%PDF", magic);
10880a6f5c5SLiu Zhe 	}
10980a6f5c5SLiu Zhe 
11080a6f5c5SLiu Zhe 	/**
11180a6f5c5SLiu Zhe 	 * Test the File -- Print Dialog show
11280a6f5c5SLiu Zhe 	 *
11380a6f5c5SLiu Zhe 	 */
11480a6f5c5SLiu Zhe 	@Test
11580a6f5c5SLiu Zhe 	public void testPrinter() {
11680a6f5c5SLiu Zhe 		// Create a new text document
11780a6f5c5SLiu Zhe 		newTextDocument();
11880a6f5c5SLiu Zhe 		app.dispatch(".uno:PrinterSetup");
11980a6f5c5SLiu Zhe 		if (activeMsgBox.exists(2))
12080a6f5c5SLiu Zhe 			activeMsgBox.ok();
12180a6f5c5SLiu Zhe 
12280a6f5c5SLiu Zhe //		PrintService[] ps = PrintServiceLookup.lookupPrintServices(null, null);
12380a6f5c5SLiu Zhe //		String[] names = new String[ps.length];
12480a6f5c5SLiu Zhe //		for (int i = 0; i < ps.length; i++) {
12580a6f5c5SLiu Zhe //			names[i] = ps[i].getName();
12680a6f5c5SLiu Zhe //		}
12780a6f5c5SLiu Zhe //
12880a6f5c5SLiu Zhe //		assertArrayEquals("Printers Names", names, printerSetUpDlgPrinterNames.getItemsText());
12980a6f5c5SLiu Zhe 		assertTrue("Printer Setup dialog appears", printerSetUpDlg.exists(3));
13080a6f5c5SLiu Zhe 		printerSetUpDlg.cancel();
13180a6f5c5SLiu Zhe 	}
13280a6f5c5SLiu Zhe 
13380a6f5c5SLiu Zhe 	/**
13480a6f5c5SLiu Zhe 	 * Test the File -- Java Dialog show
13580a6f5c5SLiu Zhe 	 *
13680a6f5c5SLiu Zhe 	 */
13780a6f5c5SLiu Zhe //	@Test
13880a6f5c5SLiu Zhe //	public void testJavaDialog() {
13980a6f5c5SLiu Zhe //
14080a6f5c5SLiu Zhe //		// Create a new text document and launch a Wizards dialog which need JVM
14180a6f5c5SLiu Zhe //		// work correctly.
14280a6f5c5SLiu Zhe //		app.dispatch("private:factory/swriter");
14380a6f5c5SLiu Zhe //		File tempfile = new File(oo.getUserInstallation(), "user/template/myAgendaTemplate.ott");
14480a6f5c5SLiu Zhe //		FileUtil.deleteFile(tempfile);
14580a6f5c5SLiu Zhe //		sleep(3);
14680a6f5c5SLiu Zhe //		app.dispatch("service:com.sun.star.wizards.agenda.CallWizard?start");
14780a6f5c5SLiu Zhe //		sleep(5);
14880a6f5c5SLiu Zhe //		assertTrue(Wizards_AgendaDialog.exists(10));
14980a6f5c5SLiu Zhe //		Wizards_AgendaDialog_FinishButton.click();
15080a6f5c5SLiu Zhe //		sleep(10);
15180a6f5c5SLiu Zhe //		writer.focus();
15280a6f5c5SLiu Zhe //		sleep(1);
15380a6f5c5SLiu Zhe //		app.dispatch(".uno:SelectAll");
15480a6f5c5SLiu Zhe //		typeKeys("<$copy>");
15580a6f5c5SLiu Zhe //		// System.out.println("now txt:"+app.getClipboard());
15680a6f5c5SLiu Zhe //		// assertTrue(app.getClipboard().startsWith("<Name>"));
15780a6f5c5SLiu Zhe //		assertNotNull(app.getClipboard());
15880a6f5c5SLiu Zhe //	}
15980a6f5c5SLiu Zhe 
16080a6f5c5SLiu Zhe 	/**
16180a6f5c5SLiu Zhe 	 * Test the Tools / Macros / Organize Dialogs" show
16280a6f5c5SLiu Zhe 	 *
16380a6f5c5SLiu Zhe 	 */
16480a6f5c5SLiu Zhe 	@Test
16580a6f5c5SLiu Zhe 	public void testRunMacro() {
16680a6f5c5SLiu Zhe 		open(prepareData("bvt/macro.ods"));
16780a6f5c5SLiu Zhe 		calc.waitForExistence(10, 2);
16880a6f5c5SLiu Zhe 		app.dispatch(".uno:RunMacro");
16980a6f5c5SLiu Zhe 		runMacroDlgCategories.expand("macro.ods");
17080a6f5c5SLiu Zhe 		runMacroDlgCategories.expand("Standard");
17180a6f5c5SLiu Zhe 		runMacroDlgCategories.select("Module1");
17280a6f5c5SLiu Zhe 		runMacroDlgCommands.select(0);
17380a6f5c5SLiu Zhe 		runMacroDlg.ok();
17480a6f5c5SLiu Zhe 		assertEquals("A3 should be =1+3", "4", SCTool.getCellText("A3"));
17580a6f5c5SLiu Zhe 		discard();
17680a6f5c5SLiu Zhe 	}
17780a6f5c5SLiu Zhe 
17880a6f5c5SLiu Zhe 	/**
17980a6f5c5SLiu Zhe 	 * Test the About Dialog show
18080a6f5c5SLiu Zhe 	 *
18180a6f5c5SLiu Zhe 	 */
18280a6f5c5SLiu Zhe 	@Test
18380a6f5c5SLiu Zhe 	public void testHelp() {
18480a6f5c5SLiu Zhe 		app.dispatch(".uno:About");
18580a6f5c5SLiu Zhe 		assertTrue(aboutDialog.exists(5));
18680a6f5c5SLiu Zhe 		aboutDialog.ok();
18780a6f5c5SLiu Zhe 		sleep(1);
18880a6f5c5SLiu Zhe 		typeKeys("<F1>");
18980a6f5c5SLiu Zhe 		assertTrue(helpWindow.exists(5));
19080a6f5c5SLiu Zhe 		helpWindow.close();
19180a6f5c5SLiu Zhe 	}
19280a6f5c5SLiu Zhe 
19380a6f5c5SLiu Zhe 	/**
19480a6f5c5SLiu Zhe 	 * Test inserting a picture in text document
19580a6f5c5SLiu Zhe 	 *
19680a6f5c5SLiu Zhe 	 * @throws Exception
19780a6f5c5SLiu Zhe 	 */
19880a6f5c5SLiu Zhe 
19980a6f5c5SLiu Zhe 	@Test
20080a6f5c5SLiu Zhe 	public void testInsertPictureInDocument() throws Exception {
20180a6f5c5SLiu Zhe 		String bmp_green = prepareData("image/green_256x256.bmp");
20280a6f5c5SLiu Zhe 		String bmp_red = prepareData("image/red_256x256.bmp");
20380a6f5c5SLiu Zhe 
20480a6f5c5SLiu Zhe 		// Create a new text document
20580a6f5c5SLiu Zhe 		newTextDocument();
20680a6f5c5SLiu Zhe 		// Insert a picture fully filled with green
20780a6f5c5SLiu Zhe 		app.dispatch(".uno:InsertGraphic");
20880a6f5c5SLiu Zhe 		submitOpenDlg(bmp_green);
20980a6f5c5SLiu Zhe 		writer.click(5,200);
21080a6f5c5SLiu Zhe 		sleep(1);
21180a6f5c5SLiu Zhe 
21280a6f5c5SLiu Zhe 		// Verify if the picture is inserted successfully
21380a6f5c5SLiu Zhe 		Rectangle rectangle = GraphicsUtil.findRectangle(writer.getScreenRectangle(), 0xFF00FF00);
21480a6f5c5SLiu Zhe 		assertTrue("Green Picture is inserted?" + rectangle, rectangle != null && rectangle.getWidth() > 10);
21580a6f5c5SLiu Zhe 		// insert another picture
21680a6f5c5SLiu Zhe 		app.dispatch(".uno:InsertGraphic");
21780a6f5c5SLiu Zhe 		submitOpenDlg(bmp_red);
21880a6f5c5SLiu Zhe 		writer.click(5, 200);
21980a6f5c5SLiu Zhe 		sleep(1);
22080a6f5c5SLiu Zhe 		// Verify if the picture is inserted successfully
22180a6f5c5SLiu Zhe 		rectangle = GraphicsUtil.findRectangle(writer.getScreenRectangle(), 0xFFFF0000);
22280a6f5c5SLiu Zhe 		assertTrue("Green Picture is inserted? " + rectangle, rectangle != null && rectangle.getWidth() > 10);
22380a6f5c5SLiu Zhe 		discard();
22480a6f5c5SLiu Zhe 	}
22580a6f5c5SLiu Zhe 
22680a6f5c5SLiu Zhe 	@Test
22780a6f5c5SLiu Zhe 	public void testInsertPictureInSpreadsheet() throws Exception {
22880a6f5c5SLiu Zhe 		String bmp_green = prepareData("image/green_64x64.png");
22980a6f5c5SLiu Zhe 		String bmp_red = prepareData("image/red_64x64.png");
23080a6f5c5SLiu Zhe 		newSpreadsheet();
23180a6f5c5SLiu Zhe 		// Insert a picture fully filled with green
23280a6f5c5SLiu Zhe 		app.dispatch(".uno:InsertGraphic");
23380a6f5c5SLiu Zhe 		submitOpenDlg(bmp_green);
23480a6f5c5SLiu Zhe 		calc.click(5, 150);
23580a6f5c5SLiu Zhe 		sleep(1);
23680a6f5c5SLiu Zhe 
23780a6f5c5SLiu Zhe 		// Verify if the picture is inserted successfully
23880a6f5c5SLiu Zhe 		Rectangle rectangle = GraphicsUtil.findRectangle(calc.getScreenRectangle(), 0xFF00FF00);
23980a6f5c5SLiu Zhe 		assertTrue("Green Picture is inserted?" + rectangle, rectangle != null && rectangle.getWidth() > 10);
24080a6f5c5SLiu Zhe 
24180a6f5c5SLiu Zhe 		SCTool.selectRange("C1");
24280a6f5c5SLiu Zhe 		// insert another picture
24380a6f5c5SLiu Zhe 		app.dispatch(".uno:InsertGraphic");
24480a6f5c5SLiu Zhe 		submitOpenDlg(bmp_red);
24580a6f5c5SLiu Zhe 		calc.click(5, 150);
24680a6f5c5SLiu Zhe 		sleep(1);
24780a6f5c5SLiu Zhe 		// Verify if the picture is inserted successfully
24880a6f5c5SLiu Zhe 		rectangle = GraphicsUtil.findRectangle(calc.getScreenRectangle(), 0xFFFF0000);
24980a6f5c5SLiu Zhe 		assertTrue("Red Picture is inserted? " + rectangle, rectangle != null && rectangle.getWidth() > 10);
25080a6f5c5SLiu Zhe 		discard();
25180a6f5c5SLiu Zhe 	}
25280a6f5c5SLiu Zhe 
25380a6f5c5SLiu Zhe 	@Test
25480a6f5c5SLiu Zhe 	public void testInsertPictureInPresentation() throws Exception {
25580a6f5c5SLiu Zhe 		String bmp_green = prepareData("image/green_256x256.bmp");
25680a6f5c5SLiu Zhe 		String bmp_red = prepareData("image/red_256x256.bmp");
25780a6f5c5SLiu Zhe 		newPresentation();
25880a6f5c5SLiu Zhe 		// Insert a picture fully filled with green
25980a6f5c5SLiu Zhe 		app.dispatch(".uno:InsertGraphic");
26080a6f5c5SLiu Zhe 		submitOpenDlg(bmp_green);
26180a6f5c5SLiu Zhe 		impress.click(5, 5);
26280a6f5c5SLiu Zhe 		sleep(1);
26380a6f5c5SLiu Zhe 
26480a6f5c5SLiu Zhe 		// Verify if the picture is inserted successfully
26580a6f5c5SLiu Zhe 		Rectangle rectangle = GraphicsUtil.findRectangle(impress.getScreenRectangle(), 0xFF00FF00);
26680a6f5c5SLiu Zhe 		assertTrue("Green Picture is inserted?" + rectangle, rectangle != null && rectangle.getWidth() > 10);
26780a6f5c5SLiu Zhe 		// insert another picture
26880a6f5c5SLiu Zhe 		app.dispatch(".uno:InsertGraphic");
26980a6f5c5SLiu Zhe 		submitOpenDlg(bmp_red);
27080a6f5c5SLiu Zhe 		impress.click(1, 1);
27180a6f5c5SLiu Zhe 		sleep(1);
27280a6f5c5SLiu Zhe 		// Verify if the picture is inserted successfully
27380a6f5c5SLiu Zhe 		rectangle = GraphicsUtil.findRectangle(impress.getScreenRectangle(), 0xFFFF0000);
27480a6f5c5SLiu Zhe 		assertTrue("Red Picture is inserted? " + rectangle, rectangle != null && rectangle.getWidth() > 10);
27580a6f5c5SLiu Zhe 		discard();
27680a6f5c5SLiu Zhe 	}
27780a6f5c5SLiu Zhe 
27880a6f5c5SLiu Zhe 	@Test
27980a6f5c5SLiu Zhe 	public void testSlideShow() throws Exception {
28080a6f5c5SLiu Zhe 		open(prepareData("bvt/slideshow.odp"));
28180a6f5c5SLiu Zhe 		impress.waitForExistence(10, 2);
28280a6f5c5SLiu Zhe 		sleep(1);
28380a6f5c5SLiu Zhe 		impress.typeKeys("<F5>");
28480a6f5c5SLiu Zhe 		sleep(3);
28580a6f5c5SLiu Zhe 		Rectangle rectangle = GraphicsUtil.findRectangle(slideShow.getScreenRectangle(), 0xFFFF0000);
28680a6f5c5SLiu Zhe 		assertNotNull("1st slide appears", rectangle);
28780a6f5c5SLiu Zhe 		slideShow.click(0.5, 0.5);
28880a6f5c5SLiu Zhe 		sleep(2);
28980a6f5c5SLiu Zhe 		rectangle = GraphicsUtil.findRectangle(slideShow.getScreenRectangle(), 0xFF00FF00);
29080a6f5c5SLiu Zhe 		assertNotNull("2nd slide appears", rectangle);
29180a6f5c5SLiu Zhe 		typeKeys("<enter>");
29280a6f5c5SLiu Zhe 		sleep(2);
29380a6f5c5SLiu Zhe 		rectangle = GraphicsUtil.findRectangle(slideShow.getScreenRectangle(), 0xFF0000FF);
29480a6f5c5SLiu Zhe 		assertNotNull("3rd slide appears", rectangle);
29580a6f5c5SLiu Zhe 		slideShow.click(0.5, 0.5);
29680a6f5c5SLiu Zhe 		sleep(2);
29780a6f5c5SLiu Zhe 		rectangle = GraphicsUtil.findRectangle(slideShow.getScreenRectangle(), 0xFF0000FF);
29880a6f5c5SLiu Zhe 		assertNull("The end", rectangle);
29980a6f5c5SLiu Zhe 		slideShow.click(0.5, 0.5);
30080a6f5c5SLiu Zhe 		sleep(3);
30180a6f5c5SLiu Zhe 		assertFalse("Quit", slideShow.exists());
30280a6f5c5SLiu Zhe 	}
30380a6f5c5SLiu Zhe 
30480a6f5c5SLiu Zhe 	@Test
30580a6f5c5SLiu Zhe 	public void testFind() {
30680a6f5c5SLiu Zhe 		open(prepareData("bvt/find.odt"));
30780a6f5c5SLiu Zhe 		writer.waitForExistence(10, 2);
30880a6f5c5SLiu Zhe 		app.dispatch(".uno:SearchDialog");
30980a6f5c5SLiu Zhe 		findDlgFor.setText("OpenOffice");
31080a6f5c5SLiu Zhe 		findDlgFind.click();
31180a6f5c5SLiu Zhe 		sleep(1);
31280a6f5c5SLiu Zhe 		writer.typeKeys("<$copy>");
31380a6f5c5SLiu Zhe 		assertEquals("OpenOffice", app.getClipboard());
31480a6f5c5SLiu Zhe 		findDlgFindAll.click();
31580a6f5c5SLiu Zhe 		sleep(1);
31680a6f5c5SLiu Zhe 		writer.typeKeys("<$copy>");
31780a6f5c5SLiu Zhe 		assertEquals("OpenOfficeOpenOfficeOpenOffice", app.getClipboard());
31880a6f5c5SLiu Zhe 		findDlgReplaceWith.setText("Awesome OpenOffice");
31980a6f5c5SLiu Zhe 		findDlgReplaceAll.click();
32080a6f5c5SLiu Zhe 		sleep(1);
32180a6f5c5SLiu Zhe 		msgbox("Search key replaced 3 times.").ok();
32280a6f5c5SLiu Zhe 		findDlg.close();
32380a6f5c5SLiu Zhe 		sleep(1);
32480a6f5c5SLiu Zhe 		assertEquals(
32580a6f5c5SLiu 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. ",
32680a6f5c5SLiu Zhe 				copyAll());
32780a6f5c5SLiu Zhe 	}
32880a6f5c5SLiu Zhe 
32980a6f5c5SLiu Zhe 	@Test
33080a6f5c5SLiu Zhe 	public void testFillInSpreadsheet() {
33180a6f5c5SLiu Zhe 		String[][] expected1 = new String[][] { { "1" }, { "1" }, { "1" }, { "1" }, { "1" }, { "1" }, };
33280a6f5c5SLiu Zhe 		String[][] expected2 = new String[][] { { "2" }, { "2" }, { "2" }, { "2" }, { "2" }, { "2" }, };
33380a6f5c5SLiu Zhe 		String[][] expected3 = new String[][] { { "Hi friends", "Hi friends", "Hi friends", "Hi friends" } };
33480a6f5c5SLiu Zhe 		String[][] expected4 = new String[][] { { "99999.999", "99999.999", "99999.999", "99999.999" } };
33580a6f5c5SLiu Zhe 		String[][] expected5 = new String[][] {
33680a6f5c5SLiu Zhe 		{ "99999.999", "-10" }, { "100000.999", "-9" }, { "100001.999", "-8" }, { "100002.999", "-7" }, { "100003.999", "-6" }
33780a6f5c5SLiu Zhe 		};
33880a6f5c5SLiu Zhe 		newSpreadsheet();
33980a6f5c5SLiu Zhe 		SCTool.selectRange("C5");
34080a6f5c5SLiu Zhe 		typeKeys("1<enter>");
34180a6f5c5SLiu Zhe 		SCTool.selectRange("C5:C10");
34280a6f5c5SLiu Zhe 		app.dispatch(".uno:FillDown");
34380a6f5c5SLiu Zhe 		assertArrayEquals("Fill Down:", expected1, SCTool.getCellTexts("C5:C10"));
34480a6f5c5SLiu Zhe 
34580a6f5c5SLiu Zhe 		SCTool.selectRange("D10");
34680a6f5c5SLiu Zhe 		typeKeys("2<enter>");
34780a6f5c5SLiu Zhe 		SCTool.selectRange("D5:D10");
34880a6f5c5SLiu Zhe 		app.dispatch(".uno:FillUp");
34980a6f5c5SLiu Zhe 		assertArrayEquals("Fill Up:", expected2, SCTool.getCellTexts("D5:D10"));
35080a6f5c5SLiu Zhe 
35180a6f5c5SLiu Zhe 		SCTool.selectRange("A1");
35280a6f5c5SLiu Zhe 		typeKeys("Hi friends<enter>");
35380a6f5c5SLiu Zhe 		SCTool.selectRange("A1:D1");
35480a6f5c5SLiu Zhe 		app.dispatch(".uno:FillRight");
35580a6f5c5SLiu Zhe 		assertArrayEquals("Fill Right:", expected3, SCTool.getCellTexts("A1:D1"));
35680a6f5c5SLiu Zhe 
35780a6f5c5SLiu Zhe 		SCTool.selectRange("D2");
35880a6f5c5SLiu Zhe 		typeKeys("99999.999<enter>");
35980a6f5c5SLiu Zhe 		SCTool.selectRange("A2:D2");
36080a6f5c5SLiu Zhe 		app.dispatch(".uno:FillLeft");
36180a6f5c5SLiu Zhe 		assertArrayEquals("Fill left:", expected4, SCTool.getCellTexts("A2:D2"));
36280a6f5c5SLiu Zhe 
36380a6f5c5SLiu Zhe 		SCTool.selectRange("E1");
36480a6f5c5SLiu Zhe 		typeKeys("99999.999<tab>-10<enter>");
36580a6f5c5SLiu Zhe 
36680a6f5c5SLiu Zhe 		SCTool.selectRange("E1:F5");
36780a6f5c5SLiu Zhe 		app.dispatch(".uno:FillSeries");
36880a6f5c5SLiu Zhe 		fillSeriesDlg.ok();
36980a6f5c5SLiu Zhe 		sleep(1);
37080a6f5c5SLiu Zhe 		assertArrayEquals("Fill series..", expected5, SCTool.getCellTexts("E1:F5"));
37180a6f5c5SLiu Zhe 		discard();
37280a6f5c5SLiu Zhe 	}
37380a6f5c5SLiu Zhe 
37480a6f5c5SLiu Zhe 	@Test
37580a6f5c5SLiu Zhe 	public void testSort() {
37680a6f5c5SLiu Zhe 		String[][] expected1 = new String[][] { { "-9999999" }, { "-1.1" }, { "-1.1" }, { "0" }, { "0" }, { "0.1" }, { "10" }, { "12" }, { "9999999" }, { "9999999" },
37780a6f5c5SLiu Zhe 
37880a6f5c5SLiu Zhe 		};
37980a6f5c5SLiu Zhe 		String[][] expected2 = new String[][] { { "TRUE", "Oracle" }, { "TRUE", "OpenOffice" }, { "FALSE", "OpenOffice" }, { "TRUE", "IBM" }, { "FALSE", "IBM" },
38080a6f5c5SLiu Zhe 				{ "TRUE", "Google" }, { "FALSE", "facebook " }, { "TRUE", "Apache" }, { "TRUE", "!yahoo" }, { "TRUE", "" },
38180a6f5c5SLiu Zhe 
38280a6f5c5SLiu Zhe 		};
38380a6f5c5SLiu Zhe 
38480a6f5c5SLiu Zhe 		String[][] expected3 = new String[][] { { "Sunday" }, { "Monday" }, { "Tuesday" }, { "Wednesday" }, { "Thursday" }, { "Friday" }, { "Saturday" },
38580a6f5c5SLiu Zhe 
38680a6f5c5SLiu Zhe 		};
38780a6f5c5SLiu Zhe 
38880a6f5c5SLiu Zhe 		String[][] expected4 = new String[][] { { "-$10.00" }, { "$0.00" }, { "$0.00" }, { "$1.00" }, { "$3.00" }, { "$9.00" }, { "$123.00" }, { "$200.00" }, { "$400.00" },
38980a6f5c5SLiu Zhe 				{ "$10,000.00" },
39080a6f5c5SLiu Zhe 
39180a6f5c5SLiu Zhe 		};
39280a6f5c5SLiu Zhe 		open(prepareData("bvt/sort.ods"));
39380a6f5c5SLiu Zhe 		calc.waitForExistence(10, 2);
39480a6f5c5SLiu Zhe 		SCTool.selectRange("A1:A10");
39580a6f5c5SLiu Zhe 		app.dispatch(".uno:DataSort");
39680a6f5c5SLiu Zhe 		sortWarningDlgCurrent.click();
39780a6f5c5SLiu Zhe 		assertEquals(1, sortPageBy1.getSelIndex());
39880a6f5c5SLiu Zhe 		sortPage.ok();
39980a6f5c5SLiu Zhe 		sleep(1);
40080a6f5c5SLiu Zhe 		assertArrayEquals("Sorted Data", expected1, SCTool.getCellTexts("A1:A10"));
40180a6f5c5SLiu Zhe 		SCTool.selectRange("B1:C10");
40280a6f5c5SLiu Zhe 		app.dispatch(".uno:DataSort");
40380a6f5c5SLiu Zhe 
40480a6f5c5SLiu Zhe 		sortPageBy1.select(2);
40580a6f5c5SLiu Zhe 		sortPageDescending1.check();
40680a6f5c5SLiu Zhe 		assertFalse(sortPageBy3.isEnabled());
40780a6f5c5SLiu Zhe 		assertFalse(sortPageAscending3.isEnabled());
40880a6f5c5SLiu Zhe 		assertFalse(sortPageDescending3.isEnabled());
40980a6f5c5SLiu Zhe 		sortPageBy2.select(1);
41080a6f5c5SLiu Zhe 		assertTrue(sortPageBy3.isEnabled());
41180a6f5c5SLiu Zhe 		assertTrue(sortPageAscending3.isEnabled());
41280a6f5c5SLiu Zhe 		assertTrue(sortPageDescending3.isEnabled());
41380a6f5c5SLiu Zhe 		sortPageDescending2.check();
41480a6f5c5SLiu Zhe 		sortPageBy2.select(0);
41580a6f5c5SLiu Zhe 		assertFalse(sortPageBy3.isEnabled());
41680a6f5c5SLiu Zhe 		assertFalse(sortPageAscending3.isEnabled());
41780a6f5c5SLiu Zhe 		assertFalse(sortPageDescending3.isEnabled());
41880a6f5c5SLiu Zhe 		sortPageBy2.select(1);
41980a6f5c5SLiu Zhe 		sortPage.ok();
42080a6f5c5SLiu Zhe 		sleep(1);
42180a6f5c5SLiu Zhe 
42280a6f5c5SLiu Zhe 		assertArrayEquals("Sorted Data", expected2, SCTool.getCellTexts("B1:C10"));
42380a6f5c5SLiu Zhe 		SCTool.selectRange("D1:D7");
42480a6f5c5SLiu Zhe 		app.dispatch(".uno:DataSort");
42580a6f5c5SLiu Zhe 		sortWarningDlgCurrent.click();
42680a6f5c5SLiu Zhe 		sortOptionsPage.select();
42780a6f5c5SLiu Zhe 		sortOptionsPageRangeContainsColumnLabels.uncheck();
42880a6f5c5SLiu Zhe 		sortOptionsPageCustomSortOrder.check();
42980a6f5c5SLiu Zhe 		sortOptionsPageCustomSortOrderList.select("Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday");
43080a6f5c5SLiu Zhe 		sortOptionsPage.ok();
43180a6f5c5SLiu Zhe 		sleep(1);
43280a6f5c5SLiu Zhe 		assertArrayEquals("Sorted Data", expected3, SCTool.getCellTexts("D1:D7"));
43380a6f5c5SLiu Zhe 
43480a6f5c5SLiu Zhe 		SCTool.selectRange("E1:E10");
43580a6f5c5SLiu Zhe 		app.dispatch(".uno:DataSort");
43680a6f5c5SLiu Zhe 		sortWarningDlgCurrent.click();
43780a6f5c5SLiu Zhe 		sortPage.ok();
43880a6f5c5SLiu Zhe 		sleep(1);
43980a6f5c5SLiu Zhe 		assertArrayEquals("Sorted Data", expected4, SCTool.getCellTexts("E1:E10"));
44080a6f5c5SLiu Zhe 		discard();
44180a6f5c5SLiu Zhe 	}
44280a6f5c5SLiu Zhe 
44380a6f5c5SLiu Zhe 	/**
44480a6f5c5SLiu Zhe 	 * Test insert a chart in a draw document 1. New a draw document 2. Insert a
44580a6f5c5SLiu Zhe 	 * chart 3. Check if the chart is inserted successfully
44680a6f5c5SLiu Zhe 	 *
44780a6f5c5SLiu Zhe 	 * @throws Exception
44880a6f5c5SLiu Zhe 	 */
44980a6f5c5SLiu Zhe 	@Test
45080a6f5c5SLiu Zhe 	public void testInsertChartInDraw() throws Exception {
45180a6f5c5SLiu Zhe 		// Create a new drawing document
45280a6f5c5SLiu Zhe 		newDrawing();
45380a6f5c5SLiu Zhe 		// Insert a chart
45480a6f5c5SLiu Zhe 		app.dispatch(".uno:InsertObjectChart");
45580a6f5c5SLiu Zhe 		sleep(3);
45680a6f5c5SLiu Zhe 
45780a6f5c5SLiu Zhe 		// Verify if the chart is inserted successfully
45880a6f5c5SLiu Zhe 		assertTrue("Chart Editor appears", chart.exists(3));
45980a6f5c5SLiu Zhe 		// Focus on edit pane
46080a6f5c5SLiu Zhe 		draw.click(5, 5);
46180a6f5c5SLiu Zhe 		sleep(1);
46280a6f5c5SLiu Zhe 		assertFalse("Chart Editor appears", chart.exists());
46380a6f5c5SLiu Zhe 		discard();
46480a6f5c5SLiu Zhe 	}
46580a6f5c5SLiu Zhe 
46680a6f5c5SLiu Zhe 	/**
46780a6f5c5SLiu Zhe 	 * Test insert a chart in a text document 1. New a text document 2. Insert a
46880a6f5c5SLiu Zhe 	 * chart 3. Check if the chart is inserted successfully
46980a6f5c5SLiu Zhe 	 *
47080a6f5c5SLiu Zhe 	 * @throws Exception
47180a6f5c5SLiu Zhe 	 */
47280a6f5c5SLiu Zhe 	@Test
47380a6f5c5SLiu Zhe 	public void testInsertChartInDocument() throws Exception {
47480a6f5c5SLiu Zhe 		// Create a new text document
47580a6f5c5SLiu Zhe 		newTextDocument();
47680a6f5c5SLiu Zhe 		// Insert a chart
47780a6f5c5SLiu Zhe 		app.dispatch(".uno:InsertObjectChart");
47880a6f5c5SLiu Zhe 		sleep(3);
47980a6f5c5SLiu Zhe 
48080a6f5c5SLiu Zhe 		// Verify if the chart is inserted successfully
48180a6f5c5SLiu Zhe 		assertTrue("Chart Editor appears", chart.exists(3));
48280a6f5c5SLiu Zhe 		// Focus on edit pane
48380a6f5c5SLiu Zhe 		writer.click(5, 5);
48480a6f5c5SLiu Zhe 		sleep(1);
48580a6f5c5SLiu Zhe 		assertFalse("Chart Editor appears", chart.exists());
48680a6f5c5SLiu Zhe 		discard();
48780a6f5c5SLiu Zhe 	}
48880a6f5c5SLiu Zhe 
48980a6f5c5SLiu Zhe 	/**
49080a6f5c5SLiu Zhe 	 * Test insert a chart in a spreadsheet document 1. New a spreadsheet
49180a6f5c5SLiu Zhe 	 * document 2. Insert a chart 3. Check if the chart is inserted successfully
49280a6f5c5SLiu Zhe 	 *
49380a6f5c5SLiu Zhe 	 * @throws Exception
49480a6f5c5SLiu Zhe 	 */
49580a6f5c5SLiu Zhe 	@Test
49680a6f5c5SLiu Zhe 	public void testInsertChartInSpreadsheet() throws Exception {
49780a6f5c5SLiu Zhe 		// Create a new spreadsheet document
49880a6f5c5SLiu Zhe 		newSpreadsheet();
49980a6f5c5SLiu Zhe 		// Insert a chart
50080a6f5c5SLiu Zhe 		app.dispatch(".uno:InsertObjectChart");
50180a6f5c5SLiu Zhe 		sleep(3);
50280a6f5c5SLiu Zhe 		chartWizard.ok();
50380a6f5c5SLiu Zhe 
50480a6f5c5SLiu Zhe 		// Verify if the chart is inserted successfully
50580a6f5c5SLiu Zhe 		assertTrue("Chart Editor appears", chart.exists(3));
50680a6f5c5SLiu Zhe 		// Focus on edit pane
50780a6f5c5SLiu Zhe 		calc.click(5, 5);
50880a6f5c5SLiu Zhe 		sleep(1);
50980a6f5c5SLiu Zhe 		assertFalse("Chart Editor appears", chart.exists());
51080a6f5c5SLiu Zhe 		discard();
51180a6f5c5SLiu Zhe 	}
51280a6f5c5SLiu Zhe 
51380a6f5c5SLiu Zhe 	/**
51480a6f5c5SLiu Zhe 	 * Test insert a chart in a presentation document 1. New a presentation
51580a6f5c5SLiu Zhe 	 * document 2. Insert a chart 3. Check if the chart is inserted successfully
51680a6f5c5SLiu Zhe 	 *
51780a6f5c5SLiu Zhe 	 * @throws Exception
51880a6f5c5SLiu Zhe 	 */
51980a6f5c5SLiu Zhe 	@Test
52080a6f5c5SLiu Zhe 	public void testInsertChartInPresentation() throws Exception {
52180a6f5c5SLiu Zhe 		// Create a new presentation document
52280a6f5c5SLiu Zhe 		newPresentation();
52380a6f5c5SLiu Zhe 		// Insert a chart
52480a6f5c5SLiu Zhe 		app.dispatch(".uno:InsertObjectChart");
52580a6f5c5SLiu Zhe 		sleep(3);
52680a6f5c5SLiu Zhe 		// Verify if the chart is inserted successfully
52780a6f5c5SLiu Zhe 		assertTrue("Chart Editor appears", chart.exists(3));
52880a6f5c5SLiu Zhe 		// Focus on edit pane
52980a6f5c5SLiu Zhe 		impress.click(5, 5);
53080a6f5c5SLiu Zhe 		sleep(1);
53180a6f5c5SLiu Zhe 		assertFalse("Chart Editor appears", chart.exists());
53280a6f5c5SLiu Zhe 		discard();
53380a6f5c5SLiu Zhe 	}
53480a6f5c5SLiu Zhe 
53580a6f5c5SLiu Zhe 	/**
53680a6f5c5SLiu Zhe 	 * Test insert a table in a draw document 1. New a draw document 2. Insert a
53780a6f5c5SLiu Zhe 	 * default table 3. Check if the table is inserted successfully
53880a6f5c5SLiu Zhe 	 *
53980a6f5c5SLiu Zhe 	 * @throws Exception
54080a6f5c5SLiu Zhe 	 */
54180a6f5c5SLiu Zhe 	@Test
54280a6f5c5SLiu Zhe 	public void testInsertTableInDraw() throws Exception {
54380a6f5c5SLiu Zhe 		// Create a new drawing document
54480a6f5c5SLiu Zhe 		newDrawing();
54580a6f5c5SLiu Zhe 		// Insert a table
54680a6f5c5SLiu Zhe 		app.dispatch(".uno:InsertTable");
54780a6f5c5SLiu Zhe 		insertTable.ok();
54880a6f5c5SLiu Zhe 		sleep(1);
54980a6f5c5SLiu Zhe 		draw.typeKeys("3");
55080a6f5c5SLiu Zhe 		assertTrue("Table Toolbar appears", tableToolbar.exists(3));
55180a6f5c5SLiu Zhe //		assertEquals("The cell content", "3", copyAll());
55280a6f5c5SLiu Zhe 		discard();
55380a6f5c5SLiu Zhe 	}
55480a6f5c5SLiu Zhe 
55580a6f5c5SLiu Zhe 	/**
55680a6f5c5SLiu Zhe 	 * Test insert a table in a text document 1. New a text document 2. Insert a
55780a6f5c5SLiu Zhe 	 * default table 3. Check if the table is inserted successfully
55880a6f5c5SLiu Zhe 	 *
55980a6f5c5SLiu Zhe 	 * @throws Exception
56080a6f5c5SLiu Zhe 	 */
56180a6f5c5SLiu Zhe 	@Test
56280a6f5c5SLiu Zhe 	public void testInsertTableInDocument() throws Exception {
56380a6f5c5SLiu Zhe 		// Create a new text document
56480a6f5c5SLiu Zhe 		newTextDocument();
56580a6f5c5SLiu Zhe 		// Insert a table
56680a6f5c5SLiu Zhe 		app.dispatch(".uno:InsertTable");
56780a6f5c5SLiu Zhe 		writerInsertTable.ok();
56880a6f5c5SLiu Zhe 		sleep(1);
56980a6f5c5SLiu Zhe 		writer.typeKeys("3");
57080a6f5c5SLiu Zhe 		// Verify if the table toolbar is active
57180a6f5c5SLiu Zhe 		assertTrue("Table Toolbar appears", tableToolbar.exists(3));
57280a6f5c5SLiu Zhe //		assertEquals("The cell content", "3", copyAll());
57380a6f5c5SLiu Zhe 		discard();
57480a6f5c5SLiu Zhe 	}
57580a6f5c5SLiu Zhe 
57680a6f5c5SLiu Zhe 	/**
57780a6f5c5SLiu Zhe 	 * Test insert a table in a presentation document 1. New a presentation
57880a6f5c5SLiu Zhe 	 * document 2. Insert a default table 3. Check if the table is inserted
57980a6f5c5SLiu Zhe 	 * successfully
58080a6f5c5SLiu Zhe 	 *
58180a6f5c5SLiu Zhe 	 * @throws Exception
58280a6f5c5SLiu Zhe 	 */
58380a6f5c5SLiu Zhe 	@Test
58480a6f5c5SLiu Zhe 	public void testInsertTableInPresentation() throws Exception {
58580a6f5c5SLiu Zhe 		// Create a new presentation document
58680a6f5c5SLiu Zhe 		newPresentation();
58780a6f5c5SLiu Zhe 
58880a6f5c5SLiu Zhe 		// Insert a table
58980a6f5c5SLiu Zhe 		app.dispatch(".uno:InsertTable");
59080a6f5c5SLiu Zhe 		insertTable.ok();
59180a6f5c5SLiu Zhe 		sleep(1);
59280a6f5c5SLiu Zhe 		impress.typeKeys("3");
59380a6f5c5SLiu Zhe 		assertTrue("Table Toolbar appears", tableToolbar.exists(3));
59480a6f5c5SLiu Zhe //		assertEquals("The cell content", "3", copyAll());
59580a6f5c5SLiu Zhe 		discard();
59680a6f5c5SLiu Zhe 	}
59780a6f5c5SLiu Zhe 
59880a6f5c5SLiu Zhe 	/**
59980a6f5c5SLiu Zhe 	 * Test insert a function in a spreadsheet document via Sum button 1. New a
60080a6f5c5SLiu Zhe 	 * spreadsheet document 2. Insert a function via Sum button 3. Check if the
60180a6f5c5SLiu Zhe 	 * result is correct
60280a6f5c5SLiu Zhe 	 *
60380a6f5c5SLiu Zhe 	 * @throws Exception
60480a6f5c5SLiu Zhe 	 */
60580a6f5c5SLiu Zhe 	@Test
60680a6f5c5SLiu Zhe 	public void testSumInFormulaBar() throws Exception {
60780a6f5c5SLiu Zhe 		// Create a new spreadsheet document
60880a6f5c5SLiu Zhe 		newSpreadsheet();
60980a6f5c5SLiu Zhe 		// Insert source numbers
61080a6f5c5SLiu Zhe 		String sourceNumber1 = "5";
61180a6f5c5SLiu Zhe 		String sourceNumber2 = "3";
61280a6f5c5SLiu Zhe 		String expectedResult = "8";
61380a6f5c5SLiu Zhe 		SCTool.selectRange("A1");
61480a6f5c5SLiu Zhe 		typeKeys(sourceNumber1);
61580a6f5c5SLiu Zhe 		SCTool.selectRange("B1");
61680a6f5c5SLiu Zhe 		typeKeys(sourceNumber2);
61780a6f5c5SLiu Zhe 		// Insert a function via Sum button
61880a6f5c5SLiu Zhe 		SCTool.selectRange("C1");
61980a6f5c5SLiu Zhe 		scInputBarSum.click();
62080a6f5c5SLiu Zhe 		typeKeys("<enter>");
62180a6f5c5SLiu Zhe 		// Verify if the calculated result is equal to the expected result
62280a6f5c5SLiu Zhe 		assertEquals("The calculated result", expectedResult, SCTool.getCellText("C1"));
62380a6f5c5SLiu Zhe 		discard();
62480a6f5c5SLiu Zhe 	}
62580a6f5c5SLiu Zhe 
62680a6f5c5SLiu Zhe 	/**
62780a6f5c5SLiu Zhe 	 * Test insert a function in a spreadsheet document via inputbar 1. New a
62880a6f5c5SLiu Zhe 	 * spreadsheet document 2. Insert a function via inputbar: COS 3. Check if
62980a6f5c5SLiu Zhe 	 * the result is correct
63080a6f5c5SLiu Zhe 	 *
63180a6f5c5SLiu Zhe 	 * @throws Exception
63280a6f5c5SLiu Zhe 	 */
63380a6f5c5SLiu Zhe 	@Test
63480a6f5c5SLiu Zhe 	public void testInsertFunctionViaFormulaBar() throws Exception {
63580a6f5c5SLiu Zhe 		// Create a new spreadsheet document
63680a6f5c5SLiu Zhe 		newSpreadsheet();
63780a6f5c5SLiu Zhe 		// Insert source numbers and expected result
63880a6f5c5SLiu Zhe 		String sourceData = "0";
63980a6f5c5SLiu Zhe 		String expectedResult = "1";
64080a6f5c5SLiu Zhe 		SCTool.selectRange("A1");
64180a6f5c5SLiu Zhe 		typeKeys(sourceData);
64280a6f5c5SLiu Zhe 
64380a6f5c5SLiu Zhe 		// Insert a function via inputbar: COS
64480a6f5c5SLiu Zhe 		SCTool.selectRange("D1");
64580a6f5c5SLiu Zhe 		scInputBarInput.inputKeys("=COS(A1)");
64680a6f5c5SLiu Zhe 		typeKeys("<enter>");
64780a6f5c5SLiu Zhe 
64880a6f5c5SLiu Zhe 		// Verify if the calculated result is equal to the expected result
64980a6f5c5SLiu Zhe 		assertEquals("The calculated result", expectedResult, SCTool.getCellText("D1"));
65080a6f5c5SLiu Zhe 		discard();
65180a6f5c5SLiu Zhe 	}
65280a6f5c5SLiu Zhe 
65380a6f5c5SLiu Zhe 	/**
65480a6f5c5SLiu Zhe 	 * Test insert a function in a spreadsheet document via Function Wizard
65580a6f5c5SLiu Zhe 	 * Dialog 1. New a spreadsheet document 2. Insert a function via Function
65680a6f5c5SLiu Zhe 	 * Wizard Dialog: ABS 3. Check if the result is correct
65780a6f5c5SLiu Zhe 	 *
65880a6f5c5SLiu Zhe 	 * @throws Exception
65980a6f5c5SLiu Zhe 	 */
66080a6f5c5SLiu Zhe 	@Test
66180a6f5c5SLiu Zhe 	public void testFunctionWizardInFormulaBar() throws Exception {
66280a6f5c5SLiu Zhe 		// Create a new spreadsheet document
66380a6f5c5SLiu Zhe 		newSpreadsheet();
66480a6f5c5SLiu Zhe 		// Insert source number
66580a6f5c5SLiu Zhe 		String sourceNumber = "-5";
66680a6f5c5SLiu Zhe 		String expectedResult = "5";
66780a6f5c5SLiu Zhe 		SCTool.selectRange("A1");
66880a6f5c5SLiu Zhe 		typeKeys(sourceNumber);
66980a6f5c5SLiu Zhe 		typeKeys("<enter>");
67080a6f5c5SLiu Zhe 		// Insert a function via Function Wizard Dialog: ABS
67180a6f5c5SLiu Zhe 		SCTool.selectRange("B1");
67280a6f5c5SLiu Zhe 		app.dispatch(".uno:FunctionDialog");
67380a6f5c5SLiu Zhe 		// SC_FunctionWizardDlg_FunctionList.doubleClick(5, 5);
67480a6f5c5SLiu Zhe 		scFunctionWizardDlgFunctionList.select("ABS");
67580a6f5c5SLiu Zhe 		scFunctionWizardDlgNext.click(); // Use "Next" button
67680a6f5c5SLiu Zhe 		scFunctionWizardDlgEdit1.inputKeys("A1");
67780a6f5c5SLiu Zhe 		scFunctionWizardDlg.ok();
67880a6f5c5SLiu Zhe 		// Verify if the calculated result is equal to the expected result
67980a6f5c5SLiu Zhe 		assertEquals("The calculated result", expectedResult, SCTool.getCellText("B1"));
68080a6f5c5SLiu Zhe 		discard();
68180a6f5c5SLiu Zhe 	}
68280a6f5c5SLiu Zhe }
683