libpurple/tests/test_presence_manager.c

changeset 43265
7960b5f85729
parent 42860
99a4ef34cc71
--- 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);

mercurial