Updated Branches:
  refs/heads/master f837632cf -> 0be7422c7

WICKET-4338 reverted, post parameters don't belong to page parameters, change 
signature IPageParametersEncoder#decodePageParameters(Url)


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/0be7422c
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/0be7422c
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/0be7422c

Branch: refs/heads/master
Commit: 0be7422c7df1fe1b92b7456a19dffd7f55be6255
Parents: f837632
Author: Sven Meier <[email protected]>
Authored: Thu Feb 23 23:51:57 2012 +0100
Committer: Sven Meier <[email protected]>
Committed: Thu Feb 23 23:51:57 2012 +0100

----------------------------------------------------------------------
 .../wicket/request/mapper/AbstractMapper.java      |    2 +-
 .../mapper/parameter/IPageParametersEncoder.java   |    7 +-
 .../mapper/parameter/PageParametersEncoder.java    |   20 +---
 .../parameter/UrlPathPageParametersEncoder.java    |    8 +-
 .../parameter/PageParametersEncoderTest.java       |   90 +--------------
 .../UrlPathPageParametersEncoderTest.java          |   58 +---------
 6 files changed, 25 insertions(+), 160 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/0be7422c/wicket-request/src/main/java/org/apache/wicket/request/mapper/AbstractMapper.java
----------------------------------------------------------------------
diff --git 
a/wicket-request/src/main/java/org/apache/wicket/request/mapper/AbstractMapper.java
 
b/wicket-request/src/main/java/org/apache/wicket/request/mapper/AbstractMapper.java
index 31e713a..266c10e 100644
--- 
a/wicket-request/src/main/java/org/apache/wicket/request/mapper/AbstractMapper.java
+++ 
b/wicket-request/src/main/java/org/apache/wicket/request/mapper/AbstractMapper.java
@@ -149,7 +149,7 @@ public abstract class AbstractMapper implements 
IRequestMapper
                        removeMetaParameter(urlCopy);
                }
 
-               return 
encoder.decodePageParameters(request.cloneWithUrl(urlCopy));
+               return encoder.decodePageParameters(urlCopy);
        }
 
        /**

http://git-wip-us.apache.org/repos/asf/wicket/blob/0be7422c/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/IPageParametersEncoder.java
----------------------------------------------------------------------
diff --git 
a/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/IPageParametersEncoder.java
 
b/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/IPageParametersEncoder.java
index 35d3ec8..cef8f50 100644
--- 
a/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/IPageParametersEncoder.java
+++ 
b/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/IPageParametersEncoder.java
@@ -17,7 +17,6 @@
 package org.apache.wicket.request.mapper.parameter;
 
 import org.apache.wicket.request.IRequestHandler;
-import org.apache.wicket.request.Request;
 import org.apache.wicket.request.Url;
 
 /**
@@ -32,6 +31,7 @@ public interface IPageParametersEncoder
         * the URL generated for {@link IRequestHandler}.
         * 
         * @param pageParameters
+        *            parameters to encode
         * @return Url generated from the page parameters
         */
        Url encodePageParameters(PageParameters pageParameters);
@@ -40,8 +40,9 @@ public interface IPageParametersEncoder
         * Decodes the given URL to {@link PageParameters}. The URL will have 
all
         * {@link IRequestHandler} specified segments/parameters stripped.
         * 
-        * @param request
+        * @param url
+        *            url to decode
         * @return {@link PageParameters} instance or <code>null</code> if empty
         */
-       PageParameters decodePageParameters(Request request);
+       PageParameters decodePageParameters(Url url);
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/0be7422c/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/PageParametersEncoder.java
----------------------------------------------------------------------
diff --git 
a/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/PageParametersEncoder.java
 
b/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/PageParametersEncoder.java
index 5687a71..53bdbcf 100644
--- 
a/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/PageParametersEncoder.java
+++ 
b/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/PageParametersEncoder.java
@@ -16,13 +16,8 @@
  */
 package org.apache.wicket.request.mapper.parameter;
 
-import java.util.List;
-
-import org.apache.wicket.request.IRequestParameters;
-import org.apache.wicket.request.Request;
 import org.apache.wicket.request.Url;
 import org.apache.wicket.request.Url.QueryParameter;
