Skip to content

Commit 9b38177

Browse files
committed
fixing withWebDriver for local and headless chrome
1 parent 943d384 commit 9b38177

File tree

1 file changed

+21
-12
lines changed

1 file changed

+21
-12
lines changed

automation/src/test/scala/org/broadinstitute/dsde/firecloud/pages/WebBrowserSpec.scala

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -28,29 +28,38 @@ trait WebBrowserSpec extends WebBrowserUtil {
2828
* @param testCode the test code to run
2929
*/
3030
def withWebDriver(testCode: (WebDriver) => Any): Unit = {
31-
//this needs to be changed!
32-
val service = new ChromeDriverService.Builder().usingDriverExecutable(new File("/usr/local/bin/chromedriver")).usingAnyFreePort().build()
31+
val localBrowser = new SystemProperties().get("local.browser")
32+
localBrowser match {
33+
case Some("true") => runLocalChrome(testCode)
34+
case _ => runHeadless(testCode)
35+
}
36+
}
37+
38+
private def runLocalChrome(testCode: (WebDriver) => Any) = {
39+
val service = new ChromeDriverService.Builder().usingDriverExecutable(new File(Config.ChromeSettings.localChrome)).usingAnyFreePort().build()
3340
service.start()
34-
implicit val webDriver = initWebDriver(service)
41+
val driver = new RemoteWebDriver(service.getUrl, DesiredCapabilities.chrome())
42+
driver.setFileDetector(new LocalFileDetector())
3543
try {
36-
testCode(webDriver)
44+
testCode(driver)
3745
} finally {
38-
webDriver.quit()
46+
driver.quit()
3947
service.stop()
4048
}
4149
}
4250

43-
private def initWebDriver(service: ChromeDriverService): WebDriver = {
44-
val localBrowser = new SystemProperties().get("local.browser")
51+
private def runHeadless(testCode: (WebDriver) => Any) = {
4552
val defaultChrome = Config.ChromeSettings.chromedriverHost
46-
val driver = localBrowser match {
47-
case Some("true") => new RemoteWebDriver(service.getUrl, DesiredCapabilities.chrome())
48-
case _ => new RemoteWebDriver(new URL(defaultChrome), DesiredCapabilities.chrome())
49-
}
53+
val driver = new RemoteWebDriver(new URL(defaultChrome), DesiredCapabilities.chrome())
5054
driver.setFileDetector(new LocalFileDetector())
51-
driver
55+
try {
56+
testCode(driver)
57+
} finally {
58+
driver.quit()
59+
}
5260
}
5361

62+
5463
/**
5564
* Make a random alpha-numeric (lowercase) string to be used as a semi-unique
5665
* identifier.

0 commit comments

Comments
 (0)