dnscontrol/models/dns_test.go
Tom Limoncelli 21e85e6528
"Target" RecordConfig should not be exported (#1061)
* Unexport RecordConfig.Target
* Fix tests
* HEDNS: Fix usage of target field to resolve TXT handling (#1067)

Co-authored-by: Robert Blenkinsopp <robert@blenkinsopp.net>
2021-03-04 18:58:23 -05:00

73 lines
2 KiB
Go

package models
import (
"testing"
)
func TestRR(t *testing.T) {
experiment := RecordConfig{
Type: "A",
Name: "foo",
NameFQDN: "foo.example.com",
target: "1.2.3.4",
TTL: 0,
MxPreference: 0,
}
expected := "foo.example.com.\t300\tIN\tA\t1.2.3.4"
found := experiment.ToRR().String()
if found != expected {
t.Errorf("RR expected (%#v) got (%#v)\n", expected, found)
}
experiment = RecordConfig{
Type: "CAA",
Name: "@",
NameFQDN: "example.com",
target: "mailto:test@example.com",
TTL: 300,
CaaTag: "iodef",
CaaFlag: 1,
}
expected = "example.com.\t300\tIN\tCAA\t1 iodef \"mailto:test@example.com\""
found = experiment.ToRR().String()
if found != expected {
t.Errorf("RR expected (%#v) got (%#v)\n", expected, found)
}
experiment = RecordConfig{
Type: "TLSA",
Name: "@",
NameFQDN: "_443._tcp.example.com",
target: "abcdef0123456789",
TTL: 300,
TlsaUsage: 0,
TlsaSelector: 0,
TlsaMatchingType: 1,
}
expected = "_443._tcp.example.com.\t300\tIN\tTLSA\t0 0 1 abcdef0123456789"
found = experiment.ToRR().String()
if found != expected {
t.Errorf("RR expected (%#v) got (%#v)\n", expected, found)
}
}
func TestDowncase(t *testing.T) {
dc := DomainConfig{Records: Records{
&RecordConfig{Type: "MX", Name: "lower", target: "targetmx"},
&RecordConfig{Type: "MX", Name: "UPPER", target: "TARGETMX"},
}}
downcase(dc.Records)
if !dc.Records.HasRecordTypeName("MX", "lower") {
t.Errorf("%v: expected (%v) got (%v)\n", dc.Records, false, true)
}
if !dc.Records.HasRecordTypeName("MX", "upper") {
t.Errorf("%v: expected (%v) got (%v)\n", dc.Records, false, true)
}
if dc.Records[0].GetTargetField() != "targetmx" {
t.Errorf("%v: target0 expected (%v) got (%v)\n", dc.Records, "targetmx", dc.Records[0].GetTargetField())
}
if dc.Records[1].GetTargetField() != "targetmx" {
t.Errorf("%v: target1 expected (%v) got (%v)\n", dc.Records, "targetmx", dc.Records[1].GetTargetField())
}
}