diff options
author | Niels De Graef <nielsdegraef@gmail.com> | 2022-10-24 20:31:30 +0200 |
---|---|---|
committer | Niels De Graef <ndegraef@redhat.com> | 2022-10-24 20:32:22 +0200 |
commit | c9bf51147e95c60c9b68e01b4f180f3fe92d0090 (patch) | |
tree | 4e76c2e7a0240f14631645e2f446ab50c9323970 /tests/core/test-addresses-chunk.vala | |
parent | 5c011486d6beac60981dafe5741f8acae197ce5d (diff) | |
download | gnome-contacts-c9bf51147e95c60c9b68e01b4f180f3fe92d0090.tar.gz |
Add tests for several Chunks
They're quite simple at this point, but the idea is to extend them as we
put some of the serialization code in there, as well as more advanced
logic.
Diffstat (limited to 'tests/core/test-addresses-chunk.vala')
-rw-r--r-- | tests/core/test-addresses-chunk.vala | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/tests/core/test-addresses-chunk.vala b/tests/core/test-addresses-chunk.vala new file mode 100644 index 0000000..83ebb61 --- /dev/null +++ b/tests/core/test-addresses-chunk.vala @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2022 Niels De Graef <nielsdegraef@gmail.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +void main (string[] args) { + Test.init (ref args); + Test.add_func ("/core/addresses-chunk/property-name-chunk", test_property_name); + Test.add_func ("/core/addresses-chunk/get-is-empty", test_is_empty); + Test.add_func ("/core/addresses-chunk/to-maps-uri", test_to_maps_uri); + Test.run (); +} + +// Make sure that "postal-addresses" maps to a UrlsChunk +private void test_property_name () { + var contact = new Contacts.Contact.empty (); + + var chunk = contact.create_chunk ("postal-addresses", null); + assert_nonnull (chunk); + assert_true (chunk is Contacts.AddressesChunk); + assert_true (chunk.property_name == "postal-addresses"); +} + +private void test_is_empty () { + var contact = new Contacts.Contact.empty (); + var chunk = (Contacts.AddressesChunk) contact.create_chunk ("postal-addresses", null); + assert_nonnull (chunk); + var address = (Contacts.Address) chunk.get_item (0); + + // Even though there is an element, it's empty, so the urls chunk should + // count as empty too + assert_true (address.is_empty); + assert_true (chunk.is_empty); + + address.address.street = "Yellow brick road"; + assert_false (address.is_empty); + assert_false (chunk.is_empty); + + address.address.street = ""; + assert_true (address.is_empty); + assert_true (chunk.is_empty); +} + +private void test_to_maps_uri () { + var contact = new Contacts.Contact.empty (); + var chunk = (Contacts.AddressesChunk) contact.create_chunk ("postal-addresses", null); + assert_nonnull (chunk); + var address = (Contacts.Address) chunk.get_item (0); + + address.address.street = "Yellow brick road"; + assert_true (address.to_maps_uri() == "maps:q=Yellow%20brick%20road"); +} |