Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Add tests for escaping URLs
  • Loading branch information
code-asher committed Sep 13, 2024
commit 57635e1ba4666da5dbbcca67c2aa86db1d2546cc
16 changes: 16 additions & 0 deletions src/test/fixtures/outputs/url.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# --- START CODER JETBRAINS test.coder.invalid
Host coder-jetbrains--url--test.coder.invalid
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
ConnectTimeout 0
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
Host coder-jetbrains--url--test.coder.invalid--bg
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
ConnectTimeout 0
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
# --- END CODER JETBRAINS test.coder.invalid
10 changes: 9 additions & 1 deletion src/test/kotlin/com/coder/gateway/cli/CoderCLIManagerTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -303,6 +303,7 @@ internal class CoderCLIManagerTest {
val extraConfig: String = "",
val env: Environment = Environment(),
val sshLogDirectory: Path? = null,
val url: URL? = null
)

@Test
Expand Down Expand Up @@ -390,6 +391,13 @@ internal class CoderCLIManagerTest {
"blank",
sshLogDirectory = tmpdir.resolve("ssh-logs"),
),
SSHTest(
listOf("url"),
input = null,
output = "url",
remove = "blank",
url = URL("https://test.coder.invalid?foo=bar&baz=qux"),
),
)

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

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

// Input is the configuration that we start with, if any.
if (it.input != null) {
Expand Down
4 changes: 4 additions & 0 deletions src/test/kotlin/com/coder/gateway/util/EscapeTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ internal class EscapeTest {
"""C:\echo "hello world"""" to """"C:\echo \"hello world\""""",
"""C:\"no"\"spaces"""" to """C:\\"no\"\\"spaces\"""",
""""C:\Program Files\HeaderCommand.exe" --flag""" to """"\"C:\Program Files\HeaderCommand.exe\" --flag"""",
"https://coder.com" to """https://coder.com""",
"https://coder.com/?question" to """"https://coder.com/?question"""",
"https://coder.com/&ampersand" to """"https://coder.com/&ampersand"""",
"https://coder.com/?with&both" to """"https://coder.com/?with&both"""",
)
tests.forEach {
assertEquals(it.value, escape(it.key))
Expand Down
Loading