github.com/arcology-network/consensus-engine@v1.9.0/rpc/jsonrpc/client/http_json_client_test.go (about) 1 package client 2 3 import ( 4 "io/ioutil" 5 "log" 6 "net/http" 7 "net/http/httptest" 8 "testing" 9 10 "github.com/stretchr/testify/require" 11 ) 12 13 func TestHTTPClientMakeHTTPDialer(t *testing.T) { 14 handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { 15 _, _ = w.Write([]byte("Hi!\n")) 16 }) 17 ts := httptest.NewServer(handler) 18 defer ts.Close() 19 20 tsTLS := httptest.NewTLSServer(handler) 21 defer tsTLS.Close() 22 // This silences a TLS handshake error, caused by the dialer just immediately 23 // disconnecting, which we can just ignore. 24 tsTLS.Config.ErrorLog = log.New(ioutil.Discard, "", 0) 25 26 for _, testURL := range []string{ts.URL, tsTLS.URL} { 27 u, err := newParsedURL(testURL) 28 require.NoError(t, err) 29 dialFn, err := makeHTTPDialer(testURL) 30 require.Nil(t, err) 31 32 addr, err := dialFn(u.Scheme, u.GetHostWithPath()) 33 require.NoError(t, err) 34 require.NotNil(t, addr) 35 } 36 }