aboutsummaryrefslogtreecommitdiff
path: root/plugin/rewrite/setup_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/rewrite/setup_test.go')
-rw-r--r--plugin/rewrite/setup_test.go79
1 files changed, 32 insertions, 47 deletions
diff --git a/plugin/rewrite/setup_test.go b/plugin/rewrite/setup_test.go
index 00808bd9c..128f3d11c 100644
--- a/plugin/rewrite/setup_test.go
+++ b/plugin/rewrite/setup_test.go
@@ -8,60 +8,45 @@ import (
)
func TestParse(t *testing.T) {
- c := caddy.NewTestController("dns", `rewrite`)
- _, err := rewriteParse(c)
- if err == nil {
- t.Errorf("Expected error but found nil for `rewrite`")
- }
- c = caddy.NewTestController("dns", `rewrite name`)
- _, err = rewriteParse(c)
- if err == nil {
- t.Errorf("Expected error but found nil for `rewrite name`")
- }
- c = caddy.NewTestController("dns", `rewrite name a.com b.com`)
- _, err = rewriteParse(c)
- if err != nil {
- t.Errorf("Expected success but found %s for `rewrite name a.com b.com`", err)
- }
- c = caddy.NewTestController("dns",
- `rewrite stop {
+ tests := []struct {
+ inputFileRules string
+ shouldErr bool
+ errContains string
+ }{
+ // parse errors
+ {`rewrite`, true, ""},
+ {`rewrite name`, true, ""},
+ {`rewrite name a.com b.com`, false, ""},
+ {`rewrite stop {
name regex foo bar
answer name bar foo
-}`)
- _, err = rewriteParse(c)
- if err != nil {
- t.Errorf("Expected success but found %s for valid response rewrite", err)
- }
-
- c = caddy.NewTestController("dns", `rewrite stop name regex foo bar answer name bar foo`)
- _, err = rewriteParse(c)
- if err != nil {
- t.Errorf("Expected success but found %s for valid response rewrite", err)
- }
-
- c = caddy.NewTestController("dns",
- `rewrite stop {
+}`, false, ""},
+ {`rewrite stop name regex foo bar answer name bar foo`, false, ""},
+ {`rewrite stop {
name regex foo bar
answer name bar foo
name baz
-}`)
- _, err = rewriteParse(c)
- if err == nil {
- t.Errorf("Expected error but got success for invalid response rewrite")
- } else if !strings.Contains(err.Error(), "2 arguments required") {
- t.Errorf("Got wrong error for invalid response rewrite: %v", err.Error())
- }
-
- c = caddy.NewTestController("dns",
- `rewrite stop {
+}`, true, "2 arguments required"},
+ {`rewrite stop {
answer name bar foo
name regex foo bar
-}`)
- _, err = rewriteParse(c)
- if err == nil {
- t.Errorf("Expected error but got success for invalid response rewrite")
- } else if !strings.Contains(err.Error(), "must begin with a name rule") {
- t.Errorf("Got wrong error for invalid response rewrite: %v", err.Error())
+}`, true, "must begin with a name rule"},
+ {`rewrite stop`, true, ""},
+ }
+
+ for i, test := range tests {
+ c := caddy.NewTestController("dns", test.inputFileRules)
+ _, err := rewriteParse(c)
+ if err == nil && test.shouldErr {
+ t.Fatalf("Test %d expected errors, but got no error\n---\n%s", i, test.inputFileRules)
+ } else if err != nil && !test.shouldErr {
+ t.Fatalf("Test %d expected no errors, but got '%v'\n---\n%s", i, err, test.inputFileRules)
+ }
+
+ if err != nil && test.errContains != "" && !strings.Contains(err.Error(), test.errContains) {
+ t.Errorf("Test %d got wrong error for invalid response rewrite: '%v'\n---\n%s", i, err.Error(), test.inputFileRules)
+ }
}
+
}