diff options
author | José Valim <jose.valim@gmail.com> | 2011-09-18 09:09:01 -0700 |
---|---|---|
committer | José Valim <jose.valim@gmail.com> | 2011-09-18 09:09:01 -0700 |
commit | 51bef9d8fb0b4da7a104425ab8545e9331387743 (patch) | |
tree | 27c6c8de2f8640b7b3ef2f279a2a4c66bca07863 /activemodel/test | |
parent | cb0dbe35b85c910b4a75306d7d52ee4ca47b8d22 (diff) | |
download | rails-51bef9d8fb0b4da7a104425ab8545e9331387743.tar.gz rails-51bef9d8fb0b4da7a104425ab8545e9331387743.tar.bz2 rails-51bef9d8fb0b4da7a104425ab8545e9331387743.zip |
to_xml should also rely on serializable hash.
Diffstat (limited to 'activemodel/test')
-rw-r--r-- | activemodel/test/cases/serializers/xml_serialization_test.rb | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/activemodel/test/cases/serializers/xml_serialization_test.rb b/activemodel/test/cases/serializers/xml_serialization_test.rb index a38ef8e223..fc73d9dcd8 100644 --- a/activemodel/test/cases/serializers/xml_serialization_test.rb +++ b/activemodel/test/cases/serializers/xml_serialization_test.rb @@ -33,6 +33,12 @@ class Address end end +class SerializableContact < Contact + def serializable_hash(options={}) + super(options.merge(:only => [:name, :age])) + end +end + class XmlSerializationTest < ActiveModel::TestCase def setup @contact = Contact.new @@ -96,6 +102,17 @@ class XmlSerializationTest < ActiveModel::TestCase assert_match %r{<createdAt}, @xml end + test "should use serialiable hash" do + @contact = SerializableContact.new + @contact.name = 'aaron stack' + @contact.age = 25 + + @xml = @contact.to_xml + assert_match %r{<name>aaron stack</name>}, @xml + assert_match %r{<age type="integer">25</age>}, @xml + assert_no_match %r{<awesome>}, @xml + end + test "should allow skipped types" do @xml = @contact.to_xml :skip_types => true assert_match %r{<age>25</age>}, @xml |