Author: jdonnerstag
Date: Tue Dec 22 15:15:29 2009
New Revision: 893199
URL: http://svn.apache.org/viewvc?rev=893199&view=rev
Log:
fixed MockHttpServletResponse doesn't delete cookies
Issue: WICKET-2630
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/MockHttpServletResponse.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/MockWebApplication.java
wicket/trunk/wicket/src/test/java/org/apache/wicket/util/cookies/CookieUtilsTest.java
wicket/trunk/wicket/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/MockHttpServletResponse.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/MockHttpServletResponse.java?rev=893199&r1=893198&r2=893199&view=diff
==============================================================================
---
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/MockHttpServletResponse.java
(original)
+++
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/MockHttpServletResponse.java
Tue Dec 22 15:15:29 2009
@@ -99,6 +99,8 @@
*/
public void addCookie(final Cookie cookie)
{
+ // remove any potential duplicates
+ cookies.remove(cookie);
cookies.add(cookie);
}
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/MockWebApplication.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/MockWebApplication.java?rev=893199&r1=893198&r2=893199&view=diff
==============================================================================
---
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/MockWebApplication.java
(original)
+++
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/MockWebApplication.java
Tue Dec 22 15:15:29 2009
@@ -214,7 +214,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/trunk/wicket/src/test/java/org/apache/wicket/util/cookies/CookieUtilsTest.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/util/cookies/CookieUtilsTest.java?rev=893199&r1=893198&r2=893199&view=diff
==============================================================================
---
wicket/trunk/wicket/src/test/java/org/apache/wicket/util/cookies/CookieUtilsTest.java
(original)
+++
wicket/trunk/wicket/src/test/java/org/apache/wicket/util/cookies/CookieUtilsTest.java
Tue Dec 22 15:15:29 2009
@@ -129,12 +129,13 @@
// remove all cookies from mock response. Because I'll find the
cookie to be removed in the
// request, the persister will create a "delete" cookie to
remove the cookie on the client
- // and add it to the response.
+ // and add it to the response. The already existing Cookie from
the previous test gets
+ // removed from response since it is the same.
persister.remove(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/trunk/wicket/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java?rev=893199&r1=893198&r2=893199&view=diff
==============================================================================
---
wicket/trunk/wicket/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java
(original)
+++
wicket/trunk/wicket/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java
Tue Dec 22 15:15:29 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());
}