01: // StrutsTestCase - a JUnit extension for testing Struts actions
02: // within the context of the ActionServlet.
03: // Copyright (C) 2002 Deryl Seale
04: //
05: // This library is free software; you can redistribute it and/or
06: // modify it under the terms of the Apache Software License as
07: // published by the Apache Software Foundation; either version 1.1
08: // of the License, or (at your option) any later version.
09: //
10: // This library is distributed in the hope that it will be useful,
11: // but WITHOUT ANY WARRANTY; without even the implied warranty of
12: // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13: // Apache Software Foundation Licens for more details.
14: //
15: // You may view the full text here: http://www.apache.org/LICENSE.txt
16:
17: package servletunit.struts.tests;
18:
19: import junit.framework.AssertionFailedError;
20: import servletunit.struts.MockStrutsTestCase;
21:
22: public class TestRedirectAction extends MockStrutsTestCase {
23:
24: public TestRedirectAction(String testName) {
25: super (testName);
26: }
27:
28: public void setUp() throws Exception {
29: super .setUp();
30: setServletConfigFile("/WEB-INF/web.xml");
31: }
32:
33: public void testVerifyRedirect() {
34: setRequestPathInfo("test", "/testRedirect");
35: actionPerform();
36: verifyForward("redirect");
37: verifyForwardPath("/test/main/success.jsp");
38: verifyNoActionErrors();
39: }
40:
41: /**
42: * Confirms verifyForward works correctly when the redirect path
43: * is a relative (not absolute) URL
44: */
45: public void testRelativeRedirect() {
46: setRequestPathInfo("test", "/testRelativeRedirect");
47: actionPerform();
48: verifyForward("redirect");
49: verifyForwardPath("/test/main/success.jsp");
50: verifyNoActionErrors();
51: }
52:
53: //todo: this test is for a future enhancement.
54: // public void testVerifiesRedirectedExternalURL() {
55: // setRequestPathInfo("test","/testRedirectToExternalURL");
56: // actionPerform();
57: // verifyForwardPath("http://www.yahoo.com");
58: // verifyForward("redirect");
59: // }
60:
61: public void testVerifyRedirectFail() {
62: try {
63: setRequestPathInfo("test", "/testRedirect");
64: actionPerform();
65: verifyForward("login");
66: verifyNoActionErrors();
67: } catch (AssertionFailedError e) {
68: return;
69: }
70: fail("We are apparently getting the same redirects, when they should be different.");
71: }
72:
73: }
|