summaryrefslogtreecommitdiffstats
path: root/uitest/src
diff options
context:
space:
mode:
Diffstat (limited to 'uitest/src')
-rw-r--r--uitest/src/main/java/com/vaadin/tests/components/grid/GridClientMemoryLeak.java40
1 files changed, 40 insertions, 0 deletions
diff --git a/uitest/src/main/java/com/vaadin/tests/components/grid/GridClientMemoryLeak.java b/uitest/src/main/java/com/vaadin/tests/components/grid/GridClientMemoryLeak.java
new file mode 100644
index 0000000000..7071f187bd
--- /dev/null
+++ b/uitest/src/main/java/com/vaadin/tests/components/grid/GridClientMemoryLeak.java
@@ -0,0 +1,40 @@
+package com.vaadin.tests.components.grid;
+
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.shared.ui.ContentMode;
+import com.vaadin.tests.components.AbstractTestUI;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Grid;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.VerticalLayout;
+
+public class GridClientMemoryLeak extends AbstractTestUI {
+
+ private static final String INSTRUCTIONS = "This UI is for manually testing that the client side grid does not leak memory. "
+ + "Steps to take:\n"
+ + "\t1. Click the newGrid button 1-n times\n"
+ + "\t2. Capture a JS heap dump in your browser\n"
+ + "\t3. The heap dump should only contain 1 instance of each of the following:\n"
+ + "\t\tGrid, GridKeyDownEvent, GridKeyPressEvent, GridKeyUpEvent, GridClickEvent, GridDoubleClickEvent";
+
+ @Override
+ protected void setup(VaadinRequest request) {
+ final Label instructionLabel = new Label(INSTRUCTIONS,
+ ContentMode.PREFORMATTED);
+ final VerticalLayout layout = new VerticalLayout();
+ final Button btn = new Button("newGrid");
+ btn.addClickListener(new Button.ClickListener() {
+
+ @Override
+ public void buttonClick(ClickEvent event) {
+ layout.removeComponent(layout.getComponent(1));
+ layout.addComponent(new Grid<String>());
+ }
+ });
+ layout.addComponent(instructionLabel);
+ layout.addComponent(btn);
+ layout.addComponent(new Grid<String>());
+ addComponent(layout);
+ }
+}