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"));
+       }
 }


Reply via email to