aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2009-07-31 20:56:53 +0200
committerJosé Valim <jose.valim@gmail.com>2009-07-31 20:56:53 +0200
commitb2d24baf790fee4f932fa32a8ae94f0212d14ad9 (patch)
tree403342f7b4cd8c258b2ba3ae5be2c46b9151391a
parent5b7e81efec649b424037c68a93bddad1bc4e0c23 (diff)
downloadrails-b2d24baf790fee4f932fa32a8ae94f0212d14ad9.tar.gz
rails-b2d24baf790fee4f932fa32a8ae94f0212d14ad9.tar.bz2
rails-b2d24baf790fee4f932fa32a8ae94f0212d14ad9.zip
Added tests for nested resources.
-rw-r--r--actionpack/test/controller/mime_responds_test.rb60
1 files changed, 48 insertions, 12 deletions
diff --git a/actionpack/test/controller/mime_responds_test.rb b/actionpack/test/controller/mime_responds_test.rb
index 1db951fdfe..1d27e749ae 100644
--- a/actionpack/test/controller/mime_responds_test.rb
+++ b/actionpack/test/controller/mime_responds_test.rb
@@ -475,7 +475,7 @@ class RespondResource
undef_method :to_json
def self.model_name
- @_model_name ||= ActiveModel::Name.new(name)
+ @_model_name ||= ActiveModel::Name.new("resource")
end
def to_param
@@ -495,6 +495,16 @@ class RespondResource
end
end
+class ParentResource
+ def self.model_name
+ @_model_name ||= ActiveModel::Name.new("parent")
+ end
+
+ def to_param
+ 11
+ end
+end
+
class RespondWithController < ActionController::Base
respond_to :html, :json
respond_to :xml, :except => :using_defaults
@@ -510,6 +520,12 @@ class RespondWithController < ActionController::Base
respond_to(:js, :xml)
end
+ def default_overwritten
+ respond_to do |format|
+ format.html { render :text => "HTML" }
+ end
+ end
+
def using_resource
respond_with(RespondResource.new)
end
@@ -520,10 +536,8 @@ class RespondWithController < ActionController::Base
end
end
- def default_overwritten
- respond_to do |format|
- format.html { render :text => "HTML" }
- end
+ def using_resource_with_parent
+ respond_with([ParentResource.new, RespondResource.new])
end
protected
@@ -533,8 +547,12 @@ protected
self.response_body = js.respond_to?(:to_js) ? js.to_js : js
end
- def respond_resource_url(id)
- request.host + "/respond/resource/#{id.to_param}"
+ def resource_url(resource)
+ request.host + "/resource/#{resource.to_param}"
+ end
+
+ def parent_resource_url(parent, resource)
+ request.host + "/parent/#{parent.to_param}/resource/#{resource.to_param}"
end
end
@@ -592,6 +610,12 @@ class RespondWithControllerTest < ActionController::TestCase
assert_equal "<p>Hello world!</p>\n", @response.body
end
+ def test_default_overwritten
+ get :default_overwritten
+ assert_equal "text/html", @response.content_type
+ assert_equal "HTML", @response.body
+ end
+
def test_using_resource
@request.accept = "text/html"
get :using_resource
@@ -616,7 +640,7 @@ class RespondWithControllerTest < ActionController::TestCase
assert_equal "application/xml", @response.content_type
assert_equal 201, @response.status
assert_equal "XML", @response.body
- assert_equal "www.example.com/respond/resource/13", @response.location
+ assert_equal "www.example.com/resource/13", @response.location
errors = { :name => :invalid }
RespondResource.any_instance.stubs(:errors).returns(errors)
@@ -668,10 +692,22 @@ class RespondWithControllerTest < ActionController::TestCase
assert_equal "JS", @response.body
end
- def test_default_overwritten
- get :default_overwritten
- assert_equal "text/html", @response.content_type
- assert_equal "HTML", @response.body
+ def test_using_resource_with_parent
+ @request.accept = "application/xml"
+
+ post :using_resource_with_parent
+ assert_equal "application/xml", @response.content_type
+ assert_equal 201, @response.status
+ assert_equal "XML", @response.body
+ assert_equal "www.example.com/parent/11/resource/13", @response.location
+
+ errors = { :name => :invalid }
+ RespondResource.any_instance.stubs(:errors).returns(errors)
+ post :using_resource
+ assert_equal "application/xml", @response.content_type
+ assert_equal 422, @response.status
+ assert_equal errors.to_xml, @response.body
+ assert_nil @response.location
end
def test_clear_respond_to