Revision: 1347
http://stripes.svn.sourceforge.net/stripes/?rev=1347&view=rev
Author: bengunter
Date: 2010-11-13 16:41:07 +0000 (Sat, 13 Nov 2010)
Log Message:
-----------
Applied fix for STS-744 from 1.5.x branch.
Modified Paths:
--------------
trunk/stripes/src/net/sourceforge/stripes/mock/MockServletContext.java
Added Paths:
-----------
trunk/tests/src/net/sourceforge/stripes/mock/TestMockRoundtripCookies.java
Modified: trunk/stripes/src/net/sourceforge/stripes/mock/MockServletContext.java
===================================================================
--- trunk/stripes/src/net/sourceforge/stripes/mock/MockServletContext.java
2010-11-13 16:37:44 UTC (rev 1346)
+++ trunk/stripes/src/net/sourceforge/stripes/mock/MockServletContext.java
2010-11-13 16:41:07 UTC (rev 1347)
@@ -19,6 +19,7 @@
import javax.servlet.Servlet;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
+import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import java.io.InputStream;
import java.net.MalformedURLException;
@@ -253,5 +254,20 @@
chain.setServlet(this.servlet);
chain.addFilters(this.filters);
chain.doFilter(request, response);
+ copyCookies(request, response);
}
+
+ /**
+ * Copies cookies from the request to the response.
+ *
+ * @param request The request.
+ * @param response The response.
+ */
+ public void copyCookies(MockHttpServletRequest request,
MockHttpServletResponse response) {
+ if (request.getCookies() != null) {
+ for (Cookie cookie : request.getCookies()) {
+ response.addCookie(cookie);
+ }
+ }
+ }
}
Added:
trunk/tests/src/net/sourceforge/stripes/mock/TestMockRoundtripCookies.java
===================================================================
--- trunk/tests/src/net/sourceforge/stripes/mock/TestMockRoundtripCookies.java
(rev 0)
+++ trunk/tests/src/net/sourceforge/stripes/mock/TestMockRoundtripCookies.java
2010-11-13 16:41:07 UTC (rev 1347)
@@ -0,0 +1,77 @@
+package net.sourceforge.stripes.mock;
+
+import javax.servlet.http.Cookie;
+
+import net.sourceforge.stripes.StripesTestFixture;
+import net.sourceforge.stripes.action.ActionBean;
+import net.sourceforge.stripes.action.ActionBeanContext;
+import net.sourceforge.stripes.action.DefaultHandler;
+import net.sourceforge.stripes.action.ForwardResolution;
+import net.sourceforge.stripes.action.Resolution;
+import net.sourceforge.stripes.action.UrlBinding;
+
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+/**
+ * Unit test that is designed to test how MockRoundTrip copies cookies from
the request to the
+ * response.
+ *
+ * @author Scott Archer
+ */
+...@urlbinding("/mock/MockRoundtripCookies.test")
+public class TestMockRoundtripCookies implements ActionBean {
+ private ActionBeanContext context;
+
+ public void setContext(ActionBeanContext context) {
+ this.context = context;
+ }
+
+ public ActionBeanContext getContext() {
+ return this.context;
+ }
+
+ /** A very simple add event that returns a Forward reslution. */
+ @DefaultHandler
+ public Resolution index() {
+ context.getResponse().addCookie(new Cookie("testCookie",
"testCookie"));
+ return new ForwardResolution("/mock/success.jsp");
+ }
+
+ //
/////////////////////////////////////////////////////////////////////////
+ // End of ActionBean methods and beginning of test methods. Everything
+ // below this line is a test!
+ //
/////////////////////////////////////////////////////////////////////////
+
+ @Test(groups = "fast")
+ public void testDefaultEvent() throws Exception {
+ // Setup the servlet engine
+ MockServletContext ctx = StripesTestFixture.getServletContext();
+ MockRoundtrip trip = new MockRoundtrip(ctx,
TestMockRoundtripCookies.class);
+
+ Cookie[] cookies = new Cookie[] { new Cookie("Cookie", "1"), new
Cookie("Monster", "2"),
+ new Cookie("Test", "3") };
+ trip.getRequest().setCookies(cookies);
+ trip.execute();
+
+ Assert.assertEquals(trip.getResponse().getCookies().length, 4);
+
+ for (Cookie cookie : trip.getResponse().getCookies()) {
+ if ("Cookie".equals(cookie.getName())) {
+ Assert.assertEquals(cookie.getValue(), "1");
+ }
+ else if ("Monster".equals(cookie.getName())) {
+ Assert.assertEquals(cookie.getValue(), "2");
+ }
+ else if ("Test".equals(cookie.getName())) {
+ Assert.assertEquals(cookie.getValue(), "3");
+ }
+ else if ("testCookie".equals(cookie.getName())) {
+ Assert.assertEquals(cookie.getValue(), "testCookie");
+ }
+ else {
+ throw new RuntimeException("Unexected cookie found in
response!");
+ }
+ }
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Centralized Desktop Delivery: Dell and VMware Reference Architecture
Simplifying enterprise desktop deployment and management using
Dell EqualLogic storage and VMware View: A highly scalable, end-to-end
client virtualization framework. Read more!
http://p.sf.net/sfu/dell-eql-dev2dev
_______________________________________________
Stripes-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-development