Tue, 19 Mar 2024 00:38:22 -0500
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 | } |