| 55 /****************************************************************************** |
55 /****************************************************************************** |
| 56 * Tests |
56 * Tests |
| 57 *****************************************************************************/ |
57 *****************************************************************************/ |
| 58 static void |
58 static void |
| 59 test_purple_authorization_request_new(void) { |
59 test_purple_authorization_request_new(void) { |
| 60 PurpleAccount *account1 = NULL, *account2 = NULL; |
60 PurpleAccount *account = NULL; |
| 61 PurpleAuthorizationRequest *request = NULL; |
61 PurpleAuthorizationRequest *request = NULL; |
| 62 const char *username = NULL; |
62 PurpleContact *contact = NULL; |
| 63 |
63 PurpleContact *contact1 = NULL; |
| 64 account1 = purple_account_new("test", "test"); |
64 |
| 65 |
65 account = purple_account_new("test", "test"); |
| 66 request = purple_authorization_request_new(account1, "remote-username"); |
66 contact = purple_contact_new(account, NULL); |
| |
67 request = purple_authorization_request_new(contact); |
| 67 |
68 |
| 68 /* Make sure we got a valid authorization request. */ |
69 /* Make sure we got a valid authorization request. */ |
| 69 g_assert_true(PURPLE_IS_AUTHORIZATION_REQUEST(request)); |
70 g_assert_true(PURPLE_IS_AUTHORIZATION_REQUEST(request)); |
| 70 |
71 |
| 71 /* Verify the account is set properly. */ |
72 /* Verify the contact is set properly. */ |
| 72 account2 = purple_authorization_request_get_account(request); |
73 contact1 = purple_authorization_request_get_contact(request); |
| 73 g_assert_nonnull(account2); |
74 g_assert_true(contact1 == contact); |
| 74 g_assert_true(account1 == account2); |
75 |
| 75 |
76 g_assert_finalize_object(request); |
| 76 /* Verify the username set properly. */ |
77 g_assert_finalize_object(contact); |
| 77 username = purple_authorization_request_get_username(request); |
78 g_assert_finalize_object(account); |
| 78 g_assert_cmpstr(username, ==, "remote-username"); |
|
| 79 |
|
| 80 /* Unref it to destroy it. */ |
|
| 81 g_clear_object(&request); |
|
| 82 |
|
| 83 /* Clean up the account. */ |
|
| 84 g_clear_object(&account1); |
|
| 85 } |
79 } |
| 86 |
80 |
| 87 static void |
81 static void |
| 88 test_purple_authorization_request_properties(void) { |
82 test_purple_authorization_request_properties(void) { |
| 89 PurpleAccount *account = NULL; |
83 PurpleAccount *account = NULL; |
| 90 PurpleAuthorizationRequest *request = NULL; |
84 PurpleAuthorizationRequest *request = NULL; |
| |
85 PurpleContact *contact = NULL; |
| |
86 PurpleContact *contact1 = NULL; |
| |
87 char *message = NULL; |
| 91 |
88 |
| 92 account = purple_account_new("test", "test"); |
89 account = purple_account_new("test", "test"); |
| 93 request = purple_authorization_request_new(account, "username"); |
90 contact = purple_contact_new(account, NULL); |
| |
91 |
| |
92 request = g_object_new( |
| |
93 PURPLE_TYPE_AUTHORIZATION_REQUEST, |
| |
94 "contact", contact, |
| |
95 "message", "hello friend", |
| |
96 NULL); |
| 94 |
97 |
| 95 g_assert_true(PURPLE_IS_AUTHORIZATION_REQUEST(request)); |
98 g_assert_true(PURPLE_IS_AUTHORIZATION_REQUEST(request)); |
| 96 |
99 |
| 97 /* Verify the alias property works and is nullable. */ |
100 g_object_get( |
| 98 purple_authorization_request_set_alias(request, "alias"); |
101 request, |
| 99 g_assert_cmpstr(purple_authorization_request_get_alias(request), ==, |
102 "contact", &contact1, |
| 100 "alias"); |
103 "message", &message, |
| 101 purple_authorization_request_set_alias(request, NULL); |
104 NULL); |
| 102 g_assert_null(purple_authorization_request_get_alias(request)); |
105 |
| 103 |
106 g_assert_true(contact1 == contact); |
| 104 /* Verify the message property works and is nullable. */ |
107 g_clear_object(&contact1); |
| 105 purple_authorization_request_set_message(request, "message"); |
108 |
| 106 g_assert_cmpstr(purple_authorization_request_get_message(request), ==, |
109 g_assert_cmpstr(message, ==, "hello friend"); |
| 107 "message"); |
110 g_clear_pointer(&message, g_free); |
| 108 purple_authorization_request_set_message(request, NULL); |
111 |
| 109 g_assert_null(purple_authorization_request_get_message(request)); |
112 g_assert_finalize_object(request); |
| 110 |
113 g_assert_finalize_object(contact); |
| 111 /* Cleanup. */ |
114 g_assert_finalize_object(account); |
| 112 g_clear_object(&request); |
|
| 113 g_clear_object(&account); |
|
| 114 } |
115 } |
| 115 |
116 |
| 116 static void |
117 static void |
| 117 test_purple_authorization_request_accept(void) { |
118 test_purple_authorization_request_accept(void) { |
| 118 if(g_test_subprocess()) { |
119 if(g_test_subprocess()) { |
| 119 PurpleAccount *account = NULL; |
120 PurpleAccount *account = NULL; |
| 120 PurpleAuthorizationRequest *request = NULL; |
121 PurpleAuthorizationRequest *request = NULL; |
| |
122 PurpleContact *contact = NULL; |
| 121 guint counter = 0; |
123 guint counter = 0; |
| 122 |
124 |
| 123 account = purple_account_new("test", "test"); |
125 account = purple_account_new("test", "test"); |
| 124 request = purple_authorization_request_new(account, "username"); |
126 contact = purple_contact_new(account, NULL); |
| 125 |
127 request = purple_authorization_request_new(contact); |
| 126 g_assert_true(PURPLE_IS_AUTHORIZATION_REQUEST(request)); |
|
| 127 |
128 |
| 128 g_signal_connect(request, "accepted", |
129 g_signal_connect(request, "accepted", |
| 129 G_CALLBACK(test_purple_authorization_request_accepted_counter_cb), |
130 G_CALLBACK(test_purple_authorization_request_accepted_counter_cb), |
| 130 &counter); |
131 &counter); |
| 131 |
132 |
| 149 static void |
151 static void |
| 150 test_purple_authorization_request_accept_deny(void) { |
152 test_purple_authorization_request_accept_deny(void) { |
| 151 if(g_test_subprocess()) { |
153 if(g_test_subprocess()) { |
| 152 PurpleAccount *account = NULL; |
154 PurpleAccount *account = NULL; |
| 153 PurpleAuthorizationRequest *request = NULL; |
155 PurpleAuthorizationRequest *request = NULL; |
| |
156 PurpleContact *contact = NULL; |
| 154 guint counter = 0; |
157 guint counter = 0; |
| 155 |
158 |
| 156 account = purple_account_new("test", "test"); |
159 account = purple_account_new("test", "test"); |
| 157 request = purple_authorization_request_new(account, "username"); |
160 contact = purple_contact_new(account, NULL); |
| 158 |
161 request = purple_authorization_request_new(contact); |
| 159 g_assert_true(PURPLE_IS_AUTHORIZATION_REQUEST(request)); |
|
| 160 |
162 |
| 161 g_signal_connect(request, "accepted", |
163 g_signal_connect(request, "accepted", |
| 162 G_CALLBACK(test_purple_authorization_request_accepted_counter_cb), |
164 G_CALLBACK(test_purple_authorization_request_accepted_counter_cb), |
| 163 &counter); |
165 &counter); |
| 164 g_signal_connect(request, "denied", |
166 g_signal_connect(request, "denied", |
| 185 static void |
188 static void |
| 186 test_purple_authorization_request_deny(void) { |
189 test_purple_authorization_request_deny(void) { |
| 187 if(g_test_subprocess()) { |
190 if(g_test_subprocess()) { |
| 188 PurpleAccount *account = NULL; |
191 PurpleAccount *account = NULL; |
| 189 PurpleAuthorizationRequest *request = NULL; |
192 PurpleAuthorizationRequest *request = NULL; |
| |
193 PurpleContact *contact = NULL; |
| 190 guint counter = 0; |
194 guint counter = 0; |
| 191 |
195 |
| 192 account = purple_account_new("test", "test"); |
196 account = purple_account_new("test", "test"); |
| 193 request = purple_authorization_request_new(account, "username"); |
197 contact = purple_contact_new(account, NULL); |
| 194 |
198 request = purple_authorization_request_new(contact); |
| 195 g_assert_true(PURPLE_IS_AUTHORIZATION_REQUEST(request)); |
|
| 196 |
199 |
| 197 g_signal_connect(request, "denied", |
200 g_signal_connect(request, "denied", |
| 198 G_CALLBACK(test_purple_authorization_request_denied_counter_cb), |
201 G_CALLBACK(test_purple_authorization_request_denied_counter_cb), |
| 199 &counter); |
202 &counter); |
| 200 |
203 |
| 218 static void |
222 static void |
| 219 test_purple_authorization_request_deny_accept(void) { |
223 test_purple_authorization_request_deny_accept(void) { |
| 220 if(g_test_subprocess()) { |
224 if(g_test_subprocess()) { |
| 221 PurpleAccount *account = NULL; |
225 PurpleAccount *account = NULL; |
| 222 PurpleAuthorizationRequest *request = NULL; |
226 PurpleAuthorizationRequest *request = NULL; |
| |
227 PurpleContact *contact = NULL; |
| 223 guint counter = 0; |
228 guint counter = 0; |
| 224 |
229 |
| 225 account = purple_account_new("test", "test"); |
230 account = purple_account_new("test", "test"); |
| 226 request = purple_authorization_request_new(account, "username"); |
231 contact = purple_contact_new(account, NULL); |
| 227 |
232 request = purple_authorization_request_new(contact); |
| 228 g_assert_true(PURPLE_IS_AUTHORIZATION_REQUEST(request)); |
|
| 229 |
233 |
| 230 g_signal_connect(request, "denied", |
234 g_signal_connect(request, "denied", |
| 231 G_CALLBACK(test_purple_authorization_request_denied_counter_cb), |
235 G_CALLBACK(test_purple_authorization_request_denied_counter_cb), |
| 232 &counter); |
236 &counter); |
| 233 g_signal_connect(request, "accepted", |
237 g_signal_connect(request, "accepted", |
| 241 /* Deny the request again to trigger the critical. */ |
245 /* Deny the request again to trigger the critical. */ |
| 242 purple_authorization_request_accept(request); |
246 purple_authorization_request_accept(request); |
| 243 g_assert_cmpuint(counter, ==, 1); |
247 g_assert_cmpuint(counter, ==, 1); |
| 244 |
248 |
| 245 /* Cleanup. */ |
249 /* Cleanup. */ |
| 246 g_clear_object(&account); |
250 g_assert_finalize_object(request); |
| 247 g_clear_object(&request); |
251 g_assert_finalize_object(contact); |
| |
252 g_assert_finalize_object(account); |
| 248 } |
253 } |
| 249 |
254 |
| 250 g_test_trap_subprocess(NULL, 0, 0); |
255 g_test_trap_subprocess(NULL, 0, 0); |
| 251 g_test_trap_assert_stderr("*Purple-CRITICAL*request->handled*failed*"); |
256 g_test_trap_assert_stderr("*Purple-CRITICAL*request->handled*failed*"); |
| 252 } |
257 } |
| 253 |
258 |
| 254 static void |
259 static void |
| 255 test_purple_authorization_request_deny_message_null(void) { |
260 test_purple_authorization_request_deny_message_null(void) { |
| 256 PurpleAccount *account = NULL; |
261 PurpleAccount *account = NULL; |
| 257 PurpleAuthorizationRequest *request = NULL; |
262 PurpleAuthorizationRequest *request = NULL; |
| |
263 PurpleContact *contact = NULL; |
| 258 |
264 |
| 259 account = purple_account_new("test", "test"); |
265 account = purple_account_new("test", "test"); |
| 260 request = purple_authorization_request_new(account, "username"); |
266 contact = purple_contact_new(account, NULL); |
| 261 |
267 request = purple_authorization_request_new(contact); |
| 262 g_assert_true(PURPLE_IS_AUTHORIZATION_REQUEST(request)); |
|
| 263 |
268 |
| 264 g_signal_connect(request, "denied", |
269 g_signal_connect(request, "denied", |
| 265 G_CALLBACK(test_purple_authorization_request_denied_message_cb), |
270 G_CALLBACK(test_purple_authorization_request_denied_message_cb), |
| 266 NULL); |
271 NULL); |
| 267 |
272 |
| 268 /* Deny the request the signal handler is expecting a message of NULL. */ |
273 /* Deny the request the signal handler is expecting a message of NULL. */ |
| 269 purple_authorization_request_deny(request, NULL); |
274 purple_authorization_request_deny(request, NULL); |
| 270 |
275 |
| 271 /* Cleanup. */ |
276 /* Cleanup. */ |
| 272 g_clear_object(&account); |
277 g_assert_finalize_object(request); |
| 273 g_clear_object(&request); |
278 g_assert_finalize_object(contact); |
| |
279 g_assert_finalize_object(account); |
| 274 } |
280 } |
| 275 |
281 |
| 276 static void |
282 static void |
| 277 test_purple_authorization_request_deny_message_non_null(void) { |
283 test_purple_authorization_request_deny_message_non_null(void) { |
| 278 PurpleAccount *account = NULL; |
284 PurpleAccount *account = NULL; |
| 279 PurpleAuthorizationRequest *request = NULL; |
285 PurpleAuthorizationRequest *request = NULL; |
| |
286 PurpleContact *contact = NULL; |
| 280 |
287 |
| 281 account = purple_account_new("test", "test"); |
288 account = purple_account_new("test", "test"); |
| 282 request = purple_authorization_request_new(account, "username"); |
289 contact = purple_contact_new(account, NULL); |
| 283 |
290 request = purple_authorization_request_new(contact); |
| 284 g_assert_true(PURPLE_IS_AUTHORIZATION_REQUEST(request)); |
|
| 285 |
291 |
| 286 g_signal_connect(request, "denied", |
292 g_signal_connect(request, "denied", |
| 287 G_CALLBACK(test_purple_authorization_request_denied_message_cb), |
293 G_CALLBACK(test_purple_authorization_request_denied_message_cb), |
| 288 "this is a message"); |
294 "this is a message"); |
| 289 |
295 |
| 290 /* Deny the request the signal handler is expecting the above message. */ |
296 /* Deny the request the signal handler is expecting the above message. */ |
| 291 purple_authorization_request_deny(request, "this is a message"); |
297 purple_authorization_request_deny(request, "this is a message"); |
| 292 |
298 |
| 293 /* Cleanup. */ |
299 /* Cleanup. */ |
| 294 g_clear_object(&account); |
300 g_assert_finalize_object(request); |
| 295 g_clear_object(&request); |
301 g_assert_finalize_object(contact); |
| |
302 g_assert_finalize_object(account); |
| 296 } |
303 } |
| 297 |
304 |
| 298 /****************************************************************************** |
305 /****************************************************************************** |
| 299 * Main |
306 * Main |
| 300 *****************************************************************************/ |
307 *****************************************************************************/ |