summaryrefslogtreecommitdiffstats
path: root/uitest
diff options
context:
space:
mode:
authorAdam Wagner <wbadam@users.noreply.github.com>2017-09-11 12:02:20 +0300
committerHenri Sara <henri.sara@gmail.com>2017-09-11 12:02:20 +0300
commit0b58bc480e7f86b1e5285e9d59475593e5abbf5f (patch)
tree430073d229ad7c4c5cd0cf34ea761ba8a6cc32d7 /uitest
parentfb207248d5567a2661d5729d5149c7c8920a2efa (diff)
downloadvaadin-framework-0b58bc480e7f86b1e5285e9d59475593e5abbf5f.tar.gz
vaadin-framework-0b58bc480e7f86b1e5285e9d59475593e5abbf5f.zip
Remove element explicitly when reordering tree grid rows (#9952)
Under certain circumstances IE 11 (11.0.45 / 11.0.9600.18762) produces an exception when collapsing/expanding rows (particularly the first child after the very first element) in a TreeGrid within a Window. This workaround removes the row explicitly before inserting, instead of letting JS handle it. Fixes #9850
Diffstat (limited to 'uitest')
-rw-r--r--uitest/src/main/java/com/vaadin/tests/components/treegrid/TreeGridInWindow.java35
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/treegrid/TreeGridInWindowTest.java33
2 files changed, 68 insertions, 0 deletions
diff --git a/uitest/src/main/java/com/vaadin/tests/components/treegrid/TreeGridInWindow.java b/uitest/src/main/java/com/vaadin/tests/components/treegrid/TreeGridInWindow.java
new file mode 100644
index 0000000000..11afe6ba0a
--- /dev/null
+++ b/uitest/src/main/java/com/vaadin/tests/components/treegrid/TreeGridInWindow.java
@@ -0,0 +1,35 @@
+package com.vaadin.tests.components.treegrid;
+
+import com.vaadin.data.TreeData;
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.tests.components.AbstractTestUI;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.TreeGrid;
+import com.vaadin.ui.UI;
+import com.vaadin.ui.Window;
+
+public class TreeGridInWindow extends AbstractTestUI {
+
+ @Override
+ protected void setup(VaadinRequest request) {
+ TreeGrid<String> treeGrid = new TreeGrid<>();
+ treeGrid.addColumn(Object::toString).setCaption("Column");
+
+ TreeData<String> data = treeGrid.getTreeData();
+
+ data.addRootItems("parent");
+ data.addItems("parent", "child1", "child2");
+ data.addItems("child1", "grandchild1", "grandchild2");
+ data.addItems("child2", "grandchild3", "grandchild4");
+
+ treeGrid.expand("parent", "child1", "child2");
+
+ Window window = new Window("Window", treeGrid);
+
+ Button openWindow = new Button("Open window", event -> {
+ UI.getCurrent().addWindow(window);
+ });
+
+ getLayout().addComponent(openWindow);
+ }
+}
diff --git a/uitest/src/test/java/com/vaadin/tests/components/treegrid/TreeGridInWindowTest.java b/uitest/src/test/java/com/vaadin/tests/components/treegrid/TreeGridInWindowTest.java
new file mode 100644
index 0000000000..7a1e861a61
--- /dev/null
+++ b/uitest/src/test/java/com/vaadin/tests/components/treegrid/TreeGridInWindowTest.java
@@ -0,0 +1,33 @@
+package com.vaadin.tests.components.treegrid;
+
+import org.junit.Test;
+
+import com.vaadin.testbench.elements.ButtonElement;
+import com.vaadin.testbench.elements.TreeGridElement;
+import com.vaadin.tests.tb3.MultiBrowserTest;
+
+public class TreeGridInWindowTest extends MultiBrowserTest {
+
+ @Test
+ public void collapse_and_expand_first_child_multiple_times() {
+ setDebug(true);
+ openTestURL();
+
+ ButtonElement openWindowButton = $(ButtonElement.class).first();
+ openWindowButton.click();
+
+ TreeGridElement grid = $(TreeGridElement.class).first();
+
+ for (int i = 0; i < 10; i++) {
+ // Collapse first child node
+ grid.getExpandElement(1, 0).click();
+ waitUntil(webDriver -> grid.getRowCount() == 5);
+
+ // Expand first child node
+ grid.getExpandElement(1, 0).click();
+ waitUntil(webDriver -> grid.getRowCount() == 7);
+ }
+
+ assertNoErrorNotifications();
+ }
+}