package net.jsunit.action; import junit.framework.TestCase; import net.jsunit.DistributedTestRunManager; import net.jsunit.JsUnitAggregateServer; import net.jsunit.RemoteRunSpecification; import net.jsunit.SuccessfulRemoteServerHitter; import net.jsunit.configuration.AggregateConfiguration; import net.jsunit.configuration.DummyConfigurationSource; import net.jsunit.model.Browser; import net.jsunit.model.DistributedTestRunResult; import net.jsunit.utility.XmlUtility; import java.net.MalformedURLException; import java.net.URL; import java.util.Arrays; import java.util.List; public class DistributedTestRunnerActionTest extends TestCase { private DistributedTestRunnerAction action; public void setUp() throws Exception { super.setUp(); action = new DistributedTestRunnerAction(); action.setAggregateServer(new JsUnitAggregateServer(new AggregateConfiguration(new DummyConfigurationSource()))); action.setRemoteServerHitter(new SuccessfulRemoteServerHitter()); } public void testSimple() throws Exception { action.setRemoteRunSpecifications(someRemoteRunSpecs()); assertEquals(DistributedTestRunnerAction.SUCCESS, action.execute()); DistributedTestRunResult distributedTestRunResult = action.getTestRunManager().getDistributedTestRunResult(); assertTrue(distributedTestRunResult.wasSuccessful()); } public void testOverrideURL() throws Exception { action.setRemoteRunSpecifications(someRemoteRunSpecs()); String overrideURL = " http://overrideurl.com:1234?foo=bar&bar=fo "; action.setUrl(overrideURL); assertEquals(DistributedTestRunnerAction.SUCCESS, action.execute()); assertEquals(overrideURL.trim(), action.getTestRunManager().getOverrideURL()); } public void testLimitToSpecificRemoteMachinesAndBrowsers() throws Exception { action.setRemoteRunSpecifications(someRemoteRunSpecs()); action.execute(); DistributedTestRunManager testRunManager = action.getTestRunManager(); assertEquals(2, testRunManager.getRemoteRunSpecs().size()); } public void testErrorMessage() throws Exception { action.setErrorMessage("foo bar baz"); assertEquals( "<error>foo bar baz</error>", XmlUtility.asString(action.getXmlRenderable().asXml()) ); } private List<RemoteRunSpecification> someRemoteRunSpecs() throws MalformedURLException { RemoteRunSpecification spec0 = new RemoteRunSpecification(new URL("http://www.example.com")); spec0.addBrowser(new Browser("browser0.exe", 0)); RemoteRunSpecification spec1 = new RemoteRunSpecification(new URL("http://www.example.net")); spec1.addBrowser(new Browser("browser0.exe", 0)); return Arrays.asList(new RemoteRunSpecification[]{spec0, spec1}); } }