Skip to content

Commit

Permalink
Stop using DesiredCapabilities class in DefaultDriverFactory and Defa…
Browse files Browse the repository at this point in the history
…ultDriverProvider. Fixes #5228
  • Loading branch information
barancev committed Dec 16, 2017
1 parent 182ed38 commit 289227f
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,40 +18,52 @@
package org.openqa.selenium.remote.server;

import static com.google.common.base.Preconditions.checkState;
import static org.openqa.selenium.remote.BrowserType.CHROME;
import static org.openqa.selenium.remote.BrowserType.EDGE;
import static org.openqa.selenium.remote.BrowserType.FIREFOX;
import static org.openqa.selenium.remote.BrowserType.HTMLUNIT;
import static org.openqa.selenium.remote.BrowserType.IE;
import static org.openqa.selenium.remote.BrowserType.OPERA;
import static org.openqa.selenium.remote.BrowserType.OPERA_BLINK;
import static org.openqa.selenium.remote.BrowserType.PHANTOMJS;
import static org.openqa.selenium.remote.BrowserType.SAFARI;
import static org.openqa.selenium.remote.CapabilityType.BROWSER_NAME;
import static org.openqa.selenium.remote.server.DefaultDriverProvider.createProvider;

import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;

import org.openqa.selenium.Capabilities;
import org.openqa.selenium.ImmutableCapabilities;
import org.openqa.selenium.Platform;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebDriverException;
import org.openqa.selenium.remote.DesiredCapabilities;

import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.ServiceLoader;
import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Logger;
import java.util.stream.Stream;

public class DefaultDriverFactory implements DriverFactory {

private static final Logger LOG = Logger.getLogger(DefaultDriverFactory.class.getName());

private static final List<DriverProvider> DEFAULT_DRIVER_PROVIDERS =
Stream.of(
createProvider(DesiredCapabilities.firefox(), "org.openqa.selenium.firefox.FirefoxDriver"),
createProvider(DesiredCapabilities.chrome(), "org.openqa.selenium.chrome.ChromeDriver"),
createProvider(DesiredCapabilities.internetExplorer(), "org.openqa.selenium.ie.InternetExplorerDriver"),
createProvider(DesiredCapabilities.edge(), "org.openqa.selenium.edge.EdgeDriver"),
createProvider(DesiredCapabilities.opera(), "com.opera.core.systems.OperaDriver"),
createProvider(DesiredCapabilities.operaBlink(), "org.openqa.selenium.opera.OperaDriver"),
createProvider(DesiredCapabilities.safari(), "org.openqa.selenium.safari.SafariDriver"),
createProvider(DesiredCapabilities.phantomjs(), "org.openqa.selenium.phantomjs.PhantomJSDriver"),
createProvider(DesiredCapabilities.htmlUnit(), "org.openqa.selenium.htmlunit.HtmlUnitDriver"))
new ImmutableMap.Builder<String, String>()
.put(FIREFOX, "org.openqa.selenium.firefox.FirefoxDriver")
.put(CHROME, "org.openqa.selenium.chrome.ChromeDriver")
.put(IE, "org.openqa.selenium.ie.InternetExplorerDriver")
.put(EDGE, "org.openqa.selenium.edge.EdgeDriver")
.put(OPERA, "com.opera.core.systems.OperaDriver")
.put(OPERA_BLINK, "org.openqa.selenium.opera.OperaDriver")
.put(SAFARI, "org.openqa.selenium.safari.SafariDriver")
.put(PHANTOMJS, "org.openqa.selenium.phantomjs.PhantomJSDriver")
.put(HTMLUNIT, "org.openqa.selenium.htmlunit.HtmlUnitDriver")
.build().entrySet().stream()
.map(e -> createProvider(new ImmutableCapabilities(BROWSER_NAME, e.getKey()), e.getValue()))
.filter(Objects::nonNull)
.collect(ImmutableList.toImmutableList());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@
package org.openqa.selenium.remote.server;

import org.openqa.selenium.Capabilities;
import org.openqa.selenium.ImmutableCapabilities;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebDriverException;
import org.openqa.selenium.remote.DesiredCapabilities;

import java.lang.reflect.Constructor;
import java.util.logging.Level;
Expand All @@ -37,7 +37,7 @@ public class DefaultDriverProvider implements DriverProvider {
private Class<? extends WebDriver> driverClass;

public DefaultDriverProvider(Capabilities capabilities, Class<? extends WebDriver> driverClass) {
this.capabilities = new DesiredCapabilities(capabilities);
this.capabilities = new ImmutableCapabilities(capabilities);
this.driverClass = driverClass;
}

Expand Down

0 comments on commit 289227f

Please sign in to comment.