libpurple/tests/test_create_conversation_details.c

Tue, 19 Mar 2024 00:38:22 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Tue, 19 Mar 2024 00:38:22 -0500
changeset 42645
3844b333df53
child 42866
4b201e18638f
permissions
-rw-r--r--

Create PurpleCreateConversationDetails

This is the first step of letting protocols create the conversations for us.

Testing Done:
Ran the unit tests and the turtles.

Bugs closed: PIDGIN-17855

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

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
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
73 /******************************************************************************
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
74 * Main
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
75 *****************************************************************************/
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
76 int
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
77 main(int argc, char *argv[]) {
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
78 g_test_init(&argc, &argv, NULL);
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
79
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
80 g_test_add_func("/create-conversation-details/new",
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
81 test_purple_create_conversation_details_new);
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
82 g_test_add_func("/create-conversation-details/properties",
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
83 test_purple_create_conversation_details_properties);
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
84
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
85 return g_test_run();
3844b333df53 Create PurpleCreateConversationDetails
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
86 }

mercurial