| 89 "external", TRUE, |
90 "external", TRUE, |
| 90 NULL); |
91 NULL); |
| 91 |
92 |
| 92 /* Now use g_object_get to read all of the properties. */ |
93 /* Now use g_object_get to read all of the properties. */ |
| 93 g_object_get(info, |
94 g_object_get(info, |
| |
95 "alias", &alias, |
| |
96 "avatar", &avatar1, |
| |
97 "avatar-for-display", &avatar_for_display, |
| |
98 "color", &color, |
| |
99 "display-name", &display_name, |
| |
100 "email", &email, |
| |
101 "external", &external, |
| |
102 "favorite", &favorite, |
| 94 "id", &id, |
103 "id", &id, |
| |
104 "name-for-display", &name_for_display, |
| |
105 "note", ¬e, |
| |
106 "permission", &permission, |
| |
107 "person", &person1, |
| |
108 "phone-number", &phone_number, |
| |
109 "presence", &presence1, |
| |
110 "sid", &sid, |
| |
111 "tags", &tags, |
| |
112 "time-zone", &time_zone1, |
| 95 "username", &username, |
113 "username", &username, |
| 96 "display-name", &display_name, |
|
| 97 "alias", &alias, |
|
| 98 "color", &color, |
|
| 99 "email", &email, |
|
| 100 "phone-number", &phone_number, |
|
| 101 "time-zone", &time_zone1, |
|
| 102 "note", ¬e, |
|
| 103 "avatar", &avatar1, |
|
| 104 "presence", &presence1, |
|
| 105 "tags", &tags, |
|
| 106 "person", &person1, |
|
| 107 "permission", &permission, |
|
| 108 "sid", &sid, |
|
| 109 "name-for-display", &name_for_display, |
|
| 110 "favorite", &favorite, |
|
| 111 "external", &external, |
|
| 112 NULL); |
114 NULL); |
| 113 |
115 |
| 114 /* Compare all the things. */ |
116 g_assert_cmpstr(alias, ==, "alias"); |
| |
117 g_clear_pointer(&alias, g_free); |
| |
118 |
| |
119 g_assert_true(avatar1 == avatar); |
| |
120 g_clear_object(&avatar1); |
| |
121 |
| |
122 g_assert_true(avatar_for_display == avatar); |
| |
123 g_clear_object(&avatar_for_display); |
| |
124 |
| |
125 g_assert_cmpstr(color, ==, "#e9c636"); |
| |
126 g_clear_pointer(&color, g_free); |
| |
127 |
| |
128 g_assert_cmpstr(display_name, ==, "display-name"); |
| |
129 g_clear_pointer(&display_name, g_free); |
| |
130 |
| |
131 g_assert_cmpstr(email, ==, "pidgin@example.com"); |
| |
132 g_clear_pointer(&email, g_free); |
| |
133 |
| |
134 g_assert_true(external); |
| |
135 |
| |
136 g_assert_true(favorite); |
| |
137 |
| 115 g_assert_cmpstr(id, ==, "id1"); |
138 g_assert_cmpstr(id, ==, "id1"); |
| 116 g_assert_cmpstr(username, ==, "username"); |
139 g_clear_pointer(&id, g_free); |
| 117 g_assert_cmpstr(display_name, ==, "display-name"); |
140 |
| 118 g_assert_cmpstr(alias, ==, "alias"); |
141 g_assert_cmpstr(name_for_display, ==, "alias"); |
| 119 g_assert_cmpstr(color, ==, "#e9c636"); |
142 g_clear_pointer(&name_for_display, g_free); |
| 120 g_assert_cmpstr(email, ==, "pidgin@example.com"); |
143 |
| |
144 g_assert_cmpstr(note, ==, "message in a bottle"); |
| |
145 g_clear_pointer(¬e, g_free); |
| |
146 |
| 121 g_assert_cmpstr(phone_number, ==, "+10123456789"); |
147 g_assert_cmpstr(phone_number, ==, "+10123456789"); |
| |
148 g_clear_pointer(&phone_number, g_free); |
| |
149 |
| |
150 g_assert_true(permission == PURPLE_CONTACT_INFO_PERMISSION_ALLOW); |
| |
151 |
| |
152 g_assert_true(person1 == person); |
| |
153 g_clear_object(&person1); |
| |
154 |
| |
155 g_assert_nonnull(presence1); |
| |
156 g_clear_object(&presence1); |
| |
157 |
| |
158 g_assert_cmpstr(sid, ==, "sid"); |
| |
159 g_clear_pointer(&sid, g_free); |
| |
160 |
| |
161 g_assert_nonnull(tags); |
| |
162 g_clear_object(&tags); |
| |
163 |
| 122 g_assert_cmpstr(g_time_zone_get_identifier(time_zone1), ==, |
164 g_assert_cmpstr(g_time_zone_get_identifier(time_zone1), ==, |
| 123 g_time_zone_get_identifier(time_zone)); |
165 g_time_zone_get_identifier(time_zone)); |
| 124 g_assert_cmpstr(note, ==, "message in a bottle"); |
166 g_clear_pointer(&time_zone, g_time_zone_unref); |
| 125 g_assert_cmpstr(name_for_display, ==, "alias"); |
167 |
| 126 g_assert_true(avatar1 == avatar); |
168 g_assert_cmpstr(username, ==, "username"); |
| 127 g_assert_nonnull(presence1); |
|
| 128 g_assert_nonnull(tags); |
|
| 129 g_assert_true(person1 == person); |
|
| 130 g_assert_true(permission == PURPLE_CONTACT_INFO_PERMISSION_ALLOW); |
|
| 131 g_assert_cmpstr(sid, ==, "sid"); |
|
| 132 g_assert_true(favorite); |
|
| 133 g_assert_true(external); |
|
| 134 |
|
| 135 /* Free/unref all the things. */ |
|
| 136 g_clear_pointer(&id, g_free); |
|
| 137 g_clear_pointer(&username, g_free); |
169 g_clear_pointer(&username, g_free); |
| 138 g_clear_pointer(&display_name, g_free); |
170 |
| 139 g_clear_pointer(&alias, g_free); |
|
| 140 g_clear_pointer(&color, g_free); |
|
| 141 g_clear_pointer(&email, g_free); |
|
| 142 g_clear_pointer(&phone_number, g_free); |
|
| 143 g_clear_pointer(&time_zone, g_time_zone_unref); |
|
| 144 g_clear_pointer(¬e, g_free); |
|
| 145 g_clear_pointer(&name_for_display, g_free); |
|
| 146 g_clear_pointer(&sid, g_free); |
|
| 147 g_clear_object(&avatar1); |
|
| 148 g_clear_object(&presence1); |
|
| 149 g_clear_object(&tags); |
|
| 150 g_clear_object(&person); |
171 g_clear_object(&person); |
| 151 g_clear_object(&person1); |
|
| 152 |
|
| 153 g_clear_object(&avatar); |
172 g_clear_object(&avatar); |
| 154 g_clear_object(&info); |
173 g_clear_object(&info); |
| |
174 } |
| |
175 |
| |
176 static void |
| |
177 test_purple_contact_info_get_avatar_for_display(void) { |
| |
178 PurpleContactInfo *info = NULL; |
| |
179 PurpleImage *avatar1 = NULL; |
| |
180 PurpleImage *contact_avatar = NULL; |
| |
181 PurpleImage *person_avatar = NULL; |
| |
182 PurplePerson *person = NULL; |
| |
183 |
| |
184 contact_avatar = g_object_new(PURPLE_TYPE_IMAGE, NULL); |
| |
185 |
| |
186 info = purple_contact_info_new(NULL); |
| |
187 purple_contact_info_set_avatar(info, contact_avatar); |
| |
188 |
| |
189 /* Make sure the contact info's avatar gets returned if there is no |
| |
190 * associated person. |
| |
191 */ |
| |
192 avatar1 = purple_contact_info_get_avatar_for_display(info); |
| |
193 g_assert_true(avatar1 == contact_avatar); |
| |
194 |
| |
195 /* Create a person and make sure we get the contact's avatar back. */ |
| |
196 person = purple_person_new(); |
| |
197 purple_person_add_contact_info(person, info); |
| |
198 |
| |
199 avatar1 = purple_contact_info_get_avatar_for_display(info); |
| |
200 g_assert_true(avatar1 == contact_avatar); |
| |
201 |
| |
202 /* Now set an avatar on the person and verify that it gets returned. */ |
| |
203 person_avatar = g_object_new(PURPLE_TYPE_IMAGE, NULL); |
| |
204 purple_person_set_avatar(person, person_avatar); |
| |
205 |
| |
206 avatar1 = purple_contact_info_get_avatar_for_display(info); |
| |
207 g_assert_true(avatar1 == person_avatar); |
| |
208 |
| |
209 /* Remove the contact info from the person and verify that the contact |
| |
210 * avatar gets returned again. |
| |
211 */ |
| |
212 purple_contact_info_set_person(info, NULL); |
| |
213 |
| |
214 avatar1 = purple_contact_info_get_avatar_for_display(info); |
| |
215 g_assert_true(avatar1 == contact_avatar); |
| |
216 |
| |
217 /* Cleanup */ |
| |
218 g_assert_finalize_object(person); |
| |
219 g_assert_finalize_object(info); |
| |
220 g_assert_finalize_object(contact_avatar); |
| |
221 g_assert_finalize_object(person_avatar); |
| 155 } |
222 } |
| 156 |
223 |
| 157 /****************************************************************************** |
224 /****************************************************************************** |
| 158 * get_name_for_display tests |
225 * get_name_for_display tests |
| 159 *****************************************************************************/ |
226 *****************************************************************************/ |