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 Stripes-development@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/stripes-development