Skip to content

Commit cc5ca35

Browse files
committed
[java] use Local.ENGLISH for lower / upper case transformations #14916
1 parent c0b45ad commit cc5ca35

29 files changed

+89
-46
lines changed

java/src/org/openqa/selenium/Architecture.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717

1818
package org.openqa.selenium;
1919

20+
import java.util.Locale;
21+
2022
/**
2123
* Represents the known architectures used in WebDriver. It attempts to smooth over some of Java's
2224
* rough edges when dealing with microprocessor architectures by, for instance, allowing you to
@@ -98,7 +100,7 @@ public int getDataModel() {
98100

99101
@Override
100102
public String toString() {
101-
return name().toLowerCase();
103+
return name().toLowerCase(Locale.ENGLISH);
102104
}
103105

104106
/**
@@ -121,7 +123,7 @@ public static Architecture getCurrent() {
121123
*/
122124
public static Architecture extractFromSysProperty(String arch) {
123125
if (arch != null) {
124-
arch = arch.toLowerCase();
126+
arch = arch.toLowerCase(Locale.ENGLISH);
125127
}
126128

127129
// Some architectures are basically the same even though they have different names. ia32, x86,

java/src/org/openqa/selenium/Platform.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
package org.openqa.selenium;
1919

2020
import java.util.Arrays;
21+
import java.util.Locale;
2122
import java.util.regex.Matcher;
2223
import java.util.regex.Pattern;
2324

@@ -414,7 +415,7 @@ public static Platform extractFromSysProperty(String osName) {
414415
* @return the most likely platform based on given operating system name and version
415416
*/
416417
public static Platform extractFromSysProperty(String osName, String osVersion) {
417-
osName = osName.toLowerCase();
418+
osName = osName.toLowerCase(Locale.ENGLISH);
418419
// os.name for android is linux
419420
if ("dalvik".equalsIgnoreCase(System.getProperty("java.vm.name"))) {
420421
return Platform.ANDROID;
@@ -434,7 +435,7 @@ public static Platform extractFromSysProperty(String osName, String osVersion) {
434435
if ("".equals(matcher)) {
435436
continue;
436437
}
437-
matcher = matcher.toLowerCase();
438+
matcher = matcher.toLowerCase(Locale.ENGLISH);
438439
if (os.isExactMatch(osName, matcher)) {
439440
return os;
440441
}

java/src/org/openqa/selenium/Proxy.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import java.util.Arrays;
2121
import java.util.HashMap;
2222
import java.util.List;
23+
import java.util.Locale;
2324
import java.util.Map;
2425
import java.util.Objects;
2526
import java.util.Optional;
@@ -93,7 +94,8 @@ public Proxy() {
9394
public Proxy(Map<String, ?> raw) {
9495
Map<String, Consumer<Object>> setters = new HashMap<>();
9596
setters.put(
96-
PROXY_TYPE, value -> setProxyType(ProxyType.valueOf(((String) value).toUpperCase())));
97+
PROXY_TYPE,
98+
value -> setProxyType(ProxyType.valueOf(((String) value).toUpperCase(Locale.ENGLISH))));
9799
setters.put(FTP_PROXY, value -> setFtpProxy((String) value));
98100
setters.put(HTTP_PROXY, value -> setHttpProxy((String) value));
99101
setters.put(
@@ -448,7 +450,7 @@ public String toString() {
448450
case DIRECT:
449451
case MANUAL:
450452
case SYSTEM:
451-
builder.append(getProxyType().toString().toLowerCase());
453+
builder.append(getProxyType().toString().toLowerCase(Locale.ENGLISH));
452454
break;
453455

454456
case PAC:

java/src/org/openqa/selenium/chrome/ChromeDriverService.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import java.util.ArrayList;
3030
import java.util.HashMap;
3131
import java.util.List;
32+
import java.util.Locale;
3233
import java.util.Map;
3334
import org.openqa.selenium.Capabilities;
3435
import org.openqa.selenium.WebDriverException;
@@ -300,7 +301,7 @@ protected List<String> createArgs() {
300301
}
301302

302303
if (logLevel != null) {
303-
args.add(String.format("--log-level=%s", logLevel.toString().toUpperCase()));
304+
args.add(String.format("--log-level=%s", logLevel.toString().toUpperCase(Locale.ENGLISH)));
304305
}
305306
if (allowedListIps != null) {
306307
args.add(String.format("--allowed-ips=%s", allowedListIps));

java/src/org/openqa/selenium/chromium/ChromiumDriverLogLevel.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
package org.openqa.selenium.chromium;
1919

20+
import java.util.Locale;
2021
import java.util.Map;
2122
import java.util.logging.Level;
2223

@@ -46,7 +47,7 @@ public enum ChromiumDriverLogLevel {
4647

4748
@Override
4849
public String toString() {
49-
return super.toString().toLowerCase();
50+
return super.toString().toLowerCase(Locale.ENGLISH);
5051
}
5152

5253
public static ChromiumDriverLogLevel fromString(String text) {

java/src/org/openqa/selenium/devtools/NetworkInterceptor.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import static org.openqa.selenium.remote.http.Contents.utf8String;
2121

22+
import java.util.Locale;
2223
import java.util.Map;
2324
import java.util.Optional;
2425
import org.openqa.selenium.WebDriver;
@@ -105,7 +106,7 @@ public void close() {
105106
protected HttpMethod convertFromCdpHttpMethod(String method) {
106107
Require.nonNull("HTTP Method", method);
107108
try {
108-
return HttpMethod.valueOf(method.toUpperCase());
109+
return HttpMethod.valueOf(method.toUpperCase(Locale.ENGLISH));
109110
} catch (IllegalArgumentException e) {
110111
// Spam in a reasonable value
111112
return HttpMethod.GET;

java/src/org/openqa/selenium/devtools/idealized/Network.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import java.util.Base64;
2727
import java.util.LinkedHashMap;
2828
import java.util.List;
29+
import java.util.Locale;
2930
import java.util.Map;
3031
import java.util.Optional;
3132
import java.util.concurrent.CancellationException;
@@ -300,7 +301,7 @@ protected Optional<Credentials> getAuthCredentials(URI uri) {
300301
protected HttpMethod convertFromCdpHttpMethod(String method) {
301302
Require.nonNull("HTTP Method", method);
302303
try {
303-
return HttpMethod.valueOf(method.toUpperCase());
304+
return HttpMethod.valueOf(method.toUpperCase(Locale.ENGLISH));
304305
} catch (IllegalArgumentException e) {
305306
// Spam in a reasonable value
306307
return HttpMethod.GET;

java/src/org/openqa/selenium/edge/EdgeDriverService.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import java.time.Duration;
2828
import java.util.ArrayList;
2929
import java.util.List;
30+
import java.util.Locale;
3031
import java.util.Map;
3132
import org.openqa.selenium.Capabilities;
3233
import org.openqa.selenium.WebDriverException;
@@ -294,7 +295,7 @@ protected List<String> createArgs() {
294295
}
295296

296297
if (logLevel != null) {
297-
args.add(String.format("--log-level=%s", logLevel.toString().toUpperCase()));
298+
args.add(String.format("--log-level=%s", logLevel.toString().toUpperCase(Locale.ENGLISH)));
298299
}
299300
if (Boolean.TRUE.equals(silent)) {
300301
args.add("--silent");

java/src/org/openqa/selenium/firefox/FirefoxBinary.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import java.util.ArrayList;
3131
import java.util.Collections;
3232
import java.util.List;
33+
import java.util.Locale;
3334
import java.util.Map;
3435
import java.util.Optional;
3536
import java.util.stream.Collectors;
@@ -72,7 +73,7 @@ public String toString() {
7273
* @return the Channel enum value matching the parameter
7374
*/
7475
public static Channel fromString(String name) {
75-
final String lcName = name.toLowerCase();
76+
final String lcName = name.toLowerCase(Locale.ENGLISH);
7677
return stream(Channel.values())
7778
.filter(ch -> ch.name.equals(lcName))
7879
.findFirst()

java/src/org/openqa/selenium/firefox/FirefoxDriverLogLevel.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
package org.openqa.selenium.firefox;
1919

2020
import java.util.Collections;
21+
import java.util.Locale;
2122
import java.util.Map;
2223
import java.util.logging.Level;
2324

@@ -47,7 +48,7 @@ public enum FirefoxDriverLogLevel {
4748

4849
@Override
4950
public String toString() {
50-
return super.toString().toLowerCase();
51+
return super.toString().toLowerCase(Locale.ENGLISH);
5152
}
5253

5354
public static FirefoxDriverLogLevel fromString(String text) {

java/src/org/openqa/selenium/grid/config/DescribedOption.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import java.util.Collection;
3333
import java.util.HashSet;
3434
import java.util.List;
35+
import java.util.Locale;
3536
import java.util.Objects;
3637
import java.util.Optional;
3738
import java.util.ServiceLoader;
@@ -194,7 +195,7 @@ public int hashCode() {
194195
}
195196

196197
public String getType(Type type) {
197-
String className = deriveClass(type).getSimpleName().toLowerCase();
198+
String className = deriveClass(type).getSimpleName().toLowerCase(Locale.ENGLISH);
198199

199200
return isCollection(type) ? "list of " + className + "s" : className;
200201
}

java/src/org/openqa/selenium/grid/distributor/selector/DefaultSlotSelector.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
import com.google.common.annotations.VisibleForTesting;
2323
import java.util.Comparator;
24+
import java.util.Locale;
2425
import java.util.Set;
2526
import org.openqa.selenium.Capabilities;
2627
import org.openqa.selenium.grid.config.Config;
@@ -67,7 +68,7 @@ public Set<SlotId> selectSlot(
6768
@VisibleForTesting
6869
long getNumberOfSupportedBrowsers(NodeStatus nodeStatus) {
6970
return nodeStatus.getSlots().stream()
70-
.map(slot -> slot.getStereotype().getBrowserName().toLowerCase())
71+
.map(slot -> slot.getStereotype().getBrowserName().toLowerCase(Locale.ENGLISH))
7172
.distinct()
7273
.count();
7374
}

java/src/org/openqa/selenium/grid/node/config/NodeOptions.java

+14-6
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import java.util.Comparator;
3737
import java.util.HashMap;
3838
import java.util.List;
39+
import java.util.Locale;
3940
import java.util.Map;
4041
import java.util.Optional;
4142
import java.util.ServiceLoader;
@@ -582,16 +583,21 @@ private void addSpecificDrivers(
582583

583584
Optional<Map.Entry<WebDriverInfo, Collection<SessionFactory>>> first =
584585
allDrivers.entrySet().stream()
585-
.filter(entry -> drivers.contains(entry.getKey().getDisplayName().toLowerCase()))
586+
.filter(
587+
entry ->
588+
drivers.contains(entry.getKey().getDisplayName().toLowerCase(Locale.ENGLISH)))
586589
.findFirst();
587590

588591
if (first.isEmpty()) {
589592
throw new ConfigException("No drivers were found for %s", drivers.toString());
590593
}
591594

592595
allDrivers.entrySet().stream()
593-
.filter(entry -> drivers.contains(entry.getKey().getDisplayName().toLowerCase()))
594-
.sorted(Comparator.comparing(entry -> entry.getKey().getDisplayName().toLowerCase()))
596+
.filter(
597+
entry -> drivers.contains(entry.getKey().getDisplayName().toLowerCase(Locale.ENGLISH)))
598+
.sorted(
599+
Comparator.comparing(
600+
entry -> entry.getKey().getDisplayName().toLowerCase(Locale.ENGLISH)))
595601
.peek(this::report)
596602
.forEach(
597603
entry -> {
@@ -614,7 +620,8 @@ private Map<WebDriverInfo, Collection<SessionFactory>> discoverDrivers(
614620
List<WebDriverInfo> driversSM =
615621
StreamSupport.stream(ServiceLoader.load(WebDriverInfo.class).spliterator(), false)
616622
.filter(WebDriverInfo::isAvailable)
617-
.sorted(Comparator.comparing(info -> info.getDisplayName().toLowerCase()))
623+
.sorted(
624+
Comparator.comparing(info -> info.getDisplayName().toLowerCase(Locale.ENGLISH)))
618625
.collect(Collectors.toList());
619626
infos.addAll(driversSM);
620627
} else {
@@ -625,7 +632,8 @@ private Map<WebDriverInfo, Collection<SessionFactory>> discoverDrivers(
625632
List<WebDriverInfo> localDrivers =
626633
StreamSupport.stream(ServiceLoader.load(WebDriverInfo.class).spliterator(), false)
627634
.filter(WebDriverInfo::isPresent)
628-
.sorted(Comparator.comparing(info -> info.getDisplayName().toLowerCase()))
635+
.sorted(
636+
Comparator.comparing(info -> info.getDisplayName().toLowerCase(Locale.ENGLISH)))
629637
.collect(Collectors.toList());
630638
infos.addAll(localDrivers);
631639
}
@@ -708,7 +716,7 @@ public Optional<WebDriver> createDriver(Capabilities capabilities)
708716
private int getDriverMaxSessions(WebDriverInfo info, int desiredMaxSessions) {
709717
// Safari and Safari Technology Preview
710718
if (info.getMaximumSimultaneousSessions() == 1
711-
&& SINGLE_SESSION_DRIVERS.contains(info.getDisplayName().toLowerCase())) {
719+
&& SINGLE_SESSION_DRIVERS.contains(info.getDisplayName().toLowerCase(Locale.ENGLISH))) {
712720
return info.getMaximumSimultaneousSessions();
713721
}
714722
boolean overrideMaxSessions =

java/src/org/openqa/selenium/grid/node/config/SessionCapabilitiesMutator.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import java.util.ArrayList;
2222
import java.util.HashMap;
2323
import java.util.List;
24+
import java.util.Locale;
2425
import java.util.Map;
2526
import java.util.Objects;
2627
import java.util.function.Function;
@@ -56,7 +57,7 @@ public Capabilities apply(Capabilities capabilities) {
5657
.setCapability(SE_NO_VNC_PORT, slotStereotype.getCapability(SE_NO_VNC_PORT));
5758
}
5859

59-
String browserName = capabilities.getBrowserName().toLowerCase();
60+
String browserName = capabilities.getBrowserName().toLowerCase(Locale.ENGLISH);
6061

6162
if ("internet explorer".equalsIgnoreCase(browserName)) {
6263
return new ImmutableCapabilities(removeUnknownExtensionsForIE(capabilities));
@@ -83,7 +84,7 @@ public Capabilities apply(Capabilities capabilities) {
8384
Map<String, Object> toReturn = new HashMap<>(slotStereotype.merge(capabilities).asMap());
8485

8586
// Merge browser specific stereotype and capabilities options
86-
switch (browserName.toLowerCase()) {
87+
switch (browserName.toLowerCase(Locale.ENGLISH)) {
8788
case "chrome":
8889
case "microsoftedge":
8990
case "msedge":

java/src/org/openqa/selenium/grid/node/k8s/OneShotNode.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import java.net.URISyntaxException;
3131
import java.time.Duration;
3232
import java.time.Instant;
33+
import java.util.Locale;
3334
import java.util.Map;
3435
import java.util.Optional;
3536
import java.util.ServiceLoader;
@@ -157,7 +158,7 @@ public static Node create(Config config) {
157158
.filter(
158159
info ->
159160
driverName
160-
.map(name -> name.equals(info.getDisplayName().toLowerCase()))
161+
.map(name -> name.equals(info.getDisplayName().toLowerCase(Locale.ENGLISH)))
161162
.orElse(true))
162163
.findFirst()
163164
.orElseThrow(

java/src/org/openqa/selenium/grid/node/relay/RelayOptions.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import java.time.Duration;
3030
import java.util.Collection;
3131
import java.util.List;
32+
import java.util.Locale;
3233
import java.util.Map;
3334
import java.util.Optional;
3435
import java.util.logging.Logger;
@@ -122,7 +123,7 @@ public String getServiceProtocolVersion() {
122123

123124
private String normalizeProtocolVersion(String protocolVersion) {
124125
// Support input in the form of "http/1.1" or "HTTP/1.1"
125-
return protocolVersion.toUpperCase().replaceAll("/", "_").replaceAll("\\.", "_");
126+
return protocolVersion.toUpperCase(Locale.ENGLISH).replaceAll("/", "_").replaceAll("\\.", "_");
126127
}
127128

128129
// Method being used in SessionSlot

java/src/org/openqa/selenium/grid/web/ResourceHandler.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
import java.io.UncheckedIOException;
4343
import java.net.MalformedURLException;
4444
import java.net.URL;
45+
import java.util.Locale;
4546
import java.util.Optional;
4647
import java.util.stream.Collectors;
4748
import org.openqa.selenium.internal.Require;
@@ -134,7 +135,7 @@ private String mediaType(String uri) {
134135
String extension = (index == -1 || uri.length() == index) ? "" : uri.substring(index + 1);
135136

136137
MediaType type;
137-
switch (extension.toLowerCase()) {
138+
switch (extension.toLowerCase(Locale.ENGLISH)) {
138139
case "appcache":
139140
type = CACHE_MANIFEST_UTF_8;
140141
break;

java/src/org/openqa/selenium/grid/web/ReverseProxyHandler.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323

2424
import com.google.common.collect.ImmutableSet;
2525
import java.io.UncheckedIOException;
26+
import java.util.Locale;
2627
import java.util.logging.Logger;
2728
import org.openqa.selenium.internal.Require;
2829
import org.openqa.selenium.remote.http.HttpClient;
@@ -78,7 +79,7 @@ public HttpResponse execute(HttpRequest req) throws UncheckedIOException {
7879

7980
req.forEachHeader(
8081
(name, value) -> {
81-
if (IGNORED_REQ_HEADERS.contains(name.toLowerCase())) {
82+
if (IGNORED_REQ_HEADERS.contains(name.toLowerCase(Locale.ENGLISH))) {
8283
return;
8384
}
8485
toUpstream.addHeader(name, value);

0 commit comments

Comments
 (0)