libpurple/tests/test_create_conversation_details.c

Mon, 12 May 2025 20:25:16 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Mon, 12 May 2025 20:25:16 -0500
changeset 43246
0e9bbe9b4da8
parent 43164
7709065d96eb
permissions
-rw-r--r--

Handle formatting in server messages

Testing Done:
Used the default motd on my local ergo server to verify that formatting was working.

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

42645
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1 /*
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
2 * Purple - Internet Messaging Library
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
3 * Copyright (C) Pidgin Developers <devel@pidgin.im>
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
4 *
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
5 * Purple is the legal property of its developers, whose names are too numerous
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
6 * to list here. Please refer to the COPYRIGHT file distributed with this
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
7 * source distribution.
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
8 *
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
9 * This library is free software; you can redistribute it and/or modify it
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
10 * under the terms of the GNU General Public License as published by the Free
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
11 * Software Foundation; either version 2 of the License, or (at your option)
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
12 * any later version.
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
13 *
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
14 * This library is distributed in the hope that it will be useful, but WITHOUT
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
15 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
16 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
17 * more details.
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
18 *
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
19 * You should have received a copy of the GNU General Public License along with
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
20 * this library; if not, see <https://www.gnu.org/licenses/>.
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
21 */
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
22
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
23 #include <glib.h>
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
24
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
25 #include <purple.h>
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
26
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
27 /******************************************************************************
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
28 * Tests
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
29 *****************************************************************************/
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
30 static void
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
31 test_purple_create_conversation_details_new(void) {
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
32 PurpleCreateConversationDetails *details = NULL;
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
33
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
34 details = purple_create_conversation_details_new(9);
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
35 g_assert_true(PURPLE_IS_CREATE_CONVERSATION_DETAILS(details));
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
36
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
37 g_assert_finalize_object(details);
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
38 }
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
39
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
40 static void
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
41 test_purple_create_conversation_details_properties(void) {
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
42 PurpleCreateConversationDetails *details = NULL;
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
43 GListStore *store = NULL;
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
44 GListModel *model = NULL;
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
45 guint max_participants = 0;
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
46
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
47 store = g_list_store_new(PURPLE_TYPE_CONTACT);
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
48
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
49 details = g_object_new(
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
50 PURPLE_TYPE_CREATE_CONVERSATION_DETAILS,
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
51 "max-participants", 9,
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
52 "participants", store,
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
53 NULL);
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
54
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
55 g_assert_true(PURPLE_IS_CREATE_CONVERSATION_DETAILS(details));
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
56
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
57 g_object_get(
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
58 G_OBJECT(details),
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
59 "max-participants", &max_participants,
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
60 "participants", &model,
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
61 NULL);
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
62
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
63 g_assert_cmpuint(max_participants, ==, 9);
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
64
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
65 g_assert_true(G_IS_LIST_MODEL(model));
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
66 g_assert_true(model == G_LIST_MODEL(store));
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
67 g_clear_object(&model);
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
68
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
69 g_assert_finalize_object(details);
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
70 g_assert_finalize_object(store);
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
71 }
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
72
43164
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
73 static void
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
74 test_purple_create_conversation_details_is_valid_null(void) {
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
75 PurpleCreateConversationDetails *details = NULL;
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
76 GError *error = NULL;
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
77 gboolean is_valid = FALSE;
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
78
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
79 details = purple_create_conversation_details_new(1);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
80
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
81 is_valid = purple_create_conversation_details_is_valid(details, &error);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
82 g_assert_error(error, PURPLE_CREATE_CONVERSATION_DETAILS_ERROR,
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
83 PURPLE_CREATE_CONVERSATION_DETAILS_ERROR_NO_PARTICIPANTS);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
84 g_clear_error(&error);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
85 g_assert_false(is_valid);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
86
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
87 g_assert_finalize_object(details);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
88 }
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
89
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
90 static void
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
91 test_purple_create_conversation_details_is_valid_empty(void) {
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
92 PurpleCreateConversationDetails *details = NULL;
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
93 GListStore *participants = NULL;
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
94 GError *error = NULL;
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
95 gboolean is_valid = FALSE;
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
96
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
97 details = purple_create_conversation_details_new(1);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
98 participants = g_list_store_new(PURPLE_TYPE_CONTACT);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
99 purple_create_conversation_details_set_participants(details,
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
100 G_LIST_MODEL(participants));
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
101 g_clear_object(&participants);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
102
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
103 is_valid = purple_create_conversation_details_is_valid(details, &error);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
104 g_assert_error(error, PURPLE_CREATE_CONVERSATION_DETAILS_ERROR,
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
105 PURPLE_CREATE_CONVERSATION_DETAILS_ERROR_NO_PARTICIPANTS);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
106 g_clear_error(&error);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
107 g_assert_false(is_valid);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
108
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
109 g_assert_finalize_object(details);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
110 }
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
111
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
112
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
113 static void
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
114 test_purple_create_conversation_details_is_valid_too_many(void) {
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
115 PurpleAccount *account = NULL;
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
116 PurpleContact *contact = NULL;
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
117 PurpleCreateConversationDetails *details = NULL;
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
118 GListStore *participants = NULL;
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
119 GError *error = NULL;
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
120 gboolean is_valid = FALSE;
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
121
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
122 account = purple_account_new("test", "test");
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
123
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
124 details = purple_create_conversation_details_new(1);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
125 participants = g_list_store_new(PURPLE_TYPE_CONTACT);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
126
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
127 /* We need to add 2 contacts to exceed the max-participants. */
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
128 contact = purple_contact_new(account, NULL);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
129 g_list_store_append(participants, contact);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
130 g_clear_object(&contact);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
131
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
132 contact = purple_contact_new(account, NULL);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
133 g_list_store_append(participants, contact);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
134 g_clear_object(&contact);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
135
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
136 /* Set the participants on the details. */
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
137 purple_create_conversation_details_set_participants(details,
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
138 G_LIST_MODEL(participants));
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
139 g_clear_object(&participants);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
140
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
141 /* Check validation. */
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
142 is_valid = purple_create_conversation_details_is_valid(details, &error);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
143 g_assert_error(error, PURPLE_CREATE_CONVERSATION_DETAILS_ERROR,
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
144 PURPLE_CREATE_CONVERSATION_DETAILS_ERROR_TOO_MANY_PARTICIPANTS);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
145 g_clear_error(&error);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
146 g_assert_false(is_valid);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
147
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
148 g_assert_finalize_object(details);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
149 g_assert_finalize_object(account);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
150 }
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
151
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
152 static void
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
153 test_purple_create_conversation_details_is_valid_limited(void) {
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
154 PurpleAccount *account = NULL;
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
155 PurpleContact *contact = NULL;
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
156 PurpleCreateConversationDetails *details = NULL;
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
157 GListStore *participants = NULL;
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
158 GError *error = NULL;
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
159 gboolean is_valid = FALSE;
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
160
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
161 account = purple_account_new("test", "test");
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
162
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
163 details = purple_create_conversation_details_new(1);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
164 participants = g_list_store_new(PURPLE_TYPE_CONTACT);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
165
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
166 contact = purple_contact_new(account, NULL);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
167 g_list_store_append(participants, contact);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
168 g_clear_object(&contact);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
169
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
170 /* Set the participants on the details. */
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
171 purple_create_conversation_details_set_participants(details,
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
172 G_LIST_MODEL(participants));
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
173 g_clear_object(&participants);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
174
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
175 /* Check validation. */
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
176 is_valid = purple_create_conversation_details_is_valid(details, &error);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
177 g_assert_no_error(error);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
178 g_assert_true(is_valid);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
179
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
180 g_assert_finalize_object(details);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
181 g_assert_finalize_object(account);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
182 }
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
183
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
184 static void
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
185 test_purple_create_conversation_details_is_valid_unlimited(void) {
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
186 PurpleAccount *account = NULL;
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
187 PurpleContact *contact = NULL;
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
188 PurpleCreateConversationDetails *details = NULL;
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
189 GListStore *participants = NULL;
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
190 GError *error = NULL;
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
191 gboolean is_valid = FALSE;
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
192
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
193 account = purple_account_new("test", "test");
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
194
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
195 details = purple_create_conversation_details_new(0);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
196 participants = g_list_store_new(PURPLE_TYPE_CONTACT);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
197
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
198 /* Add 3 additional contacts to spice things up! */
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
199 contact = purple_contact_new(account, NULL);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
200 g_list_store_append(participants, contact);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
201 g_clear_object(&contact);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
202
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
203 contact = purple_contact_new(account, NULL);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
204 g_list_store_append(participants, contact);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
205 g_clear_object(&contact);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
206
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
207 contact = purple_contact_new(account, NULL);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
208 g_list_store_append(participants, contact);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
209 g_clear_object(&contact);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
210
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
211 /* Set the participants on the details. */
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
212 purple_create_conversation_details_set_participants(details,
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
213 G_LIST_MODEL(participants));
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
214 g_clear_object(&participants);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
215
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
216 /* Check validation. */
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
217 is_valid = purple_create_conversation_details_is_valid(details, &error);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
218 g_assert_no_error(error);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
219 g_assert_true(is_valid);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
220
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
221 g_assert_finalize_object(details);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
222 g_assert_finalize_object(account);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
223 }
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
224
42645
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
225 /******************************************************************************
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
226 * Main
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
227 *****************************************************************************/
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
228 int
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
229 main(int argc, char *argv[]) {
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
230 g_test_init(&argc, &argv, NULL);
42866
4b201e18638f Modernize most of the unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 42645
diff changeset
231 g_test_set_nonfatal_assertions();
42645
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
232
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
233 g_test_add_func("/create-conversation-details/new",
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
234 test_purple_create_conversation_details_new);
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
235 g_test_add_func("/create-conversation-details/properties",
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
236 test_purple_create_conversation_details_properties);
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
237
43164
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
238 g_test_add_func("/create-conversation-details/is-valid/null",
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
239 test_purple_create_conversation_details_is_valid_null);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
240 g_test_add_func("/create-conversation-details/is-valid/empty",
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
241 test_purple_create_conversation_details_is_valid_empty);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
242 g_test_add_func("/create-conversation-details/is-valid/too-many",
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
243 test_purple_create_conversation_details_is_valid_too_many);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
244 g_test_add_func("/create-conversation-details/is-valid/limited",
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
245 test_purple_create_conversation_details_is_valid_limited);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
246 g_test_add_func("/create-conversation-details/is-valid/unlimited",
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
247 test_purple_create_conversation_details_is_valid_unlimited);
7709065d96eb Add Purple.CreateConversationDetails.is_valid
Gary Kramlich <grim@reaperworld.com>
parents: 42866
diff changeset
248
42645
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
249 return g_test_run();
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
250 }

mercurial