Author: mgrigorov
Date: Tue Dec 13 14:04:34 2011
New Revision: 1213698
URL: http://svn.apache.org/viewvc?rev=1213698&view=rev
Log:
WICKET-4292
MockHttpServletResponse.addCookie(Cookie) adds duplicate cookies
Added:
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponseTest.java
- copied unchanged from r1213694,
wicket/branches/wicket-1.5.x/wicket-core/src/test/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponseTest.java
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponse.java
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponse.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponse.java?rev=1213698&r1=1213697&r2=1213698&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponse.java
(original)
+++
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponse.java
Tue Dec 13 14:04:34 2011
@@ -27,6 +27,7 @@ import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.GregorianCalendar;
+import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Set;
@@ -102,7 +103,18 @@ public class MockHttpServletResponse imp
public void addCookie(final Cookie cookie)
{
// remove any potential duplicates
- cookies.remove(cookie);
+ // see http://www.ietf.org/rfc/rfc2109.txt, p.4.3.3
+ Iterator<Cookie> iterator = cookies.iterator();
+ while (iterator.hasNext())
+ {
+ Cookie old = iterator.next();
+ if (cookie.getName().equals(old.getName()) &&
+ ((cookie.getPath() == null && old.getPath() ==
null) || (cookie.getPath().equals(old.getPath()))) &&
+ ((cookie.getDomain() == null && old.getDomain()
== null) || (cookie.getDomain().equals(old.getDomain()))))
+ {
+ iterator.remove();
+ }
+ }
cookies.add(cookie);
}