package org.jboss.arquillian.drone.webdriver.binary.handler; import org.jboss.arquillian.drone.webdriver.binary.downloading.source.ExternalBinarySource; import org.jboss.arquillian.drone.webdriver.binary.downloading.source.GeckoDriverGitHubSource; import org.jboss.arquillian.drone.webdriver.factory.BrowserCapabilitiesList; import org.jboss.arquillian.drone.webdriver.utils.GitHubLastUpdateCache; import org.jboss.arquillian.drone.webdriver.utils.HttpClient; import org.openqa.selenium.remote.DesiredCapabilities; /** * A class for handling chromeDriver binaries */ public class FirefoxDriverBinaryHandler extends AbstractBinaryHandler { public static final String FIREFOX_SYSTEM_DRIVER_BINARY_PROPERTY = "webdriver.gecko.driver"; public static final String FIREFOX_DRIVER_BINARY_PROPERTY = "firefoxDriverBinary"; private static final String FIREFOX_DRIVER_VERSION_PROPERTY = "firefoxDriverVersion"; private static final String FIREFOX_DRIVER_URL_PROPERTY = "firefoxDriverUrl"; private DesiredCapabilities capabilities; public FirefoxDriverBinaryHandler(DesiredCapabilities capabilities) { this.capabilities = capabilities; } @Override protected String getArquillianCacheSubdirectory() { return new BrowserCapabilitiesList.Firefox().getReadableName(); } @Override protected String getDesiredVersionProperty() { return FIREFOX_DRIVER_VERSION_PROPERTY; } @Override protected String getUrlToDownloadProperty() { return FIREFOX_DRIVER_URL_PROPERTY; } @Override protected ExternalBinarySource getExternalBinarySource() { return new GeckoDriverGitHubSource(new HttpClient(), new GitHubLastUpdateCache()); } @Override protected DesiredCapabilities getCapabilities() { return capabilities; } @Override protected String getBinaryProperty() { return FIREFOX_DRIVER_BINARY_PROPERTY; } @Override public String getSystemBinaryProperty() { return FIREFOX_SYSTEM_DRIVER_BINARY_PROPERTY; } }