Fix regression on `assert_redirected_to`.

`assert_redirected_to` would fail if there is no controller set on
a `ActionDispatch::IntegrationTest`, as _compute_redirect_to_location
would be called on the controller to build the url.

This regression was introduced after 1dacfbab.

[fixes #14691]
上级 84908bbd
......@@ -73,7 +73,13 @@ def normalize_argument_to_redirection(fragment)
if Regexp === fragment
fragment
else
@controller._compute_redirect_to_location(fragment)
handle = @controller || Class.new(ActionController::Metal) do
include ActionController::Redirecting
def initialize(request)
@_request = request
end
end.new(@request)
handle._compute_redirect_to_location(fragment)
end
end
end
......
......@@ -374,6 +374,10 @@ def test_redirect
follow_redirect!
assert_response :success
assert_equal "/get", path
get '/moved'
assert_response :redirect
assert_redirected_to '/method'
end
end
......@@ -511,6 +515,8 @@ def with_test_route_set
end
set.draw do
get 'moved' => redirect('/method')
match ':action', :to => controller, :via => [:get, :post], :as => :action
get 'get/:action', :to => controller, :as => :get_action
end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册