1 /*
2 * Scope: a generic MVC framework.
3 * Copyright (c) 2000-2002, The Scope team
4 * All rights reserved.
5 *
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 *
11 * Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 *
14 * Redistributions in binary form must reproduce the above copyright
15 * notice, this list of conditions and the following disclaimer in the
16 * documentation and/or other materials provided with the distribution.
17 *
18 * Neither the name "Scope" nor the names of its contributors
19 * may be used to endorse or promote products derived from this software
20 * without specific prior written permission.
21 *
22 *
23 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
26 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
27 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
28 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
29 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
30 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
31 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
32 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
33 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34 *
35 *
36 * $Id: TestServletContext.java,v 1.6 2002/09/12 19:09:34 ludovicc Exp $
37 */
38 package test.controller.servlet;
39
40
41 import junit.framework.TestCase;
42 import org.scopemvc.controller.servlet.xml.XSLServletContext;
43 import org.scopemvc.view.servlet.Page;
44 import org.scopemvc.view.servlet.ServletView;
45
46 /***
47 * <P>
48 *
49 * </P>
50 *
51 * @author <A HREF="mailto:smeyfroi@users.sourceforge.net">Steve Meyfroidt</A>
52 * @created 05 September 2002
53 * @version $Revision: 1.6 $ $Date: 2002/09/12 19:09:34 $
54 */
55 public class TestServletContext extends TestCase {
56
57 private DummyHTTPResponse response;
58 private DummyHTTPRequest request;
59 private ServletView servletView;
60 private Page page;
61 private XSLServletContext context;
62 private DummyServlet servlet;
63
64
65 /***
66 * Constructor for the TestServletContext object
67 *
68 * @param inName Name of the test
69 */
70 public TestServletContext(String inName) {
71 super(inName);
72 }
73
74
75 /***
76 * A unit test for JUnit
77 *
78 * @throws Exception Any abnormal exception
79 */
80 public void testConstructor() throws Exception {
81 assertSame(servlet, context.getServlet());
82 assertSame(request, context.getHttpRequest());
83 assertSame(response, context.getHttpResponse());
84 }
85
86
87 /***
88 * A unit test for JUnit
89 *
90 * @throws Exception Any abnormal exception
91 */
92 public void testShowView() throws Exception {
93 assertTrue(!context.hasShownView());
94 context.showView(servletView);
95 assertEquals("test", response.getContent());
96 assertTrue(context.hasShownView());
97 }
98
99
100 /***
101 * A unit test for JUnit
102 *
103 * @throws Exception Any abnormal exception
104 */
105 public void testShowError() throws Exception {
106 assertTrue(!context.hasShownView());
107 context.showError("abc", "uvw\nxyz");
108 String content = response.getContent();
109 assertTrue(content.indexOf("Error") != 0);
110 assertTrue(content.indexOf("abc") != 0);
111 assertTrue(content.indexOf("uvw<BR />xyz") != 0);
112 assertTrue(context.hasShownView());
113 }
114
115
116 /***
117 * A unit test for JUnit
118 *
119 * @throws Exception Any abnormal exception
120 */
121 public void testInternalError1() throws Exception {
122 servletView.setBoundModel(
123 new Object() {
124 public String toString() {
125 throw new UnsupportedOperationException();
126 }
127 });
128 assertTrue(!context.hasShownView());
129 context.showView(servletView);
130 String content = response.getContent();
131 assertTrue(content.indexOf("Internal error") != 0);
132 assertTrue(content.indexOf("UnsupportedOperationException") != 0);
133 assertTrue(context.hasShownView());
134 }
135
136
137 /***
138 * A unit test for JUnit
139 *
140 * @throws Exception Any abnormal exception
141 */
142 public void testInternalError2() throws Exception {
143 servletView = new ServletView();
144 // no Pages to show!
145 assertTrue(!context.hasShownView());
146 context.showView(servletView);
147 String content = response.getContent();
148 assertTrue(content.indexOf("Internal error") != 0);
149 assertTrue(content.indexOf("UnsupportedOperationException") != 0);
150 assertTrue(content.indexOf("No visible Page to stream.") != 0);
151 assertTrue(context.hasShownView());
152 }
153
154
155 /***
156 * The JUnit setup method
157 *
158 * @throws Exception Any abnormal exception
159 */
160 protected void setUp() throws Exception {
161 response = new DummyHTTPResponse();
162 servletView = new ServletView();
163 page = new DummyPage(null);
164 servletView.addPage(page);
165 servletView.setBoundModel("test");
166 servlet = new DummyServlet();
167 context = new XSLServletContext(servlet, request, response, null);
168 }
169 }
This page was automatically generated by Maven