aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/controller
diff options
context:
space:
mode:
authorLucas Mazza <lucastmazza@gmail.com>2014-07-02 18:48:04 -0300
committerLucas Mazza <lucastmazza@gmail.com>2014-07-02 20:02:00 -0300
commitb00b638b95dc513f4ba854ba3a96b7a8f344e4cc (patch)
treeab60799425fff87b3e74de6c6423816ca82614ce /actionpack/test/controller
parenta4104278b5cc5a7e7b15473c1ea74125f915f2db (diff)
downloadrails-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.rb13
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