提交 84e94551 编写于 作者: J Joshua Peek

Add custom "with_routing" to internal tests to fix reseting session after using

with_routing. This only affects our internal AP tests.
上级 89630a7c
...@@ -53,12 +53,33 @@ ...@@ -53,12 +53,33 @@
FIXTURE_LOAD_PATH = File.join(File.dirname(__FILE__), 'fixtures') FIXTURE_LOAD_PATH = File.join(File.dirname(__FILE__), 'fixtures')
class ActionController::IntegrationTest < ActiveSupport::TestCase class ActionController::IntegrationTest < ActiveSupport::TestCase
@@app = ActionDispatch::MiddlewareStack.new { |middleware| def self.build_app(routes = nil)
middleware.use "ActionDispatch::ShowExceptions" ActionDispatch::MiddlewareStack.new { |middleware|
middleware.use "ActionDispatch::Callbacks" middleware.use "ActionDispatch::ShowExceptions"
middleware.use "ActionDispatch::ParamsParser" middleware.use "ActionDispatch::Callbacks"
middleware.use "Rack::Head" middleware.use "ActionDispatch::ParamsParser"
}.build(ActionController::Routing::Routes) 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 end
module ActionView module ActionView
......
...@@ -158,7 +158,6 @@ def with_test_route_set(options = {}) ...@@ -158,7 +158,6 @@ def with_test_route_set(options = {})
map.connect "/:action", :controller => "active_record_store_test/test" map.connect "/:action", :controller => "active_record_store_test/test"
end end
@app = ActiveRecord::SessionStore.new(set, options.reverse_merge(:key => '_session_id')) @app = ActiveRecord::SessionStore.new(set, options.reverse_merge(:key => '_session_id'))
reset!
yield yield
end end
end end
......
...@@ -372,11 +372,8 @@ def test_generate_url_with_controller ...@@ -372,11 +372,8 @@ def test_generate_url_with_controller
def with_test_route_set def with_test_route_set
with_routing do |set| with_routing do |set|
set.draw do |map| set.draw do |map|
map.with_options :controller => "IntegrationProcessTest::Integration" do |c| map.connect "/:action", :controller => "integration_process_test/integration"
c.connect "/:action"
end
end end
reset!
yield yield
end end
end end
......
...@@ -347,7 +347,6 @@ def with_test_routing ...@@ -347,7 +347,6 @@ def with_test_routing
map.connect 'invalid', :controller => "rescue_test/test", :action => 'invalid' map.connect 'invalid', :controller => "rescue_test/test", :action => 'invalid'
map.connect 'b00m', :controller => "rescue_test/test", :action => 'b00m' map.connect 'b00m', :controller => "rescue_test/test", :action => 'b00m'
end end
reset!
yield yield
end end
end end
......
...@@ -259,7 +259,6 @@ def with_test_route_set ...@@ -259,7 +259,6 @@ def with_test_route_set
c.connect "/", :action => "assign_parameters" c.connect "/", :action => "assign_parameters"
end end
end end
reset!
yield yield
end end
end end
......
...@@ -59,7 +59,6 @@ def with_test_routing ...@@ -59,7 +59,6 @@ def with_test_routing
set.draw do |map| set.draw do |map|
map.connect ':action', :controller => "json_params_parsing_test/test" map.connect ':action', :controller => "json_params_parsing_test/test"
end end
reset!
yield yield
end end
end end
......
...@@ -153,7 +153,6 @@ def with_test_routing ...@@ -153,7 +153,6 @@ def with_test_routing
set.draw do |map| set.draw do |map|
map.connect ':action', :controller => "multipart_params_parsing_test/test" map.connect ':action', :controller => "multipart_params_parsing_test/test"
end end
reset!
yield yield
end end
end end
......
...@@ -111,7 +111,6 @@ def assert_parses(expected, actual) ...@@ -111,7 +111,6 @@ def assert_parses(expected, actual)
set.draw do |map| set.draw do |map|
map.connect ':action', :controller => "query_string_parsing_test/test" map.connect ':action', :controller => "query_string_parsing_test/test"
end end
reset!
get "/parse", actual get "/parse", actual
assert_response :ok assert_response :ok
......
...@@ -132,7 +132,6 @@ def with_test_routing ...@@ -132,7 +132,6 @@ def with_test_routing
set.draw do |map| set.draw do |map|
map.connect ':action', :controller => "url_encoded_params_parsing_test/test" map.connect ':action', :controller => "url_encoded_params_parsing_test/test"
end end
reset!
yield yield
end end
end end
......
...@@ -86,7 +86,6 @@ def with_test_routing ...@@ -86,7 +86,6 @@ def with_test_routing
set.draw do |map| set.draw do |map|
map.connect ':action', :controller => "xml_params_parsing_test/test" map.connect ':action', :controller => "xml_params_parsing_test/test"
end end
reset!
yield yield
end end
end end
......
...@@ -223,7 +223,6 @@ def with_test_route_set(options = {}) ...@@ -223,7 +223,6 @@ def with_test_route_set(options = {})
end end
options = {:key => SessionKey, :secret => SessionSecret}.merge(options) options = {:key => SessionKey, :secret => SessionSecret}.merge(options)
@app = ActionDispatch::Session::CookieStore.new(set, options) @app = ActionDispatch::Session::CookieStore.new(set, options)
reset!
yield yield
end end
end end
......
...@@ -115,7 +115,6 @@ def with_test_route_set ...@@ -115,7 +115,6 @@ def with_test_route_set
map.connect "/:action", :controller => "mem_cache_store_test/test" map.connect "/:action", :controller => "mem_cache_store_test/test"
end end
@app = ActionDispatch::Session::MemCacheStore.new(set, :key => '_session_id') @app = ActionDispatch::Session::MemCacheStore.new(set, :key => '_session_id')
reset!
yield yield
end end
end end
......
...@@ -18,6 +18,7 @@ class HiController < ActionController::Base; end ...@@ -18,6 +18,7 @@ class HiController < ActionController::Base; end
class BraveController < ActionController::Base; end class BraveController < ActionController::Base; end
class ImageController < ActionController::Base; end class ImageController < ActionController::Base; end
class WeblogController < ActionController::Base; end class WeblogController < ActionController::Base; end
class BarController < ActionController::Base; end
# For speed test # For speed test
class SpeedController < ActionController::Base; end class SpeedController < ActionController::Base; end
......
require 'abstract_unit' require 'abstract_unit'
require 'controller/fake_controllers'
module ActionView module ActionView
class TestCase class TestCase
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册