dns-api/dns_test.go
DataHoarder 588e83131a
All checks were successful
continuous-integration/drone/push Build is passing
Added zone alias support, glue records
2022-06-15 11:23:55 +02:00

76 lines
1.8 KiB
Go

package dns_api
import (
"net"
"testing"
)
const testZone = "example.com."
func TestRecordSign(t *testing.T) {
zone := NewZoneFromPrivateKey(testZone, DecodeTorPrivateKey(testPrivateKey))
t.Logf("zone name %s", zone.Name())
if err := zone.AddRecordA("test", net.IPv4(1, 2, 3, 4), 3600); err != nil {
t.Error(err)
}
if err := zone.AddRecordNS("@", "ns1."+zone.Name(), 3600*24); err != nil {
t.Error(err)
}
if err := zone.AddRecordNS("@", "ns2."+zone.Name(), 3600*24); err != nil {
t.Error(err)
}
if err := zone.AddRecordA("ns1", net.IPv4(1, 1, 1, 1), 3600*24); err != nil {
t.Error(err)
}
if err := zone.AddRecordA("ns2", net.IPv4(2, 2, 2, 2), 3600*24); err != nil {
t.Error(err)
}
enforcedZone := NewZoneFromPublicKey(zone.BaseZoneName(), zone.PubKey())
if err := enforcedZone.AddRecordSOA("@", "ns1."+zone.Name(), "mail."+zone.Name(), 31337, 10800, 3600, 604800, 3600, 3600); err != nil {
t.Error(err)
}
zone.SetEnforcedEntries(enforcedZone.GetRRSet())
zone.AddZoneAlias("testalias." + zone.BaseZoneName())
zones, err := zone.Sign()
if err != nil {
t.Error(err)
}
for _, newZone := range zones {
t.Logf("====== ZONE %s ======", newZone.Name())
for _, rr := range newZone.GetRRSet() {
t.Logf(" %s\n", rr.String())
}
t.Logf("auto-generated GLUE records:")
for _, rr := range newZone.GetGlueRecords() {
t.Logf("GLUE: %s\n", rr.String())
}
}
}
func TestRecordTopLevelCNAME(t *testing.T) {
zone := NewZoneFromPrivateKey(testZone, DecodeTorPrivateKey(testPrivateKey))
t.Logf("zone name %s", zone.Name())
if err := zone.AddRecordCNAME("@", "example.com.", 3600); err != nil {
t.Error(err)
}
_, err := zone.Sign()
if err == nil {
t.Error("expected CNAME error")
} else if err != TopLevelCNAMEError {
t.Error(err)
}
}