]> source.dussan.org Git - vaadin-framework.git/commitdiff
test case
authorMatti Tahvonen <matti.tahvonen@itmill.com>
Thu, 29 Apr 2010 09:56:49 +0000 (09:56 +0000)
committerMatti Tahvonen <matti.tahvonen@itmill.com>
Thu, 29 Apr 2010 09:56:49 +0000 (09:56 +0000)
svn changeset:12904/svn branch:6.3

tests/src/com/vaadin/tests/components/upload/TestUploadAndDisableOnSuccess.java

index 4a4c391947918c233a1bda371f36d288b0884ddb..1e3abe146df7704b39225ca8066c135da15eecea 100644 (file)
@@ -5,8 +5,6 @@ import java.io.OutputStream;
 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
@@ -22,7 +20,7 @@ public class TestUploadAndDisableOnSuccess extends ComponentTestCase implements
         Receiver {\r
     @Override\r
     protected String getDescription() {\r
-        return "Possible timing issue, when upload is disabled on success.";\r
+        return "If upload is detached and attached during upload, the client side componenent never receives information that the upload has finished. Second update will not be successful.";\r
     }\r
 \r
     @Override\r
@@ -36,64 +34,53 @@ public class TestUploadAndDisableOnSuccess extends ComponentTestCase implements
     @Override\r
     protected void setup() {\r
         super.setup();\r
-        final Upload u;\r
 \r
-        u = new Upload("Undefined wide upload", this);\r
+        final Label labe = new Label();\r
+\r
+        addComponent(labe);\r
+\r
+        final Upload u;\r
+        u = new Upload(null, 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
+                 * Remove component before upload from the same vertical layout.\r
+                 * Causes upload to be detached/attached -> upload loses it\r
+                 * target iframes onload listener -> puts VUpload inappropriate\r
+                 * state.\r
+                 */\r
+                getLayout().removeComponent(labe);\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
+                l.setValue(getUploadcount());\r
             }\r
         });\r
 \r
     }\r
 \r
     private String getUploadcount() {\r
-        return counter++ + " Downloads";\r
+        return counter++ + " uploads";\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
@@ -102,7 +89,12 @@ public class TestUploadAndDisableOnSuccess extends ComponentTestCase implements
     }\r
 \r
     public OutputStream receiveUpload(String filename, String MIMEType) {\r
-        getMainWindow().showNotification("Receiving upload");\r
+        // sleep to ensure change before upload is complete\r
+        try {\r
+            Thread.sleep(1000);\r
+        } catch (InterruptedException e) {\r
+            e.printStackTrace();\r
+        }\r
         return new ByteArrayOutputStream();\r
     }\r
 \r