Skip to content

Commit d037cf6

Browse files
authored
Add twurl version to user agent header (#126)
* Add twurl version to user agent header * Add test
1 parent 6fb3c08 commit d037cf6

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

lib/twurl/oauth_client.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,9 +124,15 @@ def perform_request_from_options(options, &block)
124124
end
125125

126126
request.oauth!(consumer.http, consumer, access_token)
127+
request['user-agent'] = user_agent
127128
consumer.http.request(request, &block)
128129
end
129130

131+
def user_agent
132+
"twurl version: #{Version} " \
133+
"platform: #{RUBY_ENGINE} #{RUBY_VERSION} (#{RUBY_PLATFORM})"
134+
end
135+
130136
def exchange_credentials_for_access_token
131137
response = begin
132138
consumer.token_request(:post, consumer.access_token_path, nil, {}, client_auth_parameters)

test/oauth_client_test.rb

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,20 @@ def test_content_type_is_set_to_form_encoded_if_not_set_and_data_in_options
167167

168168
client.perform_request_from_options(options)
169169
end
170+
171+
def test_user_agent_request_header_is_set
172+
client = Twurl::OAuthClient.test_exemplar
173+
expected_ua_string = "twurl version: #{Twurl::Version} platform: #{RUBY_ENGINE} #{RUBY_VERSION} (#{RUBY_PLATFORM})"
174+
175+
mock(client.consumer.http).request(
176+
satisfy { |req|
177+
req.is_a?(Net::HTTP::Get) &&
178+
req['user-agent'] == expected_ua_string
179+
}
180+
)
181+
182+
client.perform_request_from_options(options)
183+
end
170184
end
171185

172186
class Twurl::OAuthClient::CredentialsForAccessTokenExchangeTest < Twurl::OAuthClient::AbstractOAuthClientTest

0 commit comments

Comments
 (0)