Skip to content

Commit 4d94ba0

Browse files
asashourlukeis
authored andcommitted
ReflectionBackendDriverSupplier: two arguments Capabilities
This allows ReflectionBackendDriverSupplier to check if the driver class has a constructor with two Capabilities, and if so it is called, otherwise the single Capabilities constructor is used. Signed-off-by: Luke Inman-Semerau <[email protected]>
1 parent 409699b commit 4d94ba0

File tree

4 files changed

+16
-3
lines changed

4 files changed

+16
-3
lines changed

java/client/src/org/openqa/selenium/htmlunit/HtmlUnitDriver.java

+4
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,10 @@ public HtmlUnitDriver(Capabilities capabilities) {
249249
setProxySettings(Proxy.extractFrom(capabilities));
250250
}
251251

252+
public HtmlUnitDriver(Capabilities desiredCapabilities, Capabilities requiredCapabilities) {
253+
this(new DesiredCapabilities(desiredCapabilities, requiredCapabilities));
254+
}
255+
252256
// Package visibility for testing
253257
static BrowserVersion determineBrowserVersion(Capabilities capabilities) {
254258
String browserName = null;

java/client/test/org/openqa/selenium/ProxySettingTest.java

-2
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,6 @@ public void canUsePACThatOnlyProxiesCertainHosts() throws Exception {
163163
}
164164

165165
@Ignore({CHROME, IE, PHANTOMJS, REMOTE, SAFARI})
166-
@NotYetImplemented(HTMLUNIT)
167166
@NeedsLocalEnvironment
168167
@Test
169168
public void canConfigureProxyWithRequiredCapability() {
@@ -179,7 +178,6 @@ public void canConfigureProxyWithRequiredCapability() {
179178
}
180179

181180
@Ignore({CHROME, IE, PHANTOMJS, REMOTE, SAFARI})
182-
@NotYetImplemented(HTMLUNIT)
183181
@NeedsLocalEnvironment
184182
@Test
185183
public void requiredProxyCapabilityShouldHavePriority() {

java/client/test/org/openqa/selenium/htmlunit/JavascriptEnabledHtmlUnitDriverTests.java

+4
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ public HtmlUnitDriverForTest(Capabilities capabilities) {
3636
super(tweak(capabilities));
3737
}
3838

39+
public HtmlUnitDriverForTest(Capabilities desiredCapabilities, Capabilities requiredCapabilities) {
40+
super(tweak(desiredCapabilities), tweak(requiredCapabilities));
41+
}
42+
3943
private static Capabilities tweak(Capabilities capabilities) {
4044
DesiredCapabilities caps = new DesiredCapabilities(capabilities);
4145
caps.setJavascriptEnabled(true);

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

+8-1
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,14 @@ public WebDriver get() {
7575
Capabilities.class).newInstance(desiredCapsToUse, requiredCapabilities);
7676
}
7777

78-
//TODO: Call constructor with two Capabilities arguments for all driver classes
78+
try {
79+
return driverClass.getConstructor(Capabilities.class,
80+
Capabilities.class).newInstance(desiredCapsToUse, requiredCapabilities);
81+
} catch (NoSuchMethodException e) {
82+
// ignore
83+
}
84+
85+
//TODO: All driver classes to have two Capabilities arguments
7986
return driverClass.getConstructor(Capabilities.class).newInstance(desiredCapsToUse);
8087
} catch (InvocationTargetException e) {
8188
throw Throwables.propagate(e.getTargetException());

0 commit comments

Comments
 (0)