--- a/libpurple/tests/test_presence_manager.c Tue May 20 17:21:16 2025 -0500 +++ b/libpurple/tests/test_presence_manager.c Thu Jun 12 23:48:22 2025 -0500 @@ -19,6 +19,8 @@ #include <glib.h> #include <glib/gstdio.h> +#include <birb.h> + #include <purple.h> /****************************************************************************** @@ -34,18 +36,6 @@ *counter = *counter + 1; } -static void -test_purple_presence_manager_list_changed_counter(G_GNUC_UNUSED GListModel *list, - G_GNUC_UNUSED guint position, - G_GNUC_UNUSED guint removed, - G_GNUC_UNUSED guint added, - gpointer data) -{ - guint *counter = data; - - *counter = *counter + 1; -} - /****************************************************************************** * Tests *****************************************************************************/ @@ -72,10 +62,9 @@ PurplePresenceManager *manager = NULL; PurpleSavedPresence *presence = NULL; gboolean success = FALSE; - guint len = 0; guint added = 0; guint removed = 0; - guint changed = 0; + guint counter = 0; const char *id = NULL; manager = purple_presence_manager_new(NULL); @@ -87,35 +76,31 @@ g_signal_connect(manager, "removed", G_CALLBACK(test_purple_presence_manager_add_remove_counter), &removed); - g_signal_connect(manager, "items-changed", - G_CALLBACK(test_purple_presence_manager_list_changed_counter), - &changed); + birb_count_list_model_items_changed(G_LIST_MODEL(manager), &counter); - len = g_list_model_get_n_items(G_LIST_MODEL(manager)); /* The manager makes sure we always have online and offline presences. */ - g_assert_cmpuint(len, ==, 2); + birb_assert_list_model_n_items(manager, 2); presence = purple_presence_manager_create(manager); g_assert_true(PURPLE_IS_SAVED_PRESENCE(presence)); purple_saved_presence_set_name(presence, "test presence"); g_assert_cmpuint(added, ==, 1); g_assert_cmpuint(removed, ==, 0); - g_assert_cmpuint(changed, ==, 1); + g_assert_cmpuint(counter, ==, 1); id = purple_saved_presence_get_id(presence); g_assert_nonnull(id); - len = g_list_model_get_n_items(G_LIST_MODEL(manager)); - g_assert_cmpuint(len, ==, 3); + birb_assert_list_model_n_items(manager, 3); + counter = 0; success = purple_presence_manager_remove(manager, id); g_assert_true(success); g_assert_cmpuint(added, ==, 1); g_assert_cmpuint(removed, ==, 1); - g_assert_cmpuint(changed, ==, 2); + g_assert_cmpuint(counter, ==, 1); - len = g_list_model_get_n_items(G_LIST_MODEL(manager)); - g_assert_cmpuint(len, ==, 2); + birb_assert_list_model_n_items(manager, 2); g_clear_object(&presence); g_clear_object(&manager);