You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by jd...@apache.org on 2009/12/22 16:21:21 UTC

svn commit: r893201 - in /wicket/branches/wicket-1.4.x/wicket/src: main/java/org/apache/wicket/protocol/http/ test/java/org/apache/wicket/markup/html/form/persistence/ test/java/org/apache/wicket/util/tester/

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());
 	}