xref: /trunk/test/testuno/source/fvt/uno/sw/paragraph/ParagraphTabs.java (revision a7b613a6af1cb6c17f72fb50272cb23f0021e01b)
1 package fvt.uno.sw.paragraph;
2 
3 import static org.junit.Assert.*;
4 
5 import org.junit.After;
6 import org.junit.Before;
7 import org.junit.Ignore;
8 import org.junit.Test;
9 import org.openoffice.test.common.FileUtil;
10 import org.openoffice.test.common.Testspace;
11 import org.openoffice.test.uno.UnoApp;
12 
13 import com.sun.star.style.TabAlign;
14 import com.sun.star.style.TabStop;
15 import com.sun.star.text.*;
16 import com.sun.star.beans.*;
17 import com.sun.star.frame.XStorable;
18 import com.sun.star.uno.UnoRuntime;
19 
20 public class ParagraphTabs {
21     private static final UnoApp app = new UnoApp();
22     XText xText = null;
23 
24     @Before
25     public void setUp() throws Exception {
26         app.start();
27 
28     }
29 
30     @After
31     public void tearDown() throws Exception {
32         app.close();
33     }
34     @Test
35     public void ParagraphTabs_Center() throws Exception {
36 
37         XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
38         xText = xTextDocument.getText();
39         xText.setString("we are Chinese,they are American.we are all living in one earth!Hello,world!Hello,world!");
40         // create text cursor for selecting and formatting text
41         XTextCursor xTextCursor = xText.createTextCursor();
42         XPropertySet xCursorProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
43         //paraTabStops.
44         TabStop[] tabStop=new TabStop[1];
45         tabStop[0]=new TabStop();
46         tabStop[0].Position=5001;
47         tabStop[0].Alignment=TabAlign.CENTER;
48         tabStop[0].FillChar='_';
49         //set paragraph tab stops
50         xCursorProps.setPropertyValue("ParaTabStops",tabStop);
51         //save to odt
52         XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
53         PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
54         aStoreProperties_odt[0] = new PropertyValue();
55         aStoreProperties_odt[1] = new PropertyValue();
56         aStoreProperties_odt[0].Name = "Override";
57         aStoreProperties_odt[0].Value = true;
58         aStoreProperties_odt[1].Name = "FilterName";
59         aStoreProperties_odt[1].Value = "writer8";
60         xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
61         //save to doc
62         XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
63         PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
64         aStoreProperties_doc[0] = new PropertyValue();
65         aStoreProperties_doc[1] = new PropertyValue();
66         aStoreProperties_doc[0].Name = "Override";
67         aStoreProperties_doc[0].Value = true;
68         aStoreProperties_doc[1].Name = "FilterName";
69         aStoreProperties_doc[1].Value = "MS Word 97";
70         xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
71         app.closeDocument(xTextDocument);
72 
73         //reopen the document
74         XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
75         XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
76         Object paraTabs_obj_odt=xCursorProps_Assert_odt.getPropertyValue("ParaTabStops");
77         TabStop[] paraTabs_assert_odt=(TabStop[]) UnoRuntime.queryInterface(TabStop[].class, paraTabs_obj_odt);
78         //verify paragraph tabs
79         assertEquals("assert paragraph tab setting",TabAlign.CENTER,paraTabs_assert_odt[0].Alignment);
80         assertEquals("assert paragraph tab setting",'_',paraTabs_assert_odt[0].FillChar);
81         assertEquals("assert paragraph tab setting",5001,paraTabs_assert_odt[0].Position);
82 
83         //reopen the document
84         XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
85         XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
86         TabStop[] paraTabs_assert_doc=(TabStop[]) UnoRuntime.queryInterface(TabStop[].class, xCursorProps_Assert_doc.getPropertyValue("ParaTabStops"));
87         //verify paragraph tabs
88         assertEquals("assert paragraph tab setting",TabAlign.CENTER,paraTabs_assert_doc[0].Alignment);
89         assertEquals("assert paragraph tab setting",'_',paraTabs_assert_doc[0].FillChar);
90         assertEquals("assert paragraph tab setting",5001,paraTabs_assert_doc[0].Position);
91     }
92     @Test
93     public void ParagraphTabs_Left() throws Exception {
94 
95         XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
96         xText = xTextDocument.getText();
97         xText.setString("we are Chinese,they are American.we are all living in one earth!Hello,world!Hello,world!");
98         // create text cursor for selecting and formatting text
99         XTextCursor xTextCursor = xText.createTextCursor();
100         XPropertySet xCursorProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
101         //paraTabStops.
102         TabStop[] tabStop=new TabStop[1];
103         tabStop[0]=new TabStop();
104         tabStop[0].Position=5001;
105         tabStop[0].Alignment=TabAlign.LEFT;
106         tabStop[0].FillChar='.';
107         //set paragraph tab stops
108         xCursorProps.setPropertyValue("ParaTabStops",tabStop);
109         //save to odt
110         XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
111         PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
112         aStoreProperties_odt[0] = new PropertyValue();
113         aStoreProperties_odt[1] = new PropertyValue();
114         aStoreProperties_odt[0].Name = "Override";
115         aStoreProperties_odt[0].Value = true;
116         aStoreProperties_odt[1].Name = "FilterName";
117         aStoreProperties_odt[1].Value = "writer8";
118         xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
119         //save to doc
120         XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
121         PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
122         aStoreProperties_doc[0] = new PropertyValue();
123         aStoreProperties_doc[1] = new PropertyValue();
124         aStoreProperties_doc[0].Name = "Override";
125         aStoreProperties_doc[0].Value = true;
126         aStoreProperties_doc[1].Name = "FilterName";
127         aStoreProperties_doc[1].Value = "MS Word 97";
128         xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
129         app.closeDocument(xTextDocument);
130 
131         //reopen the document
132         XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
133         XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
134         Object paraTabs_obj_odt=xCursorProps_Assert_odt.getPropertyValue("ParaTabStops");
135         TabStop[] paraTabs_assert_odt=(TabStop[]) UnoRuntime.queryInterface(TabStop[].class, paraTabs_obj_odt);
136         //verify paragraph tabs
137         assertEquals("assert paragraph tab setting",TabAlign.LEFT,paraTabs_assert_odt[0].Alignment);
138         assertEquals("assert paragraph tab setting",'.',paraTabs_assert_odt[0].FillChar);
139         assertEquals("assert paragraph tab setting",5001,paraTabs_assert_odt[0].Position);
140 
141         //reopen the document
142         XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
143         XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
144         TabStop[] paraTabs_assert_doc=(TabStop[]) UnoRuntime.queryInterface(TabStop[].class, xCursorProps_Assert_doc.getPropertyValue("ParaTabStops"));
145         //verify paragraph tabs
146         assertEquals("assert paragraph tab setting",TabAlign.LEFT,paraTabs_assert_doc[0].Alignment);
147         assertEquals("assert paragraph tab setting",'.',paraTabs_assert_doc[0].FillChar);
148         assertEquals("assert paragraph tab setting",5001,paraTabs_assert_doc[0].Position);
149     }
150     @Test
151     public void ParagraphTabs_Right() throws Exception {
152 
153         XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
154         xText = xTextDocument.getText();
155         xText.setString("we are Chinese,they are American.we are all living in one earth!Hello,world!Hello,world!");
156         // create text cursor for selecting and formatting text
157         XTextCursor xTextCursor = xText.createTextCursor();
158         XPropertySet xCursorProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
159         //paraTabStops.
160         TabStop[] tabStop=new TabStop[1];
161         tabStop[0]=new TabStop();
162         tabStop[0].Position=5001;
163         tabStop[0].Alignment=TabAlign.RIGHT;
164         tabStop[0].FillChar='-';
165         //set paragraph tab stops
166         xCursorProps.setPropertyValue("ParaTabStops",tabStop);
167         //save to odt
168         XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
169         PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
170         aStoreProperties_odt[0] = new PropertyValue();
171         aStoreProperties_odt[1] = new PropertyValue();
172         aStoreProperties_odt[0].Name = "Override";
173         aStoreProperties_odt[0].Value = true;
174         aStoreProperties_odt[1].Name = "FilterName";
175         aStoreProperties_odt[1].Value = "writer8";
176         xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
177         //save to doc
178         XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
179         PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
180         aStoreProperties_doc[0] = new PropertyValue();
181         aStoreProperties_doc[1] = new PropertyValue();
182         aStoreProperties_doc[0].Name = "Override";
183         aStoreProperties_doc[0].Value = true;
184         aStoreProperties_doc[1].Name = "FilterName";
185         aStoreProperties_doc[1].Value = "MS Word 97";
186         xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
187         app.closeDocument(xTextDocument);
188 
189         //reopen the document
190         XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
191         XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
192         Object paraTabs_obj_odt=xCursorProps_Assert_odt.getPropertyValue("ParaTabStops");
193         TabStop[] paraTabs_assert_odt=(TabStop[]) UnoRuntime.queryInterface(TabStop[].class, paraTabs_obj_odt);
194         //verify paragraph tabs
195         assertEquals("assert paragraph tab setting",TabAlign.RIGHT,paraTabs_assert_odt[0].Alignment);
196         assertEquals("assert paragraph tab setting",'-',paraTabs_assert_odt[0].FillChar);
197         assertEquals("assert paragraph tab setting",5001,paraTabs_assert_odt[0].Position);
198 
199         //reopen the document
200         XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
201         XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
202         TabStop[] paraTabs_assert_doc=(TabStop[]) UnoRuntime.queryInterface(TabStop[].class, xCursorProps_Assert_doc.getPropertyValue("ParaTabStops"));
203         //verify paragraph tabs
204         assertEquals("assert paragraph tab setting",TabAlign.RIGHT,paraTabs_assert_doc[0].Alignment);
205         assertEquals("assert paragraph tab setting",'-',paraTabs_assert_doc[0].FillChar);
206         assertEquals("assert paragraph tab setting",5001,paraTabs_assert_doc[0].Position);
207     }
208     @Test
209     public void ParagraphTabs_Decimal() throws Exception {
210 
211         XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
212         xText = xTextDocument.getText();
213         xText.setString("we are Chinese,they are American.we are all living in one earth!Hello,world!Hello,world!");
214         // create text cursor for selecting and formatting text
215         XTextCursor xTextCursor = xText.createTextCursor();
216         XPropertySet xCursorProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
217         //paraTabStops.
218         TabStop[] tabStop=new TabStop[1];
219         tabStop[0]=new TabStop();
220         tabStop[0].Position=5001;
221         tabStop[0].Alignment=TabAlign.DECIMAL;
222         tabStop[0].DecimalChar='.';
223         tabStop[0].FillChar='-';
224         //set paragraph tab stops
225         xCursorProps.setPropertyValue("ParaTabStops",tabStop);
226         //save to odt
227         XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
228         PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
229         aStoreProperties_odt[0] = new PropertyValue();
230         aStoreProperties_odt[1] = new PropertyValue();
231         aStoreProperties_odt[0].Name = "Override";
232         aStoreProperties_odt[0].Value = true;
233         aStoreProperties_odt[1].Name = "FilterName";
234         aStoreProperties_odt[1].Value = "writer8";
235         xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
236         //save to doc
237         XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
238         PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
239         aStoreProperties_doc[0] = new PropertyValue();
240         aStoreProperties_doc[1] = new PropertyValue();
241         aStoreProperties_doc[0].Name = "Override";
242         aStoreProperties_doc[0].Value = true;
243         aStoreProperties_doc[1].Name = "FilterName";
244         aStoreProperties_doc[1].Value = "MS Word 97";
245         xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
246         app.closeDocument(xTextDocument);
247 
248         //reopen the document
249         XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
250         XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
251         Object paraTabs_obj_odt=xCursorProps_Assert_odt.getPropertyValue("ParaTabStops");
252         TabStop[] paraTabs_assert_odt=(TabStop[]) UnoRuntime.queryInterface(TabStop[].class, paraTabs_obj_odt);
253         //verify paragraph tabs
254         assertEquals("assert paragraph tab setting",TabAlign.DECIMAL,paraTabs_assert_odt[0].Alignment);
255         assertEquals("assert paragraph tab setting",'-',paraTabs_assert_odt[0].FillChar);
256         assertEquals("assert paragraph tab setting",5001,paraTabs_assert_odt[0].Position);
257         assertEquals("assert paragraph tab setting",'.',paraTabs_assert_odt[0].DecimalChar);
258 
259         //reopen the document
260         XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
261         XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
262         TabStop[] paraTabs_assert_doc=(TabStop[]) UnoRuntime.queryInterface(TabStop[].class, xCursorProps_Assert_doc.getPropertyValue("ParaTabStops"));
263         //verify paragraph tabs
264         assertEquals("assert paragraph tab setting",TabAlign.DECIMAL,paraTabs_assert_doc[0].Alignment);
265         assertEquals("assert paragraph tab setting",'-',paraTabs_assert_doc[0].FillChar);
266         assertEquals("assert paragraph tab setting",5001,paraTabs_assert_doc[0].Position);
267         assertEquals("assert paragraph tab setting",'.',paraTabs_assert_doc[0].DecimalChar);
268     }
269     @Test@Ignore("Bug #120748 - [testUNO patch]the tabstops character of paragraph change to default when save to doc.")
270     public void ParagraphTabs_Decimal_UserDefineCharacter() throws Exception {
271 
272         XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
273         xText = xTextDocument.getText();
274         xText.setString("we are Chinese,they are American.we are all living in one earth!Hello,world!Hello,world!");
275         // create text cursor for selecting and formatting text
276         XTextCursor xTextCursor = xText.createTextCursor();
277         XPropertySet xCursorProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
278         //paraTabStops.
279         TabStop[] tabStop=new TabStop[1];
280         tabStop[0]=new TabStop();
281         tabStop[0].Position=5001;
282         tabStop[0].Alignment=TabAlign.DECIMAL;
283         tabStop[0].DecimalChar='@';
284         tabStop[0].FillChar='%';
285         //set paragraph tab stops
286         xCursorProps.setPropertyValue("ParaTabStops",tabStop);
287         //save to odt
288         XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
289         PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
290         aStoreProperties_odt[0] = new PropertyValue();
291         aStoreProperties_odt[1] = new PropertyValue();
292         aStoreProperties_odt[0].Name = "Override";
293         aStoreProperties_odt[0].Value = true;
294         aStoreProperties_odt[1].Name = "FilterName";
295         aStoreProperties_odt[1].Value = "writer8";
296         xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
297         //save to doc
298         XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
299         PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
300         aStoreProperties_doc[0] = new PropertyValue();
301         aStoreProperties_doc[1] = new PropertyValue();
302         aStoreProperties_doc[0].Name = "Override";
303         aStoreProperties_doc[0].Value = true;
304         aStoreProperties_doc[1].Name = "FilterName";
305         aStoreProperties_doc[1].Value = "MS Word 97";
306         xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
307         app.closeDocument(xTextDocument);
308 
309         //reopen the document
310         XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
311         XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
312         Object paraTabs_obj_odt=xCursorProps_Assert_odt.getPropertyValue("ParaTabStops");
313         TabStop[] paraTabs_assert_odt=(TabStop[]) UnoRuntime.queryInterface(TabStop[].class, paraTabs_obj_odt);
314         //verify paragraph tabs
315         assertEquals("assert paragraph tab setting",TabAlign.DECIMAL,paraTabs_assert_odt[0].Alignment);
316         assertEquals("assert paragraph tab setting",'%',paraTabs_assert_odt[0].FillChar);
317         assertEquals("assert paragraph tab setting",5001,paraTabs_assert_odt[0].Position);
318         assertEquals("assert paragraph tab setting",'@',paraTabs_assert_odt[0].DecimalChar);
319 
320         //reopen the document
321         XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
322         XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
323         TabStop[] paraTabs_assert_doc=(TabStop[]) UnoRuntime.queryInterface(TabStop[].class, xCursorProps_Assert_doc.getPropertyValue("ParaTabStops"));
324         //verify paragraph tabs
325         assertEquals("assert paragraph tab setting",TabAlign.DECIMAL,paraTabs_assert_doc[0].Alignment);
326         assertEquals("assert paragraph tab setting",'%',paraTabs_assert_doc[0].FillChar);
327         assertEquals("assert paragraph tab setting",5001,paraTabs_assert_doc[0].Position);
328         assertEquals("assert paragraph tab setting",'@',paraTabs_assert_doc[0].DecimalChar);
329     }
330 }
331