package com.vaadin.tests.components.table;
import java.util.List;
import org.junit.Test;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.remote.DesiredCapabilities;
import com.vaadin.testbench.TestBenchElement;
import com.vaadin.testbench.elements.TableElement;
import com.vaadin.tests.tb3.MultiBrowserTest;
public class TableContextMenuAndIconsTest extends MultiBrowserTest {
@Override
protected Class<?> getUIClass() {
return com.vaadin.tests.components.table.Tables.class;
}
@Override
public List<DesiredCapabilities> getBrowsersToTest() {
return getBrowsersSupportingContextMenu();
}
@Test
public void tableContextMenuWithIcons() throws Exception {
openTestURL();
/* Hide event log */
selectMenuPath("Settings", "Show event log");
/* Simple context menu */
selectMenuPath("Component", "Features", "Context menu",
"Item without icon");
contextClickCell(1, 1);
compareScreen("contextmenu-noicon");
/* Two actions, without and with icon */
selectMenuPath("Component", "Features", "Context menu",
"With and without icon");
contextClickCell(4, 2);
compareScreen("caption-only-and-has-icon");
/* Large icon */
selectMenuPath("Component", "Features", "Context menu",
"Only one large icon");
contextClickCell(4, 2);
compareScreen("large-icon");
/*
* Simple context menu again to ensure it is properly updated (icons
* removed)
*/
selectMenuPath("Component", "Features", "Context menu",
"Item without icon");
contextClickCell(1, 1);
compareScreen("contextmenu-noicon");
/* Empty context menu */
selectMenuPath("Component", "Features", "Context menu", "Empty");
contextClickCell(3, 3);
compareScreen("contextmenu-empty");
}
private void contextClickCell(int row, int column) {
TestBenchElement cell = $(TableElement.class).first().getCell(row,
column);
new Actions(driver).contextClick(cell).perform();
}
}