diff options
author | Anna Koskinen <Ansku@users.noreply.github.com> | 2018-08-13 15:41:23 +0300 |
---|---|---|
committer | Ilia Motornyi <elmot@vaadin.com> | 2018-08-13 15:41:23 +0300 |
commit | 062caa5b844dd6540b101dd04c612bc8e5948ad4 (patch) | |
tree | 76afb725266b84f6e2968d5ba7eea06d98c1111a /uitest | |
parent | 378d7f5a92338135829b8a28738e427a388faaf2 (diff) | |
download | vaadin-framework-062caa5b844dd6540b101dd04c612bc8e5948ad4.tar.gz vaadin-framework-062caa5b844dd6540b101dd04c612bc8e5948ad4.zip |
Compensate for Grid editor moving out of sync horizontally. (#11092)
Fixes #10998
Diffstat (limited to 'uitest')
-rw-r--r-- | uitest/src/main/java/com/vaadin/tests/components/grid/GridEditorScrollSync.java | 49 | ||||
-rw-r--r-- | uitest/src/test/java/com/vaadin/tests/components/grid/GridEditorScrollSyncTest.java | 47 |
2 files changed, 96 insertions, 0 deletions
diff --git a/uitest/src/main/java/com/vaadin/tests/components/grid/GridEditorScrollSync.java b/uitest/src/main/java/com/vaadin/tests/components/grid/GridEditorScrollSync.java new file mode 100644 index 0000000000..85398d400b --- /dev/null +++ b/uitest/src/main/java/com/vaadin/tests/components/grid/GridEditorScrollSync.java @@ -0,0 +1,49 @@ +package com.vaadin.tests.components.grid; + +import com.vaadin.server.VaadinRequest; +import com.vaadin.tests.components.AbstractTestUI; +import com.vaadin.ui.Grid; + +public class GridEditorScrollSync extends AbstractTestUI { + + @Override + protected void setup(VaadinRequest request) { + // Create a grid + Grid grid = new Grid(); + grid.setEditorEnabled(true); + grid.setEditorBuffered(false); + + // Define some columns + grid.addColumn("name", String.class); + grid.addColumn("born", Integer.class); + + grid.addColumn("name1", String.class); + grid.addColumn("born1", Integer.class); + + grid.addColumn("name2", String.class); + grid.addColumn("born2", Integer.class); + + grid.addColumn("name3", String.class); + grid.addColumn("born3", Integer.class); + + grid.addColumn("name4", String.class); + grid.addColumn("born4", Integer.class); + + grid.setWidth("450px"); + + // Add some data rows + grid.addRow("Nicolaus Copernicus", 1543, "Nicolaus Copernicus", 1543, + "Nicolaus Copernicus", 1543, "Nicolaus Copernicus", 1543, + "Nicolaus Copernicus", 1543); + + grid.addRow("Galileo Galilei", 1564, "Galileo Galilei", 1564, + "Galileo Galilei", 1564, "s", 55, "Nicolaus Copernicus", 1543); + + grid.addRow("Johannes Kepler", 1571, "Johannes Kepler", 1571, + "Johannes Kepler", 1571, "Nicolaus Copernicus", 1543, + "Nicolaus Copernicus", 1543); + + getLayout().addComponent(grid); + } + +} diff --git a/uitest/src/test/java/com/vaadin/tests/components/grid/GridEditorScrollSyncTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/GridEditorScrollSyncTest.java new file mode 100644 index 0000000000..50ac9b5afe --- /dev/null +++ b/uitest/src/test/java/com/vaadin/tests/components/grid/GridEditorScrollSyncTest.java @@ -0,0 +1,47 @@ +package com.vaadin.tests.components.grid; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.number.IsCloseTo.closeTo; + +import org.junit.Assert; +import org.junit.Test; +import org.openqa.selenium.By; + +import com.vaadin.testbench.TestBenchElement; +import com.vaadin.testbench.elements.GridElement; +import com.vaadin.testbench.elements.GridElement.GridCellElement; +import com.vaadin.tests.tb3.MultiBrowserTest; + +public class GridEditorScrollSyncTest extends MultiBrowserTest { + + private GridElement grid; + + @Test + public void testScrollAndEdit() { + openTestURL(); + grid = $(GridElement.class).first(); + + ((TestBenchElement) grid + .findElement(By.className("v-grid-scroller-horizontal"))) + .scrollLeft(300); + openEditor(); + + GridCellElement rowCell = grid.getCell(1, 6); + TestBenchElement editorField = grid.getEditor().getField(6); + assertPosition(rowCell.getLocation().getX(), + editorField.getWrappedElement().getLocation().getX()); + } + + private GridElement openEditor() { + grid.getCell(0, 6).doubleClick(); + Assert.assertTrue("Grid editor should be displayed.", + grid.getEditor().isDisplayed()); + return grid; + } + + private void assertPosition(double expected, double actual) { + // 1px leeway for calculations + assertThat("Unexpected position.", expected, closeTo(actual, 1d)); + } + +} |