[glib: 3/4] Add tests for GMemorySettingsBackend and GNullSettingsBackend




commit 7c4e6032c6e383db94d917e9af6836d938114241
Author: Ryan Hope <ryanhope97 gmail com>
Date:   Thu Jul 14 23:07:38 2022 +0100

    Add tests for GMemorySettingsBackend and GNullSettingsBackend

 gio/tests/memory-settings-backend.c | 57 +++++++++++++++++++++++++++++++++++++
 gio/tests/meson.build               |  2 ++
 gio/tests/null-settings-backend.c   | 54 +++++++++++++++++++++++++++++++++++
 3 files changed, 113 insertions(+)
---
diff --git a/gio/tests/memory-settings-backend.c b/gio/tests/memory-settings-backend.c
new file mode 100644
index 0000000000..80e9919bfd
--- /dev/null
+++ b/gio/tests/memory-settings-backend.c
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2022 Ryan Hope
+ *
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
+ *
+ * Authors: Ryan Hope <ryanhope97 gmail com>
+ */
+
+#include <gio/gio.h>
+#include <locale.h>
+#define G_SETTINGS_ENABLE_BACKEND
+#include <gio/gsettingsbackend.h>
+
+/* Test that the "gsettings-backend" extension point has been registered.
+ * Must be run first and separetly from other GSettingsBackend,
+ * as they will register the extension point making the test useless.
+ */
+static void
+test_extension_point_registered (void)
+{
+  GSettingsBackend *backend;
+  GIOExtensionPoint *extension_point;
+
+  backend = g_memory_settings_backend_new ();
+  g_assert_true (G_IS_SETTINGS_BACKEND (backend));
+
+  extension_point = g_io_extension_point_lookup (G_SETTINGS_BACKEND_EXTENSION_POINT_NAME);
+  g_assert_nonnull (extension_point);
+
+  g_object_unref (backend);
+}
+
+int
+main (int argc, char *argv[])
+{
+  setlocale (LC_ALL, "");
+
+  g_test_init (&argc, &argv, NULL);
+
+  /* Must be run first */
+  g_test_add_func ("/memory-settings-backend/extension-point-registered", test_extension_point_registered);
+
+  return g_test_run ();
+}
diff --git a/gio/tests/meson.build b/gio/tests/meson.build
index 1cb5e30ee2..c3cc6c75ce 100644
--- a/gio/tests/meson.build
+++ b/gio/tests/meson.build
@@ -90,10 +90,12 @@ gio_tests = {
   'memory-input-stream' : {},
   'memory-monitor' : {},
   'memory-output-stream' : {},
+  'memory-settings-backend' : {},
   'mount-operation' : {},
   'network-address' : {'extra_sources': ['mock-resolver.c']},
   'network-monitor' : {},
   'network-monitor-race' : {},
+  'null-settings-backend' : {},
   'permission' : {},
   'pollable' : {'dependencies' : [libutil_dep]},
   'power-profile-monitor' : {},
diff --git a/gio/tests/null-settings-backend.c b/gio/tests/null-settings-backend.c
new file mode 100644
index 0000000000..34dee56d2c
--- /dev/null
+++ b/gio/tests/null-settings-backend.c
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2022 Ryan Hope
+ *
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
+ *
+ * Authors: Ryan Hope <ryanhope97 gmail com>
+ */
+
+#include <gio/gio.h>
+#define G_SETTINGS_ENABLE_BACKEND
+#include <gio/gsettingsbackend.h>
+
+/* Test that the "gsettings-backend" extension point has been registered.
+ * Must be run first and separetly from other GSettingsBackend,
+ * as they will register the extension point making the test useless.
+ */
+static void
+test_extension_point_registered (void)
+{
+  GSettingsBackend *backend;
+  GIOExtensionPoint *extension_point;
+
+  backend = g_null_settings_backend_new ();
+  g_assert_true (G_IS_SETTINGS_BACKEND (backend));
+  extension_point = g_io_extension_point_lookup (G_SETTINGS_BACKEND_EXTENSION_POINT_NAME);
+
+  g_assert_nonnull (extension_point);
+
+  g_object_unref (backend);
+}
+
+int
+main (int argc, char *argv[])
+{
+  g_test_init (&argc, &argv, NULL);
+
+  /* Must be run first */
+  g_test_add_func ("/null-settings-backend/extension-point-registered", test_extension_point_registered);
+
+  return g_test_run ();
+}


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]