]> source.dussan.org Git - vaadin-framework.git/commitdiff
test case for #4605
authorMatti Tahvonen <matti.tahvonen@itmill.com>
Wed, 28 Apr 2010 11:51:44 +0000 (11:51 +0000)
committerMatti Tahvonen <matti.tahvonen@itmill.com>
Wed, 28 Apr 2010 11:51:44 +0000 (11:51 +0000)
svn changeset:12882/svn branch:6.3

tests/src/com/vaadin/tests/components/upload/TestUploadAndDisableOnSuccess.java [new file with mode: 0644]

diff --git a/tests/src/com/vaadin/tests/components/upload/TestUploadAndDisableOnSuccess.java b/tests/src/com/vaadin/tests/components/upload/TestUploadAndDisableOnSuccess.java
new file mode 100644 (file)
index 0000000..4a4c391
--- /dev/null
@@ -0,0 +1,109 @@
+package com.vaadin.tests.components.upload;\r
+\r
+import java.io.ByteArrayOutputStream;\r
+import java.io.OutputStream;\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+\r
+import com.vaadin.terminal.PaintException;\r
+import com.vaadin.terminal.PaintTarget;\r
+import com.vaadin.tests.components.ComponentTestCase;\r
+import com.vaadin.ui.Button;\r
+import com.vaadin.ui.Component;\r
+import com.vaadin.ui.Label;\r
+import com.vaadin.ui.Upload;\r
+import com.vaadin.ui.Button.ClickEvent;\r
+import com.vaadin.ui.Button.ClickListener;\r
+import com.vaadin.ui.Upload.FinishedEvent;\r
+import com.vaadin.ui.Upload.Receiver;\r
+import com.vaadin.ui.Upload.StartedEvent;\r
+\r
+public class TestUploadAndDisableOnSuccess extends ComponentTestCase implements\r
+        Receiver {\r
+    @Override\r
+    protected String getDescription() {\r
+        return "Possible timing issue, when upload is disabled on success.";\r
+    }\r
+\r
+    @Override\r
+    protected Integer getTicketNumber() {\r
+        return 4605;\r
+    }\r
+\r
+    int counter = 0;\r
+    private Label l;\r
+\r
+    @Override\r
+    protected void setup() {\r
+        super.setup();\r
+        final Upload u;\r
+\r
+        u = new Upload("Undefined wide upload", this);\r
+        u.setImmediate(true);\r
+        addTestComponent(u);\r
+\r
+        l = new Label(getUploadcount());\r
+        addComponent(l);\r
+\r
+        // TODO incomplete test, still hard to repeat the issue\r
+\r
+        u.addListener(new Upload.StartedListener() {\r
+\r
+            public void uploadStarted(StartedEvent event) {\r
+                addComponent(new Label("SluggishLabel") {\r
+                    @Override\r
+                    public void paintContent(PaintTarget target)\r
+                            throws PaintException {\r
+                        try {\r
+                            Thread.sleep(600);\r
+                        } catch (InterruptedException e) {\r
+                            // TODO Auto-generated catch block\r
+                            e.printStackTrace();\r
+                        }\r
+                        super.paintContent(target);\r
+                    }\r
+                });\r
+\r
+            }\r
+        });\r
+\r
+        u.addListener(new Upload.FinishedListener() {\r
+            public void uploadFinished(FinishedEvent event) {\r
+                getMainWindow().showNotification("Done");\r
+                u.setEnabled(false);\r
+                Label l2 = new Label(getUploadcount());\r
+                getLayout().replaceComponent(l, l2);\r
+                l = l2;\r
+            }\r
+        });\r
+\r
+    }\r
+\r
+    private String getUploadcount() {\r
+        return counter++ + " Downloads";\r
+    }\r
+\r
+    @Override\r
+    protected List<Component> createActions() {\r
+        List<Component> actions = new ArrayList<Component>();\r
+\r
+        Button enabled = new Button("Toggle Enabled", new ClickListener() {\r
+\r
+            public void buttonClick(ClickEvent event) {\r
+                for (Component c : getTestComponents()) {\r
+                    c.setEnabled(!c.isEnabled());\r
+                }\r
+\r
+            }\r
+        });\r
+        actions.add(enabled);\r
+\r
+        return actions;\r
+    }\r
+\r
+    public OutputStream receiveUpload(String filename, String MIMEType) {\r
+        getMainWindow().showNotification("Receiving upload");\r
+        return new ByteArrayOutputStream();\r
+    }\r
+\r
+}\r