Skip to content

Commit 1d6c965

Browse files
committed
Lift clever handling of some capabilities into MutableCapabilities
Slowly, slowly, DesiredCapbilities evaporates.
1 parent 55a1590 commit 1d6c965

File tree

4 files changed

+37
-34
lines changed

4 files changed

+37
-34
lines changed

java/client/src/org/openqa/selenium/MutableCapabilities.java

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@
1818
package org.openqa.selenium;
1919

2020

21+
import org.openqa.selenium.logging.LogLevelMapping;
22+
import org.openqa.selenium.logging.LoggingPreferences;
23+
2124
import java.io.Serializable;
2225
import java.util.Collections;
2326
import java.util.HashMap;
@@ -140,6 +143,32 @@ public void setCapability(String key, Object value) {
140143
return;
141144
}
142145

146+
if ("loggingPrefs".equals(key) && value instanceof Map) {
147+
LoggingPreferences prefs = new LoggingPreferences();
148+
@SuppressWarnings("unchecked") Map<String, String> prefsMap = (Map<String, String>) value;
149+
150+
for (String logType : prefsMap.keySet()) {
151+
prefs.enable(logType, LogLevelMapping.toLevel(prefsMap.get(logType)));
152+
}
153+
caps.put(key, prefs);
154+
return;
155+
}
156+
157+
if ("platform".equals(key) && value instanceof String) {
158+
try {
159+
caps.put(key, Platform.fromString((String) value));
160+
} catch (WebDriverException e) {
161+
caps.put(key, value);
162+
}
163+
return;
164+
}
165+
166+
if ("unexpectedAlertBehaviour".equals(key)) {
167+
caps.put("unexpectedAlertBehaviour", value);
168+
caps.put("unhandledPromptBehavior", value);
169+
return;
170+
}
171+
143172
if (value == null) {
144173
caps.remove(key);
145174
} else {

java/client/src/org/openqa/selenium/logging/BUCK

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ API_SRCS = [
22
'Logs.java',
33
'LogEntries.java',
44
'LogEntry.java',
5+
'LogLevelMapping.java',
56
'LoggingPreferences.java',
67
]
78

java/client/src/org/openqa/selenium/logging/LogLevelMapping.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,9 @@
1717

1818
package org.openqa.selenium.logging;
1919

20-
import static com.google.common.base.Strings.isNullOrEmpty;
21-
22-
import com.google.common.collect.ImmutableMap;
23-
20+
import java.util.Collections;
21+
import java.util.HashMap;
22+
import java.util.Map;
2423
import java.util.logging.Level;
2524

2625
public class LogLevelMapping {
@@ -30,7 +29,7 @@ public class LogLevelMapping {
3029
*/
3130
private static final String DEBUG = "DEBUG";
3231

33-
private static ImmutableMap<Integer, Level> levelMap;
32+
private static final Map<Integer, Level> levelMap;
3433

3534
static {
3635
Level[] supportedLevels = new Level[] {
@@ -41,11 +40,11 @@ public class LogLevelMapping {
4140
Level.SEVERE,
4241
Level.OFF
4342
};
44-
ImmutableMap.Builder<Integer, Level> builder = ImmutableMap.builder();
43+
Map<Integer, Level> builder = new HashMap<>();
4544
for (Level level : supportedLevels) {
4645
builder.put(level.intValue(), level);
4746
}
48-
levelMap = builder.build();
47+
levelMap = Collections.unmodifiableMap(builder);
4948
}
5049

5150
/**
@@ -80,7 +79,7 @@ public static String getName(Level level) {
8079
}
8180

8281
public static Level toLevel(String logLevelName) {
83-
if (isNullOrEmpty(logLevelName)) {
82+
if (logLevelName == null || "".equals(logLevelName)) {
8483
// Default the log level to info.
8584
return Level.INFO;
8685
}

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

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -111,32 +111,6 @@ public DesiredCapabilities merge(Capabilities extraCapabilities) {
111111
return this;
112112
}
113113

114-
public void setCapability(String key, Object value) {
115-
if (LOGGING_PREFS.equals(key) && value instanceof Map) {
116-
LoggingPreferences prefs = new LoggingPreferences();
117-
Map<String, String> prefsMap = (Map<String, String>) value;
118-
119-
for (String logType : prefsMap.keySet()) {
120-
prefs.enable(logType, LogLevelMapping.toLevel(prefsMap.get(logType)));
121-
}
122-
super.setCapability(LOGGING_PREFS, prefs);
123-
124-
} else if (PLATFORM.equals(key) && value instanceof String) {
125-
try {
126-
super.setCapability(key, Platform.fromString((String) value));
127-
} catch (WebDriverException e) {
128-
super.setCapability(key, value);
129-
}
130-
131-
} else if (UNEXPECTED_ALERT_BEHAVIOUR.equals(key)) {
132-
super.setCapability(UNEXPECTED_ALERT_BEHAVIOUR, value);
133-
super.setCapability(UNHANDLED_PROMPT_BEHAVIOUR, value);
134-
135-
} else {
136-
super.setCapability(key, value);
137-
}
138-
}
139-
140114
public static DesiredCapabilities android() {
141115
return new DesiredCapabilities(BrowserType.ANDROID, "", Platform.ANDROID);
142116
}

0 commit comments

Comments
 (0)