1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski package fvt.mix;
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski import org.junit.After;
25*b1cdbd2cSJim Jagielski import org.junit.Assert;
26*b1cdbd2cSJim Jagielski import org.junit.Before;
27*b1cdbd2cSJim Jagielski import org.junit.Test;
28*b1cdbd2cSJim Jagielski import org.openoffice.test.OpenOffice;
29*b1cdbd2cSJim Jagielski import org.openoffice.test.uno.UnoApp;
30*b1cdbd2cSJim Jagielski import org.openoffice.test.vcl.widgets.VclApp;
31*b1cdbd2cSJim Jagielski import org.openoffice.test.vcl.widgets.VclListBox;
32*b1cdbd2cSJim Jagielski import org.openoffice.test.vcl.widgets.VclTabPage;
33*b1cdbd2cSJim Jagielski import org.openoffice.test.vcl.widgets.VclWindow;
34*b1cdbd2cSJim Jagielski 
35*b1cdbd2cSJim Jagielski import com.sun.star.beans.XPropertySet;
36*b1cdbd2cSJim Jagielski import com.sun.star.text.XText;
37*b1cdbd2cSJim Jagielski import com.sun.star.text.XTextCursor;
38*b1cdbd2cSJim Jagielski import com.sun.star.text.XTextDocument;
39*b1cdbd2cSJim Jagielski import com.sun.star.uno.UnoRuntime;
40*b1cdbd2cSJim Jagielski 
41*b1cdbd2cSJim Jagielski /**
42*b1cdbd2cSJim Jagielski  * Demo for testing with both UNO and VCLAuto
43*b1cdbd2cSJim Jagielski  * @author test
44*b1cdbd2cSJim Jagielski  *
45*b1cdbd2cSJim Jagielski  */
46*b1cdbd2cSJim Jagielski public class MixedTest {
47*b1cdbd2cSJim Jagielski 	OpenOffice aoo;
48*b1cdbd2cSJim Jagielski 	UnoApp unoApp;
49*b1cdbd2cSJim Jagielski 	VclApp vclApp;
50*b1cdbd2cSJim Jagielski 	VclWindow writer;
51*b1cdbd2cSJim Jagielski 	VclTabPage effectsPage;
52*b1cdbd2cSJim Jagielski 	VclListBox colorList;
53*b1cdbd2cSJim Jagielski 	XTextDocument textDocument;
54*b1cdbd2cSJim Jagielski 	/**
55*b1cdbd2cSJim Jagielski 	 * @throws java.lang.Exception
56*b1cdbd2cSJim Jagielski 	 */
57*b1cdbd2cSJim Jagielski 	@Before
setUp()58*b1cdbd2cSJim Jagielski 	public void setUp() throws Exception {
59*b1cdbd2cSJim Jagielski 		OpenOffice aoo = OpenOffice.getDefault();
60*b1cdbd2cSJim Jagielski 		unoApp = new UnoApp(aoo);
61*b1cdbd2cSJim Jagielski 		vclApp = new VclApp(aoo);
62*b1cdbd2cSJim Jagielski 		writer = new VclWindow(vclApp, "SW_HID_EDIT_WIN");
63*b1cdbd2cSJim Jagielski 		effectsPage = new VclTabPage(vclApp, "CUI_HID_SVXPAGE_CHAR_EFFECTS");
64*b1cdbd2cSJim Jagielski 		colorList = new VclListBox(vclApp, "cui:ListBox:RID_SVXPAGE_CHAR_EFFECTS:LB_FONTCOLOR");
65*b1cdbd2cSJim Jagielski 		unoApp.start();
66*b1cdbd2cSJim Jagielski 	}
67*b1cdbd2cSJim Jagielski 
68*b1cdbd2cSJim Jagielski 	@After
tearDown()69*b1cdbd2cSJim Jagielski 	public void tearDown() throws Exception {
70*b1cdbd2cSJim Jagielski 		unoApp.closeDocument(textDocument);
71*b1cdbd2cSJim Jagielski 		unoApp.close();
72*b1cdbd2cSJim Jagielski 	}
73*b1cdbd2cSJim Jagielski 
74*b1cdbd2cSJim Jagielski 	@Test
testUseBothUNOAndGuiAPI()75*b1cdbd2cSJim Jagielski 	public void testUseBothUNOAndGuiAPI()  throws Exception  {
76*b1cdbd2cSJim Jagielski 		//Use UNO API to create a new document
77*b1cdbd2cSJim Jagielski 		textDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, unoApp.newDocument("swriter"));
78*b1cdbd2cSJim Jagielski 		XText xText = textDocument.getText();
79*b1cdbd2cSJim Jagielski 		xText.setString("UNO: Hello World!");
80*b1cdbd2cSJim Jagielski 		//Input something by typing keyboard
81*b1cdbd2cSJim Jagielski 		writer.typeKeys("GUI: Hello world!");
82*b1cdbd2cSJim Jagielski 		//Set text color to green via GUI
83*b1cdbd2cSJim Jagielski 		writer.drag(10, 10, 300, 400);
84*b1cdbd2cSJim Jagielski 		writer.menuItem("Format->Character...").select();
85*b1cdbd2cSJim Jagielski 		effectsPage.select();
86*b1cdbd2cSJim Jagielski 		colorList.select("Green 3");
87*b1cdbd2cSJim Jagielski 		effectsPage.ok();
88*b1cdbd2cSJim Jagielski 		//Verify the result via UNO API
89*b1cdbd2cSJim Jagielski 		XTextCursor xTextCursor = xText.createTextCursor();
90*b1cdbd2cSJim Jagielski 		XPropertySet xps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
91*b1cdbd2cSJim Jagielski 		Assert.assertEquals("Text Color", 0x00CC00, xps.getPropertyValue("CharColor"));
92*b1cdbd2cSJim Jagielski 	}
93*b1cdbd2cSJim Jagielski }
94