aboutsummaryrefslogtreecommitdiff
path: root/plugin/kubernetes/setup_transfer_test.go
diff options
context:
space:
mode:
authorGravatar Chris O'Haver <cohaver@infoblox.com> 2018-11-13 18:25:30 -0500
committerGravatar Miek Gieben <miek@miek.nl> 2018-11-13 23:25:30 +0000
commit7aafbe24cac838938a8fb0dbfe08d4870ae52d4b (patch)
tree7d8ee501a6dcc47ce950fb2d8620780fdf0ee6ea /plugin/kubernetes/setup_transfer_test.go
parent4d52a71f0918eb6f5ebb9e2fc64a6473c1a6e72c (diff)
downloadcoredns-7aafbe24cac838938a8fb0dbfe08d4870ae52d4b.tar.gz
coredns-7aafbe24cac838938a8fb0dbfe08d4870ae52d4b.tar.zst
coredns-7aafbe24cac838938a8fb0dbfe08d4870ae52d4b.zip
plugin/kubernetes: Validate transfers are allowed (#2292)
* check allowed transfers * add tests for parsing, and comment about refactor
Diffstat (limited to 'plugin/kubernetes/setup_transfer_test.go')
-rw-r--r--plugin/kubernetes/setup_transfer_test.go47
1 files changed, 47 insertions, 0 deletions
diff --git a/plugin/kubernetes/setup_transfer_test.go b/plugin/kubernetes/setup_transfer_test.go
new file mode 100644
index 000000000..6a375b69f
--- /dev/null
+++ b/plugin/kubernetes/setup_transfer_test.go
@@ -0,0 +1,47 @@
+package kubernetes
+
+import (
+ "testing"
+
+ "github.com/mholt/caddy"
+)
+
+func TestKubernetesParseTransfer(t *testing.T) {
+ tests := []struct {
+ input string // Corefile data as string
+ expected string
+ shouldErr bool
+ }{
+ {`kubernetes cluster.local {
+ transfer to 1.2.3.4
+ }`, "1.2.3.4:53", false},
+ {`kubernetes cluster.local {
+ transfer to 1.2.3.4:53
+ }`, "1.2.3.4:53", false},
+ {`kubernetes cluster.local {
+ transfer to *
+ }`, "*", false},
+ {`kubernetes cluster.local {
+ transfer
+ }`, "", true},
+ }
+
+ for i, tc := range tests {
+ c := caddy.NewTestController("dns", tc.input)
+ k, err := kubernetesParse(c)
+ if err != nil && !tc.shouldErr {
+ t.Fatalf("Test %d: Expected no error, got %q", i, err)
+ }
+ if err == nil && tc.shouldErr {
+ t.Fatalf("Test %d: Expected error, got none", i)
+ }
+ if err != nil && tc.shouldErr {
+ // input should error
+ continue
+ }
+
+ if k.TransferTo[0] != tc.expected {
+ t.Errorf("Test %d: Expected Transfer To to be %s, got %s", i, tc.expected, k.TransferTo[0])
+ }
+ }
+}