-import org.apache.wicket.util.string.StringValue;
 
 /**
  * Simple encoder with direct indexed/named parameters mapping.
@@ -41,25 +36,20 @@ public class PageParametersEncoder implements 
IPageParametersEncoder
        /**
         * @see 
org.apache.wicket.request.mapper.parameter.IPageParametersEncoder#decodePageParameters(org.apache.wicket.request.Request)
         */
-       public PageParameters decodePageParameters(final Request request)
+       public PageParameters decodePageParameters(final Url url)
        {
                PageParameters parameters = new PageParameters();
 
                int i = 0;
-               for (String s : request.getUrl().getSegments())
+               for (String s : url.getSegments())
                {
                        parameters.set(i, s);
                        ++i;
                }
-               
-               IRequestParameters requestParameters = 
request.getRequestParameters();
-               for (String paramName : requestParameters.getParameterNames())
+
+               for (QueryParameter p : url.getQueryParameters())
                {
-                       List<StringValue> parameterValues = 
requestParameters.getParameterValues(paramName);
-                       for (StringValue paramValue : parameterValues)
-                       {
-                               parameters.add(paramName, paramValue);
-                       }
+                       parameters.add(p.getName(), p.getValue());
                }
 
                return parameters.isEmpty() ? null : parameters;

http://git-wip-us.apache.org/repos/asf/wicket/blob/0be7422c/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/UrlPathPageParametersEncoder.java
----------------------------------------------------------------------
diff --git 
a/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/UrlPathPageParametersEncoder.java
 
b/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/UrlPathPageParametersEncoder.java
index f31f5c1..5ac4628 100644
--- 
a/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/UrlPathPageParametersEncoder.java
+++ 
b/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/UrlPathPageParametersEncoder.java
@@ -18,7 +18,6 @@ package org.apache.wicket.request.mapper.parameter;
 
 import java.util.Iterator;
 
-import org.apache.wicket.request.Request;
 import org.apache.wicket.request.Url;
 import org.apache.wicket.util.lang.Args;
 import org.apache.wicket.util.string.Strings;
@@ -30,7 +29,8 @@ import org.apache.wicket.util.string.Strings;
  * {@link PageParametersEncoder}. The parameters are encoded in the following 
format:
  * {@code /param1Name/param1Value/param2Name/param2Value}.
  * </p>
- * <strong>Note</strong>: Because of the nature of the encoder it doesn't 
support POST request parameters.
+ * <strong>Note</strong>: Because of the nature of the encoder it doesn't 
support POST request
+ * parameters.
  * <p>
  * This used to be the default way of encoding page parameters in 1.4.x 
applications. Newer 1.5.x+
  * applications use the query string, by default. This class facilitates 
backwards compatibility and
@@ -64,11 +64,11 @@ public class UrlPathPageParametersEncoder implements 
IPageParametersEncoder
                return url;
        }
 
