1*c767ce6aSmseidel /************************************************************** 2*c767ce6aSmseidel * 3*c767ce6aSmseidel * Licensed to the Apache Software Foundation (ASF) under one 4*c767ce6aSmseidel * or more contributor license agreements. See the NOTICE file 5*c767ce6aSmseidel * distributed with this work for additional information 6*c767ce6aSmseidel * regarding copyright ownership. The ASF licenses this file 7*c767ce6aSmseidel * to you under the Apache License, Version 2.0 (the 8*c767ce6aSmseidel * "License"); you may not use this file except in compliance 9*c767ce6aSmseidel * with the License. You may obtain a copy of the License at 10*c767ce6aSmseidel * 11*c767ce6aSmseidel * http://www.apache.org/licenses/LICENSE-2.0 12*c767ce6aSmseidel * 13*c767ce6aSmseidel * Unless required by applicable law or agreed to in writing, 14*c767ce6aSmseidel * software distributed under the License is distributed on an 15*c767ce6aSmseidel * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*c767ce6aSmseidel * KIND, either express or implied. See the License for the 17*c767ce6aSmseidel * specific language governing permissions and limitations 18*c767ce6aSmseidel * under the License. 19*c767ce6aSmseidel * 20*c767ce6aSmseidel *************************************************************/ 21*c767ce6aSmseidel 22*c767ce6aSmseidel package fvt.gui.sw.table; 23*c767ce6aSmseidel 24*c767ce6aSmseidel import static org.junit.Assert.*; 25*c767ce6aSmseidel import static org.openoffice.test.vcl.Tester.*; 26*c767ce6aSmseidel import static testlib.gui.AppTool.*; 27*c767ce6aSmseidel import static testlib.gui.UIMap.*; 28*c767ce6aSmseidel 29*c767ce6aSmseidel import org.junit.After; 30*c767ce6aSmseidel import org.junit.Before; 31*c767ce6aSmseidel import org.junit.Ignore; 32*c767ce6aSmseidel import org.junit.Rule; 33*c767ce6aSmseidel import org.junit.Test; 34*c767ce6aSmseidel import org.openoffice.test.common.Logger; 35*c767ce6aSmseidel import org.openoffice.test.common.SystemUtil; 36*c767ce6aSmseidel 37*c767ce6aSmseidel import testlib.gui.AppTool; 38*c767ce6aSmseidel 39*c767ce6aSmseidel public class TableGeneral { 40*c767ce6aSmseidel 41*c767ce6aSmseidel @Rule 42*c767ce6aSmseidel public Logger log = Logger.getLogger(this); 43*c767ce6aSmseidel 44*c767ce6aSmseidel @Before 45*c767ce6aSmseidel public void setUp() throws Exception { 46*c767ce6aSmseidel // Start OpenOffice 47*c767ce6aSmseidel app.start(); 48*c767ce6aSmseidel 49*c767ce6aSmseidel AppTool.newTextDocument(); 50*c767ce6aSmseidel // Insert a table 51*c767ce6aSmseidel app.dispatch(".uno:InsertTable"); 52*c767ce6aSmseidel } 53*c767ce6aSmseidel 54*c767ce6aSmseidel @After 55*c767ce6aSmseidel public void tearDown() throws Exception { 56*c767ce6aSmseidel app.stop(); 57*c767ce6aSmseidel } 58*c767ce6aSmseidel 59*c767ce6aSmseidel /** 60*c767ce6aSmseidel * Test setting table size in text document 61*c767ce6aSmseidel * 62*c767ce6aSmseidel * @throws Exception 63*c767ce6aSmseidel */ 64*c767ce6aSmseidel @Test 65*c767ce6aSmseidel public void testTableSize() throws Exception { 66*c767ce6aSmseidel 67*c767ce6aSmseidel swTableSizeColBox.focus(); 68*c767ce6aSmseidel typeKeys("<delete>"); 69*c767ce6aSmseidel typeKeys("3"); 70*c767ce6aSmseidel swTableSizeRowBox.focus(); 71*c767ce6aSmseidel typeKeys("<delete>"); 72*c767ce6aSmseidel typeKeys("4"); 73*c767ce6aSmseidel writerInsertTable.ok(); 74*c767ce6aSmseidel 75*c767ce6aSmseidel writer.focus(); 76*c767ce6aSmseidel // verify the rows in the table 77*c767ce6aSmseidel assertNotNull(statusBar.getItemTextById(8)); 78*c767ce6aSmseidel for (int i = 0; i < 3; i++) { 79*c767ce6aSmseidel typeKeys("<down>"); 80*c767ce6aSmseidel assertNotNull(statusBar.getItemTextById(8)); 81*c767ce6aSmseidel } 82*c767ce6aSmseidel typeKeys("<down>"); 83*c767ce6aSmseidel sleep(1); 84*c767ce6aSmseidel assertFalse(tableToolbar.exists()); 85*c767ce6aSmseidel } 86*c767ce6aSmseidel 87*c767ce6aSmseidel /** 88*c767ce6aSmseidel * Test setting table cell background in text document 89*c767ce6aSmseidel * 90*c767ce6aSmseidel * @throws Exception 91*c767ce6aSmseidel */ 92*c767ce6aSmseidel @Test 93*c767ce6aSmseidel @Ignore("Bug #120378- the table cell fill color change when copy one table cell in word processor to presentation") 94*c767ce6aSmseidel public void testTableBackground() throws Exception { 95*c767ce6aSmseidel writerInsertTable.ok(); 96*c767ce6aSmseidel assertNotNull(statusBar.getItemTextById(8)); 97*c767ce6aSmseidel writer.focus(); 98*c767ce6aSmseidel // set table cell background 99*c767ce6aSmseidel app.dispatch(".uno:TableDialog"); 100*c767ce6aSmseidel swTableBackground.select(); 101*c767ce6aSmseidel assertTrue("Table background property dialog pop up", 102*c767ce6aSmseidel swTableBackground.exists()); 103*c767ce6aSmseidel swTableBackgroundColor.focus(); 104*c767ce6aSmseidel swTableBackgroundColor.click(50, 50); 105*c767ce6aSmseidel swTableBackground.ok(); 106*c767ce6aSmseidel // verify table cell background color 107*c767ce6aSmseidel writer.focus(); 108*c767ce6aSmseidel // select the cell which is filled with color 109*c767ce6aSmseidel app.dispatch(".uno:EntireCell"); 110*c767ce6aSmseidel 111*c767ce6aSmseidel typeKeys("<ctrl c>"); 112*c767ce6aSmseidel AppTool.newPresentation(); 113*c767ce6aSmseidel typeKeys("<ctrl v>"); 114*c767ce6aSmseidel // enable table cell area format dialog 115*c767ce6aSmseidel app.dispatch(".uno:FormatArea"); 116*c767ce6aSmseidel sleep(1); 117*c767ce6aSmseidel assertEquals("Light red", sdTableBACGColorListbox.getSelText()); 118*c767ce6aSmseidel // close table cell area format dialog 119*c767ce6aSmseidel sdTableBACGColorArea.cancel(); 120*c767ce6aSmseidel } 121*c767ce6aSmseidel 122*c767ce6aSmseidel /** 123*c767ce6aSmseidel * Test setting table border in text document 124*c767ce6aSmseidel * 125*c767ce6aSmseidel * @throws Exception 126*c767ce6aSmseidel */ 127*c767ce6aSmseidel @Test 128*c767ce6aSmseidel public void testTableBorder() throws Exception { 129*c767ce6aSmseidel writerInsertTable.ok(); 130*c767ce6aSmseidel assertNotNull(statusBar.getItemTextById(8)); 131*c767ce6aSmseidel // set table border as none 132*c767ce6aSmseidel writer.focus(); 133*c767ce6aSmseidel app.dispatch(".uno:TableDialog"); 134*c767ce6aSmseidel swTableBorder.select(); 135*c767ce6aSmseidel assertTrue("Table border property dialog pop up", 136*c767ce6aSmseidel swTableBorder.exists()); 137*c767ce6aSmseidel swTableBorderLineArrange.click(10, 10); 138*c767ce6aSmseidel swTableBorder.ok(); 139*c767ce6aSmseidel } 140*c767ce6aSmseidel 141*c767ce6aSmseidel /** 142*c767ce6aSmseidel * Test setting table border line style,line color,spacing to content in 143*c767ce6aSmseidel * text document 144*c767ce6aSmseidel * 145*c767ce6aSmseidel * @throws Exception 146*c767ce6aSmseidel */ 147*c767ce6aSmseidel @Test 148*c767ce6aSmseidel public void testTableBorderLineStyle() throws Exception { 149*c767ce6aSmseidel writerInsertTable.ok(); 150*c767ce6aSmseidel assertNotNull(statusBar.getItemTextById(8)); 151*c767ce6aSmseidel writer.focus(); 152*c767ce6aSmseidel app.dispatch(".uno:TableDialog"); 153*c767ce6aSmseidel swTableBorder.select(); 154*c767ce6aSmseidel assertTrue("Table border property dialog pop up", 155*c767ce6aSmseidel swTableBorder.exists()); 156*c767ce6aSmseidel // set line style 157*c767ce6aSmseidel swTableBorderLineStyle.select(8); 158*c767ce6aSmseidel // set line color 159*c767ce6aSmseidel final int nMagentaIndex = 16; // for AOO's colorpicker as of #i118828# 160*c767ce6aSmseidel swTableBorderLineColor.select( nMagentaIndex); 161*c767ce6aSmseidel // set spacing to content 162*c767ce6aSmseidel swTableSTCLeft.focus(); 163*c767ce6aSmseidel typeKeys("<ctrl a>"); 164*c767ce6aSmseidel typeKeys("<delete>"); 165*c767ce6aSmseidel // set spacing to content 166*c767ce6aSmseidel typeKeys("0.5"); 167*c767ce6aSmseidel // set table shadow 168*c767ce6aSmseidel swTableShadow.click(40, 10); 169*c767ce6aSmseidel swTableShadowSize.focus(); 170*c767ce6aSmseidel typeKeys("<ctrl a>"); 171*c767ce6aSmseidel typeKeys("<delete>"); 172*c767ce6aSmseidel typeKeys("2"); 173*c767ce6aSmseidel swTableShadowColor.select( nMagentaIndex); 174*c767ce6aSmseidel swTableBorder.ok(); 175*c767ce6aSmseidel // verify the setting property of table 176*c767ce6aSmseidel writer.focus(); 177*c767ce6aSmseidel app.dispatch(".uno:TableDialog"); 178*c767ce6aSmseidel swTableBorder.select(); 179*c767ce6aSmseidel assertEquals("2.60 pt", swTableBorderLineStyle.getItemText(8)); 180*c767ce6aSmseidel assertEquals("Magenta", swTableBorderLineColor.getItemText( nMagentaIndex)); 181*c767ce6aSmseidel assertEquals("0.50 \"", swTableSTCLeft.getText()); 182*c767ce6aSmseidel assertEquals("0.50 \"", swTableSTCRight.getText()); 183*c767ce6aSmseidel assertEquals("0.50 \"", swTableSTCTop.getText()); 184*c767ce6aSmseidel assertEquals("0.50 \"", swTableSTCBottom.getText()); 185*c767ce6aSmseidel assertEquals("1.97 \"", swTableShadowSize.getText()); 186*c767ce6aSmseidel assertEquals("Magenta", swTableShadowColor.getItemText( nMagentaIndex)); 187*c767ce6aSmseidel assertTrue("SWTableSTC_SYNC", swTableSTCSYNC.isChecked()); 188*c767ce6aSmseidel swTableBorder.close(); 189*c767ce6aSmseidel 190*c767ce6aSmseidel // uncheck Synchronize box and set spacing to content 191*c767ce6aSmseidel writer.focus(); 192*c767ce6aSmseidel app.dispatch(".uno:TableDialog"); 193*c767ce6aSmseidel swTableBorder.select(); 194*c767ce6aSmseidel swTableSTCSYNC.uncheck(); 195*c767ce6aSmseidel // set left spacing to content 196*c767ce6aSmseidel swTableSTCLeft.focus(); 197*c767ce6aSmseidel typeKeys("<ctrl a>"); 198*c767ce6aSmseidel typeKeys("<delete>"); 199*c767ce6aSmseidel typeKeys("0.5"); 200*c767ce6aSmseidel // set right spacing to content 201*c767ce6aSmseidel swTableSTCRight.focus(); 202*c767ce6aSmseidel typeKeys("<ctrl a>"); 203*c767ce6aSmseidel typeKeys("<delete>"); 204*c767ce6aSmseidel typeKeys("0.8"); 205*c767ce6aSmseidel // set top spacing to content 206*c767ce6aSmseidel swTableSTCTop.focus(); 207*c767ce6aSmseidel typeKeys("<ctrl a>"); 208*c767ce6aSmseidel typeKeys("<delete>"); 209*c767ce6aSmseidel typeKeys("1.0"); 210*c767ce6aSmseidel // set bottom spacing to content 211*c767ce6aSmseidel swTableSTCBottom.focus(); 212*c767ce6aSmseidel typeKeys("<ctrl a>"); 213*c767ce6aSmseidel typeKeys("<delete>"); 214*c767ce6aSmseidel typeKeys("2"); 215*c767ce6aSmseidel swTableBorder.ok(); 216*c767ce6aSmseidel assertNotNull(statusBar.getItemTextById(8)); 217*c767ce6aSmseidel 218*c767ce6aSmseidel writer.focus(); 219*c767ce6aSmseidel // verify the setting value of spacing to content for table 220*c767ce6aSmseidel app.dispatch(".uno:TableDialog"); 221*c767ce6aSmseidel swTableBorder.select(); 222*c767ce6aSmseidel assertEquals("0.50 \"", swTableSTCLeft.getText()); 223*c767ce6aSmseidel assertEquals("0.80 \"", swTableSTCRight.getText()); 224*c767ce6aSmseidel assertEquals("1.00 \"", swTableSTCTop.getText()); 225*c767ce6aSmseidel assertEquals("1.97 \"", swTableSTCBottom.getText()); 226*c767ce6aSmseidel assertFalse("SWTableSTC_SYNC", swTableSTCSYNC.isChecked()); 227*c767ce6aSmseidel swTableBorder.close(); 228*c767ce6aSmseidel } 229*c767ce6aSmseidel 230*c767ce6aSmseidel /** 231*c767ce6aSmseidel * create table with auto format 232*c767ce6aSmseidel * 233*c767ce6aSmseidel * @throws Exception 234*c767ce6aSmseidel */ 235*c767ce6aSmseidel @Test 236*c767ce6aSmseidel public void testTableAutoFormat() throws Exception { 237*c767ce6aSmseidel // create table with auto format 238*c767ce6aSmseidel button("sw:PushButton:DLG_INSERT_TABLE:BT_AUTOFORMAT").click(); 239*c767ce6aSmseidel assertTrue("Table auto format dialog pop up", swTableAutoFMT.exists()); 240*c767ce6aSmseidel swTableAutoFormatListbox.select(3); 241*c767ce6aSmseidel swTableAutoFMT.ok(); 242*c767ce6aSmseidel // verify the auto format is that just selected 243*c767ce6aSmseidel button("sw:PushButton:DLG_INSERT_TABLE:BT_AUTOFORMAT").click(); 244*c767ce6aSmseidel assertEquals("Blue", swTableAutoFormatListbox.getSelText()); 245*c767ce6aSmseidel swTableAutoFMT.close(); 246*c767ce6aSmseidel writerInsertTable.ok(); 247*c767ce6aSmseidel assertNotNull(statusBar.getItemTextById(8)); 248*c767ce6aSmseidel 249*c767ce6aSmseidel } 250*c767ce6aSmseidel 251*c767ce6aSmseidel /** 252*c767ce6aSmseidel * set row height and select row,insert/delete row 253*c767ce6aSmseidel * 254*c767ce6aSmseidel * @throws Exception 255*c767ce6aSmseidel */ 256*c767ce6aSmseidel @Test 257*c767ce6aSmseidel public void testTableRowHeight() throws Exception { 258*c767ce6aSmseidel writerInsertTable.ok(); 259*c767ce6aSmseidel assertNotNull(statusBar.getItemTextById(8)); 260*c767ce6aSmseidel 261*c767ce6aSmseidel // set row height 262*c767ce6aSmseidel writer.focus(); 263*c767ce6aSmseidel writer.openContextMenu(); 264*c767ce6aSmseidel swTableRowHeightMenu.select(); 265*c767ce6aSmseidel assertTrue(swTableSetRowHeightDialog.exists()); 266*c767ce6aSmseidel swTableSetRowHeight.focus(); 267*c767ce6aSmseidel typeKeys("<ctrl a>"); 268*c767ce6aSmseidel typeKeys("<delete>"); 269*c767ce6aSmseidel typeKeys("0.5"); 270*c767ce6aSmseidel swTableSetRowHeightDialog.ok(); 271*c767ce6aSmseidel 272*c767ce6aSmseidel // verify row height 273*c767ce6aSmseidel writer.focus(); 274*c767ce6aSmseidel writer.openContextMenu(); 275*c767ce6aSmseidel swTableRowHeightMenu.select(); 276*c767ce6aSmseidel assertTrue(swTableSetRowHeightDialog.exists()); 277*c767ce6aSmseidel assertEquals("0.50 \"", swTableSetRowHeight.getText()); 278*c767ce6aSmseidel swTableSetRowHeightDialog.close(); 279*c767ce6aSmseidel } 280*c767ce6aSmseidel 281*c767ce6aSmseidel /** 282*c767ce6aSmseidel * test select row 283*c767ce6aSmseidel * 284*c767ce6aSmseidel * @throws Exception 285*c767ce6aSmseidel */ 286*c767ce6aSmseidel @Test 287*c767ce6aSmseidel public void testTableSelectRow() throws Exception { 288*c767ce6aSmseidel writerInsertTable.ok(); 289*c767ce6aSmseidel assertNotNull(statusBar.getItemTextById(8)); 290*c767ce6aSmseidel // select row 291*c767ce6aSmseidel writer.focus(); 292*c767ce6aSmseidel writer.openContextMenu(); 293*c767ce6aSmseidel swTableSelectRowMenu.select(); 294*c767ce6aSmseidel 295*c767ce6aSmseidel // verify select one row successfully 296*c767ce6aSmseidel typeKeys("<ctrl c>"); 297*c767ce6aSmseidel typeKeys("<down>"); 298*c767ce6aSmseidel typeKeys("<down>"); 299*c767ce6aSmseidel typeKeys("<enter>"); 300*c767ce6aSmseidel typeKeys("<ctrl v>"); 301*c767ce6aSmseidel typeKeys("<up>"); 302*c767ce6aSmseidel assertTrue(tableToolbar.exists()); 303*c767ce6aSmseidel 304*c767ce6aSmseidel } 305*c767ce6aSmseidel 306*c767ce6aSmseidel /** 307*c767ce6aSmseidel * insert row and verify how many row inserted 308*c767ce6aSmseidel * 309*c767ce6aSmseidel * @throws Exception 310*c767ce6aSmseidel */ 311*c767ce6aSmseidel @Test 312*c767ce6aSmseidel public void testTableInsertRow() throws Exception { 313*c767ce6aSmseidel writerInsertTable.ok(); 314*c767ce6aSmseidel assertNotNull(statusBar.getItemTextById(8)); 315*c767ce6aSmseidel writer.focus(); 316*c767ce6aSmseidel writer.openContextMenu(); 317*c767ce6aSmseidel swTableInsertRowMenu.select(); 318*c767ce6aSmseidel assertTrue("SWTable_InsertRow Dialog pop up", swTableInsertRow.exists()); 319*c767ce6aSmseidel swTableInsertRowColumnSetNumber.focus(); 320*c767ce6aSmseidel typeKeys("<ctrl a>"); 321*c767ce6aSmseidel typeKeys("<delete>"); 322*c767ce6aSmseidel typeKeys("3"); 323*c767ce6aSmseidel swTableInsertRow.ok(); 324*c767ce6aSmseidel 325*c767ce6aSmseidel writer.focus(); 326*c767ce6aSmseidel // verify how many rows in the table 327*c767ce6aSmseidel assertNotNull(statusBar.getItemTextById(8)); 328*c767ce6aSmseidel for (int i = 0; i < 4; i++) { 329*c767ce6aSmseidel typeKeys("<down>"); 330*c767ce6aSmseidel assertNotNull(statusBar.getItemTextById(8)); 331*c767ce6aSmseidel } 332*c767ce6aSmseidel typeKeys("<down>"); 333*c767ce6aSmseidel sleep(1); 334*c767ce6aSmseidel assertFalse(tableToolbar.exists()); 335*c767ce6aSmseidel } 336*c767ce6aSmseidel 337*c767ce6aSmseidel /** 338*c767ce6aSmseidel * delete row and verify row 339*c767ce6aSmseidel * 340*c767ce6aSmseidel * @throws Exception 341*c767ce6aSmseidel */ 342*c767ce6aSmseidel @Test 343*c767ce6aSmseidel public void testTableRowDelete() throws Exception { 344*c767ce6aSmseidel writerInsertTable.ok(); 345*c767ce6aSmseidel assertNotNull(statusBar.getItemTextById(8)); 346*c767ce6aSmseidel // delete row 347*c767ce6aSmseidel writer.focus(); 348*c767ce6aSmseidel writer.openContextMenu(); 349*c767ce6aSmseidel swTableRowDleteMenu.select(); 350*c767ce6aSmseidel // verify whether delete row 351*c767ce6aSmseidel writer.focus(); 352*c767ce6aSmseidel assertNotNull(statusBar.getItemTextById(8)); 353*c767ce6aSmseidel typeKeys("<down>"); 354*c767ce6aSmseidel sleep(1); 355*c767ce6aSmseidel assertFalse(tableToolbar.exists()); 356*c767ce6aSmseidel 357*c767ce6aSmseidel } 358*c767ce6aSmseidel 359*c767ce6aSmseidel /** 360*c767ce6aSmseidel * set column width and verify 361*c767ce6aSmseidel * 362*c767ce6aSmseidel * @throws Exception 363*c767ce6aSmseidel */ 364*c767ce6aSmseidel @Test 365*c767ce6aSmseidel public void testTableColumnWidth() throws Exception { 366*c767ce6aSmseidel writerInsertTable.ok(); 367*c767ce6aSmseidel assertNotNull(statusBar.getItemTextById(8)); 368*c767ce6aSmseidel // set column width 369*c767ce6aSmseidel writer.focus(); 370*c767ce6aSmseidel writer.openContextMenu(); 371*c767ce6aSmseidel swTableColumnWidthMenu.select(); 372*c767ce6aSmseidel swTableSetColumnWidth.focus(); 373*c767ce6aSmseidel typeKeys("<ctrl a>"); 374*c767ce6aSmseidel typeKeys("<delete>"); 375*c767ce6aSmseidel typeKeys("2"); 376*c767ce6aSmseidel swTableSetColumnDialog.ok(); 377*c767ce6aSmseidel // verify column width 378*c767ce6aSmseidel writer.focus(); 379*c767ce6aSmseidel writer.openContextMenu(); 380*c767ce6aSmseidel swTableColumnWidthMenu.select(); 381*c767ce6aSmseidel assertEquals("2.00 \"", swTableSetColumnWidth.getText()); 382*c767ce6aSmseidel 383*c767ce6aSmseidel } 384*c767ce6aSmseidel 385*c767ce6aSmseidel /** 386*c767ce6aSmseidel * select column and verify 387*c767ce6aSmseidel * 388*c767ce6aSmseidel * @throws Exception 389*c767ce6aSmseidel */ 390*c767ce6aSmseidel @Test 391*c767ce6aSmseidel public void testTableColumnSelect() throws Exception { 392*c767ce6aSmseidel writerInsertTable.ok(); 393*c767ce6aSmseidel assertNotNull(statusBar.getItemTextById(8)); 394*c767ce6aSmseidel writer.focus(); 395*c767ce6aSmseidel writer.openContextMenu(); 396*c767ce6aSmseidel swTableColumnSelectMenu.select(); 397*c767ce6aSmseidel 398*c767ce6aSmseidel // verify select one column 399*c767ce6aSmseidel typeKeys("<ctrl c>"); 400*c767ce6aSmseidel typeKeys("<down>"); 401*c767ce6aSmseidel typeKeys("<down>"); 402*c767ce6aSmseidel typeKeys("<enter>"); 403*c767ce6aSmseidel typeKeys("<ctrl v>"); 404*c767ce6aSmseidel typeKeys("<up>"); 405*c767ce6aSmseidel assertTrue(tableToolbar.exists()); 406*c767ce6aSmseidel 407*c767ce6aSmseidel } 408*c767ce6aSmseidel 409*c767ce6aSmseidel /** 410*c767ce6aSmseidel * insert column and verify 411*c767ce6aSmseidel * 412*c767ce6aSmseidel * @throws Exception 413*c767ce6aSmseidel */ 414*c767ce6aSmseidel @Test 415*c767ce6aSmseidel public void testTableColumnInsert() throws Exception { 416*c767ce6aSmseidel writerInsertTable.ok(); 417*c767ce6aSmseidel assertNotNull(statusBar.getItemTextById(8)); 418*c767ce6aSmseidel // insert column 419*c767ce6aSmseidel writer.focus(); 420*c767ce6aSmseidel writer.openContextMenu(); 421*c767ce6aSmseidel swTableColumnInsertMenu.select(); 422*c767ce6aSmseidel swTableInsertRowColumnSetNumber.focus(); 423*c767ce6aSmseidel typeKeys("<ctrl a>"); 424*c767ce6aSmseidel typeKeys("<delete>"); 425*c767ce6aSmseidel typeKeys("3"); 426*c767ce6aSmseidel swTableInsertColumn.ok(); 427*c767ce6aSmseidel // verify insert column successfully 428*c767ce6aSmseidel writer.focus(); 429*c767ce6aSmseidel assertTrue(tableToolbar.exists()); 430*c767ce6aSmseidel for (int i = 0; i < 9; i++) { 431*c767ce6aSmseidel typeKeys("<right>"); 432*c767ce6aSmseidel sleep(1); 433*c767ce6aSmseidel assertTrue(tableToolbar.exists()); 434*c767ce6aSmseidel } 435*c767ce6aSmseidel typeKeys("<right>"); 436*c767ce6aSmseidel sleep(1); 437*c767ce6aSmseidel assertFalse(tableToolbar.exists()); 438*c767ce6aSmseidel } 439*c767ce6aSmseidel 440*c767ce6aSmseidel /** 441*c767ce6aSmseidel * delete column and verify whether delete or not 442*c767ce6aSmseidel * 443*c767ce6aSmseidel * @throws Exception 444*c767ce6aSmseidel */ 445*c767ce6aSmseidel public void testTableColumnDelete() throws Exception { 446*c767ce6aSmseidel writerInsertTable.ok(); 447*c767ce6aSmseidel assertNotNull(statusBar.getItemTextById(8)); 448*c767ce6aSmseidel // delete column 449*c767ce6aSmseidel writer.focus(); 450*c767ce6aSmseidel writer.openContextMenu(); 451*c767ce6aSmseidel swTableColumnDeleteMenu.select(); 452*c767ce6aSmseidel // verify delete column 453*c767ce6aSmseidel writer.focus(); 454*c767ce6aSmseidel assertTrue(tableToolbar.exists()); 455*c767ce6aSmseidel for (int i = 0; i < 7; i++) { 456*c767ce6aSmseidel typeKeys("<right>"); 457*c767ce6aSmseidel assertTrue(tableToolbar.exists()); 458*c767ce6aSmseidel } 459*c767ce6aSmseidel sleep(1); 460*c767ce6aSmseidel assertFalse(tableToolbar.exists()); 461*c767ce6aSmseidel } 462*c767ce6aSmseidel 463*c767ce6aSmseidel /** 464*c767ce6aSmseidel * split cell 465*c767ce6aSmseidel * 466*c767ce6aSmseidel * @throws Exception 467*c767ce6aSmseidel */ 468*c767ce6aSmseidel @Test 469*c767ce6aSmseidel public void testTableCellSplit() throws Exception { 470*c767ce6aSmseidel writerInsertTable.ok(); 471*c767ce6aSmseidel assertTrue(tableToolbar.exists()); 472*c767ce6aSmseidel for (int k = 0; k < 2; k++) { 473*c767ce6aSmseidel writer.focus(); 474*c767ce6aSmseidel writer.openContextMenu(); 475*c767ce6aSmseidel swTableCellSplitMenu.select(); 476*c767ce6aSmseidel swTableCellSplitNumber.focus(); 477*c767ce6aSmseidel typeKeys("<ctrl a>"); 478*c767ce6aSmseidel typeKeys("<delete>"); 479*c767ce6aSmseidel typeKeys("2"); 480*c767ce6aSmseidel if (k == 0) { 481*c767ce6aSmseidel // split table cell horizontally 482*c767ce6aSmseidel swTableCellSplitDialog.ok(); 483*c767ce6aSmseidel } else { 484*c767ce6aSmseidel // split table cell 485*c767ce6aSmseidel swTableCellSplitVERTButton.check(); 486*c767ce6aSmseidel // vertically 487*c767ce6aSmseidel swTableCellSplitDialog.ok(); 488*c767ce6aSmseidel } 489*c767ce6aSmseidel } 490*c767ce6aSmseidel // verify cell split successfully 491*c767ce6aSmseidel writer.focus(); 492*c767ce6aSmseidel assertTrue(tableToolbar.exists()); 493*c767ce6aSmseidel for (int i = 0; i < 7; i++) { 494*c767ce6aSmseidel typeKeys("<right>"); 495*c767ce6aSmseidel assertTrue(tableToolbar.exists()); 496*c767ce6aSmseidel } 497*c767ce6aSmseidel sleep(1); 498*c767ce6aSmseidel assertFalse(tableToolbar.exists()); 499*c767ce6aSmseidel } 500*c767ce6aSmseidel 501*c767ce6aSmseidel /** 502*c767ce6aSmseidel * Test convert table to text in text document 503*c767ce6aSmseidel * 504*c767ce6aSmseidel * @throws Exception 505*c767ce6aSmseidel */ 506*c767ce6aSmseidel @Test 507*c767ce6aSmseidel public void testConvertTableToText() throws Exception { 508*c767ce6aSmseidel writerInsertTable.ok(); 509*c767ce6aSmseidel writer.focus(); 510*c767ce6aSmseidel typeKeys("1<right>2<right>3<right>4"); 511*c767ce6aSmseidel sleep(1); 512*c767ce6aSmseidel 513*c767ce6aSmseidel // Convert table to text 514*c767ce6aSmseidel app.dispatch(".uno:ConvertTableToText"); 515*c767ce6aSmseidel assertTrue("Convert Table to Text dialog pop up", 516*c767ce6aSmseidel writerConvertTableToTextDlg.exists()); 517*c767ce6aSmseidel // typeKeys("<enter>"); 518*c767ce6aSmseidel writerConvertTableToTextDlg.ok(); 519*c767ce6aSmseidel 520*c767ce6aSmseidel // Verify if text is converted successfully 521*c767ce6aSmseidel app.dispatch(".uno:SelectAll"); 522*c767ce6aSmseidel app.dispatch(".uno:Copy"); 523*c767ce6aSmseidel if (SystemUtil.isWindows()) 524*c767ce6aSmseidel assertEquals("Converted text", "1\t2\r\n3\t4\r\n", 525*c767ce6aSmseidel app.getClipboard()); 526*c767ce6aSmseidel else 527*c767ce6aSmseidel assertEquals("Converted text", "1\t2\n3\t4\n", app.getClipboard()); 528*c767ce6aSmseidel } 529*c767ce6aSmseidel } 530