MCPcopy
hub / github.com/coredns/coredns / TestHandler

Function TestHandler

plugin/template/template_test.go:19–533  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

17)
18
19func TestHandler(t *testing.T) {
20 exampleDomainATemplate := template{
21 regex: []*regexp.Regexp{regexp.MustCompile("(^|[.])ip-10-(?P<b>[0-9]*)-(?P<c>[0-9]*)-(?P<d>[0-9]*)[.]example[.]$")},
22 answer: []*gotmpl.Template{gotmpl.Must(newTemplate("answer", "{{ .Name }} 60 IN A 10.{{ .Group.b }}.{{ .Group.c }}.{{ .Group.d }}"))},
23 qclass: dns.ClassANY,
24 qtype: dns.TypeANY,
25 fall: fall.Root,
26 zones: []string{"."},
27 }
28 exampleDomainAParseIntTemplate := template{
29 regex: []*regexp.Regexp{regexp.MustCompile("^ip0a(?P<b>[a-f0-9]{2})(?P<c>[a-f0-9]{2})(?P<d>[a-f0-9]{2})[.]example[.]$")},
30 answer: []*gotmpl.Template{gotmpl.Must(newTemplate("answer", "{{ .Name }} 60 IN A 10.{{ parseInt .Group.b 16 8 }}.{{ parseInt .Group.c 16 8 }}.{{ parseInt .Group.d 16 8 }}"))},
31 qclass: dns.ClassANY,
32 qtype: dns.TypeANY,
33 fall: fall.Root,
34 zones: []string{"."},
35 }
36 exampleDomainIPATemplate := template{
37 regex: []*regexp.Regexp{regexp.MustCompile(".*")},
38 answer: []*gotmpl.Template{gotmpl.Must(newTemplate("answer", "{{ .Name }} 60 IN A {{ .Remote }}"))},
39 qclass: dns.ClassINET,
40 qtype: dns.TypeA,
41 fall: fall.Root,
42 zones: []string{"."},
43 }
44 exampleDomainANSTemplate := template{
45 regex: []*regexp.Regexp{regexp.MustCompile("(^|[.])ip-10-(?P<b>[0-9]*)-(?P<c>[0-9]*)-(?P<d>[0-9]*)[.]example[.]$")},
46 answer: []*gotmpl.Template{gotmpl.Must(newTemplate("answer", "{{ .Name }} 60 IN A 10.{{ .Group.b }}.{{ .Group.c }}.{{ .Group.d }}"))},
47 additional: []*gotmpl.Template{gotmpl.Must(newTemplate("additional", "ns0.example. IN A 203.0.113.8"))},
48 authority: []*gotmpl.Template{gotmpl.Must(newTemplate("authority", "example. IN NS ns0.example.com."))},
49 qclass: dns.ClassANY,
50 qtype: dns.TypeANY,
51 fall: fall.Root,
52 zones: []string{"."},
53 }
54 exampleDomainMXTemplate := template{
55 regex: []*regexp.Regexp{regexp.MustCompile("(^|[.])ip-10-(?P<b>[0-9]*)-(?P<c>[0-9]*)-(?P<d>[0-9]*)[.]example[.]$")},
56 answer: []*gotmpl.Template{gotmpl.Must(newTemplate("answer", "{{ .Name }} 60 MX 10 {{ .Name }}"))},
57 additional: []*gotmpl.Template{gotmpl.Must(newTemplate("additional", "{{ .Name }} 60 IN A 10.{{ .Group.b }}.{{ .Group.c }}.{{ .Group.d }}"))},
58 qclass: dns.ClassANY,
59 qtype: dns.TypeANY,
60 fall: fall.Root,
61 zones: []string{"."},
62 }
63 invalidDomainTemplate := template{
64 regex: []*regexp.Regexp{regexp.MustCompile("[.]invalid[.]$")},
65 rcode: dns.RcodeNameError,
66 answer: []*gotmpl.Template{gotmpl.Must(newTemplate("answer", "invalid. 60 {{ .Class }} SOA a.invalid. b.invalid. (1 60 60 60 60)"))},
67 qclass: dns.ClassANY,
68 qtype: dns.TypeANY,
69 fall: fall.Root,
70 zones: []string{"."},
71 }
72 rcodeServfailTemplate := template{
73 regex: []*regexp.Regexp{regexp.MustCompile(".*")},
74 rcode: dns.RcodeServerFailure,
75 qclass: dns.ClassANY,
76 qtype: dns.TypeANY,

Callers

nothing calls this directly

Calls 9

ServeDNSMethod · 0.95
NextHandlerFunction · 0.92
NewRecorderFunction · 0.92
ContextWithMetadataFunction · 0.92
SetValueFuncFunction · 0.92
newTemplateFunction · 0.85
ErrorfMethod · 0.65
StringMethod · 0.65
ErrorMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…