You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2013/04/26 11:03:03 UTC

[09/11] git commit: WICKET-5147 moved test for cookie handling to WicketTesterCookieTest

WICKET-5147 moved test for cookie handling to WicketTesterCookieTest


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/2ca43b47
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/2ca43b47
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/2ca43b47

Branch: refs/heads/master
Commit: 2ca43b47ab32ed0e4b6c2590bb77674368f0eb58
Parents: a02b2b6
Author: Michael Mosmann <mi...@mosmann.de>
Authored: Fri Apr 26 07:46:32 2013 +0200
Committer: Michael Mosmann <mi...@mosmann.de>
Committed: Fri Apr 26 07:46:32 2013 +0200

----------------------------------------------------------------------
 .../wicket/util/tester/WicketTesterCookieTest.java |  459 +++++++++++++++
 .../wicket/util/tester/WicketTesterTest.java       |  430 +--------------
 2 files changed, 460 insertions(+), 429 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/2ca43b47/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterCookieTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterCookieTest.java b/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterCookieTest.java
new file mode 100644
index 0000000..3266604
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterCookieTest.java
@@ -0,0 +1,459 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.util.tester;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.http.Cookie;
+
+import org.apache.wicket.WicketTestCase;
+import org.apache.wicket.protocol.http.mock.Cookies;
+import org.apache.wicket.util.tester.apps_1.CreateBook;
+import org.apache.wicket.util.tester.cookies.CollectAllRequestCookiesPage;
+import org.apache.wicket.util.tester.cookies.EndPage;
+import org.apache.wicket.util.tester.cookies.SetCookiePage;
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * test code for wicket tester cookie handling
+ * 
+ * @author mosmann
+ */
+public class WicketTesterCookieTest extends WicketTestCase
+{
+	/**
+	 *
+	 */
+	@Test
+	public void cookieIsFoundWhenAddedToRequest()
+	{
+		tester.getRequest().addCookie(new Cookie("name", "value"));
+		assertEquals("value", tester.getRequest().getCookie("name").getValue());
+	}
+
+	/**
+	 *
+	 */
+	@Test
+	public void cookieIsFoundWhenAddedToResponse()
+	{
+		tester.startPage(CreateBook.class);
+		tester.getLastResponse().addCookie(new Cookie("name", "value"));
+		Collection<Cookie> cookies = tester.getLastResponse().getCookies();
+		assertEquals(cookies.iterator().next().getValue(), "value");
+	}
+	
+	/**
+	 * Tests that setting a cookie with age > 0 before creating the page will survive after the
+	 * rendering of the page and it will be used for the next request cycle.
+	 */
+	@Test
+	public void transferCookies()
+	{
+		String cookieName = "wicket4289Name";
+		String cookieValue = "wicket4289Value";
+		int cookieAge = 1; // age > 0 => the cookie will be preserved for the the next request cycle
+
+		Cookie cookie = new Cookie(cookieName, cookieValue);
+		cookie.setMaxAge(cookieAge);
+		tester.getRequest().addCookie(cookie);
+
+		CookiePage page = new CookiePage(cookieName, cookieValue);
+
+		tester.startPage(page);
+
+		// assert that the cookie was in the response
+		List<Cookie> cookies = tester.getLastResponse().getCookies();
+		assertEquals(1, cookies.size());
+		Cookie cookie2 = cookies.get(0);
+		assertEquals(cookieName, cookie2.getName());
+		assertEquals(cookieValue, cookie2.getValue());
+		assertEquals(cookieAge, cookie2.getMaxAge());
+
+		// assert that the cookie will be preserved for the next request
+		assertEquals(cookieValue, tester.getRequest().getCookie(cookieName).getValue());
+	}
+
+	/**
+	 * Tests that setting a cookie with age == 0 will not be stored after the request cycle.
+	 */
+	@Test
+	public void dontTransferCookiesWithNegativeAge()
+	{
+		String cookieName = "wicket4289Name";
+		String cookieValue = "wicket4289Value";
+		int cookieAge = 0; // age = 0 => do not store it
+
+		Cookie cookie = new Cookie(cookieName, cookieValue);
+		cookie.setMaxAge(cookieAge);
+		tester.getRequest().addCookie(cookie);
+
+		CookiePage page = new CookiePage(cookieName, cookieValue);
+
+		tester.startPage(page);
+
+		// assert that the cookie is not preserved for the next request cycle
+		assertNull(tester.getRequest().getCookies());
+	}
+
+	/**
+	 * Tests that setting a cookie with age < 0 will not be stored after the request cycle.
+	 */
+	@Test
+	public void dontTransferCookiesWithZeroAge()
+	{
+		String cookieName = "wicket4289Name";
+		String cookieValue = "wicket4289Value";
+		int cookieAge = 0; // age == 0 => delete the cookie
+
+		Cookie cookie = new Cookie(cookieName, cookieValue);
+		cookie.setMaxAge(cookieAge);
+		tester.getRequest().addCookie(cookie);
+
+		CookiePage page = new CookiePage(cookieName, cookieValue);
+
+		tester.startPage(page);
+
+		// assert that the cookie is not preserved for the next request cycle
+		assertNull(tester.getRequest().getCookies());
+	}
+
+	/**
+	 * A cookie set in the request headers should not be
+	 * expected in the response headers unless the page
+	 * sets it explicitly.
+	 *
+	 * https://issues.apache.org/jira/browse/WICKET-4989
+	 */
+	@Test
+	public void cookieSetInRequestShouldNotBeInResponse()
+	{
+		//start and render the test page
+		tester.getRequest().addCookie(new Cookie("dummy", "sample"));
+		tester.startPage(tester.getApplication().getHomePage());
+
+		//assert rendered page class
+		tester.assertRenderedPage(tester.getApplication().getHomePage());
+
+		Assert.assertEquals("The cookie should not be in the response unless explicitly set",
+				0, tester.getLastResponse().getCookies().size());
+
+		// The cookie should be in each following request unless the server code
+		// schedules it for removal it with cookie.setMaxAge(0)
+		Assert.assertEquals("The cookie should be in each following request",
+				1, tester.getRequest().getCookies().length);
+	}
+
+	/**
+	 * The response cookie should not be the same instance as the request
+	 * cookie.
+	 *
+	 * https://issues.apache.org/jira/browse/WICKET-4989
+	 */
+	@Test
+	public void doNotReuseTheSameInstanceOfTheCookieForRequestAndResponse()
+	{
+		//start and render the test page
+		String cookieName = "cookieName";
+		String cookieValue = "cookieValue";
+		Cookie requestCookie = new Cookie(cookieName, cookieValue);
+		tester.getRequest().addCookie(requestCookie);
+		tester.startPage(new CookiePage(cookieName, cookieValue));
+
+		//assert rendered page class
+		tester.assertRenderedPage(CookiePage.class);
+
+		Cookie responseCookie = tester.getLastResponse().getCookies().get(0);
+		requestCookie.setValue("valueChanged");
+
+		Assert.assertEquals(cookieValue, responseCookie.getValue());
+	}
+
+	/**
+	 * @see WicketTester
+	 * 
+	 * TODO add a cookie to request, which should override cookie from last response and last request
+	 * https://issues.apache.org/jira/browse/WICKET-5147
+	 */
+	@Test
+	public void wicketTesterCookieHandlingWithoutRedirect() {
+		// no cookies set
+		CollectAllRequestCookiesPage collectingPage = collectAllRequestCookiesOnThisPage();
+		Assert.assertTrue("no cookie in first request",collectingPage.getCookies().isEmpty());
+		lastResponseDoesNotHaveAnyCookies();
+		responseDoesNotHaveAnyCookies();
+		requestDoesNotHaveAnyCookies();
+		
+		// set cookie on request
+		Cookie firstCookie = newCookie("a","firstValue",1);
+		tester.getRequest().addCookie(firstCookie);
+		collectingPage = collectAllRequestCookiesOnThisPage();
+		requestOnPageShouldHaveTheseCookies(collectingPage, firstCookie);
+		lastResponseDoesNotHaveAnyCookies();
+		requestShouldHaveTheseCookies(firstCookie);
+		responseDoesNotHaveAnyCookies();
+
+		// cookies from last request should appear on following requests
+		collectingPage = collectAllRequestCookiesOnThisPage();
+		requestOnPageShouldHaveTheseCookies(collectingPage, firstCookie);
+		lastResponseDoesNotHaveAnyCookies();
+		requestShouldHaveTheseCookies(firstCookie);
+		responseDoesNotHaveAnyCookies();
+
+		// cookie will be overwritten if response will do so
+		Cookie cookieSetInResponse = newCookie("a","overwriteWithNewValue",1);
+		setCookieInResponse(cookieSetInResponse);
+		lastResponseShouldHaveTheseCookies(cookieSetInResponse);
+		requestShouldHaveTheseCookies(cookieSetInResponse);
+		
+		// cookies from last response then should appear on following requests
+		collectingPage = collectAllRequestCookiesOnThisPage();
+		requestOnPageShouldHaveTheseCookies(collectingPage, cookieSetInResponse);
+		lastResponseDoesNotHaveAnyCookies();
+		requestShouldHaveTheseCookies(cookieSetInResponse);
+		
+		// cookies from requests will be deleted if the response will do so
+		Cookie expiredCookieSetInResponse = newCookie("a","removeMe",0);
+		setCookieInResponse(expiredCookieSetInResponse);
+		lastResponseShouldHaveTheseCookies(expiredCookieSetInResponse);
+		responseDoesNotHaveAnyCookies();
+		requestDoesNotHaveAnyCookies();
+		
+		// no cookies in next request while last cookie was deleted
+		collectingPage = collectAllRequestCookiesOnThisPage();
+		requestOnPageShouldHaveTheseCookies(collectingPage);
+		lastResponseDoesNotHaveAnyCookies();
+		requestDoesNotHaveAnyCookies();
+		responseDoesNotHaveAnyCookies();
+	}
+
+	/**
+	 * @see WicketTesterTest#wicketTesterCookieHandlingWithoutRedirect()
+	 *  
+	 * https://issues.apache.org/jira/browse/WICKET-5147
+	 */
+	@Test
+	public void wicketTesterCookieHandlingWithRedirect() {
+		// set cookie in response then redirect to other page
+		Cookie firstCookie = newCookie("a","firstValue",1);
+		setCookieInResponseAndRedirect(firstCookie);
+		lastResponseShouldHaveTheseCookies(firstCookie);
+		requestShouldHaveTheseCookies(firstCookie);
+
+		// cookie in response after redirect should appear in next request
+		CollectAllRequestCookiesPage collectingPage = collectAllRequestCookiesOnThisPage();
+		requestOnPageShouldHaveTheseCookies(collectingPage,firstCookie);
+		lastResponseDoesNotHaveAnyCookies();
+		requestShouldHaveTheseCookies(firstCookie);
+		responseDoesNotHaveAnyCookies();
+		
+		// set cookie on request and overwrite in response then redirect to other page
+		Cookie cookieSetInRequest = newCookie("a","valueFromRequest",1);
+		Cookie cookieSetInResponse = newCookie("a","overwriteInResponse",1);
+		tester.getRequest().addCookie(cookieSetInRequest);
+		setCookieInResponseAndRedirect(cookieSetInResponse);
+		lastResponseShouldHaveTheseCookies(cookieSetInResponse);
+		requestShouldHaveTheseCookies(cookieSetInResponse);
+		
+		// cookie in response after redirect should appear in next request
+		collectingPage = collectAllRequestCookiesOnThisPage();
+		requestOnPageShouldHaveTheseCookies(collectingPage,cookieSetInResponse);
+		lastResponseDoesNotHaveAnyCookies();
+		requestShouldHaveTheseCookies(cookieSetInResponse);
+		responseDoesNotHaveAnyCookies();
+		
+		// set cookie on request and remove it in response then redirect to other page
+		Cookie nextCookieSetInRequest = newCookie("a","nextValueFromRequest",1);
+		Cookie nextCookieSetInResponse = newCookie("a","newValue",0);
+		tester.getRequest().addCookie(nextCookieSetInRequest);
+		setCookieInResponseAndRedirect(nextCookieSetInResponse);
+		lastResponseShouldHaveTheseCookies(nextCookieSetInResponse);
+		requestDoesNotHaveAnyCookies();
+		responseDoesNotHaveAnyCookies();
+		
+		// no cookies left
+		collectingPage = collectAllRequestCookiesOnThisPage();
+		requestOnPageShouldHaveTheseCookies(collectingPage);
+		lastResponseDoesNotHaveAnyCookies();
+		requestDoesNotHaveAnyCookies();
+		responseDoesNotHaveAnyCookies();
+	}
+	
+	/**
+	 * creates a new cookie with maxAge set
+	 * @param name name
+	 * @param value value
+	 * @param maxAge maxAge
+	 * @return a cookie
+	 */
+	private static Cookie newCookie(String name,String value, int maxAge) {
+		Cookie cookie = new Cookie(name,value);
+		cookie.setMaxAge(maxAge);
+		return cookie;
+	}
+	
+	/**
+	 * start a page which collects all cookies from request 
+	 * @return the page
+	 */
+	private CollectAllRequestCookiesPage collectAllRequestCookiesOnThisPage()
+	{
+		return tester.startPage(CollectAllRequestCookiesPage.class);
+	}
+
+	/**
+	 * start a page which set a cookie in response
+	 * @param cookie cookie
+	 */
+	private void setCookieInResponse(Cookie cookie)
+	{
+		tester.startPage(new SetCookiePage(cookie));
+	}
+
+	/**
+	 * start a page which set a cookie in response and then redirect to different page
+	 * @param cookie cookie
+	 */
+	private void setCookieInResponseAndRedirect(Cookie cookie)
+	{
+		tester.startPage(new SetCookiePage(cookie,EndPage.class));
+	}
+
+	/**
+	 * check cookies collected by page
+	 * @param page page
+	 * @param cookies cookies
+	 */
+	private void requestOnPageShouldHaveTheseCookies(CollectAllRequestCookiesPage page, Cookie...cookies) {
+		listShouldMatchAll(page.getCookies(), cookies);
+	}
+
+	/**
+	 * check cookies in current request
+	 * @param page page
+	 * @param cookies cookies
+	 */
+	private void requestShouldHaveTheseCookies(Cookie...cookies) {
+		Cookie[] cookieFromRequest = tester.getRequest().getCookies();
+		listShouldMatchAll(cookieFromRequest!=null ? Arrays.asList(cookieFromRequest) : new ArrayList<Cookie>(), cookies);
+	}
+	
+	/**
+	 * check if every cookie is found in the list and no cookie is left 
+	 * @param cookieList cookie list
+	 * @param cookies cookies to check
+	 */
+	private void listShouldMatchAll(List<Cookie> cookieList, Cookie... cookies)
+	{
+		Map<String, Cookie> cookieMap = cookiesFromList(cookieList);
+		for (Cookie cookie : cookies) {
+			Cookie removed = cookieMap.remove(cookie.getName());
+			Assert.assertNotNull("Cookie "+cookie.getName(),removed);
+			Assert.assertTrue("Cookie "+cookie.getName()+" matches",Cookies.isEqual(cookie, removed));
+		}
+		Assert.assertTrue("no cookies left "+asString(cookieMap),cookieMap.isEmpty());
+	}
+	
+	/**
+	 * make cookie map more readable
+	 * @param cookieMap cookie map
+	 * @return string
+	 */
+	private static String asString(Map<String, Cookie> cookieMap)
+	{
+		StringBuilder sb=new StringBuilder();
+		sb.append("{");
+		for (Map.Entry<String, Cookie> e : cookieMap.entrySet()) {
+			sb.append(e.getKey()).append("=").append(asString(e.getValue()));
+			sb.append(",");
+		}
+		sb.append("}");
+		return sb.toString();
+	}
+
+	/**
+	 * make cookie more readable
+	 * @param c cookie
+	 * @return string
+	 */
+	private static String asString(Cookie c)
+	{
+		StringBuilder sb=new StringBuilder();
+		sb.append("[");
+		sb.append("name=").append(c.getName()).append(",");
+		sb.append("value=").append(c.getValue()).append(",");
+		sb.append("maxAge=").append(c.getMaxAge());
+		sb.append("]");
+		return sb.toString();
+	}
+
+	/**
+	 * check last response cookies
+	 * @param cookies cookies
+	 */
+	private void lastResponseShouldHaveTheseCookies(Cookie...cookies) {
+		listShouldMatchAll(tester.getLastResponse().getCookies(), cookies);
+	}
+	
+	/**
+	 * response should not have any cookies
+	 */
+	private void lastResponseDoesNotHaveAnyCookies()
+	{
+		listShouldMatchAll(tester.getLastResponse().getCookies());
+	}
+	
+	/**
+	 * response should not have any cookies
+	 */
+	private void responseDoesNotHaveAnyCookies()
+	{
+		listShouldMatchAll(tester.getResponse().getCookies());
+	}
+	
+	/**
+	 * request should not have any cookies
+	 */
+	private void requestDoesNotHaveAnyCookies()
+	{
+		requestShouldHaveTheseCookies();
+	}
+	
+	/**
+	 * create a cookie map based on cookie name
+	 * @param cookies cookie list
+	 * @return as map
+	 * @throws RuntimeException if more than one cookie with the same name
+	 */
+	private static Map<String,Cookie> cookiesFromList(List<Cookie> cookies) {
+		Map<String, Cookie> ret = new LinkedHashMap<String, Cookie>();
+		for (Cookie cookie : cookies) {
+			Cookie oldValue = ret.put(cookie.getName(), cookie);
+			if (oldValue!=null) {
+				throw new RuntimeException("Cookie with name "+cookie.getName()+"("+asString(oldValue)+") allready in map "+asString(ret));
+			}
+		}
+		return ret;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/wicket/blob/2ca43b47/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java b/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java
index 2e937f5..2014c94 100644
--- a/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java
@@ -16,15 +16,9 @@
  */
 package org.apache.wicket.util.tester;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Locale;
-import java.util.Map;
 
-import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletResponse;
 
 import junit.framework.AssertionFailedError;
@@ -55,7 +49,6 @@ import org.apache.wicket.markup.html.link.ResourceLink;
 import org.apache.wicket.markup.html.pages.AccessDeniedPage;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.protocol.http.WebApplication;
-import org.apache.wicket.protocol.http.mock.Cookies;
 import org.apache.wicket.request.IRequestHandler;
 import org.apache.wicket.request.IRequestParameters;
 import org.apache.wicket.request.Url;
@@ -78,17 +71,11 @@ import org.apache.wicket.util.tester.apps_1.SuccessPage;
 import org.apache.wicket.util.tester.apps_1.ViewBook;
 import org.apache.wicket.util.tester.apps_6.LinkPage;
 import org.apache.wicket.util.tester.apps_6.ResultPage;
-import org.apache.wicket.util.tester.cookies.CollectAllRequestCookiesPage;
-import org.apache.wicket.util.tester.cookies.EndPage;
-import org.apache.wicket.util.tester.cookies.SetCookiePage;
-import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 
-import sun.security.provider.certpath.OCSPResponse.ResponseStatus;
-
 /**
- * 
+ * @see WicketTesterCookieTest for cookie related test
  * @author Juergen Donnerstag
  */
 public class WicketTesterTest extends WicketTestCase
@@ -914,28 +901,6 @@ public class WicketTesterTest extends WicketTestCase
 	}
 
 	/**
-	 *
-	 */
-	@Test
-	public void cookieIsFoundWhenAddedToRequest()
-	{
-		tester.getRequest().addCookie(new Cookie("name", "value"));
-		assertEquals("value", tester.getRequest().getCookie("name").getValue());
-	}
-
-	/**
-	 *
-	 */
-	@Test
-	public void cookieIsFoundWhenAddedToResponse()
-	{
-		tester.startPage(CreateBook.class);
-		tester.getLastResponse().addCookie(new Cookie("name", "value"));
-		Collection<Cookie> cookies = tester.getLastResponse().getCookies();
-		assertEquals(cookies.iterator().next().getValue(), "value");
-	}
-
-	/**
 	 * Test for WICKET-3123
 	 */
 	@Test
@@ -1036,81 +1001,6 @@ public class WicketTesterTest extends WicketTestCase
 	}
 
 	/**
-	 * Tests that setting a cookie with age > 0 before creating the page will survive after the
-	 * rendering of the page and it will be used for the next request cycle.
-	 */
-	@Test
-	public void transferCookies()
-	{
-		String cookieName = "wicket4289Name";
-		String cookieValue = "wicket4289Value";
-		int cookieAge = 1; // age > 0 => the cookie will be preserved for the the next request cycle
-
-		Cookie cookie = new Cookie(cookieName, cookieValue);
-		cookie.setMaxAge(cookieAge);
-		tester.getRequest().addCookie(cookie);
-
-		CookiePage page = new CookiePage(cookieName, cookieValue);
-
-		tester.startPage(page);
-
-		// assert that the cookie was in the response
-		List<Cookie> cookies = tester.getLastResponse().getCookies();
-		assertEquals(1, cookies.size());
-		Cookie cookie2 = cookies.get(0);
-		assertEquals(cookieName, cookie2.getName());
-		assertEquals(cookieValue, cookie2.getValue());
-		assertEquals(cookieAge, cookie2.getMaxAge());
-
-		// assert that the cookie will be preserved for the next request
-		assertEquals(cookieValue, tester.getRequest().getCookie(cookieName).getValue());
-	}
-
-	/**
-	 * Tests that setting a cookie with age == 0 will not be stored after the request cycle.
-	 */
-	@Test
-	public void dontTransferCookiesWithNegativeAge()
-	{
-		String cookieName = "wicket4289Name";
-		String cookieValue = "wicket4289Value";
-		int cookieAge = 0; // age = 0 => do not store it
-
-		Cookie cookie = new Cookie(cookieName, cookieValue);
-		cookie.setMaxAge(cookieAge);
-		tester.getRequest().addCookie(cookie);
-
-		CookiePage page = new CookiePage(cookieName, cookieValue);
-
-		tester.startPage(page);
-
-		// assert that the cookie is not preserved for the next request cycle
-		assertNull(tester.getRequest().getCookies());
-	}
-
-	/**
-	 * Tests that setting a cookie with age < 0 will not be stored after the request cycle.
-	 */
-	@Test
-	public void dontTransferCookiesWithZeroAge()
-	{
-		String cookieName = "wicket4289Name";
-		String cookieValue = "wicket4289Value";
-		int cookieAge = 0; // age == 0 => delete the cookie
-
-		Cookie cookie = new Cookie(cookieName, cookieValue);
-		cookie.setMaxAge(cookieAge);
-		tester.getRequest().addCookie(cookie);
-
-		CookiePage page = new CookiePage(cookieName, cookieValue);
-
-		tester.startPage(page);
-
-		// assert that the cookie is not preserved for the next request cycle
-		assertNull(tester.getRequest().getCookies());
-	}
-
-	/**
 	 * Tests if the access-denied-page is rendered if a page is rerendered for which you don't have
 	 * permission anymore
 	 */
