diff --git a/.travis.yml b/.travis.yml index fb752eda9..aa59761e6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,6 +13,7 @@ script: "rake spec:all" before_install: - sudo apt-get update - sudo apt-get install idn + - gem update bundler notifications: email: recipients: diff --git a/lib/google/apis/core/http_command.rb b/lib/google/apis/core/http_command.rb index 3b68b2ac5..0108a0b5d 100644 --- a/lib/google/apis/core/http_command.rb +++ b/lib/google/apis/core/http_command.rb @@ -144,7 +144,7 @@ module Google def prepare! header.update(options.header) if options && options.header self.url = url.expand(params) if url.is_a?(Addressable::Template) - url.query_values = query + url.query_values = query.merge(url.query_values || {}) end # Release any resources used by this command diff --git a/spec/google/apis/core/http_command_spec.rb b/spec/google/apis/core/http_command_spec.rb index c9445f791..8543e7175 100644 --- a/spec/google/apis/core/http_command_spec.rb +++ b/spec/google/apis/core/http_command_spec.rb @@ -264,4 +264,12 @@ RSpec.describe Google::Apis::Core::HttpCommand do command.query['a'] = [1,2,3] command.execute(client) end + + it 'should not remove initial query parameters' do + stub_request(:get, 'https://www.googleapis.com/zoo/animals?a=1&a=2&a=3&foo=bar') + .to_return(status: [200, '']) + command = Google::Apis::Core::HttpCommand.new(:get, 'https://www.googleapis.com/zoo/animals?foo=bar') + command.query['a'] = [1,2,3] + command.execute(client) + end end