package org.qooxdoo.demo.demobrowser.table; import org.junit.AfterClass; import org.junit.Assert; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.oneandone.qxwebdriver.By; import org.oneandone.qxwebdriver.ui.Selectable; import org.oneandone.qxwebdriver.ui.form.IBooleanForm; import org.oneandone.qxwebdriver.ui.table.Table; import org.openqa.selenium.Keys; import org.openqa.selenium.WebElement; import org.openqa.selenium.interactions.Actions; import org.qooxdoo.demo.IntegrationTest; public class TableCellEditor extends IntegrationTest { @BeforeClass public static void setUpBeforeClass() throws Exception { System.setProperty("org.qooxdoo.demo.auturl", "http://demo.qooxdoo.org/current/demobrowser/demo/table/Table_Cell_Editor.html"); IntegrationTest.setUpBeforeClass(); } public Table table; @Before public void setUp() { table = (Table) driver.findWidget(By.qxh("*/qx.ui.table.Table")); } @AfterClass public static void tearDownAfterClass() throws Exception { driver.close(); } @Test public void textField() { String cellXpath = "div[contains(@class, 'qooxdoo-table-cell') and position() = 2]"; String newText = "hsimpson"; WebElement row = table.scrollToRow(0); WebElement userNameCell = row.findElement(By.xpath(cellXpath)); Actions builder = new Actions(driver.getWebDriver()); builder.doubleClick(userNameCell).perform(); WebElement editor = table.getCellEditor(); editor.sendKeys(Keys.BACK_SPACE); editor.sendKeys(Keys.BACK_SPACE); editor.sendKeys(Keys.BACK_SPACE); editor.sendKeys(Keys.BACK_SPACE); editor.sendKeys(newText); editor.sendKeys(Keys.RETURN); row = table.scrollToRow(0); userNameCell = row.findElement(By.xpath(cellXpath)); Assert.assertEquals(newText, userNameCell.getText()); } @Test public void comboBox() { String cellXpath = "div[contains(@class, 'qooxdoo-table-cell') and position() = 2]"; String newText = "admin"; WebElement row = table.scrollToRow(2); WebElement roleCell = row.findElement(By.xpath(cellXpath)); Actions builder = new Actions(driver.getWebDriver()); builder.doubleClick(roleCell).perform(); Selectable editor = (Selectable) table.getCellEditor(); editor.selectItem("admin"); editor.sendKeys(Keys.RETURN); row = table.scrollToRow(2); roleCell = row.findElement(By.xpath(cellXpath)); Assert.assertEquals(newText, roleCell.getText()); newText = "safety inspector"; builder.doubleClick(roleCell).perform(); editor = (Selectable) table.getCellEditor(); editor.sendKeys(newText); editor.sendKeys(Keys.RETURN); row = table.scrollToRow(2); roleCell = row.findElement(By.xpath(cellXpath)); Assert.assertEquals(newText, roleCell.getText()); } @Test public void checkBox() { String cellXpath = "div[contains(@class, 'qooxdoo-table-cell') and position() = 2]"; WebElement row = table.scrollToRow(7); WebElement newsletterCell = row.findElement(By.xpath(cellXpath)); Actions builder = new Actions(driver.getWebDriver()); builder.doubleClick(newsletterCell).perform(); IBooleanForm editor = (IBooleanForm) table.getCellEditor(); Assert.assertTrue(editor.isSelected()); editor.click(); Assert.assertFalse(editor.isSelected()); table.click(); } }