xref: /AOO41X/test/testuno/source/fvt/uno/sw/paragraph/ParagraphNumberingAndBulletCharacterStyle.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.paragraph;
23 
24 import static org.junit.Assert.*;
25 
26 import org.junit.After;
27 import org.junit.Before;
28 import org.junit.Test;
29 import org.openoffice.test.common.FileUtil;
30 import org.openoffice.test.common.Testspace;
31 import org.openoffice.test.uno.UnoApp;
32 
33 import com.sun.star.style.NumberingType;
34 import com.sun.star.text.*;
35 import com.sun.star.beans.*;
36 import com.sun.star.container.XIndexAccess;
37 import com.sun.star.container.XIndexReplace;
38 import com.sun.star.frame.XStorable;
39 import com.sun.star.lang.XMultiServiceFactory;
40 import com.sun.star.uno.UnoRuntime;
41 
42 public class ParagraphNumberingAndBulletCharacterStyle {
43     private static final UnoApp app = new UnoApp();
44     XText xText = null;
45 
46     @Before
setUp()47     public void setUp() throws Exception {
48         app.start();
49 
50     }
51 
52     @After
tearDown()53     public void tearDown() throws Exception {
54         app.close();
55     }
56     /*
57      * test paragraph background color
58      * 1.new a text document
59      * 2.insert some text
60      * 3.set paragraph numbering bullet character style
61      * 4.save and close the document
62      * 5.reload the saved document and check the paragraph numbering bullet character style
63      */
64     @Test
testNumberingBulletCharacterStyle_Rubies()65     public void testNumberingBulletCharacterStyle_Rubies() throws Exception {
66 
67         XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
68         xText = xTextDocument.getText();
69         xText.setString("we are Chinese,they are American.we are all living in one earth!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!" +
70                 "Hello,world!Hello,world!");
71         //create cursor to select paragraph and formating paragraph
72         XTextCursor xTextCursor = xText.createTextCursor();
73         //create paragraph property set
74         XPropertySet xTextProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
75         //create document service factory
76         XMultiServiceFactory  xWriterFactory= (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
77         //set numbering character
78         XIndexAccess xNumRule = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,xWriterFactory.createInstance("com.sun.star.text.NumberingRules"));
79         PropertyValue[] propsRule = {new PropertyValue(),new PropertyValue()};
80         propsRule[0].Name = "NumberingType";
81         propsRule[0].Value = NumberingType.ARABIC;
82         propsRule[1].Name = "CharStyleName";
83         propsRule[1].Value = "Rubies";
84         XIndexReplace xReplaceRule = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule);
85         xReplaceRule.replaceByIndex(0, propsRule);
86         //set paragraph numbering and bullet character
87         xTextProps.setPropertyValue("NumberingRules", xNumRule);
88         //save to odt
89         XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
90         PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
91         aStoreProperties_odt[0] = new PropertyValue();
92         aStoreProperties_odt[1] = new PropertyValue();
93         aStoreProperties_odt[0].Name = "Override";
94         aStoreProperties_odt[0].Value = true;
95         aStoreProperties_odt[1].Name = "FilterName";
96         aStoreProperties_odt[1].Value = "writer8";
97         xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
98         //save to doc
99         XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
100         PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
101         aStoreProperties_doc[0] = new PropertyValue();
102         aStoreProperties_doc[1] = new PropertyValue();
103         aStoreProperties_doc[0].Name = "Override";
104         aStoreProperties_doc[0].Value = true;
105         aStoreProperties_doc[1].Name = "FilterName";
106         aStoreProperties_doc[1].Value = "MS Word 97";
107         xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
108         app.closeDocument(xTextDocument);
109 
110         //reopen the document
111         XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
112         XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
113         XIndexAccess xNumRule_assert_odt = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_odt.getPropertyValue("NumberingRules"));
114         XIndexReplace xReplaceRule_assert_odt = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule_assert_odt);
115         PropertyValue[] propsRule_assert_odt=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xReplaceRule_assert_odt.getByIndex(0));
116         //verify paragraph numbering and bullet alignment
117         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_odt[4].Name);
118         assertEquals("assert numbering and bullet","Rubies",propsRule_assert_odt[4].Value);
119         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_odt[11].Name);
120         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_odt[11].Value);
121 
122         //reopen the document
123         XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
124         XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
125         XIndexAccess xNumRule_assert_doc = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_doc.getPropertyValue("NumberingRules"));
126         PropertyValue[] propsRule_assert_doc=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xNumRule_assert_doc.getByIndex(0));
127         //verify paragraph numbering and bullet alignment
128         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_doc[4].Name);
129         assertEquals("assert numbering and bullet","WW8Num1z0",propsRule_assert_doc[4].Value);
130         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_doc[11].Name);
131         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_doc[11].Value);
132     }
133     @Test
testNumberingBulletCharacterStyle_Emphasis()134     public void testNumberingBulletCharacterStyle_Emphasis() throws Exception {
135 
136         XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
137         xText = xTextDocument.getText();
138         xText.setString("we are Chinese,they are American.we are all living in one earth!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!" +
139                 "Hello,world!Hello,world!");
140         //create cursor to select paragraph and formating paragraph
141         XTextCursor xTextCursor = xText.createTextCursor();
142         //create paragraph property set
143         XPropertySet xTextProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
144         //create document service factory
145         XMultiServiceFactory  xWriterFactory= (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
146         //set numbering character
147         XIndexAccess xNumRule = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,xWriterFactory.createInstance("com.sun.star.text.NumberingRules"));
148         PropertyValue[] propsRule = {new PropertyValue(),new PropertyValue()};
149         propsRule[0].Name = "NumberingType";
150         propsRule[0].Value = NumberingType.ARABIC;
151         propsRule[1].Name = "CharStyleName";
152         propsRule[1].Value = "Emphasis";
153         XIndexReplace xReplaceRule = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule);
154         xReplaceRule.replaceByIndex(0, propsRule);
155         //set paragraph numbering and bullet character
156         xTextProps.setPropertyValue("NumberingRules", xNumRule);
157         //save to odt
158         XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
159         PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
160         aStoreProperties_odt[0] = new PropertyValue();
161         aStoreProperties_odt[1] = new PropertyValue();
162         aStoreProperties_odt[0].Name = "Override";
163         aStoreProperties_odt[0].Value = true;
164         aStoreProperties_odt[1].Name = "FilterName";
165         aStoreProperties_odt[1].Value = "writer8";
166         xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
167         //save to doc
168         XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
169         PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
170         aStoreProperties_doc[0] = new PropertyValue();
171         aStoreProperties_doc[1] = new PropertyValue();
172         aStoreProperties_doc[0].Name = "Override";
173         aStoreProperties_doc[0].Value = true;
174         aStoreProperties_doc[1].Name = "FilterName";
175         aStoreProperties_doc[1].Value = "MS Word 97";
176         xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
177         app.closeDocument(xTextDocument);
178 
179         //reopen the document
180         XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
181         XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
182         XIndexAccess xNumRule_assert_odt = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_odt.getPropertyValue("NumberingRules"));
183         XIndexReplace xReplaceRule_assert_odt = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule_assert_odt);
184         PropertyValue[] propsRule_assert_odt=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xReplaceRule_assert_odt.getByIndex(0));
185         //verify paragraph numbering and bullet alignment
186         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_odt[4].Name);
187         assertEquals("assert numbering and bullet","Emphasis",propsRule_assert_odt[4].Value);
188         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_odt[11].Name);
189         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_odt[11].Value);
190 
191         //reopen the document
192         XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
193         XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
194         XIndexAccess xNumRule_assert_doc = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_doc.getPropertyValue("NumberingRules"));
195         PropertyValue[] propsRule_assert_doc=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xNumRule_assert_doc.getByIndex(0));
196         //verify paragraph numbering and bullet alignment
197         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_doc[4].Name);
198         assertEquals("assert numbering and bullet","WW8Num1z0",propsRule_assert_doc[4].Value);
199         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_doc[11].Name);
200         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_doc[11].Value);
201     }
202     @Test
testNumberingBulletCharacterStyle_FootnoteCharacters()203     public void testNumberingBulletCharacterStyle_FootnoteCharacters() throws Exception {
204 
205         XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
206         xText = xTextDocument.getText();
207         xText.setString("we are Chinese,they are American.we are all living in one earth!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!" +
208                 "Hello,world!Hello,world!");
209         //create cursor to select paragraph and formating paragraph
210         XTextCursor xTextCursor = xText.createTextCursor();
211         //create paragraph property set
212         XPropertySet xTextProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
213         //create document service factory
214         XMultiServiceFactory  xWriterFactory= (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
215         //set numbering character
216         XIndexAccess xNumRule = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,xWriterFactory.createInstance("com.sun.star.text.NumberingRules"));
217         PropertyValue[] propsRule = {new PropertyValue(),new PropertyValue()};
218         propsRule[0].Name = "NumberingType";
219         propsRule[0].Value = NumberingType.ARABIC;
220         propsRule[1].Name = "CharStyleName";
221         propsRule[1].Value = "Footnote Characters";
222         XIndexReplace xReplaceRule = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule);
223         xReplaceRule.replaceByIndex(0, propsRule);
224         //set paragraph numbering and bullet character
225         xTextProps.setPropertyValue("NumberingRules", xNumRule);
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         XIndexAccess xNumRule_assert_odt = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_odt.getPropertyValue("NumberingRules"));
252         XIndexReplace xReplaceRule_assert_odt = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule_assert_odt);
253         PropertyValue[] propsRule_assert_odt=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xReplaceRule_assert_odt.getByIndex(0));
254         //verify paragraph numbering and bullet alignment
255         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_odt[4].Name);
256         assertEquals("assert numbering and bullet","Footnote Symbol",propsRule_assert_odt[4].Value);
257         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_odt[11].Name);
258         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_odt[11].Value);
259 
260         //reopen the document
261         XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
262         XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
263         XIndexAccess xNumRule_assert_doc = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_doc.getPropertyValue("NumberingRules"));
264         PropertyValue[] propsRule_assert_doc=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xNumRule_assert_doc.getByIndex(0));
265         //verify paragraph numbering and bullet alignment
266         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_doc[4].Name);
267         assertEquals("assert numbering and bullet","WW8Num1z0",propsRule_assert_doc[4].Value);
268         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_doc[11].Name);
269         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_doc[11].Value);
270     }
271     @Test
testNumberingBulletCharacterStyle_PageNumber()272     public void testNumberingBulletCharacterStyle_PageNumber() throws Exception {
273 
274         XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
275         xText = xTextDocument.getText();
276         xText.setString("we are Chinese,they are American.we are all living in one earth!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!" +
277                 "Hello,world!Hello,world!");
278         //create cursor to select paragraph and formating paragraph
279         XTextCursor xTextCursor = xText.createTextCursor();
280         //create paragraph property set
281         XPropertySet xTextProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
282         //create document service factory
283         XMultiServiceFactory  xWriterFactory= (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
284         //set numbering character
285         XIndexAccess xNumRule = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,xWriterFactory.createInstance("com.sun.star.text.NumberingRules"));
286         PropertyValue[] propsRule = {new PropertyValue(),new PropertyValue()};
287         propsRule[0].Name = "NumberingType";
288         propsRule[0].Value = NumberingType.ARABIC;
289         propsRule[1].Name = "CharStyleName";
290         propsRule[1].Value = "Page Number";
291         XIndexReplace xReplaceRule = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule);
292         xReplaceRule.replaceByIndex(0, propsRule);
293         //set paragraph numbering and bullet character
294         xTextProps.setPropertyValue("NumberingRules", xNumRule);
295         //save to odt
296         XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
297         PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
298         aStoreProperties_odt[0] = new PropertyValue();
299         aStoreProperties_odt[1] = new PropertyValue();
300         aStoreProperties_odt[0].Name = "Override";
301         aStoreProperties_odt[0].Value = true;
302         aStoreProperties_odt[1].Name = "FilterName";
303         aStoreProperties_odt[1].Value = "writer8";
304         xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
305         //save to doc
306         XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
307         PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
308         aStoreProperties_doc[0] = new PropertyValue();
309         aStoreProperties_doc[1] = new PropertyValue();
310         aStoreProperties_doc[0].Name = "Override";
311         aStoreProperties_doc[0].Value = true;
312         aStoreProperties_doc[1].Name = "FilterName";
313         aStoreProperties_doc[1].Value = "MS Word 97";
314         xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
315         app.closeDocument(xTextDocument);
316 
317         //reopen the document
318         XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
319         XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
320         XIndexAccess xNumRule_assert_odt = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_odt.getPropertyValue("NumberingRules"));
321         XIndexReplace xReplaceRule_assert_odt = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule_assert_odt);
322         PropertyValue[] propsRule_assert_odt=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xReplaceRule_assert_odt.getByIndex(0));
323         //verify paragraph numbering and bullet alignment
324         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_odt[4].Name);
325         assertEquals("assert numbering and bullet","Page Number",propsRule_assert_odt[4].Value);
326         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_odt[11].Name);
327         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_odt[11].Value);
328 
329         //reopen the document
330         XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
331         XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
332         XIndexAccess xNumRule_assert_doc = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_doc.getPropertyValue("NumberingRules"));
333         PropertyValue[] propsRule_assert_doc=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xNumRule_assert_doc.getByIndex(0));
334         //verify paragraph numbering and bullet alignment
335         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_doc[4].Name);
336         assertEquals("assert numbering and bullet","WW8Num1z0",propsRule_assert_doc[4].Value);
337         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_doc[11].Name);
338         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_doc[11].Value);
339     }
340     @Test
testNumberingBulletCharacterStyle_CaptionCharacters()341     public void testNumberingBulletCharacterStyle_CaptionCharacters() throws Exception {
342 
343         XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
344         xText = xTextDocument.getText();
345         xText.setString("we are Chinese,they are American.we are all living in one earth!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!" +
346                 "Hello,world!Hello,world!");
347         //create cursor to select paragraph and formating paragraph
348         XTextCursor xTextCursor = xText.createTextCursor();
349         //create paragraph property set
350         XPropertySet xTextProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
351         //create document service factory
352         XMultiServiceFactory  xWriterFactory= (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
353         //set numbering character
354         XIndexAccess xNumRule = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,xWriterFactory.createInstance("com.sun.star.text.NumberingRules"));
355         PropertyValue[] propsRule = {new PropertyValue(),new PropertyValue()};
356         propsRule[0].Name = "NumberingType";
357         propsRule[0].Value = NumberingType.ARABIC;
358         propsRule[1].Name = "CharStyleName";
359         propsRule[1].Value = "Caption Characters";
360         XIndexReplace xReplaceRule = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule);
361         xReplaceRule.replaceByIndex(0, propsRule);
362         //set paragraph numbering and bullet character
363         xTextProps.setPropertyValue("NumberingRules", xNumRule);
364         //save to odt
365         XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
366         PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
367         aStoreProperties_odt[0] = new PropertyValue();
368         aStoreProperties_odt[1] = new PropertyValue();
369         aStoreProperties_odt[0].Name = "Override";
370         aStoreProperties_odt[0].Value = true;
371         aStoreProperties_odt[1].Name = "FilterName";
372         aStoreProperties_odt[1].Value = "writer8";
373         xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
374         //save to doc
375         XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
376         PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
377         aStoreProperties_doc[0] = new PropertyValue();
378         aStoreProperties_doc[1] = new PropertyValue();
379         aStoreProperties_doc[0].Name = "Override";
380         aStoreProperties_doc[0].Value = true;
381         aStoreProperties_doc[1].Name = "FilterName";
382         aStoreProperties_doc[1].Value = "MS Word 97";
383         xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
384         app.closeDocument(xTextDocument);
385 
386         //reopen the document
387         XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
388         XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
389         XIndexAccess xNumRule_assert_odt = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_odt.getPropertyValue("NumberingRules"));
390         XIndexReplace xReplaceRule_assert_odt = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule_assert_odt);
391         PropertyValue[] propsRule_assert_odt=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xReplaceRule_assert_odt.getByIndex(0));
392         //verify paragraph numbering and bullet alignment
393         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_odt[4].Name);
394         assertEquals("assert numbering and bullet","Caption characters",propsRule_assert_odt[4].Value);
395         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_odt[11].Name);
396         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_odt[11].Value);
397 
398         //reopen the document
399         XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
400         XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
401         XIndexAccess xNumRule_assert_doc = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_doc.getPropertyValue("NumberingRules"));
402         PropertyValue[] propsRule_assert_doc=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xNumRule_assert_doc.getByIndex(0));
403         //verify paragraph numbering and bullet alignment
404         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_doc[4].Name);
405         assertEquals("assert numbering and bullet","WW8Num1z0",propsRule_assert_doc[4].Value);
406         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_doc[11].Name);
407         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_doc[11].Value);
408     }
409     @Test
testNumberingBulletCharacterStyle_DropCaps()410     public void testNumberingBulletCharacterStyle_DropCaps() throws Exception {
411 
412         XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
413         xText = xTextDocument.getText();
414         xText.setString("we are Chinese,they are American.we are all living in one earth!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!" +
415                 "Hello,world!Hello,world!");
416         //create cursor to select paragraph and formating paragraph
417         XTextCursor xTextCursor = xText.createTextCursor();
418         //create paragraph property set
419         XPropertySet xTextProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
420         //create document service factory
421         XMultiServiceFactory  xWriterFactory= (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
422         //set numbering character
423         XIndexAccess xNumRule = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,xWriterFactory.createInstance("com.sun.star.text.NumberingRules"));
424         PropertyValue[] propsRule = {new PropertyValue(),new PropertyValue()};
425         propsRule[0].Name = "NumberingType";
426         propsRule[0].Value = NumberingType.ARABIC;
427         propsRule[1].Name = "CharStyleName";
428         propsRule[1].Value = "Drop Caps";
429         XIndexReplace xReplaceRule = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule);
430         xReplaceRule.replaceByIndex(0, propsRule);
431         //set paragraph numbering and bullet character
432         xTextProps.setPropertyValue("NumberingRules", xNumRule);
433         //save to odt
434         XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
435         PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
436         aStoreProperties_odt[0] = new PropertyValue();
437         aStoreProperties_odt[1] = new PropertyValue();
438         aStoreProperties_odt[0].Name = "Override";
439         aStoreProperties_odt[0].Value = true;
440         aStoreProperties_odt[1].Name = "FilterName";
441         aStoreProperties_odt[1].Value = "writer8";
442         xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
443         //save to doc
444         XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
445         PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
446         aStoreProperties_doc[0] = new PropertyValue();
447         aStoreProperties_doc[1] = new PropertyValue();
448         aStoreProperties_doc[0].Name = "Override";
449         aStoreProperties_doc[0].Value = true;
450         aStoreProperties_doc[1].Name = "FilterName";
451         aStoreProperties_doc[1].Value = "MS Word 97";
452         xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
453         app.closeDocument(xTextDocument);
454 
455         //reopen the document
456         XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
457         XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
458         XIndexAccess xNumRule_assert_odt = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_odt.getPropertyValue("NumberingRules"));
459         XIndexReplace xReplaceRule_assert_odt = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule_assert_odt);
460         PropertyValue[] propsRule_assert_odt=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xReplaceRule_assert_odt.getByIndex(0));
461         //verify paragraph numbering and bullet alignment
462         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_odt[4].Name);
463         assertEquals("assert numbering and bullet","Drop Caps",propsRule_assert_odt[4].Value);
464         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_odt[11].Name);
465         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_odt[11].Value);
466 
467         //reopen the document
468         XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
469         XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
470         XIndexAccess xNumRule_assert_doc = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_doc.getPropertyValue("NumberingRules"));
471         PropertyValue[] propsRule_assert_doc=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xNumRule_assert_doc.getByIndex(0));
472         //verify paragraph numbering and bullet alignment
473         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_doc[4].Name);
474         assertEquals("assert numbering and bullet","WW8Num1z0",propsRule_assert_doc[4].Value);
475         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_doc[11].Name);
476         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_doc[11].Value);
477     }
478     @Test
testNumberingBulletCharacterStyle_NumberingSymbols()479     public void testNumberingBulletCharacterStyle_NumberingSymbols() throws Exception {
480 
481         XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
482         xText = xTextDocument.getText();
483         xText.setString("we are Chinese,they are American.we are all living in one earth!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!" +
484                 "Hello,world!Hello,world!");
485         //create cursor to select paragraph and formating paragraph
486         XTextCursor xTextCursor = xText.createTextCursor();
487         //create paragraph property set
488         XPropertySet xTextProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
489         //create document service factory
490         XMultiServiceFactory  xWriterFactory= (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
491         //set numbering character
492         XIndexAccess xNumRule = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,xWriterFactory.createInstance("com.sun.star.text.NumberingRules"));
493         PropertyValue[] propsRule = {new PropertyValue(),new PropertyValue()};
494         propsRule[0].Name = "NumberingType";
495         propsRule[0].Value = NumberingType.ARABIC;
496         propsRule[1].Name = "CharStyleName";
497         propsRule[1].Value = "Numbering Symbols";
498         XIndexReplace xReplaceRule = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule);
499         xReplaceRule.replaceByIndex(0, propsRule);
500         //set paragraph numbering and bullet character
501         xTextProps.setPropertyValue("NumberingRules", xNumRule);
502         //save to odt
503         XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
504         PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
505         aStoreProperties_odt[0] = new PropertyValue();
506         aStoreProperties_odt[1] = new PropertyValue();
507         aStoreProperties_odt[0].Name = "Override";
508         aStoreProperties_odt[0].Value = true;
509         aStoreProperties_odt[1].Name = "FilterName";
510         aStoreProperties_odt[1].Value = "writer8";
511         xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
512         //save to doc
513         XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
514         PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
515         aStoreProperties_doc[0] = new PropertyValue();
516         aStoreProperties_doc[1] = new PropertyValue();
517         aStoreProperties_doc[0].Name = "Override";
518         aStoreProperties_doc[0].Value = true;
519         aStoreProperties_doc[1].Name = "FilterName";
520         aStoreProperties_doc[1].Value = "MS Word 97";
521         xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
522         app.closeDocument(xTextDocument);
523 
524         //reopen the document
525         XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
526         XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
527         XIndexAccess xNumRule_assert_odt = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_odt.getPropertyValue("NumberingRules"));
528         XIndexReplace xReplaceRule_assert_odt = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule_assert_odt);
529         PropertyValue[] propsRule_assert_odt=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xReplaceRule_assert_odt.getByIndex(0));
530         //verify paragraph numbering and bullet alignment
531         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_odt[4].Name);
532         assertEquals("assert numbering and bullet","Numbering Symbols",propsRule_assert_odt[4].Value);
533         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_odt[11].Name);
534         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_odt[11].Value);
535 
536         //reopen the document
537         XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
538         XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
539         XIndexAccess xNumRule_assert_doc = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_doc.getPropertyValue("NumberingRules"));
540         PropertyValue[] propsRule_assert_doc=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xNumRule_assert_doc.getByIndex(0));
541         //verify paragraph numbering and bullet alignment
542         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_doc[4].Name);
543         assertEquals("assert numbering and bullet","WW8Num1z0",propsRule_assert_doc[4].Value);
544         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_doc[11].Name);
545         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_doc[11].Value);
546     }
547     @Test
testNumberingBulletCharacterStyle_Bullets()548     public void testNumberingBulletCharacterStyle_Bullets() throws Exception {
549 
550         XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
551         xText = xTextDocument.getText();
552         xText.setString("we are Chinese,they are American.we are all living in one earth!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!" +
553                 "Hello,world!Hello,world!");
554         //create cursor to select paragraph and formating paragraph
555         XTextCursor xTextCursor = xText.createTextCursor();
556         //create paragraph property set
557         XPropertySet xTextProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
558         //create document service factory
559         XMultiServiceFactory  xWriterFactory= (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
560         //set numbering character
561         XIndexAccess xNumRule = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,xWriterFactory.createInstance("com.sun.star.text.NumberingRules"));
562         PropertyValue[] propsRule = {new PropertyValue(),new PropertyValue()};
563         propsRule[0].Name = "NumberingType";
564         propsRule[0].Value = NumberingType.ARABIC;
565         propsRule[1].Name = "CharStyleName";
566         propsRule[1].Value = "Bullets";
567         XIndexReplace xReplaceRule = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule);
568         xReplaceRule.replaceByIndex(0, propsRule);
569         //set paragraph numbering and bullet character
570         xTextProps.setPropertyValue("NumberingRules", xNumRule);
571         //save to odt
572         XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
573         PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
574         aStoreProperties_odt[0] = new PropertyValue();
575         aStoreProperties_odt[1] = new PropertyValue();
576         aStoreProperties_odt[0].Name = "Override";
577         aStoreProperties_odt[0].Value = true;
578         aStoreProperties_odt[1].Name = "FilterName";
579         aStoreProperties_odt[1].Value = "writer8";
580         xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
581         //save to doc
582         XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
583         PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
584         aStoreProperties_doc[0] = new PropertyValue();
585         aStoreProperties_doc[1] = new PropertyValue();
586         aStoreProperties_doc[0].Name = "Override";
587         aStoreProperties_doc[0].Value = true;
588         aStoreProperties_doc[1].Name = "FilterName";
589         aStoreProperties_doc[1].Value = "MS Word 97";
590         xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
591         app.closeDocument(xTextDocument);
592 
593         //reopen the document
594         XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
595         XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
596         XIndexAccess xNumRule_assert_odt = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_odt.getPropertyValue("NumberingRules"));
597         XIndexReplace xReplaceRule_assert_odt = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule_assert_odt);
598         PropertyValue[] propsRule_assert_odt=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xReplaceRule_assert_odt.getByIndex(0));
599         //verify paragraph numbering and bullet alignment
600         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_odt[4].Name);
601         assertEquals("assert numbering and bullet","Bullet Symbols",propsRule_assert_odt[4].Value);
602         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_odt[11].Name);
603         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_odt[11].Value);
604 
605         //reopen the document
606         XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
607         XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
608         XIndexAccess xNumRule_assert_doc = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_doc.getPropertyValue("NumberingRules"));
609         PropertyValue[] propsRule_assert_doc=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xNumRule_assert_doc.getByIndex(0));
610         //verify paragraph numbering and bullet alignment
611         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_doc[4].Name);
612         assertEquals("assert numbering and bullet","WW8Num1z0",propsRule_assert_doc[4].Value);
613         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_doc[11].Name);
614         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_doc[11].Value);
615     }
616     @Test
testNumberingBulletCharacterStyle_InternetLink()617     public void testNumberingBulletCharacterStyle_InternetLink() throws Exception {
618 
619         XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
620         xText = xTextDocument.getText();
621         xText.setString("we are Chinese,they are American.we are all living in one earth!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!" +
622                 "Hello,world!Hello,world!");
623         //create cursor to select paragraph and formating paragraph
624         XTextCursor xTextCursor = xText.createTextCursor();
625         //create paragraph property set
626         XPropertySet xTextProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
627         //create document service factory
628         XMultiServiceFactory  xWriterFactory= (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
629         //set numbering character
630         XIndexAccess xNumRule = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,xWriterFactory.createInstance("com.sun.star.text.NumberingRules"));
631         PropertyValue[] propsRule = {new PropertyValue(),new PropertyValue()};
632         propsRule[0].Name = "NumberingType";
633         propsRule[0].Value = NumberingType.ARABIC;
634         propsRule[1].Name = "CharStyleName";
635         propsRule[1].Value = "Internet Link";
636         XIndexReplace xReplaceRule = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule);
637         xReplaceRule.replaceByIndex(0, propsRule);
638         //set paragraph numbering and bullet character
639         xTextProps.setPropertyValue("NumberingRules", xNumRule);
640         //save to odt
641         XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
642         PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
643         aStoreProperties_odt[0] = new PropertyValue();
644         aStoreProperties_odt[1] = new PropertyValue();
645         aStoreProperties_odt[0].Name = "Override";
646         aStoreProperties_odt[0].Value = true;
647         aStoreProperties_odt[1].Name = "FilterName";
648         aStoreProperties_odt[1].Value = "writer8";
649         xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
650         //save to doc
651         XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
652         PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
653         aStoreProperties_doc[0] = new PropertyValue();
654         aStoreProperties_doc[1] = new PropertyValue();
655         aStoreProperties_doc[0].Name = "Override";
656         aStoreProperties_doc[0].Value = true;
657         aStoreProperties_doc[1].Name = "FilterName";
658         aStoreProperties_doc[1].Value = "MS Word 97";
659         xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
660         app.closeDocument(xTextDocument);
661 
662         //reopen the document
663         XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
664         XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
665         XIndexAccess xNumRule_assert_odt = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_odt.getPropertyValue("NumberingRules"));
666         XIndexReplace xReplaceRule_assert_odt = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule_assert_odt);
667         PropertyValue[] propsRule_assert_odt=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xReplaceRule_assert_odt.getByIndex(0));
668         //verify paragraph numbering and bullet alignment
669         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_odt[4].Name);
670         assertEquals("assert numbering and bullet","Internet link",propsRule_assert_odt[4].Value);
671         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_odt[11].Name);
672         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_odt[11].Value);
673 
674         //reopen the document
675         XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
676         XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
677         XIndexAccess xNumRule_assert_doc = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_doc.getPropertyValue("NumberingRules"));
678         PropertyValue[] propsRule_assert_doc=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xNumRule_assert_doc.getByIndex(0));
679         //verify paragraph numbering and bullet alignment
680         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_doc[4].Name);
681         assertEquals("assert numbering and bullet","WW8Num1z0",propsRule_assert_doc[4].Value);
682         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_doc[11].Name);
683         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_doc[11].Value);
684     }
685     @Test
testNumberingBulletCharacterStyle_VisitedInternetLink()686     public void testNumberingBulletCharacterStyle_VisitedInternetLink() throws Exception {
687 
688         XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
689         xText = xTextDocument.getText();
690         xText.setString("we are Chinese,they are American.we are all living in one earth!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!" +
691                 "Hello,world!Hello,world!");
692         //create cursor to select paragraph and formating paragraph
693         XTextCursor xTextCursor = xText.createTextCursor();
694         //create paragraph property set
695         XPropertySet xTextProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
696         //create document service factory
697         XMultiServiceFactory  xWriterFactory= (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
698         //set numbering character
699         XIndexAccess xNumRule = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,xWriterFactory.createInstance("com.sun.star.text.NumberingRules"));
700         PropertyValue[] propsRule = {new PropertyValue(),new PropertyValue()};
701         propsRule[0].Name = "NumberingType";
702         propsRule[0].Value = NumberingType.ARABIC;
703         propsRule[1].Name = "CharStyleName";
704         propsRule[1].Value = "Visited Internet Link";
705         XIndexReplace xReplaceRule = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule);
706         xReplaceRule.replaceByIndex(0, propsRule);
707         //set paragraph numbering and bullet character
708         xTextProps.setPropertyValue("NumberingRules", xNumRule);
709         //save to odt
710         XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
711         PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
712         aStoreProperties_odt[0] = new PropertyValue();
713         aStoreProperties_odt[1] = new PropertyValue();
714         aStoreProperties_odt[0].Name = "Override";
715         aStoreProperties_odt[0].Value = true;
716         aStoreProperties_odt[1].Name = "FilterName";
717         aStoreProperties_odt[1].Value = "writer8";
718         xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
719         //save to doc
720         XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
721         PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
722         aStoreProperties_doc[0] = new PropertyValue();
723         aStoreProperties_doc[1] = new PropertyValue();
724         aStoreProperties_doc[0].Name = "Override";
725         aStoreProperties_doc[0].Value = true;
726         aStoreProperties_doc[1].Name = "FilterName";
727         aStoreProperties_doc[1].Value = "MS Word 97";
728         xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
729         app.closeDocument(xTextDocument);
730 
731         //reopen the document
732         XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
733         XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
734         XIndexAccess xNumRule_assert_odt = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_odt.getPropertyValue("NumberingRules"));
735         XIndexReplace xReplaceRule_assert_odt = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule_assert_odt);
736         PropertyValue[] propsRule_assert_odt=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xReplaceRule_assert_odt.getByIndex(0));
737         //verify paragraph numbering and bullet alignment
738         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_odt[4].Name);
739         assertEquals("assert numbering and bullet","Visited Internet Link",propsRule_assert_odt[4].Value);
740         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_odt[11].Name);
741         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_odt[11].Value);
742 
743         //reopen the document
744         XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
745         XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
746         XIndexAccess xNumRule_assert_doc = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_doc.getPropertyValue("NumberingRules"));
747         PropertyValue[] propsRule_assert_doc=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xNumRule_assert_doc.getByIndex(0));
748         //verify paragraph numbering and bullet alignment
749         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_doc[4].Name);
750         assertEquals("assert numbering and bullet","WW8Num1z0",propsRule_assert_doc[4].Value);
751         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_doc[11].Name);
752         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_doc[11].Value);
753     }
754     @Test
testNumberingBulletCharacterStyle_Placeholder()755     public void testNumberingBulletCharacterStyle_Placeholder() throws Exception {
756 
757         XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
758         xText = xTextDocument.getText();
759         xText.setString("we are Chinese,they are American.we are all living in one earth!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!" +
760                 "Hello,world!Hello,world!");
761         //create cursor to select paragraph and formating paragraph
762         XTextCursor xTextCursor = xText.createTextCursor();
763         //create paragraph property set
764         XPropertySet xTextProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
765         //create document service factory
766         XMultiServiceFactory  xWriterFactory= (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
767         //set numbering character
768         XIndexAccess xNumRule = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,xWriterFactory.createInstance("com.sun.star.text.NumberingRules"));
769         PropertyValue[] propsRule = {new PropertyValue(),new PropertyValue()};
770         propsRule[0].Name = "NumberingType";
771         propsRule[0].Value = NumberingType.ARABIC;
772         propsRule[1].Name = "CharStyleName";
773         propsRule[1].Value = "Placeholder";
774         XIndexReplace xReplaceRule = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule);
775         xReplaceRule.replaceByIndex(0, propsRule);
776         //set paragraph numbering and bullet character
777         xTextProps.setPropertyValue("NumberingRules", xNumRule);
778         //save to odt
779         XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
780         PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
781         aStoreProperties_odt[0] = new PropertyValue();
782         aStoreProperties_odt[1] = new PropertyValue();
783         aStoreProperties_odt[0].Name = "Override";
784         aStoreProperties_odt[0].Value = true;
785         aStoreProperties_odt[1].Name = "FilterName";
786         aStoreProperties_odt[1].Value = "writer8";
787         xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
788         //save to doc
789         XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
790         PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
791         aStoreProperties_doc[0] = new PropertyValue();
792         aStoreProperties_doc[1] = new PropertyValue();
793         aStoreProperties_doc[0].Name = "Override";
794         aStoreProperties_doc[0].Value = true;
795         aStoreProperties_doc[1].Name = "FilterName";
796         aStoreProperties_doc[1].Value = "MS Word 97";
797         xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
798         app.closeDocument(xTextDocument);
799 
800         //reopen the document
801         XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
802         XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
803         XIndexAccess xNumRule_assert_odt = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_odt.getPropertyValue("NumberingRules"));
804         XIndexReplace xReplaceRule_assert_odt = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule_assert_odt);
805         PropertyValue[] propsRule_assert_odt=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xReplaceRule_assert_odt.getByIndex(0));
806         //verify paragraph numbering and bullet alignment
807         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_odt[4].Name);
808         assertEquals("assert numbering and bullet","Placeholder",propsRule_assert_odt[4].Value);
809         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_odt[11].Name);
810         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_odt[11].Value);
811 
812         //reopen the document
813         XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
814         XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
815         XIndexAccess xNumRule_assert_doc = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_doc.getPropertyValue("NumberingRules"));
816         PropertyValue[] propsRule_assert_doc=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xNumRule_assert_doc.getByIndex(0));
817         //verify paragraph numbering and bullet alignment
818         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_doc[4].Name);
819         assertEquals("assert numbering and bullet","WW8Num1z0",propsRule_assert_doc[4].Value);
820         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_doc[11].Name);
821         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_doc[11].Value);
822     }
823     @Test
testNumberingBulletCharacterStyle_Indexlink()824     public void testNumberingBulletCharacterStyle_Indexlink() throws Exception {
825 
826         XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
827         xText = xTextDocument.getText();
828         xText.setString("we are Chinese,they are American.we are all living in one earth!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!" +
829                 "Hello,world!Hello,world!");
830         //create cursor to select paragraph and formating paragraph
831         XTextCursor xTextCursor = xText.createTextCursor();
832         //create paragraph property set
833         XPropertySet xTextProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
834         //create document service factory
835         XMultiServiceFactory  xWriterFactory= (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
836         //set numbering character
837         XIndexAccess xNumRule = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,xWriterFactory.createInstance("com.sun.star.text.NumberingRules"));
838         PropertyValue[] propsRule = {new PropertyValue(),new PropertyValue()};
839         propsRule[0].Name = "NumberingType";
840         propsRule[0].Value = NumberingType.ARABIC;
841         propsRule[1].Name = "CharStyleName";
842         propsRule[1].Value = "Index Link";
843         XIndexReplace xReplaceRule = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule);
844         xReplaceRule.replaceByIndex(0, propsRule);
845         //set paragraph numbering and bullet character
846         xTextProps.setPropertyValue("NumberingRules", xNumRule);
847         //save to odt
848         XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
849         PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
850         aStoreProperties_odt[0] = new PropertyValue();
851         aStoreProperties_odt[1] = new PropertyValue();
852         aStoreProperties_odt[0].Name = "Override";
853         aStoreProperties_odt[0].Value = true;
854         aStoreProperties_odt[1].Name = "FilterName";
855         aStoreProperties_odt[1].Value = "writer8";
856         xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
857         //save to doc
858         XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
859         PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
860         aStoreProperties_doc[0] = new PropertyValue();
861         aStoreProperties_doc[1] = new PropertyValue();
862         aStoreProperties_doc[0].Name = "Override";
863         aStoreProperties_doc[0].Value = true;
864         aStoreProperties_doc[1].Name = "FilterName";
865         aStoreProperties_doc[1].Value = "MS Word 97";
866         xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
867         app.closeDocument(xTextDocument);
868 
869         //reopen the document
870         XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
871         XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
872         XIndexAccess xNumRule_assert_odt = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_odt.getPropertyValue("NumberingRules"));
873         XIndexReplace xReplaceRule_assert_odt = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule_assert_odt);
874         PropertyValue[] propsRule_assert_odt=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xReplaceRule_assert_odt.getByIndex(0));
875         //verify paragraph numbering and bullet alignment
876         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_odt[4].Name);
877         assertEquals("assert numbering and bullet","Index Link",propsRule_assert_odt[4].Value);
878         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_odt[11].Name);
879         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_odt[11].Value);
880 
881         //reopen the document
882         XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
883         XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
884         XIndexAccess xNumRule_assert_doc = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_doc.getPropertyValue("NumberingRules"));
885         PropertyValue[] propsRule_assert_doc=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xNumRule_assert_doc.getByIndex(0));
886         //verify paragraph numbering and bullet alignment
887         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_doc[4].Name);
888         assertEquals("assert numbering and bullet","WW8Num1z0",propsRule_assert_doc[4].Value);
889         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_doc[11].Name);
890         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_doc[11].Value);
891     }
892     @Test
testNumberingBulletCharacterStyle_EndnoteCharacters()893     public void testNumberingBulletCharacterStyle_EndnoteCharacters() throws Exception {
894 
895         XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
896         xText = xTextDocument.getText();
897         xText.setString("we are Chinese,they are American.we are all living in one earth!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!" +
898                 "Hello,world!Hello,world!");
899         //create cursor to select paragraph and formating paragraph
900         XTextCursor xTextCursor = xText.createTextCursor();
901         //create paragraph property set
902         XPropertySet xTextProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
903         //create document service factory
904         XMultiServiceFactory  xWriterFactory= (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
905         //set numbering character
906         XIndexAccess xNumRule = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,xWriterFactory.createInstance("com.sun.star.text.NumberingRules"));
907         PropertyValue[] propsRule = {new PropertyValue(),new PropertyValue()};
908         propsRule[0].Name = "NumberingType";
909         propsRule[0].Value = NumberingType.ARABIC;
910         propsRule[1].Name = "CharStyleName";
911         propsRule[1].Value = "Endnote Characters";
912         XIndexReplace xReplaceRule = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule);
913         xReplaceRule.replaceByIndex(0, propsRule);
914         //set paragraph numbering and bullet character
915         xTextProps.setPropertyValue("NumberingRules", xNumRule);
916         //save to odt
917         XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
918         PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
919         aStoreProperties_odt[0] = new PropertyValue();
920         aStoreProperties_odt[1] = new PropertyValue();
921         aStoreProperties_odt[0].Name = "Override";
922         aStoreProperties_odt[0].Value = true;
923         aStoreProperties_odt[1].Name = "FilterName";
924         aStoreProperties_odt[1].Value = "writer8";
925         xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
926         //save to doc
927         XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
928         PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
929         aStoreProperties_doc[0] = new PropertyValue();
930         aStoreProperties_doc[1] = new PropertyValue();
931         aStoreProperties_doc[0].Name = "Override";
932         aStoreProperties_doc[0].Value = true;
933         aStoreProperties_doc[1].Name = "FilterName";
934         aStoreProperties_doc[1].Value = "MS Word 97";
935         xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
936         app.closeDocument(xTextDocument);
937 
938         //reopen the document
939         XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
940         XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
941         XIndexAccess xNumRule_assert_odt = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_odt.getPropertyValue("NumberingRules"));
942         XIndexReplace xReplaceRule_assert_odt = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule_assert_odt);
943         PropertyValue[] propsRule_assert_odt=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xReplaceRule_assert_odt.getByIndex(0));
944         //verify paragraph numbering and bullet alignment
945         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_odt[4].Name);
946         assertEquals("assert numbering and bullet","Endnote Symbol",propsRule_assert_odt[4].Value);
947         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_odt[11].Name);
948         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_odt[11].Value);
949 
950         //reopen the document
951         XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
952         XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
953         XIndexAccess xNumRule_assert_doc = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_doc.getPropertyValue("NumberingRules"));
954         PropertyValue[] propsRule_assert_doc=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xNumRule_assert_doc.getByIndex(0));
955         //verify paragraph numbering and bullet alignment
956         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_doc[4].Name);
957         assertEquals("assert numbering and bullet","WW8Num1z0",propsRule_assert_doc[4].Value);
958         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_doc[11].Name);
959         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_doc[11].Value);
960     }
961     @Test
testNumberingBulletCharacterStyle_LineNumbering()962     public void testNumberingBulletCharacterStyle_LineNumbering() throws Exception {
963 
964         XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
965         xText = xTextDocument.getText();
966         xText.setString("we are Chinese,they are American.we are all living in one earth!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!" +
967                 "Hello,world!Hello,world!");
968         //create cursor to select paragraph and formating paragraph
969         XTextCursor xTextCursor = xText.createTextCursor();
970         //create paragraph property set
971         XPropertySet xTextProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
972         //create document service factory
973         XMultiServiceFactory  xWriterFactory= (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
974         //set numbering character
975         XIndexAccess xNumRule = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,xWriterFactory.createInstance("com.sun.star.text.NumberingRules"));
976         PropertyValue[] propsRule = {new PropertyValue(),new PropertyValue()};
977         propsRule[0].Name = "NumberingType";
978         propsRule[0].Value = NumberingType.ARABIC;
979         propsRule[1].Name = "CharStyleName";
980         propsRule[1].Value = "Line numbering";
981         XIndexReplace xReplaceRule = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule);
982         xReplaceRule.replaceByIndex(0, propsRule);
983         //set paragraph numbering and bullet character
984         xTextProps.setPropertyValue("NumberingRules", xNumRule);
985         //save to odt
986         XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
987         PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
988         aStoreProperties_odt[0] = new PropertyValue();
989         aStoreProperties_odt[1] = new PropertyValue();
990         aStoreProperties_odt[0].Name = "Override";
991         aStoreProperties_odt[0].Value = true;
992         aStoreProperties_odt[1].Name = "FilterName";
993         aStoreProperties_odt[1].Value = "writer8";
994         xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
995         //save to doc
996         XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
997         PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
998         aStoreProperties_doc[0] = new PropertyValue();
999         aStoreProperties_doc[1] = new PropertyValue();
1000         aStoreProperties_doc[0].Name = "Override";
1001         aStoreProperties_doc[0].Value = true;
1002         aStoreProperties_doc[1].Name = "FilterName";
1003         aStoreProperties_doc[1].Value = "MS Word 97";
1004         xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
1005         app.closeDocument(xTextDocument);
1006 
1007         //reopen the document
1008         XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
1009         XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
1010         XIndexAccess xNumRule_assert_odt = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_odt.getPropertyValue("NumberingRules"));
1011         XIndexReplace xReplaceRule_assert_odt = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule_assert_odt);
1012         PropertyValue[] propsRule_assert_odt=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xReplaceRule_assert_odt.getByIndex(0));
1013         //verify paragraph numbering and bullet alignment
1014         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_odt[4].Name);
1015         assertEquals("assert numbering and bullet","Line numbering",propsRule_assert_odt[4].Value);
1016         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_odt[11].Name);
1017         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_odt[11].Value);
1018 
1019         //reopen the document
1020         XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
1021         XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
1022         XIndexAccess xNumRule_assert_doc = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_doc.getPropertyValue("NumberingRules"));
1023         PropertyValue[] propsRule_assert_doc=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xNumRule_assert_doc.getByIndex(0));
1024         //verify paragraph numbering and bullet alignment
1025         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_doc[4].Name);
1026         assertEquals("assert numbering and bullet","WW8Num1z0",propsRule_assert_doc[4].Value);
1027         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_doc[11].Name);
1028         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_doc[11].Value);
1029     }
1030     @Test
testNumberingBulletCharacterStyle_MainIndexEntery()1031     public void testNumberingBulletCharacterStyle_MainIndexEntery() throws Exception {
1032 
1033         XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
1034         xText = xTextDocument.getText();
1035         xText.setString("we are Chinese,they are American.we are all living in one earth!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!" +
1036                 "Hello,world!Hello,world!");
1037         //create cursor to select paragraph and formating paragraph
1038         XTextCursor xTextCursor = xText.createTextCursor();
1039         //create paragraph property set
1040         XPropertySet xTextProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
1041         //create document service factory
1042         XMultiServiceFactory  xWriterFactory= (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
1043         //set numbering character
1044         XIndexAccess xNumRule = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,xWriterFactory.createInstance("com.sun.star.text.NumberingRules"));
1045         PropertyValue[] propsRule = {new PropertyValue(),new PropertyValue()};
1046         propsRule[0].Name = "NumberingType";
1047         propsRule[0].Value = NumberingType.ARABIC;
1048         propsRule[1].Name = "CharStyleName";
1049         propsRule[1].Value = "Main index entery";
1050         XIndexReplace xReplaceRule = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule);
1051         xReplaceRule.replaceByIndex(0, propsRule);
1052         //set paragraph numbering and bullet character
1053         xTextProps.setPropertyValue("NumberingRules", xNumRule);
1054         //save to odt
1055         XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
1056         PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
1057         aStoreProperties_odt[0] = new PropertyValue();
1058         aStoreProperties_odt[1] = new PropertyValue();
1059         aStoreProperties_odt[0].Name = "Override";
1060         aStoreProperties_odt[0].Value = true;
1061         aStoreProperties_odt[1].Name = "FilterName";
1062         aStoreProperties_odt[1].Value = "writer8";
1063         xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
1064         //save to doc
1065         XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
1066         PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
1067         aStoreProperties_doc[0] = new PropertyValue();
1068         aStoreProperties_doc[1] = new PropertyValue();
1069         aStoreProperties_doc[0].Name = "Override";
1070         aStoreProperties_doc[0].Value = true;
1071         aStoreProperties_doc[1].Name = "FilterName";
1072         aStoreProperties_doc[1].Value = "MS Word 97";
1073         xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
1074         app.closeDocument(xTextDocument);
1075 
1076         //reopen the document
1077         XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
1078         XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
1079         XIndexAccess xNumRule_assert_odt = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_odt.getPropertyValue("NumberingRules"));
1080         XIndexReplace xReplaceRule_assert_odt = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule_assert_odt);
1081         PropertyValue[] propsRule_assert_odt=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xReplaceRule_assert_odt.getByIndex(0));
1082         //verify paragraph numbering and bullet alignment
1083         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_odt[4].Name);
1084         assertEquals("assert numbering and bullet","Main index entery",propsRule_assert_odt[4].Value);
1085         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_odt[11].Name);
1086         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_odt[11].Value);
1087 
1088         //reopen the document
1089         XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
1090         XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
1091         XIndexAccess xNumRule_assert_doc = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_doc.getPropertyValue("NumberingRules"));
1092         PropertyValue[] propsRule_assert_doc=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xNumRule_assert_doc.getByIndex(0));
1093         //verify paragraph numbering and bullet alignment
1094         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_doc[4].Name);
1095         assertEquals("assert numbering and bullet","WW8Num1z0",propsRule_assert_doc[4].Value);
1096         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_doc[11].Name);
1097         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_doc[11].Value);
1098     }
1099     @Test
testNumberingBulletCharacterStyle_FootnoteAnchor()1100     public void testNumberingBulletCharacterStyle_FootnoteAnchor() throws Exception {
1101 
1102         XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
1103         xText = xTextDocument.getText();
1104         xText.setString("we are Chinese,they are American.we are all living in one earth!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!" +
1105                 "Hello,world!Hello,world!");
1106         //create cursor to select paragraph and formating paragraph
1107         XTextCursor xTextCursor = xText.createTextCursor();
1108         //create paragraph property set
1109         XPropertySet xTextProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
1110         //create document service factory
1111         XMultiServiceFactory  xWriterFactory= (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
1112         //set numbering character
1113         XIndexAccess xNumRule = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,xWriterFactory.createInstance("com.sun.star.text.NumberingRules"));
1114         PropertyValue[] propsRule = {new PropertyValue(),new PropertyValue()};
1115         propsRule[0].Name = "NumberingType";
1116         propsRule[0].Value = NumberingType.ARABIC;
1117         propsRule[1].Name = "CharStyleName";
1118         propsRule[1].Value = "Footnote anchor";
1119         XIndexReplace xReplaceRule = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule);
1120         xReplaceRule.replaceByIndex(0, propsRule);
1121         //set paragraph numbering and bullet character
1122         xTextProps.setPropertyValue("NumberingRules", xNumRule);
1123         //save to odt
1124         XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
1125         PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
1126         aStoreProperties_odt[0] = new PropertyValue();
1127         aStoreProperties_odt[1] = new PropertyValue();
1128         aStoreProperties_odt[0].Name = "Override";
1129         aStoreProperties_odt[0].Value = true;
1130         aStoreProperties_odt[1].Name = "FilterName";
1131         aStoreProperties_odt[1].Value = "writer8";
1132         xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
1133         //save to doc
1134         XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
1135         PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
1136         aStoreProperties_doc[0] = new PropertyValue();
1137         aStoreProperties_doc[1] = new PropertyValue();
1138         aStoreProperties_doc[0].Name = "Override";
1139         aStoreProperties_doc[0].Value = true;
1140         aStoreProperties_doc[1].Name = "FilterName";
1141         aStoreProperties_doc[1].Value = "MS Word 97";
1142         xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
1143         app.closeDocument(xTextDocument);
1144 
1145         //reopen the document
1146         XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
1147         XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
1148         XIndexAccess xNumRule_assert_odt = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_odt.getPropertyValue("NumberingRules"));
1149         XIndexReplace xReplaceRule_assert_odt = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule_assert_odt);
1150         PropertyValue[] propsRule_assert_odt=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xReplaceRule_assert_odt.getByIndex(0));
1151         //verify paragraph numbering and bullet alignment
1152         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_odt[4].Name);
1153         assertEquals("assert numbering and bullet","Footnote anchor",propsRule_assert_odt[4].Value);
1154         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_odt[11].Name);
1155         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_odt[11].Value);
1156 
1157         //reopen the document
1158         XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
1159         XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
1160         XIndexAccess xNumRule_assert_doc = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_doc.getPropertyValue("NumberingRules"));
1161         PropertyValue[] propsRule_assert_doc=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xNumRule_assert_doc.getByIndex(0));
1162         //verify paragraph numbering and bullet alignment
1163         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_doc[4].Name);
1164         assertEquals("assert numbering and bullet","WW8Num1z0",propsRule_assert_doc[4].Value);
1165         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_doc[11].Name);
1166         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_doc[11].Value);
1167     }
1168     @Test
testNumberingBulletCharacterStyle_EndnoteAnchor()1169     public void testNumberingBulletCharacterStyle_EndnoteAnchor() throws Exception {
1170 
1171         XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
1172         xText = xTextDocument.getText();
1173         xText.setString("we are Chinese,they are American.we are all living in one earth!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!" +
1174                 "Hello,world!Hello,world!");
1175         //create cursor to select paragraph and formating paragraph
1176         XTextCursor xTextCursor = xText.createTextCursor();
1177         //create paragraph property set
1178         XPropertySet xTextProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
1179         //create document service factory
1180         XMultiServiceFactory  xWriterFactory= (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
1181         //set numbering character
1182         XIndexAccess xNumRule = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,xWriterFactory.createInstance("com.sun.star.text.NumberingRules"));
1183         PropertyValue[] propsRule = {new PropertyValue(),new PropertyValue()};
1184         propsRule[0].Name = "NumberingType";
1185         propsRule[0].Value = NumberingType.ARABIC;
1186         propsRule[1].Name = "CharStyleName";
1187         propsRule[1].Value = "Endnote anchor";
1188         XIndexReplace xReplaceRule = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule);
1189         xReplaceRule.replaceByIndex(0, propsRule);
1190         //set paragraph numbering and bullet character
1191         xTextProps.setPropertyValue("NumberingRules", xNumRule);
1192         //save to odt
1193         XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
1194         PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
1195         aStoreProperties_odt[0] = new PropertyValue();
1196         aStoreProperties_odt[1] = new PropertyValue();
1197         aStoreProperties_odt[0].Name = "Override";
1198         aStoreProperties_odt[0].Value = true;
1199         aStoreProperties_odt[1].Name = "FilterName";
1200         aStoreProperties_odt[1].Value = "writer8";
1201         xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
1202         //save to doc
1203         XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
1204         PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
1205         aStoreProperties_doc[0] = new PropertyValue();
1206         aStoreProperties_doc[1] = new PropertyValue();
1207         aStoreProperties_doc[0].Name = "Override";
1208         aStoreProperties_doc[0].Value = true;
1209         aStoreProperties_doc[1].Name = "FilterName";
1210         aStoreProperties_doc[1].Value = "MS Word 97";
1211         xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
1212         app.closeDocument(xTextDocument);
1213 
1214         //reopen the document
1215         XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
1216         XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
1217         XIndexAccess xNumRule_assert_odt = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_odt.getPropertyValue("NumberingRules"));
1218         XIndexReplace xReplaceRule_assert_odt = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule_assert_odt);
1219         PropertyValue[] propsRule_assert_odt=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xReplaceRule_assert_odt.getByIndex(0));
1220         //verify paragraph numbering and bullet alignment
1221         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_odt[4].Name);
1222         assertEquals("assert numbering and bullet","Endnote anchor",propsRule_assert_odt[4].Value);
1223         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_odt[11].Name);
1224         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_odt[11].Value);
1225 
1226         //reopen the document
1227         XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
1228         XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
1229         XIndexAccess xNumRule_assert_doc = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_doc.getPropertyValue("NumberingRules"));
1230         PropertyValue[] propsRule_assert_doc=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xNumRule_assert_doc.getByIndex(0));
1231         //verify paragraph numbering and bullet alignment
1232         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_doc[4].Name);
1233         assertEquals("assert numbering and bullet","WW8Num1z0",propsRule_assert_doc[4].Value);
1234         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_doc[11].Name);
1235         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_doc[11].Value);
1236     }
1237     @Test
testNumberingBulletCharacterStyle_VerticalNumberingSymbols()1238     public void testNumberingBulletCharacterStyle_VerticalNumberingSymbols() throws Exception {
1239 
1240         XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
1241         xText = xTextDocument.getText();
1242         xText.setString("we are Chinese,they are American.we are all living in one earth!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!" +
1243                 "Hello,world!Hello,world!");
1244         //create cursor to select paragraph and formating paragraph
1245         XTextCursor xTextCursor = xText.createTextCursor();
1246         //create paragraph property set
1247         XPropertySet xTextProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
1248         //create document service factory
1249         XMultiServiceFactory  xWriterFactory= (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
1250         //set numbering character
1251         XIndexAccess xNumRule = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,xWriterFactory.createInstance("com.sun.star.text.NumberingRules"));
1252         PropertyValue[] propsRule = {new PropertyValue(),new PropertyValue()};
1253         propsRule[0].Name = "NumberingType";
1254         propsRule[0].Value = NumberingType.ARABIC;
1255         propsRule[1].Name = "CharStyleName";
1256         propsRule[1].Value = "Vertical Numbering Symbols";
1257         XIndexReplace xReplaceRule = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule);
1258         xReplaceRule.replaceByIndex(0, propsRule);
1259         //set paragraph numbering and bullet character
1260         xTextProps.setPropertyValue("NumberingRules", xNumRule);
1261         //save to odt
1262         XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
1263         PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
1264         aStoreProperties_odt[0] = new PropertyValue();
1265         aStoreProperties_odt[1] = new PropertyValue();
1266         aStoreProperties_odt[0].Name = "Override";
1267         aStoreProperties_odt[0].Value = true;
1268         aStoreProperties_odt[1].Name = "FilterName";
1269         aStoreProperties_odt[1].Value = "writer8";
1270         xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
1271         //save to doc
1272         XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
1273         PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
1274         aStoreProperties_doc[0] = new PropertyValue();
1275         aStoreProperties_doc[1] = new PropertyValue();
1276         aStoreProperties_doc[0].Name = "Override";
1277         aStoreProperties_doc[0].Value = true;
1278         aStoreProperties_doc[1].Name = "FilterName";
1279         aStoreProperties_doc[1].Value = "MS Word 97";
1280         xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
1281         app.closeDocument(xTextDocument);
1282 
1283         //reopen the document
1284         XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
1285         XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
1286         XIndexAccess xNumRule_assert_odt = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_odt.getPropertyValue("NumberingRules"));
1287         XIndexReplace xReplaceRule_assert_odt = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule_assert_odt);
1288         PropertyValue[] propsRule_assert_odt=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xReplaceRule_assert_odt.getByIndex(0));
1289         //verify paragraph numbering and bullet alignment
1290         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_odt[4].Name);
1291         assertEquals("assert numbering and bullet","Vertical Numbering Symbols",propsRule_assert_odt[4].Value);
1292         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_odt[11].Name);
1293         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_odt[11].Value);
1294 
1295         //reopen the document
1296         XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
1297         XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
1298         XIndexAccess xNumRule_assert_doc = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_doc.getPropertyValue("NumberingRules"));
1299         PropertyValue[] propsRule_assert_doc=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xNumRule_assert_doc.getByIndex(0));
1300         //verify paragraph numbering and bullet alignment
1301         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_doc[4].Name);
1302         assertEquals("assert numbering and bullet","WW8Num1z0",propsRule_assert_doc[4].Value);
1303         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_doc[11].Name);
1304         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_doc[11].Value);
1305     }
1306     @Test
testNumberingBulletCharacterStyle_Quotation()1307     public void testNumberingBulletCharacterStyle_Quotation() throws Exception {
1308 
1309         XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
1310         xText = xTextDocument.getText();
1311         xText.setString("we are Chinese,they are American.we are all living in one earth!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!" +
1312                 "Hello,world!Hello,world!");
1313         //create cursor to select paragraph and formating paragraph
1314         XTextCursor xTextCursor = xText.createTextCursor();
1315         //create paragraph property set
1316         XPropertySet xTextProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
1317         //create document service factory
1318         XMultiServiceFactory  xWriterFactory= (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
1319         //set numbering character
1320         XIndexAccess xNumRule = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,xWriterFactory.createInstance("com.sun.star.text.NumberingRules"));
1321         PropertyValue[] propsRule = {new PropertyValue(),new PropertyValue()};
1322         propsRule[0].Name = "NumberingType";
1323         propsRule[0].Value = NumberingType.ARABIC;
1324         propsRule[1].Name = "CharStyleName";
1325         propsRule[1].Value = "Quotation";
1326         XIndexReplace xReplaceRule = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule);
1327         xReplaceRule.replaceByIndex(0, propsRule);
1328         //set paragraph numbering and bullet character
1329         xTextProps.setPropertyValue("NumberingRules", xNumRule);
1330         //save to odt
1331         XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
1332         PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
1333         aStoreProperties_odt[0] = new PropertyValue();
1334         aStoreProperties_odt[1] = new PropertyValue();
1335         aStoreProperties_odt[0].Name = "Override";
1336         aStoreProperties_odt[0].Value = true;
1337         aStoreProperties_odt[1].Name = "FilterName";
1338         aStoreProperties_odt[1].Value = "writer8";
1339         xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
1340         //save to doc
1341         XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
1342         PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
1343         aStoreProperties_doc[0] = new PropertyValue();
1344         aStoreProperties_doc[1] = new PropertyValue();
1345         aStoreProperties_doc[0].Name = "Override";
1346         aStoreProperties_doc[0].Value = true;
1347         aStoreProperties_doc[1].Name = "FilterName";
1348         aStoreProperties_doc[1].Value = "MS Word 97";
1349         xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
1350         app.closeDocument(xTextDocument);
1351 
1352         //reopen the document
1353         XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
1354         XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
1355         XIndexAccess xNumRule_assert_odt = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_odt.getPropertyValue("NumberingRules"));
1356         XIndexReplace xReplaceRule_assert_odt = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule_assert_odt);
1357         PropertyValue[] propsRule_assert_odt=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xReplaceRule_assert_odt.getByIndex(0));
1358         //verify paragraph numbering and bullet alignment
1359         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_odt[4].Name);
1360         assertEquals("assert numbering and bullet","Citation",propsRule_assert_odt[4].Value);
1361         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_odt[11].Name);
1362         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_odt[11].Value);
1363 
1364         //reopen the document
1365         XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
1366         XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
1367         XIndexAccess xNumRule_assert_doc = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_doc.getPropertyValue("NumberingRules"));
1368         PropertyValue[] propsRule_assert_doc=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xNumRule_assert_doc.getByIndex(0));
1369         //verify paragraph numbering and bullet alignment
1370         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_doc[4].Name);
1371         assertEquals("assert numbering and bullet","WW8Num1z0",propsRule_assert_doc[4].Value);
1372         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_doc[11].Name);
1373         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_doc[11].Value);
1374     }
1375     @Test
testNumberingBulletCharacterStyle_StrongEmphasis()1376     public void testNumberingBulletCharacterStyle_StrongEmphasis() throws Exception {
1377 
1378         XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
1379         xText = xTextDocument.getText();
1380         xText.setString("we are Chinese,they are American.we are all living in one earth!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!" +
1381                 "Hello,world!Hello,world!");
1382         //create cursor to select paragraph and formating paragraph
1383         XTextCursor xTextCursor = xText.createTextCursor();
1384         //create paragraph property set
1385         XPropertySet xTextProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
1386         //create document service factory
1387         XMultiServiceFactory  xWriterFactory= (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
1388         //set numbering character
1389         XIndexAccess xNumRule = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,xWriterFactory.createInstance("com.sun.star.text.NumberingRules"));
1390         PropertyValue[] propsRule = {new PropertyValue(),new PropertyValue()};
1391         propsRule[0].Name = "NumberingType";
1392         propsRule[0].Value = NumberingType.ARABIC;
1393         propsRule[1].Name = "CharStyleName";
1394         propsRule[1].Value = "Strong Emphasis";
1395         XIndexReplace xReplaceRule = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule);
1396         xReplaceRule.replaceByIndex(0, propsRule);
1397         //set paragraph numbering and bullet character
1398         xTextProps.setPropertyValue("NumberingRules", xNumRule);
1399         //save to odt
1400         XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
1401         PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
1402         aStoreProperties_odt[0] = new PropertyValue();
1403         aStoreProperties_odt[1] = new PropertyValue();
1404         aStoreProperties_odt[0].Name = "Override";
1405         aStoreProperties_odt[0].Value = true;
1406         aStoreProperties_odt[1].Name = "FilterName";
1407         aStoreProperties_odt[1].Value = "writer8";
1408         xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
1409         //save to doc
1410         XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
1411         PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
1412         aStoreProperties_doc[0] = new PropertyValue();
1413         aStoreProperties_doc[1] = new PropertyValue();
1414         aStoreProperties_doc[0].Name = "Override";
1415         aStoreProperties_doc[0].Value = true;
1416         aStoreProperties_doc[1].Name = "FilterName";
1417         aStoreProperties_doc[1].Value = "MS Word 97";
1418         xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
1419         app.closeDocument(xTextDocument);
1420 
1421         //reopen the document
1422         XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
1423         XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
1424         XIndexAccess xNumRule_assert_odt = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_odt.getPropertyValue("NumberingRules"));
1425         XIndexReplace xReplaceRule_assert_odt = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule_assert_odt);
1426         PropertyValue[] propsRule_assert_odt=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xReplaceRule_assert_odt.getByIndex(0));
1427         //verify paragraph numbering and bullet alignment
1428         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_odt[4].Name);
1429         assertEquals("assert numbering and bullet","Strong Emphasis",propsRule_assert_odt[4].Value);
1430         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_odt[11].Name);
1431         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_odt[11].Value);
1432 
1433         //reopen the document
1434         XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
1435         XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
1436         XIndexAccess xNumRule_assert_doc = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_doc.getPropertyValue("NumberingRules"));
1437         PropertyValue[] propsRule_assert_doc=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xNumRule_assert_doc.getByIndex(0));
1438         //verify paragraph numbering and bullet alignment
1439         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_doc[4].Name);
1440         assertEquals("assert numbering and bullet","WW8Num1z0",propsRule_assert_doc[4].Value);
1441         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_doc[11].Name);
1442         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_doc[11].Value);
1443     }
1444     @Test
testNumberingBulletCharacterStyle_Variable()1445     public void testNumberingBulletCharacterStyle_Variable() throws Exception {
1446 
1447         XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
1448         xText = xTextDocument.getText();
1449         xText.setString("we are Chinese,they are American.we are all living in one earth!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!" +
1450                 "Hello,world!Hello,world!");
1451         //create cursor to select paragraph and formating paragraph
1452         XTextCursor xTextCursor = xText.createTextCursor();
1453         //create paragraph property set
1454         XPropertySet xTextProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
1455         //create document service factory
1456         XMultiServiceFactory  xWriterFactory= (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
1457         //set numbering character
1458         XIndexAccess xNumRule = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,xWriterFactory.createInstance("com.sun.star.text.NumberingRules"));
1459         PropertyValue[] propsRule = {new PropertyValue(),new PropertyValue()};
1460         propsRule[0].Name = "NumberingType";
1461         propsRule[0].Value = NumberingType.ARABIC;
1462         propsRule[1].Name = "CharStyleName";
1463         propsRule[1].Value = "Variable";
1464         XIndexReplace xReplaceRule = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule);
1465         xReplaceRule.replaceByIndex(0, propsRule);
1466         //set paragraph numbering and bullet character
1467         xTextProps.setPropertyValue("NumberingRules", xNumRule);
1468         //save to odt
1469         XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
1470         PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
1471         aStoreProperties_odt[0] = new PropertyValue();
1472         aStoreProperties_odt[1] = new PropertyValue();
1473         aStoreProperties_odt[0].Name = "Override";
1474         aStoreProperties_odt[0].Value = true;
1475         aStoreProperties_odt[1].Name = "FilterName";
1476         aStoreProperties_odt[1].Value = "writer8";
1477         xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
1478         //save to doc
1479         XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
1480         PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
1481         aStoreProperties_doc[0] = new PropertyValue();
1482         aStoreProperties_doc[1] = new PropertyValue();
1483         aStoreProperties_doc[0].Name = "Override";
1484         aStoreProperties_doc[0].Value = true;
1485         aStoreProperties_doc[1].Name = "FilterName";
1486         aStoreProperties_doc[1].Value = "MS Word 97";
1487         xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
1488         app.closeDocument(xTextDocument);
1489 
1490         //reopen the document
1491         XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
1492         XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
1493         XIndexAccess xNumRule_assert_odt = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_odt.getPropertyValue("NumberingRules"));
1494         XIndexReplace xReplaceRule_assert_odt = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule_assert_odt);
1495         PropertyValue[] propsRule_assert_odt=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xReplaceRule_assert_odt.getByIndex(0));
1496         //verify paragraph numbering and bullet alignment
1497         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_odt[4].Name);
1498         assertEquals("assert numbering and bullet","Variable",propsRule_assert_odt[4].Value);
1499         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_odt[11].Name);
1500         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_odt[11].Value);
1501 
1502         //reopen the document
1503         XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
1504         XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
1505         XIndexAccess xNumRule_assert_doc = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_doc.getPropertyValue("NumberingRules"));
1506         PropertyValue[] propsRule_assert_doc=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xNumRule_assert_doc.getByIndex(0));
1507         //verify paragraph numbering and bullet alignment
1508         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_doc[4].Name);
1509         assertEquals("assert numbering and bullet","WW8Num1z0",propsRule_assert_doc[4].Value);
1510         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_doc[11].Name);
1511         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_doc[11].Value);
1512     }
1513     @Test
testNumberingBulletCharacterStyle_Example()1514     public void testNumberingBulletCharacterStyle_Example() throws Exception {
1515 
1516         XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
1517         xText = xTextDocument.getText();
1518         xText.setString("we are Chinese,they are American.we are all living in one earth!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!" +
1519                 "Hello,world!Hello,world!");
1520         //create cursor to select paragraph and formating paragraph
1521         XTextCursor xTextCursor = xText.createTextCursor();
1522         //create paragraph property set
1523         XPropertySet xTextProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
1524         //create document service factory
1525         XMultiServiceFactory  xWriterFactory= (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
1526         //set numbering character
1527         XIndexAccess xNumRule = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,xWriterFactory.createInstance("com.sun.star.text.NumberingRules"));
1528         PropertyValue[] propsRule = {new PropertyValue(),new PropertyValue()};
1529         propsRule[0].Name = "NumberingType";
1530         propsRule[0].Value = NumberingType.ARABIC;
1531         propsRule[1].Name = "CharStyleName";
1532         propsRule[1].Value = "Example";
1533         XIndexReplace xReplaceRule = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule);
1534         xReplaceRule.replaceByIndex(0, propsRule);
1535         //set paragraph numbering and bullet character
1536         xTextProps.setPropertyValue("NumberingRules", xNumRule);
1537         //save to odt
1538         XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
1539         PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
1540         aStoreProperties_odt[0] = new PropertyValue();
1541         aStoreProperties_odt[1] = new PropertyValue();
1542         aStoreProperties_odt[0].Name = "Override";
1543         aStoreProperties_odt[0].Value = true;
1544         aStoreProperties_odt[1].Name = "FilterName";
1545         aStoreProperties_odt[1].Value = "writer8";
1546         xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
1547         //save to doc
1548         XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
1549         PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
1550         aStoreProperties_doc[0] = new PropertyValue();
1551         aStoreProperties_doc[1] = new PropertyValue();
1552         aStoreProperties_doc[0].Name = "Override";
1553         aStoreProperties_doc[0].Value = true;
1554         aStoreProperties_doc[1].Name = "FilterName";
1555         aStoreProperties_doc[1].Value = "MS Word 97";
1556         xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
1557         app.closeDocument(xTextDocument);
1558 
1559         //reopen the document
1560         XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
1561         XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
1562         XIndexAccess xNumRule_assert_odt = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_odt.getPropertyValue("NumberingRules"));
1563         XIndexReplace xReplaceRule_assert_odt = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule_assert_odt);
1564         PropertyValue[] propsRule_assert_odt=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xReplaceRule_assert_odt.getByIndex(0));
1565         //verify paragraph numbering and bullet alignment
1566         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_odt[4].Name);
1567         assertEquals("assert numbering and bullet","Example",propsRule_assert_odt[4].Value);
1568         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_odt[11].Name);
1569         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_odt[11].Value);
1570 
1571         //reopen the document
1572         XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
1573         XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
1574         XIndexAccess xNumRule_assert_doc = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_doc.getPropertyValue("NumberingRules"));
1575         PropertyValue[] propsRule_assert_doc=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xNumRule_assert_doc.getByIndex(0));
1576         //verify paragraph numbering and bullet alignment
1577         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_doc[4].Name);
1578         assertEquals("assert numbering and bullet","WW8Num1z0",propsRule_assert_doc[4].Value);
1579         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_doc[11].Name);
1580         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_doc[11].Value);
1581     }   @Test
testNumberingBulletCharacterStyle_UserEntery()1582     public void testNumberingBulletCharacterStyle_UserEntery() throws Exception {
1583 
1584         XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
1585         xText = xTextDocument.getText();
1586         xText.setString("we are Chinese,they are American.we are all living in one earth!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!" +
1587                 "Hello,world!Hello,world!");
1588         //create cursor to select paragraph and formating paragraph
1589         XTextCursor xTextCursor = xText.createTextCursor();
1590         //create paragraph property set
1591         XPropertySet xTextProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
1592         //create document service factory
1593         XMultiServiceFactory  xWriterFactory= (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
1594         //set numbering character
1595         XIndexAccess xNumRule = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,xWriterFactory.createInstance("com.sun.star.text.NumberingRules"));
1596         PropertyValue[] propsRule = {new PropertyValue(),new PropertyValue()};
1597         propsRule[0].Name = "NumberingType";
1598         propsRule[0].Value = NumberingType.ARABIC;
1599         propsRule[1].Name = "CharStyleName";
1600         propsRule[1].Value = "User Entery";
1601         XIndexReplace xReplaceRule = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule);
1602         xReplaceRule.replaceByIndex(0, propsRule);
1603         //set paragraph numbering and bullet character
1604         xTextProps.setPropertyValue("NumberingRules", xNumRule);
1605         //save to odt
1606         XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
1607         PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
1608         aStoreProperties_odt[0] = new PropertyValue();
1609         aStoreProperties_odt[1] = new PropertyValue();
1610         aStoreProperties_odt[0].Name = "Override";
1611         aStoreProperties_odt[0].Value = true;
1612         aStoreProperties_odt[1].Name = "FilterName";
1613         aStoreProperties_odt[1].Value = "writer8";
1614         xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
1615         //save to doc
1616         XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
1617         PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
1618         aStoreProperties_doc[0] = new PropertyValue();
1619         aStoreProperties_doc[1] = new PropertyValue();
1620         aStoreProperties_doc[0].Name = "Override";
1621         aStoreProperties_doc[0].Value = true;
1622         aStoreProperties_doc[1].Name = "FilterName";
1623         aStoreProperties_doc[1].Value = "MS Word 97";
1624         xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
1625         app.closeDocument(xTextDocument);
1626 
1627         //reopen the document
1628         XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
1629         XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
1630         XIndexAccess xNumRule_assert_odt = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_odt.getPropertyValue("NumberingRules"));
1631         XIndexReplace xReplaceRule_assert_odt = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule_assert_odt);
1632         PropertyValue[] propsRule_assert_odt=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xReplaceRule_assert_odt.getByIndex(0));
1633         //verify paragraph numbering and bullet alignment
1634         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_odt[4].Name);
1635         assertEquals("assert numbering and bullet","User Entery",propsRule_assert_odt[4].Value);
1636         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_odt[11].Name);
1637         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_odt[11].Value);
1638 
1639         //reopen the document
1640         XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
1641         XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
1642         XIndexAccess xNumRule_assert_doc = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_doc.getPropertyValue("NumberingRules"));
1643         PropertyValue[] propsRule_assert_doc=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xNumRule_assert_doc.getByIndex(0));
1644         //verify paragraph numbering and bullet alignment
1645         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_doc[4].Name);
1646         assertEquals("assert numbering and bullet","WW8Num1z0",propsRule_assert_doc[4].Value);
1647         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_doc[11].Name);
1648         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_doc[11].Value);
1649     }
1650     @Test
testNumberingBulletCharacterStyle_Sourcetext()1651     public void testNumberingBulletCharacterStyle_Sourcetext() throws Exception {
1652 
1653         XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
1654         xText = xTextDocument.getText();
1655         xText.setString("we are Chinese,they are American.we are all living in one earth!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!" +
1656                 "Hello,world!Hello,world!");
1657         //create cursor to select paragraph and formating paragraph
1658         XTextCursor xTextCursor = xText.createTextCursor();
1659         //create paragraph property set
1660         XPropertySet xTextProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
1661         //create document service factory
1662         XMultiServiceFactory  xWriterFactory= (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
1663         //set numbering character
1664         XIndexAccess xNumRule = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,xWriterFactory.createInstance("com.sun.star.text.NumberingRules"));
1665         PropertyValue[] propsRule = {new PropertyValue(),new PropertyValue()};
1666         propsRule[0].Name = "NumberingType";
1667         propsRule[0].Value = NumberingType.ARABIC;
1668         propsRule[1].Name = "CharStyleName";
1669         propsRule[1].Value = "Source Text";
1670         XIndexReplace xReplaceRule = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule);
1671         xReplaceRule.replaceByIndex(0, propsRule);
1672         //set paragraph numbering and bullet character
1673         xTextProps.setPropertyValue("NumberingRules", xNumRule);
1674         //save to odt
1675         XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
1676         PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
1677         aStoreProperties_odt[0] = new PropertyValue();
1678         aStoreProperties_odt[1] = new PropertyValue();
1679         aStoreProperties_odt[0].Name = "Override";
1680         aStoreProperties_odt[0].Value = true;
1681         aStoreProperties_odt[1].Name = "FilterName";
1682         aStoreProperties_odt[1].Value = "writer8";
1683         xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
1684         //save to doc
1685         XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
1686         PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
1687         aStoreProperties_doc[0] = new PropertyValue();
1688         aStoreProperties_doc[1] = new PropertyValue();
1689         aStoreProperties_doc[0].Name = "Override";
1690         aStoreProperties_doc[0].Value = true;
1691         aStoreProperties_doc[1].Name = "FilterName";
1692         aStoreProperties_doc[1].Value = "MS Word 97";
1693         xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
1694         app.closeDocument(xTextDocument);
1695 
1696         //reopen the document
1697         XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
1698         XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
1699         XIndexAccess xNumRule_assert_odt = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_odt.getPropertyValue("NumberingRules"));
1700         XIndexReplace xReplaceRule_assert_odt = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule_assert_odt);
1701         PropertyValue[] propsRule_assert_odt=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xReplaceRule_assert_odt.getByIndex(0));
1702         //verify paragraph numbering and bullet alignment
1703         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_odt[4].Name);
1704         assertEquals("assert numbering and bullet","Source Text",propsRule_assert_odt[4].Value);
1705         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_odt[11].Name);
1706         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_odt[11].Value);
1707 
1708         //reopen the document
1709         XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
1710         XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
1711         XIndexAccess xNumRule_assert_doc = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_doc.getPropertyValue("NumberingRules"));
1712         PropertyValue[] propsRule_assert_doc=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xNumRule_assert_doc.getByIndex(0));
1713         //verify paragraph numbering and bullet alignment
1714         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_doc[4].Name);
1715         assertEquals("assert numbering and bullet","WW8Num1z0",propsRule_assert_doc[4].Value);
1716         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_doc[11].Name);
1717         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_doc[11].Value);
1718     }
1719     @Test
testNumberingBulletCharacterStyle_Definition()1720     public void testNumberingBulletCharacterStyle_Definition() throws Exception {
1721 
1722         XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
1723         xText = xTextDocument.getText();
1724         xText.setString("we are Chinese,they are American.we are all living in one earth!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!" +
1725                 "Hello,world!Hello,world!");
1726         //create cursor to select paragraph and formating paragraph
1727         XTextCursor xTextCursor = xText.createTextCursor();
1728         //create paragraph property set
1729         XPropertySet xTextProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
1730         //create document service factory
1731         XMultiServiceFactory  xWriterFactory= (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
1732         //set numbering character
1733         XIndexAccess xNumRule = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,xWriterFactory.createInstance("com.sun.star.text.NumberingRules"));
1734         PropertyValue[] propsRule = {new PropertyValue(),new PropertyValue()};
1735         propsRule[0].Name = "NumberingType";
1736         propsRule[0].Value = NumberingType.ARABIC;
1737         propsRule[1].Name = "CharStyleName";
1738         propsRule[1].Value = "Definition";
1739         XIndexReplace xReplaceRule = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule);
1740         xReplaceRule.replaceByIndex(0, propsRule);
1741         //set paragraph numbering and bullet character
1742         xTextProps.setPropertyValue("NumberingRules", xNumRule);
1743         //save to odt
1744         XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
1745         PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
1746         aStoreProperties_odt[0] = new PropertyValue();
1747         aStoreProperties_odt[1] = new PropertyValue();
1748         aStoreProperties_odt[0].Name = "Override";
1749         aStoreProperties_odt[0].Value = true;
1750         aStoreProperties_odt[1].Name = "FilterName";
1751         aStoreProperties_odt[1].Value = "writer8";
1752         xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
1753         //save to doc
1754         XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
1755         PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
1756         aStoreProperties_doc[0] = new PropertyValue();
1757         aStoreProperties_doc[1] = new PropertyValue();
1758         aStoreProperties_doc[0].Name = "Override";
1759         aStoreProperties_doc[0].Value = true;
1760         aStoreProperties_doc[1].Name = "FilterName";
1761         aStoreProperties_doc[1].Value = "MS Word 97";
1762         xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
1763         app.closeDocument(xTextDocument);
1764 
1765         //reopen the document
1766         XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
1767         XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
1768         XIndexAccess xNumRule_assert_odt = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_odt.getPropertyValue("NumberingRules"));
1769         XIndexReplace xReplaceRule_assert_odt = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule_assert_odt);
1770         PropertyValue[] propsRule_assert_odt=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xReplaceRule_assert_odt.getByIndex(0));
1771         //verify paragraph numbering and bullet alignment
1772         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_odt[4].Name);
1773         assertEquals("assert numbering and bullet","Definition",propsRule_assert_odt[4].Value);
1774         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_odt[11].Name);
1775         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_odt[11].Value);
1776 
1777         //reopen the document
1778         XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
1779         XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
1780         XIndexAccess xNumRule_assert_doc = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_doc.getPropertyValue("NumberingRules"));
1781         PropertyValue[] propsRule_assert_doc=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xNumRule_assert_doc.getByIndex(0));
1782         //verify paragraph numbering and bullet alignment
1783         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_doc[4].Name);
1784         assertEquals("assert numbering and bullet","WW8Num1z0",propsRule_assert_doc[4].Value);
1785         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_doc[11].Name);
1786         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_doc[11].Value);
1787     }
1788     @Test
testNumberingBulletCharacterStyle_Teletype()1789     public void testNumberingBulletCharacterStyle_Teletype() throws Exception {
1790 
1791         XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
1792         xText = xTextDocument.getText();
1793         xText.setString("we are Chinese,they are American.we are all living in one earth!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!" +
1794                 "Hello,world!Hello,world!");
1795         //create cursor to select paragraph and formating paragraph
1796         XTextCursor xTextCursor = xText.createTextCursor();
1797         //create paragraph property set
1798         XPropertySet xTextProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
1799         //create document service factory
1800         XMultiServiceFactory  xWriterFactory= (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
1801         //set numbering character
1802         XIndexAccess xNumRule = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,xWriterFactory.createInstance("com.sun.star.text.NumberingRules"));
1803         PropertyValue[] propsRule = {new PropertyValue(),new PropertyValue()};
1804         propsRule[0].Name = "NumberingType";
1805         propsRule[0].Value = NumberingType.ARABIC;
1806         propsRule[1].Name = "CharStyleName";
1807         propsRule[1].Value = "Teletype";
1808         XIndexReplace xReplaceRule = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule);
1809         xReplaceRule.replaceByIndex(0, propsRule);
1810         //set paragraph numbering and bullet character
1811         xTextProps.setPropertyValue("NumberingRules", xNumRule);
1812         //save to odt
1813         XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
1814         PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
1815         aStoreProperties_odt[0] = new PropertyValue();
1816         aStoreProperties_odt[1] = new PropertyValue();
1817         aStoreProperties_odt[0].Name = "Override";
1818         aStoreProperties_odt[0].Value = true;
1819         aStoreProperties_odt[1].Name = "FilterName";
1820         aStoreProperties_odt[1].Value = "writer8";
1821         xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
1822         //save to doc
1823         XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
1824         PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
1825         aStoreProperties_doc[0] = new PropertyValue();
1826         aStoreProperties_doc[1] = new PropertyValue();
1827         aStoreProperties_doc[0].Name = "Override";
1828         aStoreProperties_doc[0].Value = true;
1829         aStoreProperties_doc[1].Name = "FilterName";
1830         aStoreProperties_doc[1].Value = "MS Word 97";
1831         xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
1832         app.closeDocument(xTextDocument);
1833 
1834         //reopen the document
1835         XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
1836         XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
1837         XIndexAccess xNumRule_assert_odt = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_odt.getPropertyValue("NumberingRules"));
1838         XIndexReplace xReplaceRule_assert_odt = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule_assert_odt);
1839         PropertyValue[] propsRule_assert_odt=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xReplaceRule_assert_odt.getByIndex(0));
1840         //verify paragraph numbering and bullet alignment
1841         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_odt[4].Name);
1842         assertEquals("assert numbering and bullet","Teletype",propsRule_assert_odt[4].Value);
1843         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_odt[11].Name);
1844         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_odt[11].Value);
1845 
1846         //reopen the document
1847         XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
1848         XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
1849         XIndexAccess xNumRule_assert_doc = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_doc.getPropertyValue("NumberingRules"));
1850         PropertyValue[] propsRule_assert_doc=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xNumRule_assert_doc.getByIndex(0));
1851         //verify paragraph numbering and bullet alignment
1852         assertEquals("assert numbering and bullet","CharStyleName",propsRule_assert_doc[4].Name);
1853         assertEquals("assert numbering and bullet","WW8Num1z0",propsRule_assert_doc[4].Value);
1854         assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_doc[11].Name);
1855         assertEquals("assert numbering and bullet",NumberingType.ARABIC,propsRule_assert_doc[11].Value);
1856     }
1857 }
1858