From fe2d09de231f561ce51cd107c37d0c6da848b12a Mon Sep 17 00:00:00 2001 From: Lossy Date: Tue, 28 Apr 2026 22:01:26 -0500 Subject: [PATCH] Add test for recent pr about leading '?' strip. --- .../in/dragonbra/javasteam/steam/cdn/Client.kt | 3 ++- .../javasteam/steam/cdn/CDNClientTest.java | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/main/java/in/dragonbra/javasteam/steam/cdn/Client.kt b/src/main/java/in/dragonbra/javasteam/steam/cdn/Client.kt index dbcedde0..761a03f5 100644 --- a/src/main/java/in/dragonbra/javasteam/steam/cdn/Client.kt +++ b/src/main/java/in/dragonbra/javasteam/steam/cdn/Client.kt @@ -38,7 +38,8 @@ class Client(steamClient: SteamClient) : Closeable { private val logger: Logger = LogManager.getLogger(Client::class.java) - private fun buildCommand( + @JvmStatic + fun buildCommand( server: Server, command: String, query: String? = null, diff --git a/src/test/java/in/dragonbra/javasteam/steam/cdn/CDNClientTest.java b/src/test/java/in/dragonbra/javasteam/steam/cdn/CDNClientTest.java index 2bf4ef4a..22b0d7e7 100644 --- a/src/test/java/in/dragonbra/javasteam/steam/cdn/CDNClientTest.java +++ b/src/test/java/in/dragonbra/javasteam/steam/cdn/CDNClientTest.java @@ -176,4 +176,21 @@ public void testPrivateIPv6Addresses(String ipAddress, boolean expected) throws boolean result = ClientLancache.isPrivateAddress(address); Assertions.assertEquals(expected, result); } + + @ParameterizedTest + @CsvSource({ + "token=abc, token, ", // normal, no change + "?token=abc, token, ?token", // leading ? stripped + "??token=abc, token, ??token", // multiple leading ? stripped + "?token=abc&foo=bar, token, ?token", // leading ? with multiple params + }) + public void buildCommandStripsLeadingQuestionMarkFromQueryString(String query, String expectedKey, String unexpectedKey) { + var server = Server.fromHostAndPort("localhost", 80); + HttpUrl url = Client.buildCommand(server, "depot/731/manifest", query, null); + + Assertions.assertNotNull(url.queryParameter(expectedKey)); + if (unexpectedKey != null) { + Assertions.assertNull(url.queryParameter(unexpectedKey)); + } + } }