diff options
author | Lucas Mazza <lucastmazza@gmail.com> | 2014-07-02 18:48:04 -0300 |
---|---|---|
committer | Lucas Mazza <lucastmazza@gmail.com> | 2014-07-02 20:02:00 -0300 |
commit | b00b638b95dc513f4ba854ba3a96b7a8f344e4cc (patch) | |
tree | ab60799425fff87b3e74de6c6423816ca82614ce /actionpack/test/controller | |
parent | a4104278b5cc5a7e7b15473c1ea74125f915f2db (diff) | |
download | rails-b00b638b95dc513f4ba854ba3a96b7a8f344e4cc.tar.gz rails-b00b638b95dc513f4ba854ba3a96b7a8f344e4cc.tar.bz2 rails-b00b638b95dc513f4ba854ba3a96b7a8f344e4cc.zip |
Change the JSON renderer to enforce the 'JS' Content Type
The controller can set the response format as 'JSON' before the renderer code be
evaluated, so we must replace it when necessary.
Fixes #15081
Diffstat (limited to 'actionpack/test/controller')
-rw-r--r-- | actionpack/test/controller/mime/respond_to_test.rb | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/actionpack/test/controller/mime/respond_to_test.rb b/actionpack/test/controller/mime/respond_to_test.rb index 41503e11a8..c89b95de3b 100644 --- a/actionpack/test/controller/mime/respond_to_test.rb +++ b/actionpack/test/controller/mime/respond_to_test.rb @@ -128,6 +128,12 @@ class RespondToController < ActionController::Base end end + def json_with_callback + respond_to do |type| + type.json { render :json => 'JS', :callback => 'alert' } + end + end + def iphone_with_html_response_type request.format = :iphone if request.env["HTTP_ACCEPT"] == "text/iphone" @@ -511,6 +517,13 @@ class RespondToControllerTest < ActionController::TestCase assert_equal '<html><div id="html">HTML for all_types_with_layout</div></html>', @response.body end + def test_json_with_callback_sets_javascript_content_type + @request.accept = 'application/json' + get :json_with_callback + assert_equal 'alert(JS)', @response.body + assert_equal 'text/javascript', @response.content_type + end + def test_xhr xhr :get, :js_or_html assert_equal 'JS', @response.body |