Fix #292 - ensure multivalued parameters are encoded correctly
This commit is contained in:
parent
549e4bd113
commit
81a061cb80
|
@ -254,6 +254,11 @@ module Google
|
||||||
begin
|
begin
|
||||||
logger.debug { sprintf('Sending HTTP %s %s', method, url) }
|
logger.debug { sprintf('Sending HTTP %s %s', method, url) }
|
||||||
response = client.send(method, url, body) do |req|
|
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)
|
apply_request_options(req)
|
||||||
end
|
end
|
||||||
logger.debug { response.status_code }
|
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))
|
expect { |b| command.execute(client, &b) }.to yield_with_args(nil, an_instance_of(Google::Apis::ClientError))
|
||||||
end
|
end
|
||||||
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
|
end
|
||||||
|
|
|
@ -60,6 +60,7 @@ RSpec.configure do |config|
|
||||||
config.capture_log_messages
|
config.capture_log_messages
|
||||||
|
|
||||||
Google::Apis.logger.level = Logger::DEBUG
|
Google::Apis.logger.level = Logger::DEBUG
|
||||||
|
WebMock::Config.instance.query_values_notation = :flat_array
|
||||||
end
|
end
|
||||||
|
|
||||||
[JsonSpec::Matchers::BeJsonEql,
|
[JsonSpec::Matchers::BeJsonEql,
|
||||||
|
@ -121,4 +122,3 @@ end
|
||||||
def run_integration_tests?
|
def run_integration_tests?
|
||||||
ENV['GOOGLE_APPLICATION_CREDENTIALS'] && ENV['GOOGLE_PROJECT_ID']
|
ENV['GOOGLE_APPLICATION_CREDENTIALS'] && ENV['GOOGLE_PROJECT_ID']
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue