make NestedParamsEncoder the default in 0.9

This commit is contained in:
technoweenie 2012-12-28 09:24:42 -07:00
parent af73cdddc5
commit b035bcb990
3 changed files with 33 additions and 11 deletions

View File

@ -92,7 +92,7 @@ module Faraday
:oauth) :oauth)
def params_encoder def params_encoder
self[:params_encoder] ||= NestedParamsEncoder self[:params_encoder] ||= Faraday::Utils.default_params_encoder
end end
end end

View File

@ -175,11 +175,13 @@ module Faraday
NestedParamsEncoder.decode(query) NestedParamsEncoder.decode(query)
end end
class << self def default_params_encoder
attr_accessor :default_params_encoder @default_params_encoder ||= NestedParamsEncoder
end end
self.default_params_encoder = FlatParamsEncoder class << self
attr_writer :default_params_encoder
end
# Stolen from Rack # Stolen from Rack
def normalize_params(params, name, v = nil) def normalize_params(params, name, v = nil)

View File

@ -3,6 +3,10 @@ require 'uri'
class TestConnection < Faraday::TestCase class TestConnection < Faraday::TestCase
def teardown
Faraday::Utils.default_params_encoder = nil
end
def with_env(key, proxy) def with_env(key, proxy)
old_value = ENV.fetch(key, false) old_value = ENV.fetch(key, false)
ENV[key] = proxy ENV[key] = proxy
@ -323,13 +327,6 @@ class TestRequestParams < Faraday::TestCase
end end
end end
def get(*args)
env = @conn.get(*args) do |req|
yield req if block_given?
end
env[:url].query
end
def assert_query_equal(expected, query) def assert_query_equal(expected, query)
assert_equal expected, query.split('&').sort assert_equal expected, query.split('&').sort
end end
@ -390,14 +387,37 @@ class TestRequestParams < Faraday::TestCase
end end
def test_array_params_in_url def test_array_params_in_url
Faraday::Utils.default_params_encoder = nil
create_connection 'http://a.co/page1?color[]=red&color[]=blue' create_connection 'http://a.co/page1?color[]=red&color[]=blue'
query = get query = get
assert_equal "color%5B%5D=red&color%5B%5D=blue", query assert_equal "color%5B%5D=red&color%5B%5D=blue", query
end end
def test_array_params_in_params def test_array_params_in_params
Faraday::Utils.default_params_encoder = nil
create_connection 'http://a.co/page1', :params => {:color => ['red', 'blue']} create_connection 'http://a.co/page1', :params => {:color => ['red', 'blue']}
query = get query = get
assert_equal "color%5B%5D=red&color%5B%5D=blue", query assert_equal "color%5B%5D=red&color%5B%5D=blue", query
end end
def test_array_params_in_url_with_flat_params
Faraday::Utils.default_params_encoder = Faraday::FlatParamsEncoder
create_connection 'http://a.co/page1?color=red&color=blue'
query = get
assert_equal "color=red&color=blue", query
end
def test_array_params_in_params_with_flat_params
Faraday::Utils.default_params_encoder = Faraday::FlatParamsEncoder
create_connection 'http://a.co/page1', :params => {:color => ['red', 'blue']}
query = get
assert_equal "color=red&color=blue", query
end
def get(*args)
env = @conn.get(*args) do |req|
yield req if block_given?
end
env[:url].query
end
end end