@@ -123,6 +123,70 @@ func TestAuthSession_Do_Authorization(t *testing.T) {
123
123
})
124
124
}
125
125
126
+ func TestAuthSession_Do_UserAgent (t * testing.T ) {
127
+ const path = "/someMethod"
128
+ const apiVersion = "/4.0"
129
+
130
+ t .Run ("Do() sets User-Agent header with AuthSession config's AgentTag" , func (t * testing.T ) {
131
+ mux := http .NewServeMux ()
132
+ setupApi40Login (mux , foreverValidTestToken , http .StatusOK )
133
+ server := httptest .NewServer (mux )
134
+ defer server .Close ()
135
+
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 {
145
+ BaseUrl : server .URL ,
146
+ ApiVersion : apiVersion ,
147
+ 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 )
155
+ }
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 ()
163
+
164
+ mux .HandleFunc ("/api" + apiVersion + path , func (w http.ResponseWriter , r * http.Request ) {
165
+ userAgentHeader := r .Header .Get ("User-Agent" )
166
+ expectedHeader := "new-agent-tag"
167
+ if userAgentHeader != expectedHeader {
168
+ t .Errorf ("User-Agent header not correct. got=%v want=%v" , userAgentHeader , expectedHeader )
169
+ }
170
+ })
171
+
172
+ s := NewAuthSession (ApiSettings {
173
+ BaseUrl : server .URL ,
174
+ ApiVersion : apiVersion ,
175
+ AgentTag : "some-agent-tag" ,
176
+ })
177
+
178
+ var r string
179
+ options := ApiSettings {
180
+ AgentTag : "new-agent-tag" ,
181
+ }
182
+ err := s .Do (& r , "GET" , apiVersion , path , nil , nil , & options )
183
+
184
+ if err != nil {
185
+ t .Errorf ("Do() call failed: %v" , err )
186
+ }
187
+ })
188
+ }
189
+
126
190
func TestAuthSession_Do_Parse (t * testing.T ) {
127
191
type stringStruct struct {
128
192
Field * string `json:"field"`
0 commit comments