aboutsummaryrefslogtreecommitdiff
path: root/plugin/forward/forward_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/forward/forward_test.go')
-rw-r--r--plugin/forward/forward_test.go42
1 files changed, 42 insertions, 0 deletions
diff --git a/plugin/forward/forward_test.go b/plugin/forward/forward_test.go
index b0ef47ba9..b50f4ff22 100644
--- a/plugin/forward/forward_test.go
+++ b/plugin/forward/forward_test.go
@@ -1,7 +1,13 @@
package forward
import (
+ "strings"
"testing"
+
+ "github.com/coredns/caddy"
+ "github.com/coredns/caddy/caddyfile"
+ "github.com/coredns/coredns/core/dnsserver"
+ "github.com/coredns/coredns/plugin/dnstap"
)
func TestList(t *testing.T) {
@@ -22,3 +28,39 @@ func TestList(t *testing.T) {
}
}
}
+
+func TestSetTapPlugin(t *testing.T) {
+ input := `forward . 127.0.0.1
+ dnstap /tmp/dnstap.sock full
+ dnstap tcp://example.com:6000
+ `
+ stanzas := strings.Split(input, "\n")
+ c := caddy.NewTestController("dns", strings.Join(stanzas[1:], "\n"))
+ dnstapSetup, err := caddy.DirectiveAction("dns", "dnstap")
+ if err != nil {
+ t.Fatal(err)
+ }
+ if err = dnstapSetup(c); err != nil {
+ t.Fatal(err)
+ }
+ c.Dispenser = caddyfile.NewDispenser("", strings.NewReader(stanzas[0]))
+ if err = setup(c); err != nil {
+ t.Fatal(err)
+ }
+ dnsserver.NewServer("", []*dnsserver.Config{dnsserver.GetConfig(c)})
+ f, ok := dnsserver.GetConfig(c).Handler("forward").(*Forward)
+ if !ok {
+ t.Fatal("Expected a forward plugin")
+ }
+ tap, ok := dnsserver.GetConfig(c).Handler("dnstap").(*dnstap.Dnstap)
+ if !ok {
+ t.Fatal("Expected a dnstap plugin")
+ }
+ f.SetTapPlugin(tap)
+ if len(f.tapPlugins) != 2 {
+ t.Fatalf("Expected: 2 results, got: %v", len(f.tapPlugins))
+ }
+ if f.tapPlugins[0] != tap || tap.Next != f.tapPlugins[1] {
+ t.Error("Unexpected order of dnstap plugins")
+ }
+}