diff --git a/vaadin-grid-flow-parent/vaadin-grid-flow-integration-tests/src/main/java/com/vaadin/flow/component/grid/it/GridViewClickListenersPage.java b/vaadin-grid-flow-parent/vaadin-grid-flow-integration-tests/src/main/java/com/vaadin/flow/component/grid/it/GridViewClickListenersPage.java index 1bd73b8d260..a84acefc77c 100644 --- a/vaadin-grid-flow-parent/vaadin-grid-flow-integration-tests/src/main/java/com/vaadin/flow/component/grid/it/GridViewClickListenersPage.java +++ b/vaadin-grid-flow-parent/vaadin-grid-flow-integration-tests/src/main/java/com/vaadin/flow/component/grid/it/GridViewClickListenersPage.java @@ -28,12 +28,23 @@ @Route("vaadin-grid-it-demo/click-listeners") public class GridViewClickListenersPage extends LegacyTestView { + private final Grid clickGrid; + private final Grid doubleClickGrid; + public GridViewClickListenersPage() { - createClickListener(); - createDoubleClickListener(); + clickGrid = createClickListener(); + doubleClickGrid = createDoubleClickListener(); + Button resizeGridsButton = new Button("Resize grids", event -> { + clickGrid.setWidth("100px"); + clickGrid.getColumns().getFirst().setWidth("1000px"); + doubleClickGrid.setWidth("100px"); + doubleClickGrid.getColumns().getFirst().setWidth("1000px"); + }); + resizeGridsButton.setId("resize-grids"); + add(resizeGridsButton); } - private void createClickListener() { + private Grid createClickListener() { Div message = new Div(); message.setId("clicked-item"); @@ -61,9 +72,11 @@ private void createClickListener() { message.addClickListener(event -> message.setText("")); addCard("Click Listeners", "Item Click Listener", message, grid); + + return grid; } - private void createDoubleClickListener() { + private Grid createDoubleClickListener() { Div message = new Div(); message.setId("doubleclicked-item"); @@ -78,5 +91,7 @@ private void createDoubleClickListener() { grid.setId("item-doubleclick-listener"); message.addClickListener(event -> message.setText("")); addCard("Click Listeners", "Item Double Click Listener", message, grid); + + return grid; } } diff --git a/vaadin-grid-flow-parent/vaadin-grid-flow-integration-tests/src/test/java/com/vaadin/flow/component/grid/it/GridViewClickListenersIT.java b/vaadin-grid-flow-parent/vaadin-grid-flow-integration-tests/src/test/java/com/vaadin/flow/component/grid/it/GridViewClickListenersIT.java index 66b528e21c5..7e2d2ed2940 100644 --- a/vaadin-grid-flow-parent/vaadin-grid-flow-integration-tests/src/test/java/com/vaadin/flow/component/grid/it/GridViewClickListenersIT.java +++ b/vaadin-grid-flow-parent/vaadin-grid-flow-integration-tests/src/test/java/com/vaadin/flow/component/grid/it/GridViewClickListenersIT.java @@ -21,6 +21,8 @@ import org.openqa.selenium.By; import org.openqa.selenium.WebElement; +import com.vaadin.flow.component.button.testbench.ButtonElement; +import com.vaadin.flow.component.grid.testbench.GridColumnElement; import com.vaadin.flow.component.grid.testbench.GridElement; import com.vaadin.flow.component.grid.testbench.GridTHTDElement; import com.vaadin.flow.component.grid.testbench.GridTRElement; @@ -120,4 +122,41 @@ public void itemDoubleClickListener() { // No event Assert.assertEquals("", clickInfo.getText()); } + + @Test + public void nonVisibleColumn_itemClickListener() { + $(ButtonElement.class).id("resize-grids").click(); + + GridElement grid = $(GridElement.class).id("item-click-listener"); + scrollToElement(grid); + waitUntil(driver -> grid.getRowCount() > 0); + + GridColumnElement ageColumn = grid.getColumn("Age"); + GridTRElement row = grid.getRow(0); + row.getCell(ageColumn).click(); + + WebElement clickInfo = findElement(By.id("clicked-item")); + + Assert.assertEquals("Clicked Item: Person 1", clickInfo.getText()); + + } + + @Test + public void nonVisibleColumn_itemDoubleClickListener() { + $(ButtonElement.class).id("resize-grids").click(); + + GridElement grid = $(GridElement.class).id("item-doubleclick-listener"); + scrollToElement(grid); + waitUntil(driver -> grid.getRowCount() > 0); + + GridColumnElement ageColumn = grid.getColumn("Age"); + GridTRElement row = grid.getRow(0); + row.getCell(ageColumn).doubleClick(); + + WebElement clickInfo = findElement(By.id("doubleclicked-item")); + + Assert.assertEquals("Double Clicked Item: Person 1", + clickInfo.getText()); + + } }