]> source.dussan.org Git - vaadin-framework.git/commitdiff
#4019 VGridLayout NPE test case
authorHenri Sara <henri.sara@itmill.com>
Wed, 27 Jan 2010 09:02:55 +0000 (09:02 +0000)
committerHenri Sara <henri.sara@itmill.com>
Wed, 27 Jan 2010 09:02:55 +0000 (09:02 +0000)
svn changeset:11019/svn branch:6.2

tests/src/com/vaadin/tests/layouts/GridLayoutNPE.java [new file with mode: 0644]

diff --git a/tests/src/com/vaadin/tests/layouts/GridLayoutNPE.java b/tests/src/com/vaadin/tests/layouts/GridLayoutNPE.java
new file mode 100644 (file)
index 0000000..5f67aa1
--- /dev/null
@@ -0,0 +1,72 @@
+package com.vaadin.tests.layouts;\r
+\r
+import com.vaadin.tests.components.TestBase;\r
+import com.vaadin.ui.Button;\r
+import com.vaadin.ui.GridLayout;\r
+import com.vaadin.ui.Label;\r
+import com.vaadin.ui.VerticalLayout;\r
+import com.vaadin.ui.Button.ClickEvent;\r
+\r
+public class GridLayoutNPE extends TestBase {\r
+\r
+    @Override\r
+    protected void setup() {\r
+        final VerticalLayout lo = new VerticalLayout();\r
+\r
+        final GridLayout gl = new GridLayout(2, 1);\r
+        gl.setSpacing(true);\r
+\r
+        final Label toRemove = new Label("First");\r
+        gl.addComponent(toRemove);\r
+        final Label toEdit = new Label("Second");\r
+        gl.addComponent(toEdit);\r
+\r
+        final Button b = new Button("remove 'First'");\r
+        final Button b2 = new Button("edit 'Second'");\r
+        b2.setVisible(false);\r
+\r
+        lo.addComponent(gl);\r
+        lo.addComponent(b);\r
+        lo.addComponent(b2);\r
+\r
+        b.addListener(new Button.ClickListener() {\r
+\r
+            public void buttonClick(Button.ClickEvent event) {\r
+                gl.removeComponent(toRemove);\r
+\r
+                // move another component to where the first was removed\r
+                // before rendering to the client\r
+                gl.removeComponent(toEdit);\r
+                // this could also be the result of removeAllComponents()\r
+                // followed by a loop of addComponent(c)\r
+                gl.addComponent(toEdit, 0, 0);\r
+\r
+                b.setVisible(false);\r
+                b2.setVisible(true);\r
+\r
+            }\r
+\r
+        });\r
+\r
+        b2.addListener(new Button.ClickListener() {\r
+\r
+            public void buttonClick(ClickEvent event) {\r
+                toEdit.setValue("Second (edited)");\r
+            }\r
+\r
+        });\r
+\r
+        addComponent(lo);\r
+    }\r
+\r
+    @Override\r
+    protected String getDescription() {\r
+        return "VGridLayout throws an NPE, causing client side to crash";\r
+    }\r
+\r
+    @Override\r
+    protected Integer getTicketNumber() {\r
+        return 4019;\r
+    }\r
+\r
+}\r