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: private FitNesse fitnesse;
14: private boolean doneShuttingDown;
15:
16: protected void setUp() throws Exception {
17: context = new FitNesseContext();
18: context.port = FitNesseUtil.port;
19: fitnesse = new FitNesse(context);
20: fitnesse.start();
21: context.fitnesse = fitnesse;
22: }
23:
24: protected void tearDown() throws Exception {
25: fitnesse.stop();
26: }
27:
28: public void testFitNesseGetsShutdown() throws Exception {
29: ShutdownResponder responder = new ShutdownResponder();
30: responder.makeResponse(context, new MockRequest());
31: Thread.sleep(200);
32: assertFalse(fitnesse.isRunning());
33: }
34:
35: public void testShutdownCalledFromServer() throws Exception {
36: Thread thread = new Thread() {
37: public void run() {
38: try {
39: RequestBuilder request = new RequestBuilder(
40: "/?responder=shutdown");
41: ResponseParser.performHttpRequest("localhost",
42: FitNesseUtil.port, request);
43: doneShuttingDown = true;
44: } catch (Exception e) {
45: e.printStackTrace();
46: }
47: }
48: };
49: thread.start();
50:
51: Thread.sleep(500);
52:
53: assertTrue(doneShuttingDown);
54: assertFalse(fitnesse.isRunning());
55: }
56:
57: public void testIsSecure() throws Exception {
58: assertTrue((new ShutdownResponder().getSecureOperation() instanceof AlwaysSecureOperation) == true);
59: }
60: }
|