In a controller, the current controller name should be the default root for collections

This commit is contained in:
Yehuda Katz
2012-01-01 16:01:59 -08:00
parent e23553be23
commit 87d2d77ac8
2 changed files with 19 additions and 1 deletions

View File

@@ -20,10 +20,14 @@ class RenderJsonTest < ActionController::TestCase
end
def as_json(*)
hash = { :object => @object.as_json, :scope => @scope.as_json }
hash = { :object => serializable_hash, :scope => @scope.as_json }
hash.merge!(:options => true) if @options[:options]
hash
end
def serializable_hash
@object.as_json
end
end
class JsonSerializable
@@ -91,6 +95,11 @@ class RenderJsonTest < ActionController::TestCase
render :json => JsonSerializable.new
end
def render_json_with_serializer_and_implicit_root
@current_user = Struct.new(:as_json).new(:current_user => true)
render :json => [JsonSerializable.new]
end
def render_json_with_serializer_and_options
@current_user = Struct.new(:as_json).new(:current_user => true)
render :json => JsonSerializable.new, :options => true
@@ -172,6 +181,11 @@ class RenderJsonTest < ActionController::TestCase
assert_match '"object":{"serializable_object":true}', @response.body
end
def test_render_json_with_serializer_and_implicit_root
get :render_json_with_serializer_and_implicit_root
assert_match '"test":[{"serializable_object":true}]', @response.body
end
def test_render_json_with_serializer_and_options
get :render_json_with_serializer_and_options
assert_match '"scope":{"current_user":true}', @response.body