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  }