Adding upstream version 1.1.10.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
0935a35f2a
commit
504a5578e5
12 changed files with 537 additions and 0 deletions
148
whois_test.go
Normal file
148
whois_test.go
Normal file
|
@ -0,0 +1,148 @@
|
|||
package whois
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestClient(t *testing.T) {
|
||||
scenarios := []struct {
|
||||
domain string
|
||||
wantErr bool
|
||||
}{
|
||||
{
|
||||
domain: "name.com",
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
domain: "name.org",
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
domain: "name.net",
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
domain: "name.sh",
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
domain: "name.io",
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
domain: "get.dev",
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
domain: "name.red",
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
domain: "name.green",
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
domain: "color.black",
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
domain: "name.cn",
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
domain: "name.de",
|
||||
wantErr: true,
|
||||
},
|
||||
{
|
||||
domain: "google.com.br", // name.com.br is handled weirdly by whois.registro.br, so we'll use this instead
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
domain: "name.ua",
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
domain: "name.pp.ua",
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
domain: "name.co.uk",
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
domain: "name.cz",
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
domain: "name.me",
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
domain: "name.im",
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
domain: "name.uk",
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
domain: "dot.scot", // name.scot not registered
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
domain: "name.ru", // expiration date in `paid-till` field
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
domain: "register.su", // expiration date in `paid-till` field
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
domain: "nic.mx",
|
||||
wantErr: false,
|
||||
},
|
||||
}
|
||||
client := NewClient().WithReferralCache(true)
|
||||
for _, scenario := range scenarios {
|
||||
t.Run(scenario.domain+"_Query", func(t *testing.T) {
|
||||
output, err := client.Query(scenario.domain)
|
||||
if scenario.wantErr && err == nil {
|
||||
t.Error("expected error, got none")
|
||||
t.FailNow()
|
||||
}
|
||||
if !scenario.wantErr {
|
||||
if err != nil {
|
||||
t.Error("expected no error, got", err.Error())
|
||||
}
|
||||
if !strings.Contains(strings.ToLower(output), scenario.domain) {
|
||||
t.Errorf("expected %s in output, got %s", scenario.domain, output)
|
||||
}
|
||||
}
|
||||
})
|
||||
time.Sleep(50 * time.Millisecond) // Give the WHOIS servers some breathing room
|
||||
t.Run(scenario.domain+"_QueryAndParse", func(t *testing.T) {
|
||||
response, err := client.QueryAndParse(scenario.domain)
|
||||
if scenario.wantErr && err == nil {
|
||||
t.Error("expected error, got none")
|
||||
t.FailNow()
|
||||
}
|
||||
if !scenario.wantErr {
|
||||
if err != nil {
|
||||
t.Error("expected no error, got", err.Error(), "for domain", scenario.domain)
|
||||
}
|
||||
if response.ExpirationDate.Unix() <= 0 {
|
||||
t.Error("expected to have a valid expiry date, got", response.ExpirationDate.Unix(), "for domain", scenario.domain)
|
||||
}
|
||||
if len(response.NameServers) == 0 {
|
||||
t.Errorf("expected to have at least one name server for domain %s", scenario.domain)
|
||||
}
|
||||
if len(response.DomainStatuses) == 0 && !strings.HasSuffix(scenario.domain, ".im") && !strings.HasSuffix(scenario.domain, ".mx") && !strings.HasSuffix(scenario.domain, ".cz") {
|
||||
t.Errorf("expected to have at least one domain status for domain %s", scenario.domain)
|
||||
}
|
||||
}
|
||||
})
|
||||
time.Sleep(50 * time.Millisecond) // Give the WHOIS servers some breathing room
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue