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个字符

default_test.go 1.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package network_test
  2. import (
  3. "context"
  4. "net/http"
  5. "testing"
  6. "github.com/9seconds/mtg/v2/network"
  7. "github.com/stretchr/testify/suite"
  8. )
  9. type DefaultDialerTestSuite struct {
  10. suite.Suite
  11. HTTPServerTestSuite
  12. d network.Dialer
  13. }
  14. func (suite *DefaultDialerTestSuite) SetupSuite() {
  15. suite.HTTPServerTestSuite.SetupSuite()
  16. d, err := network.NewDefaultDialer(0, 0)
  17. suite.NoError(err)
  18. suite.d = d
  19. }
  20. func (suite *DefaultDialerTestSuite) TestNegativeTimeout() {
  21. _, err := network.NewDefaultDialer(-1, 0)
  22. suite.Error(err)
  23. }
  24. func (suite *DefaultDialerTestSuite) TestUnsupportedProtocol() {
  25. _, err := suite.d.DialContext(context.Background(),
  26. "udp",
  27. suite.HTTPServerAddress())
  28. suite.Error(err)
  29. }
  30. func (suite *DefaultDialerTestSuite) TestCannotDial() {
  31. _, err := suite.d.DialContext(context.Background(),
  32. "tcp",
  33. suite.HTTPServerAddress()+suite.HTTPServerAddress())
  34. suite.Error(err)
  35. }
  36. func (suite *DefaultDialerTestSuite) TestConnectOk() {
  37. conn, err := suite.d.DialContext(context.Background(),
  38. "tcp",
  39. suite.HTTPServerAddress())
  40. suite.NoError(err)
  41. suite.NotNil(conn)
  42. conn.Close() //nolint: errcheck
  43. }
  44. func (suite *DefaultDialerTestSuite) TestHTTPRequest() {
  45. httpClient := suite.MakeHTTPClient(suite.d)
  46. resp, err := httpClient.Get(suite.MakeURL("/get")) //nolint: noctx
  47. if err == nil {
  48. defer resp.Body.Close() //nolint: errcheck
  49. }
  50. suite.NoError(err)
  51. suite.Equal(http.StatusOK, resp.StatusCode)
  52. }
  53. func TestDefaultDialer(t *testing.T) {
  54. t.Parallel()
  55. suite.Run(t, &DefaultDialerTestSuite{})
  56. }