Highly-opinionated (ex-bullshit-free) MTPROTO proxy for Telegram. If you use v1.0 or upgrade broke you proxy, please read the chapter Version 2
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

dns_test.go 1.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. package network_test
  2. import (
  3. "context"
  4. "net"
  5. "net/url"
  6. "testing"
  7. "time"
  8. "github.com/9seconds/mtg/v2/network/v2"
  9. "github.com/stretchr/testify/require"
  10. "github.com/stretchr/testify/suite"
  11. )
  12. type DNSTestSuite struct {
  13. suite.Suite
  14. }
  15. func (suite *DNSTestSuite) TestDefault() {
  16. resolver, err := network.GetDNS(nil)
  17. suite.NoError(err)
  18. suite.doTest(resolver)
  19. }
  20. func (suite *DNSTestSuite) TestDoH() {
  21. for _, addr := range []string{"1.1.1.1", "cloudflare-dns.com"} {
  22. suite.Run(addr, func() {
  23. u, err := url.Parse("https://" + addr)
  24. require.NoError(suite.T(), err)
  25. resolver, err := network.GetDNS(u)
  26. suite.NoError(err)
  27. suite.doTest(resolver)
  28. })
  29. }
  30. }
  31. func (suite *DNSTestSuite) TestDoT() {
  32. u, err := url.Parse("tls://dns.google")
  33. require.NoError(suite.T(), err)
  34. resolver, err := network.GetDNS(u)
  35. suite.NoError(err)
  36. suite.doTest(resolver)
  37. }
  38. func (suite *DNSTestSuite) TestUDP() {
  39. u, err := url.Parse("8.8.8.8")
  40. require.NoError(suite.T(), err)
  41. resolver, err := network.GetDNS(u)
  42. suite.NoError(err)
  43. suite.doTest(resolver)
  44. }
  45. func (suite *DNSTestSuite) doTest(resolver *net.Resolver) {
  46. ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
  47. defer cancel()
  48. ips, err := resolver.LookupIP(ctx, "ip4", "dns.google")
  49. suite.NoError(err)
  50. suite.Greater(len(ips), 0)
  51. }
  52. func TestGetDNS(t *testing.T) {
  53. t.Parallel()
  54. suite.Run(t, &DNSTestSuite{})
  55. }