Author: mgrigorov
Date: Sun Jan 16 12:35:52 2011
New Revision: 1059546
URL: http://svn.apache.org/viewvc?rev=1059546&view=rev
Log:
WICKET-3337 Url to the home page is not correct when the current base url has
only one segment
Use './' when base url and target url have the same number of segments.
Changelist with updated test html expectations will be committed separately to
not add noise to the actual diff for the fix.
Modified:
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/cycle/UrlRendererTest.java
wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/UrlRenderer.java
Modified:
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/cycle/UrlRendererTest.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/cycle/UrlRendererTest.java?rev=1059546&r1=1059545&r2=1059546&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/cycle/UrlRendererTest.java
(original)
+++
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/cycle/UrlRendererTest.java
Sun Jan 16 12:35:52 2011
@@ -26,7 +26,7 @@ import org.apache.wicket.request.UrlRend
import org.mockito.Mockito;
/**
- * @author MAtej Knopp
+ * @author Matej Knopp
*/
public class UrlRendererTest extends TestCase
{
@@ -36,8 +36,8 @@ public class UrlRendererTest extends Tes
public void test1()
{
UrlRenderer r1 = new UrlRenderer(Url.parse("foo/bar/baz?a=b"));
- assertEquals("xyz?x=y",
r1.renderUrl(Url.parse("foo/bar/xyz?x=y")));
- assertEquals("baz/xyz?x=y",
r1.renderUrl(Url.parse("foo/bar/baz/xyz?x=y")));
+ assertEquals("./xyz?x=y",
r1.renderUrl(Url.parse("foo/bar/xyz?x=y")));
+ assertEquals("./baz/xyz?x=y",
r1.renderUrl(Url.parse("foo/bar/baz/xyz?x=y")));
assertEquals("../aaa/xyz?x=y",
r1.renderUrl(Url.parse("foo/aaa/xyz?x=y")));
assertEquals("../../bbb/aaa/xyz?x=y",
r1.renderUrl(Url.parse("bbb/aaa/xyz?x=y")));
}
@@ -67,7 +67,7 @@ public class UrlRendererTest extends Tes
public void test5()
{
UrlRenderer r1 = new UrlRenderer(Url.parse("url"));
- assertEquals("url?1", r1.renderUrl(Url.parse("url?1")));
+ assertEquals("./url?1", r1.renderUrl(Url.parse("url?1")));
}
/**
@@ -76,7 +76,7 @@ public class UrlRendererTest extends Tes
public void test6()
{
UrlRenderer r1 = new UrlRenderer(Url.parse("url/"));
- assertEquals("x?1", r1.renderUrl(Url.parse("url/x?1")));
+ assertEquals("./x?1", r1.renderUrl(Url.parse("url/x?1")));
}
/**
@@ -95,7 +95,7 @@ public class UrlRendererTest extends Tes
public void test8()
{
UrlRenderer r1 = new
UrlRenderer(Url.parse("en/first-test-page?16-1.ILinkListener-l1"));
- assertEquals("first-test-page/indexed1/indexed2/indexed3?p1=v1",
+
assertEquals("./first-test-page/indexed1/indexed2/indexed3?p1=v1",
r1.renderUrl(Url.parse("en/first-test-page/indexed1/indexed2/indexed3?p1=v1")));
}
@@ -137,4 +137,13 @@ public class UrlRendererTest extends Tes
assertTrue(true);
}
}
+
+ /**
+ * <a
href="https://issues.apache.org/jira/browse/WICKET-3337">WICKET-3337</a>
+ */
+ public void test11()
+ {
+ UrlRenderer r1 = new UrlRenderer(Url.parse("a"));
+ assertEquals(".", r1.renderUrl(Url.parse("")));
+ }
}
Modified:
wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/UrlRenderer.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/UrlRenderer.java?rev=1059546&r1=1059545&r2=1059546&view=diff
==============================================================================
---
wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/UrlRenderer.java
(original)
+++
wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/UrlRenderer.java
Sun Jan 16 12:35:52 2011
@@ -124,9 +124,18 @@ public class UrlRenderer
urlSegments.add(0, last);
}
- for (int i = common + 1; i < baseUrlSegments.size();
++i)
+ int baseUrlSize = baseUrlSegments.size();
+ if (common + 1 == baseUrlSize)
{
- newSegments.add("..");
+ newSegments.add(".");
+ }
+ else
+ {
+
+ for (int i = common + 1; i < baseUrlSize; ++i)
+ {
+ newSegments.add("..");
+ }
}
newSegments.addAll(urlSegments);
@@ -151,7 +160,7 @@ public class UrlRenderer
}
PrependingStringBuffer buffer = new PrependingStringBuffer(url);
- for (int i = 0; i < baseUrl.getSegments().size() - 1; ++i)
+ for (int i = 0; i < getBaseUrl().getSegments().size() - 1; ++i)
{
buffer.prepend("../");
}