Added more tests on assert_redirected_to #1581 [Rick Olson]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1609 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
parent
eb2b86d795
commit
177ed3e681
|
@ -10,7 +10,7 @@
|
|||
|
||||
xml.cdata! "some text" # => <![CDATA[some text]]>
|
||||
|
||||
* Added evaluation of <SCRIPT> blocks in content returned to Ajax calls #1577 [Thomas Fuchs/court3nay]
|
||||
* Added evaluation of <SCRIPT> blocks in content returned to Ajax calls #1577 [Thomas Fuchs/court3nay/Sean Treadway]
|
||||
|
||||
* Directly generate paths with a leading slash instead of tacking it on later. #1543 [Nicholas Seckar]
|
||||
|
||||
|
|
|
@ -56,11 +56,10 @@ module Test #:nodoc:
|
|||
# such at assert_redirected_to(:controller => "weblog") will also match the redirection of
|
||||
# redirect_to(:controller => "weblog", :action => "show") and so on.
|
||||
def assert_redirected_to(options = {}, message=nil)
|
||||
assert_redirect(message)
|
||||
assert_response(:redirect, message)
|
||||
|
||||
if options.is_a?(String)
|
||||
msg = build_message(message, "expected a redirect to <?>, found one to <?>", options, @response.redirect_url)
|
||||
|
||||
url_regexp = %r{^(\w+://.*?(/|$|\?))(.*)$}
|
||||
eurl, epath, url, path = [options, @response.redirect_url].collect do |url|
|
||||
u, p = (url_regexp =~ url) ? [$1, $3] : [nil, url]
|
||||
|
|
|
@ -13,6 +13,10 @@ class RedirectController < ActionController::Base
|
|||
redirect_to :action => "other_host", :only_path => false, :host => 'other.test.host'
|
||||
end
|
||||
|
||||
def module_redirect
|
||||
redirect_to :controller => 'module_test/module_redirect', :action => "hello_world"
|
||||
end
|
||||
|
||||
def rescue_errors(e) raise e end
|
||||
|
||||
protected
|
||||
|
@ -42,4 +46,55 @@ class RedirectTest < Test::Unit::TestCase
|
|||
get :host_redirect
|
||||
assert_redirected_to :action => "other_host", :only_path => false, :host => 'other.test.host'
|
||||
end
|
||||
|
||||
def test_module_redirect
|
||||
get :module_redirect
|
||||
assert_redirect_url "http://test.host/module_test/module_redirect/hello_world"
|
||||
end
|
||||
|
||||
def test_module_redirect_using_options
|
||||
get :module_redirect
|
||||
assert_redirected_to :controller => 'module_test/module_redirect', :action => 'hello_world'
|
||||
end
|
||||
end
|
||||
|
||||
module ModuleTest
|
||||
class ModuleRedirectController < ::RedirectController
|
||||
def module_redirect
|
||||
redirect_to :controller => '/redirect', :action => "hello_world"
|
||||
end
|
||||
end
|
||||
|
||||
class ModuleRedirectTest < Test::Unit::TestCase
|
||||
def setup
|
||||
@controller = ModuleRedirectController.new
|
||||
@request = ActionController::TestRequest.new
|
||||
@response = ActionController::TestResponse.new
|
||||
end
|
||||
|
||||
def test_simple_redirect
|
||||
get :simple_redirect
|
||||
assert_redirect_url "http://test.host/module_test/module_redirect/hello_world"
|
||||
end
|
||||
|
||||
def test_redirect_with_method_reference_and_parameters
|
||||
get :method_redirect
|
||||
assert_redirect_url "http://test.host/module_test/module_redirect/dashboard/1?message=hello"
|
||||
end
|
||||
|
||||
def test_simple_redirect_using_options
|
||||
get :host_redirect
|
||||
assert_redirected_to :action => "other_host", :only_path => false, :host => 'other.test.host'
|
||||
end
|
||||
|
||||
def test_module_redirect
|
||||
get :module_redirect
|
||||
assert_redirect_url "http://test.host/redirect/hello_world"
|
||||
end
|
||||
|
||||
def test_module_redirect_using_options
|
||||
get :module_redirect
|
||||
assert_redirected_to :controller => 'redirect', :action => "hello_world"
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue