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 //import org.openoffice.test.vcl.Tester.*; 13 import com.sun.star.text.*; 14 import com.sun.star.beans.*; 15 import com.sun.star.frame.XStorable; 16 import com.sun.star.uno.UnoRuntime; 17 import com.sun.star.style.*; 18 19 public class ParagraphLineSpacing { 20 private static final UnoApp app = new UnoApp(); 21 XText xText = null; 22 23 @Before 24 public void setUp() throws Exception { 25 app.start(); 26 27 } 28 29 @After 30 public void tearDown() throws Exception { 31 app.close(); 32 } 33 /* 34 * test paragraph line spacing is fix 35 * 1.new a text document 36 * 2.insert some text 37 * 3.set paragraph line spacing is fix 38 * 4.save and close the document 39 * 5.reload the saved document and check the paragraph line spacing 40 */ 41 @Test 42 public void testParagraphLineSpacingFix() throws Exception { 43 44 XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document 45 xText = xTextDocument.getText(); 46 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!" + 47 "Hello,world!Hello,world!"); 48 // create text cursor for selecting and formatting text 49 XTextCursor xTextCursor = xText.createTextCursor(); 50 XPropertySet xCursorProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor); 51 //set paragraph line spacing 52 LineSpacing lineSpacing = new LineSpacing(); 53 lineSpacing.Mode = LineSpacingMode.FIX; 54 lineSpacing.Height = 5000; 55 xCursorProps.setPropertyValue("ParaLineSpacing",lineSpacing); 56 //save to odt 57 XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument); 58 PropertyValue[] aStoreProperties_odt = new PropertyValue[2]; 59 aStoreProperties_odt[0] = new PropertyValue(); 60 aStoreProperties_odt[1] = new PropertyValue(); 61 aStoreProperties_odt[0].Name = "Override"; 62 aStoreProperties_odt[0].Value = true; 63 aStoreProperties_odt[1].Name = "FilterName"; 64 aStoreProperties_odt[1].Value = "StarOffice XML (Writer)"; 65 xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt); 66 //save to doc 67 XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument); 68 PropertyValue[] aStoreProperties_doc = new PropertyValue[2]; 69 aStoreProperties_doc[0] = new PropertyValue(); 70 aStoreProperties_doc[1] = new PropertyValue(); 71 aStoreProperties_doc[0].Name = "Override"; 72 aStoreProperties_doc[0].Value = true; 73 aStoreProperties_doc[1].Name = "FilterName"; 74 aStoreProperties_doc[1].Value = "MS Word 97"; 75 xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc); 76 app.closeDocument(xTextDocument); 77 78 //reopen the document and assert paragraph line spacing 79 XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt"))); 80 XPropertySet xCursorProps_assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class,assertDocument_odt.getText().createTextCursor()); 81 LineSpacing paraLineSpacing_assert_odt=(LineSpacing) UnoRuntime.queryInterface(LineSpacing.class, xCursorProps_assert_odt.getPropertyValue("ParaLineSpacing")); 82 assertEquals("assert first paragraph line spacing is fix",LineSpacingMode.FIX,paraLineSpacing_assert_odt.Mode); 83 assertEquals("assert first paragraph line spacing is fix",5001,paraLineSpacing_assert_odt.Height); 84 85 //reopen the document and assert paragraph line spacing 86 XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc"))); 87 XPropertySet xCursorProps_assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class,assertDocument_doc.getText().createTextCursor()); 88 LineSpacing paraLineSpacing_assert_doc=(LineSpacing) UnoRuntime.queryInterface(LineSpacing.class, xCursorProps_assert_doc.getPropertyValue("ParaLineSpacing")); 89 assertEquals("assert first paragraph line spacing is fix",LineSpacingMode.FIX,paraLineSpacing_assert_doc.Mode); 90 assertEquals("assert first paragraph line spacing is fix",5001,paraLineSpacing_assert_doc.Height); 91 } 92 /* 93 * test paragraph line spacing is leading 94 * 1.new a text document 95 * 2.insert some text 96 * 3.set paragraph line spacing is leading 97 * 4.save and close the document 98 * 5.reload the saved document and check the paragraph line spacing 99 */ 100 @Test@Ignore("Bug #120647 - [testUNO patch]line spacing leading setting change to at least when save to doc") 101 public void testParagraphLineSpacingLeading() throws Exception { 102 103 XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document 104 xText = xTextDocument.getText(); 105 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!" + 106 "Hello,world!Hello,world!"); 107 // create text cursor for selecting and formatting text 108 XTextCursor xTextCursor = xText.createTextCursor(); 109 XPropertySet xCursorProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor); 110 //set paragraph line spacing 111 LineSpacing lineSpacing = new LineSpacing(); 112 lineSpacing.Mode = LineSpacingMode.LEADING; 113 lineSpacing.Height = 5000; 114 xCursorProps.setPropertyValue("ParaLineSpacing",lineSpacing); 115 //save to odt 116 XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument); 117 PropertyValue[] aStoreProperties_odt = new PropertyValue[2]; 118 aStoreProperties_odt[0] = new PropertyValue(); 119 aStoreProperties_odt[1] = new PropertyValue(); 120 aStoreProperties_odt[0].Name = "Override"; 121 aStoreProperties_odt[0].Value = true; 122 aStoreProperties_odt[1].Name = "FilterName"; 123 aStoreProperties_odt[1].Value = "StarOffice XML (Writer)"; 124 xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt); 125 //save to doc 126 XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument); 127 PropertyValue[] aStoreProperties_doc = new PropertyValue[2]; 128 aStoreProperties_doc[0] = new PropertyValue(); 129 aStoreProperties_doc[1] = new PropertyValue(); 130 aStoreProperties_doc[0].Name = "Override"; 131 aStoreProperties_doc[0].Value = true; 132 aStoreProperties_doc[1].Name = "FilterName"; 133 aStoreProperties_doc[1].Value = "MS Word 97"; 134 xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc); 135 app.closeDocument(xTextDocument); 136 137 //reopen the document 138 XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt"))); 139 XPropertySet xCursorProps_assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class,assertDocument_odt.getText().createTextCursor()); 140 LineSpacing paraLineSpacing_assert_odt=(LineSpacing) UnoRuntime.queryInterface(LineSpacing.class, xCursorProps_assert_odt.getPropertyValue("ParaLineSpacing")); 141 //verify paragraph line spacing property 142 assertEquals("assert first paragraph line spacing is fix",LineSpacingMode.LEADING,paraLineSpacing_assert_odt.Mode); 143 assertEquals("assert first paragraph line spacing is fix",5001,paraLineSpacing_assert_odt.Height); 144 145 //reopen the document 146 XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc"))); 147 XPropertySet xCursorProps_assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class,assertDocument_doc.getText().createTextCursor()); 148 LineSpacing paraLineSpacing_assert_doc=(LineSpacing) UnoRuntime.queryInterface(LineSpacing.class, xCursorProps_assert_doc.getPropertyValue("ParaLineSpacing")); 149 //verify paragraph line spacing property 150 assertEquals("assert first paragraph line spacing is fix",LineSpacingMode.LEADING,paraLineSpacing_assert_doc.Mode); 151 assertEquals("assert first paragraph line spacing is fix",5001,paraLineSpacing_assert_doc.Height); 152 } 153 /* 154 * test paragraph line spacing is minimum 155 * 1.new a text document 156 * 2.insert some text 157 * 3.set paragraph line spacing is minimum 158 * 4.save and close the document 159 * 5.reload the saved document and check the paragraph line spacing 160 */ 161 @Test 162 public void testParagraphLineSpacingMinimum() throws Exception { 163 164 XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document 165 xText = xTextDocument.getText(); 166 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!" + 167 "Hello,world!Hello,world!"); 168 // create text cursor for selecting and formatting text 169 XTextCursor xTextCursor = xText.createTextCursor(); 170 XPropertySet xCursorProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor); 171 //set paragraph line spacing 172 LineSpacing lineSpacing = new LineSpacing(); 173 lineSpacing.Mode = LineSpacingMode.MINIMUM; 174 lineSpacing.Height = 5000; 175 xCursorProps.setPropertyValue("ParaLineSpacing",lineSpacing); 176 //save to odt 177 XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument); 178 PropertyValue[] aStoreProperties_odt = new PropertyValue[2]; 179 aStoreProperties_odt[0] = new PropertyValue(); 180 aStoreProperties_odt[1] = new PropertyValue(); 181 aStoreProperties_odt[0].Name = "Override"; 182 aStoreProperties_odt[0].Value = true; 183 aStoreProperties_odt[1].Name = "FilterName"; 184 aStoreProperties_odt[1].Value = "StarOffice XML (Writer)"; 185 xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt); 186 //save to doc 187 XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument); 188 PropertyValue[] aStoreProperties_doc = new PropertyValue[2]; 189 aStoreProperties_doc[0] = new PropertyValue(); 190 aStoreProperties_doc[1] = new PropertyValue(); 191 aStoreProperties_doc[0].Name = "Override"; 192 aStoreProperties_doc[0].Value = true; 193 aStoreProperties_doc[1].Name = "FilterName"; 194 aStoreProperties_doc[1].Value = "MS Word 97"; 195 xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc); 196 app.closeDocument(xTextDocument); 197 198 //reopen the document 199 XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt"))); 200 XPropertySet xCursorProps_assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class,assertDocument_odt.getText().createTextCursor()); 201 LineSpacing paraLineSpacing_assert_odt=(LineSpacing) UnoRuntime.queryInterface(LineSpacing.class, xCursorProps_assert_odt.getPropertyValue("ParaLineSpacing")); 202 //verify paragraph line spacing property 203 assertEquals("assert first paragraph line spacing is fix",LineSpacingMode.MINIMUM,paraLineSpacing_assert_odt.Mode); 204 assertEquals("assert first paragraph line spacing is fix",5001,paraLineSpacing_assert_odt.Height); 205 206 //reopen the document 207 XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc"))); 208 XPropertySet xCursorProps_assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class,assertDocument_doc.getText().createTextCursor()); 209 LineSpacing paraLineSpacing_assert_doc=(LineSpacing) UnoRuntime.queryInterface(LineSpacing.class, xCursorProps_assert_doc.getPropertyValue("ParaLineSpacing")); 210 //verify paragraph line spacing property 211 assertEquals("assert first paragraph line spacing is fix",LineSpacingMode.MINIMUM,paraLineSpacing_assert_doc.Mode); 212 assertEquals("assert first paragraph line spacing is fix",5001,paraLineSpacing_assert_doc.Height); 213 } 214 /* 215 * test paragraph line spacing is prop 216 * 1.new a text document 217 * 2.insert some text 218 * 3.set paragraph alignment is prop 219 * 4.save and close the document 220 * 5.reload the saved document and check the paragraph line spacing 221 */ 222 @Test 223 public void testParagraphLineSpacingProp() throws Exception { 224 225 XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document 226 xText = xTextDocument.getText(); 227 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!" + 228 "Hello,world!Hello,world!"); 229 // create text cursor for selecting and formatting text 230 XTextCursor xTextCursor = xText.createTextCursor(); 231 XPropertySet xCursorProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor); 232 //set paragraph line spacing 233 LineSpacing lineSpacing = new LineSpacing(); 234 lineSpacing.Mode = LineSpacingMode.PROP; 235 lineSpacing.Height = 150; 236 xCursorProps.setPropertyValue("ParaLineSpacing",lineSpacing); 237 //save to odt 238 XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument); 239 PropertyValue[] aStoreProperties_odt = new PropertyValue[2]; 240 aStoreProperties_odt[0] = new PropertyValue(); 241 aStoreProperties_odt[1] = new PropertyValue(); 242 aStoreProperties_odt[0].Name = "Override"; 243 aStoreProperties_odt[0].Value = true; 244 aStoreProperties_odt[1].Name = "FilterName"; 245 aStoreProperties_odt[1].Value = "StarOffice XML (Writer)"; 246 xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt); 247 //save to doc 248 XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument); 249 PropertyValue[] aStoreProperties_doc = new PropertyValue[2]; 250 aStoreProperties_doc[0] = new PropertyValue(); 251 aStoreProperties_doc[1] = new PropertyValue(); 252 aStoreProperties_doc[0].Name = "Override"; 253 aStoreProperties_doc[0].Value = true; 254 aStoreProperties_doc[1].Name = "FilterName"; 255 aStoreProperties_doc[1].Value = "MS Word 97"; 256 xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc); 257 app.closeDocument(xTextDocument); 258 259 //reopen the document 260 XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt"))); 261 XPropertySet xCursorProps_assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class,assertDocument_odt.getText().createTextCursor()); 262 LineSpacing paraLineSpacing_assert_odt=(LineSpacing) UnoRuntime.queryInterface(LineSpacing.class, xCursorProps_assert_odt.getPropertyValue("ParaLineSpacing")); 263 //verify paragraph line spacing property 264 assertEquals("assert line spacing is prop",LineSpacingMode.PROP,paraLineSpacing_assert_odt.Mode); 265 assertEquals("assert line spacing height is 150",150,paraLineSpacing_assert_odt.Height); 266 267 //reopen the document 268 XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc"))); 269 XPropertySet xCursorProps_assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class,assertDocument_doc.getText().createTextCursor()); 270 LineSpacing paraLineSpacing_assert_doc=(LineSpacing) UnoRuntime.queryInterface(LineSpacing.class, xCursorProps_assert_doc.getPropertyValue("ParaLineSpacing")); 271 //verify paragraph line spacing property 272 assertEquals("assert line spacing is prop",LineSpacingMode.PROP,paraLineSpacing_assert_doc.Mode); 273 assertEquals("assert line spacing height is 150",150,paraLineSpacing_assert_doc.Height); 274 } 275 /* 276 * test paragraph line spacing is single 277 * 1.new a text document 278 * 2.insert some text 279 * 3.set paragraph line spacing is single 280 * 4.save and close the document 281 * 5.reload the saved document and check the paragraph line spacing 282 */ 283 @Test@Ignore("Bug #120649 - [testUNO patch]single line spacing change to at least of 0.07 when save to doc") 284 public void testParagraphLineSpacingSingle() throws Exception { 285 286 XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document 287 xText = xTextDocument.getText(); 288 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!" + 289 "Hello,world!Hello,world!"); 290 // create text cursor for selecting and formatting text 291 XTextCursor xTextCursor = xText.createTextCursor(); 292 XPropertySet xCursorProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor); 293 //set paragraph line spacing 294 LineSpacing lineSpacing = new LineSpacing(); 295 lineSpacing.Height = 100; 296 xCursorProps.setPropertyValue("ParaLineSpacing",lineSpacing); 297 //save to odt 298 XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument); 299 PropertyValue[] aStoreProperties_odt = new PropertyValue[2]; 300 aStoreProperties_odt[0] = new PropertyValue(); 301 aStoreProperties_odt[1] = new PropertyValue(); 302 aStoreProperties_odt[0].Name = "Override"; 303 aStoreProperties_odt[0].Value = true; 304 aStoreProperties_odt[1].Name = "FilterName"; 305 aStoreProperties_odt[1].Value = "StarOffice XML (Writer)"; 306 xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt); 307 //save to doc 308 XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument); 309 PropertyValue[] aStoreProperties_doc = new PropertyValue[2]; 310 aStoreProperties_doc[0] = new PropertyValue(); 311 aStoreProperties_doc[1] = new PropertyValue(); 312 aStoreProperties_doc[0].Name = "Override"; 313 aStoreProperties_doc[0].Value = true; 314 aStoreProperties_doc[1].Name = "FilterName"; 315 aStoreProperties_doc[1].Value = "MS Word 97"; 316 xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc); 317 app.closeDocument(xTextDocument); 318 319 //reopen the document 320 XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt"))); 321 XPropertySet xCursorProps_assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class,assertDocument_odt.getText().createTextCursor()); 322 LineSpacing paraLineSpacing_assert_odt=(LineSpacing) UnoRuntime.queryInterface(LineSpacing.class, xCursorProps_assert_odt.getPropertyValue("ParaLineSpacing")); 323 //verify paragraph line spacing property 324 assertEquals("assert first paragraph line spacing is single",100,paraLineSpacing_assert_odt.Height); 325 326 //reopen the document 327 XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc"))); 328 XPropertySet xCursorProps_assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class,assertDocument_doc.getText().createTextCursor()); 329 LineSpacing paraLineSpacing_assert_doc=(LineSpacing) UnoRuntime.queryInterface(LineSpacing.class, xCursorProps_assert_doc.getPropertyValue("ParaLineSpacing")); 330 //verify paragraph line spacing property 331 assertEquals("assert first paragraph line spacing is single",100,paraLineSpacing_assert_doc.Height); 332 } 333 /* 334 * test paragraph line spacing is double 335 * 1.new a text document 336 * 2.insert some text 337 * 3.set paragraph line spacing is double 338 * 4.save and close the document 339 * 5.reload the saved document and check the paragraph line spacing 340 */ 341 @Test 342 public void testParagraphLineSpacingDouble() throws Exception { 343 344 XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document 345 xText = xTextDocument.getText(); 346 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!" + 347 "Hello,world!Hello,world!"); 348 // create text cursor for selecting and formatting text 349 XTextCursor xTextCursor = xText.createTextCursor(); 350 XPropertySet xCursorProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor); 351 //set paragraph line spacing 352 LineSpacing lineSpacing = new LineSpacing(); 353 lineSpacing.Height = 200; 354 xCursorProps.setPropertyValue("ParaLineSpacing",lineSpacing); 355 //save to odt 356 XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument); 357 PropertyValue[] aStoreProperties_odt = new PropertyValue[2]; 358 aStoreProperties_odt[0] = new PropertyValue(); 359 aStoreProperties_odt[1] = new PropertyValue(); 360 aStoreProperties_odt[0].Name = "Override"; 361 aStoreProperties_odt[0].Value = true; 362 aStoreProperties_odt[1].Name = "FilterName"; 363 aStoreProperties_odt[1].Value = "StarOffice XML (Writer)"; 364 xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt); 365 //save to doc 366 XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument); 367 PropertyValue[] aStoreProperties_doc = new PropertyValue[2]; 368 aStoreProperties_doc[0] = new PropertyValue(); 369 aStoreProperties_doc[1] = new PropertyValue(); 370 aStoreProperties_doc[0].Name = "Override"; 371 aStoreProperties_doc[0].Value = true; 372 aStoreProperties_doc[1].Name = "FilterName"; 373 aStoreProperties_doc[1].Value = "MS Word 97"; 374 xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc); 375 app.closeDocument(xTextDocument); 376 377 //reopen the document and assert line spacing 378 XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt"))); 379 XPropertySet xCursorProps_assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class,assertDocument_odt.getText().createTextCursor()); 380 LineSpacing paraLineSpacing_assert_odt=(LineSpacing) UnoRuntime.queryInterface(LineSpacing.class, xCursorProps_assert_odt.getPropertyValue("ParaLineSpacing")); 381 //verify paragraph line spacing property 382 assertEquals("assert first paragraph line spacing is single",200,paraLineSpacing_assert_odt.Height); 383 384 //reopen the document and assert line spacing 385 XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc"))); 386 XPropertySet xCursorProps_assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class,assertDocument_doc.getText().createTextCursor()); 387 LineSpacing paraLineSpacing_assert_doc=(LineSpacing) UnoRuntime.queryInterface(LineSpacing.class, xCursorProps_assert_doc.getPropertyValue("ParaLineSpacing")); 388 //verify paragraph line spacing property 389 assertEquals("assert first paragraph line spacing is single",200,paraLineSpacing_assert_doc.Height); 390 } 391 /* 392 * test paragraph line spacing is 1.5line 393 * 1.new a text document 394 * 2.insert some text 395 * 3.set paragraph line spacing is 1.5line 396 * 4.save and close the document 397 * 5.reload the saved document and check the paragraph line spacing 398 */ 399 @Test 400 public void testParagraphLineSpacingUserDefine() throws Exception { 401 402 XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter"));// new a text document 403 xText = xTextDocument.getText(); 404 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!" + 405 "Hello,world!Hello,world!"); 406 // create text cursor for selecting and formatting text 407 XTextCursor xTextCursor = xText.createTextCursor(); 408 XPropertySet xCursorProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextCursor); 409 //set paragraph line spacing 410 LineSpacing lineSpacing = new LineSpacing(); 411 lineSpacing.Height = 150; 412 xCursorProps.setPropertyValue("ParaLineSpacing",lineSpacing); 413 //save to odt 414 XStorable xStorable_odt = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument); 415 PropertyValue[] aStoreProperties_odt = new PropertyValue[2]; 416 aStoreProperties_odt[0] = new PropertyValue(); 417 aStoreProperties_odt[1] = new PropertyValue(); 418 aStoreProperties_odt[0].Name = "Override"; 419 aStoreProperties_odt[0].Value = true; 420 aStoreProperties_odt[1].Name = "FilterName"; 421 aStoreProperties_odt[1].Value = "StarOffice XML (Writer)"; 422 xStorable_odt.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties_odt); 423 //save to doc 424 XStorable xStorable_doc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument); 425 PropertyValue[] aStoreProperties_doc = new PropertyValue[2]; 426 aStoreProperties_doc[0] = new PropertyValue(); 427 aStoreProperties_doc[1] = new PropertyValue(); 428 aStoreProperties_doc[0].Name = "Override"; 429 aStoreProperties_doc[0].Value = true; 430 aStoreProperties_doc[1].Name = "FilterName"; 431 aStoreProperties_doc[1].Value = "MS Word 97"; 432 xStorable_doc.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.doc")), aStoreProperties_doc); 433 app.closeDocument(xTextDocument); 434 435 //reopen the document 436 XTextDocument assertDocument_odt=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt"))); 437 XPropertySet xCursorProps_assert_odt = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class,assertDocument_odt.getText().createTextCursor()); 438 LineSpacing paraLineSpacing_assert_odt=(LineSpacing) UnoRuntime.queryInterface(LineSpacing.class, xCursorProps_assert_odt.getPropertyValue("ParaLineSpacing")); 439 //verify paragraph line spacing property 440 assertEquals("assert first paragraph line spacing is single",150,paraLineSpacing_assert_odt.Height); 441 442 //reopen the document 443 XTextDocument assertDocument_doc=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.doc"))); 444 XPropertySet xCursorProps_assert_doc = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class,assertDocument_doc.getText().createTextCursor()); 445 LineSpacing paraLineSpacing_assert_doc=(LineSpacing) UnoRuntime.queryInterface(LineSpacing.class, xCursorProps_assert_doc.getPropertyValue("ParaLineSpacing")); 446 //verify paragraph line spacing property 447 assertEquals("assert first paragraph line spacing is single",150,paraLineSpacing_assert_doc.Height); 448 } 449 } 450