| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- package network_test
-
- import (
- "encoding/json"
- "io"
- "net/http"
- "testing"
- "time"
-
- "github.com/dolonet/mtg-multi/network"
- "github.com/stretchr/testify/suite"
- )
-
- type NetworkTestSuite struct {
- suite.Suite
- HTTPServerTestSuite
-
- dialer network.Dialer
- }
-
- func (suite *NetworkTestSuite) SetupTest() {
- dialer, err := network.NewDefaultDialer(0, 0)
- suite.NoError(err)
-
- suite.dialer = dialer
- }
-
- func (suite *NetworkTestSuite) TestLocalHTTPRequest() {
- ntw, err := network.NewNetwork(suite.dialer, "itsme", "1.1.1.1", 0)
- suite.NoError(err)
-
- client := ntw.MakeHTTPClient(nil)
-
- resp, err := client.Get(suite.httpServer.URL + "/headers") //nolint: noctx
- suite.NoError(err)
-
- defer resp.Body.Close() //nolint: errcheck
-
- data, err := io.ReadAll(resp.Body)
- suite.NoError(err)
- suite.Equal(http.StatusOK, resp.StatusCode)
-
- jsonStruct := struct {
- Headers struct {
- UserAgent []string `json:"User-Agent"` //nolint: tagliatelle
- } `json:"headers"`
- }{}
-
- suite.NoError(json.Unmarshal(data, &jsonStruct))
- suite.Equal([]string{"itsme"}, jsonStruct.Headers.UserAgent)
- }
-
- func (suite *NetworkTestSuite) TestRealHTTPRequest() {
- ntw, err := network.NewNetwork(suite.dialer, "itsme", "1.1.1.1", 0)
- suite.NoError(err)
-
- client := ntw.MakeHTTPClient(nil)
-
- resp, err := client.Get("https://httpbin.org/headers") //nolint: noctx
- suite.NoError(err)
-
- defer resp.Body.Close() //nolint: errcheck
-
- data, err := io.ReadAll(resp.Body)
- suite.NoError(err)
- suite.Equal(http.StatusOK, resp.StatusCode)
-
- jsonStruct := struct {
- Headers struct {
- UserAgent string `json:"User-Agent"` //nolint: tagliatelle
- } `json:"headers"`
- }{}
-
- suite.NoError(json.Unmarshal(data, &jsonStruct))
- suite.Equal("itsme", jsonStruct.Headers.UserAgent)
- }
-
- func (suite *NetworkTestSuite) TestIncorrectTimeout() {
- _, err := network.NewNetwork(suite.dialer, "itsme", "1.1.1.1", -time.Second)
- suite.Error(err)
- }
-
- func (suite *NetworkTestSuite) TestIncorrectDOHHostname() {
- _, err := network.NewNetwork(suite.dialer, "itsme", "doh.com", 0)
- suite.Error(err)
- }
-
- func TestNetwork(t *testing.T) {
- t.Parallel()
- suite.Run(t, &NetworkTestSuite{})
- }
|