Author: jdonnerstag
Date: Tue Dec 22 15:21:19 2009
New Revision: 893201

URL: http://svn.apache.org/viewvc?rev=893201&view=rev
Log:
fixed MockHttpServletResponse doesn't delete cookies
Issue: WICKET-2630

Modified:
    
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/MockHttpServletResponse.java
    
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/MockWebApplication.java
    
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/form/persistence/CookieValuePersisterTest.java
    
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java

Modified: 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/MockHttpServletResponse.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/MockHttpServletResponse.java?rev=893201&r1=893200&r2=893201&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/MockHttpServletResponse.java
 (original)
+++ 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/MockHttpServletResponse.java
 Tue Dec 22 15:21:19 2009
@@ -99,6 +99,8 @@
         */
        public void addCookie(final Cookie cookie)
        {
+               // remove any potential duplicates
+               cookies.remove(cookie);
                cookies.add(cookie);
        }
 

Modified: 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/MockWebApplication.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/MockWebApplication.java?rev=893201&r1=893200&r2=893201&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/MockWebApplication.java
 (original)
+++ 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/MockWebApplication.java
 Tue Dec 22 15:21:19 2009
@@ -212,7 +212,27 @@
                        public void addCookie(Cookie cookie)
                        {
                                super.addCookie(cookie);
-                               cookiesOfThisSession.add(cookie);
+
+                               // remove any potential duplicates
+                               cookiesOfThisSession.remove(cookie);
+
+                               // if maxAge <= 0, than remove cookie from 
browser session
+                               if (cookie.getMaxAge() > 0)
+                               {
+                                       cookiesOfThisSession.add(cookie);
+                               }
+                               else
+                               {
+                                       Iterator<Cookie> iter = 
cookiesOfThisSession.iterator();
+                                       while (iter.hasNext())
+                                       {
+                                               Cookie entry = iter.next();
+                                               if 
(cookie.getName().equals(entry.getName()))
+                                               {
+                                                       iter.remove();
+                                               }
+                                       }
+                               }
                        }
                };
 

Modified: 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/form/persistence/CookieValuePersisterTest.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/form/persistence/CookieValuePersisterTest.java?rev=893201&r1=893200&r2=893201&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/form/persistence/CookieValuePersisterTest.java
 (original)
+++ 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/form/persistence/CookieValuePersisterTest.java
 Tue Dec 22 15:21:19 2009
@@ -155,9 +155,9 @@
                // the response.
                persister.clear(textField);
                assertEquals(1, getRequestCookies(cycle).length);
-               assertEquals(2, getResponseCookies(cycle).size());
-               assertEquals("form.input", 
(getResponseCookies(cycle).get(1)).getName());
-               assertEquals(0, (getResponseCookies(cycle).get(1)).getMaxAge());
+               assertEquals(1, getResponseCookies(cycle).size());
+               assertEquals("form.input", 
(getResponseCookies(cycle).get(0)).getName());
+               assertEquals(0, (getResponseCookies(cycle).get(0)).getMaxAge());
        }
 
        private void copyCookieFromResponseToRequest(final RequestCycle cycle)

Modified: 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java?rev=893201&r1=893200&r2=893201&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java
 (original)
+++ 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java
 Tue Dec 22 15:21:19 2009
@@ -641,7 +641,9 @@
 
        public void testCookieIsFoundOnNextRequestWhenAddedToWicketResponse()
        {
-               tester.getWicketResponse().addCookie(new Cookie("name", 
"value"));
+               Cookie cookie = new Cookie("name", "value");
+               cookie.setMaxAge(60);
+               tester.getWicketResponse().addCookie(cookie);
                tester.setupRequestAndResponse();
                assertEquals("value", 
tester.getWicketRequest().getCookie("name").getValue());
        }


Reply via email to