Skip to content

Commit a1c5559

Browse files
committed
wip
1 parent 2eb0fb3 commit a1c5559

File tree

2 files changed

+37
-6
lines changed

2 files changed

+37
-6
lines changed

go/rtl/auth.go

+4-2
Original file line numberDiff line numberDiff line change
@@ -130,15 +130,17 @@ func (s *AuthSession) Do(result interface{}, method, ver, path string, reqPars m
130130

131131
// set headers
132132
req.Header.Add("Content-Type", contentTypeHeader)
133-
133+
134+
if s.Config.AgentTag != "" {
135+
req.Header.Set("User-Agent", s.Config.AgentTag)
136+
}
134137
if options != nil && options.AgentTag != "" {
135138
req.Header.Set("User-Agent", options.AgentTag)
136139
}
137140

138141
// set query params
139142
setQuery(req.URL, reqPars)
140143

141-
142144
// do the actual http call
143145
res, err := s.Client.Do(req)
144146
if err != nil {

go/rtl/auth_test.go

+33-4
Original file line numberDiff line numberDiff line change
@@ -127,29 +127,58 @@ func TestAuthSession_Do_UserAgent(t *testing.T) {
127127
const path = "/someMethod"
128128
const apiVersion = "/4.0"
129129

130-
t.Run("Do() sets User-Agent header with AgentTag option", func(t *testing.T) {
130+
t.Run("Do() sets User-Agent header with AuthSession config's AgentTag", func(t *testing.T) {
131131
mux := http.NewServeMux()
132132
setupApi40Login(mux, foreverValidTestToken, http.StatusOK)
133133
server := httptest.NewServer(mux)
134134
defer server.Close()
135135

136-
options := ApiSettings{
136+
mux.HandleFunc("/api"+apiVersion+path, func(w http.ResponseWriter, r *http.Request) {
137+
userAgentHeader := r.Header.Get("User-Agent")
138+
expectedHeader := "some-agent-tag"
139+
if userAgentHeader != expectedHeader {
140+
t.Errorf("User-Agent header not correct. got=%v want=%v", userAgentHeader, expectedHeader)
141+
}
142+
})
143+
144+
s := NewAuthSession(ApiSettings{
137145
BaseUrl: server.URL,
138146
ApiVersion: apiVersion,
139147
AgentTag: "some-agent-tag",
148+
})
149+
150+
var r string
151+
err := s.Do(&r, "GET", apiVersion, path, nil, nil, nil)
152+
153+
if err != nil {
154+
t.Errorf("Do() call failed: %v", err)
140155
}
156+
})
157+
158+
t.Run("Do() sets User-Agent header with Do's option's AgentTag, which will overwrite AuthSession config", func(t *testing.T) {
159+
mux := http.NewServeMux()
160+
setupApi40Login(mux, foreverValidTestToken, http.StatusOK)
161+
server := httptest.NewServer(mux)
162+
defer server.Close()
141163

142164
mux.HandleFunc("/api"+apiVersion+path, func(w http.ResponseWriter, r *http.Request) {
143165
userAgentHeader := r.Header.Get("User-Agent")
144-
expectedHeader := options.AgentTag
166+
expectedHeader := "new-agent-tag"
145167
if userAgentHeader != expectedHeader {
146168
t.Errorf("User-Agent header not correct. got=%v want=%v", userAgentHeader, expectedHeader)
147169
}
148170
})
149171

150-
s := NewAuthSession(options)
172+
s := NewAuthSession(ApiSettings{
173+
BaseUrl: server.URL,
174+
ApiVersion: apiVersion,
175+
AgentTag: "some-agent-tag",
176+
})
151177

152178
var r string
179+
options := ApiSettings{
180+
AgentTag: "new-agent-tag",
181+
}
153182
err := s.Do(&r, "GET", apiVersion, path, nil, nil, &options)
154183

155184
if err != nil {

0 commit comments

Comments
 (0)