Package net.jsunit

Source Code of net.jsunit.ResultAcceptorTest

package net.jsunit;

import junit.framework.TestCase;
import net.jsunit.configuration.ServerConfiguration;
import net.jsunit.configuration.StubConfigurationSource;
import net.jsunit.interceptor.BrowserResultInterceptor;
import net.jsunit.model.*;

import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class ResultAcceptorTest extends TestCase {

    protected Map<String, String[]> requestMap;
    private JsUnitServer server;
    private MockBrowserResultRepository mockBrowserResultRepository;
    private Browser browser;

    public void setUp() throws Exception {
        super.setUp();
        ServerConfiguration configuration = new ServerConfiguration(new StubConfigurationSource() {

            public String browserFileNames() {
                return "browser1.exe,browser2.exe,browser3.exe";
            }

            public String logStatus() {
                return String.valueOf(Boolean.FALSE);
            }

            public String url() {
                return "http://bar";
            }

        });
        mockBrowserResultRepository = new MockBrowserResultRepository();
        server = new JsUnitServer(configuration, mockBrowserResultRepository);
        server.setProcessStarter(new MockProcessStarter());
        browser = new Browser("browser.exe", 1);
        requestMap = new HashMap<String, String[]>();
        requestMap.put(BrowserResultWriter.ID, new String[]{"ID_foo"});
        requestMap.put(BrowserResultWriter.USER_AGENT, new String[]{"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"});
        requestMap.put(BrowserResultWriter.TIME, new String[]{"4.3"});
        requestMap.put(BrowserResultWriter.JSUNIT_VERSION, new String[]{"2.5"});
        requestMap.put(BrowserResultWriter.TEST_CASE_RESULTS, dummyTestCaseStrings());
        requestMap.put("browserId", new String[]{String.valueOf(browser.getId())});
    }

    protected String[] dummyTestCaseStrings() {
        return new String[]{"file:///dummy/path/dummyPage.html:testFoo|1.3|S||", "file:///dummy/path/dummyPage.html:testFoo|1.3|E|Test Error Message|", "file:///dummy/path/dummyPage.html:testFoo|1.3|F|Test Failure Message|"};
    }

    protected void submit() {
        HttpServletRequest request = new DummyHttpRequest(requestMap);
        server.accept(new BrowserResultInterceptor().build(request, new BrowserSource() {
            public Browser getBrowserById(int id) {
                if (id == browser.getId())
                    return browser;
                fail("shouldn't be asking for browser with ID " + id);
                return null;
            }

            public List<Browser> getAllBrowsers() {
                return null;
            }
        }));
    }

    public void testSubmitResults() {
        launchBrowserTestRun();
        assertNull(server.lastResult());
        submit();
        BrowserResult browserResult1 = server.lastResult();
        assertNotNull(browserResult1);

        launchBrowserTestRun();
        submit();
        BrowserResult browserResult2 = server.lastResult();
        assertNotNull(browserResult2);

        assertNotSame(browserResult1, browserResult2);
    }

    public void testSubmittedResultHeaders() {
        launchBrowserTestRun();
        submit();
        BrowserResult result = server.lastResult();
        assertEquals("ID_foo", result.getId());
        assertEquals("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)", result.getUserAgent());
        assertEquals("2.5", result.getJsUnitVersion());
        assertEquals(1, result.getErrorCount());
        assertEquals(1, result.getFailureCount());
        assertEquals(3, result.getTestCount());
        assertEquals(4.3d, result.getTime(), .001d);
    }

    public void testSubmittedTestCaseResults() {
        launchBrowserTestRun();
        submit();
        BrowserResult result = server.lastResult();
        assertEquals(3, result._getTestCaseResults().size());
    }

    private void launchBrowserTestRun() {
        server.launchBrowserTestRun(new BrowserLaunchSpecification(browser));
    }

    public void testIsWaitingForBrowser() throws InterruptedException {
        Browser someOtherBrowser = new Browser("anotherBrowser.exe", 7);
        launchBrowserTestRun();
        server.launchBrowserTestRun(new BrowserLaunchSpecification(someOtherBrowser));

        assertTrue(server.isWaitingForBrowser(browser));
        assertTrue(server.isWaitingForBrowser(someOtherBrowser));

        submit();
        assertFalse(server.isWaitingForBrowser(browser));
        assertTrue(server.isWaitingForBrowser(someOtherBrowser));
    }

    public void testFindResultById() throws InvalidBrowserIdException {
        assertNull(server.findResultWithId("ID_foo", 1));
        assertEquals("ID_foo", mockBrowserResultRepository.requestedId);
        assertEquals(1, mockBrowserResultRepository.requestedBrowser.getId());
    }

    public void testLog() {
        launchBrowserTestRun();
        submit();
        assertEquals("ID_foo", mockBrowserResultRepository.storedResult.getId());
    }

}
TOP

Related Classes of net.jsunit.ResultAcceptorTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.