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 examples;
18:
19: import servletunit.struts.MockStrutsTestCase;
20:
21: public class TestLoginAction extends MockStrutsTestCase {
22:
23: public TestLoginAction(String testName) {
24: super (testName);
25: }
26:
27: public void setUp() throws Exception {
28: super .setUp();
29: setInitParameter("validating", "false");
30: }
31:
32: public void testSuccessfulLogin() {
33:
34: addRequestParameter("username", "deryl");
35: addRequestParameter("password", "radar");
36: setRequestPathInfo("/login");
37: actionPerform();
38: verifyForward("success");
39: verifyForwardPath("/main/success.jsp");
40: assertEquals("deryl", getSession().getAttribute(
41: "authentication"));
42: verifyNoActionErrors();
43: }
44:
45: public void testFailedLogin() {
46:
47: addRequestParameter("username", "deryl");
48: addRequestParameter("password", "express");
49: setRequestPathInfo("/login");
50: actionPerform();
51: verifyForward("login");
52: verifyForwardPath("/login/login.jsp");
53: verifyInputForward();
54: verifyActionErrors(new String[] { "error.password.mismatch" });
55: assertNull(getSession().getAttribute("authentication"));
56: }
57:
58: public static void main(String[] args) {
59: junit.textui.TestRunner.run(TestLoginAction.class);
60: }
61:
62: }
|