libpurple/tests/test_history_adapter.c

Tue, 23 Jan 2024 00:04:57 -0600

author
Gary Kramlich <grim@reaperworld.com>
date
Tue, 23 Jan 2024 00:04:57 -0600
changeset 42571
722be3b1a8aa
parent 42184
4e1bf25f5575
child 42576
ab1ca778ddb2
permissions
-rw-r--r--

Redesign the presence manager a bit

The presence manager now stores everything in a directory rather than a single
ini file. This avoids relocating schemas which seems to have a number of
issues.

Also bind the "active" setting to the "active-presence" property so that you
can change the active presence via the `manager.ini` gsettings keyfile.

So other various tweaks as well.

Testing Done:
Opened `manager.ini` and toggled the active status between a few I created.

Consulted with the turtles and ran the `presence_manager` and `saved_presence` unit tests under valgrind.

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

41090
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
1 /*
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
2 * Purple - Internet Messaging Library
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
3 * Copyright (C) Pidgin Developers <devel@pidgin.im>
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
4 *
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
5 * This library is free software; you can redistribute it and/or
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
6 * modify it under the terms of the GNU Lesser General Public
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
7 * License as published by the Free Software Foundation; either
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
8 * version 2 of the License, or (at your option) any later version.
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
9 *
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
10 * This library is distributed in the hope that it will be useful,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
13 * Lesser General Public License for more details.
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
14 *
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
15 * You should have received a copy of the GNU Lesser General Public
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
16 * License along with this library; if not, see <https://www.gnu.org/licenses/>.
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
17 */
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
18
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
19 #include <glib.h>
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
20
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
21 #include <purple.h>
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
22
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
23 #include "test_ui.h"
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
24
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
25 #define PURPLE_GLOBAL_HEADER_INSIDE
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
26 #include "../purpleprivate.h"
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
27 #undef PURPLE_GLOBAL_HEADER_INSIDE
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
28
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
29 /******************************************************************************
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
30 * TestPurpleHistoryAdapter
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
31 *****************************************************************************/
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
32 #define TEST_PURPLE_TYPE_HISTORY_ADAPTER \
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
33 (test_purple_history_adapter_get_type())
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
34 G_DECLARE_FINAL_TYPE(TestPurpleHistoryAdapter,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
35 test_purple_history_adapter,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
36 TEST_PURPLE, HISTORY_ADAPTER,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
37 PurpleHistoryAdapter)
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
38
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
39 struct _TestPurpleHistoryAdapter {
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
40 PurpleHistoryAdapter parent;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
41
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
42 gboolean activate;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
43 gboolean deactivate;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
44 gboolean query;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
45 gboolean remove;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
46 gboolean write;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
47 };
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
48
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
49 G_DEFINE_TYPE(TestPurpleHistoryAdapter,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
50 test_purple_history_adapter,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
51 PURPLE_TYPE_HISTORY_ADAPTER)
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
52
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
53 static gboolean
42089
083eae91c9a8 Update the libpurple tests for the warning level 2 update
Gary Kramlich <grim@reaperworld.com>
parents: 41090
diff changeset
54 test_purple_history_adapter_activate(PurpleHistoryAdapter *a,
083eae91c9a8 Update the libpurple tests for the warning level 2 update
Gary Kramlich <grim@reaperworld.com>
parents: 41090
diff changeset
55 G_GNUC_UNUSED GError **error)
083eae91c9a8 Update the libpurple tests for the warning level 2 update
Gary Kramlich <grim@reaperworld.com>
parents: 41090
diff changeset
56 {
41090
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
57 TestPurpleHistoryAdapter *adapter = TEST_PURPLE_HISTORY_ADAPTER(a);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
58
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
59 adapter->activate = TRUE;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
60
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
61 return TRUE;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
62 }
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
63
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
64 static gboolean
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
65 test_purple_history_adapter_deactivate(PurpleHistoryAdapter *a,
42089
083eae91c9a8 Update the libpurple tests for the warning level 2 update
Gary Kramlich <grim@reaperworld.com>
parents: 41090
diff changeset
66 G_GNUC_UNUSED GError **error)
41090
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
67 {
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
68 TestPurpleHistoryAdapter *adapter = TEST_PURPLE_HISTORY_ADAPTER(a);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
69
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
70 adapter->deactivate = TRUE;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
71
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
72 return TRUE;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
73 }
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
74
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
75 static GList *
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
76 test_purple_history_adapter_query(PurpleHistoryAdapter *a,
42089
083eae91c9a8 Update the libpurple tests for the warning level 2 update
Gary Kramlich <grim@reaperworld.com>
parents: 41090
diff changeset
77 G_GNUC_UNUSED const gchar *query,
083eae91c9a8 Update the libpurple tests for the warning level 2 update
Gary Kramlich <grim@reaperworld.com>
parents: 41090
diff changeset
78 G_GNUC_UNUSED GError **error)
41090
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
79 {
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
80 TestPurpleHistoryAdapter *adapter = TEST_PURPLE_HISTORY_ADAPTER(a);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
81 GList *list = NULL;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
82
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
83 adapter->query = TRUE;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
84
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
85 list = g_list_append(list, GINT_TO_POINTER(1));
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
86
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
87 return list;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
88 }
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
89
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
90 static gboolean
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
91 test_purple_history_adapter_remove(PurpleHistoryAdapter *a,
42089
083eae91c9a8 Update the libpurple tests for the warning level 2 update
Gary Kramlich <grim@reaperworld.com>
parents: 41090
diff changeset
92 G_GNUC_UNUSED const gchar *query,
083eae91c9a8 Update the libpurple tests for the warning level 2 update
Gary Kramlich <grim@reaperworld.com>
parents: 41090
diff changeset
93 G_GNUC_UNUSED GError **error)
41090
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
94 {
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
95 TestPurpleHistoryAdapter *adapter = TEST_PURPLE_HISTORY_ADAPTER(a);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
96
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
97 adapter->remove = TRUE;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
98
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
99 return TRUE;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
100 }
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
101
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
102 static gboolean
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
103 test_purple_history_adapter_write(PurpleHistoryAdapter *a,
42089
083eae91c9a8 Update the libpurple tests for the warning level 2 update
Gary Kramlich <grim@reaperworld.com>
parents: 41090
diff changeset
104 G_GNUC_UNUSED PurpleConversation *conversation,
083eae91c9a8 Update the libpurple tests for the warning level 2 update
Gary Kramlich <grim@reaperworld.com>
parents: 41090
diff changeset
105 G_GNUC_UNUSED PurpleMessage *message,
083eae91c9a8 Update the libpurple tests for the warning level 2 update
Gary Kramlich <grim@reaperworld.com>
parents: 41090
diff changeset
106 G_GNUC_UNUSED GError **error)
41090
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
107 {
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
108 TestPurpleHistoryAdapter *adapter = TEST_PURPLE_HISTORY_ADAPTER(a);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
109
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
110 adapter->write = TRUE;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
111
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
112 return TRUE;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
113 }
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
114
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
115 static void
42089
083eae91c9a8 Update the libpurple tests for the warning level 2 update
Gary Kramlich <grim@reaperworld.com>
parents: 41090
diff changeset
116 test_purple_history_adapter_init(G_GNUC_UNUSED TestPurpleHistoryAdapter *adapter) {
41090
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
117 }
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
118
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
119 static void
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
120 test_purple_history_adapter_class_init(TestPurpleHistoryAdapterClass *klass) {
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
121 PurpleHistoryAdapterClass *adapter_class = NULL;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
122
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
123 adapter_class = PURPLE_HISTORY_ADAPTER_CLASS(klass);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
124
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
125 adapter_class->activate = test_purple_history_adapter_activate;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
126 adapter_class->deactivate = test_purple_history_adapter_deactivate;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
127 adapter_class->query = test_purple_history_adapter_query;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
128 adapter_class->remove = test_purple_history_adapter_remove;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
129 adapter_class->write = test_purple_history_adapter_write;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
130 }
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
131
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
132 static PurpleHistoryAdapter *
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
133 test_purple_history_adapter_new(void) {
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
134 return g_object_new(
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
135 TEST_PURPLE_TYPE_HISTORY_ADAPTER,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
136 "id", "test-adapter",
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
137 "name", "Test Adapter",
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
138 NULL);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
139 }
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
140
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
141 /******************************************************************************
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
142 * Tests
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
143 *****************************************************************************/
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
144
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
145 static void
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
146 test_purple_history_adapter_test_properties(void) {
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
147 PurpleHistoryAdapter *adapter = test_purple_history_adapter_new();
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
148
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
149 g_assert_cmpstr(purple_history_adapter_get_id(adapter),
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
150 ==,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
151 "test-adapter");
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
152 g_assert_cmpstr(purple_history_adapter_get_name(adapter),
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
153 ==,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
154 "Test Adapter");
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
155
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
156 g_clear_object(&adapter);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
157 }
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
158
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
159 static void
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
160 test_purple_history_adapter_test_activate(void) {
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
161 PurpleHistoryAdapter *adapter = test_purple_history_adapter_new();
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
162 TestPurpleHistoryAdapter *ta = TEST_PURPLE_HISTORY_ADAPTER(adapter);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
163 GError *error = NULL;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
164 gboolean result = FALSE;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
165
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
166 result = purple_history_adapter_activate(adapter, &error);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
167 g_assert_no_error(error);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
168 g_assert_true(result);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
169 g_assert_true(ta->activate);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
170 g_assert_false(ta->deactivate);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
171 g_assert_false(ta->query);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
172 g_assert_false(ta->remove);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
173 g_assert_false(ta->write);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
174
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
175 g_clear_object(&adapter);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
176 }
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
177
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
178 static void
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
179 test_purple_history_adapter_test_deactivate(void) {
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
180 PurpleHistoryAdapter *adapter = test_purple_history_adapter_new();
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
181 TestPurpleHistoryAdapter *ta = TEST_PURPLE_HISTORY_ADAPTER(adapter);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
182 GError *error = NULL;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
183 gboolean result = FALSE;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
184
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
185 result = purple_history_adapter_deactivate(adapter, &error);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
186 g_assert_no_error(error);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
187 g_assert_true(result);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
188 g_assert_false(ta->activate);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
189 g_assert_true(ta->deactivate);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
190 g_assert_false(ta->query);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
191 g_assert_false(ta->remove);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
192 g_assert_false(ta->write);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
193
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
194 g_clear_object(&adapter);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
195 }
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
196
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
197 static void
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
198 test_purple_history_adapter_test_query(void) {
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
199 PurpleHistoryAdapter *adapter = test_purple_history_adapter_new();
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
200 TestPurpleHistoryAdapter *ta = TEST_PURPLE_HISTORY_ADAPTER(adapter);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
201 GError *error = NULL;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
202 GList *result = NULL;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
203
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
204 result = purple_history_adapter_query(adapter, "query", &error);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
205 g_assert_no_error(error);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
206 g_assert_nonnull(result);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
207 g_assert_false(ta->activate);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
208 g_assert_false(ta->deactivate);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
209 g_assert_true(ta->query);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
210 g_assert_false(ta->remove);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
211 g_assert_false(ta->write);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
212 g_list_free(result);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
213 g_clear_object(&adapter);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
214 }
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
215
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
216 static void
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
217 test_purple_history_adapter_test_remove(void) {
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
218 PurpleHistoryAdapter *adapter = test_purple_history_adapter_new();
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
219 TestPurpleHistoryAdapter *ta = TEST_PURPLE_HISTORY_ADAPTER(adapter);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
220 GError *error = NULL;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
221 gboolean result = FALSE;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
222
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
223 result = purple_history_adapter_remove(adapter, "query", &error);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
224 g_assert_no_error(error);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
225 g_assert_true(result);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
226 g_assert_false(ta->activate);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
227 g_assert_false(ta->deactivate);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
228 g_assert_false(ta->query);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
229 g_assert_true(ta->remove);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
230 g_assert_false(ta->write);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
231
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
232 g_clear_object(&adapter);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
233 }
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
234
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
235 static void
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
236 test_purple_history_adapter_test_write(void) {
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
237 PurpleAccount *account = NULL;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
238 PurpleConversation *conversation = NULL;
42184
4e1bf25f5575 Fix several leaks in tests
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42089
diff changeset
239 PurpleConversationManager *conversation_manager = NULL;
41090
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
240 PurpleHistoryAdapter *adapter = test_purple_history_adapter_new();
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
241 PurpleMessage *message = NULL;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
242 TestPurpleHistoryAdapter *ta = TEST_PURPLE_HISTORY_ADAPTER(adapter);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
243 GError *error = NULL;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
244 gboolean result = FALSE;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
245
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
246 message = g_object_new(PURPLE_TYPE_MESSAGE, NULL);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
247 account = purple_account_new("test", "test");
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
248 conversation = g_object_new(PURPLE_TYPE_IM_CONVERSATION,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
249 "account", account,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
250 "name", "pidgy",
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
251 NULL);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
252 result = purple_history_adapter_write(adapter, conversation, message,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
253 &error);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
254
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
255 g_assert_no_error(error);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
256 g_assert_true(result);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
257 g_assert_false(ta->activate);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
258 g_assert_false(ta->deactivate);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
259 g_assert_false(ta->query);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
260 g_assert_false(ta->remove);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
261 g_assert_true(ta->write);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
262
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
263 g_clear_object(&adapter);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
264 g_clear_object(&message);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
265
42184
4e1bf25f5575 Fix several leaks in tests
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42089
diff changeset
266 /* TODO: Conversations are automatically registered on construction for
4e1bf25f5575 Fix several leaks in tests
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42089
diff changeset
267 * legacy reasons, so we need to explicitly unregister to clean them up,
4e1bf25f5575 Fix several leaks in tests
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42089
diff changeset
268 * but this can go away once that stops happening. */
4e1bf25f5575 Fix several leaks in tests
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42089
diff changeset
269 conversation_manager = purple_conversation_manager_get_default();
4e1bf25f5575 Fix several leaks in tests
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42089
diff changeset
270 purple_conversation_manager_unregister(conversation_manager, conversation);
41090
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
271
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
272 g_clear_object(&conversation);
42184
4e1bf25f5575 Fix several leaks in tests
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42089
diff changeset
273 g_clear_object(&account);
41090
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
274 }
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
275
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
276
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
277 /******************************************************************************
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
278 * Main
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
279 *****************************************************************************/
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
280 gint
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
281 main(gint argc, gchar *argv[]) {
42184
4e1bf25f5575 Fix several leaks in tests
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42089
diff changeset
282 gint ret = 0;
4e1bf25f5575 Fix several leaks in tests
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42089
diff changeset
283
41090
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
284 g_test_init(&argc, &argv, NULL);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
285
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
286 test_ui_purple_init();
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
287
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
288 g_test_add_func("/history-adapter/properties",
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
289 test_purple_history_adapter_test_properties);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
290 g_test_add_func("/history-adapter/activate",
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
291 test_purple_history_adapter_test_activate);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
292 g_test_add_func("/history-adapter/deactivate",
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
293 test_purple_history_adapter_test_deactivate);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
294 g_test_add_func("/history-adapter/query",
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
295 test_purple_history_adapter_test_query);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
296 g_test_add_func("/history-adapter/remove",
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
297 test_purple_history_adapter_test_remove);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
298 g_test_add_func("/history-adapter/write",
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
299 test_purple_history_adapter_test_write);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
300
42184
4e1bf25f5575 Fix several leaks in tests
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42089
diff changeset
301 ret = g_test_run();
4e1bf25f5575 Fix several leaks in tests
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42089
diff changeset
302
4e1bf25f5575 Fix several leaks in tests
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42089
diff changeset
303 test_ui_purple_uninit();
4e1bf25f5575 Fix several leaks in tests
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42089
diff changeset
304
4e1bf25f5575 Fix several leaks in tests
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42089
diff changeset
305 return ret;
41090
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
306 }

mercurial