Skip to content

Commit

Permalink
[java] Consistent UTF-8 Encoding and Code Enhancements (#14218)
Browse files Browse the repository at this point in the history
* made the use of UTF8 encoding consistent throughout

* replaced for loop with enchanced for in DockerOptions

* removed unnecessary unboxing in test noErrorNoCry

* applied format.sh

---------

Co-authored-by: Diego Molina <[email protected]>
  • Loading branch information
iampopovich and diemol authored Jul 18, 2024
1 parent 72e3a61 commit f3724e6
Show file tree
Hide file tree
Showing 9 changed files with 29 additions and 56 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -207,8 +207,8 @@ protected List<Device> getDevicesMapping() {
config.getAll(DOCKER_SECTION, "devices").orElseGet(Collections::emptyList);

List<Device> 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);

Expand Down
8 changes: 2 additions & 6 deletions java/src/org/openqa/selenium/net/Urls.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,12 @@

import java.io.IOException;
import java.io.UncheckedIOException;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URI;
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;

Expand All @@ -42,11 +42,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) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
}
7 changes: 1 addition & 6 deletions java/test/org/openqa/selenium/ReferrerTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -169,11 +168,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) {
Expand Down
34 changes: 15 additions & 19 deletions java/test/org/openqa/selenium/docker/v1_41/ListImagesTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@
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;
import java.util.Set;
import org.junit.jupiter.api.Test;
Expand All @@ -41,26 +41,22 @@ void shouldReturnImageIfTagIsPresent() {
HttpHandler handler =
req -> {
String filters = req.getQueryParameter("filters");
try {
String decoded = URLDecoder.decode(filters, "UTF-8");
Map<String, Object> raw = new Json().toType(decoded, MAP_TYPE);
String decoded = URLDecoder.decode(filters, StandardCharsets.UTF_8);
Map<String, Object> 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");
Expand Down
7 changes: 1 addition & 6 deletions java/test/org/openqa/selenium/grid/MainTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -38,11 +37,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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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");
}
Expand Down
15 changes: 5 additions & 10 deletions java/test/org/openqa/selenium/remote/http/FormEncodedDataTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -133,15 +132,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;
Expand Down

0 comments on commit f3724e6

Please sign in to comment.