[calls] tests: Mock libfeedback
- From: Evangelos Ribeiro Tzaras <devrtz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [calls] tests: Mock libfeedback
- Date: Tue, 11 Oct 2022 08:13:12 +0000 (UTC)
commit 280527d7a7719f7bf45d3e22aa4608733f188f1c
Author: Evangelos Ribeiro Tzaras <devrtz fortysixandtwo eu>
Date: Mon Sep 19 18:50:53 2022 +0200
tests: Mock libfeedback
Copied from libfeedback as of 2e081602f627505e566cc0bdb6cd96c7642d8b65
and adjusted for our mocking needs.
The mocked library will be LD_PRELOADED for the moment,
but further changes to the build should allow us to simply link
to it in the future.
tests/meson.build | 18 +--
tests/mock/lfb/lfb-enums.c | 49 ++++++
tests/mock/lfb/lfb-enums.h | 24 +++
tests/mock/lfb/lfb-event.c | 348 +++++++++++++++++++++++++++++++++++++++++++
tests/mock/lfb/lfb-event.h | 57 +++++++
tests/mock/lfb/libfeedback.c | 29 ++++
tests/mock/lfb/libfeedback.h | 19 +++
tests/mock/lfb/meson.build | 52 +++++++
tests/mock/meson.build | 1 +
tests/test-ringer.c | 145 +-----------------
10 files changed, 587 insertions(+), 155 deletions(-)
---
diff --git a/tests/meson.build b/tests/meson.build
index 26ece5c4..fb933487 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -1,5 +1,7 @@
if get_option('tests')
+subdir('mock')
+
test_env = [
'G_TEST_SRCDIR=@0@'.format(meson.current_source_dir()),
'G_TEST_BUILDDIR=@0@'.format(meson.current_build_dir()),
@@ -81,16 +83,10 @@ t = executable('ui-call', test_sources,
)
test('ui-call', t, env: test_env)
-mock_link_args = [ test_link_args,
- '-Wl,--wrap=lfb_init',
- '-Wl,--wrap=lfb_uninit',
- '-Wl,--wrap=lfb_event_set_feedback_profile',
- '-Wl,--wrap=lfb_event_trigger_feedback_async',
- '-Wl,--wrap=lfb_event_trigger_feedback_finish',
- '-Wl,--wrap=lfb_event_end_feedback_async',
- '-Wl,--wrap=lfb_event_end_feedback_finish',
- '-Wl,--wrap=calls_contacts_provider_new',
- ]
+test_env_ringer = [
+ 'LD_PRELOAD=@0@/mock/lfb/libfeedback-0.so'.format(meson.current_build_dir()),
+] + test_env
+
cmocka = dependency ('cmocka', required: false)
if cmocka.found ()
@@ -109,7 +105,7 @@ if cmocka.found ()
calls_includes,
]
)
- test('ringer', t, env: test_env)
+ test('ringer', t, env: test_env_ringer)
endif
test_sources = [ 'test-contacts.c' ]
diff --git a/tests/mock/lfb/lfb-enums.c b/tests/mock/lfb/lfb-enums.c
new file mode 100644
index 00000000..27f06c9a
--- /dev/null
+++ b/tests/mock/lfb/lfb-enums.c
@@ -0,0 +1,49 @@
+
+/* This file is generated by glib-mkenums, do not modify it. This code is licensed under the same license as
the containing project. Note that it links to GLib, so must comply with the LGPL linking clauses. */
+
+#include "lfb-enums.h"
+#include "lfb-event.h"
+
+#define C_ENUM(v) ((gint) v)
+#define C_FLAGS(v) ((guint) v)
+
+/* enumerations from "lfb-event.h" */
+
+GType
+lfb_event_state_get_type (void)
+{
+static gsize gtype_id = 0;
+static const GEnumValue values[] = {
+ { C_ENUM(LFB_EVENT_STATE_ERRORED), "LFB_EVENT_STATE_ERRORED", "errored" },
+ { C_ENUM(LFB_EVENT_STATE_NONE), "LFB_EVENT_STATE_NONE", "none" },
+ { C_ENUM(LFB_EVENT_STATE_RUNNING), "LFB_EVENT_STATE_RUNNING", "running" },
+ { C_ENUM(LFB_EVENT_STATE_ENDED), "LFB_EVENT_STATE_ENDED", "ended" },
+{ 0, NULL, NULL }
+ };
+ if (g_once_init_enter (>ype_id)) {
+ GType new_type = g_enum_register_static (g_intern_static_string ("LfbEventState"), values);
+ g_once_init_leave (>ype_id, new_type);
+ }
+ return (GType) gtype_id;
+ }
+
+GType
+lfb_event_end_reason_get_type (void)
+{
+static gsize gtype_id = 0;
+static const GEnumValue values[] = {
+ { C_ENUM(LFB_EVENT_END_REASON_NOT_FOUND), "LFB_EVENT_END_REASON_NOT_FOUND", "not-found" },
+ { C_ENUM(LFB_EVENT_END_REASON_NATURAL), "LFB_EVENT_END_REASON_NATURAL", "natural" },
+ { C_ENUM(LFB_EVENT_END_REASON_EXPIRED), "LFB_EVENT_END_REASON_EXPIRED", "expired" },
+ { C_ENUM(LFB_EVENT_END_REASON_EXPLICIT), "LFB_EVENT_END_REASON_EXPLICIT", "explicit" },
+{ 0, NULL, NULL }
+ };
+ if (g_once_init_enter (>ype_id)) {
+ GType new_type = g_enum_register_static (g_intern_static_string ("LfbEventEndReason"), values);
+ g_once_init_leave (>ype_id, new_type);
+ }
+ return (GType) gtype_id;
+ }
+
+/* Generated data ends here */
+
diff --git a/tests/mock/lfb/lfb-enums.h b/tests/mock/lfb/lfb-enums.h
new file mode 100644
index 00000000..1c0adb24
--- /dev/null
+++ b/tests/mock/lfb/lfb-enums.h
@@ -0,0 +1,24 @@
+
+/* This file is generated by glib-mkenums, do not modify it. This code is licensed under the same license as
the containing project. Note that it links to GLib, so must comply with the LGPL linking clauses. */
+
+#pragma once
+
+ #include <glib-object.h>
+
+
+ G_BEGIN_DECLS
+
+/* enumerations from "lfb-event.h" */
+
+
+GType lfb_event_state_get_type (void);
+#define LFB_TYPE_EVENT_STATE (lfb_event_state_get_type())
+
+
+GType lfb_event_end_reason_get_type (void);
+#define LFB_TYPE_EVENT_END_REASON (lfb_event_end_reason_get_type())
+
+G_END_DECLS
+
+/* Generated data ends here */
+
diff --git a/tests/mock/lfb/lfb-event.c b/tests/mock/lfb/lfb-event.c
new file mode 100644
index 00000000..f7f19c9d
--- /dev/null
+++ b/tests/mock/lfb/lfb-event.c
@@ -0,0 +1,348 @@
+/*
+ * Copyright (C) 2020 Purism SPC
+ * SPDX-License-Identifier: LGPL-2.1+
+ * Author: Guido Günther <agx sigxcpu org>
+ */
+
+#include "lfb-event.h"
+#include "lfb-enums.h"
+
+#include <gio/gio.h>
+
+gboolean success = TRUE;
+guint interval_timeout_ms = 50;
+
+
+enum {
+ PROP_0,
+ PROP_EVENT,
+ PROP_TIMEOUT,
+ PROP_STATE,
+ PROP_END_REASON,
+ PROP_FEEDBACK_PROFILE,
+ PROP_LAST_PROP,
+};
+static GParamSpec *props[PROP_LAST_PROP];
+
+enum {
+ SIGNAL_FEEDBACK_ENDED,
+ N_SIGNALS,
+};
+static guint signals[N_SIGNALS];
+
+typedef struct _LfbEvent {
+ GObject parent;
+
+ char *event;
+ gint timeout;
+ gchar *profile;
+
+ guint id;
+ LfbEventState state;
+ gint end_reason;
+ gulong handler_id;
+} LfbEvent;
+
+G_DEFINE_TYPE (LfbEvent, lfb_event, G_TYPE_OBJECT);
+
+typedef struct _LpfAsyncData {
+ LfbEvent *event;
+ GTask *task;
+} LpfAsyncData;
+
+static void
+lfb_event_set_state (LfbEvent *self, LfbEventState state)
+{
+ if (self->state == state)
+ return;
+
+ self->state = state;
+ g_object_notify_by_pspec (G_OBJECT (self), props[PROP_STATE]);
+}
+
+
+
+static void
+lfb_event_set_property (GObject *object,
+ guint property_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ LfbEvent *self = LFB_EVENT (object);
+
+ switch (property_id) {
+ case PROP_EVENT:
+ g_free (self->event);
+ self->event = g_value_dup_string (value);
+ g_object_notify_by_pspec (G_OBJECT (self), props[PROP_EVENT]);
+ break;
+ case PROP_TIMEOUT:
+ lfb_event_set_timeout (self, g_value_get_int (value));
+ break;
+ case PROP_FEEDBACK_PROFILE:
+ lfb_event_set_feedback_profile (self, g_value_get_string (value));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+
+
+static void
+lfb_event_get_property (GObject *object,
+ guint property_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ LfbEvent *self = LFB_EVENT (object);
+
+ switch (property_id) {
+ case PROP_EVENT:
+ g_value_set_string (value, self->event);
+ break;
+ case PROP_TIMEOUT:
+ g_value_set_int (value, self->timeout);
+ break;
+ case PROP_FEEDBACK_PROFILE:
+ g_value_set_string (value, self->profile);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+
+static void
+lfb_event_finalize (GObject *object)
+{
+ LfbEvent *self = LFB_EVENT (object);
+
+ /* Signal handler is disconnected automatically due to g_signal_connect_object */
+ self->handler_id = 0;
+
+ g_clear_pointer (&self->event, g_free);
+ g_clear_pointer (&self->profile, g_free);
+
+ G_OBJECT_CLASS (lfb_event_parent_class)->finalize (object);
+}
+
+static void
+lfb_event_class_init (LfbEventClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ object_class->set_property = lfb_event_set_property;
+ object_class->get_property = lfb_event_get_property;
+
+ object_class->finalize = lfb_event_finalize;
+
+ props[PROP_EVENT] =
+ g_param_spec_string (
+ "event",
+ "Event",
+ "The name of the event triggering the feedback",
+ NULL,
+ G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+
+ props[PROP_TIMEOUT] =
+ g_param_spec_int (
+ "timeout",
+ "Timeout",
+ "When the event should timeout",
+ -1, G_MAXINT, -1,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+
+ props[PROP_STATE] =
+ g_param_spec_enum (
+ "state",
+ "State",
+ "The event's state",
+ LFB_TYPE_EVENT_STATE,
+ LFB_EVENT_END_REASON_NATURAL,
+ G_PARAM_READABLE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
+
+ props[PROP_END_REASON] =
+ g_param_spec_enum (
+ "end-reason",
+ "End reason",
+ "The reason why the feedbacks ended",
+ LFB_TYPE_EVENT_END_REASON,
+ LFB_EVENT_END_REASON_NATURAL,
+ G_PARAM_READABLE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
+
+ props[PROP_FEEDBACK_PROFILE] =
+ g_param_spec_string (
+ "feedback-profile",
+ "Feedback profile",
+ "Feedback profile to use for this event",
+ NULL,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
+
+ g_object_class_install_properties (object_class, PROP_LAST_PROP, props);
+
+ signals[SIGNAL_FEEDBACK_ENDED] = g_signal_new ("feedback-ended",
+ G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_LAST, 0, NULL, NULL,
+ NULL,
+ G_TYPE_NONE,
+ 0);
+}
+
+static void
+lfb_event_init (LfbEvent *self)
+{
+ self->timeout = -1;
+ self->state = LFB_EVENT_STATE_NONE;
+ self->end_reason = LFB_EVENT_END_REASON_NATURAL;
+}
+
+LfbEvent *
+lfb_event_new (const char *event)
+{
+ return g_object_new (LFB_TYPE_EVENT, "event", event, NULL);
+}
+
+/* mock libfeedback functions */
+
+static gboolean
+on_mock_timeout (gpointer user_data)
+{
+ GTask *task;
+ GCancellable *cancellable;
+
+ if (!G_IS_TASK (user_data))
+ return G_SOURCE_REMOVE;
+
+ task = G_TASK (user_data);
+ cancellable = g_task_get_cancellable (task);
+
+ if (!g_cancellable_is_cancelled (cancellable))
+ g_task_return_boolean (task, TRUE);
+
+ return G_SOURCE_REMOVE;
+}
+
+static gboolean
+on_check_task_cancelled (gpointer user_data)
+{
+ GTask *task;
+ LfbEvent *event;
+ LfbEventState state;
+
+ if (!G_IS_TASK (user_data))
+ return G_SOURCE_REMOVE;
+
+ task = G_TASK (user_data);
+ event = g_task_get_source_object (task);
+ state = GPOINTER_TO_INT (g_task_get_task_data (task));
+
+ lfb_event_set_state (event, success ? state : LFB_EVENT_STATE_ERRORED);
+
+ if (g_task_get_completed (task) || g_task_return_error_if_cancelled (task)) {
+ g_object_unref (task);
+
+ return G_SOURCE_REMOVE;
+ }
+
+ return G_SOURCE_CONTINUE;
+}
+
+void
+lfb_event_trigger_feedback_async (LfbEvent *self,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ GTask *task;
+ g_return_if_fail (LFB_IS_EVENT (self));
+
+ task = g_task_new (self, cancellable, callback, user_data);
+ g_task_set_task_data (task, GINT_TO_POINTER (LFB_EVENT_STATE_RUNNING), NULL);
+
+ g_timeout_add (interval_timeout_ms, on_mock_timeout, task);
+ g_idle_add (G_SOURCE_FUNC (on_check_task_cancelled), task);
+}
+
+gboolean
+lfb_event_trigger_feedback_finish (LfbEvent *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ g_return_val_if_fail (g_task_is_valid (res, self), FALSE);
+
+ return success;
+}
+
+gboolean
+lfb_event_end_feedback_finish (LfbEvent *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ g_return_val_if_fail (g_task_is_valid (res, self), FALSE);
+
+ return success;
+}
+
+void
+lfb_event_end_feedback_async (LfbEvent *self,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ GTask *task;
+ g_return_if_fail (LFB_IS_EVENT (self));
+
+ task = g_task_new (self, cancellable, callback, user_data);
+ g_task_set_task_data (task, GINT_TO_POINTER (LFB_EVENT_STATE_ENDED), NULL);
+
+ g_timeout_add (interval_timeout_ms, on_mock_timeout, task);
+ g_idle_add (G_SOURCE_FUNC (on_check_task_cancelled), task);
+}
+
+void
+lfb_event_set_timeout (LfbEvent *self, gint timeout)
+{
+ g_return_if_fail (LFB_IS_EVENT (self));
+
+ if (self->timeout == timeout)
+ return;
+
+ self->timeout = timeout;
+ g_object_notify_by_pspec (G_OBJECT (self), props[PROP_TIMEOUT]);
+}
+
+gint
+lfb_event_get_timeout (LfbEvent *self)
+{
+ g_return_val_if_fail (LFB_IS_EVENT (self), -1);
+ return self->timeout;
+}
+
+LfbEventState
+lfb_event_get_state (LfbEvent *self)
+{
+ g_return_val_if_fail (LFB_IS_EVENT (self), LFB_EVENT_STATE_NONE);
+ return self->state;
+}
+
+void
+lfb_event_set_feedback_profile (LfbEvent *self, const gchar *profile)
+{
+ g_return_if_fail (LFB_IS_EVENT (self));
+
+ if (!g_strcmp0 (self->profile, profile))
+ return;
+
+ g_free (self->profile);
+ self->profile = g_strdup (profile);
+ g_object_notify_by_pspec (G_OBJECT (self), props[PROP_FEEDBACK_PROFILE]);
+}
+
+char *
+lfb_event_get_feedback_profile (LfbEvent *self)
+{
+ g_return_val_if_fail (LFB_IS_EVENT (self), NULL);
+
+ return g_strdup (self->profile);
+}
diff --git a/tests/mock/lfb/lfb-event.h b/tests/mock/lfb/lfb-event.h
new file mode 100644
index 00000000..f1c778d7
--- /dev/null
+++ b/tests/mock/lfb/lfb-event.h
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2020 Purism SPC
+ *
+ * SPDX-License-Identifier: LGPL-2.1+
+ */
+#pragma once
+
+#include <gio/gio.h>
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+/* values used for mocking */
+extern gboolean success;
+extern guint interval_timeout_ms;
+
+
+typedef enum _LfbEventState {
+ LFB_EVENT_STATE_ERRORED = -1,
+ LFB_EVENT_STATE_NONE = 0,
+ LFB_EVENT_STATE_RUNNING = 1,
+ LFB_EVENT_STATE_ENDED = 2,
+} LfbEventState;
+
+typedef enum _LfbEventEndReason {
+ LFB_EVENT_END_REASON_NOT_FOUND = -1,
+ LFB_EVENT_END_REASON_NATURAL = 0,
+ LFB_EVENT_END_REASON_EXPIRED = 1,
+ LFB_EVENT_END_REASON_EXPLICIT = 2,
+} LfbEventEndReason;
+
+#define LFB_TYPE_EVENT (lfb_event_get_type())
+
+G_DECLARE_FINAL_TYPE (LfbEvent, lfb_event, LFB, EVENT, GObject)
+
+LfbEvent* lfb_event_new (const char *event);
+void lfb_event_trigger_feedback_async (LfbEvent *self,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+gboolean lfb_event_trigger_feedback_finish (LfbEvent *self,
+ GAsyncResult *res,
+ GError **error);
+void lfb_event_end_feedback_async (LfbEvent *self,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+gboolean lfb_event_end_feedback_finish (LfbEvent *self,
+ GAsyncResult *res,
+ GError **error);
+void lfb_event_set_timeout (LfbEvent *self, gint timeout);
+gint lfb_event_get_timeout (LfbEvent *self);
+void lfb_event_set_feedback_profile (LfbEvent *self, const char *profile);
+char *lfb_event_get_feedback_profile (LfbEvent *self);
+LfbEventState lfb_event_get_state (LfbEvent *self);
+
+G_END_DECLS
diff --git a/tests/mock/lfb/libfeedback.c b/tests/mock/lfb/libfeedback.c
new file mode 100644
index 00000000..371282d3
--- /dev/null
+++ b/tests/mock/lfb/libfeedback.c
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2020 Purism SPC
+ * SPDX-License-Identifier: LGPL-2.1+
+ * Author: Guido Günther <agx sigxcpu org>
+ */
+#include "libfeedback.h"
+
+static gboolean _initted;
+
+
+gboolean
+lfb_init (const gchar *app_id, GError **error)
+{
+ _initted = TRUE;
+ g_debug ("libfeedback mock library initialized");
+ return TRUE;
+}
+
+void
+lfb_uninit (void)
+{
+ _initted = FALSE;
+}
+
+gboolean
+lfb_is_initted (void)
+{
+ return _initted;
+}
diff --git a/tests/mock/lfb/libfeedback.h b/tests/mock/lfb/libfeedback.h
new file mode 100644
index 00000000..498e036c
--- /dev/null
+++ b/tests/mock/lfb/libfeedback.h
@@ -0,0 +1,19 @@
+/*
+ * Copyright (C) 2020 Purism SPC
+ *
+ * SPDX-License-Identifier: LGPL-2.1+
+ */
+#pragma once
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+#include "lfb-enums.h"
+#include "lfb-event.h"
+
+gboolean lfb_init (const gchar *app_id, GError **error);
+void lfb_uninit (void);
+gboolean lfb_is_initted (void);
+
+G_END_DECLS
diff --git a/tests/mock/lfb/meson.build b/tests/mock/lfb/meson.build
new file mode 100644
index 00000000..f0e83298
--- /dev/null
+++ b/tests/mock/lfb/meson.build
@@ -0,0 +1,52 @@
+libfeedback_libdir = get_option('libdir')
+libfeedback_link_args = []
+libfeedback_symbols_file = 'libfeedback.syms'
+
+lfb_enum_headers = files([
+ 'lfb-event.h',
+])
+
+libfeedback_headers = [
+ 'libfeedback.h',
+ 'lfb-event.h',
+]
+
+libfeedback_sources = [
+ 'lfb-enums.c',
+ libfeedback_headers,
+ 'libfeedback.c',
+ 'lfb-event.c',
+]
+
+gio = dependency('gio-2.0', version: '>=2.50.0')
+glib = dependency('glib-2.0', version: '>=2.50.0')
+gobject = dependency('gobject-2.0', version: '>=2.50.0')
+
+libfeedback_deps = [
+ gio,
+ glib,
+ gobject,
+]
+
+libfeedback_c_args = [
+ '-DG_LOG_DOMAIN="libfeedback"',
+]
+
+libtype = 'shared_library'
+libfeedback = build_target(
+ 'feedback-0',
+ libfeedback_sources,
+ soversion : 0,
+ c_args : libfeedback_c_args,
+ dependencies : libfeedback_deps,
+ link_args : [],
+ install : false,
+ target_type : libtype,
+)
+
+libfeedback_inc = include_directories('.')
+libfeedback_dep = declare_dependency(
+ link_with : libfeedback,
+ dependencies: libfeedback_deps,
+ include_directories : libfeedback_inc,
+)
diff --git a/tests/mock/meson.build b/tests/mock/meson.build
new file mode 100644
index 00000000..abf9b0d0
--- /dev/null
+++ b/tests/mock/meson.build
@@ -0,0 +1 @@
+subdir('lfb')
diff --git a/tests/test-ringer.c b/tests/test-ringer.c
index 81f24cd8..c14a59f6 100644
--- a/tests/test-ringer.c
+++ b/tests/test-ringer.c
@@ -18,125 +18,7 @@
#include <setjmp.h>
-/* mock libfeedback functions */
-
-static gboolean
-on_mock_timeout (gpointer user_data)
-{
- GTask *task;
- GCancellable *cancellable;
-
- if (!G_IS_TASK (user_data))
- return G_SOURCE_REMOVE;
-
- task = G_TASK (user_data);
- cancellable = g_task_get_cancellable (task);
-
- if (!g_cancellable_is_cancelled (cancellable))
- g_task_return_boolean (task, TRUE);
-
- return G_SOURCE_REMOVE;
-}
-
-static gboolean
-on_check_task_cancelled (gpointer user_data)
-{
- GTask *task;
-
- if (!G_IS_TASK (user_data))
- return G_SOURCE_REMOVE;
-
- task = G_TASK (user_data);
-
- if (g_task_get_completed (task) || g_task_return_error_if_cancelled (task))
- return G_SOURCE_REMOVE;
-
- return G_SOURCE_CONTINUE;
-}
-
-
-gboolean
-__wrap_lfb_init (const char *app_id,
- GError **error)
-{
- return TRUE;
-}
-
-
-void
-__wrap_lfb_uninit (void)
-{
- return;
-}
-
-
-void
-__wrap_lfb_event_set_feedback_profile (LfbEvent *self,
- const char *profile)
-{
- return;
-}
-
-
-void
-__wrap_lfb_event_trigger_feedback_async (LfbEvent *self,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data)
-{
- GTask *trigger_task = g_task_new (self, cancellable, callback, user_data);
- int mock_time_ms = mock_type (int);
-
- g_timeout_add (mock_time_ms, on_mock_timeout, trigger_task);
- g_idle_add (G_SOURCE_FUNC (on_check_task_cancelled), trigger_task);
-}
-
-
-gboolean
-__wrap_lfb_event_trigger_feedback_finish (LfbEvent *self,
- GAsyncResult *res,
- GError **error)
-{
- GTask *task = G_TASK (res);
- gboolean ret;
-
- ret = g_task_propagate_boolean (task, error);
-
- g_object_unref (task);
-
- return ret;
-}
-
-
-void
-__wrap_lfb_event_end_feedback_async (LfbEvent *self,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data)
-{
- GTask *trigger_task = g_task_new (self, cancellable, callback, user_data);
- int mock_time_ms = mock_type (int);
-
- g_timeout_add (mock_time_ms, on_mock_timeout, trigger_task);
-}
-
-
-gboolean
-__wrap_lfb_event_end_feedback_finish (LfbEvent *self,
- GAsyncResult *res,
- GError **error)
-{
- GTask *task = G_TASK (res);
- gboolean ret;
-
- ret = g_task_propagate_boolean (G_TASK (res), error);
-
- g_object_unref (task);
-
- return ret;
-}
-
-
+/* mock calls_contacts_provider_new() */
CallsContactsProvider *
__wrap_calls_contacts_provider_new (void)
{
@@ -253,11 +135,6 @@ test_ringing_accept_call (void **state)
G_CALLBACK (t1_on_ringer_call_accepted),
data);
- /* delay before completion of __wrap_lfb_event_trigger_feedback_async() */
- will_return (__wrap_lfb_event_trigger_feedback_async, 10);
- /* delay before completion of __wrap_lfb_event_end_feedback_async() */
- will_return (__wrap_lfb_event_end_feedback_async, 10);
-
calls_call_set_state (CALLS_CALL (data->call_one), CALLS_CALL_STATE_INCOMING);
add_call (data->manager, data->ui_call_one);
@@ -304,11 +181,6 @@ test_ringing_hang_up_call (void **state)
G_CALLBACK (t2_on_ringer_call_hang_up),
data);
- /* delay before completion of __wrap_lfb_event_trigger_feedback_async() */
- will_return (__wrap_lfb_event_trigger_feedback_async, 10);
- /* delay before completion of __wrap_lfb_event_end_feedback_async() */
- will_return (__wrap_lfb_event_end_feedback_async, 10);
-
calls_call_set_state (CALLS_CALL (data->call_one), CALLS_CALL_STATE_INCOMING);
add_call (data->manager, data->ui_call_one);
@@ -357,11 +229,6 @@ test_ringing_silence_call (void **state)
G_CALLBACK (t4_on_ringer_call_silence),
data);
- /* delay before completion of __wrap_lfb_event_trigger_feedback_async() */
- will_return (__wrap_lfb_event_trigger_feedback_async, 10);
- /* delay before completion of __wrap_lfb_event_end_feedback_async() */
- will_return (__wrap_lfb_event_end_feedback_async, 10);
-
calls_call_set_state (CALLS_CALL (data->call_one), CALLS_CALL_STATE_INCOMING);
add_call (data->manager, data->ui_call_one);
@@ -429,11 +296,6 @@ test_ringing_multiple_calls (void **state)
G_CALLBACK (t5_on_ringer_multiple_calls),
data);
- /* delay before completion of __wrap_lfb_event_trigger_feedback_async() */
- will_return (__wrap_lfb_event_trigger_feedback_async, 10);
- /* delay before completion of __wrap_lfb_event_end_feedback_async() */
- will_return (__wrap_lfb_event_end_feedback_async, 10);
-
calls_call_set_state (CALLS_CALL (data->call_one), CALLS_CALL_STATE_INCOMING);
add_call (data->manager, data->ui_call_one);
@@ -494,11 +356,6 @@ test_ringing_multiple_calls_with_restart (void **state)
G_CALLBACK (t6_on_ringer_multiple_calls_with_restart),
data);
- /* delay before completion of __wrap_lfb_event_trigger_feedback_async() */
- will_return_always (__wrap_lfb_event_trigger_feedback_async, 10);
- /* delay before completion of __wrap_lfb_event_end_feedback_async() */
- will_return_always (__wrap_lfb_event_end_feedback_async, 10);
-
calls_call_set_state (CALLS_CALL (data->call_one), CALLS_CALL_STATE_INCOMING);
add_call (data->manager, data->ui_call_one);
calls_call_set_state (CALLS_CALL (data->call_two), CALLS_CALL_STATE_INCOMING);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]