From bd50d82f701c55d89b891ebd216ec84008b486c1 Mon Sep 17 00:00:00 2001 From: Rick Olson Date: Sun, 29 Apr 2007 03:14:36 +0000 Subject: Add support for setting custom headers per ActiveResource model [Rick] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6624 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- activeresource/test/base_test.rb | 8 ++++++++ activeresource/test/connection_test.rb | 25 +++++++++++++++++++++++++ 2 files changed, 33 insertions(+) (limited to 'activeresource/test') diff --git a/activeresource/test/base_test.rb b/activeresource/test/base_test.rb index 51e1dd3c04..2c823e8e69 100644 --- a/activeresource/test/base_test.rb +++ b/activeresource/test/base_test.rb @@ -13,6 +13,7 @@ class BaseTest < Test::Unit::TestCase ActiveResource::HttpMock.respond_to do |mock| mock.get "/people/1.xml", {}, @matz mock.get "/people/2.xml", {}, @david + mock.get "/people/3.xml", {'key' => 'value'}, nil, 404 mock.put "/people/1.xml", {}, nil, 204 mock.delete "/people/1.xml", {}, nil, 200 mock.delete "/people/2.xml", {}, nil, 400 @@ -198,6 +199,13 @@ class BaseTest < Test::Unit::TestCase assert_equal "Matz", matz.name end + def test_custom_header + Person.custom_headers['key'] = 'value' + assert_raises(ActiveResource::ResourceNotFound) { Person.find(3) } + ensure + Person.custom_headers.delete('key') + end + def test_find_by_id_not_found assert_raises(ActiveResource::ResourceNotFound) { Person.find(99) } assert_raises(ActiveResource::ResourceNotFound) { StreetAddress.find(1) } diff --git a/activeresource/test/connection_test.rb b/activeresource/test/connection_test.rb index b434dd4012..67d5553e72 100644 --- a/activeresource/test/connection_test.rb +++ b/activeresource/test/connection_test.rb @@ -13,16 +13,21 @@ class ConnectionTest < Test::Unit::TestCase @people_empty = [ ].to_xml(:root => 'people-empty-elements') @matz = @matz.to_xml(:root => 'person') @david = @david.to_xml(:root => 'person') + @header = {'key' => 'value'} @default_request_headers = { 'Content-Type' => 'application/xml' } ActiveResource::HttpMock.respond_to do |mock| + mock.get "/people/2.xml", @header, @david mock.get "/people.xml", {}, @people mock.get "/people_single_elements.xml", {}, @people_single mock.get "/people_empty_elements.xml", {}, @people_empty mock.get "/people/1.xml", {}, @matz mock.put "/people/1.xml", {}, nil, 204 + mock.put "/people/2.xml", {}, @header, 204 mock.delete "/people/1.xml", {}, nil, 200 + mock.delete "/people/2.xml", @header, nil, 200 mock.post "/people.xml", {}, nil, 201, 'Location' => '/people/5.xml' + mock.post "/members.xml", {}, @header, 201, 'Location' => '/people/6.xml' end end @@ -79,6 +84,11 @@ class ConnectionTest < Test::Unit::TestCase assert_equal "Matz", matz["name"] end + def test_get_with_header + david = @conn.get("/people/2.xml", @header) + assert_equal "David", david["name"] + end + def test_get_collection people = @conn.get("/people.xml") assert_equal "Matz", people[0]["name"] @@ -100,16 +110,31 @@ class ConnectionTest < Test::Unit::TestCase assert_equal "/people/5.xml", response["Location"] end + def test_post_with_header + response = @conn.post("/members.xml", @header) + assert_equal "/people/6.xml", response["Location"] + end + def test_put response = @conn.put("/people/1.xml") assert_equal 204, response.code end + def test_put_with_header + response = @conn.put("/people/2.xml", @header) + assert_equal 204, response.code + end + def test_delete response = @conn.delete("/people/1.xml") assert_equal 200, response.code end + def test_delete_with_header + response = @conn.delete("/people/2.xml", @header) + assert_equal 200, response.code + end + protected def assert_response_raises(klass, code) assert_raise(klass, "Expected response code #{code} to raise #{klass}") do -- cgit v1.2.3