Skip to content

Commit 2339f8a

Browse files
committed
Use Capabilities rather than ImmutableCapabilities in mutators
1 parent b3cda32 commit 2339f8a

File tree

6 files changed

+34
-31
lines changed

6 files changed

+34
-31
lines changed

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,8 @@ public void writeTo(Appendable appendable) throws IOException {
221221

222222
Map<String, Object> first = getOss();
223223
if (first == null) {
224-
first = stream().findFirst()
224+
//noinspection unchecked
225+
first = (Map<String, Object>) stream().findFirst()
225226
.orElse(new ImmutableCapabilities())
226227
.asMap();
227228
}
@@ -309,7 +310,7 @@ private void streamW3CProtocolParameters(JsonOutput out, Map<String, Object> des
309310
* equivalent W3C capabilities isn't particularly easy, so it's hoped that this approach gives us
310311
* the most compatible implementation.
311312
*/
312-
public Stream<ImmutableCapabilities> stream() throws IOException {
313+
public Stream<Capabilities> stream() throws IOException {
313314
// OSS first
314315
Stream<Map<String, Object>> oss = Stream.of(getOss());
315316

java/server/src/org/openqa/grid/selenium/node/ChromeMutator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
import java.util.Objects;
2828
import java.util.function.Function;
2929

30-
public class ChromeMutator implements Function<ImmutableCapabilities, ImmutableCapabilities> {
30+
public class ChromeMutator implements Function<Capabilities, Capabilities> {
3131

3232
private static final String CONFIG_UUID_CAPABILITY = "se:CONFIG_UUID";
3333

@@ -38,7 +38,7 @@ public ChromeMutator(Capabilities config) {
3838
}
3939

4040
@Override
41-
public ImmutableCapabilities apply(ImmutableCapabilities capabilities) {
41+
public Capabilities apply(Capabilities capabilities) {
4242
if (config == null || !"chrome".equals(capabilities.getBrowserName())) {
4343
return capabilities;
4444
}

java/server/src/org/openqa/grid/selenium/node/FirefoxMutator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
import java.util.Objects;
3030
import java.util.function.Function;
3131

32-
public class FirefoxMutator implements Function<ImmutableCapabilities, ImmutableCapabilities> {
32+
public class FirefoxMutator implements Function<Capabilities, Capabilities> {
3333

3434
private static final String CONFIG_UUID_CAPABILITY = "se:CONFIG_UUID";
3535

@@ -40,7 +40,7 @@ public FirefoxMutator(Capabilities config) {
4040
}
4141

4242
@Override
43-
public ImmutableCapabilities apply(ImmutableCapabilities capabilities) {
43+
public Capabilities apply(Capabilities capabilities) {
4444
if (config == null || !"firefox".equals(capabilities.getBrowserName())) {
4545
return capabilities;
4646
}

java/server/src/org/openqa/selenium/remote/server/NewSessionPipeline.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@ public class NewSessionPipeline {
2020

2121
private final List<SessionFactory> factories;
2222
private final SessionFactory fallback;
23-
private final List<Function<ImmutableCapabilities, ImmutableCapabilities>> mutators;
23+
private final List<Function<Capabilities, Capabilities>> mutators;
2424

2525
private NewSessionPipeline(
2626
List<SessionFactory> factories,
2727
SessionFactory fallback,
28-
List<Function<ImmutableCapabilities, ImmutableCapabilities>> mutators) {
28+
List<Function<Capabilities, Capabilities>> mutators) {
2929
this.factories = factories;
3030
this.fallback = fallback;
3131
this.mutators = mutators;
@@ -38,7 +38,7 @@ public static Builder builder() {
3838
public ActiveSession createNewSession(NewSessionPayload payload) throws IOException {
3939
return payload.stream()
4040
.map(caps -> {
41-
for (Function<ImmutableCapabilities, ImmutableCapabilities> mutator : mutators) {
41+
for (Function<Capabilities, Capabilities> mutator : mutators) {
4242
caps = mutator.apply(caps);
4343
}
4444
return caps;
@@ -72,7 +72,7 @@ public Optional<ActiveSession> apply(Set<Dialect> downstreamDialects, Capabiliti
7272
return Optional.empty();
7373
}
7474
};
75-
private List<Function<ImmutableCapabilities, ImmutableCapabilities>> mutators = new LinkedList<>();
75+
private List<Function<Capabilities, Capabilities>> mutators = new LinkedList<>();
7676

7777
private Builder() {
7878
// Private class
@@ -89,7 +89,7 @@ public Builder fallback(SessionFactory factory) {
8989
}
9090

9191
public Builder addCapabilitiesMutator(
92-
Function<ImmutableCapabilities, ImmutableCapabilities> mutator) {
92+
Function<Capabilities, Capabilities> mutator) {
9393
mutators.add(Objects.requireNonNull(mutator, "Mutator must not be null"));
9494
return this;
9595
}

java/server/test/org/openqa/grid/selenium/node/ChromeMutatorTest.java

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626

2727
import org.junit.Test;
2828
import org.openqa.grid.internal.utils.configuration.GridNodeConfiguration;
29+
import org.openqa.selenium.Capabilities;
2930
import org.openqa.selenium.ImmutableCapabilities;
3031
import org.openqa.selenium.chrome.ChromeOptions;
3132

@@ -40,7 +41,7 @@ public class ChromeMutatorTest {
4041
public void shouldDoNothingIfBrowserNameIsNotChrome() {
4142
ImmutableCapabilities caps = new ImmutableCapabilities("browserName", "cake");
4243

43-
ImmutableCapabilities seen = new ChromeMutator(defaultConfig).apply(caps);
44+
Capabilities seen = new ChromeMutator(defaultConfig).apply(caps);
4445

4546
// Make sure we return exactly the same instance of the capabilities, and not just a copy.
4647
assertSame(caps, seen);
@@ -53,15 +54,15 @@ public void shouldDoNothingIfCapabilitiesUsedToConfigureMutatorAreNotChromeBased
5354
CAPABILITY, ImmutableMap.of("binary", "cake"));
5455

5556
ImmutableCapabilities caps = new ImmutableCapabilities("browserName", "chrome");
56-
ImmutableCapabilities seen = new FirefoxMutator(config).apply(caps);
57+
Capabilities seen = new FirefoxMutator(config).apply(caps);
5758

5859
assertSame(caps, seen);
5960
}
6061

6162
@Test
6263
public void shouldInjectBinaryIfNotSpecified() {
6364
ImmutableCapabilities caps = new ImmutableCapabilities(new ChromeOptions());
64-
ImmutableCapabilities seen = new ChromeMutator(defaultConfig).apply(caps);
65+
Capabilities seen = new ChromeMutator(defaultConfig).apply(caps);
6566

6667
@SuppressWarnings("unchecked")
6768
Map<String, Object> options = (Map<String, Object>) seen.getCapability(CAPABILITY);
@@ -74,7 +75,7 @@ public void shouldInjectBinaryIfNotSpecified() {
7475
@Test
7576
public void shouldNotInjectNullBinary() {
7677
ImmutableCapabilities caps = new ImmutableCapabilities(new ChromeOptions());
77-
ImmutableCapabilities seen = new ChromeMutator(
78+
Capabilities seen = new ChromeMutator(
7879
new ImmutableCapabilities("browserName", "chrome")).apply(caps);
7980

8081
@SuppressWarnings("unchecked")
@@ -86,7 +87,7 @@ public void shouldNotInjectNullBinary() {
8687
@Test
8788
public void shouldNotInjectBinaryIfSpecified() {
8889
ImmutableCapabilities caps = new ImmutableCapabilities(new ChromeOptions().setBinary("cheese"));
89-
ImmutableCapabilities seen = new ChromeMutator(defaultConfig).apply(caps);
90+
Capabilities seen = new ChromeMutator(defaultConfig).apply(caps);
9091

9192
@SuppressWarnings("unchecked")
9293
Map<String, Object> options = (Map<String, Object>) seen.getCapability(CAPABILITY);
@@ -105,7 +106,7 @@ public void shouldInjectIfConfigUuidMatches() {
105106
CAPABILITY, ImmutableMap.of(),
106107
GridNodeConfiguration.CONFIG_UUID_CAPABILITY, "123");
107108

108-
ImmutableCapabilities seen = new ChromeMutator(config).apply(caps);
109+
Capabilities seen = new ChromeMutator(config).apply(caps);
109110

110111
Map<String, Object> options = (Map<String, Object>) seen.getCapability(CAPABILITY);
111112

@@ -125,7 +126,7 @@ public void shouldNotInjectIfConfigUuidDoesNotMatch() {
125126
CAPABILITY, ImmutableMap.of("binary", "cheese"),
126127
GridNodeConfiguration.CONFIG_UUID_CAPABILITY, "123");
127128

128-
ImmutableCapabilities seen = new ChromeMutator(config).apply(caps);
129+
Capabilities seen = new ChromeMutator(config).apply(caps);
129130

130131
Map<String, Object> options = (Map<String, Object>) seen.getCapability(CAPABILITY);
131132

@@ -142,7 +143,7 @@ public void shouldNotInjectIfUuidIsPresentInConfigOnly() {
142143
"browserName", "chrome",
143144
CAPABILITY, ImmutableMap.of("binary", "cheese"));
144145

145-
ImmutableCapabilities seen = new ChromeMutator(config).apply(caps);
146+
Capabilities seen = new ChromeMutator(config).apply(caps);
146147

147148
Map<String, Object> options = (Map<String, Object>) seen.getCapability(CAPABILITY);
148149

@@ -159,7 +160,7 @@ public void shouldNotInjectIfUuidIsPresentInPayloadOnly() {
159160
CAPABILITY, ImmutableMap.of("binary", "cheese"),
160161
GridNodeConfiguration.CONFIG_UUID_CAPABILITY, "123");
161162

162-
ImmutableCapabilities seen = new ChromeMutator(config).apply(caps);
163+
Capabilities seen = new ChromeMutator(config).apply(caps);
163164

164165
Map<String, Object> options = (Map<String, Object>) seen.getCapability(CAPABILITY);
165166

java/server/test/org/openqa/grid/selenium/node/FirefoxMutatorTest.java

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727

2828
import org.junit.Test;
2929
import org.openqa.grid.internal.utils.configuration.GridNodeConfiguration;
30+
import org.openqa.selenium.Capabilities;
3031
import org.openqa.selenium.ImmutableCapabilities;
3132

3233
import java.util.Map;
@@ -43,7 +44,7 @@ public class FirefoxMutatorTest {
4344
public void shouldDoNothingIfBrowserNameIsNotFirefox() {
4445
ImmutableCapabilities caps = new ImmutableCapabilities("browserName", "chrome");
4546

46-
ImmutableCapabilities seen = new FirefoxMutator(defaultConfig).apply(caps);
47+
Capabilities seen = new FirefoxMutator(defaultConfig).apply(caps);
4748

4849
// Make sure we return exactly the same instance of the capabilities, and not just a copy.
4950
assertSame(caps, seen);
@@ -56,15 +57,15 @@ public void shouldDoNothingIfCapabilitiesUsedToConfigureMutatorAreNotFirefoxBase
5657
"firefox_binary", "cake");
5758

5859
ImmutableCapabilities caps = new ImmutableCapabilities("browserName", "firefox");
59-
ImmutableCapabilities seen = new FirefoxMutator(config).apply(caps);
60+
Capabilities seen = new FirefoxMutator(config).apply(caps);
6061

6162
assertSame(caps, seen);
6263
}
6364

6465
@Test
6566
public void shouldInjectBinaryIfNotSpecified() {
6667
ImmutableCapabilities caps = new ImmutableCapabilities("browserName", "firefox");
67-
ImmutableCapabilities seen = new FirefoxMutator(defaultConfig).apply(caps);
68+
Capabilities seen = new FirefoxMutator(defaultConfig).apply(caps);
6869

6970
assertEquals(
7071
seen.getCapability("firefox_binary"),
@@ -84,7 +85,7 @@ public void shouldInjectBinaryIfLegacyOptionUnsetButGeckoDriverOptionSet() {
8485
"browserName", "firefox",
8586
BINARY, "cheese",
8687
FIREFOX_OPTIONS, ImmutableMap.of());
87-
ImmutableCapabilities seen = new FirefoxMutator(defaultConfig).apply(caps);
88+
Capabilities seen = new FirefoxMutator(defaultConfig).apply(caps);
8889

8990
assertEquals("cheese", seen.getCapability(BINARY));
9091

@@ -99,7 +100,7 @@ public void shouldInjectBinaryIfGeckoDriverOptionUnsetButLegacyOptionSet() {
99100
ImmutableCapabilities caps = new ImmutableCapabilities(
100101
"browserName", "firefox",
101102
FIREFOX_OPTIONS, ImmutableMap.of("binary", "cheese"));
102-
ImmutableCapabilities seen = new FirefoxMutator(defaultConfig).apply(caps);
103+
Capabilities seen = new FirefoxMutator(defaultConfig).apply(caps);
103104

104105
assertEquals(defaultConfig.getCapability(BINARY), seen.getCapability(BINARY));
105106

@@ -114,7 +115,7 @@ public void shouldInjectMarionetteValueNoMatterWhat() {
114115
ImmutableCapabilities caps = new ImmutableCapabilities(
115116
"browserName", "firefox",
116117
MARIONETTE, "cheese");
117-
ImmutableCapabilities seen = new FirefoxMutator(defaultConfig).apply(caps);
118+
Capabilities seen = new FirefoxMutator(defaultConfig).apply(caps);
118119

119120
assertEquals(defaultConfig.getCapability(MARIONETTE), seen.getCapability(MARIONETTE));
120121
}
@@ -131,7 +132,7 @@ public void shouldInjectIfConfigUuidMatches() {
131132
"browserName", "firefox",
132133
MARIONETTE, "cheese",
133134
GridNodeConfiguration.CONFIG_UUID_CAPABILITY, "123");
134-
ImmutableCapabilities seen = new FirefoxMutator(defaultConfigWithUuid).apply(caps);
135+
Capabilities seen = new FirefoxMutator(defaultConfigWithUuid).apply(caps);
135136

136137
assertEquals(true, seen.getCapability(MARIONETTE));
137138
}
@@ -148,7 +149,7 @@ public void shouldNotInjectIfConfigUuidDoesNotMatch() {
148149
"browserName", "firefox",
149150
MARIONETTE, "cheese",
150151
GridNodeConfiguration.CONFIG_UUID_CAPABILITY, "123");
151-
ImmutableCapabilities seen = new FirefoxMutator(defaultConfigWithUuid).apply(caps);
152+
Capabilities seen = new FirefoxMutator(defaultConfigWithUuid).apply(caps);
152153

153154
assertEquals("cheese", seen.getCapability(MARIONETTE));
154155
}
@@ -164,7 +165,7 @@ public void shouldNotInjectIfUuidIsPresentInConfigOnly() {
164165
ImmutableCapabilities caps = new ImmutableCapabilities(
165166
"browserName", "firefox",
166167
MARIONETTE, "cheese");
167-
ImmutableCapabilities seen = new FirefoxMutator(defaultConfigWithUuid).apply(caps);
168+
Capabilities seen = new FirefoxMutator(defaultConfigWithUuid).apply(caps);
168169

169170
assertEquals("cheese", seen.getCapability(MARIONETTE));
170171
}
@@ -175,8 +176,8 @@ public void shouldNotInjectIfUuidIsPresentInPayloadOnly() {
175176
"browserName", "firefox",
176177
MARIONETTE, "cheese",
177178
GridNodeConfiguration.CONFIG_UUID_CAPABILITY, "123");
178-
ImmutableCapabilities seen = new FirefoxMutator(defaultConfig).apply(caps);
179+
Capabilities seen = new FirefoxMutator(defaultConfig).apply(caps);
179180

180181
assertEquals("cheese", seen.getCapability(MARIONETTE));
181182
}
182-
}
183+
}

0 commit comments

Comments
 (0)