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

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