From 84e94551f62d3bcbc71f1c6f3fda738342d984e2 Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Sat, 3 Oct 2009 20:45:49 -0500 Subject: [PATCH] Add custom "with_routing" to internal tests to fix reseting session after using with_routing. This only affects our internal AP tests. --- actionpack/test/abstract_unit.rb | 33 +++++++++++++++---- .../activerecord/active_record_store_test.rb | 1 - .../test/controller/integration_test.rb | 5 +-- actionpack/test/controller/rescue_test.rb | 1 - actionpack/test/controller/webservice_test.rb | 1 - .../request/json_params_parsing_test.rb | 1 - .../request/multipart_params_parsing_test.rb | 1 - .../request/query_string_parsing_test.rb | 1 - .../url_encoded_params_parsing_test.rb | 1 - .../request/xml_params_parsing_test.rb | 1 - .../dispatch/session/cookie_store_test.rb | 1 - .../dispatch/session/mem_cache_store_test.rb | 1 - .../test/lib/controller/fake_controllers.rb | 1 + actionpack/test/view/test_case_test.rb | 1 + 14 files changed, 30 insertions(+), 20 deletions(-) diff --git a/actionpack/test/abstract_unit.rb b/actionpack/test/abstract_unit.rb index aef3dd61659e9..b72dd4dd0f8ce 100644 --- a/actionpack/test/abstract_unit.rb +++ b/actionpack/test/abstract_unit.rb @@ -53,12 +53,33 @@ FIXTURE_LOAD_PATH = File.join(File.dirname(__FILE__), 'fixtures') class ActionController::IntegrationTest < ActiveSupport::TestCase - @@app = ActionDispatch::MiddlewareStack.new { |middleware| - middleware.use "ActionDispatch::ShowExceptions" - middleware.use "ActionDispatch::Callbacks" - middleware.use "ActionDispatch::ParamsParser" - middleware.use "Rack::Head" - }.build(ActionController::Routing::Routes) + def self.build_app(routes = nil) + ActionDispatch::MiddlewareStack.new { |middleware| + middleware.use "ActionDispatch::ShowExceptions" + middleware.use "ActionDispatch::Callbacks" + middleware.use "ActionDispatch::ParamsParser" + middleware.use "Rack::Head" + }.build(routes || ActionController::Routing::Routes) + end + + self.app = build_app + + def with_routing(&block) + real_routes = ActionController::Routing::Routes + ActionController::Routing.module_eval { remove_const :Routes } + + temporary_routes = ActionController::Routing::RouteSet.new + self.class.app = self.class.build_app(temporary_routes) + ActionController::Routing.module_eval { const_set :Routes, temporary_routes } + + yield temporary_routes + ensure + if ActionController::Routing.const_defined? :Routes + ActionController::Routing.module_eval { remove_const :Routes } + end + ActionController::Routing.const_set(:Routes, real_routes) if real_routes + self.class.app = self.class.build_app + end end module ActionView diff --git a/actionpack/test/activerecord/active_record_store_test.rb b/actionpack/test/activerecord/active_record_store_test.rb index 102b9cffdd87f..c6c079f88c2df 100644 --- a/actionpack/test/activerecord/active_record_store_test.rb +++ b/actionpack/test/activerecord/active_record_store_test.rb @@ -158,7 +158,6 @@ def with_test_route_set(options = {}) map.connect "/:action", :controller => "active_record_store_test/test" end @app = ActiveRecord::SessionStore.new(set, options.reverse_merge(:key => '_session_id')) - reset! yield end end diff --git a/actionpack/test/controller/integration_test.rb b/actionpack/test/controller/integration_test.rb index 0e4ca21143c07..508364d0b5bf3 100644 --- a/actionpack/test/controller/integration_test.rb +++ b/actionpack/test/controller/integration_test.rb @@ -372,11 +372,8 @@ def test_generate_url_with_controller def with_test_route_set with_routing do |set| set.draw do |map| - map.with_options :controller => "IntegrationProcessTest::Integration" do |c| - c.connect "/:action" - end + map.connect "/:action", :controller => "integration_process_test/integration" end - reset! yield end end diff --git a/actionpack/test/controller/rescue_test.rb b/actionpack/test/controller/rescue_test.rb index 6ad708bba1834..689359166fd05 100644 --- a/actionpack/test/controller/rescue_test.rb +++ b/actionpack/test/controller/rescue_test.rb @@ -347,7 +347,6 @@ def with_test_routing map.connect 'invalid', :controller => "rescue_test/test", :action => 'invalid' map.connect 'b00m', :controller => "rescue_test/test", :action => 'b00m' end - reset! yield end end diff --git a/actionpack/test/controller/webservice_test.rb b/actionpack/test/controller/webservice_test.rb index c04d20fbadd6d..0514c098bf1d6 100644 --- a/actionpack/test/controller/webservice_test.rb +++ b/actionpack/test/controller/webservice_test.rb @@ -259,7 +259,6 @@ def with_test_route_set c.connect "/", :action => "assign_parameters" end end - reset! yield end end diff --git a/actionpack/test/dispatch/request/json_params_parsing_test.rb b/actionpack/test/dispatch/request/json_params_parsing_test.rb index 995f36bb296d6..db6cf7b330fcb 100644 --- a/actionpack/test/dispatch/request/json_params_parsing_test.rb +++ b/actionpack/test/dispatch/request/json_params_parsing_test.rb @@ -59,7 +59,6 @@ def with_test_routing set.draw do |map| map.connect ':action', :controller => "json_params_parsing_test/test" end - reset! yield end end diff --git a/actionpack/test/dispatch/request/multipart_params_parsing_test.rb b/actionpack/test/dispatch/request/multipart_params_parsing_test.rb index d4ee4362eb3e6..301080842eddd 100644 --- a/actionpack/test/dispatch/request/multipart_params_parsing_test.rb +++ b/actionpack/test/dispatch/request/multipart_params_parsing_test.rb @@ -153,7 +153,6 @@ def with_test_routing set.draw do |map| map.connect ':action', :controller => "multipart_params_parsing_test/test" end - reset! yield end end diff --git a/actionpack/test/dispatch/request/query_string_parsing_test.rb b/actionpack/test/dispatch/request/query_string_parsing_test.rb index 2261934e45914..a31e326ddfb8b 100644 --- a/actionpack/test/dispatch/request/query_string_parsing_test.rb +++ b/actionpack/test/dispatch/request/query_string_parsing_test.rb @@ -111,7 +111,6 @@ def assert_parses(expected, actual) set.draw do |map| map.connect ':action', :controller => "query_string_parsing_test/test" end - reset! get "/parse", actual assert_response :ok diff --git a/actionpack/test/dispatch/request/url_encoded_params_parsing_test.rb b/actionpack/test/dispatch/request/url_encoded_params_parsing_test.rb index 6c9967d26eb28..7167cdafacbd9 100644 --- a/actionpack/test/dispatch/request/url_encoded_params_parsing_test.rb +++ b/actionpack/test/dispatch/request/url_encoded_params_parsing_test.rb @@ -132,7 +132,6 @@ def with_test_routing set.draw do |map| map.connect ':action', :controller => "url_encoded_params_parsing_test/test" end - reset! yield end end diff --git a/actionpack/test/dispatch/request/xml_params_parsing_test.rb b/actionpack/test/dispatch/request/xml_params_parsing_test.rb index 2f2dd695c4090..521002b519d0a 100644 --- a/actionpack/test/dispatch/request/xml_params_parsing_test.rb +++ b/actionpack/test/dispatch/request/xml_params_parsing_test.rb @@ -86,7 +86,6 @@ def with_test_routing set.draw do |map| map.connect ':action', :controller => "xml_params_parsing_test/test" end - reset! yield end end diff --git a/actionpack/test/dispatch/session/cookie_store_test.rb b/actionpack/test/dispatch/session/cookie_store_test.rb index 6241c79829fea..ab5fabde656bf 100644 --- a/actionpack/test/dispatch/session/cookie_store_test.rb +++ b/actionpack/test/dispatch/session/cookie_store_test.rb @@ -223,7 +223,6 @@ def with_test_route_set(options = {}) end options = {:key => SessionKey, :secret => SessionSecret}.merge(options) @app = ActionDispatch::Session::CookieStore.new(set, options) - reset! yield end end diff --git a/actionpack/test/dispatch/session/mem_cache_store_test.rb b/actionpack/test/dispatch/session/mem_cache_store_test.rb index c2d40ae24ac62..c7435bd06b6d8 100644 --- a/actionpack/test/dispatch/session/mem_cache_store_test.rb +++ b/actionpack/test/dispatch/session/mem_cache_store_test.rb @@ -115,7 +115,6 @@ def with_test_route_set map.connect "/:action", :controller => "mem_cache_store_test/test" end @app = ActionDispatch::Session::MemCacheStore.new(set, :key => '_session_id') - reset! yield end end diff --git a/actionpack/test/lib/controller/fake_controllers.rb b/actionpack/test/lib/controller/fake_controllers.rb index 5dcca2e148e12..2e8c5090ca2e6 100644 --- a/actionpack/test/lib/controller/fake_controllers.rb +++ b/actionpack/test/lib/controller/fake_controllers.rb @@ -18,6 +18,7 @@ class HiController < ActionController::Base; end class BraveController < ActionController::Base; end class ImageController < ActionController::Base; end class WeblogController < ActionController::Base; end +class BarController < ActionController::Base; end # For speed test class SpeedController < ActionController::Base; end diff --git a/actionpack/test/view/test_case_test.rb b/actionpack/test/view/test_case_test.rb index 3e974b87f7e8d..5db42c4d682ea 100644 --- a/actionpack/test/view/test_case_test.rb +++ b/actionpack/test/view/test_case_test.rb @@ -1,4 +1,5 @@ require 'abstract_unit' +require 'controller/fake_controllers' module ActionView class TestCase