From aa1f46df054e6efbccb8abcdfeb04fa51d514ed5 Mon Sep 17 00:00:00 2001 From: labkey-tchad Date: Thu, 5 Dec 2024 14:49:23 -0800 Subject: [PATCH 1/2] Don't encode parameters passed to WebTestHelper.buildUrl --- src/org/labkey/test/util/APIContainerHelper.java | 10 ++++------ src/org/labkey/test/util/Crawler.java | 9 ++++++--- src/org/labkey/test/util/EscapeUtil.java | 4 +++- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/org/labkey/test/util/APIContainerHelper.java b/src/org/labkey/test/util/APIContainerHelper.java index 676e4b4cc9..e2fde4b495 100644 --- a/src/org/labkey/test/util/APIContainerHelper.java +++ b/src/org/labkey/test/util/APIContainerHelper.java @@ -31,8 +31,6 @@ import java.io.IOException; import java.net.SocketTimeoutException; -import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.Map; @@ -197,10 +195,10 @@ public void renameFolder(String project, String folderName, String newFolderName @LogMethod public void renameFolder(@LoggedParam String containerPath, @LoggedParam String newName, final boolean createAlias) { - Map params = new HashMap<>(); - params.put("name", URLEncoder.encode(newName, StandardCharsets.UTF_8)); - params.put("addAlias", String.valueOf(createAlias)); - params.put("titleSameAsName", String.valueOf(true)); + Map params = new HashMap<>(); + params.put("name", newName); + params.put("addAlias", createAlias); + params.put("titleSameAsName", true); SimpleHttpRequest simpleHttpRequest = new SimpleHttpRequest(WebTestHelper.buildURL("admin", containerPath, "renameFolder", params), "POST"); simpleHttpRequest.copySession(_test.getDriver()); diff --git a/src/org/labkey/test/util/Crawler.java b/src/org/labkey/test/util/Crawler.java index 8a698455aa..2cfcfafc43 100644 --- a/src/org/labkey/test/util/Crawler.java +++ b/src/org/labkey/test/util/Crawler.java @@ -1430,9 +1430,12 @@ String queryStringFromEntries(List> list) { if (!sb.isEmpty()) sb.append('&'); - sb.append(URLEncoder.encode(e.getKey(), StandardCharsets.UTF_8)); - sb.append('='); - sb.append(null==e.getValue()?"":URLEncoder.encode(e.getValue(), StandardCharsets.UTF_8)); + sb.append(EscapeUtil.encode(e.getKey())); + if (e.getValue() != null) + { + sb.append('='); + sb.append(EscapeUtil.encode(e.getValue())); + } } ); return sb.toString(); diff --git a/src/org/labkey/test/util/EscapeUtil.java b/src/org/labkey/test/util/EscapeUtil.java index 753f8bc07e..d34cefab3c 100644 --- a/src/org/labkey/test/util/EscapeUtil.java +++ b/src/org/labkey/test/util/EscapeUtil.java @@ -78,7 +78,9 @@ static public String jsString(String s) */ public static String encode(String s) { - return s == null ? "" : URLEncoder.encode(s, StandardCharsets.UTF_8); + return s == null ? "" : URLEncoder.encode(s, StandardCharsets.UTF_8) + // Product often doesn't decode '+' into ' '. "%20" is a more reliable encoding + .replace("+", "%20"); } /** From bcb1d05d9f57194d578c7604492d5553fb090446 Mon Sep 17 00:00:00 2001 From: labkey-tchad Date: Thu, 5 Dec 2024 14:58:09 -0800 Subject: [PATCH 2/2] Unnecessary change --- src/org/labkey/test/util/Crawler.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/org/labkey/test/util/Crawler.java b/src/org/labkey/test/util/Crawler.java index 2cfcfafc43..3e2eb03ba6 100644 --- a/src/org/labkey/test/util/Crawler.java +++ b/src/org/labkey/test/util/Crawler.java @@ -1431,11 +1431,8 @@ String queryStringFromEntries(List> list) if (!sb.isEmpty()) sb.append('&'); sb.append(EscapeUtil.encode(e.getKey())); - if (e.getValue() != null) - { - sb.append('='); - sb.append(EscapeUtil.encode(e.getValue())); - } + sb.append('='); + sb.append(EscapeUtil.encode(e.getValue())); } ); return sb.toString();