libpurple/tests/test_keyvaluepair.c

Mon, 22 Aug 2022 22:05:55 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Mon, 22 Aug 2022 22:05:55 -0500
changeset 41514
a96768bacb59
parent 40351
79cbdc5c5989
child 42866
4b201e18638f
permissions
-rw-r--r--

Create PurpleAuthorizationRequest and use it for notifications.

This replaces the old internal representation of authorization requests as well
as the UI's implementation of their own objects. Everything is now controlled
via PurpleAuthorizationRequest and the UI's display the notification for
interaction.

Testing Done:
Verified the notification and actions work in both finch and pidgin.

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

40351
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1 /*
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
2 * purple
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
3 *
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
4 * Purple is the legal property of its developers, whose names are too numerous
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
5 * to list here. Please refer to the COPYRIGHT file distributed with this
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
6 * source distribution.
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
7 *
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
8 * This program is free software; you can redistribute it and/or modify
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
9 * it under the terms of the GNU General Public License as published by
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
10 * the Free Software Foundation; either version 2 of the License, or
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
11 * (at your option) any later version.
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
12 *
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
13 * This program is distributed in the hope that it will be useful,
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
16 * GNU General Public License for more details.
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
17 *
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
18 * You should have received a copy of the GNU General Public License
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
19 * along with this program. If not, see <http://www.gnu.org/licenses/>.
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
20 */
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
21
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
22 #include <glib.h>
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
23
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
24 #include <purple.h>
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
25
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
26 /******************************************************************************
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
27 * Tests
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
28 *****************************************************************************/
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
29 static void
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
30 test_key_value_pair_new(void) {
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
31 PurpleKeyValuePair *kvp = NULL;
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
32
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
33 kvp = purple_key_value_pair_new("abc", "123");
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
34 g_assert_nonnull(kvp);
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
35
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
36 g_assert_cmpstr(kvp->key, ==, "abc");
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
37 g_assert_cmpstr(kvp->value, ==, "123");
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
38 g_assert_null(kvp->value_destroy_func);
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
39
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
40 purple_key_value_pair_free(kvp);
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
41 }
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
42
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
43 static void
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
44 test_key_value_pair_new_full(void) {
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
45 PurpleKeyValuePair *kvp = NULL;
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
46
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
47 kvp = purple_key_value_pair_new_full("abc", g_strdup("123"), g_free);
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
48 g_assert_nonnull(kvp);
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
49
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
50 g_assert_cmpstr(kvp->key, ==, "abc");
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
51 g_assert_cmpstr(kvp->value, ==, "123");
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
52 g_assert_true(kvp->value_destroy_func == g_free);
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
53
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
54 purple_key_value_pair_free(kvp);
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
55 }
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
56
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
57 static void
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
58 test_key_value_pair_copy(void) {
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
59 PurpleKeyValuePair *kvp1 = NULL, *kvp2 = NULL;
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
60
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
61 kvp1 = purple_key_value_pair_new("abc", "123");
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
62 g_assert_nonnull(kvp1);
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
63
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
64 kvp2 = purple_key_value_pair_copy(kvp1);
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
65 g_assert_nonnull(kvp2);
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
66
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
67 g_assert_cmpstr(kvp1->key, ==, kvp2->key);
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
68 g_assert_cmpstr(kvp1->value, ==, kvp2->value);;
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
69 g_assert_true(kvp1->value_destroy_func == kvp2->value_destroy_func);
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
70
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
71 purple_key_value_pair_free(kvp1);
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
72 purple_key_value_pair_free(kvp2);
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
73 }
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
74
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
75 static void
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
76 test_key_value_pair_copy_allocated_subprocess(void) {
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
77 PurpleKeyValuePair *kvp1 = NULL, *kvp2 = NULL;
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
78
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
79 kvp1 = purple_key_value_pair_new_full("abc", g_strdup("123"), g_free);
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
80 g_assert_nonnull(kvp1);
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
81
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
82 kvp2 = purple_key_value_pair_copy(kvp1);
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
83 g_assert_null(kvp2);
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
84
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
85 purple_key_value_pair_free(kvp1);
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
86 }
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
87
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
88 static void
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
89 test_key_value_pair_copy_allocated(void) {
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
90 g_test_trap_subprocess("/key-value-pair/copy-allocated/subprocess", 0, 0);
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
91
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
92 g_test_trap_assert_failed();
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
93 }
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
94
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
95 /******************************************************************************
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
96 * Main
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
97 *****************************************************************************/
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
98 gint
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
99 main(gint argc, gchar **argv) {
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
100 g_test_init(&argc, &argv, NULL);
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
101
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
102 g_test_set_nonfatal_assertions();
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
103
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
104 g_test_add_func("/key-value-pair/new",
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
105 test_key_value_pair_new);
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
106 g_test_add_func("/key-value-pair/new-full",
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
107 test_key_value_pair_new_full);
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
108 g_test_add_func("/key-value-pair/copy",
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
109 test_key_value_pair_copy);
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
110 g_test_add_func("/key-value-pair/copy-allocated",
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
111 test_key_value_pair_copy_allocated);
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
112 g_test_add_func("/key-value-pair/copy-allocated/subprocess",
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
113 test_key_value_pair_copy_allocated_subprocess);
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
114
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
115 return g_test_run();
79cbdc5c5989 Add some unit tests for key value pairs
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
116 }

mercurial