diff options
Diffstat (limited to 'tests/core/test-phones-chunk.vala')
-rw-r--r-- | tests/core/test-phones-chunk.vala | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/core/test-phones-chunk.vala b/tests/core/test-phones-chunk.vala index 9fb6c65..bea8784 100644 --- a/tests/core/test-phones-chunk.vala +++ b/tests/core/test-phones-chunk.vala @@ -19,6 +19,7 @@ void main (string[] args) { Test.init (ref args); Test.add_func ("/core/phones-chunk/property-name-chunk", test_property_name); Test.add_func ("/core/phones-chunk/get-is-empty", test_is_empty); + Test.add_func ("/core/phones-chunk/serialize-basic", test_serialize_basic); Test.run (); } @@ -51,3 +52,25 @@ private void test_is_empty () { assert_true (phone.is_empty); assert_true (chunk.is_empty); } + +private void test_serialize_basic () { + var contact = new Contacts.Contact.empty (); + var chunk = (Contacts.PhonesChunk) contact.create_chunk ("phone-numbers", null); + + // If the phones are empty, serialization should give a null result + var serialized = chunk.to_gvariant (); + assert_null (serialized); + + // If a phone is added, we should have a variant. We don't need to inspect + // the variant, we just need to know it properly deserializes + var phone = (Contacts.Phone) chunk.get_item (0); + phone.raw_number = "+321234567"; + serialized = chunk.to_gvariant (); + assert_nonnull (serialized); + + var contact2 = new Contacts.Contact.empty (); + var chunk2 = (Contacts.PhonesChunk) contact2.create_chunk ("phone-numbers", null); + chunk2.apply_gvariant (serialized); + assert_nonnull (chunk.get_item (0)); + assert_true (((Contacts.Phone) chunk.get_item (0)).raw_number == "+321234567"); +} |