diff options
author | José Valim <jose.valim@gmail.com> | 2009-07-31 20:56:53 +0200 |
---|---|---|
committer | José Valim <jose.valim@gmail.com> | 2009-07-31 20:56:53 +0200 |
commit | b2d24baf790fee4f932fa32a8ae94f0212d14ad9 (patch) | |
tree | 403342f7b4cd8c258b2ba3ae5be2c46b9151391a /actionpack/test | |
parent | 5b7e81efec649b424037c68a93bddad1bc4e0c23 (diff) | |
download | rails-b2d24baf790fee4f932fa32a8ae94f0212d14ad9.tar.gz rails-b2d24baf790fee4f932fa32a8ae94f0212d14ad9.tar.bz2 rails-b2d24baf790fee4f932fa32a8ae94f0212d14ad9.zip |
Added tests for nested resources.
Diffstat (limited to 'actionpack/test')
-rw-r--r-- | actionpack/test/controller/mime_responds_test.rb | 60 |
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 |