package net.jsunit; import junit.framework.TestCase; import net.jsunit.configuration.AggregateConfiguration; import net.jsunit.configuration.DummyConfigurationSource; import net.jsunit.configuration.ServerType; import org.jdom.Document; public class JsUnitAggregateServerTest extends TestCase { private JsUnitAggregateServer server; protected void tearDown() throws Exception { if (server.isAlive()) server.dispose(); super.tearDown(); } public void testStartTestRun() throws Exception { server = new JsUnitAggregateServer(new AggregateConfiguration(new DummyConfigurationSource())); assertEquals(ServerType.AGGREGATE, server.serverType()); } public void testStartCachesRemoteConfigurations() throws Exception { MockRemoteServerHitter hitter = new MockRemoteServerHitter(); server = new JsUnitAggregateServer(new AggregateConfiguration(new DummyConfigurationSource()), hitter); hitter.urlToDocument.put(DummyConfigurationSource.REMOTE_URL_1 + "/config", configuration1Document()); hitter.urlToDocument.put(DummyConfigurationSource.REMOTE_URL_2 + "/config", configurationToDocument()); server.preStart(); assertEquals(2, hitter.urlsPassed.size()); assertTrue(hitter.urlsPassed.contains(DummyConfigurationSource.REMOTE_URL_1 + "/config")); assertTrue(hitter.urlsPassed.contains(DummyConfigurationSource.REMOTE_URL_2 + "/config")); assertEquals(2, server.getCachedRemoteConfigurations().size()); } public void testStartServerWithBlowingUpRemoteServer() throws Exception { BlowingUpRemoteServerHitter hitter = new BlowingUpRemoteServerHitter(); server = new JsUnitAggregateServer(new AggregateConfiguration(new DummyConfigurationSource()), hitter); server.preStart(); assertTrue(server.getCachedRemoteConfigurations().isEmpty()); } private Document configuration1Document() { return new Document(new AggregateConfiguration(new DummyConfigurationSource() { public String browserFileNames() { return "/usr/bin/mozilla,/usr/bin/firefox"; } }).asXml()); } private Document configurationToDocument() { return new Document(new AggregateConfiguration(new DummyConfigurationSource() { public String browserFileNames() { return "c:\\program files\\iexplore.exe,c:\\program files\\netscape6.exe"; } }).asXml()); } }