提交 c5bf5382 编写于 作者: J Jeremy Kemper

Merge pull request #5033 from markmcspadden/inherited_headers

Allow ActiveResource subclasses to inherit headers from parent
......@@ -588,6 +588,12 @@ def connection(refresh = false)
def headers
@headers ||= {}
if superclass != Object && superclass.headers
@headers = superclass.headers.merge(@headers)
else
@headers
end
end
attr_writer :element_name
......
......@@ -437,6 +437,41 @@ def test_updating_baseclass_timeout_wipes_descendent_cached_connection_objects
assert_not_equal(first_connection, second_connection, 'Connection should be re-created')
end
def test_header_inheritance
fruit = Class.new(ActiveResource::Base)
apple = Class.new(fruit)
fruit.site = 'http://market'
fruit.headers['key'] = 'value'
assert_equal 'value', apple.headers['key']
end
def test_header_inheritance_set_at_multiple_points
fruit = Class.new(ActiveResource::Base)
apple = Class.new(fruit)
fruit.site = 'http://market'
fruit.headers['key'] = 'value'
assert_equal 'value', apple.headers['key']
apple.headers['key2'] = 'value2'
fruit.headers['key3'] = 'value3'
assert_equal 'value', apple.headers['key']
assert_equal 'value2', apple.headers['key2']
assert_equal 'value3', apple.headers['key3']
end
def test_header_inheritance_should_not_leak_upstream
fruit = Class.new(ActiveResource::Base)
apple = Class.new(fruit)
fruit.site = 'http://market'
fruit.headers['key'] = 'value'
apple.headers['key2'] = 'value2'
assert_equal nil, fruit.headers['key2']
end
########################################################################
# Tests for setting up remote URLs for a given model (including adding
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册