summaryrefslogtreecommitdiffstats
path: root/uitest
diff options
context:
space:
mode:
authorAnna Koskinen <anna@vaadin.com>2013-02-01 10:57:41 +0200
committerVaadin Code Review <review@vaadin.com>2013-02-05 14:26:33 +0000
commit799a969b087771d102d9a3f835ba4d73bc0445ad (patch)
treea814a5c54e867df7042e8213382362b94b150bff /uitest
parent515d3c39e3a02e4dc266cac7fd6919748a10e243 (diff)
downloadvaadin-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.java80
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";
+ }
+
+}