diff options
Diffstat (limited to 'plugin/rewrite/setup_test.go')
-rw-r--r-- | plugin/rewrite/setup_test.go | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/plugin/rewrite/setup_test.go b/plugin/rewrite/setup_test.go index 67ef88e18..a8a8349b4 100644 --- a/plugin/rewrite/setup_test.go +++ b/plugin/rewrite/setup_test.go @@ -1,6 +1,7 @@ package rewrite import ( + "strings" "testing" "github.com/mholt/caddy" @@ -22,4 +23,45 @@ func TestParse(t *testing.T) { if err != nil { t.Errorf("Expected success but found %s for `rewrite name a.com b.com`", 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 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 + name baz qux +}`) + _, err = rewriteParse(c) + if err == nil { + t.Errorf("Expected error but got success for invalid response rewrite") + } else if !strings.Contains(err.Error(), "must consist only of") { + t.Errorf("Got wrong error for invalid response rewrite: %v", err.Error()) + } + + c = caddy.NewTestController("dns", + `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()) + } } |