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/08/11 15:20:04 UTC
git commit: WICKET-5669 Mark page parameters with a flag where they
have been read from
Repository: wicket
Updated Branches:
refs/heads/5539-named-parameters-type e8773fb18 -> 76433a762
WICKET-5669 Mark page parameters with a flag where they have been read from
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/76433a76
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/76433a76
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/76433a76
Branch: refs/heads/5539-named-parameters-type
Commit: 76433a76288cf3ac336676c81c400a556f6dc5a3
Parents: e8773fb
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Mon Aug 11 15:19:23 2014 +0200
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Mon Aug 11 15:19:23 2014 +0200
----------------------------------------------------------------------
.../PageExpirationRecoveryTest.java | 5 +-
.../mapper/parameter/INamedParameters.java | 4 +-
.../mapper/parameter/PageParameters.java | 19 ++-
.../mapper/parameter/PageParametersTest.java | 134 +++++++++++++++++++
4 files changed, 155 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/76433a76/wicket-core/src/test/java/org/apache/wicket/page/expirationrecovery/PageExpirationRecoveryTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/page/expirationrecovery/PageExpirationRecoveryTest.java b/wicket-core/src/test/java/org/apache/wicket/page/expirationrecovery/PageExpirationRecoveryTest.java
index b3322c6..11c077a 100644
--- a/wicket-core/src/test/java/org/apache/wicket/page/expirationrecovery/PageExpirationRecoveryTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/page/expirationrecovery/PageExpirationRecoveryTest.java
@@ -16,6 +16,9 @@
*/
package org.apache.wicket.page.expirationrecovery;
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.is;
+
import org.apache.wicket.WicketTestCase;
import org.apache.wicket.protocol.http.PageExpiredException;
import org.apache.wicket.request.mapper.parameter.INamedParameters;
@@ -130,7 +133,7 @@ public class PageExpirationRecoveryTest extends WicketTestCase
pageSettings.setRecreateMountedPagesAfterExpiry(true);
ExpirationRecoveryPage page = tester.startPage(ExpirationRecoveryPage.class, parameters);
- assertEquals(parameters, page.getPageParameters());
+ assertThat(parameters, is(equalTo(page.getPageParameters())));
tester.getSession().invalidateNow();
http://git-wip-us.apache.org/repos/asf/wicket/blob/76433a76/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/INamedParameters.java
----------------------------------------------------------------------
diff --git a/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/INamedParameters.java b/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/INamedParameters.java
index 288cd7c..45b4c6c 100644
--- a/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/INamedParameters.java
+++ b/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/INamedParameters.java
@@ -32,7 +32,7 @@ import org.apache.wicket.util.string.StringValue;
public interface INamedParameters
{
/**
- * A hint where the parameter is read from.
+ * A hint where the parameter is read/parsed from.
*/
enum Type
{
@@ -113,7 +113,6 @@ public interface INamedParameters
if (key != null ? !key.equals(namedPair.key) : namedPair.key != null) return false;
if (value != null ? !value.equals(namedPair.value) : namedPair.value != null) return false;
- if (type != null ? !type.equals(namedPair.type) : namedPair.type != null) return false;
return true;
}
@@ -123,7 +122,6 @@ public interface INamedParameters
{
int result = key != null ? key.hashCode() : 0;
result = 31 * result + (value != null ? value.hashCode() : 0);
- result = result + type.hashCode();
return result;
}
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/76433a76/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/PageParameters.java
----------------------------------------------------------------------
diff --git a/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/PageParameters.java b/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/PageParameters.java
index 357e91a..df74439 100644
--- a/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/PageParameters.java
+++ b/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/PageParameters.java
@@ -199,7 +199,6 @@ public class PageParameters implements IClusterable, IIndexedParameters, INamedP
return namedParameters != null ? Collections.unmodifiableList(namedParameters) : Collections.<NamedPair>emptyList();
}
-
@Override
public List<NamedPair> getAllNamedByType(Type type)
{
@@ -274,11 +273,15 @@ public class PageParameters implements IClusterable, IIndexedParameters, INamedP
return this;
}
+ public PageParameters add(final String name, final Object value)
+ {
+ return add(name, value, Type.MANUAL);
+ }
+
@Override
public PageParameters add(final String name, final Object value, Type type)
{
- add(name, value, -1, Type.MANUAL);
- return this;
+ return add(name, value, -1, type);
}
@Override
@@ -318,6 +321,11 @@ public class PageParameters implements IClusterable, IIndexedParameters, INamedP
return this;
}
+ public PageParameters set(final String name, final Object value, final int index)
+ {
+ return set(name, value, index, Type.MANUAL);
+ }
+
@Override
public PageParameters set(final String name, final Object value, final int index, Type type)
{
@@ -330,6 +338,11 @@ public class PageParameters implements IClusterable, IIndexedParameters, INamedP
return this;
}
+ public PageParameters set(final String name, final Object value)
+ {
+ return set(name, value, Type.MANUAL);
+ }
+
@Override
public PageParameters set(final String name, final Object value, Type type)
{
http://git-wip-us.apache.org/repos/asf/wicket/blob/76433a76/wicket-request/src/test/java/org/apache/wicket/request/mapper/parameter/PageParametersTest.java
----------------------------------------------------------------------
diff --git a/wicket-request/src/test/java/org/apache/wicket/request/mapper/parameter/PageParametersTest.java b/wicket-request/src/test/java/org/apache/wicket/request/mapper/parameter/PageParametersTest.java
index c5abbdf..155ecbe 100644
--- a/wicket-request/src/test/java/org/apache/wicket/request/mapper/parameter/PageParametersTest.java
+++ b/wicket-request/src/test/java/org/apache/wicket/request/mapper/parameter/PageParametersTest.java
@@ -16,6 +16,9 @@
*/
package org.apache.wicket.request.mapper.parameter;
+import static org.hamcrest.CoreMatchers.equalTo;
+import static org.hamcrest.CoreMatchers.is;
+
import java.util.List;
import org.apache.wicket.util.string.StringValue;
@@ -178,4 +181,135 @@ public class PageParametersTest extends Assert
assertEquals("both1-r", left.getValues("both").get(0).toString());
assertEquals("both2-r", left.getValues("both").get(1).toString());
}
+
+ /**
+ * https://issues.apache.org/jira/browse/WICKET-5669
+ */
+ @Test
+ public void parameterTypes()
+ {
+ PageParameters p = new PageParameters()
+ .add("pathName1", "pathValue1", INamedParameters.Type.PATH)
+ .add("pathName1", "pathValue1.1", INamedParameters.Type.PATH)
+ .add("pathName2", "pathValue2", INamedParameters.Type.PATH)
+ .add("queryName1", "queryValue1", INamedParameters.Type.QUERY_STRING)
+ .add("queryName1", "queryValue1.1", INamedParameters.Type.QUERY_STRING)
+ .add("queryName2", "queryValue2", INamedParameters.Type.QUERY_STRING)
+ .add("manualName1", "manualValue1", INamedParameters.Type.MANUAL)
+ .add("manualName1", "manualValue1.1", INamedParameters.Type.MANUAL)
+ .add("manualName2", "manualValue2", INamedParameters.Type.MANUAL);
+
+ {
+ // PATH
+ assertThat(p.getAllNamedByType(INamedParameters.Type.PATH).size(), is(3));
+
+ List<StringValue> pathName1Values = p.getValues("pathName1");
+ assertThat(pathName1Values.size(), is(2));
+ assertThat(pathName1Values.get(0).toString(), is("pathValue1"));
+ assertThat(pathName1Values.get(1).toString(), is("pathValue1.1"));
+
+ List<StringValue> pathName2Values = p.getValues("pathName2");
+ assertThat(pathName2Values.size(), is(1));
+ assertThat(pathName2Values.get(0).toString(), is("pathValue2"));
+ }
+
+ {
+ // QUERY STRING
+ assertThat(p.getAllNamedByType(INamedParameters.Type.QUERY_STRING).size(), is(3));
+
+ List<StringValue> queryName1Values = p.getValues("queryName1");
+ assertThat(queryName1Values.size(), is(2));
+ assertThat(queryName1Values.get(0).toString(), is("queryValue1"));
+ assertThat(queryName1Values.get(1).toString(), is("queryValue1.1"));
+
+ List<StringValue> queryName2Values = p.getValues("queryName2");
+ assertThat(queryName2Values.size(), is(1));
+ assertThat(queryName2Values.get(0).toString(), is("queryValue2"));
+ }
+
+ {
+ // MANUAL
+ assertThat(p.getAllNamedByType(INamedParameters.Type.MANUAL).size(), is(3));
+
+ List<StringValue> manualName1Values = p.getValues("manualName1");
+ assertThat(manualName1Values.size(), is(2));
+ assertThat(manualName1Values.get(0).toString(), is("manualValue1"));
+ assertThat(manualName1Values.get(1).toString(), is("manualValue1.1"));
+
+ List<StringValue> manualName2Values = p.getValues("manualName2");
+ assertThat(manualName2Values.size(), is(1));
+ assertThat(manualName2Values.get(0).toString(), is("manualValue2"));
+ }
+ }
+
+ /**
+ * https://issues.apache.org/jira/browse/WICKET-5669
+ */
+ @Test
+ public void addWithoutTypeIsManual()
+ {
+ PageParameters p = new PageParameters();
+ p.add("name", "value");
+ assertThat(p.getAllNamed().get(0).getType(), is(INamedParameters.Type.MANUAL));
+ }
+
+ /**
+ * https://issues.apache.org/jira/browse/WICKET-5669
+ */
+ @Test
+ public void setWithoutTypeIsManual()
+ {
+ PageParameters p = new PageParameters();
+ p.set("name", "value");
+ assertThat(p.getAllNamed().get(0).getType(), is(INamedParameters.Type.MANUAL));
+ }
+
+ /**
+ * https://issues.apache.org/jira/browse/WICKET-5669
+ */
+ @Test
+ public void setWithIndexWithoutTypeIsManual()
+ {
+ PageParameters p = new PageParameters();
+ p.set("name", "value", 3);
+ assertThat(p.getAllNamed().get(0).getType(), is(INamedParameters.Type.MANUAL));
+ }
+
+ /**
+ * NamedPairs equality should not depend on the type
+ *
+ * https://issues.apache.org/jira/browse/WICKET-5669
+ */
+ @Test
+ public void equality()
+ {
+ PageParameters p1 = new PageParameters()
+ .add("a", "b", INamedParameters.Type.MANUAL)
+ .set("c", "d", INamedParameters.Type.MANUAL);
+
+ PageParameters p2 = new PageParameters()
+ .set("a", "b", INamedParameters.Type.QUERY_STRING)
+ .add("c", "d", INamedParameters.Type.PATH);
+
+ assertThat(p1, is(equalTo(p2)));
+ }
+
+ /**
+ * NamedPairs hashCode should not depend on the type
+ *
+ * https://issues.apache.org/jira/browse/WICKET-5669
+ */
+ @Test
+ public void hashcode()
+ {
+ PageParameters p1 = new PageParameters()
+ .add("a", "b", INamedParameters.Type.MANUAL)
+ .set("c", "d", INamedParameters.Type.MANUAL);
+
+ PageParameters p2 = new PageParameters()
+ .set("a", "b", INamedParameters.Type.QUERY_STRING)
+ .add("c", "d", INamedParameters.Type.PATH);
+
+ assertThat(p1.hashCode(), is(equalTo(p2.hashCode())));
+ }
}