package net.jsunit;
import junit.framework.TestCase;
import junit.framework.TestResult;
import net.jsunit.configuration.ConfigurationSource;
import net.jsunit.model.Browser;
import net.jsunit.model.ResultType;
public class ExternallyShutDownStandaloneTestTest extends TestCase {
public ExternallyShutDownStandaloneTestTest(String name) {
super(name);
}
protected ConfigurationSource configurationSource() {
return new StubConfigurationSource() {
public String browserFileNames() {
return Browser.DEFAULT_SYSTEM_BROWSER;
}
public String url() {
return "http://localhost:8080/jsunit/testRunner.html?" +
"testPage=http://localhost:8080/jsunit/tests/jsUnitTestSuite.html" +
"&autoRun=true&submitresults=true&resultId=foobar";
}
};
}
public void testBrowsersExternallyShutDown() throws Exception {
final StandaloneTest test = new StandaloneTest(configurationSource());
new Thread() {
public void run() {
try {
while (test.getServer() == null)
Thread.sleep(100);
while (test.getServer().getBrowserProcess() == null)
Thread.sleep(100);
} catch (InterruptedException e) {
fail();
}
Process process = test.getServer().getBrowserProcess();
process.destroy();
try {
process.waitFor();
} catch (InterruptedException e) {
fail();
}
}
}.start();
TestResult result = test.run();
assertFalse(result.wasSuccessful());
assertEquals(
ResultType.EXTERNALLY_SHUT_DOWN,
test.getServer().lastResult().getResultType());
}
}