You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

DownloadStreamTest.java 1.2KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. package com.vaadin.server;
  2. import static org.mockito.Matchers.contains;
  3. import static org.mockito.Matchers.eq;
  4. import static org.mockito.Mockito.mock;
  5. import static org.mockito.Mockito.verify;
  6. import java.io.IOException;
  7. import java.io.InputStream;
  8. import org.junit.Before;
  9. import org.junit.Test;
  10. public class DownloadStreamTest {
  11. private String filename = "A å日.png";
  12. private String encodedFileName = "A" + "%20" // space
  13. + "%c3%a5" // å
  14. + "%e6%97%a5" // 日
  15. + ".png";
  16. private DownloadStream stream;
  17. @Before
  18. public void setup() {
  19. stream = new DownloadStream(mock(InputStream.class), "", filename);
  20. }
  21. @Test
  22. public void contentDispositionFilenameIsUtf8Encoded() throws IOException {
  23. VaadinResponse response = mock(VaadinResponse.class);
  24. stream.writeResponse(mock(VaadinRequest.class), response);
  25. verify(response).setHeader(eq(DownloadStream.CONTENT_DISPOSITION),
  26. contains(String.format("filename=\"%s\";", encodedFileName)));
  27. verify(response).setHeader(eq(DownloadStream.CONTENT_DISPOSITION),
  28. contains(
  29. String.format("filename*=utf-8''%s", encodedFileName)));
  30. }
  31. }