libpurple/tests/test_attachments.c

Thu, 16 Jan 2025 21:25:32 -0600

author
Gary Kramlich <grim@reaperworld.com>
date
Thu, 16 Jan 2025 21:25:32 -0600
changeset 43147
835d74e5d22d
parent 43145
dff7cdade009
child 43265
7960b5f85729
permissions
-rw-r--r--

Make Purple.Attachment:id a string

Previously we thought we'd use 64bit integers for ids everywhere, but a string
makes everything much more flexible.

Testing Done:
Called in the turtles.

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

43145
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1 /*
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
2 * Purple - Internet Messaging Library
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
3 * Copyright (C) Pidgin Developers <devel@pidgin.im>
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
4 *
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
5 * This library is free software; you can redistribute it and/or
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
6 * modify it under the terms of the GNU Lesser General Public
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
7 * License as published by the Free Software Foundation; either
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
8 * version 2 of the License, or (at your option) any later version.
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
9 *
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
10 * This library is distributed in the hope that it will be useful,
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
13 * Lesser General Public License for more details.
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
14 *
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
15 * You should have received a copy of the GNU Lesser General Public
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
16 * License along with this library; if not, see <https://www.gnu.org/licenses/>.
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
17 */
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
18
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
19 #include <glib.h>
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
20
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
21 #include <purple.h>
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
22
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
23 /******************************************************************************
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
24 * Callbacks
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
25 *****************************************************************************/
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
26 static void
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
27 test_purple_attachments_items_changed(GListModel *model,
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
28 G_GNUC_UNUSED guint position,
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
29 G_GNUC_UNUSED guint removed,
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
30 G_GNUC_UNUSED guint added,
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
31 gpointer data)
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
32 {
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
33 guint *counter = data;
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
34
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
35 g_assert_true(PURPLE_IS_ATTACHMENTS(model));
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
36
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
37 *counter = *counter + 1;
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
38 }
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
39
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
40 static void
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
41 test_purple_attachments_notify(GObject *self,
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
42 G_GNUC_UNUSED GParamSpec *pspec,
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
43 gpointer data)
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
44 {
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
45 guint *counter = data;
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
46
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
47 g_assert_true(PURPLE_IS_ATTACHMENTS(self));
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
48
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
49 *counter = *counter + 1;
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
50 }
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
51
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
52 /******************************************************************************
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
53 * Tests
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
54 *****************************************************************************/
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
55 static void
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
56 test_purple_attachments_properties(void) {
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
57 PurpleAttachments *attachments = NULL;
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
58 GType item_type = G_TYPE_INVALID;
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
59 guint n_items = 0;
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
60
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
61 attachments = g_object_new(
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
62 PURPLE_TYPE_ATTACHMENTS,
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
63 NULL);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
64
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
65 g_object_get(
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
66 attachments,
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
67 "item-type", &item_type,
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
68 "n-items", &n_items,
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
69 NULL);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
70
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
71 g_assert_cmpuint(item_type, ==, PURPLE_TYPE_ATTACHMENT);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
72 g_assert_cmpuint(n_items, ==, 0);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
73
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
74 g_assert_finalize_object(attachments);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
75 }
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
76
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
77 static void
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
78 test_purple_attachments_double_add(void) {
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
79 PurpleAttachment *attachment = NULL;
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
80 PurpleAttachments *attachments = NULL;
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
81 gboolean success = FALSE;
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
82 guint items_changed_counter = 0;
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
83 guint n_items_counter = 0;
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
84
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
85 attachments = purple_attachments_new();
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
86 g_signal_connect(attachments, "items-changed",
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
87 G_CALLBACK(test_purple_attachments_items_changed),
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
88 &items_changed_counter);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
89 g_signal_connect(attachments, "notify::n-items",
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
90 G_CALLBACK(test_purple_attachments_notify),
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
91 &n_items_counter);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
92
43147
835d74e5d22d Make Purple.Attachment:id a string
Gary Kramlich <grim@reaperworld.com>
parents: 43145
diff changeset
93 attachment = purple_attachment_new("1337", "text/plain");
43145
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
94
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
95 /* The first add. */
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
96 items_changed_counter = 0;
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
97 n_items_counter = 0;
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
98 success = purple_attachments_add_attachment(attachments, attachment);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
99 g_assert_true(success);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
100 g_assert_cmpuint(items_changed_counter, ==, 1);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
101 g_assert_cmpuint(n_items_counter, ==, 1);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
102
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
103 /* The double add. */
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
104 items_changed_counter = 0;
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
105 n_items_counter = 0;
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
106 success = purple_attachments_add_attachment(attachments, attachment);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
107 g_assert_false(success);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
108 g_assert_cmpuint(items_changed_counter, ==, 0);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
109 g_assert_cmpuint(n_items_counter, ==, 0);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
110
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
111 g_assert_finalize_object(attachments);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
112 g_assert_finalize_object(attachment);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
113 }
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
114
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
115 static void
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
116 test_purple_attachments_double_remove(void) {
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
117 PurpleAttachment *attachment = NULL;
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
118 PurpleAttachments *attachments = NULL;
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
119 gboolean success = FALSE;
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
120 guint items_changed_counter = 0;
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
121 guint n_items_counter = 0;
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
122
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
123 attachments = purple_attachments_new();
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
124 g_signal_connect(attachments, "items-changed",
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
125 G_CALLBACK(test_purple_attachments_items_changed),
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
126 &items_changed_counter);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
127 g_signal_connect(attachments, "notify::n-items",
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
128 G_CALLBACK(test_purple_attachments_notify),
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
129 &n_items_counter);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
130
43147
835d74e5d22d Make Purple.Attachment:id a string
Gary Kramlich <grim@reaperworld.com>
parents: 43145
diff changeset
131 attachment = purple_attachment_new("1337", "text/plain");
43145
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
132
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
133 /* The first add. */
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
134 items_changed_counter = 0;
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
135 n_items_counter = 0;
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
136 success = purple_attachments_add_attachment(attachments, attachment);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
137 g_assert_true(success);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
138 g_assert_cmpuint(items_changed_counter, ==, 1);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
139 g_assert_cmpuint(n_items_counter, ==, 1);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
140
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
141 /* The first remove. */
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
142 items_changed_counter = 0;
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
143 n_items_counter = 0;
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
144 success = purple_attachments_remove_attachment(attachments, attachment);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
145 g_assert_true(success);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
146 g_assert_cmpuint(items_changed_counter, ==, 1);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
147 g_assert_cmpuint(n_items_counter, ==, 1);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
148
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
149 /* The second remove. */
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
150 items_changed_counter = 0;
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
151 n_items_counter = 0;
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
152 success = purple_attachments_remove_attachment(attachments, attachment);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
153 g_assert_false(success);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
154 g_assert_cmpuint(items_changed_counter, ==, 0);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
155 g_assert_cmpuint(n_items_counter, ==, 0);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
156
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
157 g_assert_finalize_object(attachments);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
158 g_assert_finalize_object(attachment);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
159 }
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
160
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
161 static void
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
162 test_purple_attachments_find_with_id(void) {
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
163 PurpleAttachment *attachment = NULL;
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
164 PurpleAttachment *found = NULL;
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
165 PurpleAttachments *attachments = NULL;
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
166
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
167 attachments = purple_attachments_new();
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
168
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
169 /* Search on the empty collection. */
43147
835d74e5d22d Make Purple.Attachment:id a string
Gary Kramlich <grim@reaperworld.com>
parents: 43145
diff changeset
170 found = purple_attachments_find_with_id(attachments, "1337");
43145
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
171 g_assert_null(found);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
172
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
173 /* Create an attachment and add it. */
43147
835d74e5d22d Make Purple.Attachment:id a string
Gary Kramlich <grim@reaperworld.com>
parents: 43145
diff changeset
174 attachment = purple_attachment_new("1337", "text/plain");
43145
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
175 purple_attachments_add_attachment(attachments, attachment);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
176
43147
835d74e5d22d Make Purple.Attachment:id a string
Gary Kramlich <grim@reaperworld.com>
parents: 43145
diff changeset
177 found = purple_attachments_find_with_id(attachments, "1337");
43145
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
178 g_assert_true(PURPLE_IS_ATTACHMENT(found));
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
179 g_assert_true(found == attachment);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
180
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
181 /* Search for an attachment that doesn't exist. */
43147
835d74e5d22d Make Purple.Attachment:id a string
Gary Kramlich <grim@reaperworld.com>
parents: 43145
diff changeset
182 found = purple_attachments_find_with_id(attachments, "42");
43145
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
183 g_assert_null(found);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
184
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
185 g_assert_finalize_object(attachments);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
186 g_assert_finalize_object(attachment);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
187 }
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
188
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
189 /******************************************************************************
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
190 * Main
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
191 *****************************************************************************/
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
192 int
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
193 main(int argc, char *argv[]) {
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
194 g_test_init(&argc, &argv, NULL);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
195 g_test_set_nonfatal_assertions();
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
196
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
197 g_test_add_func("/attachments/properties",
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
198 test_purple_attachments_properties);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
199 g_test_add_func("/attachments/double-add",
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
200 test_purple_attachments_double_add);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
201 g_test_add_func("/attachments/double-remove",
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
202 test_purple_attachments_double_remove);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
203 g_test_add_func("/attachments/find-with-id",
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
204 test_purple_attachments_find_with_id);
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
205
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
206 return g_test_run();
dff7cdade009 Implement Purple.Attachments
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
207 }

mercurial