summaryrefslogtreecommitdiff
path: root/modules/caddyhttp/rewrite/rewrite_test.go
diff options
context:
space:
mode:
authorMatthew Holt <mholt@users.noreply.github.com>2020-01-10 16:59:57 -0700
committerMatthew Holt <mholt@users.noreply.github.com>2020-01-10 17:00:57 -0700
commitd418e319ab626e4b7dab676a7db3405d24a4b58c (patch)
treeafb70e96efc72b84cc0566a406ce9f20c7be3711 /modules/caddyhttp/rewrite/rewrite_test.go
parentba514f9660519c0ddee3eefdbe9c9ed4a3ba5c7f (diff)
rewrite: Rename parameters; implement custom query string parser
Our new parser also preserves original parameter order, rather than re-encoding using the std lib (which sorts). The renamed parameters are a breaking change but they're new enough that I don't think anyone is using them.
Diffstat (limited to 'modules/caddyhttp/rewrite/rewrite_test.go')
-rw-r--r--modules/caddyhttp/rewrite/rewrite_test.go22
1 files changed, 13 insertions, 9 deletions
diff --git a/modules/caddyhttp/rewrite/rewrite_test.go b/modules/caddyhttp/rewrite/rewrite_test.go
index 2fb5c66..beff499 100644
--- a/modules/caddyhttp/rewrite/rewrite_test.go
+++ b/modules/caddyhttp/rewrite/rewrite_test.go
@@ -104,7 +104,7 @@ func TestRewrite(t *testing.T) {
expect: newRequest(t, "GET", "/foo?c=d"),
},
{
- rule: Rewrite{URI: "{http.request.uri.path}{http.request.uri.query_string}&c=d"},
+ rule: Rewrite{URI: "{http.request.uri.path}?{http.request.uri.query}&c=d"},
input: newRequest(t, "GET", "/foo"),
expect: newRequest(t, "GET", "/foo?c=d"),
},
@@ -126,7 +126,7 @@ func TestRewrite(t *testing.T) {
{
rule: Rewrite{URI: "/index.php?c=d&{http.request.uri.query}"},
input: newRequest(t, "GET", "/?a=b"),
- expect: newRequest(t, "GET", "/index.php?a=b&c=d"),
+ expect: newRequest(t, "GET", "/index.php?c=d&a=b"),
},
{
rule: Rewrite{URI: "/index.php?{http.request.uri.query}&p={http.request.uri.path}"},
@@ -138,35 +138,40 @@ func TestRewrite(t *testing.T) {
input: newRequest(t, "GET", "/foo/bar?a=b&c=d"),
expect: newRequest(t, "GET", "/foo/bar"),
},
+ {
+ rule: Rewrite{URI: "/foo?{http.request.uri.query}#frag"},
+ input: newRequest(t, "GET", "/foo/bar?a=b"),
+ expect: newRequest(t, "GET", "/foo?a=b#frag"),
+ },
{
- rule: Rewrite{StripPathPrefix: "/prefix"},
+ rule: Rewrite{StripPrefix: "/prefix"},
input: newRequest(t, "GET", "/foo/bar"),
expect: newRequest(t, "GET", "/foo/bar"),
},
{
- rule: Rewrite{StripPathPrefix: "/prefix"},
+ rule: Rewrite{StripPrefix: "/prefix"},
input: newRequest(t, "GET", "/prefix/foo/bar"),
expect: newRequest(t, "GET", "/foo/bar"),
},
{
- rule: Rewrite{StripPathPrefix: "/prefix"},
+ rule: Rewrite{StripPrefix: "/prefix"},
input: newRequest(t, "GET", "/foo/prefix/bar"),
expect: newRequest(t, "GET", "/foo/prefix/bar"),
},
{
- rule: Rewrite{StripPathSuffix: "/suffix"},
+ rule: Rewrite{StripSuffix: "/suffix"},
input: newRequest(t, "GET", "/foo/bar"),
expect: newRequest(t, "GET", "/foo/bar"),
},
{
- rule: Rewrite{StripPathSuffix: "suffix"},
+ rule: Rewrite{StripSuffix: "suffix"},
input: newRequest(t, "GET", "/foo/bar/suffix"),
expect: newRequest(t, "GET", "/foo/bar/"),
},
{
- rule: Rewrite{StripPathSuffix: "/suffix"},
+ rule: Rewrite{StripSuffix: "/suffix"},
input: newRequest(t, "GET", "/foo/suffix/bar"),
expect: newRequest(t, "GET", "/foo/suffix/bar"),
},
@@ -193,7 +198,6 @@ func TestRewrite(t *testing.T) {
// populate the replacer just enough for our tests
repl.Set("http.request.uri.path", tc.input.URL.Path)
repl.Set("http.request.uri.query", tc.input.URL.RawQuery)
- repl.Set("http.request.uri.query_string", "?"+tc.input.URL.RawQuery)
changed := tc.rule.rewrite(tc.input, repl, nil)