diff options
author | Jon Leighton <j@jonathanleighton.com> | 2011-09-26 12:40:03 +0100 |
---|---|---|
committer | Jon Leighton <j@jonathanleighton.com> | 2011-09-26 12:40:03 +0100 |
commit | a15424b92c182bcc4d2b693dc0001a44c9b0802f (patch) | |
tree | cefb6e86b574038704a9bf3b34f86509d9fbf21d /activeresource/test | |
parent | b838059817aca490f78e3bb74a070729270300db (diff) | |
download | rails-a15424b92c182bcc4d2b693dc0001a44c9b0802f.tar.gz rails-a15424b92c182bcc4d2b693dc0001a44c9b0802f.tar.bz2 rails-a15424b92c182bcc4d2b693dc0001a44c9b0802f.zip |
Make serializable_hash take attr values directly from attributes hash.
Previously, it would use send() to get the attribute. In Active
Resource, this would rely on hitting method missing. If a method with
the same name was defined further up the ancestor chain, that method
would wrongly be called.
This change fixes test_to_xml_with_private_method_name_as_attribute in
activeresource/test/cases/base_test.rb, which was broken after
51bef9d8fb0b4da7a104425ab8545e9331387743, because that change made
to_xml use serializable_hash.
Diffstat (limited to 'activeresource/test')
-rw-r--r-- | activeresource/test/cases/base_test.rb | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/activeresource/test/cases/base_test.rb b/activeresource/test/cases/base_test.rb index d4063fa299..7b42f64a35 100644 --- a/activeresource/test/cases/base_test.rb +++ b/activeresource/test/cases/base_test.rb @@ -1004,9 +1004,17 @@ class BaseTest < Test::Unit::TestCase def test_to_xml_with_private_method_name_as_attribute Person.format = :xml - assert_nothing_raised(ArgumentError) { - Customer.new(:test => true).to_xml - } + + customer = Customer.new(:foo => "foo") + customer.singleton_class.class_eval do + def foo + "bar" + end + private :foo + end + + assert !customer.to_xml.include?("<foo>bar</foo>") + assert customer.to_xml.include?("<foo>foo</foo>") ensure Person.format = :json end |