Fix #292 - ensure multivalued parameters are encoded correctly
This commit is contained in:
parent
549e4bd113
commit
81a061cb80
|
@ -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 }
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue