xref: /AOO41X/test/testuno/source/fvt/uno/sw/puretext/CharacterEmphasis.java (revision 07d7dbdcb8e526dfaf85923a181c45494526d79d)
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 package fvt.uno.sw.puretext;
23 
24 import static org.junit.Assert.*;
25 
26 import org.junit.After;
27 import org.junit.Before;
28 import org.junit.Ignore;
29 import org.junit.Test;
30 import org.openoffice.test.common.FileUtil;
31 import org.openoffice.test.common.Testspace;
32 import org.openoffice.test.uno.UnoApp;
33 //import org.openoffice.test.vcl.Tester.*;
34 import com.sun.star.text.*;
35 import com.sun.star.beans.*;
36 import com.sun.star.frame.XStorable;
37 import com.sun.star.uno.UnoRuntime;
38 
39 public class CharacterEmphasis {
40     private static final UnoApp app = new UnoApp();
41     XText xText = null;
42 
43     @Before
setUp()44     public void setUp() throws Exception {
45         app.start();
46 
47     }
48 
49     @After
tearDown()50     public void tearDown() throws Exception {
51         app.close();
52     }
53     @Test@Ignore("Bug #120657 - [testUNO patch]charmode change to disable from enable when save to doc.")
testCharacterEmphasisSetting()54     public void testCharacterEmphasisSetting() throws Exception {
55         XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
56         xText = xTextDocument.getText();
57         xText.setString("We are Chinese,they are American. We are all living in one earth!"
58                 + "and we all love our home very much!!!We are Chinese,they are American. " +
59                 "We are all living in one earth!We are Chinese,they are American. " +
60                 "We are all living in one earth!We are Chinese,they are American. " +
61                 "We are all living in one earth!We are Chinese,they are American. " +
62                 "We are all living in one earth!We are Chinese,they are American. " +
63                 "We are all living in one earth!We are Chinese,they are American." +
64                 " We are all living in one earth!We are Chinese,they are American. " +
65                 "We are all living in one earth!We are Chinese,they are American. " +
66                 "We are all living in one earth!We are Chinese,they are American. " +
67                 "We are all living in one earth!We are Chinese,they are American. " +
68                 "We are all living in one earth!We are Chinese,they are American. " +
69                 "We are all living in one earth!We are Chinese,they are American. " +
70                 "We are all living in one earth!We are Chinese,they are American. " +
71                 "We are all living in one earth!We are Chinese,they are American. " +
72                 "We are all living in one earth!We are Chinese,they are American. " +
73                 "We are all living in one earth!We are Chinese,they are American. " +
74                 "We are all living in one earth!We are Chinese,they are American. " +
75                 "We are all living in one earth!We are Chinese,they are American. " +
76                 "We are all living in one earth!We are all living in one earth!We are Chinese,they are American. " +
77                 "We are all living in one earth!We are all living in one earth!We are Chinese,they are American. " +
78                 "We are all living in one earth!We are all living in one earth!We are Chinese,they are American. " +
79                 "We are all living in one earth!We are all living in one earth!We are Chinese,they are American. " +
80                 "We are all living in one earth!We are all living in one earth!We are Chinese,they are American. " +
81                 "We are all living in one earth!We are all living in one earth!We are Chinese,they are American. " +
82                 "We are all living in one earth!");
83         // create text cursor for selecting and formatting text
84         XTextCursor xTextCursor = xText.createTextCursor();
85         XPropertySet xCursorProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
86         xTextCursor.gotoStart(false);
87         xTextCursor.goRight((short) 100, true);
88         xCursorProps.setPropertyValue("CharWordMode", true);
89         xCursorProps.setPropertyValue("CharEmphasis", new Short(com.sun.star.text.FontEmphasis.ACCENT_ABOVE));
90         xTextCursor.gotoRange(xTextCursor, false);
91         xTextCursor.goRight((short) 100, true);
92         xCursorProps.setPropertyValue("CharWordMode", false);
93         xCursorProps.setPropertyValue("CharEmphasis", new Short(com.sun.star.text.FontEmphasis.ACCENT_BELOW));
94         xTextCursor.gotoRange(xTextCursor, false);
95         xTextCursor.goRight((short) 100, true);
96         xCursorProps.setPropertyValue("CharWordMode", false);
97         xCursorProps.setPropertyValue("CharEmphasis", new Short(com.sun.star.text.FontEmphasis.CIRCLE_ABOVE));
98         xTextCursor.gotoRange(xTextCursor, false);
99         xTextCursor.goRight((short) 100, true);
100         xCursorProps.setPropertyValue("CharWordMode", true);
101         xCursorProps.setPropertyValue("CharEmphasis", new Short(com.sun.star.text.FontEmphasis.CIRCLE_BELOW));
102         xTextCursor.gotoRange(xTextCursor, false);
103         xTextCursor.goRight((short) 100, true);
104         xCursorProps.setPropertyValue("CharWordMode", true);
105         xCursorProps.setPropertyValue("CharEmphasis", new Short(com.sun.star.text.FontEmphasis.DISK_ABOVE));
106         xTextCursor.gotoRange(xTextCursor, false);
107         xTextCursor.goRight((short) 100, true);
108         xCursorProps.setPropertyValue("CharWordMode", false);
109         xCursorProps.setPropertyValue("CharEmphasis", new Short(com.sun.star.text.FontEmphasis.DISK_BELOW));
110         xTextCursor.gotoRange(xTextCursor, false);
111         xTextCursor.goRight((short) 100, true);
112         xCursorProps.setPropertyValue("CharWordMode", false);
113         xCursorProps.setPropertyValue("CharEmphasis", new Short(com.sun.star.text.FontEmphasis.DOT_ABOVE));
114         xTextCursor.gotoRange(xTextCursor, false);
115         xTextCursor.goRight((short) 100, true);
116         xCursorProps.setPropertyValue("CharWordMode", false);
117         xCursorProps.setPropertyValue("CharEmphasis", new Short(com.sun.star.text.FontEmphasis.DOT_BELOW));
118         xTextCursor.gotoRange(xTextCursor, false);
119         xTextCursor.goRight((short) 100, true);
120         xCursorProps.setPropertyValue("CharWordMode", false);
121         xCursorProps.setPropertyValue("CharEmphasis", new Short(com.sun.star.text.FontEmphasis.NONE));
122         //save to odt
123         XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
124         PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
125         aStoreProperties_odt[0] = new PropertyValue();
126         aStoreProperties_odt[1] = new PropertyValue();
127         aStoreProperties_odt[0].Name = "Override";
128         aStoreProperties_odt[0].Value = true;
129         aStoreProperties_odt[1].Name = "FilterName";
130         aStoreProperties_odt[1].Value = "StarOffice XML (Writer)";
131         xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
132         //save to doc
133         XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
134         PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
135         aStoreProperties_doc[0] = new PropertyValue();
136         aStoreProperties_doc[1] = new PropertyValue();
137         aStoreProperties_doc[0].Name = "Override";
138         aStoreProperties_doc[0].Value = true;
139         aStoreProperties_doc[1].Name = "FilterName";
140         aStoreProperties_doc[1].Value = "MS Word 97";
141         xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
142         app.closeDocument(xTextDocument);
143 
144         //reopen the document and assert character emphasis
145         XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
146         XTextCursor xTextCursor_assert_odt = assertDocument_odt.getText().createTextCursor();
147         XPropertySet xCursorProps_assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor_assert_odt);
148 
149         xTextCursor_assert_odt.gotoStart(false);
150         xTextCursor_assert_odt.goRight((short) 100, true);
151         assertEquals("assert individual word setting",true,xCursorProps_assert_odt.getPropertyValue("CharWordMode"));
152         assertEquals("assert overline",com.sun.star.text.FontEmphasis.ACCENT_ABOVE,xCursorProps_assert_odt.getPropertyValue("CharEmphasis"));
153         xTextCursor_assert_odt.gotoRange(xTextCursor_assert_odt, false);
154         xTextCursor_assert_odt.goRight((short) 100, true);
155         assertEquals("assert individual word setting",false,xCursorProps_assert_odt.getPropertyValue("CharWordMode"));
156         assertEquals("assert overline",com.sun.star.text.FontEmphasis.ACCENT_BELOW,xCursorProps_assert_odt.getPropertyValue("CharEmphasis"));
157         xTextCursor_assert_odt.gotoRange(xTextCursor_assert_odt, false);
158         xTextCursor_assert_odt.goRight((short) 100, true);
159         assertEquals("assert individual word setting",false,xCursorProps_assert_odt.getPropertyValue("CharWordMode"));
160         assertEquals("assert overline",com.sun.star.text.FontEmphasis.CIRCLE_ABOVE,xCursorProps_assert_odt.getPropertyValue("CharEmphasis"));
161         xTextCursor_assert_odt.gotoRange(xTextCursor_assert_odt, false);
162         xTextCursor_assert_odt.goRight((short) 100, true);
163         assertEquals("assert individual word setting",true,xCursorProps_assert_odt.getPropertyValue("CharWordMode"));
164         assertEquals("assert overline",com.sun.star.text.FontEmphasis.CIRCLE_BELOW,xCursorProps_assert_odt.getPropertyValue("CharEmphasis"));
165         xTextCursor_assert_odt.gotoRange(xTextCursor_assert_odt, false);
166         xTextCursor_assert_odt.goRight((short) 100, true);
167         assertEquals("assert individual word setting",true,xCursorProps_assert_odt.getPropertyValue("CharWordMode"));
168         assertEquals("assert overline",com.sun.star.text.FontEmphasis.DISK_ABOVE,xCursorProps_assert_odt.getPropertyValue("CharEmphasis"));
169         xTextCursor_assert_odt.gotoRange(xTextCursor_assert_odt, false);
170         xTextCursor_assert_odt.goRight((short) 100, true);
171         assertEquals("assert individual word setting",false,xCursorProps_assert_odt.getPropertyValue("CharWordMode"));
172         assertEquals("assert overline",com.sun.star.text.FontEmphasis.DISK_BELOW,xCursorProps_assert_odt.getPropertyValue("CharEmphasis"));
173         xTextCursor_assert_odt.gotoRange(xTextCursor_assert_odt, false);
174         xTextCursor_assert_odt.goRight((short) 100, true);
175         assertEquals("assert individual word setting",false,xCursorProps_assert_odt.getPropertyValue("CharWordMode"));
176         assertEquals("assert overline",com.sun.star.text.FontEmphasis.DOT_ABOVE,xCursorProps_assert_odt.getPropertyValue("CharEmphasis"));
177         xTextCursor_assert_odt.gotoRange(xTextCursor_assert_odt, false);
178         xTextCursor_assert_odt.goRight((short) 100, true);
179         assertEquals("assert individual word setting",false,xCursorProps_assert_odt.getPropertyValue("CharWordMode"));
180         assertEquals("assert overline",com.sun.star.text.FontEmphasis.DOT_BELOW,xCursorProps_assert_odt.getPropertyValue("CharEmphasis"));
181         xTextCursor_assert_odt.gotoRange(xTextCursor_assert_odt, false);
182         xTextCursor_assert_odt.goRight((short) 100, true);
183         assertEquals("assert individual word setting",false,xCursorProps_assert_odt.getPropertyValue("CharWordMode"));
184         assertEquals("assert overline",com.sun.star.text.FontEmphasis.NONE,xCursorProps_assert_odt.getPropertyValue("CharEmphasis"));
185 
186         //reopen the document and assert character emphasis
187         XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
188         XTextCursor xTextCursor_assert_doc = assertDocument_doc.getText().createTextCursor();
189         XPropertySet xCursorProps_assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor_assert_doc);
190 
191         xTextCursor_assert_doc.gotoStart(false);
192         xTextCursor_assert_doc.goRight((short) 100, true);
193         assertEquals("assert individual word setting",true,xCursorProps_assert_doc.getPropertyValue("CharWordMode"));
194         assertEquals("assert overline",com.sun.star.text.FontEmphasis.ACCENT_ABOVE,xCursorProps_assert_doc.getPropertyValue("CharEmphasis"));
195         xTextCursor_assert_doc.gotoRange(xTextCursor_assert_doc, false);
196         xTextCursor_assert_doc.goRight((short) 100, true);
197         assertEquals("assert individual word setting",false,xCursorProps_assert_doc.getPropertyValue("CharWordMode"));
198         assertEquals("assert overline",com.sun.star.text.FontEmphasis.ACCENT_BELOW,xCursorProps_assert_doc.getPropertyValue("CharEmphasis"));
199         xTextCursor_assert_doc.gotoRange(xTextCursor_assert_doc, false);
200         xTextCursor_assert_doc.goRight((short) 100, true);
201         assertEquals("assert individual word setting",false,xCursorProps_assert_doc.getPropertyValue("CharWordMode"));
202         assertEquals("assert overline",com.sun.star.text.FontEmphasis.CIRCLE_ABOVE,xCursorProps_assert_doc.getPropertyValue("CharEmphasis"));
203         xTextCursor_assert_doc.gotoRange(xTextCursor_assert_doc, false);
204         xTextCursor_assert_doc.goRight((short) 100, true);
205         assertEquals("assert individual word setting",true,xCursorProps_assert_doc.getPropertyValue("CharWordMode"));
206         assertEquals("assert overline",com.sun.star.text.FontEmphasis.CIRCLE_BELOW,xCursorProps_assert_doc.getPropertyValue("CharEmphasis"));
207         xTextCursor_assert_doc.gotoRange(xTextCursor_assert_doc, false);
208         xTextCursor_assert_doc.goRight((short) 100, true);
209         assertEquals("assert individual word setting",true,xCursorProps_assert_doc.getPropertyValue("CharWordMode"));
210         assertEquals("assert overline",com.sun.star.text.FontEmphasis.DISK_ABOVE,xCursorProps_assert_doc.getPropertyValue("CharEmphasis"));
211         xTextCursor_assert_doc.gotoRange(xTextCursor_assert_doc, false);
212         xTextCursor_assert_doc.goRight((short) 100, true);
213         assertEquals("assert individual word setting",true,xCursorProps_assert_doc.getPropertyValue("CharWordMode"));
214         assertEquals("assert overline",com.sun.star.text.FontEmphasis.DISK_BELOW,xCursorProps_assert_doc.getPropertyValue("CharEmphasis"));
215         xTextCursor_assert_doc.gotoRange(xTextCursor_assert_doc, false);
216         xTextCursor_assert_doc.goRight((short) 100, true);
217         assertEquals("assert individual word setting",true,xCursorProps_assert_doc.getPropertyValue("CharWordMode"));
218         assertEquals("assert overline",com.sun.star.text.FontEmphasis.DOT_ABOVE,xCursorProps_assert_doc.getPropertyValue("CharEmphasis"));
219         xTextCursor_assert_doc.gotoRange(xTextCursor_assert_doc, false);
220         xTextCursor_assert_doc.goRight((short) 100, true);
221         assertEquals("assert individual word setting",true,xCursorProps_assert_doc.getPropertyValue("CharWordMode"));
222         assertEquals("assert overline",com.sun.star.text.FontEmphasis.DOT_BELOW,xCursorProps_assert_doc.getPropertyValue("CharEmphasis"));
223         xTextCursor_assert_doc.gotoRange(xTextCursor_assert_doc, false);
224         xTextCursor_assert_doc.goRight((short) 100, true);
225         assertEquals("assert individual word setting",true,xCursorProps_assert_doc.getPropertyValue("CharWordMode"));
226         assertEquals("assert overline",com.sun.star.text.FontEmphasis.NONE,xCursorProps_assert_doc.getPropertyValue("CharEmphasis"));
227         }
228 }
229