01: // Copyright (C) 2003,2004,2005 by Object Mentor, Inc. All rights reserved.
02: // Released under the terms of the GNU General Public License version 2 or later.
03: package fitnesse.responders;
04:
05: import junit.framework.TestCase;
06: import fitnesse.*;
07: import fitnesse.authentication.AlwaysSecureOperation;
08: import fitnesse.testutil.FitNesseUtil;
09: import fitnesse.http.*;
10:
11: public class ShutdownResponderTest extends TestCase {
12: private FitNesseContext context;
13:
14: private FitNesse fitnesse;
15:
16: boolean doneShuttingDown;
17:
18: protected void setUp() throws Exception {
19: context = new FitNesseContext();
20: context.port = FitNesseUtil.port;
21: fitnesse = new FitNesse(context);
22: fitnesse.start();
23: context.fitnesse = fitnesse;
24: }
25:
26: protected void tearDown() throws Exception {
27: fitnesse.stop();
28: }
29:
30: public void testFitNesseGetsShutdown() throws Exception {
31: ShutdownResponder responder = new ShutdownResponder();
32: responder.makeResponse(context, new MockRequest());
33: Thread.sleep(200);
34: assertFalse(fitnesse.isRunning());
35: }
36:
37: public void testShutdownCalledFromServer() throws Exception {
38: Thread thread = new Thread() {
39: public void run() {
40: try {
41: RequestBuilder request = new RequestBuilder(
42: "/?responder=shutdown");
43: ResponseParser.performHttpRequest("localhost",
44: FitNesseUtil.port, request);
45: doneShuttingDown = true;
46: } catch (Exception e) {
47: e.printStackTrace();
48: }
49: }
50: };
51: thread.start();
52:
53: Thread.sleep(500);
54:
55: assertTrue(doneShuttingDown);
56: assertFalse(fitnesse.isRunning());
57: }
58:
59: public void testIsSecure() throws Exception {
60: assertTrue((new ShutdownResponder().getSecureOperation() instanceof AlwaysSecureOperation) == true);
61: }
62: }
|