Skip to content

Commit 05bc5bf

Browse files
committed
Cleaning required capabilities out of tests, step 2: driver suppliers should not use driver constructors that accept required capabilities
1 parent a38aec8 commit 05bc5bf

File tree

5 files changed

+21
-56
lines changed

5 files changed

+21
-56
lines changed

java/client/test/org/openqa/selenium/testing/drivers/DefaultDriverSupplier.java

+2-6
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,9 @@ public class DefaultDriverSupplier implements Supplier<WebDriver> {
3131
private static final Logger log = Logger.getLogger(DefaultDriverSupplier.class.getName());
3232
private Class<? extends WebDriver> driverClass;
3333
private final Capabilities desiredCapabilities;
34-
private final Capabilities requiredCapabilities;
3534

36-
public DefaultDriverSupplier(Capabilities desiredCapabilities,
37-
Capabilities requiredCapabilities) {
35+
public DefaultDriverSupplier(Capabilities desiredCapabilities) {
3836
this.desiredCapabilities = desiredCapabilities;
39-
this.requiredCapabilities = requiredCapabilities;
4037

4138
try {
4239
// Only support a default driver if we're actually in dev mode.
@@ -55,8 +52,7 @@ public WebDriver get() {
5552
log.info("Providing default driver instance");
5653

5754
try {
58-
return driverClass.getConstructor(Capabilities.class, Capabilities.class).
59-
newInstance(desiredCapabilities, requiredCapabilities);
55+
return driverClass.getConstructor(Capabilities.class).newInstance(desiredCapabilities);
6056
} catch (InvocationTargetException e) {
6157
throw new RuntimeException(e.getTargetException());
6258
} catch (ReflectiveOperationException e) {

java/client/test/org/openqa/selenium/testing/drivers/ExternalDriverSupplier.java

+10-19
Original file line numberDiff line numberDiff line change
@@ -65,24 +65,21 @@ class ExternalDriverSupplier implements Supplier<WebDriver> {
6565
private static final String EXTERNAL_SERVER_URL_PROPERTY = "selenium.external.serverUrl";
6666

6767
private final Capabilities desiredCapabilities;
68-
private final Capabilities requiredCapabilities;
6968

70-
ExternalDriverSupplier(Capabilities desiredCapabilities, Capabilities requiredCapabilities) {
69+
ExternalDriverSupplier(Capabilities desiredCapabilities) {
7170
this.desiredCapabilities = new DesiredCapabilities(desiredCapabilities);
72-
this.requiredCapabilities = new DesiredCapabilities(requiredCapabilities);
7371
}
7472

7573
@Override
7674
public WebDriver get() {
77-
Optional<Supplier<WebDriver>> delegate = createDelegate(
78-
desiredCapabilities, requiredCapabilities);
79-
delegate = createForExternalServer(desiredCapabilities, requiredCapabilities, delegate);
75+
Optional<Supplier<WebDriver>> delegate = createDelegate(desiredCapabilities);
76+
delegate = createForExternalServer(desiredCapabilities, delegate);
8077

8178
return delegate.orElse(Suppliers.ofInstance(null)).get();
8279
}
8380

8481
private static Optional<Supplier<WebDriver>> createForExternalServer(
85-
Capabilities desiredCapabilities, Capabilities requiredCapabilities,
82+
Capabilities desiredCapabilities,
8683
Optional<Supplier<WebDriver>> delegate) {
8784
String externalUrl = System.getProperty(EXTERNAL_SERVER_URL_PROPERTY);
8885
if (externalUrl != null) {
@@ -93,27 +90,24 @@ private static Optional<Supplier<WebDriver>> createForExternalServer(
9390
} catch (MalformedURLException e) {
9491
throw new RuntimeException("Invalid server URL: " + externalUrl, e);
9592
}
96-
Supplier<WebDriver> defaultSupplier = new DefaultRemoteSupplier(
97-
url, desiredCapabilities, requiredCapabilities);
93+
Supplier<WebDriver> defaultSupplier = new DefaultRemoteSupplier(url, desiredCapabilities);
9894
Supplier<WebDriver> supplier = new ExternalServerDriverSupplier(
9995
url, delegate.orElse(defaultSupplier));
10096
return Optional.of(supplier);
10197
}
10298
return delegate;
10399
}
104100

105-
private static Optional<Supplier<WebDriver>> createDelegate(
106-
Capabilities desiredCapabilities, Capabilities requiredCapabilities) {
101+
private static Optional<Supplier<WebDriver>> createDelegate(Capabilities desiredCapabilities) {
107102
Optional<Class<? extends Supplier>> supplierClass = getDelegateClass();
108103
if (supplierClass.isPresent()) {
109104
Class<? extends Supplier> clazz = supplierClass.get();
110105
logger.info("Using delegate supplier: " + clazz.getName());
111106
try {
112107
@SuppressWarnings("unchecked")
113108
Constructor<Supplier<WebDriver>> ctor =
114-
(Constructor<Supplier<WebDriver>>) clazz.getConstructor(
115-
Capabilities.class, Capabilities.class);
116-
return Optional.of(ctor.newInstance(desiredCapabilities, requiredCapabilities));
109+
(Constructor<Supplier<WebDriver>>) clazz.getConstructor(Capabilities.class);
110+
return Optional.of(ctor.newInstance(desiredCapabilities));
117111
} catch (InvocationTargetException e) {
118112
throw new RuntimeException(e.getTargetException());
119113
} catch (Exception e) {
@@ -175,18 +169,15 @@ public WebDriver get() {
175169
private static class DefaultRemoteSupplier implements Supplier<WebDriver> {
176170
private final URL url;
177171
private final Capabilities desiredCapabilities;
178-
private final Capabilities requiredCapabilities;
179172

180-
private DefaultRemoteSupplier(
181-
URL url, Capabilities desiredCapabilities, Capabilities requiredCapabilities) {
173+
private DefaultRemoteSupplier(URL url, Capabilities desiredCapabilities) {
182174
this.url = url;
183175
this.desiredCapabilities = desiredCapabilities;
184-
this.requiredCapabilities = requiredCapabilities;
185176
}
186177

187178
@Override
188179
public WebDriver get() {
189-
RemoteWebDriver driver = new RemoteWebDriver(url, desiredCapabilities, requiredCapabilities);
180+
RemoteWebDriver driver = new RemoteWebDriver(url, desiredCapabilities);
190181
driver.setFileDetector(new LocalFileDetector());
191182
return driver;
192183
}

java/client/test/org/openqa/selenium/testing/drivers/ReflectionBackedDriverSupplier.java

+1-11
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,9 @@ public class ReflectionBackedDriverSupplier implements Supplier<WebDriver> {
3333
private final static Logger log =
3434
Logger.getLogger(ReflectionBackedDriverSupplier.class.getName());
3535
private final Capabilities desiredCapabilities;
36-
private final Capabilities requiredCapabilities;
3736

38-
public ReflectionBackedDriverSupplier(Capabilities desiredCapabilities,
39-
Capabilities requiredCapabilities) {
37+
public ReflectionBackedDriverSupplier(Capabilities desiredCapabilities) {
4038
this.desiredCapabilities = desiredCapabilities;
41-
this.requiredCapabilities = requiredCapabilities;
4239
}
4340

4441
public WebDriver get() {
@@ -50,13 +47,6 @@ public WebDriver get() {
5047
return null;
5148
}
5249

53-
try {
54-
return driverClass.getConstructor(Capabilities.class,
55-
Capabilities.class).newInstance(desiredCapsToUse, requiredCapabilities);
56-
} catch (NoSuchMethodException e) {
57-
// ignore
58-
}
59-
6050
return driverClass.getConstructor(Capabilities.class).newInstance(desiredCapsToUse);
6151
} catch (InvocationTargetException e) {
6252
throw new RuntimeException(e.getTargetException());

java/client/test/org/openqa/selenium/testing/drivers/RemoteSupplier.java

+2-6
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,9 @@ public class RemoteSupplier implements Supplier<WebDriver> {
3030
private static OutOfProcessSeleniumServer server = new OutOfProcessSeleniumServer();
3131
private static volatile boolean started;
3232
private Capabilities desiredCapabilities;
33-
private Capabilities requiredCapabilities;
3433

35-
public RemoteSupplier(Capabilities desiredCapabilities,
36-
Capabilities requiredCapabilities) {
34+
public RemoteSupplier(Capabilities desiredCapabilities) {
3735
this.desiredCapabilities = desiredCapabilities;
38-
this.requiredCapabilities = requiredCapabilities;
3936
}
4037

4138
public WebDriver get() {
@@ -47,8 +44,7 @@ public WebDriver get() {
4744
startServer();
4845
}
4946

50-
RemoteWebDriver driver = new RemoteWebDriver(
51-
server.getWebDriverUrl(), desiredCapabilities, requiredCapabilities);
47+
RemoteWebDriver driver = new RemoteWebDriver(server.getWebDriverUrl(), desiredCapabilities);
5248
driver.setFileDetector(new LocalFileDetector());
5349
return driver;
5450
}

java/client/test/org/openqa/selenium/testing/drivers/WebDriverBuilder.java

+6-14
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131

3232
public class WebDriverBuilder implements Supplier<WebDriver> {
3333
private Capabilities desiredCapabilities;
34-
private Capabilities requiredCapabilities;
3534
private final Browser browser;
3635

3736
public WebDriverBuilder() {
@@ -51,8 +50,7 @@ public WebDriver get() {
5150
Capabilities desiredCaps = new DesiredCapabilities(standardCapabilities,
5251
desiredCapabilities);
5352

54-
List<Supplier<WebDriver>> suppliers = getSuppliers(desiredCaps,
55-
requiredCapabilities);
53+
List<Supplier<WebDriver>> suppliers = getSuppliers(desiredCaps);
5654

5755
for (Supplier<WebDriver> supplier : suppliers) {
5856
WebDriver driver = supplier.get();
@@ -81,17 +79,16 @@ private void modifyLogLevel(WebDriver driver) {
8179
}
8280
}
8381

84-
private List<Supplier<WebDriver>> getSuppliers(Capabilities desiredCaps,
85-
Capabilities requiredCaps) {
82+
private List<Supplier<WebDriver>> getSuppliers(Capabilities desiredCaps) {
8683
List<Supplier<WebDriver>> suppliers = Lists.newArrayList();
87-
suppliers.add(new ExternalDriverSupplier(desiredCaps, requiredCaps));
84+
suppliers.add(new ExternalDriverSupplier(desiredCaps));
8885
suppliers.add(new SauceBackedDriverSupplier(desiredCaps));
8986
suppliers.add(new GridSupplier(desiredCaps));
90-
suppliers.add(new RemoteSupplier(desiredCaps, requiredCaps));
87+
suppliers.add(new RemoteSupplier(desiredCaps));
9188
suppliers.add(new PhantomJSDriverSupplier(desiredCaps));
9289
suppliers.add(new TestInternetExplorerSupplier(desiredCaps));
93-
suppliers.add(new ReflectionBackedDriverSupplier(desiredCaps, requiredCaps));
94-
suppliers.add(new DefaultDriverSupplier(desiredCaps, requiredCaps));
90+
suppliers.add(new ReflectionBackedDriverSupplier(desiredCaps));
91+
suppliers.add(new DefaultDriverSupplier(desiredCaps));
9592
return suppliers;
9693
}
9794

@@ -100,11 +97,6 @@ public WebDriverBuilder setDesiredCapabilities(Capabilities caps) {
10097
return this;
10198
}
10299

103-
public WebDriverBuilder setRequiredCapabilities(Capabilities caps) {
104-
this.requiredCapabilities = caps;
105-
return this;
106-
}
107-
108100
private enum LogLevel {
109101
OFF("OFF", Level.OFF),
110102
DEBUG("DEBUG", Level.FINE),

0 commit comments

Comments
 (0)