From aa7c4179ff3b0dba6c14e45cecaf853ac9446d41 Mon Sep 17 00:00:00 2001 From: Kir Shatrov Date: Wed, 21 Sep 2016 13:16:59 -0400 Subject: [PATCH] Make :as option also set request format (AC::TestCase) right now you'd have to specify both :as and :format: ``` post :create, params: { foo: "bar" } as: :json, format: :json ``` --- actionpack/lib/action_controller/test_case.rb | 8 ++++---- actionpack/test/controller/test_case_test.rb | 5 +++++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/actionpack/lib/action_controller/test_case.rb b/actionpack/lib/action_controller/test_case.rb index 16ddd3b304..513d3afd16 100644 --- a/actionpack/lib/action_controller/test_case.rb +++ b/actionpack/lib/action_controller/test_case.rb @@ -498,10 +498,6 @@ module ActionController parameters ||= {} - if format - parameters[:format] = format - end - @html_document = nil cookies.update(@request.cookies) @@ -521,6 +517,10 @@ module ActionController format ||= as end + if format + parameters[:format] = format + end + parameters = parameters.symbolize_keys generated_extras = @routes.generate_extras(parameters.merge(controller: controller_class_name, action: action.to_s)) diff --git a/actionpack/test/controller/test_case_test.rb b/actionpack/test/controller/test_case_test.rb index 696794a3eb..06e7000bdd 100644 --- a/actionpack/test/controller/test_case_test.rb +++ b/actionpack/test/controller/test_case_test.rb @@ -646,6 +646,11 @@ XML assert_equal 2, @request.request_parameters[:num_value] end + def test_using_as_json_sets_format_json + post :render_body, params: { bool_value: true, str_value: "string", num_value: 2 }, as: :json + assert_equal "json", @request.format + end + def test_mutating_content_type_headers_for_plain_text_files_sets_the_header @request.headers["Content-Type"] = "text/plain" post :render_body, params: { name: "foo.txt" }