Author: mgrigorov
Date: Mon Jul 18 15:28:12 2011
New Revision: 1147931
URL: http://svn.apache.org/viewvc?rev=1147931&view=rev
Log:
WICKET-3906 PageParameters#set not follow INamedParameters#set behavior
Modified:
wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/PageParameters.java
wicket/trunk/wicket-request/src/test/java/org/apache/wicket/request/mapper/parameter/PageParametersTest.java
Modified:
wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/PageParameters.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/PageParameters.java?rev=1147931&r1=1147930&r2=1147931&view=diff
==============================================================================
---
wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/PageParameters.java
(original)
+++
wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/PageParameters.java
Mon Jul 18 15:28:12 2011
@@ -483,7 +483,8 @@ public class PageParameters implements I
*/
public PageParameters set(final String name, final Object value)
{
- set(name, value, -1);
+ int position = getPosition(name);
+ set(name, value, position);
return this;
}
Modified:
wicket/trunk/wicket-request/src/test/java/org/apache/wicket/request/mapper/parameter/PageParametersTest.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-request/src/test/java/org/apache/wicket/request/mapper/parameter/PageParametersTest.java?rev=1147931&r1=1147930&r2=1147931&view=diff
==============================================================================
---
wicket/trunk/wicket-request/src/test/java/org/apache/wicket/request/mapper/parameter/PageParametersTest.java
(original)
+++
wicket/trunk/wicket-request/src/test/java/org/apache/wicket/request/mapper/parameter/PageParametersTest.java
Mon Jul 18 15:28:12 2011
@@ -85,4 +85,25 @@ public class PageParametersTest extends
assertEquals("Adding a parameter with negative position will
just append it.", 2,
parameters.getPosition("named3"));
}
+
+ /**
+ * Tests that overwriting (via #set()) a named parameter will preserve
its position
+ */
+ @Test
+ public void set()
+ {
+ PageParameters parameters = new PageParameters();
+ parameters.add("named1", "value1").add("named2", "value2");
+
+ assertEquals(0, parameters.getPosition("named1"));
+ assertEquals(1, parameters.getPosition("named2"));
+
+ // overwrite it
+ parameters.set("named1", "newValue");
+ parameters.set("named3", "value3");
+ assertEquals(0, parameters.getPosition("named1"));
+ assertEquals("newValue", parameters.get("named1").toString());
+ assertEquals(1, parameters.getPosition("named2"));
+ assertEquals(2, parameters.getPosition("named3"));
+ }
}