Skip to content

Commit ba97167

Browse files
authored
Merge pull request #150 from xprazak2/action-dispatch
Fixes UnknownRequestType on Rails 5.1 for ActionDispatch::Request
2 parents c3c9b47 + bfbdc56 commit ba97167

File tree

7 files changed

+51
-6
lines changed

7 files changed

+51
-6
lines changed

.travis.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@ rvm:
55
- "2.4.0"
66
- "2.3"
77
- "2.2"
8-
- "2.1"
9-
- "2.0"
108

119
addons:
1210
code_climate:

lib/oauth/client/action_controller_request.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
if defined? ActionDispatch
22
require 'oauth/request_proxy/rack_request'
3+
require 'oauth/request_proxy/action_dispatch_request'
34
require 'action_dispatch/testing/test_process'
45
else
56
require 'oauth/request_proxy/action_controller_request'

lib/oauth/request_proxy/action_controller_request.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
ActionDispatch::Request::HTTP_METHOD_LOOKUP["patch"] = :patch
2424
end
2525

26-
else # rails 4.x - already has patch
26+
else # rails 4.x and later - already has patch
2727
require 'action_dispatch/http/request'
2828
end
2929

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
require 'oauth/request_proxy/rack_request'
2+
3+
module OAuth::RequestProxy
4+
class ActionDispatchRequest < OAuth::RequestProxy::RackRequest
5+
proxies ActionDispatch::Request
6+
end
7+
end

oauth.gemspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ Gem::Specification.new do |spec|
2828
spec.add_development_dependency("rake")
2929
spec.add_development_dependency("minitest")
3030
spec.add_development_dependency("byebug")
31-
spec.add_development_dependency("actionpack", "~> 4.0")
31+
spec.add_development_dependency("actionpack", ">= 5.0")
3232
spec.add_development_dependency("iconv")
33-
spec.add_development_dependency("rack", "~> 1.0")
33+
spec.add_development_dependency("rack", "~> 2.0")
3434
spec.add_development_dependency("rack-test")
3535
spec.add_development_dependency("mocha", ">= 0.9.12")
3636
spec.add_development_dependency("typhoeus", ">= 0.1.13")

test/units/test_action_controller_request_proxy.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
class ActionControllerRequestProxyTest < Minitest::Test
66

77
def request_proxy(request_method = :get, uri_params = {}, body_params = {})
8-
request = ActionDispatch::TestRequest.new
8+
request = ActionDispatch::TestRequest.create
99
request.request_uri = '/'
1010

1111
case request_method
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
require File.expand_path('../../test_helper', __FILE__)
2+
3+
require 'oauth/request_proxy/action_dispatch_request'
4+
5+
class ActionRequestProxyTest < Minitest::Test
6+
7+
def test_that_proxy_simple_get_request_works
8+
request = ActionDispatch::Request.new(Rack::MockRequest.env_for('http://example.com/test?key=value'))
9+
request_proxy = OAuth::RequestProxy.proxy(request, {:uri => 'http://example.com/test?key=value'})
10+
11+
expected_parameters = {'key' => 'value'}
12+
assert_equal expected_parameters, request_proxy.parameters
13+
assert_equal 'http://example.com/test', request_proxy.normalized_uri
14+
assert_equal 'GET', request_proxy.method
15+
end
16+
17+
def test_that_proxy_simple_post_request_works
18+
request = ActionDispatch::Request.new(Rack::MockRequest.env_for('http://example.com/test', :method => 'POST'))
19+
params = {'key' => 'value'}
20+
request_proxy = OAuth::RequestProxy.proxy(request, {:uri => 'http://example.com/test', :parameters => params})
21+
22+
expected_parameters = {'key' => 'value'}
23+
assert_equal expected_parameters, request_proxy.parameters
24+
assert_equal 'http://example.com/test', request_proxy.normalized_uri
25+
assert_equal 'POST', request_proxy.method
26+
end
27+
28+
def test_that_proxy_post_and_get_request_works
29+
request = ActionDispatch::Request.new(Rack::MockRequest.env_for('http://example.com/test?key=value', :method => 'POST', :input => 'key2=value2'))
30+
params = {'key2' => 'value2'}
31+
request_proxy = OAuth::RequestProxy.proxy(request, {:uri => 'http://example.com/test?key=value', :parameters => params})
32+
33+
expected_parameters = {'key' => 'value', 'key2' => 'value2'}
34+
assert_equal expected_parameters, request_proxy.parameters
35+
assert_equal 'http://example.com/test', request_proxy.normalized_uri
36+
assert_equal 'POST', request_proxy.method
37+
end
38+
39+
end

0 commit comments

Comments
 (0)