You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by dr...@apache.org on 2010/01/11 21:57:06 UTC
svn commit: r898062 - in /tapestry/tapestry5/trunk/tapestry-core/src:
main/java/org/apache/tapestry5/internal/services/LinkImpl.java
test/java/org/apache/tapestry5/internal/services/LinkImplTest.java
Author: drobiazko
Date: Mon Jan 11 20:57:05 2010
New Revision: 898062
URL: http://svn.apache.org/viewvc?rev=898062&view=rev
Log:
TAP5-937: LinkImpl does not handle parameters properly when passed into the constructor
Modified:
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/LinkImpl.java
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/LinkImplTest.java
Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/LinkImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/LinkImpl.java?rev=898062&r1=898061&r2=898062&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/LinkImpl.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/LinkImpl.java Mon Jan 11 20:57:05 2010
@@ -131,7 +131,7 @@
builder.append(absoluteURI);
- String sep = "?";
+ String sep = absoluteURI.contains("?") ? "&" : "?";
for (String name : getParameterNames())
{
Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/LinkImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/LinkImplTest.java?rev=898062&r1=898061&r2=898062&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/LinkImplTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/LinkImplTest.java Mon Jan 11 20:57:05 2010
@@ -16,9 +16,7 @@
import org.apache.tapestry5.Link;
import org.apache.tapestry5.internal.test.InternalBaseTestCase;
-import org.apache.tapestry5.services.ContextPathEncoder;
import org.apache.tapestry5.services.Response;
-import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class LinkImplTest extends InternalBaseTestCase
@@ -29,14 +27,6 @@
private static final String ENCODED = "*encoded*";
- private ContextPathEncoder contextPathEncoder;
-
- @BeforeClass
- public void setup()
- {
- contextPathEncoder = getService(ContextPathEncoder.class);
- }
-
@Test
public void simple_redirect()
{
@@ -131,4 +121,25 @@
verify();
}
+
+ @Test
+ public void to_uri_with_added_parameters_and_on_construction_uri()
+ {
+ RequestPathOptimizer optimizer = mockRequestPathOptimizer();
+ Response response = mockResponse();
+
+ String expectedURI = "/ctx/foo?foo=bar&baz=barney";
+ train_encodeURL(response, expectedURI, expectedURI);
+
+ replay();
+
+
+ Link link = new LinkImpl("/ctx/foo?foo=bar", false, false, response, optimizer);
+ link.addParameter("baz", "barney");
+
+ assertEquals(link.toURI(), expectedURI);
+
+
+ verify();
+ }
}