mirror of
https://github.com/github/rails.git
synced 2026-04-26 03:00:59 -04:00
when using respond_with with an invalid resource and custom options, the default response status and error messages should be returned
Signed-off-by: José Valim <jose.valim@gmail.com>
This commit is contained in:
committed by
José Valim
parent
2867093365
commit
9766997f4c
@@ -156,7 +156,8 @@ module ActionController #:nodoc:
|
||||
if get?
|
||||
display resource
|
||||
elsif has_errors?
|
||||
display resource.errors, :status => :unprocessable_entity
|
||||
# bypass the options merging of display
|
||||
controller.render format => resource.errors, :status => :unprocessable_entity
|
||||
elsif post?
|
||||
display resource, :status => :created, :location => api_location
|
||||
elsif has_empty_resource_definition?
|
||||
|
||||
@@ -953,6 +953,23 @@ class RespondWithControllerTest < ActionController::TestCase
|
||||
assert_equal 201, @response.status
|
||||
end
|
||||
|
||||
def test_using_resource_with_status_and_location_with_invalid_resource
|
||||
errors = { :name => :invalid }
|
||||
Customer.any_instance.stubs(:errors).returns(errors)
|
||||
|
||||
@request.accept = "text/xml"
|
||||
|
||||
post :using_resource_with_status_and_location
|
||||
assert_equal errors.to_xml, @response.body
|
||||
assert_equal 422, @response.status
|
||||
assert_equal nil, @response.location
|
||||
|
||||
put :using_resource_with_status_and_location
|
||||
assert_equal errors.to_xml, @response.body
|
||||
assert_equal 422, @response.status
|
||||
assert_equal nil, @response.location
|
||||
end
|
||||
|
||||
def test_using_resource_with_responder
|
||||
get :using_resource_with_responder
|
||||
assert_equal "Resource name is david", @response.body
|
||||
|
||||
Reference in New Issue
Block a user