diff options
Diffstat (limited to 'railties/test/application/middleware/exceptions_test.rb')
-rw-r--r-- | railties/test/application/middleware/exceptions_test.rb | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/railties/test/application/middleware/exceptions_test.rb b/railties/test/application/middleware/exceptions_test.rb index 0174352900..a9cde42be8 100644 --- a/railties/test/application/middleware/exceptions_test.rb +++ b/railties/test/application/middleware/exceptions_test.rb @@ -45,7 +45,21 @@ module ApplicationTests assert_equal 404, last_response.status end - test "unspecified route when set action_dispatch.show_exceptions to false" do + test "uses custom exceptions app" do + add_to_config <<-RUBY + config.exceptions_app = lambda do |env| + [404, { "Content-Type" => "text/plain" }, ["YOU FAILED BRO"]] + end + RUBY + + app.config.action_dispatch.show_exceptions = true + + get "/foo" + assert_equal 404, last_response.status + assert_equal "YOU FAILED BRO", last_response.body + end + + test "unspecified route when action_dispatch.show_exceptions is not set raises an exception" do app.config.action_dispatch.show_exceptions = false assert_raise(ActionController::RoutingError) do @@ -53,16 +67,28 @@ module ApplicationTests end end - test "unspecified route when set action_dispatch.show_exceptions to true" do + test "unspecified route when action_dispatch.show_exceptions is set shows 404" do + app.config.action_dispatch.show_exceptions = true + + assert_nothing_raised(ActionController::RoutingError) do + get '/foo' + assert_match "The page you were looking for doesn't exist.", last_response.body + end + end + + test "unspecified route when action_dispatch.show_exceptions and consider_all_requests_local are set shows diagnostics" do app.config.action_dispatch.show_exceptions = true + app.config.consider_all_requests_local = true assert_nothing_raised(ActionController::RoutingError) do get '/foo' + assert_match "No route matches", last_response.body end end test "displays diagnostics message when exception raised in template that contains UTF-8" do app.config.action_dispatch.show_exceptions = true + app.config.consider_all_requests_local = true controller :foo, <<-RUBY class FooController < ActionController::Base |