Fixed assert_redirected_to to handle absolute controller paths properly #1472 [Rick Olson/Nicholas Seckar]

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1533 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
David Heinemeier Hansson
2005-06-27 05:36:03 +00:00
parent de1f231c32
commit 2269c23699
3 changed files with 29 additions and 6 deletions

View File

@@ -1,5 +1,7 @@
*SVN*
* Fixed assert_redirected_to to handle absolute controller paths properly #1472 [Rick Olson/Nicholas Seckar]
* Added event-based observations when frequency is not set on observe_field/form #1474 [flash@vanklinkenbergsoftware.nl]
* Added script.aculo.us Javascripts (controls.js, dragdrop.js, effects.js) (NEEDS MORE DESCRIPTION) #1509 [Thomas Fuchs]

View File

@@ -78,8 +78,10 @@ module Test #:nodoc:
if options.is_a?(Symbol)
@response.redirected_to == options
else
options.keys.all? do |k|
options[k] == (@response.redirected_to[k].respond_to?(:to_param) ? @response.redirected_to[k].to_param : @response.redirected_to[k] unless @response.redirected_to[k].nil?)
options.keys.all? do |k|
if k == :controller then options[k] == ActionController::Routing.controller_relative_to(@response.redirected_to[k], @controller.class.controller_path)
else options[k] == (@response.redirected_to[k].respond_to?(:to_param) ? @response.redirected_to[k].to_param : @response.redirected_to[k] unless @response.redirected_to[k].nil?)
end
end
end
end

View File

@@ -79,7 +79,17 @@ class ActionPackAssertionsController < ActionController::Base
# 911
def rescue_action(e) raise; end
end
module Admin
class InnerModuleController < ActionController::Base
def redirect_to_absolute_controller
redirect_to :controller => '/content'
end
def redirect_to_fellow_controller
redirect_to :controller => 'user'
end
end
end
# ---------------------------------------------------------------------------
@@ -392,6 +402,15 @@ class ActionPackAssertionsControllerTest < Test::Unit::TestCase
process :redirect_to_path
assert_redirected_to 'http://test.host/some/path'
end
def test_redirected_to_with_nested_controller
@controller = Admin::InnerModuleController.new
get :redirect_to_absolute_controller
assert_redirected_to :controller => 'content'
get :redirect_to_fellow_controller
assert_redirected_to :controller => 'admin/user'
end
end
class ActionPackHeaderTest < Test::Unit::TestCase
@@ -404,8 +423,8 @@ class ActionPackHeaderTest < Test::Unit::TestCase
assert_equal('text/xml', @controller.headers['Content-Type'])
end
def test_rendering_xml_respects_content_type
@response.headers['Content-Type'] = 'application/pdf'
process :hello_xml_world
assert_equal('application/pdf', @controller.headers['Content-Type'])
@response.headers['Content-Type'] = 'application/pdf'
process :hello_xml_world
assert_equal('application/pdf', @controller.headers['Content-Type'])
end
end