package net.jsunit; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; import net.jsunit.configuration.Configuration; import net.jsunit.configuration.ConfigurationSource; import net.jsunit.configuration.DelegatingConfigurationSource; import net.jsunit.model.Browser; import net.jsunit.model.TestRunResult; import net.jsunit.utility.XmlUtility; public class StandaloneTest extends TestCase { protected JsUnitStandardServer server; private TestRunManager testRunManager; private ConfigurationSource configurationSource; private String overrideURL; public StandaloneTest(String name) { super(name); this.configurationSource = configurationSource(); } public StandaloneTest(ConfigurationSource source) { super(source.browserFileNames()); this.configurationSource = source; } public static Test suite() { TestSuite suite = new TestSuite(); ConfigurationSource originalSource = Configuration.resolveSource(); Configuration configuration = new Configuration(originalSource); for (final Browser browser : configuration.getBrowsers()) suite.addTest(new StandaloneTest(new DelegatingConfigurationSource(originalSource) { public String browserFileNames() { return browser.getFileName(); } })); return suite; } public void setUp() throws Exception { super.setUp(); server = new JsUnitStandardServer(new Configuration(configurationSource), false); server.start(); testRunManager = createTestRunManager(); } protected ConfigurationSource configurationSource() { return Configuration.resolveSource(); } protected TestRunManager createTestRunManager() { return new TestRunManager(server, overrideURL); } public void tearDown() throws Exception { if (server != null) server.dispose(); super.tearDown(); } public void runTest() throws Exception { testStandaloneRun(); } public void testStandaloneRun() throws Exception { testRunManager.runTests(); TestRunResult testRunResult = testRunManager.getTestRunResult(); if (!testRunResult.wasSuccessful()) { StringBuffer buffer = new StringBuffer(); buffer.append(testRunResult.displayString()); buffer.append("\n"); String xml = XmlUtility.asPrettyString(testRunManager.getTestRunResult().asXml()); buffer.append(xml); fail(buffer.toString()); } } public JsUnitStandardServer getServer() { return server; } public void setOverrideURL(String url) { this.overrideURL = url; } }