From c45740b81c294acb81667371d37730592d558b98 Mon Sep 17 00:00:00 2001 From: Steven Bazyl Date: Tue, 18 Jun 2013 15:51:46 -0700 Subject: [PATCH] Fix normalization of parmeters keys --- lib/google/api_client/request.rb | 4 +++- spec/google/api_client/request_spec.rb | 30 ++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 spec/google/api_client/request_spec.rb diff --git a/lib/google/api_client/request.rb b/lib/google/api_client/request.rb index 5dc4d91a6..704f24b54 100644 --- a/lib/google/api_client/request.rb +++ b/lib/google/api_client/request.rb @@ -72,8 +72,10 @@ module Google # @option options [String, Symbol] :http_method # HTTP method when requesting a URI def initialize(options={}) - @parameters = Faraday::Utils::ParamsHash[options[:parameters] || {}] + @parameters = Faraday::Utils::ParamsHash.new @headers = Faraday::Utils::Headers.new + + self.parameters.merge!(options[:parameters]) unless options[:parameters].nil? self.headers.merge!(options[:headers]) unless options[:headers].nil? self.api_method = options[:api_method] self.authenticated = options[:authenticated] diff --git a/spec/google/api_client/request_spec.rb b/spec/google/api_client/request_spec.rb new file mode 100644 index 000000000..75f2bb8e1 --- /dev/null +++ b/spec/google/api_client/request_spec.rb @@ -0,0 +1,30 @@ +# Copyright 2012 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'spec_helper' + +require 'google/api_client' +require 'google/api_client/version' + +describe Google::APIClient::Request do + CLIENT = Google::APIClient.new(:application_name => 'API Client Tests') unless defined?(CLIENT) + + it 'should normalize parameter names to strings' do + request = Google::APIClient::Request.new(:uri => 'https://www.google.com', :parameters => { + :a => '1', 'b' => '2' + }) + request.parameters['a'].should == '1' + request.parameters['b'].should == '2' + end +end