--- a/libpurple/tests/test_account.c Sun Nov 24 04:19:04 2024 -0600 +++ b/libpurple/tests/test_account.c Mon Nov 25 21:08:01 2024 -0600 @@ -221,6 +221,115 @@ g_assert_finalize_object(account); } +static void +test_purple_account_compare_not_null__null(void) { + PurpleAccount *account = NULL; + + account = purple_account_new("test", "test"); + + g_assert_cmpint(purple_account_compare(account, NULL), <, 0); + + g_assert_finalize_object(account); +} + +static void +test_purple_account_compare_null__not_null(void) { + PurpleAccount *account = NULL; + + account = purple_account_new("test", "test"); + + g_assert_cmpint(purple_account_compare(NULL, account), >, 0); + + g_assert_finalize_object(account); +} + +static void +test_purple_account_compare_null__null(void) { + g_assert_cmpint(purple_account_compare(NULL, NULL), ==, 0); +} + +static void +test_purple_account_compare_not_null__not_null(void) { + PurpleAccount *account_a = NULL; + PurpleAccount *account_b = NULL; + + account_a = g_object_new( + PURPLE_TYPE_ACCOUNT, + "id", "id_a", + "username", "test_a", + "protocol-id", "test", + "enabled", FALSE, + NULL); + account_b = g_object_new( + PURPLE_TYPE_ACCOUNT, + "id", "id_b", + "username", "test_b", + "protocol-id", "test", + "enabled", FALSE, + NULL); + + g_assert_cmpint(purple_account_compare(account_a, account_b), <, 0); + g_assert_cmpint(purple_account_compare(account_b, account_a), >, 0); + g_assert_cmpint(purple_account_compare(account_a, account_a), ==, 0); + + g_assert_finalize_object(account_a); + g_assert_finalize_object(account_b); +} + +static void +test_purple_account_equal_not_null__null(void) { + PurpleAccount *account = NULL; + + account = purple_account_new("test", "test"); + + g_assert_false(purple_account_equal(account, NULL)); + + g_assert_finalize_object(account); +} + +static void +test_purple_account_equal_null__not_null(void) { + PurpleAccount *account = NULL; + + account = purple_account_new("test", "test"); + + g_assert_false(purple_account_equal(NULL, account)); + + g_assert_finalize_object(account); +} + +static void +test_purple_account_equal_null__null(void) { + g_assert_true(purple_account_equal(NULL, NULL)); +} + +static void +test_purple_account_equal_not_null__not_null(void) { + PurpleAccount *account_a = NULL; + PurpleAccount *account_b = NULL; + + account_a = g_object_new( + PURPLE_TYPE_ACCOUNT, + "id", "id_a", + "username", "test_a", + "protocol-id", "test", + "enabled", FALSE, + NULL); + account_b = g_object_new( + PURPLE_TYPE_ACCOUNT, + "id", "id_b", + "username", "test_b", + "protocol-id", "test", + "enabled", FALSE, + NULL); + + g_assert_false(purple_account_equal(account_a, account_b)); + g_assert_true(purple_account_equal(account_a, account_a)); + + g_assert_finalize_object(account_a); + g_assert_finalize_object(account_b); +} + /****************************************************************************** * Main *****************************************************************************/ @@ -235,5 +344,23 @@ g_test_add_func("/account/properties", test_purple_account_properties); g_test_add_func("/account/error", test_purple_account_error); + g_test_add_func("/account/compare/not_null__null", + test_purple_account_compare_not_null__null); + g_test_add_func("/account/compare/null__not_null", + test_purple_account_compare_null__not_null); + g_test_add_func("/account/compare/null__null", + test_purple_account_compare_null__null); + g_test_add_func("/account/compare/not_null__not_null", + test_purple_account_compare_not_null__not_null); + + g_test_add_func("/account/equal/not_null__null", + test_purple_account_equal_not_null__null); + g_test_add_func("/account/equal/null__not_null", + test_purple_account_equal_null__not_null); + g_test_add_func("/account/equal/null__null", + test_purple_account_equal_null__null); + g_test_add_func("/account/equal/not_null__not_null", + test_purple_account_equal_not_null__not_null); + return g_test_run(); }