You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by pe...@apache.org on 2010/11/13 12:54:01 UTC
svn commit: r1034731 - in /wicket/trunk/wicket/src:
main/java/org/apache/wicket/protocol/http/
main/java/org/apache/wicket/protocol/http/mock/
main/java/org/apache/wicket/util/tester/
test/java/org/apache/wicket/protocol/http/
Author: pete
Date: Sat Nov 13 11:54:01 2010
New Revision: 1034731
URL: http://svn.apache.org/viewvc?rev=1034731&view=rev
Log:
WICKET-3161: added test case
Added:
wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/ModifyCookiePage.html
- copied, changed from r1034699, wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/FirstPage.html
wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/ModifyCookiePage.java
wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/ModifyCookiePageTest.java
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/IBufferedWebResponse.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponse.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/IBufferedWebResponse.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/IBufferedWebResponse.java?rev=1034731&r1=1034730&r2=1034731&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/IBufferedWebResponse.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/IBufferedWebResponse.java Sat Nov 13 11:54:01 2010
@@ -18,7 +18,7 @@ package org.apache.wicket.protocol.http;
import org.apache.wicket.request.http.WebResponse;
-interface IBufferedWebResponse
+public interface IBufferedWebResponse
{
/**
* transfer cookie operations (add + clear cookie) to given web response
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponse.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponse.java?rev=1034731&r1=1034730&r2=1034731&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponse.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponse.java Sat Nov 13 11:54:01 2010
@@ -36,6 +36,8 @@ import javax.servlet.ServletOutputStream
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse;
+import org.apache.wicket.protocol.http.IBufferedWebResponse;
+import org.apache.wicket.request.http.WebResponse;
import org.apache.wicket.util.value.ValueMap;
@@ -45,7 +47,7 @@ import org.apache.wicket.util.value.Valu
*
* @author Chris Turner
*/
-public class MockHttpServletResponse implements HttpServletResponse
+public class MockHttpServletResponse implements HttpServletResponse, IBufferedWebResponse
{
private static final int MODE_BINARY = 1;
@@ -815,4 +817,10 @@ public class MockHttpServletResponse imp
{
return Collections.singletonList(headers.get(name).toString());
}
+
+ public void transferCookies(WebResponse webResponse)
+ {
+ for (Cookie cookie : cookies)
+ webResponse.addCookie(cookie);
+ }
}
\ No newline at end of file
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java?rev=1034731&r1=1034730&r2=1034731&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java Sat Nov 13 11:54:01 2010
@@ -76,6 +76,7 @@ import org.apache.wicket.mock.MockReques
import org.apache.wicket.mock.MockSessionStore;
import org.apache.wicket.page.IPageManager;
import org.apache.wicket.page.IPageManagerContext;
+import org.apache.wicket.protocol.http.IBufferedWebResponse;
import org.apache.wicket.protocol.http.WebApplication;
import org.apache.wicket.protocol.http.WicketFilter;
import org.apache.wicket.protocol.http.mock.MockHttpServletRequest;
@@ -97,6 +98,7 @@ import org.apache.wicket.request.handler
import org.apache.wicket.request.handler.PageProvider;
import org.apache.wicket.request.handler.RenderPageRequestHandler;
import org.apache.wicket.request.handler.render.PageRenderer;
+import org.apache.wicket.request.http.WebResponse;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.session.ISessionStore;
import org.apache.wicket.settings.IRequestCycleSettings.RenderStrategy;
@@ -324,22 +326,7 @@ public class BaseWicketTester
*/
private ServletWebResponse createServletWebResponse(ServletWebRequest servletWebRequest)
{
- return new ServletWebResponse(servletWebRequest, response)
- {
- @Override
- public void sendRedirect(String url)
- {
- super.sendRedirect(url);
- try
- {
- getHttpServletResponse().sendRedirect(url);
- }
- catch (IOException e)
- {
- throw new RuntimeException(e);
- }
- }
- };
+ return new WicketTesterServletWebResponse(servletWebRequest, response);
}
/**
@@ -2090,4 +2077,48 @@ public class BaseWicketTester
throw new UnsupportedOperationException("Not implemented");
}
}
+
+ private class WicketTesterServletWebResponse extends ServletWebResponse implements IBufferedWebResponse
+ {
+ private List<Cookie> cookies = new ArrayList<Cookie>();
+
+ public WicketTesterServletWebResponse(ServletWebRequest request, MockHttpServletResponse response)
+ {
+ super(request, response);
+ }
+
+ @Override
+ public void addCookie(Cookie cookie)
+ {
+ super.addCookie(cookie);
+ cookies.add(cookie);
+ }
+
+ @Override
+ public void clearCookie(Cookie cookie)
+ {
+ super.clearCookie(cookie);
+ cookies.add(cookie);
+ }
+
+ public void transferCookies(WebResponse webResponse)
+ {
+ for (Cookie cookie : cookies)
+ webResponse.addCookie(cookie);
+ }
+
+ @Override
+ public void sendRedirect(String url)
+ {
+ super.sendRedirect(url);
+ try
+ {
+ getHttpServletResponse().sendRedirect(url);
+ }
+ catch (IOException e)
+ {
+ throw new RuntimeException(e);
+ }
+ }
+ }
}
Copied: wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/ModifyCookiePage.html (from r1034699, wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/FirstPage.html)
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/ModifyCookiePage.html?p2=wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/ModifyCookiePage.html&p1=wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/FirstPage.html&r1=1034699&r2=1034731&rev=1034731&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/FirstPage.html (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/ModifyCookiePage.html Sat Nov 13 11:54:01 2010
@@ -1,10 +1,12 @@
-<html xmlns:wicket>
- <head>
- <title>Wicket Quickstart Archetype Homepage</title>
- </head>
- <body>
- first page<br/>
- <a wicket:id="link">link to second page</a>
- </body>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html>
+<html xmlns:wicket="http://wicket.apache.org">
+<head>
+ <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
+ <title>Cookie Test Page</title>
+</head>
+<body>
+ <a wicket:id="createCookie">create a cookie within link listener invocation</a>
+</body>
</html>
Added: wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/ModifyCookiePage.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/ModifyCookiePage.java?rev=1034731&view=auto
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/ModifyCookiePage.java (added)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/ModifyCookiePage.java Sat Nov 13 11:54:01 2010
@@ -0,0 +1,39 @@
+package org.apache.wicket.protocol.http;
+
+import org.apache.wicket.Component;
+import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.markup.html.link.Link;
+import org.apache.wicket.request.http.WebResponse;
+
+import javax.servlet.http.Cookie;
+
+public class ModifyCookiePage extends WebPage
+{
+ private static final long serialVersionUID = 3884508803470168634L;
+
+ public static final String CREATE_COOKIE_ID = "createCookie";
+ public static final String COOKIE_NAME = "wicketTest";
+ public static final String COOKIE_VALUE = "1";
+
+ private WebResponse getWebResponse()
+ {
+ return (WebResponse) getResponse();
+ }
+
+ @Override
+ protected void onInitialize()
+ {
+ super.onInitialize();
+
+ add(new Link<Void>(CREATE_COOKIE_ID)
+ {
+ private static final long serialVersionUID = 6762033052623200948L;
+
+ @Override
+ public void onClick()
+ {
+ getWebResponse().addCookie(new Cookie(COOKIE_NAME, COOKIE_VALUE));
+ }
+ });
+ }
+}
\ No newline at end of file
Added: wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/ModifyCookiePageTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/ModifyCookiePageTest.java?rev=1034731&view=auto
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/ModifyCookiePageTest.java (added)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/ModifyCookiePageTest.java Sat Nov 13 11:54:01 2010
@@ -0,0 +1,47 @@
+package org.apache.wicket.protocol.http;
+
+import junit.framework.TestCase;
+import org.apache.wicket.protocol.http.mock.MockHttpServletResponse;
+import org.apache.wicket.util.tester.WicketTester;
+import org.junit.Test;
+
+import javax.servlet.http.Cookie;
+import java.util.List;
+
+public class ModifyCookiePageTest extends TestCase
+{
+ private WicketTester tester;
+
+ @Override
+ public void setUp()
+ {
+ tester = new WicketTester();
+ }
+
+ @Test
+ public void testSetCookieWithinLinkListener()
+ {
+ // render page
+ tester.startPage(ModifyCookiePage.class);
+ tester.assertRenderedPage(ModifyCookiePage.class);
+
+ // click link that creates a cookie with in the link listener
+ tester.clickLink(ModifyCookiePage.CREATE_COOKIE_ID);
+
+ // check page is rendered
+ tester.assertRenderedPage(ModifyCookiePage.class);
+
+ // get response
+ MockHttpServletResponse response = tester.getLastResponse();
+ assertNotNull(response);
+
+ // check that one cookie was set
+ List<Cookie> cookies = response.getCookies();
+ assertEquals(1, cookies.size());
+
+ // check that cookie contains proper values
+ Cookie cookie = cookies.get(0);
+ assertEquals(ModifyCookiePage.COOKIE_NAME, cookie.getName());
+ assertEquals(ModifyCookiePage.COOKIE_VALUE, cookie.getValue());
+ }
+}
\ No newline at end of file