Package net.jsunit

Source Code of net.jsunit.TimeoutChecker

package net.jsunit;

import net.jsunit.model.Browser;
import net.jsunit.model.BrowserResult;
import net.jsunit.model.ResultType;

import java.util.logging.Logger;

public class TimeoutChecker extends Thread {

    private static final Logger logger = Logger.getLogger("net.jsunit");

    private final BrowserTestRunner runner;
    private long launchTime;
    private final Browser browser;
    private boolean alive;
    private long checkInterval;
    private Process browserProcess;

    public TimeoutChecker(Process browserProcess, Browser browser, long launchTime, BrowserTestRunner runner) {
        this(browserProcess, browser, launchTime, runner, 100);
    }

    public TimeoutChecker(Process browserProcess, Browser browser, long launchTime, BrowserTestRunner runner, long checkInterval) {
        this.browser = browser;
        this.runner = runner;
        this.launchTime = launchTime;
        this.checkInterval = checkInterval;
        this.browserProcess = browserProcess;
        alive = true;
    }

    public void run() {
        while (alive && runner.isWaitingForBrowser(browser)) {
            if (waitedTooLong()) {
                logger.warning("Browser " + browser.getDisplayName() + " timed out after " + runner.timeoutSeconds() + " seconds");
                runner.accept(createTimedOutBrowserResult());
                return;
            }
//      else if (!isBrowserProcessAlive()) {
//        if (!runner.hasReceivedResultSince(launchTime)) {
//          runner.logStatus("Browser " + browserFileName + " was shutdown externally");
//          runner.accept(createExternallyShutdownBrowserResult());
//          return;
//        }
//      }
            else
                try {
                    Thread.sleep(checkInterval);
                } catch (InterruptedException e) {
                }
        }
    }

    private BrowserResult createTimedOutBrowserResult() {
        BrowserResult result = createRawBrowserResult();
        result._setResultType(ResultType.TIMED_OUT);
        return result;
    }

    private BrowserResult createRawBrowserResult() {
        BrowserResult result = new BrowserResult();
        result.setBrowser(browser);
        return result;
    }

    public void die() {
        alive = false;
    }

    private boolean waitedTooLong() {
        long secondsWaited = (System.currentTimeMillis() - launchTime) / 1000;
        return secondsWaited > runner.timeoutSeconds();
    }

}
TOP

Related Classes of net.jsunit.TimeoutChecker

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.