--- a/libpurple/tests/test_contact_info.c Tue Sep 10 02:03:43 2024 -0500 +++ b/libpurple/tests/test_contact_info.c Sat Sep 14 01:31:16 2024 -0500 @@ -348,6 +348,56 @@ } /****************************************************************************** + * purple_contact_info_equal tests + *****************************************************************************/ +static void +test_purple_contact_info_equal_not_null__not_null(void) { + PurpleContactInfo *info_a = NULL; + PurpleContactInfo *info_b = NULL; + + info_a = purple_contact_info_new(NULL); + info_b = purple_contact_info_new(NULL); + + g_assert_true(purple_contact_info_equal(info_a, info_b)); + + purple_contact_info_set_username(info_a, "foo"); + g_assert_false(purple_contact_info_equal(info_a, info_b)); + + purple_contact_info_set_username(info_b, "foo"); + g_assert_true(purple_contact_info_equal(info_a, info_b)); + + g_clear_object(&info_a); + g_clear_object(&info_b); +} + +static void +test_purple_contact_info_equal_not_null__null(void) { + PurpleContactInfo *info = NULL; + + info = purple_contact_info_new(NULL); + + g_assert_false(purple_contact_info_equal(info, NULL)); + + g_clear_object(&info); +} + +static void +test_purple_contact_info_equal_null__not_null(void) { + PurpleContactInfo *info = NULL; + + info = purple_contact_info_new(NULL); + + g_assert_false(purple_contact_info_equal(NULL, info)); + + g_clear_object(&info); +} + +static void +test_purple_contact_info_equal_null__null(void) { + g_assert_true(purple_contact_info_equal(NULL, NULL)); +} + +/****************************************************************************** * Matches *****************************************************************************/ static void @@ -557,6 +607,15 @@ g_test_add_func("/contact-info/compare/name__name", test_purple_contact_info_compare_name__name); + g_test_add_func("/contact-info/equal/not_null__not_null", + test_purple_contact_info_equal_not_null__not_null); + g_test_add_func("/contact-info/equal/not_null__null", + test_purple_contact_info_equal_not_null__null); + g_test_add_func("/contact-info/equal/null__not_null", + test_purple_contact_info_equal_null__not_null); + g_test_add_func("/contact-info/equal/null__null", + test_purple_contact_info_equal_null__null); + g_test_add_func("/contact-info/matches/accepts_null", test_purple_contact_info_matches_accepts_null); g_test_add_func("/contact-info/matches/emptry_string",