Skip to content

Commit

Permalink
when do post request with Typhoeus, the hash params is not request.bo…
Browse files Browse the repository at this point in the history
…dy, but request.params
  • Loading branch information
niedhui committed May 9, 2011
1 parent 6fccb22 commit a5acb1b
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 17 deletions.
4 changes: 2 additions & 2 deletions lib/oauth/request_proxy/typhoeus_request.rb
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ def query_parameters

def post_parameters
# Post params are only used if posting form data
if(method == 'POST' && request.headers['Content-Type'] && request.headers['Content-Type'].downcase == 'application/x-www-form-urlencoded')
request.body || {}
if(method == 'POST')
OAuth::Helper.stringify_keys(request.params || {})
else
{}
end
Expand Down
30 changes: 15 additions & 15 deletions test/test_typhoeus_request_proxy.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,64 +10,64 @@ class TyphoeusRequestProxyTest < Test::Unit::TestCase
def test_that_proxy_simple_get_request_works
request = ::Typhoeus::Request.new('/test?key=value')
request_proxy = OAuth::RequestProxy.proxy(request, {:uri => 'http://example.com/test?key=value'})

expected_parameters = {'key' => ['value']}
assert_equal expected_parameters, request_proxy.parameters_for_signature
assert_equal 'http://example.com/test', request_proxy.normalized_uri
assert_equal 'GET', request_proxy.method
end

def test_that_proxy_simple_post_request_works_with_arguments
request = Typhoeus::Request.new('/test', :method => :post)
params = {'key' => 'value'}
request_proxy = OAuth::RequestProxy.proxy(request, {:uri => 'http://example.com/test', :parameters => params})

expected_parameters = {'key' => 'value'}
assert_equal expected_parameters, request_proxy.parameters_for_signature
assert_equal 'http://example.com/test', request_proxy.normalized_uri
assert_equal 'POST', request_proxy.method
end

def test_that_proxy_simple_post_request_works_with_form_data
request = Typhoeus::Request.new('/test', :method => :post,
:body => {'key' => 'value'},
:params => {'key' => 'value'},
:headers => {'Content-Type' => 'application/x-www-form-urlencoded'})
request_proxy = OAuth::RequestProxy.proxy(request, {:uri => 'http://example.com/test'})

expected_parameters = {'key' => 'value'}
assert_equal expected_parameters, request_proxy.parameters_for_signature
assert_equal 'http://example.com/test', request_proxy.normalized_uri
assert_equal 'POST', request_proxy.method
end

def test_that_proxy_simple_put_request_works_with_arguments
request = Typhoeus::Request.new('/test', :method => :put)
params = {'key' => 'value'}
request_proxy = OAuth::RequestProxy.proxy(request, {:uri => 'http://example.com/test', :parameters => params})

expected_parameters = {'key' => 'value'}
assert_equal expected_parameters, request_proxy.parameters_for_signature
assert_equal 'http://example.com/test', request_proxy.normalized_uri
assert_equal 'PUT', request_proxy.method
end

def test_that_proxy_simple_put_request_works_with_form_data
request = Typhoeus::Request.new('/test', :method => :put, :body => {'key' => 'value'})
request = Typhoeus::Request.new('/test', :method => :put, :params => {'key' => 'value'})
request_proxy = OAuth::RequestProxy.proxy(request, {:uri => 'http://example.com/test'})

expected_parameters = {}
expected_parameters = {'key' => ['value']}
assert_equal expected_parameters, request_proxy.parameters_for_signature
assert_equal 'http://example.com/test', request_proxy.normalized_uri
assert_equal 'PUT', request_proxy.method
end

def test_that_proxy_post_request_works_with_mixed_parameter_sources
request = Typhoeus::Request.new('/test?key=value',
:method => :post,
:body => {'key2' => 'value2'},
:params => {'key2' => 'value2'},
:headers => {'Content-Type' => 'application/x-www-form-urlencoded'})
request_proxy = OAuth::RequestProxy.proxy(request, {:uri => 'http://example.com/test?key=value', :parameters => {'key3' => 'value3'}})

expected_parameters = {'key' => ['value'], 'key2' => 'value2', 'key3' => 'value3'}
assert_equal expected_parameters, request_proxy.parameters_for_signature
assert_equal 'http://example.com/test', request_proxy.normalized_uri
Expand Down

0 comments on commit a5acb1b

Please sign in to comment.