From aa23c8f91d136937c5ff47983ff0bb6d30267239 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guido=20G=C3=BCnther?= Date: Wed, 23 Apr 2025 18:22:53 +0200 Subject: [PATCH] tests: Test sound feedback MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Guido Günther --- tests/meson.build | 1 + tests/test-fbd-feedback-sound.c | 60 +++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 tests/test-fbd-feedback-sound.c diff --git a/tests/meson.build b/tests/meson.build index a4f8bda..f338166 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -76,6 +76,7 @@ if get_option('tests') fbd_tests = [ 'fbd-feedback-led', 'fbd-feedback-profile', + 'fbd-feedback-sound', 'fbd-feedback-vibra', 'fbd-feedback-theme', 'fbd-event', diff --git a/tests/test-fbd-feedback-sound.c b/tests/test-fbd-feedback-sound.c new file mode 100644 index 0000000..b2ee080 --- /dev/null +++ b/tests/test-fbd-feedback-sound.c @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2025 The Phosh Developers + * + * SPDX-License-Identifier: GPL-3.0+ + * + * Author: Guido Günther + */ + +#define GMOBILE_USE_UNSTABLE_API +#include "fbd-feedback-manager.h" +#include "fbd-feedback-sound.h" + +#include + + +static void +test_fbd_feedback_sound_event (void) +{ + /* Create manager upfront so we can dispose it, otherwise creating + * any feedback would create it implicitly */ + FbdFeedbackManager *manager = fbd_feedback_manager_get_default (); + g_autoptr (GError) err = NULL; + g_autoptr (JsonNode) node = NULL; + GObject *object; + g_autofree char *event_name = NULL, *file_name = NULL, *effect = NULL; + + node = json_from_string ("{" + " \"event-name\" : \"message-new-cellbroadcast\"," + " \"type\" : \"Sound\"," + " \"effect\" : \"cellbroadcast\"" + "}", &err); + g_assert_no_error (err); + + object = json_gobject_deserialize (FBD_TYPE_FEEDBACK_SOUND, node); + g_test_assert_expected_messages (); + + g_object_get (object, + "event-name", &event_name, + "file-name", &file_name, + "effect", &effect, + NULL); + + g_assert_cmpstr (event_name, ==, "message-new-cellbroadcast"); + g_assert_cmpstr (effect, ==, "cellbroadcast"); + g_assert_null (file_name); + + g_assert_finalize_object (object); + g_assert_finalize_object (manager); +} + + +gint +main (gint argc, gchar *argv[]) +{ + g_test_init (&argc, &argv, NULL); + + g_test_add_func ("/feedbackd/fbd/feedback-sound/event", test_fbd_feedback_sound_event); + + return g_test_run (); +}