@@ -1327,322 +1217,4 @@ public class WicketTesterTest extends WicketTestCase
 		tester.submitForm(page.form);
 		assertEquals(null, page.text);
 	}
-
-	/**
-	 * A cookie set in the request headers should not be
-	 * expected in the response headers unless the page
-	 * sets it explicitly.
-	 *
-	 * https://issues.apache.org/jira/browse/WICKET-4989
-	 */
-	@Test
-	public void cookieSetInRequestShouldNotBeInResponse()
-	{
-		//start and render the test page
-		tester.getRequest().addCookie(new Cookie("dummy", "sample"));
-		tester.startPage(tester.getApplication().getHomePage());
-
-		//assert rendered page class
-		tester.assertRenderedPage(tester.getApplication().getHomePage());
-
-		Assert.assertEquals("The cookie should not be in the response unless explicitly set",
-				0, tester.getLastResponse().getCookies().size());
-
-		// The cookie should be in each following request unless the server code
-		// schedules it for removal it with cookie.setMaxAge(0)
-		Assert.assertEquals("The cookie should be in each following request",
-				1, tester.getRequest().getCookies().length);
-	}
-
-	/**
-	 * The response cookie should not be the same instance as the request
-	 * cookie.
-	 *
-	 * https://issues.apache.org/jira/browse/WICKET-4989
-	 */
-	@Test
-	public void doNotReuseTheSameInstanceOfTheCookieForRequestAndResponse()
-	{
-		//start and render the test page
-		String cookieName = "cookieName";
-		String cookieValue = "cookieValue";
-		Cookie requestCookie = new Cookie(cookieName, cookieValue);
-		tester.getRequest().addCookie(requestCookie);
-		tester.startPage(new CookiePage(cookieName, cookieValue));
-
-		//assert rendered page class
-		tester.assertRenderedPage(CookiePage.class);
-
-		Cookie responseCookie = tester.getLastResponse().getCookies().get(0);
-		requestCookie.setValue("valueChanged");
-
-		Assert.assertEquals(cookieValue, responseCookie.getValue());
-	}
-	
-	/**
-	 * @see WicketTester
-	 * 
-	 * TODO add a cookie to request, which should override cookie from last response and last request
-	 * https://issues.apache.org/jira/browse/WICKET-5147
-	 */
-	@Test
-	public void wicketTesterCookieHandlingWithoutRedirect() {
-		// no cookies set
-		CollectAllRequestCookiesPage collectingPage = collectAllRequestCookiesOnThisPage();
-		Assert.assertTrue("no cookie in first request",collectingPage.getCookies().isEmpty());
-		lastResponseDoesNotHaveAnyCookies();
-		responseDoesNotHaveAnyCookies();
-		requestDoesNotHaveAnyCookies();
-		
-		// set cookie on request
-		Cookie firstCookie = newCookie("a","firstValue",1);
-		tester.getRequest().addCookie(firstCookie);
-		collectingPage = collectAllRequestCookiesOnThisPage();
-		requestOnPageShouldHaveTheseCookies(collectingPage, firstCookie);
-		lastResponseDoesNotHaveAnyCookies();
-		requestShouldHaveTheseCookies(firstCookie);
-		responseDoesNotHaveAnyCookies();
-
-		// cookies from last request should appear on following requests
-		collectingPage = collectAllRequestCookiesOnThisPage();
-		requestOnPageShouldHaveTheseCookies(collectingPage, firstCookie);
-		lastResponseDoesNotHaveAnyCookies();
-		requestShouldHaveTheseCookies(firstCookie);
-		responseDoesNotHaveAnyCookies();
-
-		// cookie will be overwritten if response will do so
-		Cookie cookieSetInResponse = newCookie("a","overwriteWithNewValue",1);
-		setCookieInResponse(cookieSetInResponse);
-		lastResponseShouldHaveTheseCookies(cookieSetInResponse);
-		requestShouldHaveTheseCookies(cookieSetInResponse);
-		
-		// cookies from last response then should appear on following requests
-		collectingPage = collectAllRequestCookiesOnThisPage();
-		requestOnPageShouldHaveTheseCookies(collectingPage, cookieSetInResponse);
-		lastResponseDoesNotHaveAnyCookies();
-		requestShouldHaveTheseCookies(cookieSetInResponse);
-		
-		// cookies from requests will be deleted if the response will do so
-		Cookie expiredCookieSetInResponse = newCookie("a","removeMe",0);
-		setCookieInResponse(expiredCookieSetInResponse);
-		lastResponseShouldHaveTheseCookies(expiredCookieSetInResponse);
-		responseDoesNotHaveAnyCookies();
-		requestDoesNotHaveAnyCookies();
-		
-		// no cookies in next request while last cookie was deleted
-		collectingPage = collectAllRequestCookiesOnThisPage();
-		requestOnPageShouldHaveTheseCookies(collectingPage);
-		lastResponseDoesNotHaveAnyCookies();
-		requestDoesNotHaveAnyCookies();
-		responseDoesNotHaveAnyCookies();
-	}
-
-	/**
-	 * @see WicketTesterTest#wicketTesterCookieHandlingWithoutRedirect()
-	 *  
-	 * https://issues.apache.org/jira/browse/WICKET-5147
-	 */
-	@Test
-	public void wicketTesterCookieHandlingWithRedirect() {
-		// set cookie in response then redirect to other page
-		Cookie firstCookie = newCookie("a","firstValue",1);
-		setCookieInResponseAndRedirect(firstCookie);
-		lastResponseShouldHaveTheseCookies(firstCookie);
-		requestShouldHaveTheseCookies(firstCookie);
-
-		// cookie in response after redirect should appear in next request
-		CollectAllRequestCookiesPage collectingPage = collectAllRequestCookiesOnThisPage();
-		requestOnPageShouldHaveTheseCookies(collectingPage,firstCookie);
-		lastResponseDoesNotHaveAnyCookies();
-		requestShouldHaveTheseCookies(firstCookie);
-		responseDoesNotHaveAnyCookies();
-		
-		// set cookie on request and overwrite in response then redirect to other page
-		Cookie cookieSetInRequest = newCookie("a","valueFromRequest",1);
-		Cookie cookieSetInResponse = newCookie("a","overwriteInResponse",1);
-		tester.getRequest().addCookie(cookieSetInRequest);
-		setCookieInResponseAndRedirect(cookieSetInResponse);
-		lastResponseShouldHaveTheseCookies(cookieSetInResponse);
-		requestShouldHaveTheseCookies(cookieSetInResponse);
-		
-		// cookie in response after redirect should appear in next request
-		collectingPage = collectAllRequestCookiesOnThisPage();
-		requestOnPageShouldHaveTheseCookies(collectingPage,cookieSetInResponse);
-		lastResponseDoesNotHaveAnyCookies();
-		requestShouldHaveTheseCookies(cookieSetInResponse);
-		responseDoesNotHaveAnyCookies();
-		
-		// set cookie on request and remove it in response then redirect to other page
-		Cookie nextCookieSetInRequest = newCookie("a","nextValueFromRequest",1);
-		Cookie nextCookieSetInResponse = newCookie("a","newValue",0);
-		tester.getRequest().addCookie(nextCookieSetInRequest);
-		setCookieInResponseAndRedirect(nextCookieSetInResponse);
-		lastResponseShouldHaveTheseCookies(nextCookieSetInResponse);
-		requestDoesNotHaveAnyCookies();
-		responseDoesNotHaveAnyCookies();
-		
-		// no cookies left
-		collectingPage = collectAllRequestCookiesOnThisPage();
-		requestOnPageShouldHaveTheseCookies(collectingPage);
-		lastResponseDoesNotHaveAnyCookies();
-		requestDoesNotHaveAnyCookies();
-		responseDoesNotHaveAnyCookies();
-	}
-	
-	/**
-	 * creates a new cookie with maxAge set
-	 * @param name name
-	 * @param value value
-	 * @param maxAge maxAge
-	 * @return a cookie
-	 */
-	private static Cookie newCookie(String name,String value, int maxAge) {
-		Cookie cookie = new Cookie(name,value);
-		cookie.setMaxAge(maxAge);
-		return cookie;
-	}
-	
-	/**
-	 * start a page which collects all cookies from request 
-	 * @return the page
-	 */
-	private CollectAllRequestCookiesPage collectAllRequestCookiesOnThisPage()
-	{
-		return tester.startPage(CollectAllRequestCookiesPage.class);
-	}
-
-	/**
-	 * start a page which set a cookie in response
-	 * @param cookie cookie
-	 */
-	private void setCookieInResponse(Cookie cookie)
-	{
-		tester.startPage(new SetCookiePage(cookie));
-	}
-
-	/**
-	 * start a page which set a cookie in response and then redirect to different page
-	 * @param cookie cookie
-	 */
-	private void setCookieInResponseAndRedirect(Cookie cookie)
-	{
-		tester.startPage(new SetCookiePage(cookie,EndPage.class));
-	}
-
-	/**
-	 * check cookies collected by page
-	 * @param page page
-	 * @param cookies cookies
-	 */
-	private void requestOnPageShouldHaveTheseCookies(CollectAllRequestCookiesPage page, Cookie...cookies) {
-		listShouldMatchAll(page.getCookies(), cookies);
-	}
-
-	/**
-	 * check cookies in current request
-	 * @param page page
-	 * @param cookies cookies
-	 */
-	private void requestShouldHaveTheseCookies(Cookie...cookies) {
-		Cookie[] cookieFromRequest = tester.getRequest().getCookies();
-		listShouldMatchAll(cookieFromRequest!=null ? Arrays.asList(cookieFromRequest) : new ArrayList<Cookie>(), cookies);
-	}
-	
-	/**
-	 * check if every cookie is found in the list and no cookie is left 
-	 * @param cookieList cookie list
-	 * @param cookies cookies to check
-	 */
-	private void listShouldMatchAll(List<Cookie> cookieList, Cookie... cookies)
-	{
-		Map<String, Cookie> cookieMap = cookiesFromList(cookieList);
-		for (Cookie cookie : cookies) {
-			Cookie removed = cookieMap.remove(cookie.getName());
-			Assert.assertNotNull("Cookie "+cookie.getName(),removed);
-			Assert.assertTrue("Cookie "+cookie.getName()+" matches",Cookies.isEqual(cookie, removed));
-		}
-		Assert.assertTrue("no cookies left "+asString(cookieMap),cookieMap.isEmpty());
-	}
-	
-	/**
-	 * make cookie map more readable
-	 * @param cookieMap cookie map
-	 * @return string
-	 */
-	private static String asString(Map<String, Cookie> cookieMap)
-	{
-		StringBuilder sb=new StringBuilder();
-		sb.append("{");
-		for (Map.Entry<String, Cookie> e : cookieMap.entrySet()) {
-			sb.append(e.getKey()).append("=").append(asString(e.getValue()));
-			sb.append(",");
-		}
-		sb.append("}");
-		return sb.toString();
-	}
-
-	/**
-	 * make cookie more readable
-	 * @param c cookie
-	 * @return string
-	 */
-	private static String asString(Cookie c)
-	{
-		StringBuilder sb=new StringBuilder();
-		sb.append("[");
-		sb.append("name=").append(c.getName()).append(",");
-		sb.append("value=").append(c.getValue()).append(",");
-		sb.append("maxAge=").append(c.getMaxAge());
-		sb.append("]");
-		return sb.toString();
-	}
-
-	/**
-	 * check last response cookies
-	 * @param cookies cookies
-	 */
-	private void lastResponseShouldHaveTheseCookies(Cookie...cookies) {
-		listShouldMatchAll(tester.getLastResponse().getCookies(), cookies);
-	}
-	
-	/**
-	 * response should not have any cookies
-	 */
-	private void lastResponseDoesNotHaveAnyCookies()
-	{
-		listShouldMatchAll(tester.getLastResponse().getCookies());
-	}
-	
-	/**
-	 * response should not have any cookies
-	 */
-	private void responseDoesNotHaveAnyCookies()
-	{
-		listShouldMatchAll(tester.getResponse().getCookies());
-	}
-	
-	/**
-	 * request should not have any cookies
-	 */
-	private void requestDoesNotHaveAnyCookies()
-	{
-		requestShouldHaveTheseCookies();
-	}
-	
-	/**
-	 * create a cookie map based on cookie name
-	 * @param cookies cookie list
-	 * @return as map
-	 * @throws RuntimeException if more than one cookie with the same name
-	 */
-	private static Map<String,Cookie> cookiesFromList(List<Cookie> cookies) {
-		Map<String, Cookie> ret = new LinkedHashMap<String, Cookie>();
-		for (Cookie cookie : cookies) {
-			Cookie oldValue = ret.put(cookie.getName(), cookie);
-			if (oldValue!=null) {
-				throw new RuntimeException("Cookie with name "+cookie.getName()+"("+asString(oldValue)+") allready in map "+asString(ret));
-			}
-		}
-		return ret;
-	}
 }