WICKET-4934 DownloadLink uses wrong encoding for spaces/non-ASCII characters
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/b11bb191 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/b11bb191 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/b11bb191 Branch: refs/heads/wicket-4774 Commit: b11bb1912eee9af58ac6b7aad5f1fffd60e1d75f Parents: 46f1835 Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Thu May 2 17:53:26 2013 +0200 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Thu May 2 17:53:26 2013 +0200 ---------------------------------------------------------------------- .../http/servlet/ServletWebResponseTest.java | 32 +++++++++++++++ 1 files changed, 32 insertions(+), 0 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/b11bb191/wicket-core/src/test/java/org/apache/wicket/protocol/http/servlet/ServletWebResponseTest.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/protocol/http/servlet/ServletWebResponseTest.java b/wicket-core/src/test/java/org/apache/wicket/protocol/http/servlet/ServletWebResponseTest.java index d0d09bf..e92aa32 100644 --- a/wicket-core/src/test/java/org/apache/wicket/protocol/http/servlet/ServletWebResponseTest.java +++ b/wicket-core/src/test/java/org/apache/wicket/protocol/http/servlet/ServletWebResponseTest.java @@ -27,6 +27,8 @@ import java.io.StringWriter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.apache.wicket.protocol.http.mock.MockHttpServletRequest; +import org.apache.wicket.protocol.http.mock.MockHttpServletResponse; import org.apache.wicket.request.Url; import org.junit.Assert; import org.junit.Test; @@ -113,4 +115,34 @@ public class ServletWebResponseTest extends Assert verify(httpServletResponse).sendRedirect("relative/path"); assertTrue(webResponse.isRedirect()); } + + /** + * WICKET-4934 DownloadLink uses wrong encoding for spaces/non-ASCII characters + */ + @Test + public void setDispositionHeader() + { + ServletWebRequest webRequest = mock(ServletWebRequest.class); + MockHttpServletRequest httpRequest = mock(MockHttpServletRequest.class); + HttpServletResponse httpResponse = new MockHttpServletResponse(httpRequest); + ServletWebResponse response = new ServletWebResponse(webRequest, httpResponse); + + response.setInlineHeader("name with spaces"); + String header = httpResponse.getHeader("Content-Disposition"); + assertEquals("inline; filename=\"name%20with%20spaces\"; filename*=UTF-8''name%20with%20spaces", header); + + // says: "name with bulgarian" + response.setInlineHeader("name with бÑлгаÑÑки"); + header = httpResponse.getHeader("Content-Disposition"); + assertEquals("inline; filename=\"name%20with%20%D0%B1%D1%8A%D0%BB%D0%B3%D0%B0%D1%80%D1%81%D0%BA%D0%B8\"; filename*=UTF-8''name%20with%20%D0%B1%D1%8A%D0%BB%D0%B3%D0%B0%D1%80%D1%81%D0%BA%D0%B8", header); + + response.setAttachmentHeader("name with spaces"); + header = httpResponse.getHeader("Content-Disposition"); + assertEquals("attachment; filename=\"name%20with%20spaces\"; filename*=UTF-8''name%20with%20spaces", header); + + // says: "name with bulgarian" + response.setAttachmentHeader("name with бÑлгаÑÑки"); + header = httpResponse.getHeader("Content-Disposition"); + assertEquals("attachment; filename=\"name%20with%20%D0%B1%D1%8A%D0%BB%D0%B3%D0%B0%D1%80%D1%81%D0%BA%D0%B8\"; filename*=UTF-8''name%20with%20%D0%B1%D1%8A%D0%BB%D0%B3%D0%B0%D1%80%D1%81%D0%BA%D0%B8", header); + } } \ No newline at end of file
