Author: liuzhe
Date: Fri Aug 31 02:27:34 2012
New Revision: 1379259
URL: http://svn.apache.org/viewvc?rev=1379259&view=rev
Log:
#120343 - GUI Automation Script:writing test script about table general
function in word processor
Patch By: Du Jing <[email protected]>
Review By: Liu Zhe <[email protected]>
Added:
incubator/ooo/trunk/test/testgui/source/testcase/gui/sw/table/TableGeneral.java
Removed:
incubator/ooo/trunk/test/testgui/source/testcase/gui/sw/table/Table.java
Modified:
incubator/ooo/trunk/test/testgui/source/testlib/gui/UIMap.java
Added:
incubator/ooo/trunk/test/testgui/source/testcase/gui/sw/table/TableGeneral.java
URL:
http://svn.apache.org/viewvc/incubator/ooo/trunk/test/testgui/source/testcase/gui/sw/table/TableGeneral.java?rev=1379259&view=auto
==============================================================================
---
incubator/ooo/trunk/test/testgui/source/testcase/gui/sw/table/TableGeneral.java
(added)
+++
incubator/ooo/trunk/test/testgui/source/testcase/gui/sw/table/TableGeneral.java
Fri Aug 31 02:27:34 2012
@@ -0,0 +1,454 @@
+package testcase.gui.sw.table;
+
+import static org.junit.Assert.*;
+import static org.openoffice.test.vcl.Tester.*;
+import static testlib.gui.AppUtil.*;
+import static testlib.gui.UIMap.*;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Rule;
+import org.junit.Test;
+import org.openoffice.test.common.Logger;
+import org.openoffice.test.common.SystemUtil;
+
+
+public class TableGeneral {
+
+ @Rule
+ public Logger log = Logger.getLogger(this);
+
+ @Before
+ public void setUp() throws Exception {
+ // Start OpenOffice
+ app.start();
+
+ // Create a new text document
+ app.dispatch("private:factory/swriter");
+
+ // Insert a table
+ app.dispatch(".uno:InsertTable");
+ assertTrue("Insert Table dialog pop up",
writer_InsertTable.exists());
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ app.close();
+ }
+
+ @Test
+ // Test setting table size in text document
+ public void testTableSize() throws Exception {
+
+ SWTableSizeColBox.focus();
+ typeKeys("<delete>");
+ typeKeys("3");
+ SWTableSizeRowBox.focus();
+ typeKeys("<delete>");
+ typeKeys("4");
+ writer_InsertTable.ok();
+
+ writer.focus(); // verify how many rows in the table
+ assertNotNull(StatusBar.getItemTextById(8));
+ for (int i = 0; i < 3; i++) {
+ typeKeys("<down>");
+ assertNotNull(StatusBar.getItemTextById(8));
+ }
+ typeKeys("<down>");
+ sleep(1);
+ assertFalse(Table_Toolbar.exists());
+ }
+
+ // Test setting table cell background in text document
+
+ @Test
+ @Ignore
+ // bug120378
+ public void testTableBackground() throws Exception {
+ writer_InsertTable.ok();
+ assertNotNull(StatusBar.getItemTextById(8));
+ writer.focus();
+ // set table cell background
+ app.dispatch(".uno:TableDialog");
+ SWTableBackground.select();
+ assertTrue("Table background property dialog pop up",
+ SWTableBackground.exists());
+ ;
+ SWTableBackgroundColor.focus();
+ SWTableBackgroundColor.click(50, 50);
+ SWTableBackground.ok();
+ // verify table cell background color
+ writer.focus();
+ // select the cell which is filled with color
+ app.dispatch(".uno:EntireCell");
+
+ typeKeys("<ctrl c>");
+ app.dispatch("private:factory/simpress?slot=6686");
+ PresentationWizard.ok();
+ typeKeys("<ctrl v>");
+ // enable table cell area format dialog
+ app.dispatch(".uno:FormatArea");
+ sleep(1);
+ assertEquals("Light red",
SDTable_BACGColorListbox.getSelText());
+ // close table cell area format dialog
+ SDTable_BACGColorArea.cancel();
+ }
+
+ // Test setting table border in text document
+
+ @Test
+ public void testTableBorder() throws Exception {
+ writer_InsertTable.ok();
+ assertNotNull(StatusBar.getItemTextById(8));
+ // set table border as none
+ writer.focus();
+ app.dispatch(".uno:TableDialog");
+ SWTableBorder.select();
+ assertTrue("Table border property dialog pop up",
+ SWTableBorder.exists());
+ ;
+ SWTableBorderLineArrange.click(10, 10);
+ SWTableBorder.ok();
+ }
+
+ // Test setting table border line style,line color,spacing to content in
+ // text document
+
+ @Test
+ public void testTableBorderLineStyle() throws Exception {
+ writer_InsertTable.ok();
+ assertNotNull(StatusBar.getItemTextById(8));
+ writer.focus();
+ app.dispatch(".uno:TableDialog");
+ SWTableBorder.select();
+ assertTrue("Table border property dialog pop up",
+ SWTableBorder.exists());
+ ;
+ SWTableBorderLineStyle.select(8); // set line style
+ SWTableBorderLineColor.select(5); // set line color
+ SWTableSTCLeft.focus(); // set spacing to content
+ typeKeys("<ctrl a>");
+ typeKeys("<delete>");
+ typeKeys("0.5"); // set spacing to content
+ SWTableShadow.click(40, 10); // set table shadow
+ SWTableShadowSize.focus();
+ typeKeys("<ctrl a>");
+ typeKeys("<delete>");
+ typeKeys("2");
+ SWTableShadowColor.select(5);
+ SWTableBorder.ok();
+
+ writer.focus(); // verify the setting property of table
+ app.dispatch(".uno:TableDialog");
+ SWTableBorder.select();
+ assertEquals("2.60 pt", SWTableBorderLineStyle.getItemText(8));
+ assertEquals("Magenta", SWTableBorderLineColor.getItemText(5));
+ assertEquals("0.50\"", SWTableSTCLeft.getText());
+ assertEquals("0.50\"", SWTableSTCRight.getText());
+ assertEquals("0.50\"", SWTableSTCTop.getText());
+ assertEquals("0.50\"", SWTableSTCBottom.getText());
+ assertEquals("1.97\"", SWTableShadowSize.getText());
+ assertEquals("Magenta", SWTableShadowColor.getItemText(5));
+ assertTrue("SWTableSTC_SYNC", SWTableSTC_SYNC.isChecked());
+ SWTableBorder.close();
+
+ // uncheck Synchronize box and set spacing to content
+
+ writer.focus();
+ app.dispatch(".uno:TableDialog");
+ SWTableBorder.select();
+ SWTableSTC_SYNC.uncheck();
+ SWTableSTCLeft.focus();// set left spacing to content
+ typeKeys("<ctrl a>");
+ typeKeys("<delete>");
+ typeKeys("0.5");
+ SWTableSTCRight.focus();// set right spacing to content
+ typeKeys("<ctrl a>");
+ typeKeys("<delete>");
+ typeKeys("0.8");
+ SWTableSTCTop.focus();// set top spacing to content
+ typeKeys("<ctrl a>");
+ typeKeys("<delete>");
+ typeKeys("1.0");
+ SWTableSTCBottom.focus();// set bottom spacing to content
+ typeKeys("<ctrl a>");
+ typeKeys("<delete>");
+ typeKeys("2");
+ SWTableBorder.ok();
+ assertNotNull(StatusBar.getItemTextById(8));
+
+ writer.focus(); // verify the setting value of spacing to
content for
+ // tabel
+ app.dispatch(".uno:TableDialog");
+ SWTableBorder.select();
+ assertEquals("0.50\"", SWTableSTCLeft.getText());
+ assertEquals("0.80\"", SWTableSTCRight.getText());
+ assertEquals("1.00\"", SWTableSTCTop.getText());
+ assertEquals("1.97\"", SWTableSTCBottom.getText());
+ assertFalse("SWTableSTC_SYNC", SWTableSTC_SYNC.isChecked());
+ SWTableBorder.close();
+ }
+
+ // create table with auto format
+
+ @Test
+ public void testTableAutoFormat() throws Exception {
+ // create table with auto format
+ button("sw:PushButton:DLG_INSERT_TABLE:BT_AUTOFORMAT").click();
+ assertTrue("Table auto format dialog pop up",
SWTableAutoFMT.exists());
+ SWTableAutoFormat_Listbox.select(3);
+ SWTableAutoFMT.ok();
+ // verify the auto format is that just selected
+ button("sw:PushButton:DLG_INSERT_TABLE:BT_AUTOFORMAT").click();
+ assertEquals("Blue", SWTableAutoFormat_Listbox.getSelText());
+ SWTableAutoFMT.close();
+ writer_InsertTable.ok();
+ assertNotNull(StatusBar.getItemTextById(8));
+
+ }
+
+ // set row height and select row,insert/delete row
+
+ @Test
+ public void testTableRowHeight() throws Exception {
+ writer_InsertTable.ok();
+ assertNotNull(StatusBar.getItemTextById(8));
+
+ // set row height
+ writer.focus();
+ writer.openContextMenu();
+ SWTable_RowHeightMenu.select();
+ assertTrue(SWTable_SetRowHeight_Dialog.exists());
+ SWTable_SetRowHeight.focus();
+ typeKeys("<ctrl a>");
+ typeKeys("<delete>");
+ typeKeys("0.5");
+ SWTable_SetRowHeight_Dialog.ok();
+
+ // verify row height
+ writer.focus();
+ writer.openContextMenu();
+ SWTable_RowHeightMenu.select();
+ assertTrue(SWTable_SetRowHeight_Dialog.exists());
+ assertEquals("0.50\"", SWTable_SetRowHeight.getText());
+ SWTable_SetRowHeight_Dialog.close();
+ }
+
+ // select row
+ @Test
+ public void testTableSelectRow() throws Exception {
+ writer_InsertTable.ok();
+ assertNotNull(StatusBar.getItemTextById(8));
+ // select row
+ writer.focus();
+ writer.openContextMenu();
+ SWTable_SelectRowMenu.select();
+
+ // verify select one row successfully
+ typeKeys("<ctrl c>");
+ typeKeys("<down>");
+ typeKeys("<down>");
+ typeKeys("<enter>");
+ typeKeys("<ctrl v>");
+ typeKeys("<up>");
+ assertTrue(Table_Toolbar.exists());
+
+ }
+
+ // insert row and verify how many row inserted
+ @Test
+ public void testTableInsertRow() throws Exception {
+ writer_InsertTable.ok();
+ assertNotNull(StatusBar.getItemTextById(8));
+ writer.focus();
+ writer.openContextMenu();
+ SWTable_InsertRowMenu.select();
+ assertTrue("SWTable_InsertRow Dialog pop up",
+ SWTable_InsertRow.exists());
+ SWTable_InsertRow_Column_SetNumber.focus();
+ typeKeys("<ctrl a>");
+ typeKeys("<delete>");
+ typeKeys("3");
+ SWTable_InsertRow.ok();
+
+ writer.focus(); // verify how many rows in the table
+ assertNotNull(StatusBar.getItemTextById(8));
+ for (int i = 0; i < 4; i++) {
+ typeKeys("<down>");
+ assertNotNull(StatusBar.getItemTextById(8));
+ }
+ typeKeys("<down>");
+ sleep(1);
+ assertFalse(Table_Toolbar.exists());
+ }
+
+ // delete row and verify row
+ @Test
+ public void testTableRowDelete() throws Exception {
+ writer_InsertTable.ok();
+ assertNotNull(StatusBar.getItemTextById(8));
+ // delete row
+ writer.focus();
+ writer.openContextMenu();
+ SWTable_RowDleteMenu.select();
+ // verify whether delete row
+ writer.focus();
+ assertNotNull(StatusBar.getItemTextById(8));
+ typeKeys("<down>");
+ sleep(1);
+ assertFalse(Table_Toolbar.exists());
+
+ }
+
+ // set column width and verify
+ @Test
+ public void testTableColumnWidth() throws Exception {
+ writer_InsertTable.ok();
+ assertNotNull(StatusBar.getItemTextById(8));
+ // set column width
+ writer.focus();
+ writer.openContextMenu();
+ SWTable_ColumnWidthMenu.select();
+ SWTable_SetColumnWidth.focus();
+ typeKeys("<ctrl a>");
+ typeKeys("<delete>");
+ typeKeys("2");
+ SWTable_SetColumnDialog.ok();
+ // verify column width
+ writer.focus();
+ writer.openContextMenu();
+ SWTable_ColumnWidthMenu.select();
+ assertEquals("2.00\"", SWTable_SetColumnWidth.getText());
+
+ }
+
+ // select column and verify
+ @Test
+ public void testTableColumnSelect() throws Exception {
+ writer_InsertTable.ok();
+ assertNotNull(StatusBar.getItemTextById(8));
+ writer.focus();
+ writer.openContextMenu();
+ SWTable_ColumnSelectMenu.select();
+
+ // verify select one column
+ typeKeys("<ctrl c>");
+ typeKeys("<down>");
+ typeKeys("<down>");
+ typeKeys("<enter>");
+ typeKeys("<ctrl v>");
+ typeKeys("<up>");
+ assertTrue(Table_Toolbar.exists());
+
+ }
+
+ // insert column and verify
+ @Test
+ public void testTableColumnInsert() throws Exception {
+ writer_InsertTable.ok();
+ assertNotNull(StatusBar.getItemTextById(8));
+ // insert column
+ writer.focus();
+ writer.openContextMenu();
+ SWTable_ColumnInsertMenu.select();
+ SWTable_InsertRow_Column_SetNumber.focus();
+ typeKeys("<ctrl a>");
+ typeKeys("<delete>");
+ typeKeys("3");
+ SWTable_InsertColumn.ok();
+ // verify insert column successfully
+ writer.focus();
+ assertTrue(Table_Toolbar.exists());
+ for (int i = 0; i < 9; i++) {
+ typeKeys("<right>");
+ sleep(1);
+ assertTrue(Table_Toolbar.exists());
+ }
+ typeKeys("<right>");
+ sleep(1);
+ assertFalse(Table_Toolbar.exists());
+ }
+
+ // delete column and verify whether delete or not
+ public void testTableColumnDelete() throws Exception {
+ writer_InsertTable.ok();
+ assertNotNull(StatusBar.getItemTextById(8));
+ // delete column
+ writer.focus();
+ writer.openContextMenu();
+ SWTable_ColumnDeleteMenu.select();
+ // verify delete column
+ writer.focus();
+ assertTrue(Table_Toolbar.exists());
+ for (int i = 0; i < 7; i++) {
+ typeKeys("<right>");
+ assertTrue(Table_Toolbar.exists());
+ }
+ sleep(1);
+ assertFalse(Table_Toolbar.exists());
+ }
+
+ // split cell
+ @Test
+ public void testTableCellSplit() throws Exception {
+ writer_InsertTable.ok();
+ assertTrue(Table_Toolbar.exists());
+ for (int k = 0; k < 2; k++) {
+ writer.focus();
+ writer.openContextMenu();
+ SWTable_CellSplitMenu.select();
+ SWTable_CellSplitNumber.focus();
+ typeKeys("<ctrl a>");
+ typeKeys("<delete>");
+ typeKeys("2");
+ if (k == 0) {
+ SWTable_CellSplitDialog.ok(); // split table
cell horizontally
+ } else {
+ SWTable_CellSplitVERT_Button.check(); // split
table cell
+ // vertically
+ SWTable_CellSplitDialog.ok();
+ }
+ }
+ // verify cell split successfully
+ writer.focus();
+ assertTrue(Table_Toolbar.exists());
+ for (int i = 0; i < 7; i++) {
+ typeKeys("<right>");
+ assertTrue(Table_Toolbar.exists());
+ }
+ sleep(1);
+ assertFalse(Table_Toolbar.exists());
+ }
+
+ /**
+ * Test convert table to text in text document
+ *
+ * @throws Exception
+ */
+ @Test
+ public void testConvertTableToText() throws Exception {
+ writer_InsertTable.ok();
+ writer.focus();
+ typeKeys("1<right>2<right>3<right>4");
+ sleep(1);
+
+ // Convert table to text
+ app.dispatch(".uno:ConvertTableToText");
+ assertTrue("Convert Table to Text dialog pop up",
writer_ConvertTableToTextDlg.exists());
+ // typeKeys("<enter>");
+ writer_ConvertTableToTextDlg.ok(); // "Enter" does not work on
linux
+
+ // Verify if text is converted successfully
+ app.dispatch(".uno:SelectAll");
+ app.dispatch(".uno:Copy");
+ if (SystemUtil.isWindows())
+ assertEquals("Converted text", "1\t2\r\n3\t4\r\n",
app.getClipboard()); // in
+
// windows,
+
// \n
+
// is
+
// \r\n
+ else
+ assertEquals("Converted text", "1\t2\n3\t4\n",
app.getClipboard());
+ }
+}
\ No newline at end of file
Modified: incubator/ooo/trunk/test/testgui/source/testlib/gui/UIMap.java
URL:
http://svn.apache.org/viewvc/incubator/ooo/trunk/test/testgui/source/testlib/gui/UIMap.java?rev=1379259&r1=1379258&r2=1379259&view=diff
==============================================================================
--- incubator/ooo/trunk/test/testgui/source/testlib/gui/UIMap.java (original)
+++ incubator/ooo/trunk/test/testgui/source/testlib/gui/UIMap.java Fri Aug 31
02:27:34 2012
@@ -469,5 +469,52 @@ public class UIMap {
// Fontwork
public static final VclDialog FontworkGalleryDlg =
dialog("svx:ModalDialog:RID_SVX_MDLG_FONTWORK_GALLERY");
+
+ public static final VclEditBox
SWTableSizeColBox=editbox("sw:NumericField:DLG_INSERT_TABLE:ED_COL");
+ public static final VclEditBox
SWTableSizeRowBox=editbox("sw:NumericField:DLG_INSERT_TABLE:ED_ROW");
+ public static final VclControl
SWTableBackgroundColor=control("CUI_HID_BACKGROUND_CTL_BGDCOLORSET");
+ public static final VclTabPage SWTableBackground =
tabpage("CUI_HID_BACKGROUND");
+ public static final VclTabPage SWTableBorder =
tabpage("CUI_HID_BORDER");
+ public static final VclControl SWTableBorderLineArrange =
control("CUI_HID_BORDER_CTL_PRESETS");
+ public static final VclControl SWTableProperties =
control("SW_HID_FORMAT_TABLE");
+ public static final VclListBox SWTableBorderLineStyle =
listbox("cui:ListBox:RID_SVXPAGE_BORDER:LB_LINESTYLE");
+ public static final VclListBox SWTableBorderLineColor =
listbox("cui:ListBox:RID_SVXPAGE_BORDER:LB_LINECOLOR");
+ public static final VclEditBox SWTableSTCLeft =
editbox("cui:MetricField:RID_SVXPAGE_BORDER:MF_LEFT");
+ public static final VclEditBox SWTableSTCRight =
editbox("cui:MetricField:RID_SVXPAGE_BORDER:MF_RIGHT");
+ public static final VclEditBox SWTableSTCTop =
editbox("cui:MetricField:RID_SVXPAGE_BORDER:MF_TOP");
+ public static final VclEditBox SWTableSTCBottom =
editbox("cui:MetricField:RID_SVXPAGE_BORDER:MF_BOTTOM");
+ public static final VclButton SWTableSTC_SYNC =
button("cui:CheckBox:RID_SVXPAGE_BORDER:CB_SYNC");
+ public static final VclControl SWTableShadow =
control("CUI_HID_BORDER_CTL_SHADOWS");
+ public static final VclEditBox SWTableShadowSize =
editbox("cui:MetricField:RID_SVXPAGE_BORDER:ED_SHADOWSIZE");
+ public static final VclListBox SWTableShadowColor =
listbox("cui:ListBox:RID_SVXPAGE_BORDER:LB_SHADOWCOLOR");
+ public static final VclButton SWInsertTable_AutoFormat =
button("sw:PushButton:DLG_INSERT_TABLE:BT_AUTOFORMAT");
+ public static final VclListBox SWTableAutoFormat_Listbox =
listbox("sw:ListBox:DLG_AUTOFMT_TABLE:LB_FORMAT");
+ public static final VclDialog SWTableAutoFMT =
dialog("SW_HID_AUTOFMT_TABLE");
+ public static final VclDialog SWTable_SetRowHeight_Dialog =
dialog(".uno:SetRowHeight");
+ public static final VclField SWTable_SetRowHeight =
field("sw:MetricField:DLG_ROW_HEIGHT:ED_HEIGHT");
+ public static final VclDialog SWTable_InsertRow =
dialog(".uno:InsertRowDialog");
+ public static final VclEditBox SWTable_InsertRow_Column_SetNumber =
editbox("cui:NumericField:DLG_INS_ROW_COL:ED_COUNT");
+ public static final VclField SWTable_SetColumnNumber =
field("sw:NumericField:DLG_COL_WIDTH:ED_COL");
+ public static final VclField SWTable_SetColumnWidth =
field("sw:MetricField:DLG_COL_WIDTH:ED_WIDTH");
+ public static final VclDialog SWTable_InsertColumn =
dialog(".uno:InsertColumnDialog");
+ public static final VclDialog SWTable_SetColumnDialog =
dialog(".uno:SetColumnWidth");
+ public static final VclDialog SWTable_CellSplitDialog =
dialog("cui:ModalDialog:RID_SVX_SPLITCELLDLG");
+ public static final VclField SWTable_CellSplitNumber =
field("cui:NumericField:RID_SVX_SPLITCELLDLG:ED_COUNT");
+ public static final VclButton SWTable_CellSplitHORZ_Button =
button("cui:ImageRadioButton:RID_SVX_SPLITCELLDLG:RB_HORZ");
+ public static final VclButton SWTable_CellSplitVERT_Button =
button("cui:ImageRadioButton:RID_SVX_SPLITCELLDLG:RB_VERT");
+ public static final VclMenuItem SWTable_SelectRowMenu=new
VclMenuItem("Row->Select");
+ public static final VclMenuItem SWTable_InsertRowMenu=new
VclMenuItem("Row->Insert...");
+ public static final VclMenuItem SWTable_RowHeightMenu=new
VclMenuItem("Row->Height...");
+ public static final VclMenuItem SWTable_RowDleteMenu=new
VclMenuItem("Row->Delete");
+ public static final VclMenuItem SWTable_ColumnWidthMenu=new
VclMenuItem("Column->Width...");
+ public static final VclMenuItem SWTable_ColumnSelectMenu=new
VclMenuItem("Column->Select");
+ public static final VclMenuItem SWTable_ColumnDeleteMenu=new
VclMenuItem("Column->Delete");
+ public static final VclMenuItem SWTable_ColumnInsertMenu=new
VclMenuItem("Column->Insert...");
+ public static final VclMenuItem SWTable_CellSplitMenu=new
VclMenuItem("Cell->Split...");
+ public static final VclListBox SDTable_BACGColorListbox =
listbox("cui:ListBox:RID_SVXPAGE_AREA:LB_COLOR");
+ public static final VclTabPage SDTable_BACGColorArea =
tabpage("CUI_HID_AREA_AREA");
+ public static final VclTabPage SDTable_BACGColorsOption =
tabpage("CUI_HID_OPTIONS_COLOR");
+ public static final VclEditBox SDTable_BACGColorsOption_Name =
editbox("cui:Edit:RID_SVXPAGE_COLOR:EDT_NAME");
+
}