Http: do not use escaped Query, because it will break templating (#14146)

This commit is contained in:
Pedro Costa 2024-06-01 17:33:26 +01:00 • committed by GitHub
parent 4b2d7dff45
commit 4f888064d7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 9 additions and 7 deletions

View file

@ -42,7 +42,9 @@ func DefaultScheme(uri, scheme string) string {
}
}
return u.String()
// do not use escaped Query, because it will break templating
res, _ := url.QueryUnescape(u.String())
return res
}
// LocalIPs returns a slice of local IPv4 addresses

View file

@ -18,23 +18,23 @@ func TestDefaultPort(t *testing.T) {
}
func TestDefaultScheme(t *testing.T) {
expect := "http://localhost"
expect := "http://localhost/a={{b}}?a={{b}}"
if uri := DefaultScheme("localhost", "http"); uri != expect {
if uri := DefaultScheme("localhost/a={{b}}?a={{b}}", "http"); uri != expect {
t.Errorf("expected %s, got %s", expect, uri)
}
if uri := DefaultScheme("http://localhost", "http"); uri != expect {
if uri := DefaultScheme("http://localhost/a={{b}}?a={{b}}", "http"); uri != expect {
t.Errorf("expected %s, got %s", expect, uri)
}
if uri := DefaultScheme("http://localhost", "https"); uri != expect {
if uri := DefaultScheme("http://localhost/a={{b}}?a={{b}}", "https"); uri != expect {
t.Errorf("expected %s, got %s", expect, uri)
}
expect = "ws://localhost:8080"
expect = "ws://localhost:8080/a={{b}}?a={{b}}"
if uri := DefaultScheme("localhost:8080", "ws"); uri != expect {
if uri := DefaultScheme("localhost:8080/a={{b}}?a={{b}}", "ws"); uri != expect {
t.Errorf("expected %s, got %s", expect, uri)
}
}