Fix #292 - ensure multivalued parameters are encoded correctly

This commit is contained in:
Steve Bazyl 2015-10-02 13:31:19 -07:00
parent 549e4bd113
commit 81a061cb80
3 changed files with 23 additions and 10 deletions

View File

@ -254,6 +254,11 @@ module Google
begin
logger.debug { sprintf('Sending HTTP %s %s', method, url) }
response = client.send(method, url, body) do |req|
# Temporary workaround for Hurley bug where the connection preference
# is ignored and it uses nested anyway
req.url.query_class = Hurley::Query::Flat
query.each { | k, v| req.url.query[k] = v }
# End workaround
apply_request_options(req)
end
logger.debug { response.status_code }

View File

@ -255,4 +255,12 @@ RSpec.describe Google::Apis::Core::HttpCommand do
expect { |b| command.execute(client, &b) }.to yield_with_args(nil, an_instance_of(Google::Apis::ClientError))
end
end
it 'should send repeated query parameters' do
stub_request(:get, 'https://www.googleapis.com/zoo/animals?a=1&a=2&a=3')
.to_return(status: [200, ''])
command = Google::Apis::Core::HttpCommand.new(:get, 'https://www.googleapis.com/zoo/animals')
command.query['a'] = [1,2,3]
command.execute(client)
end
end

View File

@ -60,6 +60,7 @@ RSpec.configure do |config|
config.capture_log_messages
Google::Apis.logger.level = Logger::DEBUG
WebMock::Config.instance.query_values_notation = :flat_array
end
[JsonSpec::Matchers::BeJsonEql,
@ -121,4 +122,3 @@ end
def run_integration_tests?
ENV['GOOGLE_APPLICATION_CREDENTIALS'] && ENV['GOOGLE_PROJECT_ID']
end