Added testcase for in-valid.co.uk

Camelcased: fqdn2zone to fqdnToZone
Grammatical fix in externally visible error message
This commit is contained in:
Pauline Middelink 2016-02-29 08:46:15 +01:00
parent 4945919c69
commit 8b90b1a380
3 changed files with 22 additions and 13 deletions

View file

@ -18,7 +18,7 @@ type preCheckDNSFunc func(fqdn, value string) (bool, error)
var ( var (
preCheckDNS preCheckDNSFunc = checkDNSPropagation preCheckDNS preCheckDNSFunc = checkDNSPropagation
fqdn2zone = map[string]string{} fqdnToZone = map[string]string{}
) )
var recursiveNameserver = "google-public-dns-a.google.com:53" var recursiveNameserver = "google-public-dns-a.google.com:53"
@ -185,7 +185,7 @@ func lookupNameservers(fqdn string) ([]string, error) {
// findZoneByFqdn determines the zone of the given fqdn // findZoneByFqdn determines the zone of the given fqdn
func findZoneByFqdn(fqdn, nameserver string) (string, error) { func findZoneByFqdn(fqdn, nameserver string) (string, error) {
// Do we have it cached? // Do we have it cached?
if zone, ok := fqdn2zone[fqdn]; ok { if zone, ok := fqdnToZone[fqdn]; ok {
return zone, nil return zone, nil
} }
@ -210,9 +210,9 @@ func findZoneByFqdn(fqdn, nameserver string) (string, error) {
// If we ended up on one of the TLDs, it means the domain did not exist. // If we ended up on one of the TLDs, it means the domain did not exist.
publicsuffix, _ := publicsuffix.PublicSuffix(unFqdn(zone)) publicsuffix, _ := publicsuffix.PublicSuffix(unFqdn(zone))
if publicsuffix == unFqdn(zone) { if publicsuffix == unFqdn(zone) {
return "", fmt.Errorf("Could not determine zone authoritively") return "", fmt.Errorf("Could not determine zone authoritatively")
} }
fqdn2zone[fqdn] = zone fqdnToZone[fqdn] = zone
return zone, nil return zone, nil
} }
} }
@ -225,9 +225,9 @@ func findZoneByFqdn(fqdn, nameserver string) (string, error) {
// If we ended up on one of the TLDs, it means the domain did not exist. // If we ended up on one of the TLDs, it means the domain did not exist.
publicsuffix, _ := publicsuffix.PublicSuffix(unFqdn(zone)) publicsuffix, _ := publicsuffix.PublicSuffix(unFqdn(zone))
if publicsuffix == unFqdn(zone) { if publicsuffix == unFqdn(zone) {
return "", fmt.Errorf("Could not determine zone authoritively") return "", fmt.Errorf("Could not determine zone authoritatively")
} }
fqdn2zone[fqdn] = zone fqdnToZone[fqdn] = zone
return zone, nil return zone, nil
} }
} }
@ -252,6 +252,11 @@ func unFqdn(name string) string {
return name return name
} }
// clearFqdnCache clears the cache of fqdn to zone mappings. Primarily used in testing.
func clearFqdnCache() {
fqdnToZone = map[string]string{}
}
// waitFor polls the given function 'f', once every 'interval' seconds, up to 'timeout' seconds. // waitFor polls the given function 'f', once every 'interval' seconds, up to 'timeout' seconds.
func waitFor(timeout, interval int, f func() (bool, error)) error { func waitFor(timeout, interval int, f func() (bool, error)) error {
var lastErr string var lastErr string

View file

@ -26,7 +26,7 @@ var (
var reqChan = make(chan *dns.Msg, 10) var reqChan = make(chan *dns.Msg, 10)
func TestRFC2136CanaryLocalTestServer(t *testing.T) { func TestRFC2136CanaryLocalTestServer(t *testing.T) {
fqdn2zone = map[string]string{} clearFqdnCache()
dns.HandleFunc("example.com.", serverHandlerHello) dns.HandleFunc("example.com.", serverHandlerHello)
defer dns.HandleRemove("example.com.") defer dns.HandleRemove("example.com.")
@ -50,7 +50,7 @@ func TestRFC2136CanaryLocalTestServer(t *testing.T) {
} }
func TestRFC2136ServerSuccess(t *testing.T) { func TestRFC2136ServerSuccess(t *testing.T) {
fqdn2zone = map[string]string{} clearFqdnCache()
dns.HandleFunc(rfc2136TestZone, serverHandlerReturnSuccess) dns.HandleFunc(rfc2136TestZone, serverHandlerReturnSuccess)
defer dns.HandleRemove(rfc2136TestZone) defer dns.HandleRemove(rfc2136TestZone)
@ -70,7 +70,7 @@ func TestRFC2136ServerSuccess(t *testing.T) {
} }
func TestRFC2136ServerError(t *testing.T) { func TestRFC2136ServerError(t *testing.T) {
fqdn2zone = map[string]string{} clearFqdnCache()
dns.HandleFunc(rfc2136TestZone, serverHandlerReturnErr) dns.HandleFunc(rfc2136TestZone, serverHandlerReturnErr)
defer dns.HandleRemove(rfc2136TestZone) defer dns.HandleRemove(rfc2136TestZone)
@ -92,7 +92,7 @@ func TestRFC2136ServerError(t *testing.T) {
} }
func TestRFC2136TsigClient(t *testing.T) { func TestRFC2136TsigClient(t *testing.T) {
fqdn2zone = map[string]string{} clearFqdnCache()
dns.HandleFunc(rfc2136TestZone, serverHandlerReturnSuccess) dns.HandleFunc(rfc2136TestZone, serverHandlerReturnSuccess)
defer dns.HandleRemove(rfc2136TestZone) defer dns.HandleRemove(rfc2136TestZone)
@ -112,7 +112,7 @@ func TestRFC2136TsigClient(t *testing.T) {
} }
func TestRFC2136ValidUpdatePacket(t *testing.T) { func TestRFC2136ValidUpdatePacket(t *testing.T) {
fqdn2zone = map[string]string{} clearFqdnCache()
dns.HandleFunc(rfc2136TestZone, serverHandlerPassBackRequest) dns.HandleFunc(rfc2136TestZone, serverHandlerPassBackRequest)
defer dns.HandleRemove(rfc2136TestZone) defer dns.HandleRemove(rfc2136TestZone)

View file

@ -35,11 +35,15 @@ var lookupNameserversTestsErr = []struct {
}{ }{
// invalid tld // invalid tld
{"_null.n0n0.", {"_null.n0n0.",
"Could not determine zone authoritively", "Could not determine zone authoritatively",
}, },
// invalid domain // invalid domain
{"_null.com.", {"_null.com.",
"Could not determine zone authoritively", "Could not determine zone authoritatively",
},
// invalid domain
{"in-valid.co.uk.",
"Could not determine zone authoritatively",
}, },
} }