aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2014-05-23 10:52:58 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2014-05-23 10:57:25 -0700
commit6fd8346400f99c33cf207d422a22730427420dbb (patch)
treec56f7e2d27515b7b1ecbde34fdcd722448e66c6b /actionpack
parent6ed5b01f97cd6551e0072a9fb603f9c2487419ba (diff)
downloadrails-6fd8346400f99c33cf207d422a22730427420dbb.tar.gz
rails-6fd8346400f99c33cf207d422a22730427420dbb.tar.bz2
rails-6fd8346400f99c33cf207d422a22730427420dbb.zip
pass the correct custom request to the recognize method
Diffstat (limited to 'actionpack')
-rw-r--r--actionpack/lib/action_dispatch/journey/router.rb4
-rw-r--r--actionpack/lib/action_dispatch/routing/route_set.rb2
-rw-r--r--actionpack/test/journey/router_test.rb23
3 files changed, 12 insertions, 17 deletions
diff --git a/actionpack/lib/action_dispatch/journey/router.rb b/actionpack/lib/action_dispatch/journey/router.rb
index 218c9e9d55..6bd77925a2 100644
--- a/actionpack/lib/action_dispatch/journey/router.rb
+++ b/actionpack/lib/action_dispatch/journey/router.rb
@@ -57,9 +57,7 @@ module ActionDispatch
return [404, {'X-Cascade' => 'pass'}, ['Not Found']]
end
- def recognize(req)
- rails_req = request_class.new(req.env)
-
+ def recognize(rails_req)
find_routes(rails_req).each do |match, parameters, route|
unless route.path.anchored
rails_req.script_name = match.to_s
diff --git a/actionpack/lib/action_dispatch/routing/route_set.rb b/actionpack/lib/action_dispatch/routing/route_set.rb
index 9d7164eef2..d2366bb300 100644
--- a/actionpack/lib/action_dispatch/routing/route_set.rb
+++ b/actionpack/lib/action_dispatch/routing/route_set.rb
@@ -699,7 +699,7 @@ module ActionDispatch
raise ActionController::RoutingError, e.message
end
- req = @request_class.new(env)
+ req = request_class.new(env)
@router.recognize(req) do |route, params|
params.merge!(extras)
params.each do |key, value|
diff --git a/actionpack/test/journey/router_test.rb b/actionpack/test/journey/router_test.rb
index d37fe1c625..0b3dd530a3 100644
--- a/actionpack/test/journey/router_test.rb
+++ b/actionpack/test/journey/router_test.rb
@@ -75,7 +75,7 @@ module ActionDispatch
def test_request_class_and_requirements_success
klass = FakeRequestFeeler.new nil
- router = Router.new(routes, {:request_class => klass })
+ router = Router.new(routes, {})
requirements = { :hello => /world/ }
@@ -84,7 +84,7 @@ module ActionDispatch
routes.add_route nil, path, requirements, {:id => nil}, {}
- env = rails_env 'PATH_INFO' => '/foo/10'
+ env = rails_env({'PATH_INFO' => '/foo/10'}, klass)
router.recognize(env) do |r, params|
assert_equal({:id => '10'}, params)
end
@@ -95,7 +95,7 @@ module ActionDispatch
def test_request_class_and_requirements_fail
klass = FakeRequestFeeler.new nil
- router = Router.new(routes, {:request_class => klass })
+ router = Router.new(routes, {})
requirements = { :hello => /mom/ }
@@ -104,7 +104,7 @@ module ActionDispatch
router.routes.add_route nil, path, requirements, {:id => nil}, {}
- env = rails_env 'PATH_INFO' => '/foo/10'
+ env = rails_env({'PATH_INFO' => '/foo/10'}, klass)
router.recognize(env) do |r, params|
flunk 'route should not be found'
end
@@ -131,7 +131,8 @@ module ActionDispatch
routes.add_route nil, path, {}, {}, {}
- env = rails_env 'PATH_INFO' => '/foo', 'custom.path_info' => '/bar'
+ env = rails_env({'PATH_INFO' => '/foo',
+ 'custom.path_info' => '/bar'}, CustomPathRequest)
recognized = false
router.recognize(env) do |r, params|
@@ -213,7 +214,7 @@ module ActionDispatch
def test_X_Cascade
add_routes @router, [ "/messages(.:format)" ]
- resp = @router.serve(make_req({ 'REQUEST_METHOD' => 'GET', 'PATH_INFO' => '/lol' }))
+ resp = @router.serve(rails_env({ 'REQUEST_METHOD' => 'GET', 'PATH_INFO' => '/lol' }))
assert_equal ['Not Found'], resp.last
assert_equal 'pass', resp[1]['X-Cascade']
assert_equal 404, resp.first
@@ -226,7 +227,7 @@ module ActionDispatch
@router.routes.add_route(app, path, {}, {}, {})
env = rack_env('SCRIPT_NAME' => '', 'PATH_INFO' => '/weblog')
- resp = @router.serve make_req env
+ resp = @router.serve rails_env env
assert_equal ['success!'], resp.last
assert_equal '', env['SCRIPT_NAME']
end
@@ -567,12 +568,8 @@ module ActionDispatch
RailsEnv = Struct.new(:env)
- def rails_env env
- RailsEnv.new rack_env env
- end
-
- def make_req env
- ActionDispatch::Request.new env
+ def rails_env env, klass = ActionDispatch::Request
+ klass.new env
end
def rack_env env