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
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

default_test.go 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. package network_test
  2. import (
  3. "context"
  4. "net/http"
  5. "net/http/httptest"
  6. "strings"
  7. "testing"
  8. "github.com/9seconds/mtg/v2/mtglib/network"
  9. "github.com/mccutchen/go-httpbin/httpbin"
  10. "github.com/stretchr/testify/suite"
  11. )
  12. type DefaultDialerTestSuite struct {
  13. suite.Suite
  14. d network.Dialer
  15. srvAddress string
  16. srv *httptest.Server
  17. }
  18. func (suite *DefaultDialerTestSuite) SetupSuite() {
  19. suite.srv = httptest.NewServer(httpbin.NewHTTPBin().Handler())
  20. suite.srvAddress = strings.TrimPrefix(suite.srv.URL, "http://")
  21. }
  22. func (suite *DefaultDialerTestSuite) SetupTest() {
  23. d, err := network.NewDefaultDialer(0, 0)
  24. suite.NoError(err)
  25. suite.d = d
  26. }
  27. func (suite *DefaultDialerTestSuite) TearDownSuite() {
  28. suite.srv.Close()
  29. }
  30. func (suite *DefaultDialerTestSuite) TestNegativeTimeout() {
  31. _, err := network.NewDefaultDialer(-1, 0)
  32. suite.Error(err)
  33. }
  34. func (suite *DefaultDialerTestSuite) TestNegativeBufferSize() {
  35. _, err := network.NewDefaultDialer(0, -1)
  36. suite.Error(err)
  37. }
  38. func (suite *DefaultDialerTestSuite) TestUnsupportedProtocol() {
  39. _, err := suite.d.DialContext(context.Background(), "udp", suite.srvAddress)
  40. suite.Error(err)
  41. }
  42. func (suite *DefaultDialerTestSuite) TestCannotDial() {
  43. _, err := suite.d.DialContext(context.Background(),
  44. "tcp",
  45. suite.srvAddress+suite.srvAddress)
  46. suite.Error(err)
  47. }
  48. func (suite *DefaultDialerTestSuite) TestConnectOk() {
  49. conn, err := suite.d.DialContext(context.Background(),
  50. "tcp",
  51. suite.srvAddress)
  52. suite.NoError(err)
  53. suite.NotNil(conn)
  54. conn.Close()
  55. }
  56. func (suite *DefaultDialerTestSuite) TestRequest() {
  57. httpClient := http.Client{
  58. Transport: &http.Transport{
  59. DialContext: suite.d.DialContext,
  60. },
  61. }
  62. resp, err := httpClient.Get(suite.srv.URL + "/get")
  63. suite.NoError(err)
  64. resp.Body.Close()
  65. }
  66. func TestDefaultDialer(t *testing.T) {
  67. suite.Run(t, &DefaultDialerTestSuite{})
  68. }