summaryrefslogtreecommitdiff
path: root/libpurple/tests
diff options
context:
space:
mode:
authorGary Kramlich <grim@reaperworld.com>2023-02-10 03:03:39 -0600
committerGary Kramlich <grim@reaperworld.com>2023-02-10 03:03:39 -0600
commit74543a21099a29466d3f356beebbb2e3973159dd (patch)
treeb2cce3c8622842a380def81b67eea3642b052d33 /libpurple/tests
parent6ec2ba5d86c1fe484f05f6903f955309251f2a36 (diff)
downloadpidgin-74543a21099a29466d3f356beebbb2e3973159dd.tar.gz
Add a property and accessor for getting the avatar to display for a PurplePerson
Testing Done: Ran the unit tests and verified everything looks looks right in the contact list. Bugs closed: PIDGIN-17735 Reviewed at https://reviews.imfreedom.org/r/2232/
Diffstat (limited to 'libpurple/tests')
-rw-r--r--libpurple/tests/test_person.c51
1 files changed, 51 insertions, 0 deletions
diff --git a/libpurple/tests/test_person.c b/libpurple/tests/test_person.c
index d6bea74c08..f5e3cb3822 100644
--- a/libpurple/tests/test_person.c
+++ b/libpurple/tests/test_person.c
@@ -67,6 +67,7 @@ test_purple_person_properties(void) {
PurpleTags *tags = NULL;
GdkPixbuf *avatar = NULL;
GdkPixbuf *avatar1 = NULL;
+ GdkPixbuf *avatar_for_display = NULL;
char *id = NULL;
char *alias = NULL;
char *name_for_display = NULL;
@@ -89,6 +90,7 @@ test_purple_person_properties(void) {
"id", &id,
"alias", &alias,
"avatar", &avatar1,
+ "avatar-for-display", &avatar_for_display,
"name-for-display", &name_for_display,
"tags", &tags,
NULL);
@@ -97,6 +99,7 @@ test_purple_person_properties(void) {
g_assert_nonnull(id);
g_assert_cmpstr(alias, ==, "alias");
g_assert_true(avatar1 == avatar);
+ g_assert_true(avatar1 == avatar_for_display);
g_assert_cmpstr(name_for_display, ==, "alias");
g_assert_nonnull(tags);
@@ -104,6 +107,7 @@ test_purple_person_properties(void) {
g_clear_pointer(&id, g_free);
g_clear_pointer(&alias, g_free);
g_clear_object(&avatar1);
+ g_clear_object(&avatar_for_display);
g_clear_pointer(&name_for_display, g_free);
g_clear_object(&tags);
@@ -112,6 +116,48 @@ test_purple_person_properties(void) {
}
static void
+test_purple_person_avatar_for_display_person(void) {
+ PurpleContactInfo *info = NULL;
+ PurplePerson *person = NULL;
+ GdkPixbuf *avatar = NULL;
+
+ person = purple_person_new();
+ avatar = gdk_pixbuf_new(GDK_COLORSPACE_RGB, FALSE, 8, 1, 1);
+ purple_person_set_avatar(person, avatar);
+
+ info = purple_contact_info_new("id");
+ purple_person_add_contact_info(person, info);
+
+ /* Make sure the person's alias is overriding the contact info. */
+ g_assert_true(purple_person_get_avatar_for_display(person) == avatar);
+
+ g_clear_object(&info);
+ g_clear_object(&person);
+ g_clear_object(&avatar);
+}
+
+static void
+test_purple_person_avatar_for_display_contact(void) {
+ PurpleContactInfo *info = NULL;
+ PurplePerson *person = NULL;
+ GdkPixbuf *avatar = NULL;
+
+ person = purple_person_new();
+
+ info = purple_contact_info_new("id");
+ avatar = gdk_pixbuf_new(GDK_COLORSPACE_RGB, FALSE, 8, 1, 1);
+ purple_contact_info_set_avatar(info, avatar);
+ purple_person_add_contact_info(person, info);
+
+ /* Make sure the person's alias is overriding the contact info. */
+ g_assert_true(purple_person_get_avatar_for_display(person) == avatar);
+
+ g_clear_object(&info);
+ g_clear_object(&person);
+ g_clear_object(&avatar);
+}
+
+static void
test_purple_person_name_for_display_person(void) {
PurpleContactInfo *info = NULL;
PurplePerson *person = NULL;
@@ -410,6 +456,11 @@ main(gint argc, gchar *argv[]) {
g_test_add_func("/person/properties",
test_purple_person_properties);
+ g_test_add_func("/person/avatar-for-display/person",
+ test_purple_person_avatar_for_display_person);
+ g_test_add_func("/person/avatar-for-display/contact",
+ test_purple_person_avatar_for_display_contact);
+
g_test_add_func("/person/name-for-display/person",
test_purple_person_name_for_display_person);
g_test_add_func("/person/name-for-display/contact",