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

Reply via email to