summaryrefslogtreecommitdiff
path: root/caddyconfig/httpcaddyfile/builtins_test.go
diff options
context:
space:
mode:
authorTyler Kropp <github@tylerkropp.xyz>2021-01-28 14:59:50 -0500
committerGitHub <noreply@github.com>2021-01-28 12:59:50 -0700
commitbef80cd806eadb3555487b624849149b46199c3f (patch)
treefb401251cc769a236a8eacf2192ebc77b4e90eb7 /caddyconfig/httpcaddyfile/builtins_test.go
parente2c5c28597e6a8c5e7ef48fde88f0b7d740d9586 (diff)
caddyhttp: Fix redir html status code, improve flow (#3987)
* Fix html redir code, improve flow * Fix integer check error and add tests
Diffstat (limited to 'caddyconfig/httpcaddyfile/builtins_test.go')
-rw-r--r--caddyconfig/httpcaddyfile/builtins_test.go122
1 files changed, 122 insertions, 0 deletions
diff --git a/caddyconfig/httpcaddyfile/builtins_test.go b/caddyconfig/httpcaddyfile/builtins_test.go
index c06dd23..09bb4ed 100644
--- a/caddyconfig/httpcaddyfile/builtins_test.go
+++ b/caddyconfig/httpcaddyfile/builtins_test.go
@@ -51,3 +51,125 @@ func TestLogDirectiveSyntax(t *testing.T) {
}
}
}
+
+func TestRedirDirectiveSyntax(t *testing.T) {
+ for i, tc := range []struct {
+ input string
+ expectError bool
+ }{
+ {
+ input: `:8080 {
+ redir :8081
+ }`,
+ expectError: false,
+ },
+ {
+ input: `:8080 {
+ redir * :8081
+ }`,
+ expectError: false,
+ },
+ {
+ input: `:8080 {
+ redir /api/* :8081 300
+ }`,
+ expectError: false,
+ },
+ {
+ input: `:8080 {
+ redir :8081 300
+ }`,
+ expectError: false,
+ },
+ {
+ input: `:8080 {
+ redir /api/* :8081 399
+ }`,
+ expectError: false,
+ },
+ {
+ input: `:8080 {
+ redir :8081 399
+ }`,
+ expectError: false,
+ },
+ {
+ input: `:8080 {
+ redir /old.html /new.html
+ }`,
+ expectError: false,
+ },
+ {
+ input: `:8080 {
+ redir /old.html /new.html temporary
+ }`,
+ expectError: false,
+ },
+ {
+ input: `:8080 {
+ redir https://example.com{uri} permanent
+ }`,
+ expectError: false,
+ },
+ {
+ input: `:8080 {
+ redir /old.html /new.html permanent
+ }`,
+ expectError: false,
+ },
+ {
+ input: `:8080 {
+ redir /old.html /new.html html
+ }`,
+ expectError: false,
+ },
+ {
+ input: `:8080 {
+ redir /old.html /new.html htlm
+ }`,
+ expectError: true,
+ },
+ {
+ input: `:8080 {
+ redir * :8081 200
+ }`,
+ expectError: true,
+ },
+ {
+ input: `:8080 {
+ redir * :8081 400
+ }`,
+ expectError: true,
+ },
+ {
+ input: `:8080 {
+ redir * :8081 temp
+ }`,
+ expectError: true,
+ },
+ {
+ input: `:8080 {
+ redir * :8081 perm
+ }`,
+ expectError: true,
+ },
+ {
+ input: `:8080 {
+ redir * :8081 php
+ }`,
+ expectError: true,
+ },
+ } {
+
+ adapter := caddyfile.Adapter{
+ ServerType: ServerType{},
+ }
+
+ _, _, err := adapter.Adapt([]byte(tc.input), nil)
+
+ if err != nil != tc.expectError {
+ t.Errorf("Test %d error expectation failed Expected: %v, got %s", i, tc.expectError, err)
+ continue
+ }
+ }
+}