From 3d94bb2d7831602ee6fd213b991de933f52e43ac Mon Sep 17 00:00:00 2001 From: Matti Tahvonen Date: Wed, 28 Apr 2010 11:51:44 +0000 Subject: [PATCH] test case for #4605 svn changeset:12882/svn branch:6.3 --- .../upload/TestUploadAndDisableOnSuccess.java | 109 ++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 tests/src/com/vaadin/tests/components/upload/TestUploadAndDisableOnSuccess.java 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 index 0000000000..4a4c391947 --- /dev/null +++ b/tests/src/com/vaadin/tests/components/upload/TestUploadAndDisableOnSuccess.java @@ -0,0 +1,109 @@ +package com.vaadin.tests.components.upload; + +import java.io.ByteArrayOutputStream; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.List; + +import com.vaadin.terminal.PaintException; +import com.vaadin.terminal.PaintTarget; +import com.vaadin.tests.components.ComponentTestCase; +import com.vaadin.ui.Button; +import com.vaadin.ui.Component; +import com.vaadin.ui.Label; +import com.vaadin.ui.Upload; +import com.vaadin.ui.Button.ClickEvent; +import com.vaadin.ui.Button.ClickListener; +import com.vaadin.ui.Upload.FinishedEvent; +import com.vaadin.ui.Upload.Receiver; +import com.vaadin.ui.Upload.StartedEvent; + +public class TestUploadAndDisableOnSuccess extends ComponentTestCase implements + Receiver { + @Override + protected String getDescription() { + return "Possible timing issue, when upload is disabled on success."; + } + + @Override + protected Integer getTicketNumber() { + return 4605; + } + + int counter = 0; + private Label l; + + @Override + protected void setup() { + super.setup(); + final Upload u; + + u = new Upload("Undefined wide upload", this); + u.setImmediate(true); + addTestComponent(u); + + l = new Label(getUploadcount()); + addComponent(l); + + // TODO incomplete test, still hard to repeat the issue + + u.addListener(new Upload.StartedListener() { + + public void uploadStarted(StartedEvent event) { + addComponent(new Label("SluggishLabel") { + @Override + public void paintContent(PaintTarget target) + throws PaintException { + try { + Thread.sleep(600); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + super.paintContent(target); + } + }); + + } + }); + + u.addListener(new Upload.FinishedListener() { + public void uploadFinished(FinishedEvent event) { + getMainWindow().showNotification("Done"); + u.setEnabled(false); + Label l2 = new Label(getUploadcount()); + getLayout().replaceComponent(l, l2); + l = l2; + } + }); + + } + + private String getUploadcount() { + return counter++ + " Downloads"; + } + + @Override + protected List createActions() { + List actions = new ArrayList(); + + Button enabled = new Button("Toggle Enabled", new ClickListener() { + + public void buttonClick(ClickEvent event) { + for (Component c : getTestComponents()) { + c.setEnabled(!c.isEnabled()); + } + + } + }); + actions.add(enabled); + + return actions; + } + + public OutputStream receiveUpload(String filename, String MIMEType) { + getMainWindow().showNotification("Receiving upload"); + return new ByteArrayOutputStream(); + } + +} -- 2.39.5