package org.jboss.arquillian.drone.webdriver.factory;
import org.jboss.arquillian.drone.webdriver.spi.BrowserCapabilities;
import org.openqa.selenium.remote.DesiredCapabilities;
import java.util.Map;
/**
* An internal mapping between browser capabilities property, implementation class and DesiredCapabilities. This class
* also
* supports implemenationClass property which is now legacy configuration value.
*
* @author <a href="mailto:kpiwko@redhat.com">Karel Piwko</a>
* @see DesiredCapabilities
*/
public class BrowserCapabilitiesList {
public static class Chrome implements BrowserCapabilities {
@Override
public String getImplementationClassName() {
return "org.openqa.selenium.chrome.ChromeDriver";
}
@Override
public Map<String, ?> getRawCapabilities() {
return DesiredCapabilities.chrome().asMap();
}
@Override
public String getReadableName() {
return "chrome";
}
@Override
public int getPrecedence() {
return 0;
}
}
public static class Edge implements BrowserCapabilities {
@Override
public String getImplementationClassName() {
return "org.openqa.selenium.edge.EdgeDriver";
}
@Override
public Map<String, ?> getRawCapabilities() {
return DesiredCapabilities.edge().asMap();
}
@Override
public String getReadableName() {
return "edge";
}
@Override
public int getPrecedence() {
return 0;
}
}
public static class Firefox implements BrowserCapabilities {
@Override
public String getImplementationClassName() {
return "org.openqa.selenium.firefox.FirefoxDriver";
}
@Override
public Map<String, ?> getRawCapabilities() {
return DesiredCapabilities.firefox().asMap();
}
@Override
public String getReadableName() {
return "firefox";
}
@Override
public int getPrecedence() {
return 0;
}
}
public static class HtmlUnit implements BrowserCapabilities {
@Override
public String getImplementationClassName() {
return "org.jboss.arquillian.drone.webdriver.htmlunit.DroneHtmlUnitDriver";
}
@Override
public Map<String, ?> getRawCapabilities() {
return DesiredCapabilities.htmlUnit().asMap();
}
@Override
public String getReadableName() {
return "htmlunit";
}
@Override
public int getPrecedence() {
return 0;
}
}
public static class InternetExplorer implements BrowserCapabilities {
@Override
public String getImplementationClassName() {
return "org.openqa.selenium.ie.InternetExplorerDriver";
}
@Override
public Map<String, ?> getRawCapabilities() {
return DesiredCapabilities.internetExplorer().asMap();
}
@Override
public String getReadableName() {
return "internetexplorer";
}
@Override
public int getPrecedence() {
return 0;
}
}
;
public static class Opera implements BrowserCapabilities {
@Override
public String getImplementationClassName() {
return "org.openqa.selenium.opera.OperaDriver";
}
@Override
public Map<String, ?> getRawCapabilities() {
return DesiredCapabilities.opera().asMap();
}
@Override
public String getReadableName() {
return "opera";
}
@Override
public int getPrecedence() {
return 0;
}
}
;
public static class Remote implements BrowserCapabilities {
@Override
public String getReadableName() {
return null;
}
@Override
public String getImplementationClassName() {
return "org.openqa.selenium.remote.RemoteWebDriver";
}
@Override
public Map<String, ?> getRawCapabilities() {
return null;
}
@Override
public int getPrecedence() {
return 0;
}
}
;
public static class Safari implements BrowserCapabilities {
@Override
public String getReadableName() {
return "safari";
}
@Override
public String getImplementationClassName() {
return "org.openqa.selenium.safari.SafariDriver";
}
@Override
public Map<String, ?> getRawCapabilities() {
return DesiredCapabilities.safari().asMap();
}
@Override
public int getPrecedence() {
return 0;
}
}
;
public static class PhantomJS implements BrowserCapabilities {
@Override
public String getReadableName() {
return "phantomjs";
}
@Override
public String getImplementationClassName() {
return "org.openqa.selenium.phantomjs.PhantomJSDriver";
}
@Override
public Map<String, ?> getRawCapabilities() {
return DesiredCapabilities.phantomjs().asMap();
}
@Override
public int getPrecedence() {
return 0;
}
}
;
}