Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

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 1dacfba.

[fixes #14691]
  • Loading branch information...
commit b199a00aeafd445943ab8a88ea4233371a323481 1 parent 3023363
@arthurnn arthurnn authored
View
8 actionpack/lib/action_dispatch/testing/assertions/response.rb
@@ -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
View
6 actionpack/test/controller/integration_test.rb
@@ -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
Please sign in to comment.
Something went wrong with that request. Please try again.