1 package org.melati.servlet.test;
2
3 import java.io.PrintWriter;
4
5 import javax.servlet.ServletConfig;
6 import javax.servlet.ServletException;
7 import javax.servlet.http.HttpServletRequest;
8 import javax.servlet.http.HttpServletResponse;
9
10 import junit.framework.TestCase;
11
12 /**
13 * @author timp
14 */
15 public class ConfigServletTest extends TestCase {
16
17 /**
18 * Constructor for ConfigServletTest.
19 * @param name
20 */
21 public ConfigServletTest(String name) {
22 super(name);
23
24 }
25
26 /**
27 * @see TestCase#setUp()
28 */
29 protected void setUp()
30 throws Exception {
31 super.setUp();
32 }
33
34 /**
35 * @see TestCase#tearDown()
36 */
37 protected void tearDown()
38 throws Exception {
39 super.tearDown();
40 }
41
42 /**
43 * @see org.melati.servlet.ConfigServlet#init(ServletConfig)
44 */
45 public void testInitServletConfig() {
46
47 }
48
49 /**
50 * @see org.melati.servlet.ConfigServlet#doGet(HttpServletRequest, HttpServletResponse)
51 */
52 public void testDoGetHttpServletRequestHttpServletResponse() {
53 MockServletRequest mockHttpServletRequest = new MockServletRequest();
54 MockServletResponse mockHttpServletResponse = new MockServletResponse();
55
56 mockHttpServletRequest.setPathInfo("melatitest/user/1");
57
58 MockServletConfig mockServletConfig = new MockServletConfig();
59 org.melati.test.ConfigServletTest aServlet =
60 new org.melati.test.ConfigServletTest();
61 try {
62 aServlet.init(mockServletConfig);
63 aServlet.doGet(mockHttpServletRequest,
64 mockHttpServletResponse);
65 } catch (ServletException e) {
66 e.printStackTrace();
67 fail(e.toString());
68 }
69
70 aServlet.destroy();
71
72 String output = mockHttpServletResponse.getWritten();
73 assertTrue(output.toString().indexOf("<h2>ConfigServlet Test</h2>") != -1);
74 }
75
76 /**
77 * @see org.melati.servlet.ConfigServlet#doPost(HttpServletRequest, HttpServletResponse)
78 */
79 public void testDoPostHttpServletRequestHttpServletResponse() {
80 MockServletRequest mockHttpServletRequest = new MockServletRequest();
81 MockServletResponse mockHttpServletResponse = new MockServletResponse();
82
83 mockHttpServletRequest.setPathInfo("melatitest/user/1");
84
85 MockServletConfig mockServletConfig = new MockServletConfig();
86 org.melati.test.ConfigServletTest aServlet =
87 new org.melati.test.ConfigServletTest();
88 try {
89 aServlet.init(mockServletConfig);
90 aServlet.doPost(mockHttpServletRequest,
91 mockHttpServletResponse);
92 } catch (Exception e) {
93 e.printStackTrace();
94 fail();
95 }
96
97 aServlet.destroy();
98
99 String output = mockHttpServletResponse.getWritten();
100 assertTrue(output.toString().indexOf("<h2>ConfigServlet Test</h2>") != -1);
101
102 }
103
104 /**
105 * @see org.melati.servlet.ConfigServlet#error(Melati, Exception)
106 */
107 public void testError() {
108 MockServletRequest mockHttpServletRequest = new MockServletRequest();
109 MockServletResponse mockHttpServletResponse = new MockServletResponse();
110
111 mockHttpServletRequest.setPathInfo("melatitest/user/1");
112
113 MockServletConfig mockServletConfig = new MockServletConfig();
114 ErrorConfigServlet aServlet =
115 new ErrorConfigServlet();
116 try {
117 aServlet.init(mockServletConfig);
118 aServlet.doPost(mockHttpServletRequest,
119 mockHttpServletResponse);
120 } catch (Exception e) {
121 e.printStackTrace();
122 fail();
123 }
124
125 aServlet.destroy();
126
127 String output = mockHttpServletResponse.getWritten();
128 assertTrue(output.toString().indexOf("You need the capability") != -1);
129
130
131 }
132
133 /**
134 * @see org.melati.servlet.ConfigServlet#error(Melati, Exception)
135 */
136 public void testConnectionPendingError() throws Exception {
137 MockServletRequest mockHttpServletRequest = new MockServletRequest();
138 MockServletResponse mockHttpServletResponse = new MockServletResponse();
139
140 mockHttpServletRequest.setPathInfo("melatitest/user/1");
141
142 MockServletConfig mockServletConfig = new MockServletConfig();
143 DbPendingErrorConfigServlet aServlet =
144 new DbPendingErrorConfigServlet();
145 aServlet.init(mockServletConfig);
146 aServlet.doPost(mockHttpServletRequest,
147 mockHttpServletResponse);
148 aServlet.destroy();
149
150 String output = mockHttpServletResponse.getWritten();
151 assertTrue(output.toString().indexOf("The database `testdb' is in the process of being initialized") != -1);
152
153 }
154
155 /**
156 * Test expection thrown during initialisation.
157 */
158 public void testExceptionDuringInit() throws Exception {
159 MockServletResponse response = new MockServletResponse();
160 MockServletRequest request = new MockServletRequest();
161 MockServletConfig mockServletConfig = new MockServletConfig();
162 MelatiConfigExceptionConfigServlet aServlet =
163 new MelatiConfigExceptionConfigServlet();
164 try {
165 aServlet.init(mockServletConfig);
166 aServlet.doPost(request,
167 response);
168 fail("Should have blown up");
169 } catch (ServletException e) {
170 assertEquals("org.melati.util.ConfigException: Pretend bug", e.getMessage());
171 }
172 aServlet.destroy();
173 }
174
175
176 /**
177 * @see org.melati.servlet.ConfigServlet#writeError(PrintWriter, Exception)
178 */
179 public void testWriteError() {
180
181 }
182
183 /**
184 * @see org.melati.servlet.ConfigServlet#writeConnectionPendingException(PrintWriter, Exception)
185 */
186 public void testWriteConnectionPendingException() {
187
188 }
189
190 /**
191 * @see org.melati.servlet.ConfigServlet#getSysAdminName()
192 */
193 public void testGetSysAdminName() {
194 MockServletRequest mockHttpServletRequest = new MockServletRequest();
195 MockServletResponse mockHttpServletResponse = new MockServletResponse();
196
197 mockHttpServletRequest.setPathInfo("melatitest/user/1");
198
199 MockServletConfig mockServletConfig = new MockServletConfig();
200
201 org.melati.test.ConfigServletTest aServlet =
202 new org.melati.test.ConfigServletTest();
203 try {
204 aServlet.init(mockServletConfig);
205 assertEquals("nobody", aServlet.getSysAdminName());
206 aServlet.doPost(mockHttpServletRequest,
207 mockHttpServletResponse);
208 aServlet.destroy();
209 } catch (Exception e) {
210 e.printStackTrace();
211 fail();
212 }
213 }
214
215 /**
216 * @see org.melati.servlet.ConfigServlet#getSysAdminEmail()
217 */
218 public void testGetSysAdminEmail() {
219 MockServletRequest mockHttpServletRequest = new MockServletRequest();
220 MockServletResponse mockHttpServletResponse = new MockServletResponse();
221
222 mockHttpServletRequest.setPathInfo("melatitest/user/1");
223
224 MockServletConfig mockServletConfig = new MockServletConfig();
225
226 org.melati.test.ConfigServletTest aServlet =
227 new org.melati.test.ConfigServletTest();
228 try {
229 aServlet.init(mockServletConfig);
230 assertEquals("nobody@nobody.com", aServlet.getSysAdminEmail());
231 aServlet.doPost(mockHttpServletRequest,
232 mockHttpServletResponse);
233 aServlet.destroy();
234 } catch (Exception e) {
235 e.printStackTrace();
236 fail();
237 }
238 }
239
240 }