From da900f0642c65f1bb851bfaca86118ec26ced69d Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 23 Jun 2024 14:39:36 +0700 Subject: [PATCH 1/4] made the use of UTF8 encoding consistent throughout --- .../distributor/local/LocalDistributor.java | 6 +--- java/src/org/openqa/selenium/net/Urls.java | 7 ++-- .../selenium/remote/http/FormEncodedData.java | 2 +- .../org/openqa/selenium/ReferrerTest.java | 6 +--- .../selenium/docker/v1_41/ListImagesTest.java | 33 +++++++++---------- .../org/openqa/selenium/grid/MainTest.java | 6 +--- .../remote/http/FormEncodedDataTest.java | 14 +++----- 7 files changed, 26 insertions(+), 48 deletions(-) diff --git a/java/src/org/openqa/selenium/grid/distributor/local/LocalDistributor.java b/java/src/org/openqa/selenium/grid/distributor/local/LocalDistributor.java index aacb21ec965c8..01eded126079d 100644 --- a/java/src/org/openqa/selenium/grid/distributor/local/LocalDistributor.java +++ b/java/src/org/openqa/selenium/grid/distributor/local/LocalDistributor.java @@ -878,11 +878,7 @@ protected Node getNodeFromURI(URI uri) { model.getSnapshot().stream() .filter(node -> node.getExternalUri().equals(uri)) .findFirst(); - if (nodeStatus.isPresent()) { - return nodes.get(nodeStatus.get().getNodeId()); - } else { - return null; - } + return nodeStatus.map(status -> nodes.get(status.getNodeId())).orElse(null); } finally { readLock.unlock(); } diff --git a/java/src/org/openqa/selenium/net/Urls.java b/java/src/org/openqa/selenium/net/Urls.java index 6aa6b1a40d6a2..0c6ef75dd3c26 100644 --- a/java/src/org/openqa/selenium/net/Urls.java +++ b/java/src/org/openqa/selenium/net/Urls.java @@ -25,6 +25,7 @@ import java.net.URISyntaxException; import java.net.URL; import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; import java.util.regex.Pattern; import org.openqa.selenium.internal.Require; @@ -42,11 +43,7 @@ private Urls() { * @see URLEncoder#encode(java.lang.String, java.lang.String) */ public static String urlEncode(String value) { - try { - return URLEncoder.encode(value, "UTF-8"); - } catch (UnsupportedEncodingException e) { - throw new UncheckedIOException(e); - } + return URLEncoder.encode(value, StandardCharsets.UTF_8); } public static URL fromUri(URI uri) { diff --git a/java/src/org/openqa/selenium/remote/http/FormEncodedData.java b/java/src/org/openqa/selenium/remote/http/FormEncodedData.java index f7adbd6c8ef45..7d920e23d4694 100644 --- a/java/src/org/openqa/selenium/remote/http/FormEncodedData.java +++ b/java/src/org/openqa/selenium/remote/http/FormEncodedData.java @@ -90,6 +90,6 @@ private static String read(Reader reader, Charset charSet, char delimiter, Atomi builder.append(c); } - return URLDecoder.decode(builder.toString(), charSet.toString()); + return URLDecoder.decode(builder.toString(), charSet); } } diff --git a/java/test/org/openqa/selenium/ReferrerTest.java b/java/test/org/openqa/selenium/ReferrerTest.java index 17e1a1f430e69..75c41f30db311 100644 --- a/java/test/org/openqa/selenium/ReferrerTest.java +++ b/java/test/org/openqa/selenium/ReferrerTest.java @@ -169,11 +169,7 @@ void basicHistoryNavigationWithADirectProxy() { } private static String encode(String url) { - try { - return URLEncoder.encode(url, UTF_8.name()); - } catch (UnsupportedEncodingException e) { - throw new RuntimeException("UTF-8 should always be supported!", e); - } + return URLEncoder.encode(url, UTF_8); } private void performNavigation(WebDriver driver, String firstUrl) { diff --git a/java/test/org/openqa/selenium/docker/v1_41/ListImagesTest.java b/java/test/org/openqa/selenium/docker/v1_41/ListImagesTest.java index 6189290666d35..6cdb9ded76740 100644 --- a/java/test/org/openqa/selenium/docker/v1_41/ListImagesTest.java +++ b/java/test/org/openqa/selenium/docker/v1_41/ListImagesTest.java @@ -23,6 +23,7 @@ import java.io.UnsupportedEncodingException; import java.net.URLDecoder; +import java.nio.charset.StandardCharsets; import java.util.Map; import java.util.Set; import org.junit.jupiter.api.Test; @@ -41,26 +42,22 @@ void shouldReturnImageIfTagIsPresent() { HttpHandler handler = req -> { String filters = req.getQueryParameter("filters"); - try { - String decoded = URLDecoder.decode(filters, "UTF-8"); - Map raw = new Json().toType(decoded, MAP_TYPE); + String decoded = URLDecoder.decode(filters, StandardCharsets.UTF_8); + Map raw = new Json().toType(decoded, MAP_TYPE); - Map rawRef = (Map) raw.get("reference"); - assertThat(rawRef.get("selenium/standalone-firefox:latest")).isEqualTo(true); + Map rawRef = (Map) raw.get("reference"); + assertThat(rawRef.get("selenium/standalone-firefox:latest")).isEqualTo(true); - return new HttpResponse() - .addHeader("Content-Type", "application/json") - .setContent( - utf8String( - "[{\"Containers\":-1,\"Created\":1581716253," - + "\"Id\":\"sha256:bc24341497a00a3afbf04c518cb4bf98834d933ae331d1c5d3cd6f52c079049e\"," - + "\"Labels\":{\"authors\":\"SeleniumHQ\"},\"ParentId\":\"\"," - + "\"RepoDigests\":null," - + "\"RepoTags\":[\"selenium/standalone-firefox:latest\"]," - + "\"SharedSize\":-1,\"Size\":765131593,\"VirtualSize\":765131593}]")); - } catch (UnsupportedEncodingException ignore) { - return null; - } + return new HttpResponse() + .addHeader("Content-Type", "application/json") + .setContent( + utf8String( + "[{\"Containers\":-1,\"Created\":1581716253," + + "\"Id\":\"sha256:bc24341497a00a3afbf04c518cb4bf98834d933ae331d1c5d3cd6f52c079049e\"," + + "\"Labels\":{\"authors\":\"SeleniumHQ\"},\"ParentId\":\"\"," + + "\"RepoDigests\":null," + + "\"RepoTags\":[\"selenium/standalone-firefox:latest\"]," + + "\"SharedSize\":-1,\"Size\":765131593,\"VirtualSize\":765131593}]")); }; Reference reference = Reference.parse("selenium/standalone-firefox:latest"); diff --git a/java/test/org/openqa/selenium/grid/MainTest.java b/java/test/org/openqa/selenium/grid/MainTest.java index 26558dcbc6086..0aeb4ca1c01f9 100644 --- a/java/test/org/openqa/selenium/grid/MainTest.java +++ b/java/test/org/openqa/selenium/grid/MainTest.java @@ -38,11 +38,7 @@ public void init() { } private PrintStream toPrintStream(ByteArrayOutputStream baos) { - try { - return new PrintStream(baos, true, StandardCharsets.UTF_8.name()); - } catch (UnsupportedEncodingException e) { - throw new RuntimeException(e); - } + return new PrintStream(baos, true, StandardCharsets.UTF_8); } @Test diff --git a/java/test/org/openqa/selenium/remote/http/FormEncodedDataTest.java b/java/test/org/openqa/selenium/remote/http/FormEncodedDataTest.java index e165f602ea2d1..6a38b7e5beeb7 100644 --- a/java/test/org/openqa/selenium/remote/http/FormEncodedDataTest.java +++ b/java/test/org/openqa/selenium/remote/http/FormEncodedDataTest.java @@ -133,15 +133,11 @@ private HttpRequest createRequest(String key, String value, String... others) { if (!isFirst) { content.append("&"); } - try { - content.append(URLEncoder.encode(iterator.next(), UTF_8.toString())); - - String next = iterator.next(); - if (next != null) { - content.append("=").append(URLEncoder.encode(next, UTF_8.toString())); - } - } catch (UnsupportedEncodingException e) { - fail(e.getMessage()); + content.append(URLEncoder.encode(iterator.next(), UTF_8)); + + String next = iterator.next(); + if (next != null) { + content.append("=").append(URLEncoder.encode(next, UTF_8)); } if (isFirst) { isFirst = false; From 56a1bd209019ac7812cea4532909f2e3c4b3f45a Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 23 Jun 2024 15:38:12 +0700 Subject: [PATCH 2/4] replaced for loop with enchanced for in DockerOptions --- .../openqa/selenium/grid/node/docker/DockerOptions.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/java/src/org/openqa/selenium/grid/node/docker/DockerOptions.java b/java/src/org/openqa/selenium/grid/node/docker/DockerOptions.java index d5bff8e52725b..73d2bc005ab29 100644 --- a/java/src/org/openqa/selenium/grid/node/docker/DockerOptions.java +++ b/java/src/org/openqa/selenium/grid/node/docker/DockerOptions.java @@ -207,15 +207,15 @@ protected List getDevicesMapping() { config.getAll(DOCKER_SECTION, "devices").orElseGet(Collections::emptyList); List deviceMapping = new ArrayList<>(); - for (int i = 0; i < devices.size(); i++) { - String deviceMappingDefined = devices.get(i).trim(); + for (String device : devices) { + String deviceMappingDefined = device.trim(); Matcher matcher = - linuxDeviceMappingWithDefaultPermissionsPattern.matcher(deviceMappingDefined); + linuxDeviceMappingWithDefaultPermissionsPattern.matcher(deviceMappingDefined); if (matcher.matches()) { deviceMapping.add(device(matcher.group(1), matcher.group(2), null)); } else if ((matcher = linuxDeviceMappingWithPermissionsPattern.matcher(deviceMappingDefined)) - .matches()) { + .matches()) { deviceMapping.add(device(matcher.group(1), matcher.group(2), matcher.group(3))); } } From da9dbdaf2ce9b66d353294cbd9ac8289f0f3e9fd Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 23 Jun 2024 17:20:20 +0700 Subject: [PATCH 3/4] removed unnecessary unboxing in test noErrorNoCry --- .../selenium/remote/codec/w3c/W3CHttpResponseCodecTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/test/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodecTest.java b/java/test/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodecTest.java index df480c356a99c..b7d1e846b1674 100644 --- a/java/test/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodecTest.java +++ b/java/test/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodecTest.java @@ -52,7 +52,7 @@ void noErrorNoCry() { Response decoded = new W3CHttpResponseCodec().decode(response); - assertThat(decoded.getStatus().intValue()).isEqualTo(ErrorCodes.SUCCESS); + assertThat(decoded.getStatus()).isEqualTo(ErrorCodes.SUCCESS); assertThat(decoded.getState()).isEqualTo("success"); assertThat(decoded.getValue()).isEqualTo("cheese"); } From e69bec072bccb3ffe64964bcd5a8f55f9c7dd1e3 Mon Sep 17 00:00:00 2001 From: Alex Date: Mon, 1 Jul 2024 21:10:26 +0700 Subject: [PATCH 4/4] applied format.sh --- .../org/openqa/selenium/grid/node/docker/DockerOptions.java | 4 ++-- java/src/org/openqa/selenium/net/Urls.java | 1 - java/test/org/openqa/selenium/ReferrerTest.java | 1 - .../test/org/openqa/selenium/docker/v1_41/ListImagesTest.java | 1 - java/test/org/openqa/selenium/grid/MainTest.java | 1 - .../org/openqa/selenium/remote/http/FormEncodedDataTest.java | 1 - 6 files changed, 2 insertions(+), 7 deletions(-) diff --git a/java/src/org/openqa/selenium/grid/node/docker/DockerOptions.java b/java/src/org/openqa/selenium/grid/node/docker/DockerOptions.java index 73d2bc005ab29..8c752c8ae39fd 100644 --- a/java/src/org/openqa/selenium/grid/node/docker/DockerOptions.java +++ b/java/src/org/openqa/selenium/grid/node/docker/DockerOptions.java @@ -210,12 +210,12 @@ protected List getDevicesMapping() { for (String device : devices) { String deviceMappingDefined = device.trim(); Matcher matcher = - linuxDeviceMappingWithDefaultPermissionsPattern.matcher(deviceMappingDefined); + linuxDeviceMappingWithDefaultPermissionsPattern.matcher(deviceMappingDefined); if (matcher.matches()) { deviceMapping.add(device(matcher.group(1), matcher.group(2), null)); } else if ((matcher = linuxDeviceMappingWithPermissionsPattern.matcher(deviceMappingDefined)) - .matches()) { + .matches()) { deviceMapping.add(device(matcher.group(1), matcher.group(2), matcher.group(3))); } } diff --git a/java/src/org/openqa/selenium/net/Urls.java b/java/src/org/openqa/selenium/net/Urls.java index 0c6ef75dd3c26..3981aa4dbdb98 100644 --- a/java/src/org/openqa/selenium/net/Urls.java +++ b/java/src/org/openqa/selenium/net/Urls.java @@ -19,7 +19,6 @@ import java.io.IOException; import java.io.UncheckedIOException; -import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.net.URI; import java.net.URISyntaxException; diff --git a/java/test/org/openqa/selenium/ReferrerTest.java b/java/test/org/openqa/selenium/ReferrerTest.java index 75c41f30db311..0fd58d08b02df 100644 --- a/java/test/org/openqa/selenium/ReferrerTest.java +++ b/java/test/org/openqa/selenium/ReferrerTest.java @@ -31,7 +31,6 @@ import com.google.common.net.HostAndPort; import java.io.IOException; import java.io.UncheckedIOException; -import java.io.UnsupportedEncodingException; import java.net.URI; import java.net.URLEncoder; import java.nio.file.Files; diff --git a/java/test/org/openqa/selenium/docker/v1_41/ListImagesTest.java b/java/test/org/openqa/selenium/docker/v1_41/ListImagesTest.java index 6cdb9ded76740..f84d0122f5f60 100644 --- a/java/test/org/openqa/selenium/docker/v1_41/ListImagesTest.java +++ b/java/test/org/openqa/selenium/docker/v1_41/ListImagesTest.java @@ -21,7 +21,6 @@ import static org.openqa.selenium.json.Json.MAP_TYPE; import static org.openqa.selenium.remote.http.Contents.utf8String; -import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.nio.charset.StandardCharsets; import java.util.Map; diff --git a/java/test/org/openqa/selenium/grid/MainTest.java b/java/test/org/openqa/selenium/grid/MainTest.java index 0aeb4ca1c01f9..aabe07c74d84c 100644 --- a/java/test/org/openqa/selenium/grid/MainTest.java +++ b/java/test/org/openqa/selenium/grid/MainTest.java @@ -21,7 +21,6 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; -import java.io.UnsupportedEncodingException; import java.nio.charset.StandardCharsets; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/java/test/org/openqa/selenium/remote/http/FormEncodedDataTest.java b/java/test/org/openqa/selenium/remote/http/FormEncodedDataTest.java index 6a38b7e5beeb7..063446a56c624 100644 --- a/java/test/org/openqa/selenium/remote/http/FormEncodedDataTest.java +++ b/java/test/org/openqa/selenium/remote/http/FormEncodedDataTest.java @@ -27,7 +27,6 @@ import com.google.common.collect.ImmutableMap; import com.google.common.net.MediaType; -import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.ArrayList; import java.util.Arrays;