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 символов.

events_test.go 2.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. package mtglib_test
  2. import (
  3. "net"
  4. "testing"
  5. "time"
  6. "github.com/9seconds/mtg/v2/mtglib"
  7. "github.com/stretchr/testify/suite"
  8. )
  9. type EventsTestSuite struct {
  10. suite.Suite
  11. }
  12. func (suite *EventsTestSuite) TestEventStart() {
  13. evt := mtglib.NewEventStart("CONNID", net.ParseIP("10.0.0.10"))
  14. suite.Equal("CONNID", evt.StreamID())
  15. suite.WithinDuration(time.Now(), evt.Timestamp(), 10*time.Millisecond)
  16. }
  17. func (suite *EventsTestSuite) TestEventFinish() {
  18. evt := mtglib.NewEventFinish("CONNID")
  19. suite.Equal("CONNID", evt.StreamID())
  20. suite.WithinDuration(time.Now(), evt.Timestamp(), 10*time.Millisecond)
  21. }
  22. func (suite *EventsTestSuite) TestEventConnectedToDC() {
  23. evt := mtglib.NewEventConnectedToDC("CONNID", net.ParseIP("10.0.0.10"), 3)
  24. suite.Equal("CONNID", evt.StreamID())
  25. suite.WithinDuration(time.Now(), evt.Timestamp(), 10*time.Millisecond)
  26. }
  27. func (suite *EventsTestSuite) TestEventTraffic() {
  28. evt := mtglib.NewEventTraffic("CONNID", 1000, true)
  29. suite.Equal("CONNID", evt.StreamID())
  30. suite.WithinDuration(time.Now(), evt.Timestamp(), 10*time.Millisecond)
  31. }
  32. func (suite *EventsTestSuite) TestEventDomainFronting() {
  33. evt := mtglib.NewEventDomainFronting("CONNID")
  34. suite.Equal("CONNID", evt.StreamID())
  35. suite.WithinDuration(time.Now(), evt.Timestamp(), 10*time.Millisecond)
  36. }
  37. func (suite *EventsTestSuite) TestEventConcurrencyLimited() {
  38. evt := mtglib.NewEventConcurrencyLimited()
  39. suite.Empty(evt.StreamID())
  40. suite.WithinDuration(time.Now(), evt.Timestamp(), 10*time.Millisecond)
  41. }
  42. func (suite *EventsTestSuite) TestEventIPBlocklisted() {
  43. evt := mtglib.NewEventIPBlocklisted(net.ParseIP("10.0.0.10"))
  44. suite.Empty(evt.StreamID())
  45. suite.WithinDuration(time.Now(), evt.Timestamp(), 10*time.Millisecond)
  46. suite.True(evt.IsBlockList)
  47. }
  48. func (suite *EventsTestSuite) TestEventIPAllowlisted() {
  49. evt := mtglib.NewEventIPAllowlisted(net.ParseIP("10.0.0.10"))
  50. suite.Empty(evt.StreamID())
  51. suite.WithinDuration(time.Now(), evt.Timestamp(), 10*time.Millisecond)
  52. suite.False(evt.IsBlockList)
  53. }
  54. func (suite *EventsTestSuite) TestEventReplayAttack() {
  55. evt := mtglib.NewEventReplayAttack("CONNID")
  56. suite.Equal("CONNID", evt.StreamID())
  57. suite.WithinDuration(time.Now(), evt.Timestamp(), 10*time.Millisecond)
  58. }
  59. func (suite *EventsTestSuite) TestEventIPListSize() {
  60. evt := mtglib.NewEventIPListSize(10, false)
  61. suite.Empty(evt.StreamID())
  62. suite.WithinDuration(time.Now(), evt.Timestamp(), 10*time.Millisecond)
  63. suite.Equal(10, evt.Size)
  64. suite.False(evt.IsBlockList)
  65. }
  66. func TestEvents(t *testing.T) {
  67. t.Parallel()
  68. suite.Run(t, &EventsTestSuite{})
  69. }