From 15787b09692dfd782f72e1ea2dab70d9928d9d84 Mon Sep 17 00:00:00 2001 From: Ilya Mateyko Date: Tue, 2 Mar 2021 18:12:44 +0300 Subject: web/useragent: fix missing infoURL (#107) --- web/useragent/user_agent.go | 2 +- web/useragent/user_agent_test.go | 33 ++++++++++++++++++++++++++++++--- 2 files changed, 31 insertions(+), 4 deletions(-) (limited to 'web') diff --git a/web/useragent/user_agent.go b/web/useragent/user_agent.go index 289bc88..3e63798 100644 --- a/web/useragent/user_agent.go +++ b/web/useragent/user_agent.go @@ -29,7 +29,7 @@ func GenUserAgent(prefix, infoURL string) string { // Transport wraps a http transport with user agent information. func Transport(prefix, infoURL string, rt http.RoundTripper) http.RoundTripper { - return userAgentTransport{prefix: prefix, rt: rt} + return userAgentTransport{prefix: prefix, infoURL: infoURL, rt: rt} } type userAgentTransport struct { diff --git a/web/useragent/user_agent_test.go b/web/useragent/user_agent_test.go index 4346029..ad40a38 100644 --- a/web/useragent/user_agent_test.go +++ b/web/useragent/user_agent_test.go @@ -1,12 +1,39 @@ -package useragent +package useragent_test -import "testing" +import ( + "net/http" + "net/http/httptest" + "testing" + + "within.website/x/web/useragent" +) func TestGenUserAgent(t *testing.T) { - ua := GenUserAgent("test", "https://christine.website") + ua := useragent.GenUserAgent("test", "https://christine.website") if ua == "" { t.Fatal("no user agent generated") } t.Log(ua) } + +func TestTransport(t *testing.T) { + ua := useragent.GenUserAgent("test", "https://example.com") + + http.DefaultTransport = useragent.Transport("test", "https://example.com", + http.DefaultTransport) + + h := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if ua != r.Header.Get("User-Agent") { + t.Errorf("user agent must be %q, but returned %q", ua, r.Header.Get("User-Agent")) + } + }) + + s := httptest.NewServer(h) + defer s.Close() + + _, err := http.Get(s.URL) + if err != nil { + t.Fatal(err) + } +} -- cgit v1.2.3