diff options
author | Anna Koskinen <anna@vaadin.com> | 2013-02-01 10:57:41 +0200 |
---|---|---|
committer | Vaadin Code Review <review@vaadin.com> | 2013-02-05 14:26:33 +0000 |
commit | 799a969b087771d102d9a3f835ba4d73bc0445ad (patch) | |
tree | a814a5c54e867df7042e8213382362b94b150bff /uitest | |
parent | 515d3c39e3a02e4dc266cac7fd6919748a10e243 (diff) | |
download | vaadin-framework-799a969b087771d102d9a3f835ba4d73bc0445ad.tar.gz vaadin-framework-799a969b087771d102d9a3f835ba4d73bc0445ad.zip |
Merge of (#9548) to Vaadin 7.
Calculate upload file size correctly when there are multibyte characters
in the file name.
Change-Id: I85f1053ce6ad29140d0a37fe8ab4861b0f717fc9
Diffstat (limited to 'uitest')
-rw-r--r-- | uitest/src/com/vaadin/tests/components/upload/TestFileUploadSize.java | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/uitest/src/com/vaadin/tests/components/upload/TestFileUploadSize.java b/uitest/src/com/vaadin/tests/components/upload/TestFileUploadSize.java new file mode 100644 index 0000000000..32f5c93bfd --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/upload/TestFileUploadSize.java @@ -0,0 +1,80 @@ +package com.vaadin.tests.components.upload; + +import java.io.ByteArrayOutputStream; +import java.io.OutputStream; + +import com.vaadin.shared.ui.MarginInfo; +import com.vaadin.tests.components.TestBase; +import com.vaadin.ui.GridLayout; +import com.vaadin.ui.Label; +import com.vaadin.ui.Notification; +import com.vaadin.ui.Upload; +import com.vaadin.ui.Upload.FinishedEvent; +import com.vaadin.ui.Upload.Receiver; +import com.vaadin.ui.Upload.StartedEvent; + +public class TestFileUploadSize extends TestBase implements Receiver { + + private Label label = new Label("No finished uploads."); + private Label receivedSize = new Label("-"); + private Label expectedSize = new Label("-"); + + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + + @Override + protected void setup() { + getLayout().setMargin(new MarginInfo(true, false, false, false)); + getLayout().setSpacing(true); + + Upload u = new Upload("Upload", new Upload.Receiver() { + + public OutputStream receiveUpload(String filename, String mimeType) { + return baos; + } + }); + u.setId("UPL"); + u.addStartedListener(new Upload.StartedListener() { + + public void uploadStarted(StartedEvent event) { + expectedSize.setValue(String.valueOf(event.getContentLength())); + } + }); + u.addFinishedListener(new Upload.FinishedListener() { + + public void uploadFinished(FinishedEvent event) { + label.setValue("Upload finished. Name: " + event.getFilename()); + receivedSize.setValue(String.valueOf(baos.size())); + baos.reset(); + } + }); + + expectedSize.setId("expected"); + receivedSize.setId("received"); + + GridLayout grid = new GridLayout(2, 2); + grid.addComponent(new Label("Expected size:"), 0, 0); + grid.addComponent(new Label("Received size:"), 0, 1); + grid.addComponent(expectedSize, 1, 0); + grid.addComponent(receivedSize, 1, 1); + + addComponent(label); + addComponent(grid); + addComponent(u); + } + + public OutputStream receiveUpload(String filename, String MIMEType) { + Notification.show("Receiving upload"); + return new ByteArrayOutputStream(); + } + + @Override + protected Integer getTicketNumber() { + return 9548; + } + + @Override + protected String getDescription() { + return "Multibyte characters in filenames should not cause the upload size to be computed incorrectly"; + } + +} |