diff options
author | Sun Zhe <31067185+ZheSun88@users.noreply.github.com> | 2018-10-12 16:04:24 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-12 16:04:24 +0300 |
commit | 5c7c28a3a6e30a103fe5189d36df879e2eb24b14 (patch) | |
tree | 24903f28d71be72e2f99d4fe055e08abb5dd2169 /uitest/src | |
parent | 4e5cf07e6c8c94c12ef9d8b274c0c54b5e0fe423 (diff) | |
download | vaadin-framework-5c7c28a3a6e30a103fe5189d36df879e2eb24b14.tar.gz vaadin-framework-5c7c28a3a6e30a103fe5189d36df879e2eb24b14.zip |
Revert change to fix issue on removing Grid with components (#11224)
* Test case for removing Grid with components
* This reverts commit b2745dc14f17b510df7321ab3f6285ed317da3b3.
Add test case to address the issue with removing gird with components;
Current situation: the grid cannot be removed and client-side throw an error.
fixes: Revert the corresponding change, as it didn't address any issue which was fixed.
Diffstat (limited to 'uitest/src')
5 files changed, 82 insertions, 37 deletions
diff --git a/uitest/src/main/java/com/vaadin/tests/components/grid/GridComponentsVisibility.java b/uitest/src/main/java/com/vaadin/tests/components/grid/GridComponentsVisibility.java index aaa2d98027..8c8810f7a8 100644 --- a/uitest/src/main/java/com/vaadin/tests/components/grid/GridComponentsVisibility.java +++ b/uitest/src/main/java/com/vaadin/tests/components/grid/GridComponentsVisibility.java @@ -24,9 +24,9 @@ public class GridComponentsVisibility extends AbstractTestUIWithLog { protected void setup(VaadinRequest request) { Grid<String> grid = new Grid<>(); grid.addColumn(string -> new Label(string), new ComponentRenderer()) - .setId("label").setCaption("Column 0"); + .setId("label").setCaption("Column 0"); grid.getDefaultHeaderRow().getCell("label") - .setComponent(new Label("Label")); + .setComponent(new Label("Label")); grid.addComponentColumn(string -> { if (textFields.containsKey(string)) { log("Reusing old text field for: " + string); @@ -41,7 +41,7 @@ public class GridComponentsVisibility extends AbstractTestUIWithLog { grid.addColumn(string -> { Button button = new Button("Click Me!", - event -> toggleFieldVisibility(string)); + event -> toggleFieldVisibility(string)); button.setId(string.replace(' ', '_').toLowerCase(Locale.ROOT)); return button; }, new ComponentRenderer()).setId("button").setCaption("Button"); @@ -49,13 +49,13 @@ public class GridComponentsVisibility extends AbstractTestUIWithLog { grid.setRowHeight(40); grid.getDefaultHeaderRow().join("textField", "button") - .setText("Other Components"); + .setText("Other Components"); addComponent(grid); grid.setSizeFull(); grid.setItems(IntStream.range(0, 5).boxed() - .map(i -> "Row " + (i + (counter * 1000)))); + .map(i -> "Row " + (i + (counter * 1000)))); } diff --git a/uitest/src/main/java/com/vaadin/tests/components/grid/RemoveGridWithComponent.java b/uitest/src/main/java/com/vaadin/tests/components/grid/RemoveGridWithComponent.java new file mode 100644 index 0000000000..4266a6c81a --- /dev/null +++ b/uitest/src/main/java/com/vaadin/tests/components/grid/RemoveGridWithComponent.java @@ -0,0 +1,29 @@ +package com.vaadin.tests.components.grid; + +import com.vaadin.server.VaadinRequest; +import com.vaadin.tests.components.AbstractTestUI; +import com.vaadin.ui.Button; +import com.vaadin.ui.Grid; +import com.vaadin.ui.Label; +import com.vaadin.ui.VerticalLayout; + +/** + * @author Vaadin Ltd + * + */ +public class RemoveGridWithComponent extends AbstractTestUI { + + @Override + protected void setup(VaadinRequest request) { + VerticalLayout layout = new VerticalLayout(); + addComponent(layout); + Grid<String> grid = new Grid<>(); + grid.setId("grid-with-component"); + grid.addComponentColumn(text -> new Label(text)); + grid.setItems("item 1", "item 2"); + Button button = new Button("remove grid", + event -> layout.removeComponent(grid)); + button.setId("remove-grid"); + layout.addComponents(grid, button); + } +} diff --git a/uitest/src/test/java/com/vaadin/tests/components/grid/GridComponentsVisibilityTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/GridComponentsVisibilityTest.java index 3e8f806499..14fa82a58e 100644 --- a/uitest/src/test/java/com/vaadin/tests/components/grid/GridComponentsVisibilityTest.java +++ b/uitest/src/test/java/com/vaadin/tests/components/grid/GridComponentsVisibilityTest.java @@ -23,8 +23,7 @@ public class GridComponentsVisibilityTest extends MultiBrowserTest { @Test public void changingVisibilityOfComponentShouldNotThrowClientSideExceptions() { - testHideComponent(grid -> ThreadLocalRandom.current().nextInt(1, - (int) grid.getRowCount() - 1)); + testHideComponent(grid -> ThreadLocalRandom.current().nextInt(1, (int) grid.getRowCount() - 1)); } @Test @@ -32,13 +31,12 @@ public class GridComponentsVisibilityTest extends MultiBrowserTest { testHideComponent(grid -> (int) grid.getRowCount() - 1); } - private void testHideComponent( - Function<GridElement, Integer> rowUnderTestSupplier) { + private void testHideComponent(Function<GridElement, Integer> rowUnderTestSupplier) { openTestURL("debug"); GridElement grid = $(GridElement.class).first(); int rowUnderTest = rowUnderTestSupplier.apply(grid); assertTrue("Text field should be visible", grid.getCell(rowUnderTest, 1) - .isElementPresent(TextFieldElement.class)); + .isElementPresent(TextFieldElement.class)); assertOtherConnectorsArePresent(grid, rowUnderTest); clearDebugMessages(); @@ -59,40 +57,34 @@ public class GridComponentsVisibilityTest extends MultiBrowserTest { clickVisibilityToggleButton(grid, rowUnderTest); } - private void assertOnlyTextFieldOnTestedRowIsNotPresent(GridElement grid, - int rowUnderTest) { - assertFalse("Text field should not be visible", - grid.getCell(rowUnderTest, 1) - .isElementPresent(TextFieldElement.class)); + private void assertOnlyTextFieldOnTestedRowIsNotPresent(GridElement grid, int rowUnderTest) { + assertFalse("Text field should not be visible", grid.getCell(rowUnderTest, 1) + .isElementPresent(TextFieldElement.class)); assertOtherConnectorsArePresent(grid, rowUnderTest); } - private void assertAllTextFieldsArePresent(GridElement grid, - int rowUnderTest) { + private void assertAllTextFieldsArePresent(GridElement grid, int rowUnderTest) { assertTrue("Text field should be visible", grid.getCell(rowUnderTest, 1) - .isElementPresent(TextFieldElement.class)); + .isElementPresent(TextFieldElement.class)); assertOtherConnectorsArePresent(grid, rowUnderTest); } private void assertNotClientSideErrors() { assertNoErrorNotifications(); - // Should not log "Widget is still attached to the DOM ..." error - // message + // Should not log "Widget is still attached to the DOM ..." error message assertNoDebugMessage(Level.SEVERE); } - private void clickVisibilityToggleButton(GridElement grid, - int rowUnderTest) { - grid.getRow(rowUnderTest).getCell(2) - .findElement(By.className("v-button")).click(); + private void clickVisibilityToggleButton(GridElement grid, int rowUnderTest) { + grid.getRow(rowUnderTest).getCell(2).findElement(By.className("v-button")).click(); } - private void assertOtherConnectorsArePresent(GridElement grid, - int rowUnderTest) { + private void assertOtherConnectorsArePresent(GridElement grid, int rowUnderTest) { IntStream.range(1, (int) grid.getRowCount()) - .filter(row -> row != rowUnderTest) - .forEach(row -> assertTrue("Text field should be visible", - grid.getCell(row, 1) - .isElementPresent(TextFieldElement.class))); + .filter(row -> row != rowUnderTest) + .forEach(row -> + assertTrue("Text field should be visible", grid.getCell(row, 1) + .isElementPresent(TextFieldElement.class)) + ); } } diff --git a/uitest/src/test/java/com/vaadin/tests/components/grid/RemoveGridWithComponentTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/RemoveGridWithComponentTest.java new file mode 100644 index 0000000000..49e2a8e055 --- /dev/null +++ b/uitest/src/test/java/com/vaadin/tests/components/grid/RemoveGridWithComponentTest.java @@ -0,0 +1,23 @@ +package com.vaadin.tests.components.grid; + +import org.junit.Test; +import org.openqa.selenium.By; + +import com.vaadin.testbench.elements.ButtonElement; +import com.vaadin.testbench.elements.GridElement; +import com.vaadin.tests.tb3.SingleBrowserTest; + +/** + * @author Vaadin Ltd + */ +public class RemoveGridWithComponentTest extends SingleBrowserTest { + + @Test + public void RemoveGrid_CheckGridNotPresent() { + openTestURL(); + + ButtonElement button = $(ButtonElement.class).id("remove-grid"); + button.click(); + assertElementNotPresent(By.id("grid-with-component")); + } +} diff --git a/uitest/src/test/java/com/vaadin/tests/push/BasicPushTest.java b/uitest/src/test/java/com/vaadin/tests/push/BasicPushTest.java index 91408fa4b4..1264affcf2 100644 --- a/uitest/src/test/java/com/vaadin/tests/push/BasicPushTest.java +++ b/uitest/src/test/java/com/vaadin/tests/push/BasicPushTest.java @@ -70,13 +70,14 @@ public abstract class BasicPushTest extends MultiBrowserTest { protected void waitUntilClientCounterChanges(final int expectedValue) { waitUntil(input -> { - try { - return BasicPushTest - .getClientCounter(BasicPushTest.this) == expectedValue; - } catch (NoSuchElementException e) { - return false; - } - }, 10); + try { + return BasicPushTest + .getClientCounter(BasicPushTest.this) == expectedValue; + } catch (NoSuchElementException e) { + return false; + } + }, + 10); } protected void waitUntilServerCounterChanges() { |