[gnome-contacts/nielsdg/core-should-stay-core: 11/11] Add a first unit test for UrlsChunk
- From: Niels De Graef <nielsdg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-contacts/nielsdg/core-should-stay-core: 11/11] Add a first unit test for UrlsChunk
- Date: Thu, 8 Sep 2022 05:17:02 +0000 (UTC)
commit f67f421a7fc6ffc7c0da1ddfdfcc63a63e7c0abe
Author: Niels De Graef <nielsdegraef gmail com>
Date: Thu Sep 8 07:15:05 2022 +0200
Add a first unit test for UrlsChunk
It's not really a complex thing, but this is basically laying the
foundations for properly unit testing the classes in core
tests/core/meson.build | 14 +++++++++++
tests/core/test-urls-chunk.vala | 55 +++++++++++++++++++++++++++++++++++++++++
tests/meson.build | 1 +
3 files changed, 70 insertions(+)
---
diff --git a/tests/core/meson.build b/tests/core/meson.build
new file mode 100644
index 00000000..ecb8879f
--- /dev/null
+++ b/tests/core/meson.build
@@ -0,0 +1,14 @@
+test_names = [
+ 'test-urls-chunk',
+]
+
+foreach _test : test_names
+ test_bin = executable(_test,
+ files('@0@.vala'.format(_test)),
+ dependencies: libcontactscore_dep,
+ )
+
+ test(_test, test_bin,
+ suite: 'core',
+ )
+endforeach
diff --git a/tests/core/test-urls-chunk.vala b/tests/core/test-urls-chunk.vala
new file mode 100644
index 00000000..29e5cbf4
--- /dev/null
+++ b/tests/core/test-urls-chunk.vala
@@ -0,0 +1,55 @@
+/*
+ * 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/urls-chunk/property_name_chunk", test_property_name);
+ Test.add_func ("/core/urls-chunk/get_absolute_url", test_get_absolute_url);
+ Test.run ();
+}
+
+// Make sure that "urls" maps to a UrlsChunk
+private void test_property_name () {
+ var contact = new Contacts.Contact.empty ();
+
+ var chunk = contact.create_chunk ("urls", null);
+ assert_nonnull (chunk);
+ assert_true (chunk is Contacts.UrlsChunk);
+ assert_true (chunk.property_name == "urls");
+}
+
+private void test_get_absolute_url () {
+ var contact = new Contacts.Contact.empty ();
+ var chunk = (Contacts.UrlsChunk) contact.create_chunk ("urls", null);
+ assert_nonnull (chunk);
+ var url = (Contacts.Url) chunk.get_item (0);
+
+ // Test with a proper scheme attached
+ url.raw_url = "https://gnome.org";
+ assert_true (url.raw_url == "https://gnome.org");
+ assert_true (url.get_absolute_url () == "https://gnome.org");
+
+ // Also if it's not HTTPS
+ url.raw_url = "ftp://gnome.org";
+ assert_true (url.raw_url == "ftp://gnome.org");
+ assert_true (url.get_absolute_url () == "ftp://gnome.org");
+
+ // and if there's no scheme supplied
+ url.raw_url = "gnome.org";
+ assert_true (url.raw_url == "gnome.org");
+ assert_true (url.get_absolute_url () == "https://gnome.org");
+}
diff --git a/tests/meson.build b/tests/meson.build
index 6dcfcf12..33c33fc8 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -1,3 +1,4 @@
+subdir('core')
subdir('io')
test_names = [
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]