From eb224cbcb87e1a34377356ed0c3826ae0234bb7c Mon Sep 17 00:00:00 2001 From: Prem Sichanugrist Date: Fri, 25 Feb 2011 16:59:26 +0700 Subject: [PATCH 2/2] Always use ActionDispatch::ShowExceptions middleware [#6462 state:resolved] This will make sure the application will raise `ActionController::RoutingError` in case "X-Cascade: pass" header was set, usually when there's no route match. (This is a backported version to 3-0-stable) --- railties/lib/rails/application.rb | 2 +- railties/test/application/middleware_test.rb | 25 +++++++++++++++++++++++-- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/railties/lib/rails/application.rb b/railties/lib/rails/application.rb index c306d6a..f72dc8d 100644 --- a/railties/lib/rails/application.rb +++ b/railties/lib/rails/application.rb @@ -192,7 +192,7 @@ module Rails middleware.use ::Rack::Lock if !config.allow_concurrency middleware.use ::Rack::Runtime middleware.use ::Rails::Rack::Logger - middleware.use ::ActionDispatch::ShowExceptions, config.consider_all_requests_local if config.action_dispatch.show_exceptions + middleware.use ::ActionDispatch::ShowExceptions, config.consider_all_requests_local middleware.use ::ActionDispatch::RemoteIp, config.action_dispatch.ip_spoofing_check, config.action_dispatch.trusted_proxies middleware.use ::Rack::Sendfile, config.action_dispatch.x_sendfile_header middleware.use ::ActionDispatch::Callbacks, !config.cache_classes diff --git a/railties/test/application/middleware_test.rb b/railties/test/application/middleware_test.rb index ed8f70d..a2a6956 100644 --- a/railties/test/application/middleware_test.rb +++ b/railties/test/application/middleware_test.rb @@ -65,10 +65,10 @@ module ApplicationTests assert !middleware.include?("ActionDispatch::Static") end - test "removes show exceptions if action_dispatch.show_exceptions is disabled" do + test "includes show exceptions even action_dispatch.show_exceptions is disabled" do add_to_config "config.action_dispatch.show_exceptions = false" boot! - assert !middleware.include?("ActionDispatch::ShowExceptions") + assert middleware.include?("ActionDispatch::ShowExceptions") end test "use middleware" do @@ -195,6 +195,27 @@ module ApplicationTests assert_no_match(/action_dispatch/, stringio.string) end + # show_exceptions test + test "unspecified route when set action_dispatch.show_exceptions to false" do + make_basic_app do |app| + app.config.action_dispatch.show_exceptions = false + end + + assert_raise(ActionController::RoutingError) do + get '/foo' + end + end + + test "unspecified route when set action_dispatch.show_exceptions to true" do + make_basic_app do |app| + app.config.action_dispatch.show_exceptions = true + end + + assert_nothing_raised(ActionController::RoutingError) do + get '/foo' + end + end + private def boot! -- 1.7.4.1