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.table; 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.uno.UnoRuntime; 34 import com.sun.star.text.*; 35 import com.sun.star.lang.XMultiServiceFactory; 36 import com.sun.star.beans.PropertyValue; 37 import com.sun.star.beans.XPropertySet; 38 import com.sun.star.container.XIndexAccess; 39 import com.sun.star.table.*; 40 import com.sun.star.frame.XStorable; 41 42 43 public class TableBasic { 44 45 private static final UnoApp app = new UnoApp(); 46 private XTextDocument xTextDocument=null; 47 private XMultiServiceFactory xWriterFactory=null; 48 private XText xText=null; 49 @Before 50 public void setUp() throws Exception { 51 app.start(); 52 } 53 54 @After 55 public void tearDown() throws Exception { 56 app.close(); 57 } 58 /* 59 * test create table 60 * 1.new a text document and create a table,5 rows,4 columns 61 * 2.save to odt,close it and reopen new saved document 62 * 3.check the table column count and row count 63 */ 64 @Test 65 public void testCreateTable() throws Exception { 66 xTextDocument =(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter")); 67 xText=xTextDocument.getText(); 68 XTextCursor xTextCursor = xText.createTextCursor(); 69 // get internal service factory of the document 70 xWriterFactory =(XMultiServiceFactory)UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument); 71 // Create a new table from the document's factory 72 XTextTable xTable = (XTextTable)UnoRuntime.queryInterface(XTextTable.class, xWriterFactory.createInstance("com.sun.star.text.TextTable")); 73 xTable.initialize(5, 4); 74 xText.insertTextContent(xTextCursor,xTable,false); 75 76 //save and reload text document 77 XStorable xStorable = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument); 78 PropertyValue[] aStoreProperties = new PropertyValue[2]; 79 aStoreProperties[0] = new PropertyValue(); 80 aStoreProperties[1] = new PropertyValue(); 81 aStoreProperties[0].Name = "Override"; 82 aStoreProperties[0].Value = true; 83 aStoreProperties[1].Name = "FilterName"; 84 aStoreProperties[1].Value = "StarOffice XML (Writer)"; 85 xStorable.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties); 86 app.closeDocument(xTextDocument); 87 88 //reopen the document and assert create table successfully 89 XTextDocument assertDocument=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt"))); 90 XTextTablesSupplier xTablesSupplier = (XTextTablesSupplier) UnoRuntime.queryInterface(XTextTablesSupplier.class, assertDocument ); 91 XIndexAccess xIndexedTables = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xTablesSupplier.getTextTables()); 92 Object xTable_obj=xIndexedTables.getByIndex(0); 93 XTextTable xTable_Assert=(XTextTable) UnoRuntime.queryInterface(XTextTable.class, xTable_obj); 94 XTableRows xRows=xTable_Assert.getRows(); 95 assertEquals("assert inserted table has 5 rows",5, xRows.getCount()); 96 XTableColumns xColumns=xTable_Assert.getColumns(); 97 assertEquals("assert inserted table has 4 columns",4, xColumns.getCount()); 98 } 99 /* 100 * test insert/delete row/column 101 * 1.new a text document and new a table 5x4 102 * 2.insert 2 rows,4 columns 103 * 3.check the total row count and column count 104 * 4.delete 3 row,2 column 105 * 5.check the total row count and column count 106 */ 107 @Test 108 public void testInsert_Delete_Rows_Columns() throws Exception { 109 xTextDocument =(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter")); 110 xText=xTextDocument.getText(); 111 XTextCursor xTextCursor = xText.createTextCursor(); 112 // get internal service factory of the document 113 xWriterFactory =(XMultiServiceFactory)UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument); 114 // Create a new table from the document's factory 115 XTextTable xTable = (XTextTable)UnoRuntime.queryInterface(XTextTable.class, xWriterFactory.createInstance("com.sun.star.text.TextTable")); 116 xTable.initialize(5, 4); 117 xText.insertTextContent(xTextCursor,xTable,false); 118 XTableRows xRows=xTable.getRows(); 119 XTableColumns xColumns=xTable.getColumns(); 120 xRows.insertByIndex(0, 2); 121 xColumns.insertByIndex(3, 4); 122 assertEquals("assert inserted 2 rows",7, xRows.getCount()); 123 assertEquals("assert inserted 2 columns",8, xColumns.getCount()); 124 xRows.removeByIndex(0, 3); 125 xColumns.removeByIndex(3, 2); 126 assertEquals("assert delete 3 rows",4, xRows.getCount()); 127 assertEquals("assert delete 2 columns",6, xColumns.getCount()); 128 app.closeDocument(xTextDocument); 129 } 130 /* 131 * test table tow height 132 * 1.new a text document and new a table 133 * 2.set the first row height and not auto fit 134 * 3.save to odt,close it and reopen new saved document 135 * 4.check the table first row height setting 136 */ 137 @Test 138 public void testSetRowHeight() throws Exception { 139 xTextDocument =(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter")); 140 xText=xTextDocument.getText(); 141 XTextCursor xTextCursor = xText.createTextCursor(); 142 // get internal service factory of the document 143 xWriterFactory =(XMultiServiceFactory)UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument); 144 // Create a new table from the document's factory 145 XTextTable xTable = (XTextTable)UnoRuntime.queryInterface(XTextTable.class, xWriterFactory.createInstance("com.sun.star.text.TextTable")); 146 xText.insertTextContent(xTextCursor,xTable,false); 147 XTableRows xRows=xTable.getRows(); 148 //set first row not auto fit and user-defined height 149 XPropertySet xRowsProps = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xRows.getByIndex(0)); 150 xRowsProps.setPropertyValue("IsAutoHeight",false); 151 xRowsProps.setPropertyValue("Height",5001); 152 //save and reload text document 153 XStorable xStorable = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument); 154 PropertyValue[] aStoreProperties = new PropertyValue[2]; 155 aStoreProperties[0] = new PropertyValue(); 156 aStoreProperties[1] = new PropertyValue(); 157 aStoreProperties[0].Name = "Override"; 158 aStoreProperties[0].Value = true; 159 aStoreProperties[1].Name = "FilterName"; 160 aStoreProperties[1].Value = "StarOffice XML (Writer)"; 161 xStorable.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties); 162 app.closeDocument(xTextDocument); 163 164 //reopen the document and assert row height setting 165 XTextDocument assertDocument=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt"))); 166 XTextTablesSupplier xTablesSupplier = (XTextTablesSupplier) UnoRuntime.queryInterface(XTextTablesSupplier.class, assertDocument ); 167 XIndexAccess xIndexedTables = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xTablesSupplier.getTextTables()); 168 Object xTable_obj=xIndexedTables.getByIndex(0); 169 XTextTable xTable_Assert=(XTextTable) UnoRuntime.queryInterface(XTextTable.class, xTable_obj); 170 XTableRows xRows_Assert=xTable_Assert.getRows(); 171 XPropertySet xRowsProps_assert = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xRows_Assert.getByIndex(0)); 172 assertEquals("assert the second row height is 5001",5001,xRowsProps_assert.getPropertyValue("Height")); 173 assertEquals("assert the second row height is not autofitable",false, xRowsProps_assert.getPropertyValue("IsAutoHeight")); 174 } 175 /* 176 * test table border setting 177 * 1.new a text document and create a table 178 * 2.set table border line color and style 179 * 3.save to odt,close it and reopen new saved document 180 * 4.check the table border setting 181 */ 182 @Test 183 public void testSetTableBorder() throws Exception { 184 xTextDocument =(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter")); 185 xText=xTextDocument.getText(); 186 XTextCursor xTextCursor = xText.createTextCursor(); 187 // get internal service factory of the document 188 xWriterFactory =(XMultiServiceFactory)UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument); 189 // Create a new table from the document's factory 190 XTextTable xTable = (XTextTable)UnoRuntime.queryInterface(XTextTable.class, xWriterFactory.createInstance("com.sun.star.text.TextTable")); 191 xText.insertTextContent(xTextCursor,xTable,false); 192 XPropertySet xTableProps = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xTable); 193 //set table border 194 TableBorder tableBorder = new TableBorder(); 195 BorderLine[]borderLine=new BorderLine[] {new BorderLine(),new BorderLine(),new BorderLine(),new BorderLine(),new BorderLine(),new BorderLine()}; 196 borderLine[0].Color=0x00FF0000; 197 borderLine[0].InnerLineWidth=101; 198 borderLine[0].OuterLineWidth=19; 199 borderLine[0].LineDistance=100; 200 borderLine[1].Color =0x00FFFF00; 201 borderLine[1].InnerLineWidth=101; 202 borderLine[1].OuterLineWidth=19; 203 borderLine[1].LineDistance=101; 204 borderLine[2].Color =0x0000FF00; 205 borderLine[2].InnerLineWidth=150; 206 borderLine[2].OuterLineWidth=19; 207 borderLine[2].LineDistance=101; 208 borderLine[3].Color =0x0000FF00; 209 borderLine[3].InnerLineWidth=150; 210 borderLine[3].OuterLineWidth=19; 211 borderLine[3].LineDistance=101; 212 borderLine[4].Color =0x0000FF00; 213 borderLine[4].InnerLineWidth=150; 214 borderLine[4].OuterLineWidth=19; 215 borderLine[4].LineDistance=101; 216 borderLine[5].Color =0x0000FF00; 217 borderLine[5].InnerLineWidth=150; 218 borderLine[5].OuterLineWidth=19; 219 borderLine[5].LineDistance=101; 220 tableBorder.TopLine =borderLine[0]; 221 tableBorder.BottomLine =borderLine[1]; 222 tableBorder.LeftLine =borderLine[2]; 223 tableBorder.RightLine =borderLine[3]; 224 tableBorder.HorizontalLine =borderLine[4]; 225 tableBorder.VerticalLine =borderLine[5]; 226 tableBorder.IsBottomLineValid = true; 227 tableBorder.IsLeftLineValid = true; 228 tableBorder.IsRightLineValid = true; 229 tableBorder.IsTopLineValid = true; 230 tableBorder.IsHorizontalLineValid = true; 231 tableBorder.IsVerticalLineValid = true; 232 xTableProps.setPropertyValue("TableBorder", tableBorder); 233 //save and reload text document 234 XStorable xStorable = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument); 235 PropertyValue[] aStoreProperties = new PropertyValue[2]; 236 aStoreProperties[0] = new PropertyValue(); 237 aStoreProperties[1] = new PropertyValue(); 238 aStoreProperties[0].Name = "Override"; 239 aStoreProperties[0].Value = true; 240 aStoreProperties[1].Name = "FilterName"; 241 aStoreProperties[1].Value = "StarOffice XML (Writer)"; 242 xStorable.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties); 243 app.closeDocument(xTextDocument); 244 245 //reopen the document and assert table border setting 246 XTextDocument assertDocument=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt"))); 247 XTextTablesSupplier xTablesSupplier = (XTextTablesSupplier) UnoRuntime.queryInterface(XTextTablesSupplier.class, assertDocument ); 248 XIndexAccess xIndexedTables = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xTablesSupplier.getTextTables()); 249 Object xTable_obj=xIndexedTables.getByIndex(0); 250 XTextTable xTable_Assert=(XTextTable) UnoRuntime.queryInterface(XTextTable.class, xTable_obj); 251 XPropertySet xTableProps_Assert = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xTable_Assert); 252 TableBorder tableBorder_Assert=(TableBorder) UnoRuntime.queryInterface(TableBorder.class, xTableProps_Assert.getPropertyValue("TableBorder")); 253 assertEquals("assert topline color as setting",0x00FF0000,tableBorder_Assert.TopLine.Color); 254 assertEquals("assert topline innerline width as setting",101,tableBorder_Assert.TopLine.InnerLineWidth); 255 assertEquals("assert topline outerlinewidth as setting",19,tableBorder_Assert.TopLine.OuterLineWidth); 256 assertEquals("assert topline linedistance as setting",101,tableBorder_Assert.TopLine.LineDistance); 257 assertEquals("assert bottomline color as setting",0x00FFFF00,tableBorder_Assert.BottomLine.Color); 258 assertEquals("assert bottomline innerline width as setting",101,tableBorder_Assert.BottomLine.InnerLineWidth); 259 assertEquals("assert bottomline outerlinewidth as setting",19,tableBorder_Assert.BottomLine.OuterLineWidth); 260 assertEquals("assert bottomline linedistance as setting",101,tableBorder_Assert.BottomLine.LineDistance); 261 assertEquals("assert leftline color as setting",0x0000FF00,tableBorder_Assert.LeftLine.Color); 262 assertEquals("assert leftline innerline width as setting",150,tableBorder_Assert.LeftLine.InnerLineWidth); 263 assertEquals("assert leftline outerlinewidth as setting",19,tableBorder_Assert.LeftLine.OuterLineWidth); 264 assertEquals("assert leftline linedistance as setting",101,tableBorder_Assert.LeftLine.LineDistance); 265 assertEquals("assert rightline color as setting",0x0000FF00,tableBorder_Assert.RightLine.Color); 266 assertEquals("assert rightline linedistance as setting",101,tableBorder_Assert.RightLine.LineDistance); 267 assertEquals("assert rightline innerline width as setting",150,tableBorder_Assert.RightLine.InnerLineWidth); 268 assertEquals("assert rightline outerlinewidth as setting",19,tableBorder_Assert.RightLine.OuterLineWidth); 269 assertEquals("assert HorizontalLine color as setting",0x0000FF00,tableBorder_Assert.HorizontalLine.Color); 270 assertEquals("assert HorizontalLine innerline width as setting",150,tableBorder_Assert.HorizontalLine.InnerLineWidth); 271 assertEquals("assert HorizontalLine outerlinewidth as setting",19,tableBorder_Assert.HorizontalLine.OuterLineWidth); 272 assertEquals("assert HorizontalLine linedistance as setting",101,tableBorder_Assert.HorizontalLine.LineDistance); 273 assertEquals("assert VerticalLine color as setting",0x0000FF00,tableBorder_Assert.VerticalLine.Color); 274 assertEquals("assert VerticalLine innerline width as setting",150,tableBorder_Assert.VerticalLine.InnerLineWidth); 275 assertEquals("assert VerticalLine outerlinewidth as setting",19,tableBorder_Assert.VerticalLine.OuterLineWidth); 276 assertEquals("assert VerticalLine linedistance as setting",101,tableBorder_Assert.VerticalLine.LineDistance); 277 } 278 /* 279 * test table spacing to page and alignment 280 * 1.new a text document 281 * 2.create a table 282 * 3.set the table alignment to automatic,and spacing to margin 283 * 4.repeat step2 5 times,and set second table alignment to manual/center/left/from left/right,and spacing to margin 284 * 5.save to odt,close it and reopen the new saved document 285 * 6.reopen and check the every table alignment and spacing to margin 286 */ 287 @Test 288 public void testSetTable_AlignmentAndMarginToPage() throws Exception { 289 xTextDocument =(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter")); 290 xText=xTextDocument.getText(); 291 XTextCursor xTextCursor = xText.createTextCursor(); 292 // get internal service factory of the document 293 xWriterFactory =(XMultiServiceFactory)UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument); 294 // Create new table from the document's factory 295 XTextTable xTable1 = (XTextTable)UnoRuntime.queryInterface(XTextTable.class, xWriterFactory.createInstance("com.sun.star.text.TextTable")); 296 xText.insertTextContent(xTextCursor,xTable1,false); 297 XPropertySet xTableProps1 = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xTable1); 298 xTableProps1.setPropertyValue("HoriOrient",com.sun.star.text.HoriOrientation.FULL); 299 xTableProps1.setPropertyValue("LeftMargin",2591); 300 xTableProps1.setPropertyValue("RightMargin",3000); 301 xTableProps1.setPropertyValue("TopMargin",2000); 302 xTableProps1.setPropertyValue("BottomMargin",2000); 303 XTextTable xTable2 = (XTextTable)UnoRuntime.queryInterface(XTextTable.class, xWriterFactory.createInstance("com.sun.star.text.TextTable")); 304 xText.insertTextContent(xTextCursor,xTable2,false); 305 XPropertySet xTableProps2 = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xTable2); 306 xTableProps2.setPropertyValue("HoriOrient",com.sun.star.text.HoriOrientation.NONE); 307 xTableProps2.setPropertyValue("LeftMargin",2591); 308 xTableProps2.setPropertyValue("RightMargin",3000); 309 xTableProps2.setPropertyValue("TopMargin",2000); 310 xTableProps2.setPropertyValue("BottomMargin",2000); 311 XTextTable xTable3 = (XTextTable)UnoRuntime.queryInterface(XTextTable.class, xWriterFactory.createInstance("com.sun.star.text.TextTable")); 312 xText.insertTextContent(xTextCursor,xTable3,false); 313 XPropertySet xTableProps3 = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xTable3); 314 xTableProps3.setPropertyValue("HoriOrient",com.sun.star.text.HoriOrientation.CENTER); 315 xTableProps3.setPropertyValue("LeftMargin",2000); 316 xTableProps3.setPropertyValue("RightMargin",3000); 317 xTableProps3.setPropertyValue("TopMargin",2000); 318 xTableProps3.setPropertyValue("BottomMargin",2000); 319 XTextTable xTable4 = (XTextTable)UnoRuntime.queryInterface(XTextTable.class, xWriterFactory.createInstance("com.sun.star.text.TextTable")); 320 xText.insertTextContent(xTextCursor,xTable4,false); 321 XPropertySet xTableProps4 = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xTable4); 322 xTableProps4.setPropertyValue("HoriOrient",com.sun.star.text.HoriOrientation.LEFT); 323 xTableProps4.setPropertyValue("KeepTogether",true); 324 xTableProps4.setPropertyValue("RightMargin",2000); 325 xTableProps4.setPropertyValue("TopMargin",2000); 326 xTableProps4.setPropertyValue("BottomMargin",2000); 327 XTextTable xTable5 = (XTextTable)UnoRuntime.queryInterface(XTextTable.class, xWriterFactory.createInstance("com.sun.star.text.TextTable")); 328 xText.insertTextContent(xTextCursor,xTable5,false); 329 XPropertySet xTableProps5 = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xTable5); 330 xTableProps5.setPropertyValue("HoriOrient",com.sun.star.text.HoriOrientation.LEFT_AND_WIDTH); 331 xTableProps5.setPropertyValue("TopMargin",2000); 332 xTableProps5.setPropertyValue("BottomMargin",2000); 333 XTextTable xTable6 = (XTextTable)UnoRuntime.queryInterface(XTextTable.class, xWriterFactory.createInstance("com.sun.star.text.TextTable")); 334 xText.insertTextContent(xTextCursor,xTable6,false); 335 XPropertySet xTableProps6 = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xTable6); 336 xTableProps6.setPropertyValue("HoriOrient",com.sun.star.text.HoriOrientation.RIGHT); 337 xTableProps6.setPropertyValue("TopMargin",2000); 338 xTableProps6.setPropertyValue("BottomMargin",2000); 339 //save and reload text document 340 XStorable xStorable = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument); 341 PropertyValue[] aStoreProperties = new PropertyValue[2]; 342 aStoreProperties[0] = new PropertyValue(); 343 aStoreProperties[1] = new PropertyValue(); 344 aStoreProperties[0].Name = "Override"; 345 aStoreProperties[0].Value = true; 346 aStoreProperties[1].Name = "FilterName"; 347 aStoreProperties[1].Value = "StarOffice XML (Writer)"; 348 xStorable.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties); 349 app.closeDocument(xTextDocument); 350 351 //reopen the document and assert table margin to page setting 352 XTextDocument assertDocument=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt"))); 353 XTextTablesSupplier xTablesSupplier = (XTextTablesSupplier) UnoRuntime.queryInterface(XTextTablesSupplier.class, assertDocument ); 354 XIndexAccess xIndexedTables = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xTablesSupplier.getTextTables()); 355 Object xTable_obj1=xIndexedTables.getByIndex(0); 356 XTextTable xTable_Assert1=(XTextTable) UnoRuntime.queryInterface(XTextTable.class, xTable_obj1); 357 XPropertySet xTableProps_assert1 = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTable_Assert1); 358 assertEquals("assert table alignment as automatic",com.sun.star.text.HoriOrientation.FULL,xTableProps_assert1.getPropertyValue("HoriOrient")); 359 assertEquals("assert left margin to page",0,xTableProps_assert1.getPropertyValue("LeftMargin")); 360 assertEquals("assert right margin to page",0,xTableProps_assert1.getPropertyValue("RightMargin")); 361 assertEquals("assert top margin to page",2000,xTableProps_assert1.getPropertyValue("TopMargin")); 362 assertEquals("assert bottom margin to page",2000,xTableProps_assert1.getPropertyValue("BottomMargin")); 363 Object xTable_obj2=xIndexedTables.getByIndex(1); 364 XTextTable xTable_Assert=(XTextTable) UnoRuntime.queryInterface(XTextTable.class, xTable_obj2); 365 XPropertySet xTableProps_assert2 = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTable_Assert); 366 assertEquals("assert table alignment as manual",com.sun.star.text.HoriOrientation.NONE,xTableProps_assert2.getPropertyValue("HoriOrient")); 367 assertEquals("assert left margin to page",2591,xTableProps_assert2.getPropertyValue("LeftMargin")); 368 assertEquals("assert right margin to page",3000,xTableProps_assert2.getPropertyValue("RightMargin")); 369 assertEquals("assert top margin to page",2000,xTableProps_assert2.getPropertyValue("TopMargin")); 370 assertEquals("assert bottom margin to page",2000,xTableProps_assert2.getPropertyValue("BottomMargin")); 371 Object xTable_obj3=xIndexedTables.getByIndex(2); 372 XTextTable xTable_Assert3=(XTextTable) UnoRuntime.queryInterface(XTextTable.class, xTable_obj3); 373 XPropertySet xTableProps_assert3 = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTable_Assert3); 374 assertEquals("assert table alignment as center",com.sun.star.text.HoriOrientation.CENTER,xTableProps_assert3.getPropertyValue("HoriOrient")); 375 assertEquals("assert top margin to page",2000,xTableProps_assert3.getPropertyValue("TopMargin")); 376 assertEquals("assert bottom margin to page",2000,xTableProps_assert3.getPropertyValue("BottomMargin")); 377 Object xTable_obj4=xIndexedTables.getByIndex(3); 378 XTextTable xTable_Assert4=(XTextTable) UnoRuntime.queryInterface(XTextTable.class, xTable_obj4); 379 XPropertySet xTableProps_assert4 = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTable_Assert4); 380 assertEquals("assert table alignment as left",com.sun.star.text.HoriOrientation.LEFT,xTableProps_assert4.getPropertyValue("HoriOrient")); 381 assertEquals("assert top margin to page",2000,xTableProps_assert4.getPropertyValue("TopMargin")); 382 assertEquals("assert bottom margin to page",2000,xTableProps_assert4.getPropertyValue("BottomMargin")); 383 Object xTable_obj5=xIndexedTables.getByIndex(4); 384 XTextTable xTable_Assert5=(XTextTable) UnoRuntime.queryInterface(XTextTable.class, xTable_obj5); 385 XPropertySet xTableProps_assert5 = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTable_Assert5); 386 assertEquals("assert table alignment as from left",com.sun.star.text.HoriOrientation.LEFT,xTableProps_assert5.getPropertyValue("HoriOrient")); 387 assertEquals("assert top margin to page",2000,xTableProps_assert5.getPropertyValue("TopMargin")); 388 assertEquals("assert bottom margin to page",2000,xTableProps_assert5.getPropertyValue("BottomMargin")); 389 Object xTable_obj6=xIndexedTables.getByIndex(5); 390 XTextTable xTable_Assert6=(XTextTable) UnoRuntime.queryInterface(XTextTable.class, xTable_obj6); 391 XPropertySet xTableProps_assert6 = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTable_Assert6); 392 assertEquals("assert table alignment as right",com.sun.star.text.HoriOrientation.RIGHT,xTableProps_assert6.getPropertyValue("HoriOrient")); 393 assertEquals("assert top margin to page",2000,xTableProps_assert5.getPropertyValue("TopMargin")); 394 assertEquals("assert bottom margin to page",2000,xTableProps_assert5.getPropertyValue("BottomMargin")); 395 } 396 /* 397 * test set table background with color 398 * 1.new a text document and new a table 399 * 2.set table background with color 400 * 3.save to odt and close it,then reopen the new saved document 401 * 4.check the table background color 402 */ 403 @Test 404 public void testSetTableBackColor() throws Exception { 405 xTextDocument =(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter")); 406 xText=xTextDocument.getText(); 407 XTextCursor xTextCursor = xText.createTextCursor(); 408 // get internal service factory of the document 409 xWriterFactory =(XMultiServiceFactory)UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument); 410 // Create a new table from the document's factory 411 XTextTable xTable = (XTextTable)UnoRuntime.queryInterface(XTextTable.class, xWriterFactory.createInstance("com.sun.star.text.TextTable")); 412 xText.insertTextContent(xTextCursor,xTable,false); 413 XPropertySet xTableProps = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xTable); 414 xTableProps.setPropertyValue("BackColor",0x0000FF00); 415 416 //save and reload text document 417 XStorable xStorable = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument); 418 PropertyValue[] aStoreProperties = new PropertyValue[2]; 419 aStoreProperties[0] = new PropertyValue(); 420 aStoreProperties[1] = new PropertyValue(); 421 aStoreProperties[0].Name = "Override"; 422 aStoreProperties[0].Value = true; 423 aStoreProperties[1].Name = "FilterName"; 424 aStoreProperties[1].Value = "StarOffice XML (Writer)"; 425 xStorable.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties); 426 app.closeDocument(xTextDocument); 427 428 //reopen the document and assert table margin to page setting 429 XTextDocument assertDocument=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt"))); 430 XTextTablesSupplier xTablesSupplier = (XTextTablesSupplier) UnoRuntime.queryInterface(XTextTablesSupplier.class, assertDocument ); 431 XIndexAccess xIndexedTables = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xTablesSupplier.getTextTables()); 432 Object xTable_obj=xIndexedTables.getByIndex(0); 433 XTextTable xTable_Assert=(XTextTable) UnoRuntime.queryInterface(XTextTable.class, xTable_obj); 434 XPropertySet xTableProps_assert = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTable_Assert); 435 assertEquals("verify table background color",0x0000FF00,xTableProps_assert.getPropertyValue("BackColor")); 436 } 437 /*test table repeat heading setting 438 * 1.new a text document and create a table 439 * 2.set table first row as repeat heading 440 * 3.save to odt and close it,then reopen the document 441 * 4.check the table first row as repeat heading 442 */ 443 444 @Test 445 public void testSetTableRepeatHeading() throws Exception { 446 xTextDocument =(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter")); 447 xText=xTextDocument.getText(); 448 XTextCursor xTextCursor = xText.createTextCursor(); 449 // get internal service factory of the document 450 xWriterFactory =(XMultiServiceFactory)UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument); 451 // Create a new table from the document's factory 452 XTextTable xTable = (XTextTable)UnoRuntime.queryInterface(XTextTable.class, xWriterFactory.createInstance("com.sun.star.text.TextTable")); 453 xText.insertTextContent(xTextCursor,xTable,false); 454 XPropertySet xTableProps = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xTable); 455 //set table first one row as table heading 456 xTableProps.setPropertyValue("RepeatHeadline",true); 457 xTableProps.setPropertyValue("HeaderRowCount",1); 458 459 //save and reload text document 460 XStorable xStorable = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument); 461 PropertyValue[] aStoreProperties = new PropertyValue[2]; 462 aStoreProperties[0] = new PropertyValue(); 463 aStoreProperties[1] = new PropertyValue(); 464 aStoreProperties[0].Name = "Override"; 465 aStoreProperties[0].Value = true; 466 aStoreProperties[1].Name = "FilterName"; 467 aStoreProperties[1].Value = "StarOffice XML (Writer)"; 468 xStorable.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties); 469 app.closeDocument(xTextDocument); 470 471 //reopen the document and assert table repeat heading setting 472 XTextDocument assertDocument=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt"))); 473 XTextTablesSupplier xTablesSupplier = (XTextTablesSupplier) UnoRuntime.queryInterface(XTextTablesSupplier.class, assertDocument ); 474 XIndexAccess xIndexedTables = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xTablesSupplier.getTextTables()); 475 Object xTable_obj=xIndexedTables.getByIndex(0); 476 XTextTable xTable_Assert=(XTextTable) UnoRuntime.queryInterface(XTextTable.class, xTable_obj); 477 XPropertySet xTableProps_assert = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTable_Assert); 478 assertEquals("verify table heading row number",1,xTableProps_assert.getPropertyValue("HeaderRowCount")); 479 assertEquals("verify table heading repeat",true,xTableProps_assert.getPropertyValue("RepeatHeadline")); 480 } 481 /* 482 * test table shadow setting 483 * 1.new a text document 484 * 2.create 5 tables 485 * 3.set the 5 table shadow location to bottom_right,bottom_left,none,top_left,top_right,and shadow width 486 * 4.save to odt and close it,then reopen the new saved document 487 * 5.check the 5 table shadow location and width 488 */ 489 @Test 490 public void testSetTableShadow() throws Exception { 491 xTextDocument =(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter")); 492 xText=xTextDocument.getText(); 493 XTextCursor xTextCursor = xText.createTextCursor(); 494 // get internal service factory of the document 495 xWriterFactory =(XMultiServiceFactory)UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument); 496 // Create new table from the document's factory 497 XTextTable xTable1 = (XTextTable)UnoRuntime.queryInterface(XTextTable.class, xWriterFactory.createInstance("com.sun.star.text.TextTable")); 498 xText.insertTextContent(xTextCursor,xTable1,false); 499 XPropertySet xTableProps1 = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xTable1); 500 XTextTable xTable2 = (XTextTable)UnoRuntime.queryInterface(XTextTable.class, xWriterFactory.createInstance("com.sun.star.text.TextTable")); 501 xText.insertTextContent(xTextCursor,xTable2,false); 502 XPropertySet xTableProps2 = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xTable2); 503 XTextTable xTable3 = (XTextTable)UnoRuntime.queryInterface(XTextTable.class, xWriterFactory.createInstance("com.sun.star.text.TextTable")); 504 xText.insertTextContent(xTextCursor,xTable3,false); 505 XPropertySet xTableProps3 = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xTable3); 506 XTextTable xTable4 = (XTextTable)UnoRuntime.queryInterface(XTextTable.class, xWriterFactory.createInstance("com.sun.star.text.TextTable")); 507 xText.insertTextContent(xTextCursor,xTable4,false); 508 XPropertySet xTableProps4 = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xTable4); 509 XTextTable xTable5 = (XTextTable)UnoRuntime.queryInterface(XTextTable.class, xWriterFactory.createInstance("com.sun.star.text.TextTable")); 510 xText.insertTextContent(xTextCursor,xTable5,false); 511 XPropertySet xTableProps5 = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xTable5); 512 //set table shadow 513 ShadowFormat[] shadowFormat=new ShadowFormat[] {new ShadowFormat(),new ShadowFormat(),new ShadowFormat(),new ShadowFormat(),new ShadowFormat()}; 514 shadowFormat[0].Location=ShadowLocation.BOTTOM_RIGHT; 515 shadowFormat[0].ShadowWidth=100; 516 shadowFormat[0].Color=0x00FF00FF; 517 shadowFormat[1].Location=ShadowLocation.BOTTOM_LEFT; 518 shadowFormat[1].ShadowWidth=100; 519 shadowFormat[1].Color=0x00FF00FF; 520 shadowFormat[2].Location=ShadowLocation.NONE; 521 shadowFormat[3].Location=ShadowLocation.TOP_LEFT; 522 shadowFormat[3].ShadowWidth=100; 523 shadowFormat[3].Color=0x00FF00FF; 524 shadowFormat[4].Location=ShadowLocation.TOP_RIGHT; 525 shadowFormat[4].ShadowWidth=100; 526 shadowFormat[4].Color=0x00FF00FF; 527 xTableProps1.setPropertyValue("ShadowFormat",shadowFormat[0]); 528 xTableProps2.setPropertyValue("ShadowFormat",shadowFormat[1]); 529 xTableProps3.setPropertyValue("ShadowFormat",shadowFormat[2]); 530 xTableProps4.setPropertyValue("ShadowFormat",shadowFormat[3]); 531 xTableProps5.setPropertyValue("ShadowFormat",shadowFormat[4]); 532 533 //save and reload text document 534 XStorable xStorable = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument); 535 PropertyValue[] aStoreProperties = new PropertyValue[2]; 536 aStoreProperties[0] = new PropertyValue(); 537 aStoreProperties[1] = new PropertyValue(); 538 aStoreProperties[0].Name = "Override"; 539 aStoreProperties[0].Value = true; 540 aStoreProperties[1].Name = "FilterName"; 541 aStoreProperties[1].Value = "StarOffice XML (Writer)"; 542 xStorable.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties); 543 app.closeDocument(xTextDocument); 544 545 //reopen the document and assert table shadow setting 546 XTextDocument assertDocument=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt"))); 547 XTextTablesSupplier xTablesSupplier = (XTextTablesSupplier) UnoRuntime.queryInterface(XTextTablesSupplier.class, assertDocument ); 548 XIndexAccess xIndexedTables = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xTablesSupplier.getTextTables()); 549 Object xTable_obj1=xIndexedTables.getByIndex(0); 550 XTextTable xTable_Assert1=(XTextTable) UnoRuntime.queryInterface(XTextTable.class, xTable_obj1); 551 XPropertySet xTableProps_assert1 = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTable_Assert1); 552 ShadowFormat shadowFormat_Assert1=(ShadowFormat) UnoRuntime.queryInterface(ShadowFormat.class, xTableProps_assert1.getPropertyValue("ShadowFormat")); 553 assertEquals("assert shadow location",ShadowLocation.BOTTOM_RIGHT,shadowFormat_Assert1.Location); 554 assertEquals("assert shadow width",100,shadowFormat_Assert1.ShadowWidth); 555 assertEquals("assert shadow color",0x00FF00FF,shadowFormat_Assert1.Color); 556 557 Object xTable_obj2=xIndexedTables.getByIndex(1); 558 XTextTable xTable_Assert2=(XTextTable) UnoRuntime.queryInterface(XTextTable.class, xTable_obj2); 559 XPropertySet xTableProps_assert2 = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTable_Assert2); 560 ShadowFormat shadowFormat_Assert2=(ShadowFormat) UnoRuntime.queryInterface(ShadowFormat.class, xTableProps_assert2.getPropertyValue("ShadowFormat")); 561 assertEquals("assert shadow location",ShadowLocation.BOTTOM_LEFT,shadowFormat_Assert2.Location); 562 assertEquals("assert shadow width",100,shadowFormat_Assert2.ShadowWidth); 563 assertEquals("assert shadow color",0x00FF00FF,shadowFormat_Assert2.Color); 564 565 Object xTable_obj3=xIndexedTables.getByIndex(2); 566 XTextTable xTable_Assert3=(XTextTable) UnoRuntime.queryInterface(XTextTable.class, xTable_obj3); 567 XPropertySet xTableProps_assert3 = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTable_Assert3); 568 ShadowFormat shadowFormat_Assert3=(ShadowFormat) UnoRuntime.queryInterface(ShadowFormat.class, xTableProps_assert3.getPropertyValue("ShadowFormat")); 569 assertEquals("assert shadow location",ShadowLocation.NONE,shadowFormat_Assert3.Location); 570 571 Object xTable_obj4=xIndexedTables.getByIndex(3); 572 XTextTable xTable_Assert4=(XTextTable) UnoRuntime.queryInterface(XTextTable.class, xTable_obj4); 573 XPropertySet xTableProps_assert4 = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTable_Assert4); 574 ShadowFormat shadowFormat_Assert4=(ShadowFormat) UnoRuntime.queryInterface(ShadowFormat.class, xTableProps_assert4.getPropertyValue("ShadowFormat")); 575 assertEquals("assert shadow location",ShadowLocation.TOP_LEFT,shadowFormat_Assert4.Location); 576 assertEquals("assert shadow width",100,shadowFormat_Assert4.ShadowWidth); 577 assertEquals("assert shadow color",0x00FF00FF,shadowFormat_Assert4.Color); 578 579 Object xTable_obj5=xIndexedTables.getByIndex(4); 580 XTextTable xTable_Assert5=(XTextTable) UnoRuntime.queryInterface(XTextTable.class, xTable_obj5); 581 XPropertySet xTableProps_assert5 = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTable_Assert5); 582 ShadowFormat shadowFormat_Assert5=(ShadowFormat) UnoRuntime.queryInterface(ShadowFormat.class, xTableProps_assert5.getPropertyValue("ShadowFormat")); 583 assertEquals("assert shadow location",ShadowLocation.TOP_RIGHT,shadowFormat_Assert5.Location); 584 assertEquals("assert shadow width",100,shadowFormat_Assert5.ShadowWidth); 585 assertEquals("assert shadow color",0x00FF00FF,shadowFormat_Assert5.Color); 586 } 587 /* 588 * test set table background with graphic 589 * 1.new a text document and create a table 590 * 2.set table background with a picture 591 * 3.save to odt and closet it,then reopen the new saved document 592 * 4.check the table background 593 */ 594 @Test 595 public void testSetTableBackGraphic() throws Exception { 596 xTextDocument =(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.newDocument("swriter")); 597 xText=xTextDocument.getText(); 598 XTextCursor xTextCursor = xText.createTextCursor(); 599 // get internal service factory of the document 600 xWriterFactory =(XMultiServiceFactory)UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument); 601 // Create a new table from the document's factory 602 XTextTable xTable1 = (XTextTable)UnoRuntime.queryInterface(XTextTable.class, xWriterFactory.createInstance("com.sun.star.text.TextTable")); 603 xText.insertTextContent(xTextCursor,xTable1,false); 604 XPropertySet xTableProps1 = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xTable1); 605 xTableProps1.setPropertyValue("BackGraphicURL",FileUtil.getUrl(Testspace.prepareData("uno/Desert.jpg"))); 606 xTableProps1.setPropertyValue("BackGraphicFilter","draw_jpg_Export"); 607 xTableProps1.setPropertyValue("BackGraphicLocation",com.sun.star.style.GraphicLocation.LEFT_BOTTOM); 608 609 XTextTable xTable2 = (XTextTable)UnoRuntime.queryInterface(XTextTable.class, xWriterFactory.createInstance("com.sun.star.text.TextTable")); 610 xText.insertTextContent(xTextCursor,xTable2,false); 611 XPropertySet xTableProps2 = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xTable2); 612 xTableProps2.setPropertyValue("BackGraphicURL",FileUtil.getUrl(Testspace.prepareData("uno/Desert.jpg"))); 613 xTableProps2.setPropertyValue("BackGraphicFilter","draw_jpg_Export"); 614 xTableProps2.setPropertyValue("BackGraphicLocation",com.sun.star.style.GraphicLocation.LEFT_MIDDLE); 615 616 XTextTable xTable3 = (XTextTable)UnoRuntime.queryInterface(XTextTable.class, xWriterFactory.createInstance("com.sun.star.text.TextTable")); 617 xText.insertTextContent(xTextCursor,xTable3,false); 618 XPropertySet xTableProps3 = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xTable3); 619 xTableProps3.setPropertyValue("BackGraphicURL",FileUtil.getUrl(Testspace.prepareData("uno/Desert.jpg"))); 620 xTableProps3.setPropertyValue("BackGraphicFilter","draw_jpg_Export"); 621 xTableProps3.setPropertyValue("BackGraphicLocation",com.sun.star.style.GraphicLocation.LEFT_TOP); 622 623 XTextTable xTable4 = (XTextTable)UnoRuntime.queryInterface(XTextTable.class, xWriterFactory.createInstance("com.sun.star.text.TextTable")); 624 xText.insertTextContent(xTextCursor,xTable4,false); 625 XPropertySet xTableProps4 = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xTable4); 626 xTableProps4.setPropertyValue("BackGraphicURL",FileUtil.getUrl(Testspace.prepareData("uno/Desert.jpg"))); 627 xTableProps4.setPropertyValue("BackGraphicFilter","draw_jpg_Export"); 628 xTableProps4.setPropertyValue("BackGraphicLocation",com.sun.star.style.GraphicLocation.MIDDLE_BOTTOM); 629 630 XTextTable xTable5 = (XTextTable)UnoRuntime.queryInterface(XTextTable.class, xWriterFactory.createInstance("com.sun.star.text.TextTable")); 631 xText.insertTextContent(xTextCursor,xTable5,false); 632 XPropertySet xTableProps5 = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xTable5); 633 xTableProps5.setPropertyValue("BackGraphicURL",FileUtil.getUrl(Testspace.prepareData("uno/Desert.jpg"))); 634 xTableProps5.setPropertyValue("BackGraphicFilter","draw_jpg_Export"); 635 xTableProps5.setPropertyValue("BackGraphicLocation",com.sun.star.style.GraphicLocation.MIDDLE_MIDDLE); 636 637 XTextTable xTable6 = (XTextTable)UnoRuntime.queryInterface(XTextTable.class, xWriterFactory.createInstance("com.sun.star.text.TextTable")); 638 xText.insertTextContent(xTextCursor,xTable6,false); 639 XPropertySet xTableProps6 = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xTable6); 640 xTableProps6.setPropertyValue("BackGraphicURL",FileUtil.getUrl(Testspace.prepareData("uno/Desert.jpg"))); 641 xTableProps6.setPropertyValue("BackGraphicFilter","draw_jpg_Export"); 642 xTableProps6.setPropertyValue("BackGraphicLocation",com.sun.star.style.GraphicLocation.MIDDLE_TOP); 643 644 XTextTable xTable7 = (XTextTable)UnoRuntime.queryInterface(XTextTable.class, xWriterFactory.createInstance("com.sun.star.text.TextTable")); 645 xText.insertTextContent(xTextCursor,xTable7,false); 646 XPropertySet xTableProps7 = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xTable7); 647 xTableProps7.setPropertyValue("BackGraphicURL",FileUtil.getUrl(Testspace.prepareData("uno/Desert.jpg"))); 648 xTableProps7.setPropertyValue("BackGraphicFilter","draw_jpg_Export"); 649 xTableProps7.setPropertyValue("BackGraphicLocation",com.sun.star.style.GraphicLocation.NONE); 650 651 XTextTable xTable8 = (XTextTable)UnoRuntime.queryInterface(XTextTable.class, xWriterFactory.createInstance("com.sun.star.text.TextTable")); 652 xText.insertTextContent(xTextCursor,xTable8,false); 653 XPropertySet xTableProps8 = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xTable8); 654 xTableProps8.setPropertyValue("BackGraphicURL",FileUtil.getUrl(Testspace.prepareData("uno/Desert.jpg"))); 655 xTableProps8.setPropertyValue("BackGraphicFilter","draw_jpg_Export"); 656 xTableProps8.setPropertyValue("BackGraphicLocation",com.sun.star.style.GraphicLocation.RIGHT_BOTTOM); 657 658 XTextTable xTable9 = (XTextTable)UnoRuntime.queryInterface(XTextTable.class, xWriterFactory.createInstance("com.sun.star.text.TextTable")); 659 xText.insertTextContent(xTextCursor,xTable9,false); 660 XPropertySet xTableProps9 = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xTable9); 661 xTableProps9.setPropertyValue("BackGraphicURL",FileUtil.getUrl(Testspace.prepareData("uno/Desert.jpg"))); 662 xTableProps9.setPropertyValue("BackGraphicFilter","draw_jpg_Export"); 663 xTableProps9.setPropertyValue("BackGraphicLocation",com.sun.star.style.GraphicLocation.RIGHT_MIDDLE); 664 665 XTextTable xTable10 = (XTextTable)UnoRuntime.queryInterface(XTextTable.class, xWriterFactory.createInstance("com.sun.star.text.TextTable")); 666 xText.insertTextContent(xTextCursor,xTable10,false); 667 XPropertySet xTableProps10 = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xTable10); 668 xTableProps10.setPropertyValue("BackGraphicURL",FileUtil.getUrl(Testspace.prepareData("uno/Desert.jpg"))); 669 xTableProps10.setPropertyValue("BackGraphicFilter","draw_jpg_Export"); 670 xTableProps10.setPropertyValue("BackGraphicLocation",com.sun.star.style.GraphicLocation.RIGHT_TOP); 671 672 XTextTable xTable11 = (XTextTable)UnoRuntime.queryInterface(XTextTable.class, xWriterFactory.createInstance("com.sun.star.text.TextTable")); 673 xText.insertTextContent(xTextCursor,xTable11,false); 674 XPropertySet xTableProps11 = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xTable11); 675 xTableProps11.setPropertyValue("BackGraphicURL",FileUtil.getUrl(Testspace.prepareData("uno/Desert.jpg"))); 676 xTableProps11.setPropertyValue("BackGraphicFilter","draw_jpg_Export"); 677 xTableProps11.setPropertyValue("BackGraphicLocation",com.sun.star.style.GraphicLocation.AREA); 678 //save and reload text document 679 XStorable xStorable = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument); 680 PropertyValue[] aStoreProperties = new PropertyValue[2]; 681 aStoreProperties[0] = new PropertyValue(); 682 aStoreProperties[1] = new PropertyValue(); 683 aStoreProperties[0].Name = "Override"; 684 aStoreProperties[0].Value = true; 685 aStoreProperties[1].Name = "FilterName"; 686 aStoreProperties[1].Value = "StarOffice XML (Writer)"; 687 xStorable.storeToURL(FileUtil.getUrl(Testspace.getPath("output/test.odt")), aStoreProperties); 688 app.closeDocument(xTextDocument); 689 690 //reopen the document and assert table margin to page setting 691 XTextDocument assertDocument=(XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, app.loadDocument(Testspace.getPath("output/test.odt"))); 692 XTextTablesSupplier xTablesSupplier = (XTextTablesSupplier) UnoRuntime.queryInterface(XTextTablesSupplier.class, assertDocument ); 693 XIndexAccess xIndexedTables = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xTablesSupplier.getTextTables()); 694 Object xTable_obj1=xIndexedTables.getByIndex(0); 695 XTextTable xTable_Assert1=(XTextTable) UnoRuntime.queryInterface(XTextTable.class, xTable_obj1); 696 XPropertySet xTableProps1_assert = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTable_Assert1); 697 assertEquals("verify table backgraphic location",com.sun.star.style.GraphicLocation.LEFT_BOTTOM,xTableProps1_assert.getPropertyValue("BackGraphicLocation")); 698 assertEquals("verify table backgraphic fileter","draw_jpg_Export",xTableProps1_assert.getPropertyValue("BackGraphicFilter")); 699 assertEquals("verify table backgraphic URL",FileUtil.getUrl(Testspace.prepareData("uno/Desert.jpg")),xTableProps1_assert.getPropertyValue("BackGraphicURL")); 700 701 Object xTable_obj2=xIndexedTables.getByIndex(1); 702 XTextTable xTable_Assert2=(XTextTable) UnoRuntime.queryInterface(XTextTable.class, xTable_obj2); 703 XPropertySet xTableProps2_assert = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTable_Assert2); 704 assertEquals("verify table backgraphic location",com.sun.star.style.GraphicLocation.LEFT_MIDDLE,xTableProps2_assert.getPropertyValue("BackGraphicLocation")); 705 assertEquals("verify table backgraphic fileter","draw_jpg_Export",xTableProps2_assert.getPropertyValue("BackGraphicFilter")); 706 assertEquals("verify table backgraphic URL",FileUtil.getUrl(Testspace.prepareData("uno/Desert.jpg")),xTableProps2_assert.getPropertyValue("BackGraphicURL")); 707 708 Object xTable_obj3=xIndexedTables.getByIndex(2); 709 XTextTable xTable_Assert3=(XTextTable) UnoRuntime.queryInterface(XTextTable.class, xTable_obj3); 710 XPropertySet xTableProps3_assert = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTable_Assert3); 711 assertEquals("verify table backgraphic location",com.sun.star.style.GraphicLocation.LEFT_TOP,xTableProps3_assert.getPropertyValue("BackGraphicLocation")); 712 assertEquals("verify table backgraphic fileter","draw_jpg_Export",xTableProps3_assert.getPropertyValue("BackGraphicFilter")); 713 assertEquals("verify table backgraphic URL",FileUtil.getUrl(Testspace.prepareData("uno/Desert.jpg")),xTableProps3_assert.getPropertyValue("BackGraphicURL")); 714 715 Object xTable_obj4=xIndexedTables.getByIndex(3); 716 XTextTable xTable_Assert4=(XTextTable) UnoRuntime.queryInterface(XTextTable.class, xTable_obj4); 717 XPropertySet xTableProps4_assert = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTable_Assert4); 718 assertEquals("verify table backgraphic location",com.sun.star.style.GraphicLocation.MIDDLE_BOTTOM,xTableProps4_assert.getPropertyValue("BackGraphicLocation")); 719 assertEquals("verify table backgraphic fileter","draw_jpg_Export",xTableProps4_assert.getPropertyValue("BackGraphicFilter")); 720 assertEquals("verify table backgraphic URL",FileUtil.getUrl(Testspace.prepareData("uno/Desert.jpg")),xTableProps4_assert.getPropertyValue("BackGraphicURL")); 721 722 Object xTable_obj5=xIndexedTables.getByIndex(4); 723 XTextTable xTable_Assert5=(XTextTable) UnoRuntime.queryInterface(XTextTable.class, xTable_obj5); 724 XPropertySet xTableProps5_assert = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTable_Assert5); 725 assertEquals("verify table backgraphic location",com.sun.star.style.GraphicLocation.MIDDLE_MIDDLE,xTableProps5_assert.getPropertyValue("BackGraphicLocation")); 726 assertEquals("verify table backgraphic fileter","draw_jpg_Export",xTableProps5_assert.getPropertyValue("BackGraphicFilter")); 727 assertEquals("verify table backgraphic URL",FileUtil.getUrl(Testspace.prepareData("uno/Desert.jpg")),xTableProps5_assert.getPropertyValue("BackGraphicURL")); 728 729 Object xTable_obj6=xIndexedTables.getByIndex(5); 730 XTextTable xTable_Assert6=(XTextTable) UnoRuntime.queryInterface(XTextTable.class, xTable_obj6); 731 XPropertySet xTableProps6_assert = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTable_Assert6); 732 assertEquals("verify table backgraphic location",com.sun.star.style.GraphicLocation.MIDDLE_TOP,xTableProps6_assert.getPropertyValue("BackGraphicLocation")); 733 assertEquals("verify table backgraphic fileter","draw_jpg_Export",xTableProps6_assert.getPropertyValue("BackGraphicFilter")); 734 assertEquals("verify table backgraphic URL",FileUtil.getUrl(Testspace.prepareData("uno/Desert.jpg")),xTableProps6_assert.getPropertyValue("BackGraphicURL")); 735 736 Object xTable_obj7=xIndexedTables.getByIndex(6); 737 XTextTable xTable_Assert7=(XTextTable) UnoRuntime.queryInterface(XTextTable.class, xTable_obj7); 738 XPropertySet xTableProps7_assert = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTable_Assert7); 739 assertEquals("verify table backgraphic location is title",com.sun.star.style.GraphicLocation.NONE,xTableProps7_assert.getPropertyValue("BackGraphicLocation")); 740 741 Object xTable_obj8=xIndexedTables.getByIndex(7); 742 XTextTable xTable_Assert8=(XTextTable) UnoRuntime.queryInterface(XTextTable.class, xTable_obj8); 743 XPropertySet xTableProps8_assert = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTable_Assert8); 744 assertEquals("verify table backgraphic location",com.sun.star.style.GraphicLocation.RIGHT_BOTTOM,xTableProps8_assert.getPropertyValue("BackGraphicLocation")); 745 assertEquals("verify table backgraphic fileter","draw_jpg_Export",xTableProps8_assert.getPropertyValue("BackGraphicFilter")); 746 assertEquals("verify table backgraphic URL",FileUtil.getUrl(Testspace.prepareData("uno/Desert.jpg")),xTableProps8_assert.getPropertyValue("BackGraphicURL")); 747 748 Object xTable_obj9=xIndexedTables.getByIndex(8); 749 XTextTable xTable_Assert9=(XTextTable) UnoRuntime.queryInterface(XTextTable.class, xTable_obj9); 750 XPropertySet xTableProps9_assert = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTable_Assert9); 751 assertEquals("verify table backgraphic location",com.sun.star.style.GraphicLocation.RIGHT_MIDDLE,xTableProps9_assert.getPropertyValue("BackGraphicLocation")); 752 assertEquals("verify table backgraphic fileter","draw_jpg_Export",xTableProps9_assert.getPropertyValue("BackGraphicFilter")); 753 assertEquals("verify table backgraphic URL",FileUtil.getUrl(Testspace.prepareData("uno/Desert.jpg")),xTableProps9_assert.getPropertyValue("BackGraphicURL")); 754 755 Object xTable_obj10=xIndexedTables.getByIndex(9); 756 XTextTable xTable_Assert10=(XTextTable) UnoRuntime.queryInterface(XTextTable.class, xTable_obj10); 757 XPropertySet xTableProps10_assert = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTable_Assert10); 758 assertEquals("verify table backgraphic location",com.sun.star.style.GraphicLocation.RIGHT_TOP,xTableProps10_assert.getPropertyValue("BackGraphicLocation")); 759 assertEquals("verify table backgraphic fileter","draw_jpg_Export",xTableProps10_assert.getPropertyValue("BackGraphicFilter")); 760 assertEquals("verify table backgraphic URL",FileUtil.getUrl(Testspace.prepareData("uno/Desert.jpg")),xTableProps10_assert.getPropertyValue("BackGraphicURL")); 761 762 Object xTable_obj11=xIndexedTables.getByIndex(10); 763 XTextTable xTable_Assert11=(XTextTable) UnoRuntime.queryInterface(XTextTable.class, xTable_obj11); 764 XPropertySet xTableProps11_assert = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTable_Assert11); 765 assertEquals("verify table backgraphic location",com.sun.star.style.GraphicLocation.AREA,xTableProps11_assert.getPropertyValue("BackGraphicLocation")); 766 assertEquals("verify table backgraphic fileter","draw_jpg_Export",xTableProps11_assert.getPropertyValue("BackGraphicFilter")); 767 assertEquals("verify table backgraphic URL",FileUtil.getUrl(Testspace.prepareData("uno/Desert.jpg")),xTableProps11_assert.getPropertyValue("BackGraphicURL")); 768 } 769 } 770 771