Updated Branches: refs/heads/master 02d3e2135 -> d78132be9
WICKET-4923 additional query parameters have to be added to the new url Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/d78132be Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/d78132be Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/d78132be Branch: refs/heads/master Commit: d78132be9f3634960f3e87704d40a13887626c00 Parents: 02d3e21 Author: svenmeier <[email protected]> Authored: Wed Dec 12 15:21:30 2012 +0100 Committer: svenmeier <[email protected]> Committed: Wed Dec 12 15:28:42 2012 +0100 ---------------------------------------------------------------------- .../wicket/core/request/mapper/CryptoMapper.java | 2 + .../core/request/mapper/CryptoMapperTest.java | 36 ++++++++++++++- 2 files changed, 36 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/d78132be/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/CryptoMapper.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/CryptoMapper.java b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/CryptoMapper.java index 86c551a..bb65517 100755 --- a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/CryptoMapper.java +++ b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/CryptoMapper.java @@ -234,6 +234,8 @@ public class CryptoMapper implements IRequestMapper } url.getQueryParameters().addAll(originalUrl.getQueryParameters()); + // WICKET-4923 additional parameters + url.getQueryParameters().addAll(encryptedUrl.getQueryParameters()); } catch (Exception e) { http://git-wip-us.apache.org/repos/asf/wicket/blob/d78132be/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/CryptoMapperTest.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/CryptoMapperTest.java b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/CryptoMapperTest.java index da8e80de8..2c0577c 100644 --- a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/CryptoMapperTest.java +++ b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/CryptoMapperTest.java @@ -16,13 +16,18 @@ */ package org.apache.wicket.core.request.mapper; +import org.apache.wicket.MockPage; +import org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler; +import org.apache.wicket.core.request.handler.PageAndComponentProvider; import org.apache.wicket.core.request.handler.PageProvider; import org.apache.wicket.core.request.handler.RenderPageRequestHandler; import org.apache.wicket.core.request.handler.RequestSettingRequestHandler; +import org.apache.wicket.markup.html.link.ILinkListener; import org.apache.wicket.protocol.http.WebApplication; import org.apache.wicket.request.IRequestHandler; import org.apache.wicket.request.Request; import org.apache.wicket.request.Url; +import org.apache.wicket.request.component.IRequestableComponent; import org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandler; import org.apache.wicket.request.mapper.parameter.PageParameters; import org.apache.wicket.request.resource.PackageResourceReference; @@ -170,8 +175,8 @@ public class CryptoMapperTest extends AbstractMapperTest } /** - * When the home page url is requested, with parameters, the url will contain only page parameters. - * It should not be encrypted, otherwise we get needless redirects. + * When the home page url is requested, with parameters, the url will contain only page + * parameters. It should not be encrypted, otherwise we get needless redirects. */ @Test public void homePageWithParameters() @@ -296,4 +301,31 @@ public class CryptoMapperTest extends AbstractMapperTest assertEquals(getClass(), handler.getResourceReference().getScope()); assertEquals("less-crypt.txt", handler.getResourceReference().getName()); } + + /** + * Additional parameters, WICKET-4923 + */ + @Test + public void additionalParameters() + { + MockPage page = new MockPage(); + IRequestableComponent c = page.get("foo:bar"); + PageAndComponentProvider provider = new PageAndComponentProvider(page, c); + IRequestHandler handler = new ListenerInterfaceRequestHandler(provider, + ILinkListener.INTERFACE); + + Url url = mapper.mapHandler(handler); + url.addQueryParameter("q", "foo"); + + Request request = getRequest(url); + + IRequestHandler requestHandler = mapper.mapRequest(request); + + assertTrue(requestHandler instanceof RequestSettingRequestHandler); + + assertEquals("foo", ((RequestSettingRequestHandler)requestHandler).getRequest() + .getUrl() + .getQueryParameterValue("q") + .toString()); + } } \ No newline at end of file
