package net.thucydides.core.webdriver;
import net.thucydides.core.util.EnvironmentVariables;
import net.thucydides.core.util.FileSystemUtils;
import net.thucydides.core.util.MockEnvironmentVariables;
import org.openqa.selenium.WebDriver;
import java.io.File;
public class StaticTestSite {
private WebDriverFactory factory;
private ThucydidesWebdriverManager webdriverManager;
private EnvironmentVariables environmentVariables;
public StaticTestSite() {
factory = new WebDriverFactory();
environmentVariables = MockEnvironmentVariables.fromSystemEnvironment();
webdriverManager = new ThucydidesWebdriverManager(factory, new SystemPropertiesConfiguration(environmentVariables));
}
public WebDriver open(String driverType) {
environmentVariables.setProperty("chrome.switches","--homepage=about:blank,--no-first-run");
WebDriver driver;
if (driverType != null) {
driver = webdriverManager.getWebdriver(driverType);
} else {
driver = webdriverManager.getWebdriver();
}
if (factory.usesSauceLabs()) {
driver.get("http://wakaleo.com/thucydides-tests/index.html");
} else {
File testSite = fileInClasspathCalled("static-site/index.html");
driver.get("file://" + testSite.getAbsolutePath());
}
return driver;
}
public void close() {
webdriverManager.closeAllCurrentDrivers();
}
public WebDriver open(String remoteUrl, String correspondingLocalFile, String drivername) {
WebDriver driver = webdriverManager.getWebdriver(drivername);
if (factory.usesSauceLabs()) {
driver.get(remoteUrl);
} else {
File testSite = fileInClasspathCalled(correspondingLocalFile);
driver.get("file://" + testSite.getAbsolutePath());
}
return driver;
}
public WebDriver open(String remoteUrl, String correspondingLocalFile) {
WebDriver driver = webdriverManager.getWebdriver();
if (factory.usesSauceLabs()) {
driver.get(remoteUrl);
} else {
File testSite = fileInClasspathCalled(correspondingLocalFile);
driver.get("file://" + testSite.getAbsolutePath());
}
return driver;
}
public static File fileInClasspathCalled(final String resourceName) {
return FileSystemUtils.getResourceAsFile(resourceName);
}
}