Use with_routing helper in tests instead of modifying global route set

This commit is contained in:
Joshua Peek 2009-10-03 23:31:38 -05:00
parent 61411f2aeb
commit 86ed58d912
4 changed files with 119 additions and 95 deletions

@ -46,14 +46,8 @@ def trailing_slash
class PageCachingTest < ActionController::TestCase class PageCachingTest < ActionController::TestCase
def setup def setup
super super
ActionController::Base.perform_caching = true
ActionController::Routing::Routes.draw do |map| ActionController::Base.perform_caching = true
map.main '', :controller => 'posts', :format => nil
map.formatted_posts 'posts.:format', :controller => 'posts'
map.resources :posts
map.connect ':controller/:action/:id'
end
@request = ActionController::TestRequest.new @request = ActionController::TestRequest.new
@request.host = 'hostname.com' @request.host = 'hostname.com'
@ -74,11 +68,17 @@ def teardown
end end
def test_page_caching_resources_saves_to_correct_path_with_extension_even_if_default_route def test_page_caching_resources_saves_to_correct_path_with_extension_even_if_default_route
with_routing do |set|
set.draw do |map|
map.main '', :controller => 'posts', :format => nil
map.formatted_posts 'posts.:format', :controller => 'posts'
end
@params[:format] = 'rss' @params[:format] = 'rss'
assert_equal '/posts.rss', @rewriter.rewrite(@params) assert_equal '/posts.rss', @rewriter.rewrite(@params)
@params[:format] = nil @params[:format] = nil
assert_equal '/', @rewriter.rewrite(@params) assert_equal '/', @rewriter.rewrite(@params)
end end
end
def test_should_cache_get_with_ok_status def test_should_cache_get_with_ok_status
get :ok get :ok

@ -527,12 +527,6 @@ def setup
super super
ActionController::Base.use_accept_header = true ActionController::Base.use_accept_header = true
@request.host = "www.example.com" @request.host = "www.example.com"
ActionController::Routing::Routes.draw do |map|
map.resources :customers
map.resources :quiz_stores, :has_many => :customers
map.connect ":controller/:action/:id"
end
end end
def teardown def teardown
@ -593,6 +587,7 @@ def test_using_resource
end end
def test_using_resource_for_post_with_html def test_using_resource_for_post_with_html
with_test_route_set do
post :using_resource post :using_resource
assert_equal "text/html", @response.content_type assert_equal "text/html", @response.content_type
assert_equal 302, @response.status assert_equal 302, @response.status
@ -607,8 +602,10 @@ def test_using_resource_for_post_with_html
assert_equal "New world!\n", @response.body assert_equal "New world!\n", @response.body
assert_nil @response.location assert_nil @response.location
end end
end
def test_using_resource_for_post_with_xml def test_using_resource_for_post_with_xml
with_test_route_set do
@request.accept = "application/xml" @request.accept = "application/xml"
post :using_resource post :using_resource
@ -625,8 +622,10 @@ def test_using_resource_for_post_with_xml
assert_equal errors.to_xml, @response.body assert_equal errors.to_xml, @response.body
assert_nil @response.location assert_nil @response.location
end end
end
def test_using_resource_for_put_with_html def test_using_resource_for_put_with_html
with_test_route_set do
put :using_resource put :using_resource
assert_equal "text/html", @response.content_type assert_equal "text/html", @response.content_type
assert_equal 302, @response.status assert_equal 302, @response.status
@ -641,6 +640,7 @@ def test_using_resource_for_put_with_html
assert_equal "Edit world!\n", @response.body assert_equal "Edit world!\n", @response.body
assert_nil @response.location assert_nil @response.location
end end
end
def test_using_resource_for_put_with_xml def test_using_resource_for_put_with_xml
@request.accept = "application/xml" @request.accept = "application/xml"
@ -660,12 +660,14 @@ def test_using_resource_for_put_with_xml
end end
def test_using_resource_for_delete_with_html def test_using_resource_for_delete_with_html
with_test_route_set do
Customer.any_instance.stubs(:destroyed?).returns(true) Customer.any_instance.stubs(:destroyed?).returns(true)
delete :using_resource delete :using_resource
assert_equal "text/html", @response.content_type assert_equal "text/html", @response.content_type
assert_equal 302, @response.status assert_equal 302, @response.status
assert_equal "http://www.example.com/customers", @response.location assert_equal "http://www.example.com/customers", @response.location
end end
end
def test_using_resource_for_delete_with_xml def test_using_resource_for_delete_with_xml
Customer.any_instance.stubs(:destroyed?).returns(true) Customer.any_instance.stubs(:destroyed?).returns(true)
@ -685,6 +687,7 @@ def test_using_resource_with_parent_for_get
end end
def test_using_resource_with_parent_for_post def test_using_resource_with_parent_for_post
with_test_route_set do
@request.accept = "application/xml" @request.accept = "application/xml"
post :using_resource_with_parent post :using_resource_with_parent
@ -701,6 +704,7 @@ def test_using_resource_with_parent_for_post
assert_equal errors.to_xml, @response.body assert_equal errors.to_xml, @response.body
assert_nil @response.location assert_nil @response.location
end end
end
def test_using_resource_with_collection def test_using_resource_with_collection
@request.accept = "application/xml" @request.accept = "application/xml"
@ -773,6 +777,18 @@ def test_not_acceptable
get :default_overwritten get :default_overwritten
assert_equal 406, @response.status assert_equal 406, @response.status
end end
private
def with_test_route_set
with_routing do |set|
set.draw do |map|
map.resources :customers
map.resources :quiz_stores, :has_many => :customers
map.connect ":controller/:action/:id"
end
yield
end
end
end end
class AbstractPostController < ActionController::Base class AbstractPostController < ActionController::Base

