libpurple/tests/test_request_group.c

Tue, 05 Sep 2023 00:05:12 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Tue, 05 Sep 2023 00:05:12 -0500
changeset 42312
7d6f0b8b6e77
parent 42152
2bcdf415a79d
child 42866
4b201e18638f
permissions
-rw-r--r--

Use PurpleAvatar for PurplePerson and PurpleContactInfo

I'm not sure why we didn't do this earlier, but it's done now.

Testing Done:
Connected a demo account and verified all of its icons showed up in the contact list.

Reviewed at https://reviews.imfreedom.org/r/2605/

42152
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
1 /*
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
2 * Purple - Internet Messaging Library
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
3 * Copyright (C) Pidgin Developers <devel@pidgin.im>
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
4 *
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
5 * This library is free software; you can redistribute it and/or
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
6 * modify it under the terms of the GNU Lesser General Public
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
7 * License as published by the Free Software Foundation; either
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
8 * version 2 of the License, or (at your option) any later version.
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
9 *
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
10 * This library is distributed in the hope that it will be useful,
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
13 * Lesser General Public License for more details.
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
14 *
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
15 * You should have received a copy of the GNU Lesser General Public
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
16 * License along with this library; if not, see <https://www.gnu.org/licenses/>.
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
17 */
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
18
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
19 #include <glib.h>
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
20
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
21 #include <purple.h>
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
22
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
23 /******************************************************************************
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
24 * Tests
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
25 *****************************************************************************/
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
26 static void
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
27 test_request_group_valid_changed_cb(G_GNUC_UNUSED GObject *obj,
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
28 G_GNUC_UNUSED GParamSpec *pspec,
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
29 gpointer data)
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
30 {
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
31 gint *called = data;
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
32
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
33 *called += 1;
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
34 }
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
35
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
36 static void
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
37 test_request_group_valid(void) {
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
38 PurpleRequestGroup *group = NULL;
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
39 PurpleRequestField *field1 = NULL, *field2 = NULL, *field3 = NULL;
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
40 gint called = 0;
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
41
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
42 group = purple_request_group_new("test-group");
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
43 g_signal_connect(group, "notify::valid",
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
44 G_CALLBACK(test_request_group_valid_changed_cb), &called);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
45
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
46 /* Empty groups are always valid. */
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
47 g_assert_true(purple_request_group_is_valid(group));
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
48
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
49 /* An added valid field keeps the group valid. */
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
50 called = 0;
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
51 field1 = purple_request_field_int_new("test-int", "Test int", 50, 0, 100);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
52 purple_request_group_add_field(group, field1);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
53 g_assert_true(purple_request_group_is_valid(group));
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
54 g_assert_cmpint(called, ==, 0);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
55
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
56 /* Making the field invalid makes the group invalid. */
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
57 called = 0;
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
58 purple_request_field_int_set_value(PURPLE_REQUEST_FIELD_INT(field1), -42);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
59 g_assert_false(purple_request_group_is_valid(group));
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
60 g_assert_cmpint(called, ==, 1);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
61
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
62 /* Adding an invalid field keeps the group invalid. */
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
63 called = 0;
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
64 field2 = purple_request_field_int_new("invalid", "Invalid", -42, 0, 100);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
65 purple_request_group_add_field(group, field2);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
66 g_assert_false(purple_request_group_is_valid(group));
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
67 g_assert_cmpint(called, ==, 0);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
68
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
69 /* Adding a valid field to an already invalid group does not change it to
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
70 * valid accidentally. */
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
71 called = 0;
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
72 field3 = purple_request_field_int_new("valid", "Valid", 42, 0, 100);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
73 purple_request_group_add_field(group, field3);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
74 g_assert_false(purple_request_group_is_valid(group));
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
75 g_assert_cmpint(called, ==, 0);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
76
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
77 /* Making one field valid while others are still invalid keeps the group
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
78 * invalid. */
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
79 called = 0;
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
80 purple_request_field_int_set_value(PURPLE_REQUEST_FIELD_INT(field1), 42);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
81 g_assert_false(purple_request_group_is_valid(group));
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
82 g_assert_cmpint(called, ==, 0);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
83
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
84 /* Making last invalid field valid makes the group valid again. */
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
85 called = 0;
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
86 purple_request_field_int_set_value(PURPLE_REQUEST_FIELD_INT(field2), 42);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
87 g_assert_true(purple_request_group_is_valid(group));
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
88 g_assert_cmpint(called, ==, 1);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
89
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
90 g_object_unref(group);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
91 }
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
92
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
93 /******************************************************************************
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
94 * Main
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
95 *****************************************************************************/
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
96 gint
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
97 main(gint argc, gchar *argv[]) {
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
98 g_test_init(&argc, &argv, NULL);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
99
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
100 g_test_add_func("/request-group/valid", test_request_group_valid);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
101
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
102 return g_test_run();
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
103 }

mercurial