Skip to content

Commit 7eb1acd

Browse files
committed
add unit tests for httpclient
1 parent 5424e22 commit 7eb1acd

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

httpclient/httpclient_test.go

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
package httpclient
2+
3+
import (
4+
"fmt"
5+
"io/ioutil"
6+
"net/http"
7+
"net/http/httptest"
8+
"net/url"
9+
"testing"
10+
11+
"github.com/stretchr/testify/require"
12+
)
13+
14+
func TestUserAgentHeader(t *testing.T) {
15+
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
16+
fmt.Fprint(w, r.Header.Get("User-Agent"))
17+
}))
18+
defer ts.Close()
19+
20+
client := NewWithConfig(&Config{
21+
UserAgent: "test-user-agent",
22+
})
23+
24+
request, err := http.NewRequest("GET", ts.URL, nil)
25+
require.NoError(t, err)
26+
27+
response, err := client.Do(request)
28+
require.NoError(t, err)
29+
30+
b, err := ioutil.ReadAll(response.Body)
31+
require.NoError(t, err)
32+
33+
require.Equal(t, "test-user-agent", string(b))
34+
}
35+
36+
func TestProxy(t *testing.T) {
37+
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
38+
w.WriteHeader(http.StatusNoContent)
39+
}))
40+
defer ts.Close()
41+
42+
proxyURL, err := url.Parse(ts.URL)
43+
require.NoError(t, err)
44+
45+
client := NewWithConfig(&Config{
46+
Proxy: proxyURL,
47+
})
48+
49+
request, err := http.NewRequest("GET", "http://arduino.cc", nil)
50+
require.NoError(t, err)
51+
52+
response, err := client.Do(request)
53+
require.NoError(t, err)
54+
require.Equal(t, http.StatusNoContent, response.StatusCode)
55+
}

0 commit comments

Comments
 (0)