Skip to content

Commit 57635e1

Browse files
committed
Add tests for escaping URLs
1 parent ee23d22 commit 57635e1

File tree

3 files changed

+29
-1
lines changed

3 files changed

+29
-1
lines changed

src/test/fixtures/outputs/url.conf

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# --- START CODER JETBRAINS test.coder.invalid
2+
Host coder-jetbrains--url--test.coder.invalid
3+
ProxyCommand /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config --url "https://test.coder.invalid?foo=bar&baz=qux" ssh --stdio --usage-app=jetbrains url
4+
ConnectTimeout 0
5+
StrictHostKeyChecking no
6+
UserKnownHostsFile /dev/null
7+
LogLevel ERROR
8+
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
9+
Host coder-jetbrains--url--test.coder.invalid--bg
10+
ProxyCommand /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config --url "https://test.coder.invalid?foo=bar&baz=qux" ssh --stdio --usage-app=disable url
11+
ConnectTimeout 0
12+
StrictHostKeyChecking no
13+
UserKnownHostsFile /dev/null
14+
LogLevel ERROR
15+
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
16+
# --- END CODER JETBRAINS test.coder.invalid

src/test/kotlin/com/coder/gateway/cli/CoderCLIManagerTest.kt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,7 @@ internal class CoderCLIManagerTest {
303303
val extraConfig: String = "",
304304
val env: Environment = Environment(),
305305
val sshLogDirectory: Path? = null,
306+
val url: URL? = null
306307
)
307308

308309
@Test
@@ -390,6 +391,13 @@ internal class CoderCLIManagerTest {
390391
"blank",
391392
sshLogDirectory = tmpdir.resolve("ssh-logs"),
392393
),
394+
SSHTest(
395+
listOf("url"),
396+
input = null,
397+
output = "url",
398+
remove = "blank",
399+
url = URL("https://test.coder.invalid?foo=bar&baz=qux"),
400+
),
393401
)
394402

395403
val newlineRe = "\r?\n".toRegex()
@@ -408,7 +416,7 @@ internal class CoderCLIManagerTest {
408416
env = it.env,
409417
)
410418

411-
val ccm = CoderCLIManager(URL("https://test.coder.invalid"), settings)
419+
val ccm = CoderCLIManager(it.url ?: URL("https://test.coder.invalid"), settings)
412420

413421
// Input is the configuration that we start with, if any.
414422
if (it.input != null) {

src/test/kotlin/com/coder/gateway/util/EscapeTest.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ internal class EscapeTest {
1515
"""C:\echo "hello world"""" to """"C:\echo \"hello world\""""",
1616
"""C:\"no"\"spaces"""" to """C:\\"no\"\\"spaces\"""",
1717
""""C:\Program Files\HeaderCommand.exe" --flag""" to """"\"C:\Program Files\HeaderCommand.exe\" --flag"""",
18+
"https://coder.com" to """https://coder.com""",
19+
"https://coder.com/?question" to """"https://coder.com/?question"""",
20+
"https://coder.com/&ampersand" to """"https://coder.com/&ampersand"""",
21+
"https://coder.com/?with&both" to """"https://coder.com/?with&both"""",
1822
)
1923
tests.forEach {
2024
assertEquals(it.value, escape(it.key))

0 commit comments

Comments
 (0)