package home import ( "context" "testing" "github.com/AdguardTeam/AdGuardHome/internal/dnsforward" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) func prepareTestDNSServer(t *testing.T) { t.Helper() config.DNS.Port = 1234 var err error Context.dnsServer, err = dnsforward.NewServer(dnsforward.DNSCreateParams{}) require.NoError(t, err) conf := &dnsforward.ServerConfig{} conf.UpstreamDNS = []string{"8.8.8.8"} err = Context.dnsServer.Prepare(conf) require.NoError(t, err) } // TODO(e.burkov): It's kind of complicated to get rid of network access in this // test. The thing is that *Whois creates new *net.Dialer each time it requests // the server, so it becomes hard to simulate handling of request from test even // with substituted upstream. However, it must be done. func TestWhois(t *testing.T) { prepareTestDNSServer(t) w := Whois{timeoutMsec: 5000} resp, err := w.queryAll(context.Background(), "8.8.8.8") assert.NoError(t, err) m := whoisParse(resp) require.NotEmpty(t, m) assert.Equal(t, "Google LLC", m["orgname"]) assert.Equal(t, "US", m["country"]) assert.Equal(t, "Mountain View", m["city"]) }