1 package fvt.uno.sw.paragraph;
2 
3 import static org.junit.Assert.*;
4 
5 import org.junit.After;
6 import org.junit.Before;
7 import org.junit.Ignore;
8 import org.junit.Test;
9 import org.openoffice.test.common.FileUtil;
10 import org.openoffice.test.common.Testspace;
11 import org.openoffice.test.uno.UnoApp;
12 
13 import com.sun.star.style.NumberingType;
14 import com.sun.star.text.*;
15 import com.sun.star.beans.*;
16 import com.sun.star.container.XIndexAccess;
17 import com.sun.star.container.XIndexReplace;
18 import com.sun.star.frame.XStorable;
19 import com.sun.star.lang.XMultiServiceFactory;
20 import com.sun.star.uno.UnoRuntime;
21 
22 public class ParagraphNumberingAndBullet_Graphic_Alignment {
23 	private static final UnoApp app = new UnoApp();
24 	XText xText = null;
25 
26 	@Before
27 	public void setUp() throws Exception {
28 		app.start();
29 
30 	}
31 
32 	@After
33 	public void tearDown() throws Exception {
34 		app.close();
35 	}
36 	/*
37 	 * test paragraph background color
38 	 * 1.new a text document
39 	 * 2.insert some text
40 	 * 3.set paragraph graphic bullet align
41 	 * 4.save and close the document
42 	 * 5.reload the saved document and check the paragraph graphic bullet align
43 	 */
44 	@Test@Ignore("Bug #120833 - [testUNO patch]graphic bullet will change to character bullet when save to doc.")
45 	public void testNumberingBullet_Graphic_Align_BottomofBaseline() throws Exception {
46 
47 		XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
48 		xText = xTextDocument.getText();
49 		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!" +
50 				"Hello,world!Hello,world!");
51 		//create cursor to select paragraph and formating paragraph
52 		XTextCursor xTextCursor = xText.createTextCursor();
53 		//create paragraph property set
54 		XPropertySet xTextProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
55 		//create document service factory
56 		XMultiServiceFactory  xWriterFactory= (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
57 		//set numbering character
58 		XIndexAccess xNumRule = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,xWriterFactory.createInstance("com.sun.star.text.NumberingRules"));
59 		PropertyValue[] propsRule = {new PropertyValue(),new PropertyValue(),new PropertyValue()};
60 		propsRule[0].Name = "NumberingType";
61 		propsRule[0].Value = NumberingType.BITMAP;
62 		propsRule[1].Name = "GraphicURL";
63 		propsRule[1].Value = FileUtil.getUrl(Testspace.prepareData("uno/coffee_1.gif"));
64 		propsRule[2].Name = "VertOrient";
65 		propsRule[2].Value = VertOrientation.BOTTOM;
66 		XIndexReplace xReplaceRule = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule);
67 		xReplaceRule.replaceByIndex(0, propsRule);
68 		//set paragraph numbering and bullet character
69 		xTextProps.setPropertyValue("NumberingRules", xNumRule);
70 
71 		//save to odt
72 		XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
73 		PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
74 		aStoreProperties_odt[0] = new PropertyValue();
75 		aStoreProperties_odt[1] = new PropertyValue();
76 		aStoreProperties_odt[0].Name = "Override";
77 		aStoreProperties_odt[0].Value = true;
78 		aStoreProperties_odt[1].Name = "FilterName";
79 		aStoreProperties_odt[1].Value = "writer8";
80 		xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
81 		//save to doc
82 		XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
83 		PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
84 		aStoreProperties_doc[0] = new PropertyValue();
85 		aStoreProperties_doc[1] = new PropertyValue();
86 		aStoreProperties_doc[0].Name = "Override";
87 		aStoreProperties_doc[0].Value = true;
88 		aStoreProperties_doc[1].Name = "FilterName";
89 		aStoreProperties_doc[1].Value = "MS Word 97";
90 		xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
91 		app.closeDocument(xTextDocument);
92 
93 		//reopen the document
94 		XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
95 		XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
96 		XIndexAccess xNumRule_assert_odt = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_odt.getPropertyValue("NumberingRules"));
97 		XIndexReplace xReplaceRule_assert_odt = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule_assert_odt);
98 		PropertyValue[] propsRule_assert_odt=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xReplaceRule_assert_odt.getByIndex(0));
99 		//verify paragraph numbering and bullet alignment
100 		assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_odt[11].Name);
101 		assertEquals("assert numbering and bullet",NumberingType.BITMAP,propsRule_assert_odt[11].Value);
102 		assertEquals("assert numbering and bullet","GraphicURL",propsRule_assert_odt[12].Name);
103 		assertEquals("assert numbering and bullet",FileUtil.getUrl(Testspace.prepareData("uno/coffee_1.gif")),propsRule_assert_odt[12].Value);
104 		assertEquals("assert numbering and bullet","VertOrient",propsRule_assert_odt[15].Name);
105 		assertEquals("assert numbering and bullet",VertOrientation.BOTTOM,propsRule_assert_odt[15].Value);
106 		//reopen the document
107 		XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
108 		XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
109 		XIndexAccess xNumRule_assert_doc = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_doc.getPropertyValue("NumberingRules"));
110 		PropertyValue[] propsRule_assert_doc=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xNumRule_assert_doc.getByIndex(0));
111 		//verify paragraph numbering and bullet alignment
112 		assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_doc[11].Name);
113 		assertEquals("assert numbering and bullet",NumberingType.CHAR_SPECIAL,propsRule_assert_doc[11].Value);
114 		assertEquals("assert numbering and bullet","GraphicURL",propsRule_assert_doc[12].Name);
115 		assertEquals("assert numbering and bullet",FileUtil.getUrl(Testspace.prepareData("uno/coffee_1.gif")),propsRule_assert_doc[12].Value);
116 		assertEquals("assert numbering and bullet","VertOrient",propsRule_assert_doc[15].Name);
117 		assertEquals("assert numbering and bullet",VertOrientation.BOTTOM,propsRule_assert_doc[15].Value);
118 	}
119 	@Test@Ignore("Bug #120833 - [testUNO patch]graphic bullet will change to character bullet when save to doc.")
120 	public void testNumberingBullet_Graphic_Align_CenterofBaseline() throws Exception {
121 
122 		XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
123 		xText = xTextDocument.getText();
124 		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!" +
125 				"Hello,world!Hello,world!");
126 		//create cursor to select paragraph and formating paragraph
127 		XTextCursor xTextCursor = xText.createTextCursor();
128 		//create paragraph property set
129 		XPropertySet xTextProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
130 		//create document service factory
131 		XMultiServiceFactory  xWriterFactory= (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
132 		//set numbering character
133 		XIndexAccess xNumRule = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,xWriterFactory.createInstance("com.sun.star.text.NumberingRules"));
134 		PropertyValue[] propsRule = {new PropertyValue(),new PropertyValue(),new PropertyValue()};
135 		propsRule[0].Name = "NumberingType";
136 		propsRule[0].Value = NumberingType.BITMAP;
137 		propsRule[1].Name = "GraphicURL";
138 		propsRule[1].Value = FileUtil.getUrl(Testspace.prepareData("uno/coffee_1.gif"));
139 		propsRule[2].Name = "VertOrient";
140 		propsRule[2].Value = VertOrientation.CENTER;
141 		XIndexReplace xReplaceRule = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule);
142 		xReplaceRule.replaceByIndex(0, propsRule);
143 		//set paragraph numbering and bullet character
144 		xTextProps.setPropertyValue("NumberingRules", xNumRule);
145 
146 		//save to odt
147 		XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
148 		PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
149 		aStoreProperties_odt[0] = new PropertyValue();
150 		aStoreProperties_odt[1] = new PropertyValue();
151 		aStoreProperties_odt[0].Name = "Override";
152 		aStoreProperties_odt[0].Value = true;
153 		aStoreProperties_odt[1].Name = "FilterName";
154 		aStoreProperties_odt[1].Value = "writer8";
155 		xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
156 		//save to doc
157 		XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
158 		PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
159 		aStoreProperties_doc[0] = new PropertyValue();
160 		aStoreProperties_doc[1] = new PropertyValue();
161 		aStoreProperties_doc[0].Name = "Override";
162 		aStoreProperties_doc[0].Value = true;
163 		aStoreProperties_doc[1].Name = "FilterName";
164 		aStoreProperties_doc[1].Value = "MS Word 97";
165 		xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
166 		app.closeDocument(xTextDocument);
167 
168 		//reopen the document
169 		XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
170 		XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
171 		XIndexAccess xNumRule_assert_odt = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_odt.getPropertyValue("NumberingRules"));
172 		XIndexReplace xReplaceRule_assert_odt = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule_assert_odt);
173 		PropertyValue[] propsRule_assert_odt=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xReplaceRule_assert_odt.getByIndex(0));
174 		//verify paragraph numbering and bullet alignment
175 		assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_odt[11].Name);
176 		assertEquals("assert numbering and bullet",NumberingType.BITMAP,propsRule_assert_odt[11].Value);
177 		assertEquals("assert numbering and bullet","GraphicURL",propsRule_assert_odt[12].Name);
178 		assertEquals("assert numbering and bullet",FileUtil.getUrl(Testspace.prepareData("uno/coffee_1.gif")),propsRule_assert_odt[12].Value);
179 		assertEquals("assert numbering and bullet","VertOrient",propsRule_assert_odt[15].Name);
180 		assertEquals("assert numbering and bullet",VertOrientation.CENTER,propsRule_assert_odt[15].Value);
181 		//reopen the document
182 		XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
183 		XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
184 		XIndexAccess xNumRule_assert_doc = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_doc.getPropertyValue("NumberingRules"));
185 		PropertyValue[] propsRule_assert_doc=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xNumRule_assert_doc.getByIndex(0));
186 		//verify paragraph numbering and bullet alignment
187 		assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_doc[11].Name);
188 		assertEquals("assert numbering and bullet",NumberingType.CHAR_SPECIAL,propsRule_assert_doc[11].Value);
189 		assertEquals("assert numbering and bullet","GraphicURL",propsRule_assert_doc[12].Name);
190 		assertEquals("assert numbering and bullet",FileUtil.getUrl(Testspace.prepareData("uno/coffee_1.gif")),propsRule_assert_doc[12].Value);
191 		assertEquals("assert numbering and bullet","VertOrient",propsRule_assert_doc[15].Name);
192 		assertEquals("assert numbering and bullet",VertOrientation.CENTER,propsRule_assert_doc[15].Value);
193 	}
194 	@Test@Ignore("Bug #120833 - [testUNO patch]graphic bullet will change to character bullet when save to doc.")
195 	public void testNumberingBullet_Graphic_Align_TopofBaseline() throws Exception {
196 
197 		XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
198 		xText = xTextDocument.getText();
199 		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!" +
200 				"Hello,world!Hello,world!");
201 		//create cursor to select paragraph and formating paragraph
202 		XTextCursor xTextCursor = xText.createTextCursor();
203 		//create paragraph property set
204 		XPropertySet xTextProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
205 		//create document service factory
206 		XMultiServiceFactory  xWriterFactory= (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
207 		//set numbering character
208 		XIndexAccess xNumRule = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,xWriterFactory.createInstance("com.sun.star.text.NumberingRules"));
209 		PropertyValue[] propsRule = {new PropertyValue(),new PropertyValue(),new PropertyValue()};
210 		propsRule[0].Name = "NumberingType";
211 		propsRule[0].Value = NumberingType.BITMAP;
212 		propsRule[1].Name = "GraphicURL";
213 		propsRule[1].Value = FileUtil.getUrl(Testspace.prepareData("uno/coffee_1.gif"));
214 		propsRule[2].Name = "VertOrient";
215 		propsRule[2].Value = VertOrientation.TOP;
216 		XIndexReplace xReplaceRule = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule);
217 		xReplaceRule.replaceByIndex(0, propsRule);
218 		//set paragraph numbering and bullet character
219 		xTextProps.setPropertyValue("NumberingRules", xNumRule);
220 
221 		//save to odt
222 		XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
223 		PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
224 		aStoreProperties_odt[0] = new PropertyValue();
225 		aStoreProperties_odt[1] = new PropertyValue();
226 		aStoreProperties_odt[0].Name = "Override";
227 		aStoreProperties_odt[0].Value = true;
228 		aStoreProperties_odt[1].Name = "FilterName";
229 		aStoreProperties_odt[1].Value = "writer8";
230 		xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
231 		//save to doc
232 		XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
233 		PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
234 		aStoreProperties_doc[0] = new PropertyValue();
235 		aStoreProperties_doc[1] = new PropertyValue();
236 		aStoreProperties_doc[0].Name = "Override";
237 		aStoreProperties_doc[0].Value = true;
238 		aStoreProperties_doc[1].Name = "FilterName";
239 		aStoreProperties_doc[1].Value = "MS Word 97";
240 		xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
241 		app.closeDocument(xTextDocument);
242 
243 		//reopen the document
244 		XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
245 		XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
246 		XIndexAccess xNumRule_assert_odt = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_odt.getPropertyValue("NumberingRules"));
247 		XIndexReplace xReplaceRule_assert_odt = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule_assert_odt);
248 		PropertyValue[] propsRule_assert_odt=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xReplaceRule_assert_odt.getByIndex(0));
249 		//verify paragraph numbering and bullet alignment
250 		assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_odt[11].Name);
251 		assertEquals("assert numbering and bullet",NumberingType.BITMAP,propsRule_assert_odt[11].Value);
252 		assertEquals("assert numbering and bullet","GraphicURL",propsRule_assert_odt[12].Name);
253 		assertEquals("assert numbering and bullet",FileUtil.getUrl(Testspace.prepareData("uno/coffee_1.gif")),propsRule_assert_odt[12].Value);
254 		assertEquals("assert numbering and bullet","VertOrient",propsRule_assert_odt[15].Name);
255 		assertEquals("assert numbering and bullet",VertOrientation.TOP,propsRule_assert_odt[15].Value);
256 		//reopen the document
257 		XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
258 		XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
259 		XIndexAccess xNumRule_assert_doc = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_doc.getPropertyValue("NumberingRules"));
260 		PropertyValue[] propsRule_assert_doc=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xNumRule_assert_doc.getByIndex(0));
261 		//verify paragraph numbering and bullet alignment
262 		assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_doc[11].Name);
263 		assertEquals("assert numbering and bullet",NumberingType.CHAR_SPECIAL,propsRule_assert_doc[11].Value);
264 		assertEquals("assert numbering and bullet","GraphicURL",propsRule_assert_doc[12].Name);
265 		assertEquals("assert numbering and bullet",FileUtil.getUrl(Testspace.prepareData("uno/coffee_1.gif")),propsRule_assert_doc[12].Value);
266 		assertEquals("assert numbering and bullet","VertOrient",propsRule_assert_doc[15].Name);
267 		assertEquals("assert numbering and bullet",VertOrientation.TOP,propsRule_assert_doc[15].Value);
268 	}
269 	@Test@Ignore("Bug #120833 - [testUNO patch]graphic bullet will change to character bullet when save to doc.")
270 	public void testNumberingBullet_Graphic_Align_BottomofCharacter() throws Exception {
271 
272 		XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
273 		xText = xTextDocument.getText();
274 		xText.setString("we are Chinese,they are American.we are all living in one earth!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!Hello,world!" +
275 				"Hello,world!Hello,world!");
276 		//create cursor to select paragraph and formating paragraph
277 		XTextCursor xTextCursor = xText.createTextCursor();
278 		//create paragraph property set
279 		XPropertySet xTextProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
280 		//create document service factory
281 		XMultiServiceFactory  xWriterFactory= (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
282 		//set numbering character
283 		XIndexAccess xNumRule = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,xWriterFactory.createInstance("com.sun.star.text.NumberingRules"));
284 		PropertyValue[] propsRule = {new PropertyValue(),new PropertyValue(),new PropertyValue()};
285 		propsRule[0].Name = "NumberingType";
286 		propsRule[0].Value = NumberingType.BITMAP;
287 		propsRule[1].Name = "GraphicURL";
288 		propsRule[1].Value = FileUtil.getUrl(Testspace.prepareData("uno/coffee_1.gif"));
289 		propsRule[2].Name = "VertOrient";
290 		propsRule[2].Value = VertOrientation.CHAR_BOTTOM;
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 
296 		//save to odt
297 		XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
298 		PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
299 		aStoreProperties_odt[0] = new PropertyValue();
300 		aStoreProperties_odt[1] = new PropertyValue();
301 		aStoreProperties_odt[0].Name = "Override";
302 		aStoreProperties_odt[0].Value = true;
303 		aStoreProperties_odt[1].Name = "FilterName";
304 		aStoreProperties_odt[1].Value = "writer8";
305 		xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
306 		//save to doc
307 		XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
308 		PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
309 		aStoreProperties_doc[0] = new PropertyValue();
310 		aStoreProperties_doc[1] = new PropertyValue();
311 		aStoreProperties_doc[0].Name = "Override";
312 		aStoreProperties_doc[0].Value = true;
313 		aStoreProperties_doc[1].Name = "FilterName";
314 		aStoreProperties_doc[1].Value = "MS Word 97";
315 		xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
316 		app.closeDocument(xTextDocument);
317 
318 		//reopen the document
319 		XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
320 		XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
321 		XIndexAccess xNumRule_assert_odt = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_odt.getPropertyValue("NumberingRules"));
322 		XIndexReplace xReplaceRule_assert_odt = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule_assert_odt);
323 		PropertyValue[] propsRule_assert_odt=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xReplaceRule_assert_odt.getByIndex(0));
324 		//verify paragraph numbering and bullet alignment
325 		assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_odt[11].Name);
326 		assertEquals("assert numbering and bullet",NumberingType.BITMAP,propsRule_assert_odt[11].Value);
327 		assertEquals("assert numbering and bullet","GraphicURL",propsRule_assert_odt[12].Name);
328 		assertEquals("assert numbering and bullet",FileUtil.getUrl(Testspace.prepareData("uno/coffee_1.gif")),propsRule_assert_odt[12].Value);
329 		assertEquals("assert numbering and bullet","VertOrient",propsRule_assert_odt[15].Name);
330 		assertEquals("assert numbering and bullet",VertOrientation.CHAR_BOTTOM,propsRule_assert_odt[15].Value);
331 		//reopen the document
332 		XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
333 		XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
334 		XIndexAccess xNumRule_assert_doc = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_doc.getPropertyValue("NumberingRules"));
335 		PropertyValue[] propsRule_assert_doc=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xNumRule_assert_doc.getByIndex(0));
336 		//verify paragraph numbering and bullet alignment
337 		assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_doc[11].Name);
338 		assertEquals("assert numbering and bullet",NumberingType.CHAR_SPECIAL,propsRule_assert_doc[11].Value);
339 		assertEquals("assert numbering and bullet","GraphicURL",propsRule_assert_doc[12].Name);
340 		assertEquals("assert numbering and bullet",FileUtil.getUrl(Testspace.prepareData("uno/coffee_1.gif")),propsRule_assert_doc[12].Value);
341 		assertEquals("assert numbering and bullet","VertOrient",propsRule_assert_doc[15].Name);
342 		assertEquals("assert numbering and bullet",VertOrientation.CHAR_BOTTOM,propsRule_assert_doc[15].Value);
343 	}
344 	@Test@Ignore("Bug #120833 - [testUNO patch]graphic bullet will change to character bullet when save to doc.")
345 	public void testNumberingBullet_Graphic_Align_CenterofCharacter() throws Exception {
346 
347 		XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
348 		xText = xTextDocument.getText();
349 		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!" +
350 				"Hello,world!Hello,world!");
351 		//create cursor to select paragraph and formating paragraph
352 		XTextCursor xTextCursor = xText.createTextCursor();
353 		//create paragraph property set
354 		XPropertySet xTextProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
355 		//create document service factory
356 		XMultiServiceFactory  xWriterFactory= (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
357 		//set numbering character
358 		XIndexAccess xNumRule = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,xWriterFactory.createInstance("com.sun.star.text.NumberingRules"));
359 		PropertyValue[] propsRule = {new PropertyValue(),new PropertyValue(),new PropertyValue()};
360 		propsRule[0].Name = "NumberingType";
361 		propsRule[0].Value = NumberingType.BITMAP;
362 		propsRule[1].Name = "GraphicURL";
363 		propsRule[1].Value = FileUtil.getUrl(Testspace.prepareData("uno/coffee_1.gif"));
364 		propsRule[2].Name = "VertOrient";
365 		propsRule[2].Value = VertOrientation.CHAR_CENTER;
366 		XIndexReplace xReplaceRule = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule);
367 		xReplaceRule.replaceByIndex(0, propsRule);
368 		//set paragraph numbering and bullet character
369 		xTextProps.setPropertyValue("NumberingRules", xNumRule);
370 
371 		//save to odt
372 		XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
373 		PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
374 		aStoreProperties_odt[0] = new PropertyValue();
375 		aStoreProperties_odt[1] = new PropertyValue();
376 		aStoreProperties_odt[0].Name = "Override";
377 		aStoreProperties_odt[0].Value = true;
378 		aStoreProperties_odt[1].Name = "FilterName";
379 		aStoreProperties_odt[1].Value = "writer8";
380 		xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
381 		//save to doc
382 		XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
383 		PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
384 		aStoreProperties_doc[0] = new PropertyValue();
385 		aStoreProperties_doc[1] = new PropertyValue();
386 		aStoreProperties_doc[0].Name = "Override";
387 		aStoreProperties_doc[0].Value = true;
388 		aStoreProperties_doc[1].Name = "FilterName";
389 		aStoreProperties_doc[1].Value = "MS Word 97";
390 		xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
391 		app.closeDocument(xTextDocument);
392 
393 		//reopen the document
394 		XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
395 		XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
396 		XIndexAccess xNumRule_assert_odt = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_odt.getPropertyValue("NumberingRules"));
397 		XIndexReplace xReplaceRule_assert_odt = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule_assert_odt);
398 		PropertyValue[] propsRule_assert_odt=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xReplaceRule_assert_odt.getByIndex(0));
399 		//verify paragraph numbering and bullet alignment
400 		assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_odt[11].Name);
401 		assertEquals("assert numbering and bullet",NumberingType.BITMAP,propsRule_assert_odt[11].Value);
402 		assertEquals("assert numbering and bullet","GraphicURL",propsRule_assert_odt[12].Name);
403 		assertEquals("assert numbering and bullet",FileUtil.getUrl(Testspace.prepareData("uno/coffee_1.gif")),propsRule_assert_odt[12].Value);
404 		assertEquals("assert numbering and bullet","VertOrient",propsRule_assert_odt[15].Name);
405 		assertEquals("assert numbering and bullet",VertOrientation.CHAR_CENTER,propsRule_assert_odt[15].Value);
406 		//reopen the document
407 		XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
408 		XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
409 		XIndexAccess xNumRule_assert_doc = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_doc.getPropertyValue("NumberingRules"));
410 		PropertyValue[] propsRule_assert_doc=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xNumRule_assert_doc.getByIndex(0));
411 		//verify paragraph numbering and bullet alignment
412 		assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_doc[11].Name);
413 		assertEquals("assert numbering and bullet",NumberingType.CHAR_SPECIAL,propsRule_assert_doc[11].Value);
414 		assertEquals("assert numbering and bullet","GraphicURL",propsRule_assert_doc[12].Name);
415 		assertEquals("assert numbering and bullet",FileUtil.getUrl(Testspace.prepareData("uno/coffee_1.gif")),propsRule_assert_doc[12].Value);
416 		assertEquals("assert numbering and bullet","VertOrient",propsRule_assert_doc[15].Name);
417 		assertEquals("assert numbering and bullet",VertOrientation.CHAR_CENTER,propsRule_assert_doc[15].Value);
418 	}
419 	@Test@Ignore("Bug #120833 - [testUNO patch]graphic bullet will change to character bullet when save to doc.")
420 	public void testNumberingBullet_Graphic_Align_TopofCharacter() throws Exception {
421 
422 		XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
423 		xText = xTextDocument.getText();
424 		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!" +
425 				"Hello,world!Hello,world!");
426 		//create cursor to select paragraph and formating paragraph
427 		XTextCursor xTextCursor = xText.createTextCursor();
428 		//create paragraph property set
429 		XPropertySet xTextProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
430 		//create document service factory
431 		XMultiServiceFactory  xWriterFactory= (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
432 		//set numbering character
433 		XIndexAccess xNumRule = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,xWriterFactory.createInstance("com.sun.star.text.NumberingRules"));
434 		PropertyValue[] propsRule = {new PropertyValue(),new PropertyValue(),new PropertyValue()};
435 		propsRule[0].Name = "NumberingType";
436 		propsRule[0].Value = NumberingType.BITMAP;
437 		propsRule[1].Name = "GraphicURL";
438 		propsRule[1].Value = FileUtil.getUrl(Testspace.prepareData("uno/coffee_1.gif"));
439 		propsRule[2].Name = "VertOrient";
440 		propsRule[2].Value = VertOrientation.CHAR_TOP;
441 		XIndexReplace xReplaceRule = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule);
442 		xReplaceRule.replaceByIndex(0, propsRule);
443 		//set paragraph numbering and bullet character
444 		xTextProps.setPropertyValue("NumberingRules", xNumRule);
445 
446 		//save to odt
447 		XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
448 		PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
449 		aStoreProperties_odt[0] = new PropertyValue();
450 		aStoreProperties_odt[1] = new PropertyValue();
451 		aStoreProperties_odt[0].Name = "Override";
452 		aStoreProperties_odt[0].Value = true;
453 		aStoreProperties_odt[1].Name = "FilterName";
454 		aStoreProperties_odt[1].Value = "writer8";
455 		xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
456 		//save to doc
457 		XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
458 		PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
459 		aStoreProperties_doc[0] = new PropertyValue();
460 		aStoreProperties_doc[1] = new PropertyValue();
461 		aStoreProperties_doc[0].Name = "Override";
462 		aStoreProperties_doc[0].Value = true;
463 		aStoreProperties_doc[1].Name = "FilterName";
464 		aStoreProperties_doc[1].Value = "MS Word 97";
465 		xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
466 		app.closeDocument(xTextDocument);
467 
468 		//reopen the document
469 		XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
470 		XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
471 		XIndexAccess xNumRule_assert_odt = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_odt.getPropertyValue("NumberingRules"));
472 		XIndexReplace xReplaceRule_assert_odt = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule_assert_odt);
473 		PropertyValue[] propsRule_assert_odt=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xReplaceRule_assert_odt.getByIndex(0));
474 		//verify paragraph numbering and bullet alignment
475 		assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_odt[11].Name);
476 		assertEquals("assert numbering and bullet",NumberingType.BITMAP,propsRule_assert_odt[11].Value);
477 		assertEquals("assert numbering and bullet","GraphicURL",propsRule_assert_odt[12].Name);
478 		assertEquals("assert numbering and bullet",FileUtil.getUrl(Testspace.prepareData("uno/coffee_1.gif")),propsRule_assert_odt[12].Value);
479 		assertEquals("assert numbering and bullet","VertOrient",propsRule_assert_odt[15].Name);
480 		assertEquals("assert numbering and bullet",VertOrientation.CHAR_TOP,propsRule_assert_odt[15].Value);
481 		//reopen the document
482 		XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
483 		XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
484 		XIndexAccess xNumRule_assert_doc = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_doc.getPropertyValue("NumberingRules"));
485 		PropertyValue[] propsRule_assert_doc=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xNumRule_assert_doc.getByIndex(0));
486 		//verify paragraph numbering and bullet alignment
487 		assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_doc[11].Name);
488 		assertEquals("assert numbering and bullet",NumberingType.CHAR_SPECIAL,propsRule_assert_doc[11].Value);
489 		assertEquals("assert numbering and bullet","GraphicURL",propsRule_assert_doc[12].Name);
490 		assertEquals("assert numbering and bullet",FileUtil.getUrl(Testspace.prepareData("uno/coffee_1.gif")),propsRule_assert_doc[12].Value);
491 		assertEquals("assert numbering and bullet","VertOrient",propsRule_assert_doc[15].Name);
492 		assertEquals("assert numbering and bullet",VertOrientation.CHAR_TOP,propsRule_assert_doc[15].Value);
493 	}
494 	@Test@Ignore("Bug #120833 - [testUNO patch]graphic bullet will change to character bullet when save to doc.")
495 	public void testNumberingBullet_Graphic_Align_BottomofLine() throws Exception {
496 
497 		XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
498 		xText = xTextDocument.getText();
499 		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!" +
500 				"Hello,world!Hello,world!");
501 		//create cursor to select paragraph and formating paragraph
502 		XTextCursor xTextCursor = xText.createTextCursor();
503 		//create paragraph property set
504 		XPropertySet xTextProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
505 		//create document service factory
506 		XMultiServiceFactory  xWriterFactory= (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
507 		//set numbering character
508 		XIndexAccess xNumRule = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,xWriterFactory.createInstance("com.sun.star.text.NumberingRules"));
509 		PropertyValue[] propsRule = {new PropertyValue(),new PropertyValue(),new PropertyValue()};
510 		propsRule[0].Name = "NumberingType";
511 		propsRule[0].Value = NumberingType.BITMAP;
512 		propsRule[1].Name = "GraphicURL";
513 		propsRule[1].Value = FileUtil.getUrl(Testspace.prepareData("uno/coffee_1.gif"));
514 		propsRule[2].Name = "VertOrient";
515 		propsRule[2].Value = VertOrientation.LINE_BOTTOM;
516 		XIndexReplace xReplaceRule = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule);
517 		xReplaceRule.replaceByIndex(0, propsRule);
518 		//set paragraph numbering and bullet character
519 		xTextProps.setPropertyValue("NumberingRules", xNumRule);
520 
521 		//save to odt
522 		XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
523 		PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
524 		aStoreProperties_odt[0] = new PropertyValue();
525 		aStoreProperties_odt[1] = new PropertyValue();
526 		aStoreProperties_odt[0].Name = "Override";
527 		aStoreProperties_odt[0].Value = true;
528 		aStoreProperties_odt[1].Name = "FilterName";
529 		aStoreProperties_odt[1].Value = "writer8";
530 		xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
531 		//save to doc
532 		XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
533 		PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
534 		aStoreProperties_doc[0] = new PropertyValue();
535 		aStoreProperties_doc[1] = new PropertyValue();
536 		aStoreProperties_doc[0].Name = "Override";
537 		aStoreProperties_doc[0].Value = true;
538 		aStoreProperties_doc[1].Name = "FilterName";
539 		aStoreProperties_doc[1].Value = "MS Word 97";
540 		xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
541 		app.closeDocument(xTextDocument);
542 
543 		//reopen the document
544 		XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
545 		XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
546 		XIndexAccess xNumRule_assert_odt = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_odt.getPropertyValue("NumberingRules"));
547 		XIndexReplace xReplaceRule_assert_odt = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule_assert_odt);
548 		PropertyValue[] propsRule_assert_odt=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xReplaceRule_assert_odt.getByIndex(0));
549 		//verify paragraph numbering and bullet alignment
550 		assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_odt[11].Name);
551 		assertEquals("assert numbering and bullet",NumberingType.BITMAP,propsRule_assert_odt[11].Value);
552 		assertEquals("assert numbering and bullet","GraphicURL",propsRule_assert_odt[12].Name);
553 		assertEquals("assert numbering and bullet",FileUtil.getUrl(Testspace.prepareData("uno/coffee_1.gif")),propsRule_assert_odt[12].Value);
554 		assertEquals("assert numbering and bullet","VertOrient",propsRule_assert_odt[15].Name);
555 		assertEquals("assert numbering and bullet",VertOrientation.LINE_BOTTOM,propsRule_assert_odt[15].Value);
556 		//reopen the document
557 		XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
558 		XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
559 		XIndexAccess xNumRule_assert_doc = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_doc.getPropertyValue("NumberingRules"));
560 		PropertyValue[] propsRule_assert_doc=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xNumRule_assert_doc.getByIndex(0));
561 		//verify paragraph numbering and bullet alignment
562 		assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_doc[11].Name);
563 		assertEquals("assert numbering and bullet",NumberingType.CHAR_SPECIAL,propsRule_assert_doc[11].Value);
564 		assertEquals("assert numbering and bullet","GraphicURL",propsRule_assert_doc[12].Name);
565 		assertEquals("assert numbering and bullet",FileUtil.getUrl(Testspace.prepareData("uno/coffee_1.gif")),propsRule_assert_doc[12].Value);
566 		assertEquals("assert numbering and bullet","VertOrient",propsRule_assert_doc[15].Name);
567 		assertEquals("assert numbering and bullet",VertOrientation.LINE_BOTTOM,propsRule_assert_doc[15].Value);
568 	}
569 	@Test@Ignore("Bug #120833 - [testUNO patch]graphic bullet will change to character bullet when save to doc.")
570 	public void testNumberingBullet_Graphic_Align_CenterofLine() throws Exception {
571 
572 		XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
573 		xText = xTextDocument.getText();
574 		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!" +
575 				"Hello,world!Hello,world!");
576 		//create cursor to select paragraph and formating paragraph
577 		XTextCursor xTextCursor = xText.createTextCursor();
578 		//create paragraph property set
579 		XPropertySet xTextProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
580 		//create document service factory
581 		XMultiServiceFactory  xWriterFactory= (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
582 		//set numbering character
583 		XIndexAccess xNumRule = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,xWriterFactory.createInstance("com.sun.star.text.NumberingRules"));
584 		PropertyValue[] propsRule = {new PropertyValue(),new PropertyValue(),new PropertyValue()};
585 		propsRule[0].Name = "NumberingType";
586 		propsRule[0].Value = NumberingType.BITMAP;
587 		propsRule[1].Name = "GraphicURL";
588 		propsRule[1].Value = FileUtil.getUrl(Testspace.prepareData("uno/coffee_1.gif"));
589 		propsRule[2].Name = "VertOrient";
590 		propsRule[2].Value = VertOrientation.LINE_CENTER;
591 		XIndexReplace xReplaceRule = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule);
592 		xReplaceRule.replaceByIndex(0, propsRule);
593 		//set paragraph numbering and bullet character
594 		xTextProps.setPropertyValue("NumberingRules", xNumRule);
595 
596 		//save to odt
597 		XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
598 		PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
599 		aStoreProperties_odt[0] = new PropertyValue();
600 		aStoreProperties_odt[1] = new PropertyValue();
601 		aStoreProperties_odt[0].Name = "Override";
602 		aStoreProperties_odt[0].Value = true;
603 		aStoreProperties_odt[1].Name = "FilterName";
604 		aStoreProperties_odt[1].Value = "writer8";
605 		xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
606 		//save to doc
607 		XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
608 		PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
609 		aStoreProperties_doc[0] = new PropertyValue();
610 		aStoreProperties_doc[1] = new PropertyValue();
611 		aStoreProperties_doc[0].Name = "Override";
612 		aStoreProperties_doc[0].Value = true;
613 		aStoreProperties_doc[1].Name = "FilterName";
614 		aStoreProperties_doc[1].Value = "MS Word 97";
615 		xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
616 		app.closeDocument(xTextDocument);
617 
618 		//reopen the document
619 		XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
620 		XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
621 		XIndexAccess xNumRule_assert_odt = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_odt.getPropertyValue("NumberingRules"));
622 		XIndexReplace xReplaceRule_assert_odt = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule_assert_odt);
623 		PropertyValue[] propsRule_assert_odt=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xReplaceRule_assert_odt.getByIndex(0));
624 		//verify paragraph numbering and bullet alignment
625 		assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_odt[11].Name);
626 		assertEquals("assert numbering and bullet",NumberingType.BITMAP,propsRule_assert_odt[11].Value);
627 		assertEquals("assert numbering and bullet","GraphicURL",propsRule_assert_odt[12].Name);
628 		assertEquals("assert numbering and bullet",FileUtil.getUrl(Testspace.prepareData("uno/coffee_1.gif")),propsRule_assert_odt[12].Value);
629 		assertEquals("assert numbering and bullet","VertOrient",propsRule_assert_odt[15].Name);
630 		assertEquals("assert numbering and bullet",VertOrientation.LINE_CENTER,propsRule_assert_odt[15].Value);
631 		//reopen the document
632 		XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
633 		XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
634 		XIndexAccess xNumRule_assert_doc = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_doc.getPropertyValue("NumberingRules"));
635 		PropertyValue[] propsRule_assert_doc=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xNumRule_assert_doc.getByIndex(0));
636 		//verify paragraph numbering and bullet alignment
637 		assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_doc[11].Name);
638 		assertEquals("assert numbering and bullet",NumberingType.CHAR_SPECIAL,propsRule_assert_doc[11].Value);
639 		assertEquals("assert numbering and bullet","GraphicURL",propsRule_assert_doc[12].Name);
640 		assertEquals("assert numbering and bullet",FileUtil.getUrl(Testspace.prepareData("uno/coffee_1.gif")),propsRule_assert_doc[12].Value);
641 		assertEquals("assert numbering and bullet","VertOrient",propsRule_assert_doc[15].Name);
642 		assertEquals("assert numbering and bullet",VertOrientation.LINE_CENTER,propsRule_assert_doc[15].Value);
643 	}
644 	@Test@Ignore("Bug #120833 - [testUNO patch]graphic bullet will change to character bullet when save to doc.")
645 	public void testNumberingBullet_Graphic_Align_TopofLine() throws Exception {
646 
647 		XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document
648 		xText = xTextDocument.getText();
649 		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!" +
650 				"Hello,world!Hello,world!");
651 		//create cursor to select paragraph and formating paragraph
652 		XTextCursor xTextCursor = xText.createTextCursor();
653 		//create paragraph property set
654 		XPropertySet xTextProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
655 		//create document service factory
656 		XMultiServiceFactory  xWriterFactory= (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
657 		//set numbering character
658 		XIndexAccess xNumRule = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,xWriterFactory.createInstance("com.sun.star.text.NumberingRules"));
659 		PropertyValue[] propsRule = {new PropertyValue(),new PropertyValue(),new PropertyValue()};
660 		propsRule[0].Name = "NumberingType";
661 		propsRule[0].Value = NumberingType.BITMAP;
662 		propsRule[1].Name = "GraphicURL";
663 		propsRule[1].Value = FileUtil.getUrl(Testspace.prepareData("uno/coffee_1.gif"));
664 		propsRule[2].Name = "VertOrient";
665 		propsRule[2].Value = VertOrientation.LINE_TOP;
666 		XIndexReplace xReplaceRule = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule);
667 		xReplaceRule.replaceByIndex(0, propsRule);
668 		//set paragraph numbering and bullet character
669 		xTextProps.setPropertyValue("NumberingRules", xNumRule);
670 
671 		//save to odt
672 		XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
673 		PropertyValue[] aStoreProperties_odt = new PropertyValue[2];
674 		aStoreProperties_odt[0] = new PropertyValue();
675 		aStoreProperties_odt[1] = new PropertyValue();
676 		aStoreProperties_odt[0].Name = "Override";
677 		aStoreProperties_odt[0].Value = true;
678 		aStoreProperties_odt[1].Name = "FilterName";
679 		aStoreProperties_odt[1].Value = "writer8";
680 		xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt);
681 		//save to doc
682 		XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
683 		PropertyValue[] aStoreProperties_doc = new PropertyValue[2];
684 		aStoreProperties_doc[0] = new PropertyValue();
685 		aStoreProperties_doc[1] = new PropertyValue();
686 		aStoreProperties_doc[0].Name = "Override";
687 		aStoreProperties_doc[0].Value = true;
688 		aStoreProperties_doc[1].Name = "FilterName";
689 		aStoreProperties_doc[1].Value = "MS Word 97";
690 		xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc);
691 		app.closeDocument(xTextDocument);
692 
693 		//reopen the document
694 		XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt")));
695 		XPropertySet xCursorProps_Assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_odt.getText().createTextCursor());
696 		XIndexAccess xNumRule_assert_odt = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_odt.getPropertyValue("NumberingRules"));
697 		XIndexReplace xReplaceRule_assert_odt = (XIndexReplace) UnoRuntime.queryInterface(XIndexReplace.class, xNumRule_assert_odt);
698 		PropertyValue[] propsRule_assert_odt=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xReplaceRule_assert_odt.getByIndex(0));
699 		//verify paragraph numbering and bullet alignment
700 		assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_odt[11].Name);
701 		assertEquals("assert numbering and bullet",NumberingType.BITMAP,propsRule_assert_odt[11].Value);
702 		assertEquals("assert numbering and bullet","GraphicURL",propsRule_assert_odt[12].Name);
703 		assertEquals("assert numbering and bullet",FileUtil.getUrl(Testspace.prepareData("uno/coffee_1.gif")),propsRule_assert_odt[12].Value);
704 		assertEquals("assert numbering and bullet","VertOrient",propsRule_assert_odt[15].Name);
705 		assertEquals("assert numbering and bullet",VertOrientation.LINE_TOP,propsRule_assert_odt[15].Value);
706 		//reopen the document
707 		XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc")));
708 		XPropertySet xCursorProps_Assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, assertDocument_doc.getText().createTextCursor());
709 		XIndexAccess xNumRule_assert_doc = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xCursorProps_Assert_doc.getPropertyValue("NumberingRules"));
710 		PropertyValue[] propsRule_assert_doc=(PropertyValue[]) UnoRuntime.queryInterface(PropertyValue[].class,xNumRule_assert_doc.getByIndex(0));
711 		//verify paragraph numbering and bullet alignment
712 		assertEquals("assert numbering and bullet","NumberingType",propsRule_assert_doc[11].Name);
713 		assertEquals("assert numbering and bullet",NumberingType.CHAR_SPECIAL,propsRule_assert_doc[11].Value);
714 		assertEquals("assert numbering and bullet","GraphicURL",propsRule_assert_doc[12].Name);
715 		assertEquals("assert numbering and bullet",FileUtil.getUrl(Testspace.prepareData("uno/coffee_1.gif")),propsRule_assert_doc[12].Value);
716 		assertEquals("assert numbering and bullet","VertOrient",propsRule_assert_doc[15].Name);
717 		assertEquals("assert numbering and bullet",VertOrientation.LINE_TOP,propsRule_assert_doc[15].Value);
718 	}
719 }
720