You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2014/11/24 19:34:29 UTC
wicket git commit: WICKET-5774 UrlRenderer should render full and
absolute urls in their canonical form
Repository: wicket
Updated Branches:
refs/heads/master 61d6264b2 -> c572210a6
WICKET-5774 UrlRenderer should render full and absolute urls in their canonical form
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/c572210a
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/c572210a
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/c572210a
Branch: refs/heads/master
Commit: c572210a66025611973fa581d3890d5b31023448
Parents: 61d6264
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Mon Nov 24 19:33:44 2014 +0100
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Mon Nov 24 19:34:20 2014 +0100
----------------------------------------------------------------------
.../wicket/request/cycle/UrlRendererTest.java | 36 ++++++++++++++++++++
.../org/apache/wicket/request/UrlRenderer.java | 2 +-
2 files changed, 37 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/c572210a/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 3fecf79..e142fdf 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
@@ -583,4 +583,40 @@ public class UrlRendererTest extends Assert
String rendered = renderer.renderRelativeUrl(Url.parse("/filter;jsessionid=1234"));
assertEquals("../", rendered);
}
+
+ /**
+ * https://issues.apache.org/jira/browse/WICKET-5774
+ */
+ @Test
+ public void renderFullUrlWithNoOpLeadingSegments()
+ {
+ UrlRenderer renderer = new UrlRenderer(new MockWebRequest(Url.parse("any/thing")));
+
+ String fullUrl = renderer.renderFullUrl(Url.parse("http://www.example.com:8888/./../one/two/three"));
+ assertEquals("http://www.example.com:8888/one/two/three", fullUrl);
+
+ fullUrl = renderer.renderFullUrl(Url.parse("http://www.example.com:8888/.././one/two/three"));
+ assertEquals("http://www.example.com:8888/one/two/three", fullUrl);
+
+ fullUrl = renderer.renderFullUrl(Url.parse("http://www.example.com:8888/one/.././two/three"));
+ assertEquals("http://www.example.com:8888/two/three", fullUrl);
+ }
+
+ /**
+ * https://issues.apache.org/jira/browse/WICKET-5774
+ */
+ @Test
+ public void renderContextAbsoluteUrlWithNoOpLeadingSegments()
+ {
+ UrlRenderer renderer = new UrlRenderer(new MockWebRequest(Url.parse("any/thing")));
+
+ String fullUrl = renderer.renderFullUrl(Url.parse("/./../one/two/three"));
+ assertEquals("/one/two/three", fullUrl);
+
+ fullUrl = renderer.renderFullUrl(Url.parse("/.././one/two/three"));
+ assertEquals("/one/two/three", fullUrl);
+
+ fullUrl = renderer.renderFullUrl(Url.parse("/one/.././two/three"));
+ assertEquals("/two/three", fullUrl);
+ }
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/c572210a/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 0c83d82..e31991d 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
@@ -141,7 +141,7 @@ public class UrlRenderer
final String path;
if (url.isFull() || url.isContextAbsolute())
{
- path = url.toString();
+ path = url.canonical().toString();
}
else
{