Skip to content

Commit 0530de0

Browse files
committed
Replacing DesiredCapabilities with MutableCapabilities or ImmutableCapabilities where it's possible in client tests
1 parent 7e2172a commit 0530de0

35 files changed

+148
-186
lines changed

java/client/src/org/openqa/selenium/remote/RemoteWebDriver.java

+3-5
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import org.openqa.selenium.Dimension;
3535
import org.openqa.selenium.HasCapabilities;
3636
import org.openqa.selenium.JavascriptExecutor;
37+
import org.openqa.selenium.MutableCapabilities;
3738
import org.openqa.selenium.NoSuchFrameException;
3839
import org.openqa.selenium.NoSuchWindowException;
3940
import org.openqa.selenium.OutputType;
@@ -211,15 +212,12 @@ protected void setSessionId(String opaqueKey) {
211212
}
212213

213214
protected void startSession(Capabilities desiredCapabilities) {
214-
ImmutableMap.Builder<String, Capabilities> paramBuilder =
215-
new ImmutableMap.Builder<>();
216-
paramBuilder.put("desiredCapabilities", desiredCapabilities);
217-
Map<String, ?> parameters = paramBuilder.build();
215+
Map<String, ?> parameters = ImmutableMap.of("desiredCapabilities", desiredCapabilities);
218216

219217
Response response = execute(DriverCommand.NEW_SESSION, parameters);
220218

221219
Map<String, Object> rawCapabilities = (Map<String, Object>) response.getValue();
222-
DesiredCapabilities returnedCapabilities = new DesiredCapabilities();
220+
MutableCapabilities returnedCapabilities = new MutableCapabilities();
223221
for (Map.Entry<String, Object> entry : rawCapabilities.entrySet()) {
224222
// Handle the platform later
225223
if (CapabilityType.PLATFORM.equals(entry.getKey()) || "platformName".equals(entry.getKey())) {

java/client/test/com/thoughtworks/selenium/InternalSelenseTestBase.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,9 @@
4141
import org.junit.runner.Description;
4242
import org.junit.runners.model.Statement;
4343
import org.openqa.selenium.BuckBuild;
44+
import org.openqa.selenium.Capabilities;
4445
import org.openqa.selenium.JavascriptExecutor;
46+
import org.openqa.selenium.MutableCapabilities;
4547
import org.openqa.selenium.WebDriver;
4648
import org.openqa.selenium.environment.GlobalTestEnvironment;
4749
import org.openqa.selenium.internal.WrapsDriver;
@@ -140,7 +142,7 @@ protected void before() throws Throwable {
140142
return;
141143
}
142144

143-
DesiredCapabilities caps = createCapabilities();
145+
MutableCapabilities caps = new MutableCapabilities(createCapabilities());
144146
caps.setCapability(UNEXPECTED_ALERT_BEHAVIOUR, IGNORE);
145147

146148
String baseUrl = whereIs("selenium-server/");
@@ -153,7 +155,7 @@ protected void before() throws Throwable {
153155
}
154156
};
155157

156-
private DesiredCapabilities createCapabilities() {
158+
private Capabilities createCapabilities() {
157159
String property = System.getProperty("selenium.browser", "ff");
158160

159161
Browser browser = Browser.valueOf(property);

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

+1-3
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@
5050
import org.junit.After;
5151
import org.junit.Test;
5252
import org.openqa.selenium.remote.CapabilityType;
53-
import org.openqa.selenium.remote.DesiredCapabilities;
5453
import org.openqa.selenium.support.ui.WebDriverWait;
5554
import org.openqa.selenium.testing.Ignore;
5655
import org.openqa.selenium.testing.JUnit4TestBase;
@@ -72,8 +71,7 @@ private void initLocalDriver(String strategy) {
7271
if (localDriver != null) {
7372
localDriver.quit();
7473
}
75-
DesiredCapabilities caps = new DesiredCapabilities();
76-
caps.setCapability(CapabilityType.PAGE_LOAD_STRATEGY, strategy);
74+
Capabilities caps = new ImmutableCapabilities(CapabilityType.PAGE_LOAD_STRATEGY, strategy);
7775
localDriver = new WebDriverBuilder().setDesiredCapabilities(caps).get();
7876
}
7977

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

+3-7
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
import org.junit.Test;
3434
import org.junit.rules.ErrorCollector;
3535
import org.openqa.selenium.net.PortProber;
36-
import org.openqa.selenium.remote.DesiredCapabilities;
3736
import org.openqa.selenium.testing.Ignore;
3837
import org.openqa.selenium.testing.JUnit4TestBase;
3938
import org.openqa.selenium.testing.NeedsLocalEnvironment;
@@ -81,8 +80,7 @@ public void tearDown() {
8180
@NeedsLocalEnvironment
8281
public void canConfigureManualHttpProxy() {
8382
Proxy proxyToUse = proxyServer.asProxy();
84-
DesiredCapabilities caps = new DesiredCapabilities();
85-
caps.setCapability(PROXY, proxyToUse);
83+
Capabilities caps = new ImmutableCapabilities(PROXY, proxyToUse);
8684

8785
WebDriver driver = new WebDriverBuilder().setDesiredCapabilities(caps).get();
8886
registerDriverTeardown(driver);
@@ -106,8 +104,7 @@ public void canConfigureProxyThroughPACFile() {
106104
Proxy proxy = new Proxy();
107105
proxy.setProxyAutoconfigUrl("http://" + getHostAndPort(pacFileServer) + "/proxy.pac");
108106

109-
DesiredCapabilities caps = new DesiredCapabilities();
110-
caps.setCapability(PROXY, proxy);
107+
Capabilities caps = new ImmutableCapabilities(PROXY, proxy);
111108

112109
WebDriver driver = new WebDriverBuilder().setDesiredCapabilities(caps).get();
113110
registerDriverTeardown(driver);
@@ -137,8 +134,7 @@ public void canUsePACThatOnlyProxiesCertainHosts() throws Exception {
137134
Proxy proxy = new Proxy();
138135
proxy.setProxyAutoconfigUrl("http://" + getHostAndPort(pacFileServer) + "/proxy.pac");
139136

140-
DesiredCapabilities caps = new DesiredCapabilities();
141-
caps.setCapability(PROXY, proxy);
137+
Capabilities caps = new ImmutableCapabilities(PROXY, proxy);
142138

143139
WebDriver driver = new WebDriverBuilder().setDesiredCapabilities(caps).get();
144140
registerDriverTeardown(driver);

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

+2-5
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
import org.junit.runners.JUnit4;
3333
import org.openqa.selenium.Proxy.ProxyType;
3434
import org.openqa.selenium.remote.BeanToJsonConverter;
35-
import org.openqa.selenium.remote.DesiredCapabilities;
3635
import org.openqa.selenium.remote.JsonToBeanConverter;
3736

3837
import java.util.HashMap;
@@ -367,8 +366,7 @@ public void constructingWithNullKeysWorksAsExpected() {
367366
rawProxy.put("ftpProxy", null);
368367
rawProxy.put("httpProxy", "http://www.example.com");
369368
rawProxy.put("autodetect", null);
370-
DesiredCapabilities caps = new DesiredCapabilities();
371-
caps.setCapability(PROXY, rawProxy);
369+
Capabilities caps = new ImmutableCapabilities(PROXY, rawProxy);
372370

373371
Proxy proxy = Proxy.extractFrom(caps);
374372

@@ -383,8 +381,7 @@ public void serialiazesAndDeserializesWithoutError() {
383381
Proxy proxy = new Proxy();
384382
proxy.setProxyAutoconfigUrl("http://www.example.com/config.pac");
385383

386-
DesiredCapabilities caps = new DesiredCapabilities();
387-
caps.setCapability(PROXY, proxy);
384+
Capabilities caps = new ImmutableCapabilities(PROXY, proxy);
388385

389386
String rawJson = new BeanToJsonConverter().convert(caps);
390387
Capabilities converted = new JsonToBeanConverter().convert(Capabilities.class, rawJson);

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

+1-3
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@
4444
import org.junit.rules.ExternalResource;
4545
import org.openqa.selenium.net.PortProber;
4646
import org.openqa.selenium.net.UrlChecker;
47-
import org.openqa.selenium.remote.DesiredCapabilities;
4847
import org.openqa.selenium.support.ui.WebDriverWait;
4948
import org.openqa.selenium.testing.Ignore;
5049
import org.openqa.selenium.testing.JUnit4TestBase;
@@ -407,8 +406,7 @@ WebDriver createDriver(String pacUrl) {
407406
Proxy proxy = new Proxy();
408407
proxy.setProxyAutoconfigUrl(pacUrl);
409408

410-
DesiredCapabilities caps = new DesiredCapabilities();
411-
caps.setCapability(PROXY, proxy);
409+
Capabilities caps = new ImmutableCapabilities(PROXY, proxy);
412410

413411
return driver = new WebDriverBuilder().setDesiredCapabilities(caps).get();
414412
}

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

+7-8
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929

3030
import org.junit.After;
3131
import org.junit.Test;
32-
import org.openqa.selenium.remote.DesiredCapabilities;
3332
import org.openqa.selenium.support.ui.WebDriverWait;
3433
import org.openqa.selenium.testing.Ignore;
3534
import org.openqa.selenium.testing.JUnit4TestBase;
@@ -43,7 +42,6 @@
4342
public class UnexpectedAlertBehaviorTest extends JUnit4TestBase {
4443

4544
private WebDriver driver2;
46-
private DesiredCapabilities desiredCaps = new DesiredCapabilities();
4745

4846
@After
4947
public void quitDriver() throws Exception {
@@ -80,18 +78,19 @@ public void canIgnoreUnhandledAlert() {
8078

8179
@Test
8280
public void canSpecifyUnhandledAlertBehaviourUsingCapabilities() {
83-
desiredCaps.setCapability(UNEXPECTED_ALERT_BEHAVIOUR, UnexpectedAlertBehaviour.ACCEPT);
84-
driver2 = new WebDriverBuilder().setDesiredCapabilities(desiredCaps).get();
81+
Capabilities caps = new ImmutableCapabilities(
82+
UNEXPECTED_ALERT_BEHAVIOUR, UnexpectedAlertBehaviour.ACCEPT);
83+
driver2 = new WebDriverBuilder().setDesiredCapabilities(caps).get();
8584

8685
runScenarioWithUnhandledAlert("This is a default value");
8786
}
8887

8988
private void runScenarioWithUnhandledAlert(UnexpectedAlertBehaviour behaviour,
9089
String expectedAlertText) {
91-
if (behaviour != null) {
92-
desiredCaps.setCapability(UNEXPECTED_ALERT_BEHAVIOUR, behaviour);
93-
}
94-
driver2 = new WebDriverBuilder().setDesiredCapabilities(desiredCaps).get();
90+
Capabilities caps = behaviour == null
91+
? new ImmutableCapabilities()
92+
: new ImmutableCapabilities(UNEXPECTED_ALERT_BEHAVIOUR, behaviour);
93+
driver2 = new WebDriverBuilder().setDesiredCapabilities(caps).get();
9594
runScenarioWithUnhandledAlert(expectedAlertText, behaviour != UnexpectedAlertBehaviour.IGNORE);
9695
}
9796

java/client/test/org/openqa/selenium/firefox/FirefoxOptionsTest.java

+7-7
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,10 @@ public class FirefoxOptionsTest {
6565

6666
@Test
6767
public void canInitFirefoxOptionsWithCapabilities() {
68-
FirefoxOptions options = new FirefoxOptions(new ImmutableCapabilities(ImmutableMap.of(
68+
FirefoxOptions options = new FirefoxOptions(new ImmutableCapabilities(
6969
MARIONETTE, false,
7070
PAGE_LOAD_STRATEGY, PageLoadStrategy.EAGER,
71-
ACCEPT_INSECURE_CERTS, true)));
71+
ACCEPT_INSECURE_CERTS, true));
7272

7373
assertTrue(options.isLegacy());
7474
assertEquals(options.getCapability(PAGE_LOAD_STRATEGY), PageLoadStrategy.EAGER);
@@ -78,8 +78,8 @@ public void canInitFirefoxOptionsWithCapabilities() {
7878
@Test
7979
public void canInitFirefoxOptionsWithCapabilitiesThatContainFirefoxOptions() {
8080
FirefoxOptions options = new FirefoxOptions().setLegacy(true).merge(
81-
new ImmutableCapabilities(ImmutableMap.of(PAGE_LOAD_STRATEGY, PageLoadStrategy.EAGER)));
82-
Capabilities caps = new ImmutableCapabilities(ImmutableMap.of(FIREFOX_OPTIONS, options));
81+
new ImmutableCapabilities(PAGE_LOAD_STRATEGY, PageLoadStrategy.EAGER));
82+
Capabilities caps = new ImmutableCapabilities(FIREFOX_OPTIONS, options);
8383

8484
FirefoxOptions options2 = new FirefoxOptions(caps);
8585

@@ -90,8 +90,8 @@ public void canInitFirefoxOptionsWithCapabilitiesThatContainFirefoxOptions() {
9090
@Test
9191
public void canInitFirefoxOptionsWithCapabilitiesThatContainFirefoxOptionsAsMap() {
9292
FirefoxProfile profile = new FirefoxProfile();
93-
Capabilities caps = new ImmutableCapabilities(ImmutableMap.of(
94-
FIREFOX_OPTIONS, ImmutableMap.of("profile", profile)));
93+
Capabilities caps = new ImmutableCapabilities(
94+
FIREFOX_OPTIONS, ImmutableMap.of("profile", profile));
9595

9696
FirefoxOptions options = new FirefoxOptions(caps);
9797

@@ -213,7 +213,7 @@ public void settingMarionetteToFalseAsASystemPropertyDoesNotPrecedence() {
213213
String resetValue = property.get();
214214

215215
try {
216-
Capabilities caps = new ImmutableCapabilities(ImmutableMap.of(MARIONETTE, true));
216+
Capabilities caps = new ImmutableCapabilities(MARIONETTE, true);
217217

218218
property.set("false");
219219
FirefoxOptions options = new FirefoxOptions().merge(caps);

java/client/test/org/openqa/selenium/html5/Html5CapabilitiesTest.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@
3434
import org.junit.Test;
3535
import org.openqa.selenium.Capabilities;
3636
import org.openqa.selenium.HasCapabilities;
37+
import org.openqa.selenium.ImmutableCapabilities;
3738
import org.openqa.selenium.JavascriptExecutor;
3839
import org.openqa.selenium.WebDriver;
39-
import org.openqa.selenium.remote.DesiredCapabilities;
4040
import org.openqa.selenium.testing.Ignore;
4141
import org.openqa.selenium.testing.JUnit4TestBase;
4242
import org.openqa.selenium.testing.TestUtilities;
@@ -113,8 +113,7 @@ public void disableDatabaseCapability() {
113113
}
114114

115115
private void configureCapability(String capability, boolean isEnabled) {
116-
DesiredCapabilities desiredCaps = new DesiredCapabilities();
117-
desiredCaps.setCapability(capability, isEnabled);
116+
Capabilities desiredCaps = new ImmutableCapabilities(capability, isEnabled);
118117
WebDriverBuilder builder = new WebDriverBuilder().setDesiredCapabilities(desiredCaps);
119118
localDriver = builder.get();
120119
Capabilities caps = ((HasCapabilities) localDriver).getCapabilities();

java/client/test/org/openqa/selenium/logging/AvailableLogsTest.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,9 @@
3131

3232
import org.junit.After;
3333
import org.junit.Test;
34+
import org.openqa.selenium.Capabilities;
35+
import org.openqa.selenium.ImmutableCapabilities;
3436
import org.openqa.selenium.WebDriver;
35-
import org.openqa.selenium.remote.DesiredCapabilities;
3637
import org.openqa.selenium.testing.Ignore;
3738
import org.openqa.selenium.testing.JUnit4TestBase;
3839
import org.openqa.selenium.testing.drivers.WebDriverBuilder;
@@ -102,8 +103,7 @@ public void profilerLogShouldBeDisabledByDefault() {
102103
@Ignore(value = SAFARI, reason = "Safari does not support profiler logs")
103104
public void shouldBeAbleToEnableProfilerLog() {
104105
assumeFalse(isOldChromedriver(driver));
105-
DesiredCapabilities caps = new DesiredCapabilities();
106-
caps.setCapability(ENABLE_PROFILING_CAPABILITY, true);
106+
Capabilities caps = new ImmutableCapabilities(ENABLE_PROFILING_CAPABILITY, true);
107107
WebDriverBuilder builder = new WebDriverBuilder().setDesiredCapabilities(caps);
108108
localDriver = builder.get();
109109
Set<String> logTypes = localDriver.manage().logs().getAvailableLogTypes();

java/client/test/org/openqa/selenium/logging/GetLogsTest.java

+3-5
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,10 @@
2828

2929
import org.junit.After;
3030
import org.junit.Test;
31+
import org.openqa.selenium.Capabilities;
32+
import org.openqa.selenium.ImmutableCapabilities;
3133
import org.openqa.selenium.WebDriver;
3234
import org.openqa.selenium.remote.CapabilityType;
33-
import org.openqa.selenium.remote.DesiredCapabilities;
3435
import org.openqa.selenium.testing.Ignore;
3536
import org.openqa.selenium.testing.JUnit4TestBase;
3637
import org.openqa.selenium.testing.NeedsLocalEnvironment;
@@ -112,10 +113,7 @@ public void turningOffLogShouldMeanNoLogMessages() {
112113
private void createWebDriverWithLogging(String logType, Level logLevel) {
113114
LoggingPreferences loggingPrefs = new LoggingPreferences();
114115
loggingPrefs.enable(logType, logLevel);
115-
DesiredCapabilities caps = new DesiredCapabilities();
116-
caps.setCapability(CapabilityType.LOGGING_PREFS, loggingPrefs);
117-
//TODO: Set capabilities using required capabilities once these are supported
118-
// by the remote server.
116+
Capabilities caps = new ImmutableCapabilities(CapabilityType.LOGGING_PREFS, loggingPrefs);
119117
WebDriverBuilder builder = new WebDriverBuilder().setDesiredCapabilities(caps);
120118
localDriver = builder.get();
121119
localDriver.get(pages.simpleTestPage);

java/client/test/org/openqa/selenium/logging/PerformanceLogTypeTest.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,10 @@
3333

3434
import org.junit.After;
3535
import org.junit.Test;
36+
import org.openqa.selenium.Capabilities;
37+
import org.openqa.selenium.ImmutableCapabilities;
3638
import org.openqa.selenium.WebDriver;
3739
import org.openqa.selenium.remote.CapabilityType;
38-
import org.openqa.selenium.remote.DesiredCapabilities;
3940
import org.openqa.selenium.testing.Ignore;
4041
import org.openqa.selenium.testing.JUnit4TestBase;
4142
import org.openqa.selenium.testing.drivers.WebDriverBuilder;
@@ -68,10 +69,9 @@ public void performanceLogShouldBeDisabledByDefault() {
6869
}
6970

7071
void createLocalDriverWithPerformanceLogType() {
71-
DesiredCapabilities caps = new DesiredCapabilities();
7272
LoggingPreferences logPrefs = new LoggingPreferences();
7373
logPrefs.enable(LogType.PERFORMANCE, Level.INFO);
74-
caps.setCapability(CapabilityType.LOGGING_PREFS, logPrefs);
74+
Capabilities caps = new ImmutableCapabilities(CapabilityType.LOGGING_PREFS, logPrefs);
7575
localDriver = new WebDriverBuilder().setDesiredCapabilities(caps).get();
7676
}
7777

java/client/test/org/openqa/selenium/logging/PerformanceLoggingTest.java

+6-5
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,10 @@
3636
import org.junit.After;
3737
import org.junit.Test;
3838
import org.openqa.selenium.By;
39+
import org.openqa.selenium.Capabilities;
3940
import org.openqa.selenium.WebDriver;
41+
import org.openqa.selenium.firefox.FirefoxOptions;
4042
import org.openqa.selenium.logging.profiler.EventType;
41-
import org.openqa.selenium.remote.DesiredCapabilities;
4243
import org.openqa.selenium.testing.Ignore;
4344
import org.openqa.selenium.testing.JUnit4TestBase;
4445
import org.openqa.selenium.testing.drivers.WebDriverBuilder;
@@ -135,9 +136,9 @@ public boolean apply(LogEntry entry) {
135136
}));
136137
}
137138

138-
private static DesiredCapabilities getCapabilitiesWithProfilerOn(boolean enabled) {
139-
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
140-
capabilities.setCapability(ENABLE_PROFILING_CAPABILITY, enabled);
141-
return capabilities;
139+
private static Capabilities getCapabilitiesWithProfilerOn(boolean enabled) {
140+
FirefoxOptions options = new FirefoxOptions();
141+
options.setCapability(ENABLE_PROFILING_CAPABILITY, enabled);
142+
return options;
142143
}
143144
}

0 commit comments

Comments
 (0)