in integration/geb-gradle/src/main/groovy/geb/gradle/browserstack/BrowserStackPlugin.groovy [38:73]
void apply(Project project) {
def allBrowserStackTests = project.tasks.register("allBrowserStackTests")
def closeTunnel = project.tasks.register(CLOSE_TUNNEL_TASK_NAME, StopExternalTunnel)
def openBrowserStackTunnelInBackground = project.tasks.register(
OPEN_TUNNEL_IN_BACKGROUND_TASK_NAME, StartExternalTunnel
) {
inBackground = true
finalizedBy closeTunnel
}
def openBrowserStackTunnel = project.tasks.register('openBrowserStackTunnel', StartExternalTunnel)
def browserStackExtension = project.extensions.create(
'browserStack', BrowserStackExtension, allBrowserStackTests, openBrowserStackTunnelInBackground,
closeTunnel, "BrowserStack Test"
)
[openBrowserStackTunnel, openBrowserStackTunnelInBackground, closeTunnel]*.configure {
tunnel = browserStackExtension.local
}
def downloadBrowserStackTunnel = project.tasks.register(
'downloadBrowserStackTunnel', DownloadBrowserStackTunnel
)
def unzipBrowserStackTunnel = project.tasks.register(UNZIP_TUNNEL_TASK_NAME, SingleFileCopy) {
source.from(project.zipTree(downloadBrowserStackTunnel.flatMap { it.tunnelZip }))
def fileExtension = Os.isFamily(FAMILY_WINDOWS) ? ".exe" : ""
outputFile.set(project.layout.buildDirectory.file("browserstack/BrowserStackTunnel${fileExtension}"))
}
browserStackExtension.local.executable.set(unzipBrowserStackTunnel.flatMap { it.outputFile })
}