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