aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/controller
diff options
context:
space:
mode:
Diffstat (limited to 'actionpack/test/controller')
-rw-r--r--actionpack/test/controller/mime_responds_test.rb20
-rw-r--r--actionpack/test/controller/render_test.rb18
2 files changed, 38 insertions, 0 deletions
diff --git a/actionpack/test/controller/mime_responds_test.rb b/actionpack/test/controller/mime_responds_test.rb
index 1d7fdc0052..8f1c56710f 100644
--- a/actionpack/test/controller/mime_responds_test.rb
+++ b/actionpack/test/controller/mime_responds_test.rb
@@ -19,6 +19,13 @@ class RespondToController < ActionController::Base
type.all { render :text => "Nothing" }
end
end
+
+ def json_or_yaml
+ respond_to do |type|
+ type.json { render :text => "JSON" }
+ type.yaml { render :yaml => "YAML" }
+ end
+ end
def html_or_xml
respond_to do |type|
@@ -163,6 +170,19 @@ class MimeControllerTest < Test::Unit::TestCase
get :just_xml
assert_response 406
end
+
+ def test_json_or_yaml
+ get :json_or_yaml
+ assert_equal 'JSON', @response.body
+
+ @request.env["HTTP_ACCEPT"] = "text/yaml"
+ get :json_or_yaml
+ assert_equal 'YAML', @response.body
+
+ @request.env["HTTP_ACCEPT"] = "text/x-json"
+ get :json_or_yaml
+ assert_equal 'JSON', @response.body
+ end
def test_js_or_anything
@request.env["HTTP_ACCEPT"] = "text/javascript, */*"
diff --git a/actionpack/test/controller/render_test.rb b/actionpack/test/controller/render_test.rb
index 66429662e6..3cff829f8a 100644
--- a/actionpack/test/controller/render_test.rb
+++ b/actionpack/test/controller/render_test.rb
@@ -38,6 +38,14 @@ class TestController < ActionController::Base
def render_text_hello_world
render_text "hello world"
end
+
+ def render_json_hello_world
+ render_json({:hello => 'world'}.to_json)
+ end
+
+ def render_json_hello_world_with_callback
+ render_json({:hello => 'world'}.to_json, 'alert')
+ end
def render_custom_code
render_text "hello world", "404 Moved"
@@ -163,6 +171,16 @@ class RenderTest < Test::Unit::TestCase
get :render_text_hello_world
assert_equal "hello world", @response.body
end
+
+ def test_do_with_render_json
+ get :render_json_hello_world
+ assert_equal '{hello: "world"}', @response.body
+ end
+
+ def test_do_with_render_json_with_callback
+ get :render_json_hello_world_with_callback
+ assert_equal 'alert({hello: "world"})', @response.body
+ end
def test_do_with_render_custom_code
get :render_custom_code