Skip to content

Commit

Permalink
selenide#196 shutdown proxy server at the same moment (in the same th…
Browse files Browse the repository at this point in the history
…read) when browser is closed
  • Loading branch information
asolntsev authored and Boris Osipov committed Nov 23, 2016
1 parent db3c3e2 commit b1c8c34
Showing 1 changed file with 15 additions and 8 deletions.
Expand Up @@ -130,18 +130,14 @@ protected void closeWebDriver(Thread thread) {
ALL_WEB_DRIVERS_THREADS.remove(thread);
WebDriver webdriver = THREAD_WEB_DRIVER.remove(thread.getId());
SelenideProxyServer proxy = THREAD_PROXY_SERVER.remove(thread.getId());

if (proxy != null) {
log.info("Close proxy server: " + thread.getId() + " -> " + proxy);
proxy.shutdown();
}


if (webdriver != null && !holdBrowserOpen) {
log.info("Close webdriver: " + thread.getId() + " -> " + webdriver);
log.info("Close proxy server: " + thread.getId() + " -> " + proxy);

long start = System.currentTimeMillis();

Thread t = new Thread(new CloseBrowser(webdriver));
Thread t = new Thread(new CloseBrowser(webdriver, proxy));
t.setDaemon(true);
t.start();

Expand All @@ -162,13 +158,19 @@ else if (duration > 200) {
log.fine("Closed webdriver in " + duration + " ms");
}
}
else if (proxy != null && !holdBrowserOpen) {
log.info("Close proxy server: " + thread.getId() + " -> " + proxy);
proxy.shutdown();
}
}

private static class CloseBrowser implements Runnable {
private final WebDriver webdriver;
private final SelenideProxyServer proxy;

private CloseBrowser(WebDriver webdriver) {
private CloseBrowser(WebDriver webdriver, SelenideProxyServer proxy) {
this.webdriver = webdriver;
this.proxy = proxy;
}

@Override
Expand All @@ -187,6 +189,11 @@ public void run() {
finally {
killBrowser(webdriver);
}

if (proxy != null) {
log.info("Trying to shutdown " + proxy + " ...");
proxy.shutdown();
}
}

protected void killBrowser(WebDriver webdriver) {
Expand Down

0 comments on commit b1c8c34

Please sign in to comment.