feat: send x-goog-api-client header in all requests
This commit is contained in:
1 parent
eea7d16b5e
commit
8cf4330494
3 files changed
+49
-1
No files matched your search
@@ -32,6 +32,33 @@ RSpec.describe Google::Apis::Core::ApiCommand do
|
||||
end
|
||||
end
|
||||
|
||||
let(:x_goog_api_client_value) { "gl-ruby/#{RUBY_VERSION} gdcl/#{Google::Apis::VERSION}" }
|
||||
|
||||
context('with preparation') do
|
||||
let(:command) do
|
||||
Google::Apis::Core::ApiCommand.new(:get, 'https://www.googleapis.com/zoo/animals')
|
||||
end
|
||||
|
||||
it 'should set X-Goog-Api-Client header if none is set' do
|
||||
command.prepare!
|
||||
expect(command.header['X-Goog-Api-Client']).to eql x_goog_api_client_value
|
||||
end
|
||||
|
||||
it 'should append to x-goog-api-client header with case difference' do
|
||||
command.header['x-goog-api-client'] = "foo/1.2.3"
|
||||
command.prepare!
|
||||
expect(command.header['X-Goog-Api-Client']).to eql "foo/1.2.3 #{x_goog_api_client_value}"
|
||||
end
|
||||
|
||||
it 'should append to multiple x-goog-api-client headers' do
|
||||
command.header['x-goog-api-client'] = "foo/1.2.3"
|
||||
command.header['X-Goog-Api-Client'] = "bar/4.5.6"
|
||||
command.prepare!
|
||||
expect(command.header['X-Goog-Api-Client']).to eql "foo/1.2.3 bar/4.5.6 #{x_goog_api_client_value}"
|
||||
expect(command.header['x-goog-api-client']).to be nil
|
||||
end
|
||||
end
|
||||
|
||||
context('with a request body') do
|
||||
let(:command) do
|
||||
request = model_class.new
|
||||
|
||||
@@ -21,6 +21,7 @@ RSpec.describe Google::Apis::Core::BaseService do
|
||||
include TestHelpers
|
||||
|
||||
let(:service) { Google::Apis::Core::BaseService.new('https://www.googleapis.com/', '') }
|
||||
let(:x_goog_api_client_value) { "gl-ruby/#{RUBY_VERSION} gdcl/#{Google::Apis::VERSION}" }
|
||||
|
||||
before do
|
||||
Google::Apis::ClientOptions.default.application_name = 'test'
|
||||
@@ -122,6 +123,13 @@ RSpec.describe Google::Apis::Core::BaseService do
|
||||
expect(url).to eql 'https://www.googleapis.com/zoo/animals'
|
||||
end
|
||||
|
||||
it 'should send the command with x-goog-api-client header' do
|
||||
stub_request(:get, 'https://www.googleapis.com/zoo/animals').to_return(body: '')
|
||||
service.send(:execute_or_queue_command, command)
|
||||
expected_headers = {'X-Goog-Api-Client': x_goog_api_client_value}
|
||||
expect(a_request(:get, 'https://www.googleapis.com/zoo/animals').with(headers: expected_headers)).to have_been_made
|
||||
end
|
||||
|
||||
include_examples 'with options'
|
||||
end
|
||||
|
||||
@@ -269,10 +277,11 @@ EOF
|
||||
--outer
|
||||
Content-Type: application/http
|
||||
Content-Id: <b1981e17-f622-49af-b2eb-203308b1b17d+0>
|
||||
Content-Length: 303
|
||||
Content-Length: 349
|
||||
Content-Transfer-Encoding: binary
|
||||
|
||||
POST /upload/zoo/animals? HTTP/1.1
|
||||
X-Goog-Api-Client: #{x_goog_api_client_value}
|
||||
Content-Type: multipart/related; boundary=inner
|
||||
X-Goog-Upload-Protocol: multipart
|
||||
Host: www.googleapis.com
|
||||
|
||||
Reference in new issue
Block a user