xref: /AOO42X/test/testgui/source/fvt/gui/sw/table/TableGeneral.java (revision c767ce6af6b4fa73d3fb3b62dd99c67f1a5a12b2)
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