WICKET-5468 UrlRenderer#renderRelativeUrl potentially appends "/" after query 
parameters

(cherry picked from commit d9f50272e37b62a78f6a67c9b9f3f32f024d0ab8)


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/4f9aa2d9
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/4f9aa2d9
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/4f9aa2d9

Branch: 
refs/heads/sandbox/preserve-page-parameters-and-execute-listener-interface-after-expiration
Commit: 4f9aa2d95ff064d81c49229b3c94d9c6a959cd36
Parents: 79c7cb2
Author: Martin Tzvetanov Grigorov <mgrigo...@apache.org>
Authored: Wed Jan 15 12:02:00 2014 +0200
Committer: Martin Tzvetanov Grigorov <mgrigo...@apache.org>
Committed: Wed Jan 15 12:02:36 2014 +0200

----------------------------------------------------------------------
 .../org/apache/wicket/request/cycle/UrlRendererTest.java | 11 +++++++++++
 .../main/java/org/apache/wicket/request/UrlRenderer.java |  4 ++--
 2 files changed, 13 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/4f9aa2d9/wicket-core/src/test/java/org/apache/wicket/request/cycle/UrlRendererTest.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/request/cycle/UrlRendererTest.java
 
b/wicket-core/src/test/java/org/apache/wicket/request/cycle/UrlRendererTest.java
index dc257be..3fecf79 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/request/cycle/UrlRendererTest.java
+++ 
b/wicket-core/src/test/java/org/apache/wicket/request/cycle/UrlRendererTest.java
@@ -214,6 +214,17 @@ public class UrlRendererTest extends Assert
        }
 
        /**
+        * https://issues.apache.org/jira/browse/WICKET-5468
+        */
+       @Test
+       public void renderUrlWithTrailingDotsInQueryString()
+       {
+               UrlRenderer r1 = new UrlRenderer(new 
MockWebRequest(Url.parse("some/path")));
+
+               assertEquals("./path?a=b..", 
r1.renderUrl(Url.parse("some/path?a=b..")));
+       }
+
+       /**
         * Verify that absolute urls are rendered as is, ignoring the current 
client url and base url
         * completely.
         * 

http://git-wip-us.apache.org/repos/asf/wicket/blob/4f9aa2d9/wicket-request/src/main/java/org/apache/wicket/request/UrlRenderer.java
----------------------------------------------------------------------
diff --git 
a/wicket-request/src/main/java/org/apache/wicket/request/UrlRenderer.java 
b/wicket-request/src/main/java/org/apache/wicket/request/UrlRenderer.java
index a09542d..0c83d82 100644
--- a/wicket-request/src/main/java/org/apache/wicket/request/UrlRenderer.java
+++ b/wicket-request/src/main/java/org/apache/wicket/request/UrlRenderer.java
@@ -290,8 +290,8 @@ public class UrlRenderer
                        renderedUrl = "./" + renderedUrl;
                }
 
-               // sanitize end
-               if (renderedUrl.endsWith(".."))
+               // add trailing slash if the url has no query string and ends 
with ..
+               if (renderedUrl.indexOf('?') == -1 && 
renderedUrl.endsWith(".."))
                {
                        // WICKET-4401
                        renderedUrl = renderedUrl + '/';

Reply via email to