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 + '/';