aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib
diff options
context:
space:
mode:
authorRafael França <rafaelmfranca@gmail.com>2016-08-19 01:42:21 -0300
committerGitHub <noreply@github.com>2016-08-19 01:42:21 -0300
commit03b9a11f93e235f803a7029e9a31dd11127f8f3e (patch)
tree06b413129a9a80ac9008e8f03cd9b8396a58d270 /actionpack/lib
parente87158f16b2a85beed690620a5f5e6d57ee505e3 (diff)
parent3db57bde1ef435a38337f6db298b851c8a4ad10c (diff)
downloadrails-03b9a11f93e235f803a7029e9a31dd11127f8f3e.tar.gz
rails-03b9a11f93e235f803a7029e9a31dd11127f8f3e.tar.bz2
rails-03b9a11f93e235f803a7029e9a31dd11127f8f3e.zip
Merge pull request #26212 from evmunro/as-json-sets-request-to-json-for-controller-test
Allow setting of request CONTENT-TYPE with as: in controller tests
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))