// Copyright (C) 2003-2009 by Object Mentor, Inc. All rights reserved.
// Released under the terms of the CPL Common Public License version 1.0.
package fitnesse.responders;
import junit.framework.TestCase;
import fitnesse.FitNesse;
import fitnesse.FitNesseContext;
import fitnesse.authentication.AlwaysSecureOperation;
import fitnesse.http.MockRequest;
import fitnesse.http.RequestBuilder;
import fitnesse.http.ResponseParser;
import fitnesse.testutil.FitNesseUtil;
public class ShutdownResponderTest extends TestCase {
private FitNesseContext context;
private FitNesse fitnesse;
private boolean doneShuttingDown;
protected void setUp() throws Exception {
context = FitNesseUtil.makeTestContext();
context.port = FitNesseUtil.port;
fitnesse = new FitNesse(context);
fitnesse.start();
context.fitnesse = fitnesse;
}
protected void tearDown() throws Exception {
fitnesse.stop();
}
public void testFitNesseGetsShutdown() throws Exception {
ShutdownResponder responder = new ShutdownResponder();
responder.makeResponse(context, new MockRequest());
Thread.sleep(200);
assertFalse(fitnesse.isRunning());
}
public void testShutdownCalledFromServer() throws Exception {
Thread thread = new Thread() {
public void run() {
try {
RequestBuilder request = new RequestBuilder("/?responder=shutdown");
ResponseParser.performHttpRequest("localhost", FitNesseUtil.port, request);
doneShuttingDown = true;
}
catch (Exception e) {
e.printStackTrace();
}
}
};
thread.start();
Thread.sleep(500);
assertTrue(doneShuttingDown);
assertFalse(fitnesse.isRunning());
}
public void testIsSecure() throws Exception {
assertTrue((new ShutdownResponder().getSecureOperation() instanceof AlwaysSecureOperation) == true);
}
}