You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by ms...@apache.org on 2025/04/01 14:53:43 UTC

(openoffice) branch AOO42X updated: Restore test

This is an automated email from the ASF dual-hosted git repository.

mseidel pushed a commit to branch AOO42X
in repository https://gitbox.apache.org/repos/asf/openoffice.git


The following commit(s) were added to refs/heads/AOO42X by this push:
     new c767ce6af6 Restore test
c767ce6af6 is described below

commit c767ce6af6b4fa73d3fb3b62dd99c67f1a5a12b2
Author: mseidel <ms...@apache.org>
AuthorDate: Tue Apr 1 16:53:23 2025 +0200

    Restore test
---
 .../source/fvt/gui/sw/table/TableGeneral.java      | 529 +++++++++++++++++++++
 1 file changed, 529 insertions(+)

diff --git a/test/testgui/source/fvt/gui/sw/table/TableGeneral.java b/test/testgui/source/fvt/gui/sw/table/TableGeneral.java
new file mode 100644
index 0000000000..86fdf79a47
--- /dev/null
+++ b/test/testgui/source/fvt/gui/sw/table/TableGeneral.java
@@ -0,0 +1,529 @@
+/**************************************************************
+ * 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ *************************************************************/
+
+package fvt.gui.sw.table;
+
+import static org.junit.Assert.*;
+import static org.openoffice.test.vcl.Tester.*;
+import static testlib.gui.AppTool.*;
+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;
+
+import testlib.gui.AppTool;
+
+public class TableGeneral {
+	
+	@Rule
+	public Logger log = Logger.getLogger(this);
+
+	@Before
+	public void setUp() throws Exception {
+		// Start OpenOffice
+		app.start();
+
+		AppTool.newTextDocument();
+		// Insert a table
+		app.dispatch(".uno:InsertTable");
+	}
+
+	@After
+	public void tearDown() throws Exception {
+		app.stop();
+	}
+
+	/**
+	 * Test setting table size in text document
+	 * 
+	 * @throws Exception
+	 */
+	@Test
+	public void testTableSize() throws Exception {
+
+		swTableSizeColBox.focus();
+		typeKeys("<delete>");
+		typeKeys("3");
+		swTableSizeRowBox.focus();
+		typeKeys("<delete>");
+		typeKeys("4");
+		writerInsertTable.ok();
+
+		writer.focus();
+		// verify the 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(tableToolbar.exists());
+	}
+
+	/**
+	 * Test setting table cell background in text document
+	 * 
+	 * @throws Exception
+	 */
+	@Test
+	@Ignore("Bug #120378- the table cell fill color change when copy one table cell in word processor to presentation")
+	public void testTableBackground() throws Exception {
+		writerInsertTable.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>");
+		AppTool.newPresentation();
+		typeKeys("<ctrl v>");
+		// enable table cell area format dialog
+		app.dispatch(".uno:FormatArea");
+		sleep(1);
+		assertEquals("Light red", sdTableBACGColorListbox.getSelText());
+		// close table cell area format dialog
+		sdTableBACGColorArea.cancel();
+	}
+
+	/**
+	 * Test setting table border in text document
+	 * 
+	 * @throws Exception
+	 */
+	@Test
+	public void testTableBorder() throws Exception {
+		writerInsertTable.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
+	 * 
+	 * @throws Exception
+	 */
+	@Test
+	public void testTableBorderLineStyle() throws Exception {
+		writerInsertTable.ok();
+		assertNotNull(statusBar.getItemTextById(8));
+		writer.focus();
+		app.dispatch(".uno:TableDialog");
+		swTableBorder.select();
+		assertTrue("Table border property dialog pop up",
+				swTableBorder.exists());
+		// set line style
+		swTableBorderLineStyle.select(8);
+		// set line color
+		final int nMagentaIndex = 16; // for AOO's colorpicker as of #i118828#
+		swTableBorderLineColor.select( nMagentaIndex);
+		// set spacing to content
+		swTableSTCLeft.focus();
+		typeKeys("<ctrl a>");
+		typeKeys("<delete>");
+		// set spacing to content
+		typeKeys("0.5");
+		// set table shadow
+		swTableShadow.click(40, 10);
+		swTableShadowSize.focus();
+		typeKeys("<ctrl a>");
+		typeKeys("<delete>");
+		typeKeys("2");
+		swTableShadowColor.select( nMagentaIndex);
+		swTableBorder.ok();
+		// verify the setting property of table
+		writer.focus();
+		app.dispatch(".uno:TableDialog");
+		swTableBorder.select();
+		assertEquals("2.60 pt", swTableBorderLineStyle.getItemText(8));
+		assertEquals("Magenta", swTableBorderLineColor.getItemText( nMagentaIndex));
+		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( nMagentaIndex));
+		assertTrue("SWTableSTC_SYNC", swTableSTCSYNC.isChecked());
+		swTableBorder.close();
+
+		// uncheck Synchronize box and set spacing to content
+		writer.focus();
+		app.dispatch(".uno:TableDialog");
+		swTableBorder.select();
+		swTableSTCSYNC.uncheck();
+		// set left spacing to content
+		swTableSTCLeft.focus();
+		typeKeys("<ctrl a>");
+		typeKeys("<delete>");
+		typeKeys("0.5");
+		// set right spacing to content
+		swTableSTCRight.focus();
+		typeKeys("<ctrl a>");
+		typeKeys("<delete>");
+		typeKeys("0.8");
+		// set top spacing to content
+		swTableSTCTop.focus();
+		typeKeys("<ctrl a>");
+		typeKeys("<delete>");
+		typeKeys("1.0");
+		// set bottom spacing to content
+		swTableSTCBottom.focus();
+		typeKeys("<ctrl a>");
+		typeKeys("<delete>");
+		typeKeys("2");
+		swTableBorder.ok();
+		assertNotNull(statusBar.getItemTextById(8));
+
+		writer.focus();
+		// verify the setting value of spacing to content for table
+		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", swTableSTCSYNC.isChecked());
+		swTableBorder.close();
+	}
+
+	/**
+	 * create table with auto format
+	 * 
+	 * @throws Exception
+	 */
+	@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());
+		swTableAutoFormatListbox.select(3);
+		swTableAutoFMT.ok();
+		// verify the auto format is that just selected
+		button("sw:PushButton:DLG_INSERT_TABLE:BT_AUTOFORMAT").click();
+		assertEquals("Blue", swTableAutoFormatListbox.getSelText());
+		swTableAutoFMT.close();
+		writerInsertTable.ok();
+		assertNotNull(statusBar.getItemTextById(8));
+
+	}
+
+	/**
+	 * set row height and select row,insert/delete row
+	 * 
+	 * @throws Exception
+	 */
+	@Test
+	public void testTableRowHeight() throws Exception {
+		writerInsertTable.ok();
+		assertNotNull(statusBar.getItemTextById(8));
+
+		// set row height
+		writer.focus();
+		writer.openContextMenu();
+		swTableRowHeightMenu.select();
+		assertTrue(swTableSetRowHeightDialog.exists());
+		swTableSetRowHeight.focus();
+		typeKeys("<ctrl a>");
+		typeKeys("<delete>");
+		typeKeys("0.5");
+		swTableSetRowHeightDialog.ok();
+
+		// verify row height
+		writer.focus();
+		writer.openContextMenu();
+		swTableRowHeightMenu.select();
+		assertTrue(swTableSetRowHeightDialog.exists());
+		assertEquals("0.50 \"", swTableSetRowHeight.getText());
+		swTableSetRowHeightDialog.close();
+	}
+
+	/**
+	 * test select row
+	 * 
+	 * @throws Exception
+	 */
+	@Test
+	public void testTableSelectRow() throws Exception {
+		writerInsertTable.ok();
+		assertNotNull(statusBar.getItemTextById(8));
+		// select row
+		writer.focus();
+		writer.openContextMenu();
+		swTableSelectRowMenu.select();
+
+		// verify select one row successfully
+		typeKeys("<ctrl c>");
+		typeKeys("<down>");
+		typeKeys("<down>");
+		typeKeys("<enter>");
+		typeKeys("<ctrl v>");
+		typeKeys("<up>");
+		assertTrue(tableToolbar.exists());
+
+	}
+
+	/**
+	 * insert row and verify how many row inserted
+	 * 
+	 * @throws Exception
+	 */
+	@Test
+	public void testTableInsertRow() throws Exception {
+		writerInsertTable.ok();
+		assertNotNull(statusBar.getItemTextById(8));
+		writer.focus();
+		writer.openContextMenu();
+		swTableInsertRowMenu.select();
+		assertTrue("SWTable_InsertRow Dialog pop up", swTableInsertRow.exists());
+		swTableInsertRowColumnSetNumber.focus();
+		typeKeys("<ctrl a>");
+		typeKeys("<delete>");
+		typeKeys("3");
+		swTableInsertRow.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(tableToolbar.exists());
+	}
+
+	/**
+	 * delete row and verify row
+	 * 
+	 * @throws Exception
+	 */
+	@Test
+	public void testTableRowDelete() throws Exception {
+		writerInsertTable.ok();
+		assertNotNull(statusBar.getItemTextById(8));
+		// delete row
+		writer.focus();
+		writer.openContextMenu();
+		swTableRowDleteMenu.select();
+		// verify whether delete row
+		writer.focus();
+		assertNotNull(statusBar.getItemTextById(8));
+		typeKeys("<down>");
+		sleep(1);
+		assertFalse(tableToolbar.exists());
+
+	}
+
+	/**
+	 * set column width and verify
+	 * 
+	 * @throws Exception
+	 */
+	@Test
+	public void testTableColumnWidth() throws Exception {
+		writerInsertTable.ok();
+		assertNotNull(statusBar.getItemTextById(8));
+		// set column width
+		writer.focus();
+		writer.openContextMenu();
+		swTableColumnWidthMenu.select();
+		swTableSetColumnWidth.focus();
+		typeKeys("<ctrl a>");
+		typeKeys("<delete>");
+		typeKeys("2");
+		swTableSetColumnDialog.ok();
+		// verify column width
+		writer.focus();
+		writer.openContextMenu();
+		swTableColumnWidthMenu.select();
+		assertEquals("2.00 \"", swTableSetColumnWidth.getText());
+
+	}
+
+	/**
+	 * select column and verify
+	 * 
+	 * @throws Exception
+	 */
+	@Test
+	public void testTableColumnSelect() throws Exception {
+		writerInsertTable.ok();
+		assertNotNull(statusBar.getItemTextById(8));
+		writer.focus();
+		writer.openContextMenu();
+		swTableColumnSelectMenu.select();
+
+		// verify select one column
+		typeKeys("<ctrl c>");
+		typeKeys("<down>");
+		typeKeys("<down>");
+		typeKeys("<enter>");
+		typeKeys("<ctrl v>");
+		typeKeys("<up>");
+		assertTrue(tableToolbar.exists());
+
+	}
+
+	/**
+	 * insert column and verify
+	 * 
+	 * @throws Exception
+	 */
+	@Test
+	public void testTableColumnInsert() throws Exception {
+		writerInsertTable.ok();
+		assertNotNull(statusBar.getItemTextById(8));
+		// insert column
+		writer.focus();
+		writer.openContextMenu();
+		swTableColumnInsertMenu.select();
+		swTableInsertRowColumnSetNumber.focus();
+		typeKeys("<ctrl a>");
+		typeKeys("<delete>");
+		typeKeys("3");
+		swTableInsertColumn.ok();
+		// verify insert column successfully
+		writer.focus();
+		assertTrue(tableToolbar.exists());
+		for (int i = 0; i < 9; i++) {
+			typeKeys("<right>");
+			sleep(1);
+			assertTrue(tableToolbar.exists());
+		}
+		typeKeys("<right>");
+		sleep(1);
+		assertFalse(tableToolbar.exists());
+	}
+
+	/**
+	 * delete column and verify whether delete or not
+	 * 
+	 * @throws Exception
+	 */
+	public void testTableColumnDelete() throws Exception {
+		writerInsertTable.ok();
+		assertNotNull(statusBar.getItemTextById(8));
+		// delete column
+		writer.focus();
+		writer.openContextMenu();
+		swTableColumnDeleteMenu.select();
+		// verify delete column
+		writer.focus();
+		assertTrue(tableToolbar.exists());
+		for (int i = 0; i < 7; i++) {
+			typeKeys("<right>");
+			assertTrue(tableToolbar.exists());
+		}
+		sleep(1);
+		assertFalse(tableToolbar.exists());
+	}
+
+	/**
+	 * split cell
+	 * 
+	 * @throws Exception
+	 */
+	@Test
+	public void testTableCellSplit() throws Exception {
+		writerInsertTable.ok();
+		assertTrue(tableToolbar.exists());
+		for (int k = 0; k < 2; k++) {
+			writer.focus();
+			writer.openContextMenu();
+			swTableCellSplitMenu.select();
+			swTableCellSplitNumber.focus();
+			typeKeys("<ctrl a>");
+			typeKeys("<delete>");
+			typeKeys("2");
+			if (k == 0) {
+				// split table cell horizontally
+				swTableCellSplitDialog.ok();
+			} else {
+				// split table cell
+				swTableCellSplitVERTButton.check();
+				// vertically
+				swTableCellSplitDialog.ok();
+			}
+		}
+		// verify cell split successfully
+		writer.focus();
+		assertTrue(tableToolbar.exists());
+		for (int i = 0; i < 7; i++) {
+			typeKeys("<right>");
+			assertTrue(tableToolbar.exists());
+		}
+		sleep(1);
+		assertFalse(tableToolbar.exists());
+	}
+
+	/**
+	 * Test convert table to text in text document
+	 * 
+	 * @throws Exception
+	 */
+	@Test
+	public void testConvertTableToText() throws Exception {
+		writerInsertTable.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",
+				writerConvertTableToTextDlg.exists());
+		// typeKeys("<enter>");
+		writerConvertTableToTextDlg.ok();
+
+		// 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());
+		else
+			assertEquals("Converted text", "1\t2\n3\t4\n", app.getClipboard());
+	}
+}