aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/dispatch/exception_wrapper_test.rb
diff options
context:
space:
mode:
authorGrey Baker <greysteil@gmail.com>2016-07-12 16:41:09 +0100
committerGrey Baker <greysteil@gmail.com>2016-07-12 16:41:09 +0100
commitfe859a54219740fa8b4e09a592820d2ee12ba222 (patch)
treee02383486dfc0eb60178f30bbcb414611cc0a08a /actionpack/test/dispatch/exception_wrapper_test.rb
parentde1227a5472f688469379054d271b59be1ecfcd0 (diff)
downloadrails-fe859a54219740fa8b4e09a592820d2ee12ba222.tar.gz
rails-fe859a54219740fa8b4e09a592820d2ee12ba222.tar.bz2
rails-fe859a54219740fa8b4e09a592820d2ee12ba222.zip
Handle `Rack::QueryParser` errors in `ActionDispatch::ExceptionWrapper`
Rack [recently](https://github.com/rack/rack/commit/7e7a3890449b5cf5b86929c79373506e5f1909fb) moved the namespace of its `ParameterTypeError` and `InvalidParameterError` errors. Whilst an alias for the old name was added, the logic in `ActionDispatch::ExceptionWrapper` was still broken by this change, since it relies on the class name. This PR updates `ActionDispatch::ExceptionWrapper` to handle the Rack 2.0 namespaced errors correctly. We no longer need to worry about the old names, since Rails specifies Rack ~> 2.0.
Diffstat (limited to 'actionpack/test/dispatch/exception_wrapper_test.rb')
-rw-r--r--actionpack/test/dispatch/exception_wrapper_test.rb6
1 files changed, 6 insertions, 0 deletions
diff --git a/actionpack/test/dispatch/exception_wrapper_test.rb b/actionpack/test/dispatch/exception_wrapper_test.rb
index dfbb91c0ca..0959cf2805 100644
--- a/actionpack/test/dispatch/exception_wrapper_test.rb
+++ b/actionpack/test/dispatch/exception_wrapper_test.rb
@@ -57,6 +57,12 @@ module ActionDispatch
assert_equal [ "lib/file.rb:42:in `index'" ], wrapper.application_trace
end
+ test '#status_code returns 400 for Rack::Utils::ParameterTypeError' do
+ exception = Rack::Utils::ParameterTypeError.new
+ wrapper = ExceptionWrapper.new(@cleaner, exception)
+ assert_equal 400, wrapper.status_code
+ end
+
test '#application_trace cannot be nil' do
nil_backtrace_wrapper = ExceptionWrapper.new(@cleaner, BadlyDefinedError.new)
nil_cleaner_wrapper = ExceptionWrapper.new(nil, BadlyDefinedError.new)