Skip to content

Commit 9bd2718

Browse files
committed
Use LogLevelMapping to convert JSON wire protocol name to Level instance.
Without this, the java bindings fail to parse the "DEBUG" log level, which is valid in JSON wire protocol but not a recognized Java log level name.
1 parent b4f0e5d commit 9bd2718

File tree

2 files changed

+20
-2
lines changed

2 files changed

+20
-2
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,13 @@
2626

2727
import org.openqa.selenium.Capabilities;
2828
import org.openqa.selenium.Platform;
29+
import org.openqa.selenium.logging.LogLevelMapping;
2930
import org.openqa.selenium.logging.LoggingPreferences;
3031

3132
import java.io.Serializable;
3233
import java.util.Collections;
3334
import java.util.HashMap;
3435
import java.util.Map;
35-
import java.util.logging.Level;
3636

3737
@SuppressWarnings("serial")
3838
public class DesiredCapabilities implements Serializable, Capabilities {
@@ -54,7 +54,7 @@ public DesiredCapabilities(Map<String, ?> rawMap) {
5454
Map<String, String> prefsMap = (Map<String, String>) rawMap.get(LOGGING_PREFS);
5555

5656
for (String logType : prefsMap.keySet()) {
57-
prefs.enable(logType, Level.parse(prefsMap.get(logType)));
57+
prefs.enable(logType, LogLevelMapping.toLevel(prefsMap.get(logType)));
5858
}
5959
capabilities.put(LOGGING_PREFS, prefs);
6060
// So it does not get added twice

java/client/test/org/openqa/selenium/remote/DesiredCapabilitiesTest.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,15 @@
2424
import org.openqa.selenium.Capabilities;
2525
import org.openqa.selenium.StubDriver;
2626
import org.openqa.selenium.WebDriver;
27+
import org.openqa.selenium.logging.LoggingPreferences;
2728

29+
import java.util.HashMap;
2830
import java.util.Map;
2931
import java.util.concurrent.ConcurrentHashMap;
32+
import java.util.logging.Level;
3033

3134
import static org.junit.Assert.assertEquals;
35+
import static org.junit.Assert.assertSame;
3236

3337
@RunWith(JUnit4.class)
3438
public class DesiredCapabilitiesTest {
@@ -75,4 +79,18 @@ public void testCopyConstructorDoesNotAliasToArgument() {
7579
assertEquals("ie", origCapabilities.getCapability("Browser"));
7680
assertEquals("firefox", newCapabilities.getCapability("Browser"));
7781
}
82+
83+
@Test
84+
public void testExtractDebugLogLevelFromCapabilityMap() {
85+
Map<String, Object> capabilitiesMap = new HashMap<String, Object>() {{
86+
put(CapabilityType.LOGGING_PREFS, new HashMap<String, String>() {{
87+
put("browser", "DEBUG");
88+
}});
89+
}};
90+
91+
DesiredCapabilities caps = new DesiredCapabilities(capabilitiesMap);
92+
LoggingPreferences prefs =
93+
(LoggingPreferences) caps.getCapability(CapabilityType.LOGGING_PREFS);
94+
assertSame(Level.FINE, prefs.getLevel("browser"));
95+
}
7896
}

0 commit comments

Comments
 (0)