Initial commit
This commit is contained in:
commit
1d93a25983
23 changed files with 2654 additions and 0 deletions
81
checker/report_test.go
Normal file
81
checker/report_test.go
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
package checker
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
sdk "git.happydns.org/checker-sdk-go/checker"
|
||||
)
|
||||
|
||||
func TestReportRenders(t *testing.T) {
|
||||
data := ReverseZoneData{
|
||||
Zone: "1.168.192.in-addr.arpa.",
|
||||
IsReverseZone: true,
|
||||
PTRCount: 3,
|
||||
Entries: []PTREntry{
|
||||
{
|
||||
OwnerName: "10.1.168.192.in-addr.arpa.",
|
||||
ReverseIP: "192.168.1.10",
|
||||
Targets: []string{"mail.example.com."},
|
||||
TargetSyntaxValid: true,
|
||||
ForwardAddresses: []ForwardAddress{{Type: "A", Address: "192.168.1.10"}},
|
||||
ForwardMatch: true,
|
||||
TargetResolves: true,
|
||||
},
|
||||
{
|
||||
OwnerName: "11.1.168.192.in-addr.arpa.",
|
||||
ReverseIP: "192.168.1.11",
|
||||
Targets: []string{"web.example.com."},
|
||||
TargetSyntaxValid: true,
|
||||
ForwardAddresses: []ForwardAddress{{Type: "A", Address: "203.0.113.5"}},
|
||||
ForwardMatch: false,
|
||||
TargetResolves: true,
|
||||
},
|
||||
{
|
||||
OwnerName: "12.1.168.192.in-addr.arpa.",
|
||||
ReverseIP: "192.168.1.12",
|
||||
Targets: []string{"ghost.example.com."},
|
||||
TargetSyntaxValid: true,
|
||||
TargetResolves: false,
|
||||
},
|
||||
},
|
||||
}
|
||||
raw, err := json.Marshal(data)
|
||||
if err != nil {
|
||||
t.Fatalf("marshal: %v", err)
|
||||
}
|
||||
p := &reverseZoneProvider{}
|
||||
html, err := p.GetHTMLReport(sdk.StaticReportContext(raw))
|
||||
if err != nil {
|
||||
t.Fatalf("report: %v", err)
|
||||
}
|
||||
for _, want := range []string{
|
||||
"FCrDNS failures detected",
|
||||
"web.example.com.",
|
||||
"ghost.example.com.",
|
||||
"target unresolved",
|
||||
"FCrDNS mismatch",
|
||||
} {
|
||||
if !strings.Contains(html, want) {
|
||||
t.Errorf("expected report to contain %q\n--- HTML ---\n%s", want, html)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestBuildOwnerName(t *testing.T) {
|
||||
cases := []struct {
|
||||
sub, zone, want string
|
||||
}{
|
||||
{"42", "1.168.192.in-addr.arpa", "42.1.168.192.in-addr.arpa."},
|
||||
{"", "1.168.192.in-addr.arpa", "1.168.192.in-addr.arpa."},
|
||||
{"@", "1.168.192.in-addr.arpa", "1.168.192.in-addr.arpa."},
|
||||
{"1.0", "0.0.10.in-addr.arpa", "1.0.0.0.10.in-addr.arpa."},
|
||||
}
|
||||
for _, c := range cases {
|
||||
got := buildOwnerName(c.sub, c.zone)
|
||||
if got != c.want {
|
||||
t.Errorf("buildOwnerName(%q,%q)=%q, want %q", c.sub, c.zone, got, c.want)
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue