package net.jsunit; import net.jsunit.configuration.ServerConfiguration; import net.jsunit.model.Browser; import net.jsunit.model.BrowserLaunchSpecification; import net.jsunit.model.BrowserResult; import net.jsunit.model.DummyBrowserResult; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class MockBrowserTestRunner extends BrowserTestRunnerStub { public boolean disposeCalled; public BrowserResult acceptedResult; public BrowserResult resultToReturn; public boolean shouldSucceed; public String idPassed; public Integer browserIdPassed; public int timeoutSeconds; public List<String> logMessages = new ArrayList<String>(); public List<BrowserLaunchSpecification> launchSpecs = new ArrayList<BrowserLaunchSpecification>(); public ServerConfiguration configuration; private TestRunListener testRunManager; public boolean waitingForBrowser; public void launchBrowserTestRun(BrowserLaunchSpecification launchSpec) { launchSpecs.add(launchSpec); BrowserResult result = createResult(); Browser browser = launchSpec.getBrowser(); result.setBrowser(browser); accept(result); } public void addTestRunListener(TestRunListener listener) { if (listener instanceof TestRunManager) this.testRunManager = listener; } public void removeTestRunListener(TestRunListener listener) { if (listener instanceof TestRunManager) this.testRunManager = null; } public boolean isWaitingForBrowser(Browser browser) { return waitingForBrowser; } public void accept(BrowserResult result) { this.acceptedResult = result; if (testRunManager != null) testRunManager.browserTestRunFinished(result.getBrowser(), result); } public BrowserResult lastResult() { return createResult(); } private DummyBrowserResult createResult() { return new DummyBrowserResult(shouldSucceed, shouldSucceed ? 0 : 1, 0); } public void dispose() { disposeCalled = true; } public BrowserResult findResultWithId(String id, int browserId) throws InvalidBrowserIdException { idPassed = id; browserIdPassed = browserId; return resultToReturn; } public List<Browser> getBrowsers() { return Arrays.asList(new Browser[]{new Browser("mybrowser1.exe", 0), new Browser("mybrowser2.exe", 1)}); } public int timeoutSeconds() { return timeoutSeconds; } public boolean isAlive() { return true; } public ServerConfiguration getConfiguration() { return configuration; } }