aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel/test/cases/serializers
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2011-09-18 09:09:01 -0700
committerJosé Valim <jose.valim@gmail.com>2011-09-18 09:09:01 -0700
commit51bef9d8fb0b4da7a104425ab8545e9331387743 (patch)
tree27c6c8de2f8640b7b3ef2f279a2a4c66bca07863 /activemodel/test/cases/serializers
parentcb0dbe35b85c910b4a75306d7d52ee4ca47b8d22 (diff)
downloadrails-51bef9d8fb0b4da7a104425ab8545e9331387743.tar.gz
rails-51bef9d8fb0b4da7a104425ab8545e9331387743.tar.bz2
rails-51bef9d8fb0b4da7a104425ab8545e9331387743.zip
to_xml should also rely on serializable hash.
Diffstat (limited to 'activemodel/test/cases/serializers')
-rw-r--r--activemodel/test/cases/serializers/xml_serialization_test.rb17
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