Initial commit
This commit is contained in:
commit
66cf1fc9aa
30 changed files with 2735 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 (
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestDiagnoseAndReportRender(t *testing.T) {
|
||||
d := &BlacklistData{
|
||||
Domain: "example.com",
|
||||
RegisteredDomain: "example.com",
|
||||
CollectedAt: time.Now(),
|
||||
Results: []SourceResult{
|
||||
{
|
||||
SourceID: "dnsbl", SourceName: "Spamhaus DBL",
|
||||
Subject: "dbl.spamhaus.org",
|
||||
Enabled: true, Listed: true, Severity: SeverityCrit,
|
||||
Reasons: []string{"Phishing domain"},
|
||||
LookupURL: "https://check.spamhaus.org/results/?query=example.com",
|
||||
RemovalURL: "https://www.spamhaus.org/dbl/removal/",
|
||||
},
|
||||
{
|
||||
SourceID: "dnsbl", SourceName: "URIBL multi",
|
||||
Subject: "multi.uribl.com",
|
||||
Enabled: true, Error: "i/o timeout",
|
||||
},
|
||||
{
|
||||
SourceID: "openphish", SourceName: "OpenPhish feed",
|
||||
Enabled: true, Listed: true, Severity: SeverityCrit,
|
||||
Evidence: []Evidence{{Label: "URL", Value: "http://example.com/login"}},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
diags := diagnose(d)
|
||||
if len(diags) < 2 {
|
||||
t.Fatalf("expected at least 2 diagnoses, got %d", len(diags))
|
||||
}
|
||||
if diags[0].Severity != SeverityCrit {
|
||||
t.Errorf("first diagnosis severity = %q, want crit", diags[0].Severity)
|
||||
}
|
||||
|
||||
p := &blacklistProvider{}
|
||||
html, err := p.GetHTMLReport(staticCtx{data: jsonOf(t, d)})
|
||||
if err != nil {
|
||||
t.Fatalf("GetHTMLReport: %v", err)
|
||||
}
|
||||
for _, want := range []string{"Spamhaus DBL", "Action required", "OpenPhish"} {
|
||||
if !strings.Contains(html, want) {
|
||||
t.Errorf("report missing %q", want)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestHeadline(t *testing.T) {
|
||||
if h, c := headline(0); c != SeverityOK || !strings.Contains(h, "clean") {
|
||||
t.Errorf("headline(0) = %q/%q", h, c)
|
||||
}
|
||||
if h, c := headline(1); c != SeverityCrit || !strings.Contains(h, "1") {
|
||||
t.Errorf("headline(1) = %q/%q", h, c)
|
||||
}
|
||||
if h, c := headline(3); c != SeverityCrit || !strings.Contains(h, "3") {
|
||||
t.Errorf("headline(3) = %q/%q", h, c)
|
||||
}
|
||||
}
|
||||
|
||||
func TestSectionStatus(t *testing.T) {
|
||||
if l, c := sectionStatus([]SourceResult{{Enabled: true, Listed: true, Severity: SeverityCrit}}); c != "crit" || !strings.HasPrefix(l, "LISTED") {
|
||||
t.Errorf("sectionStatus listed = %q/%q", l, c)
|
||||
}
|
||||
if l, c := sectionStatus([]SourceResult{{Enabled: true}}); c != "ok" || l != "Clean" {
|
||||
t.Errorf("sectionStatus clean = %q/%q", l, c)
|
||||
}
|
||||
if l, c := sectionStatus([]SourceResult{{Enabled: false}}); c != "muted" || l != "Disabled" {
|
||||
t.Errorf("sectionStatus disabled = %q/%q", l, c)
|
||||
}
|
||||
if l, c := sectionStatus([]SourceResult{{Enabled: true, Error: "boom"}}); c != "warn" || l != "Errors" {
|
||||
t.Errorf("sectionStatus error = %q/%q", l, c)
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue