diff --git a/actionpack/lib/action_controller/assertions.rb b/actionpack/lib/action_controller/assertions.rb index 2402e0941b4885cd8b4aa45a334ab299e4b3cd5f..3fc65d5bd9f6268ce4b759a3b1db940c36373053 100644 --- a/actionpack/lib/action_controller/assertions.rb +++ b/actionpack/lib/action_controller/assertions.rb @@ -85,8 +85,8 @@ def assert_redirected_to(options = {}, message=nil) assert_equal(eurl, url, msg) if eurl && url assert_equal(epath, path, msg) if epath && path else - @response_diff = options.diff(@response.redirected_to) if @response.redirected_to - msg = build_message(message, "response is not a redirection to all of the options supplied (redirection is ), difference: ", + @response_diff = options.diff(@response.redirected_to) if options.is_a?(Hash) && @response.redirected_to.is_a?(Hash) + msg = build_message(message, "response is not a redirection to all of the options supplied (redirection is )#{', difference: ' if @response_diff}", @response.redirected_to || @response.redirect_url, @response_diff) assert_block(msg) do diff --git a/actionpack/test/controller/test_test.rb b/actionpack/test/controller/test_test.rb index 06a2ce3eb78c5a20711f245f47e69ce753bbebab..88e0c159a71c0f9a81d244297ce0d732e995745c 100644 --- a/actionpack/test/controller/test_test.rb +++ b/actionpack/test/controller/test_test.rb @@ -7,7 +7,7 @@ def set_flash flash["test"] = ">#{flash["test"]}<" render :text => 'ignore me' end - + def render_raw_post raise Test::Unit::AssertionFailedError, "#raw_post is blank" if request.raw_post.blank? render :text => request.raw_post @@ -54,9 +54,19 @@ def test_file_upload render :text => params[:file].size end - def rescue_action(e) - raise e + def redirect_to_symbol + redirect_to :generate_url, :id => 5 end + + private + + def rescue_action(e) + raise e + end + + def generate_url(opts) + url_for(opts.merge(:action => "test_uri")) + end end def setup @@ -393,4 +403,9 @@ def test_fixture_file_upload def test_test_uploaded_file_exception_when_file_doesnt_exist assert_raise(RuntimeError) { ActionController::TestUploadedFile.new('non_existent_file') } end + + def test_assert_redirected_to_symbol + get :redirect_to_symbol + assert_redirected_to :generate_url + end end