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
 		{