-       public PageParameters decodePageParameters(Request request)
+       public PageParameters decodePageParameters(Url url)
        {
                PageParameters params = new PageParameters();
 
-               for (Iterator<String> segment = 
request.getUrl().getSegments().iterator(); segment.hasNext();)
+               for (Iterator<String> segment = url.getSegments().iterator(); 
segment.hasNext();)
                {
                        String key = segment.next();
                        if (Strings.isEmpty(key))

http://git-wip-us.apache.org/repos/asf/wicket/blob/0be7422c/wicket-request/src/test/java/org/apache/wicket/request/mapper/parameter/PageParametersEncoderTest.java
----------------------------------------------------------------------
diff --git 
a/wicket-request/src/test/java/org/apache/wicket/request/mapper/parameter/PageParametersEncoderTest.java
 
b/wicket-request/src/test/java/org/apache/wicket/request/mapper/parameter/PageParametersEncoderTest.java
index e07439f..0490d0c 100644
--- 
a/wicket-request/src/test/java/org/apache/wicket/request/mapper/parameter/PageParametersEncoderTest.java
+++ 
b/wicket-request/src/test/java/org/apache/wicket/request/mapper/parameter/PageParametersEncoderTest.java
@@ -16,19 +16,7 @@
  */
 package org.apache.wicket.request.mapper.parameter;
 
-import java.nio.charset.Charset;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.wicket.request.IRequestParameters;
-import org.apache.wicket.request.Request;
 import org.apache.wicket.request.Url;
-import org.apache.wicket.util.string.StringValue;
 import org.junit.Assert;
 import org.junit.Test;
 
@@ -38,89 +26,21 @@ import org.junit.Test;
 public class PageParametersEncoderTest extends Assert
 {
        /**
-        * Tests that PageParametersEncoder decodes both GET and POST parameters
+        * Tests that PageParametersEncoder decodes parameters
+        * 
         * @throws Exception
         */
        @Test
-       public void decodePostParameters() throws Exception
+       public void decodeParameters() throws Exception
        {
                PageParametersEncoder encoder = new PageParametersEncoder();
-               Request request = new Request()
-               {
-                       @Override
-                       public Url getUrl()
-                       {
-                               return 
Url.parse("idx1/idx2?named1=value1&named2=value2");
-                       }
-
-                       @Override
-                       public Url getClientUrl()
-                       {
-                               return null;
-                       }
-
-                       @Override
-                       public Locale getLocale()
-                       {
-                               return null;
-                       }
-
-                       @Override
-                       public Charset getCharset()
-                       {
-                               return null;
-                       }
 
-                       @Override
-                       public Object getContainerRequest()
-                       {
-                               return null;
-                       }
+               Url url = Url.parse("idx1/idx2?named1=value1&named2=value2");
 
-                       @Override
-                       public IRequestParameters getPostParameters()
-                       {
-                               return new PostParameters();
-                       }
-               };
-
-               PageParameters pageParameters = 
encoder.decodePageParameters(request);
+               PageParameters pageParameters = 
encoder.decodePageParameters(url);
                assertEquals("idx1", pageParameters.get(0).toOptionalString());
                assertEquals("idx2", pageParameters.get(1).toOptionalString());
                assertEquals("value1", 
pageParameters.get("named1").toOptionalString());
                assertEquals("value2", 
pageParameters.get("named2").toOptionalString());
-               assertEquals("1", 
pageParameters.get("postOne").toOptionalString());
-               assertEquals("2", 
pageParameters.getValues("postTwo").get(0).toOptionalString());
-               assertEquals("2.1", 
pageParameters.getValues("postTwo").get(1).toOptionalString());
-       }
-
-       /**
-        * Mock IRequestParameters that provides static POST parameters
-        */
-       private static class PostParameters implements IRequestParameters
-       {
-               private final Map<String, List<StringValue>> params = new 
HashMap<String, List<StringValue>>();
-               {
-                       params.put("postOne", 
Arrays.asList(StringValue.valueOf("1")));
-                       params.put("postTwo", 
Arrays.asList(StringValue.valueOf("2"), StringValue.valueOf("2.1")));
-               }
-
-               public Set<String> getParameterNames()
-               {
-                       return params.keySet();
-               }
-
-               public StringValue getParameterValue(String name)
-               {
-                       List<StringValue> values = params.get(name);
-                       return (values != null && !values.isEmpty()) ? 
values.get(0)
-                                       : StringValue.valueOf((String)null);
-               }
-
-               public List<StringValue> getParameterValues(String name)
-               {
-                       List<StringValue> values = params.get(name);
-                       return values != null ? 
Collections.unmodifiableList(values) : null;
-               }
        }
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/0be7422c/wicket-request/src/test/java/org/apache/wicket/request/mapper/parameter/UrlPathPageParametersEncoderTest.java
----------------------------------------------------------------------
diff --git 
a/wicket-request/src/test/java/org/apache/wicket/request/mapper/parameter/UrlPathPageParametersEncoderTest.java
 
b/wicket-request/src/test/java/org/apache/wicket/request/mapper/parameter/UrlPathPageParametersEncoderTest.java
index a1a2534..9eca67c 100644
--- 
a/wicket-request/src/test/java/org/apache/wicket/request/mapper/parameter/UrlPathPageParametersEncoderTest.java
+++ 
b/wicket-request/src/test/java/org/apache/wicket/request/mapper/parameter/UrlPathPageParametersEncoderTest.java
@@ -16,10 +16,6 @@
  */
 package org.apache.wicket.request.mapper.parameter;
 
-import java.nio.charset.Charset;
-import java.util.Locale;
-
-import org.apache.wicket.request.Request;
 import org.apache.wicket.request.Url;
 import org.junit.Assert;
 import org.junit.Test;
@@ -85,10 +81,9 @@ public class UrlPathPageParametersEncoderTest extends Assert
        public void decodeUrl()
        {
                Url url = Url.parse("name1/value1/name2/value2");
-               Request request = getRequest(url);
 
                UrlPathPageParametersEncoder decoder = new 
UrlPathPageParametersEncoder();
-               PageParameters parameters = 
decoder.decodePageParameters(request);
+               PageParameters parameters = decoder.decodePageParameters(url);
 
                assertEquals(2, parameters.getAllNamed().size());
                assertEquals("value1", parameters.get("name1").toString());
@@ -103,10 +98,9 @@ public class UrlPathPageParametersEncoderTest extends Assert
        public void decodeUrlWithTrailingSlash()
        {
                Url url = Url.parse("name1/value1/name2/value2/");
-               Request request = getRequest(url);
 
                UrlPathPageParametersEncoder decoder = new 
UrlPathPageParametersEncoder();
-               PageParameters parameters = 
decoder.decodePageParameters(request);
+               PageParameters parameters = decoder.decodePageParameters(url);
 
                assertEquals(2, parameters.getAllNamed().size());
                assertEquals("value1", parameters.get("name1").toString());
@@ -121,10 +115,9 @@ public class UrlPathPageParametersEncoderTest extends 
Assert
        public void decodeUrlWithTrailingSlashAfterName()
        {
                Url url = Url.parse("name1/value1/name2/value2/name3");
-               Request request = getRequest(url);
 
                UrlPathPageParametersEncoder decoder = new 
UrlPathPageParametersEncoder();
-               PageParameters parameters = 
decoder.decodePageParameters(request);
+               PageParameters parameters = decoder.decodePageParameters(url);
 
                assertEquals(2, parameters.getAllNamed().size());
                assertEquals("value1", parameters.get("name1").toString());
@@ -138,10 +131,9 @@ public class UrlPathPageParametersEncoderTest extends 
Assert
        public void decodeUrlWithLeadingSlash()
        {
                Url url = Url.parse("/name1/value1/name2/value2");
-               Request request = getRequest(url);
 
                UrlPathPageParametersEncoder decoder = new 
UrlPathPageParametersEncoder();
-               PageParameters parameters = 
decoder.decodePageParameters(request);
+               PageParameters parameters = decoder.decodePageParameters(url);
 
                assertEquals(2, parameters.getAllNamed().size());
                assertEquals("value1", parameters.get("name1").toString());
@@ -156,10 +148,9 @@ public class UrlPathPageParametersEncoderTest extends 
Assert
        public void decodeUrlWithSlashesInTheMiddle()
        {
                Url url = Url.parse("name1/value1////name2/value2");
-               Request request = getRequest(url);
 
                UrlPathPageParametersEncoder decoder = new 
UrlPathPageParametersEncoder();
-               PageParameters parameters = 
decoder.decodePageParameters(request);
+               PageParameters parameters = decoder.decodePageParameters(url);
 
                assertEquals(2, parameters.getAllNamed().size());
                assertEquals("value1", parameters.get("name1").toString());
@@ -174,49 +165,12 @@ public class UrlPathPageParametersEncoderTest extends 
Assert
        public void decodeUrlWithSlashesInTheMiddleAndEmptyValue()
        {
                Url url = Url.parse("name1/value1////name2//");
-               Request request = getRequest(url);
 
                UrlPathPageParametersEncoder decoder = new 
UrlPathPageParametersEncoder();
-               PageParameters parameters = 
decoder.decodePageParameters(request);
+               PageParameters parameters = decoder.decodePageParameters(url);
 
                assertEquals(2, parameters.getAllNamed().size());
                assertEquals("value1", parameters.get("name1").toString());
                assertEquals("", parameters.get("name2").toString());
        }
-
-       private Request getRequest(final Url url)
-       {
-               return new Request()
-               {
-                       @Override
-                       public Url getUrl()
-                       {
-                               return url;
-                       }
-
-                       @Override
-                       public Locale getLocale()
-                       {
-                               return null;
-                       }
-
-                       @Override
-                       public Object getContainerRequest()
-                       {
-                               return null;
-                       }
-
-                       @Override
-                       public Url getClientUrl()
-                       {
-                               return url;
-                       }
-
-                       @Override
-                       public Charset getCharset()
-                       {
-                               return null;
-                       }
-               };
-       }
 }

Reply via email to