xref: /AOO41X/test/testuno/source/fvt/uno/sd/character/CheckCharacterStyle.java (revision 28725c1964ec4d1e262fa3c5c925042422efbc77)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 /**
22  * check character style
23  * 1. new a impress
24  * 2. insert one line text in the first textbox
25  * 3. set the font color to red
26  * 4. save, close, reopen, then check the font color
27  * 5. set the underline to single
28  * 6. save, close, reopen, then check the underline
29  * 7. set the font size to 12
30  * 8. save, close, reopen, then check the font size
31  * 9. set font style to Bold, Italic
32  * 10. save, close, reopen, then check the font style
33  */
34 package fvt.uno.sd.character;
35 
36 import static org.junit.Assert.*;
37 import static testlib.uno.SDUtil.saveFileAs;
38 
39 import java.io.File;
40 import org.junit.After;
41 import org.junit.AfterClass;
42 import org.junit.Before;
43 import org.junit.BeforeClass;
44 import org.junit.Test;
45 import org.openoffice.test.common.FileUtil;
46 import org.openoffice.test.common.Testspace;
47 import org.openoffice.test.uno.UnoApp;
48 
49 import testlib.uno.SDUtil;
50 
51 import com.sun.star.beans.PropertyValue;
52 import com.sun.star.beans.XPropertySet;
53 import com.sun.star.container.XIndexAccess;
54 import com.sun.star.drawing.XDrawPage;
55 import com.sun.star.drawing.XDrawPages;
56 import com.sun.star.drawing.XDrawPagesSupplier;
57 import com.sun.star.drawing.XShapes;
58 import com.sun.star.frame.XStorable;
59 
60 import com.sun.star.lang.XComponent;
61 
62 import com.sun.star.text.XText;
63 import com.sun.star.uno.UnoRuntime;
64 
65 /**
66  * @author LouQL
67  *
68  */
69 public class CheckCharacterStyle {
70 
71     private static final UnoApp app = new UnoApp();
72     private XComponent m_xSDComponent = null;
73     private XText xShapeText = null;
74     private String filePath = null;
75     private XPropertySet xtextProps = null;
76     /**
77      * @throws java.lang.Exception
78      */
79     @BeforeClass
setUpConnection()80     public static void setUpConnection() throws Exception {
81         app.start();
82         File temp = new File(Testspace.getPath("temp"));
83         temp.mkdirs();
84     }
85 
86     @AfterClass
tearDownConnection()87     public static void tearDownConnection() throws Exception {
88         app.close();
89 
90     }
91 
92     /**
93      * @throws java.lang.Exception
94      */
95     @Before
setUp()96     public void setUp() throws Exception {
97         filePath = Testspace.getPath("temp/CheckCharacterStyle.odp");
98         if(FileUtil.fileExists(filePath))
99         {   //load
100             m_xSDComponent = (XComponent) UnoRuntime.queryInterface(XComponent.class,
101                         app.loadDocument(filePath));
102             xShapeText = getFirstTextbox();
103         }
104         else{
105             //create a sd
106             m_xSDComponent = (XComponent) UnoRuntime.queryInterface(XComponent.class, app.newDocument("simpress"));
107             xShapeText = getFirstTextbox();
108             xShapeText.setString("test");
109         }
110         xtextProps = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xShapeText);
111     }
112 
getFirstTextbox()113     private XText getFirstTextbox() throws Exception
114     {
115         Object firstPage = SDUtil.getPageByIndex(m_xSDComponent, 0);
116         Object firstTextBox = SDUtil.getShapeOfPageByIndex(firstPage, 0);
117         return (XText)UnoRuntime.queryInterface(XText.class, firstTextBox);
118     }
119 
120     /**
121      * @throws java.lang.Exception
122      */
123     @After
tearDown()124     public void tearDown() throws Exception {
125         //close odp after each test
126         m_xSDComponent.dispose();
127 
128         //remove the temp file
129         FileUtil.deleteFile(Testspace.getPath("temp"));
130     }
131 
132     @Test
testFontColor()133     public void testFontColor() throws Exception{
134         //set font color to red
135         xtextProps.setPropertyValue("CharColor", 0xFF0000);
136 //      saveFileAs(m_xSDComponent, filePath, ".odp");
137         app.saveDocument(m_xSDComponent, filePath);
138         m_xSDComponent.dispose();
139         //reopen
140         m_xSDComponent = (XComponent) UnoRuntime.queryInterface(XComponent.class,
141                     app.loadDocument(filePath));
142         xShapeText = getFirstTextbox();
143         xtextProps = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xShapeText);
144         //check character styles
145         assertEquals("character color should be red", 0xFF0000,xtextProps.getPropertyValue("CharColor"));
146 
147     }
148     @Test
testFontUnderline()149     public void testFontUnderline() throws Exception{
150         //set font color to red
151         xtextProps.setPropertyValue("CharUnderline", com.sun.star.awt.FontUnderline.SINGLE);
152         app.saveDocument(m_xSDComponent, filePath);
153         m_xSDComponent.dispose();
154         //reopen
155         m_xSDComponent = (XComponent) UnoRuntime.queryInterface(XComponent.class,
156                     app.loadDocument(filePath));
157         xShapeText = getFirstTextbox();
158         xtextProps = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xShapeText);
159         //check character styles
160         assertEquals("character should be underlined", com.sun.star.awt.FontUnderline.SINGLE, xtextProps.getPropertyValue("CharUnderline"));
161     }
162 
163     @Test
testFontSize()164     public void testFontSize() throws Exception{
165         //set font color to red
166         xtextProps.setPropertyValue("CharHeight", 12);
167         app.saveDocument(m_xSDComponent, filePath);
168         m_xSDComponent.dispose();
169         //reopen
170         m_xSDComponent = (XComponent) UnoRuntime.queryInterface(XComponent.class,
171                     app.loadDocument(filePath));
172         xShapeText = getFirstTextbox();
173         xtextProps = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xShapeText);
174         //check character styles
175         assertEquals("font size should be 12.0", "12.0", xtextProps.getPropertyValue("CharHeight").toString());
176     }
177     @Test
testFontBoldStyle()178     public void testFontBoldStyle() throws Exception  {
179         //change the font style to Bold
180         xtextProps.setPropertyValue("CharWeight", com.sun.star.awt.FontWeight.BOLD);
181         app.saveDocument(m_xSDComponent, filePath);
182         m_xSDComponent.dispose();
183         //reopen
184         m_xSDComponent = (XComponent) UnoRuntime.queryInterface(XComponent.class,
185                     app.loadDocument(filePath));
186         xShapeText = getFirstTextbox();
187         xtextProps = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xShapeText);
188         assertEquals("font style should be bold", com.sun.star.awt.FontWeight.BOLD, xtextProps.getPropertyValue("CharWeight"));
189     }
190 
191     @Test
testFontItalicStyle()192     public void testFontItalicStyle() throws Exception  {
193         //change the font style to Bold
194         xtextProps.setPropertyValue("CharPosture", com.sun.star.awt.FontSlant.ITALIC);
195         app.saveDocument(m_xSDComponent, filePath);
196         m_xSDComponent.dispose();
197         //reopen
198         m_xSDComponent = (XComponent) UnoRuntime.queryInterface(XComponent.class,
199                     app.loadDocument(filePath));
200         xShapeText = getFirstTextbox();
201         xtextProps = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xShapeText);
202         assertEquals("font style should be bold", com.sun.star.awt.FontSlant.ITALIC, xtextProps.getPropertyValue("CharPosture"));
203     }
204 }
205