aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib
diff options
context:
space:
mode:
authorEverest Munro-Zeisberger <everest.munrozeisberger@shopify.com>2016-08-18 14:00:38 -0400
committerEverest Munro-Zeisberger <everest.munrozeisberger@shopify.com>2016-08-18 18:09:23 -0400
commit3db57bde1ef435a38337f6db298b851c8a4ad10c (patch)
treebd93a6050848ff1b6fdcd79fae540befe7c25a62 /actionpack/lib
parentfd0c33d7cc8dd06083f543cf531ab1f4c52c6a6e (diff)
downloadrails-3db57bde1ef435a38337f6db298b851c8a4ad10c.tar.gz
rails-3db57bde1ef435a38337f6db298b851c8a4ad10c.tar.bz2
rails-3db57bde1ef435a38337f6db298b851c8a4ad10c.zip
Set the request type if as: is specified
Documentation & testing
Diffstat (limited to 'actionpack/lib')
-rw-r--r--actionpack/lib/action_controller/test_case.rb9
1 files changed, 8 insertions, 1 deletions
diff --git a/actionpack/lib/action_controller/test_case.rb b/actionpack/lib/action_controller/test_case.rb
index 83c32136dd..c7f40fd0e7 100644
--- a/actionpack/lib/action_controller/test_case.rb
+++ b/actionpack/lib/action_controller/test_case.rb
@@ -449,6 +449,8 @@ module ActionController
# - +session+: A hash of parameters to store in the session. This may be +nil+.
# - +flash+: A hash of parameters to store in the flash. This may be +nil+.
# - +format+: Request format. Defaults to +nil+. Can be string or symbol.
+ # - +as+: Content type. Defaults to +nil+. Must be a symbol that corresponds
+ # to a mime type
#
# Example calling +create+ action and sending two params:
#
@@ -469,7 +471,7 @@ module ActionController
check_required_ivars
if kwarg_request?(args)
- parameters, session, body, flash, http_method, format, xhr = args[0].values_at(:params, :session, :body, :flash, :method, :format, :xhr)
+ parameters, session, body, flash, http_method, format, xhr, as = args[0].values_at(:params, :session, :body, :flash, :method, :format, :xhr, :as)
else
http_method, parameters, session, flash = args
format = nil
@@ -514,6 +516,11 @@ module ActionController
@request.set_header "REQUEST_METHOD", http_method
+ if as
+ @request.content_type = Mime[as].to_s
+ format ||= as
+ end
+
parameters = parameters.symbolize_keys
generated_extras = @routes.generate_extras(parameters.merge(controller: controller_class_name, action: action.to_s))