package net.sourceforge.stripes.action; import java.util.Locale; import javax.servlet.http.HttpServletResponse; import net.sourceforge.stripes.FilterEnabledTestBase; import net.sourceforge.stripes.mock.MockHttpServletRequest; import net.sourceforge.stripes.mock.MockHttpServletResponse; import org.testng.Assert; import org.testng.annotations.Test; public class RedirectResolutionTest extends FilterEnabledTestBase { //helper method private MockHttpServletRequest buildMockServletRequest(){ MockHttpServletRequest request = new MockHttpServletRequest("/context", "/whatever"); request.addLocale(Locale.US); return request; } @Test(groups = "fast") public void testPermanantRedirect() throws Exception { RedirectResolution resolution = new RedirectResolution("http://www.stripesframework.org", false).setPermanent(true); MockHttpServletResponse response = new MockHttpServletResponse(); resolution.execute(buildMockServletRequest(), response); Assert.assertEquals(response.getStatus(), HttpServletResponse.SC_MOVED_PERMANENTLY); Assert.assertEquals(response.getHeaderMap().get("Location").iterator().next(), "http://www.stripesframework.org"); } @Test(groups = "fast") public void testTemporaryRedirect() throws Exception { RedirectResolution resolution = new RedirectResolution("http://www.stripesframework.org", false); MockHttpServletResponse response = new MockHttpServletResponse(); resolution.execute(buildMockServletRequest(), response); Assert.assertEquals(response.getStatus(), HttpServletResponse.SC_MOVED_TEMPORARILY); Assert.assertEquals(response.getRedirectUrl(), "http://www.stripesframework.org"); } @Test(groups = "fast") public void testPermanantRedirectWithParameters() throws Exception { RedirectResolution resolution = new RedirectResolution("http://www.stripesframework.org", false).setPermanent(true).addParameter("test", "test"); MockHttpServletResponse response = new MockHttpServletResponse(); resolution.execute(buildMockServletRequest(), response); Assert.assertEquals(response.getStatus(), HttpServletResponse.SC_MOVED_PERMANENTLY); Assert.assertEquals(response.getHeaderMap().get("Location").iterator().next(), "http://www.stripesframework.org?test=test"); } @Test(groups = "fast") public void testTemporaryRedirectWithParameters() throws Exception { RedirectResolution resolution = new RedirectResolution("http://www.stripesframework.org", false).addParameter("test", "test"); MockHttpServletResponse response = new MockHttpServletResponse(); resolution.execute(buildMockServletRequest(), response); Assert.assertEquals(response.getStatus(), HttpServletResponse.SC_MOVED_TEMPORARILY); Assert.assertEquals(response.getRedirectUrl(), "http://www.stripesframework.org?test=test"); } }