@ -111,13 +111,6 @@ def unconditional_redirect
tests TestController tests TestController
setup do
ActionController::Routing::Routes.draw do |map|
map.foo '/foo', :controller => 'test', :action => 'foo'
map.connect ":controller/:action/:id"
end
end
def test_using_symbol_back_with_no_referrer def test_using_symbol_back_with_no_referrer
assert_raise(ActionController::RedirectBackError) { get :guarded_with_back } assert_raise(ActionController::RedirectBackError) { get :guarded_with_back }
end end
@ -130,10 +123,16 @@ def test_using_symbol_back_redirects_to_referrer
def test_no_deprecation_warning_for_named_route def test_no_deprecation_warning_for_named_route
assert_not_deprecated do assert_not_deprecated do
with_routing do |set|
set.draw do |map|
map.foo '/foo', :controller => 'test', :action => 'foo'
map.connect ":controller/:action/:id"
end
get :guarded_one_for_named_route_test, :two => "not one" get :guarded_one_for_named_route_test, :two => "not one"
assert_redirected_to '/foo' assert_redirected_to '/foo'
end end
end end
end
def test_guarded_one_with_prereqs def test_guarded_one_with_prereqs
get :guarded_one, :one => "here" get :guarded_one, :one => "here"

@ -19,27 +19,24 @@ def link_to_person(person)
end end
class PeopleHelperTest < ActionView::TestCase class PeopleHelperTest < ActionView::TestCase
def setup
super
ActionController::Routing::Routes.draw do |map|
map.people 'people', :controller => 'people', :action => 'index'
map.connect ':controller/:action/:id'
end
end
def test_title def test_title
assert_equal "<h1>Ruby on Rails</h1>", title("Ruby on Rails") assert_equal "<h1>Ruby on Rails</h1>", title("Ruby on Rails")
end end
def test_homepage_path def test_homepage_path
with_test_route_set do
assert_equal "/people", homepage_path assert_equal "/people", homepage_path
end end
end
def test_homepage_url def test_homepage_url
with_test_route_set do
assert_equal "http://test.host/people", homepage_url assert_equal "http://test.host/people", homepage_url
end end
end
def test_link_to_person def test_link_to_person
with_test_route_set do
person = mock(:name => "David") person = mock(:name => "David")
person.class.extend ActiveModel::Naming person.class.extend ActiveModel::Naming
expects(:mocha_mock_path).with(person).returns("/people/1") expects(:mocha_mock_path).with(person).returns("/people/1")
@ -47,6 +44,18 @@ def test_link_to_person
end end
end end
private
def with_test_route_set
with_routing do |set|
set.draw do |map|
map.people 'people', :controller => 'people', :action => 'index'
map.connect ':controller/:action/:id'
end
yield
end
end
end
class CrazyHelperTest < ActionView::TestCase class CrazyHelperTest < ActionView::TestCase
tests PeopleHelper tests PeopleHelper