libpurple/tests/test_ui.c

Thu, 17 Aug 2023 22:00:17 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Thu, 17 Aug 2023 22:00:17 -0500
changeset 42279
c82d97d2e0cc
parent 42184
4e1bf25f5575
child 42374
3bcea128d38f
permissions
-rw-r--r--

Stop ignoring SIGCHLD in the unit tests

This was breaking the unit tests with glib 2.77 and isn't even necessary any
more now that we use GResolver.

This was originally thought to be an upstream [GLib bug](https://gitlab.gnome.org/GNOME/glib/-/issues/3071) which it kind of is, as they made changes, but this code shouldn't exist anyways.

Testing Done:
Ran the unit tests and verified they passed. Also connected an ircv3 account and verified it worked fine.

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

38831
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1 /*
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
2 * pidgin
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
3 *
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
4 * Pidgin is the legal property of its developers, whose names are too numerous
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
5 * to list here. Please refer to the COPYRIGHT file distributed with this
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
6 * source distribution.
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
7 *
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
8 * This program is free software; you can redistribute it and/or modify
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
9 * it under the terms of the GNU General Public License as published by
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
10 * the Free Software Foundation; either version 2 of the License, or
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
11 * (at your option) any later version.
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
12 *
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
13 * This program is distributed in the hope that it will be useful,
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
16 * GNU General Public License for more details.
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
17 *
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
18 * You should have received a copy of the GNU General Public License
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
19 * along with this program; if not, write to the Free Software
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
21 *
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
22 */
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
23
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
24 #include "purple.h"
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
25
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
26 #include <glib.h>
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
27 #include <glib/gprintf.h>
41868
e69cbf7921ec Add an out parameter for an error to purple_core_init
Gary Kramlich <grim@reaperworld.com>
parents: 41867
diff changeset
28 #include <glib/gi18n-lib.h>
38831
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
29
41806
b7a1aab4b3be Add a get_settings_backend vfunc to CoreUiOps
Gary Kramlich <grim@reaperworld.com>
parents: 41396
diff changeset
30 #define G_SETTINGS_ENABLE_BACKEND
b7a1aab4b3be Add a get_settings_backend vfunc to CoreUiOps
Gary Kramlich <grim@reaperworld.com>
parents: 41396
diff changeset
31 #include <gio/gsettingsbackend.h>
b7a1aab4b3be Add a get_settings_backend vfunc to CoreUiOps
Gary Kramlich <grim@reaperworld.com>
parents: 41396
diff changeset
32
38831
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
33 #include <signal.h>
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
34 #include <string.h>
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
35 #ifdef _WIN32
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
36 # include <conio.h>
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
37 #else
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
38 # include <unistd.h>
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
39 #endif
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
40
38832
7ad7854d8e60 Create a very basic ui for testing
Gary Kramlich <grim@reaperworld.com>
parents: 38831
diff changeset
41 #include "test_ui.h"
38831
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
42
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
43 /*** Conversation uiops ***/
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
44 static void
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
45 test_write_conv(PurpleConversation *conv, PurpleMessage *msg)
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
46 {
40541
9ceb8d25d4d9 PurpleMessage cleanups from hell
Gary Kramlich <grim@reaperworld.com>
parents: 38834
diff changeset
47 gchar *timestamp = purple_message_format_timestamp(msg, "(%H:%M:%S)");
38831
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
48
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
49 printf("(%s) %s %s: %s\n",
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
50 purple_conversation_get_name(conv),
40541
9ceb8d25d4d9 PurpleMessage cleanups from hell
Gary Kramlich <grim@reaperworld.com>
parents: 38834
diff changeset
51 timestamp,
38831
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
52 purple_message_get_author_alias(msg),
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
53 purple_message_get_contents(msg));
40541
9ceb8d25d4d9 PurpleMessage cleanups from hell
Gary Kramlich <grim@reaperworld.com>
parents: 38834
diff changeset
54
9ceb8d25d4d9 PurpleMessage cleanups from hell
Gary Kramlich <grim@reaperworld.com>
parents: 38834
diff changeset
55 g_free(timestamp);
38831
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
56 }
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
57
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
58 static PurpleConversationUiOps test_conv_uiops = {
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
59 .write_conv = test_write_conv
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
60 };
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
61
41867
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
62 /******************************************************************************
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
63 * PurpleUi Implementation
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
64 *****************************************************************************/
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
65 struct _TestPurpleUi {
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
66 PurpleUi parent;
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
67 };
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
68
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
69 G_DECLARE_FINAL_TYPE(TestPurpleUi, test_purple_ui, TEST_PURPLE, UI, PurpleUi)
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
70
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
71 G_DEFINE_TYPE(TestPurpleUi, test_purple_ui, PURPLE_TYPE_UI)
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
72
41873
98c20aec9aba Make PurpleUi.start return a gboolean and GError
Gary Kramlich <grim@reaperworld.com>
parents: 41868
diff changeset
73 static gboolean
98c20aec9aba Make PurpleUi.start return a gboolean and GError
Gary Kramlich <grim@reaperworld.com>
parents: 41868
diff changeset
74 test_purple_ui_start(G_GNUC_UNUSED PurpleUi *ui, G_GNUC_UNUSED GError **error) {
38831
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
75 purple_conversations_set_ui_ops(&test_conv_uiops);
41873
98c20aec9aba Make PurpleUi.start return a gboolean and GError
Gary Kramlich <grim@reaperworld.com>
parents: 41868
diff changeset
76
98c20aec9aba Make PurpleUi.start return a gboolean and GError
Gary Kramlich <grim@reaperworld.com>
parents: 41868
diff changeset
77 return TRUE;
38831
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
78 }
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
79
41806
b7a1aab4b3be Add a get_settings_backend vfunc to CoreUiOps
Gary Kramlich <grim@reaperworld.com>
parents: 41396
diff changeset
80 static gpointer
41867
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
81 test_purple_ui_get_settings_backend(G_GNUC_UNUSED PurpleUi *ui) {
41806
b7a1aab4b3be Add a get_settings_backend vfunc to CoreUiOps
Gary Kramlich <grim@reaperworld.com>
parents: 41396
diff changeset
82 return g_memory_settings_backend_new();
b7a1aab4b3be Add a get_settings_backend vfunc to CoreUiOps
Gary Kramlich <grim@reaperworld.com>
parents: 41396
diff changeset
83 }
b7a1aab4b3be Add a get_settings_backend vfunc to CoreUiOps
Gary Kramlich <grim@reaperworld.com>
parents: 41396
diff changeset
84
41867
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
85 static void
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
86 test_purple_ui_init(G_GNUC_UNUSED TestPurpleUi *ui) {
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
87 }
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
88
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
89 static void
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
90 test_purple_ui_class_init(TestPurpleUiClass *klass) {
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
91 PurpleUiClass *ui_class = PURPLE_UI_CLASS(klass);
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
92
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
93 ui_class->start = test_purple_ui_start;
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
94 ui_class->get_settings_backend = test_purple_ui_get_settings_backend;
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
95 }
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
96
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
97 static PurpleUi *
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
98 test_purple_ui_new(void) {
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
99 return g_object_new(
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
100 test_purple_ui_get_type(),
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
101 "id", "test",
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
102 "name", "Test-UI",
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
103 "version", VERSION,
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
104 "website", PURPLE_WEBSITE,
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
105 "support-website", PURPLE_WEBSITE,
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
106 "client-type", "test",
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
107 NULL);
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
108 }
38831
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
109
41109
755e1554051c Make user interfaces setup the default history adapter.
Gary Kramlich <grim@reaperworld.com>
parents: 40669
diff changeset
110 static gboolean
755e1554051c Make user interfaces setup the default history adapter.
Gary Kramlich <grim@reaperworld.com>
parents: 40669
diff changeset
111 test_ui_init_history(GError **error) {
755e1554051c Make user interfaces setup the default history adapter.
Gary Kramlich <grim@reaperworld.com>
parents: 40669
diff changeset
112 PurpleHistoryManager *manager = NULL;
755e1554051c Make user interfaces setup the default history adapter.
Gary Kramlich <grim@reaperworld.com>
parents: 40669
diff changeset
113 PurpleHistoryAdapter *adapter = NULL;
755e1554051c Make user interfaces setup the default history adapter.
Gary Kramlich <grim@reaperworld.com>
parents: 40669
diff changeset
114 const gchar *id = NULL;
755e1554051c Make user interfaces setup the default history adapter.
Gary Kramlich <grim@reaperworld.com>
parents: 40669
diff changeset
115
755e1554051c Make user interfaces setup the default history adapter.
Gary Kramlich <grim@reaperworld.com>
parents: 40669
diff changeset
116 manager = purple_history_manager_get_default();
755e1554051c Make user interfaces setup the default history adapter.
Gary Kramlich <grim@reaperworld.com>
parents: 40669
diff changeset
117
755e1554051c Make user interfaces setup the default history adapter.
Gary Kramlich <grim@reaperworld.com>
parents: 40669
diff changeset
118 adapter = purple_sqlite_history_adapter_new(":memory:");
755e1554051c Make user interfaces setup the default history adapter.
Gary Kramlich <grim@reaperworld.com>
parents: 40669
diff changeset
119 id = purple_history_adapter_get_id(adapter);
755e1554051c Make user interfaces setup the default history adapter.
Gary Kramlich <grim@reaperworld.com>
parents: 40669
diff changeset
120
755e1554051c Make user interfaces setup the default history adapter.
Gary Kramlich <grim@reaperworld.com>
parents: 40669
diff changeset
121 if(!purple_history_manager_register(manager, adapter, error)) {
755e1554051c Make user interfaces setup the default history adapter.
Gary Kramlich <grim@reaperworld.com>
parents: 40669
diff changeset
122 g_clear_object(&adapter);
755e1554051c Make user interfaces setup the default history adapter.
Gary Kramlich <grim@reaperworld.com>
parents: 40669
diff changeset
123
755e1554051c Make user interfaces setup the default history adapter.
Gary Kramlich <grim@reaperworld.com>
parents: 40669
diff changeset
124 return FALSE;
755e1554051c Make user interfaces setup the default history adapter.
Gary Kramlich <grim@reaperworld.com>
parents: 40669
diff changeset
125 }
755e1554051c Make user interfaces setup the default history adapter.
Gary Kramlich <grim@reaperworld.com>
parents: 40669
diff changeset
126
755e1554051c Make user interfaces setup the default history adapter.
Gary Kramlich <grim@reaperworld.com>
parents: 40669
diff changeset
127 /* The manager adds a ref to the adapter on registration, so we can remove
755e1554051c Make user interfaces setup the default history adapter.
Gary Kramlich <grim@reaperworld.com>
parents: 40669
diff changeset
128 * our reference.
755e1554051c Make user interfaces setup the default history adapter.
Gary Kramlich <grim@reaperworld.com>
parents: 40669
diff changeset
129 */
755e1554051c Make user interfaces setup the default history adapter.
Gary Kramlich <grim@reaperworld.com>
parents: 40669
diff changeset
130 g_clear_object(&adapter);
755e1554051c Make user interfaces setup the default history adapter.
Gary Kramlich <grim@reaperworld.com>
parents: 40669
diff changeset
131
755e1554051c Make user interfaces setup the default history adapter.
Gary Kramlich <grim@reaperworld.com>
parents: 40669
diff changeset
132 return purple_history_manager_set_active(manager, id, error);
755e1554051c Make user interfaces setup the default history adapter.
Gary Kramlich <grim@reaperworld.com>
parents: 40669
diff changeset
133 }
755e1554051c Make user interfaces setup the default history adapter.
Gary Kramlich <grim@reaperworld.com>
parents: 40669
diff changeset
134
38832
7ad7854d8e60 Create a very basic ui for testing
Gary Kramlich <grim@reaperworld.com>
parents: 38831
diff changeset
135 void
7ad7854d8e60 Create a very basic ui for testing
Gary Kramlich <grim@reaperworld.com>
parents: 38831
diff changeset
136 test_ui_purple_init(void) {
41867
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
137 PurpleUi *ui = NULL;
41109
755e1554051c Make user interfaces setup the default history adapter.
Gary Kramlich <grim@reaperworld.com>
parents: 40669
diff changeset
138 GError *error = NULL;
755e1554051c Make user interfaces setup the default history adapter.
Gary Kramlich <grim@reaperworld.com>
parents: 40669
diff changeset
139
38834
e4144efa975e Clean up a bunch of the cruft I accidentally created
Gary Kramlich <grim@reaperworld.com>
parents: 38832
diff changeset
140 /* set the magic PURPLE_PLUGINS_SKIP environment variable */
e4144efa975e Clean up a bunch of the cruft I accidentally created
Gary Kramlich <grim@reaperworld.com>
parents: 38832
diff changeset
141 g_setenv("PURPLE_PLUGINS_SKIP", "1", TRUE);
e4144efa975e Clean up a bunch of the cruft I accidentally created
Gary Kramlich <grim@reaperworld.com>
parents: 38832
diff changeset
142
41867
5375c1d58c50 Create PurpleUi that merges PurpleCoreUiOps and PurpleUiInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41806
diff changeset
143 ui = test_purple_ui_new();
41396
2ef3d6eeffb3 Update purple_core_init to take a PurpleUiInfo instance
Gary Kramlich <grim@reaperworld.com>
parents: 41129
diff changeset
144
38831
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
145 /* Now that all the essential stuff has been set, let's try to init the core. It's
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
146 * necessary to provide a non-NULL name for the current ui to the core. This name
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
147 * is used by stuff that depends on this ui, for example the ui-specific plugins. */
41868
e69cbf7921ec Add an out parameter for an error to purple_core_init
Gary Kramlich <grim@reaperworld.com>
parents: 41867
diff changeset
148 if (!purple_core_init(ui, &error)) {
38831
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
149 /* Initializing the core failed. Terminate. */
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
150 fprintf(stderr,
41868
e69cbf7921ec Add an out parameter for an error to purple_core_init
Gary Kramlich <grim@reaperworld.com>
parents: 41867
diff changeset
151 _("Initialization of the libpurple core failed. %s\n"
e69cbf7921ec Add an out parameter for an error to purple_core_init
Gary Kramlich <grim@reaperworld.com>
parents: 41867
diff changeset
152 "Aborting!\nPlease report this!\n"),
e69cbf7921ec Add an out parameter for an error to purple_core_init
Gary Kramlich <grim@reaperworld.com>
parents: 41867
diff changeset
153 (error != NULL) ? error->message : "unknown error");
e69cbf7921ec Add an out parameter for an error to purple_core_init
Gary Kramlich <grim@reaperworld.com>
parents: 41867
diff changeset
154 g_clear_error(&error);
38831
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
155 abort();
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
156 }
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
157
41109
755e1554051c Make user interfaces setup the default history adapter.
Gary Kramlich <grim@reaperworld.com>
parents: 40669
diff changeset
158 if(!test_ui_init_history(&error)) {
755e1554051c Make user interfaces setup the default history adapter.
Gary Kramlich <grim@reaperworld.com>
parents: 40669
diff changeset
159 g_critical("failed to initialize the history api: %s",
755e1554051c Make user interfaces setup the default history adapter.
Gary Kramlich <grim@reaperworld.com>
parents: 40669
diff changeset
160 error ? error->message : "unknown");
755e1554051c Make user interfaces setup the default history adapter.
Gary Kramlich <grim@reaperworld.com>
parents: 40669
diff changeset
161 g_clear_error(&error);
755e1554051c Make user interfaces setup the default history adapter.
Gary Kramlich <grim@reaperworld.com>
parents: 40669
diff changeset
162 }
38831
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
163
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
164 /* Load the preferences. */
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
165 purple_prefs_load();
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
166
41129
4be9a7876d35 Fix the unit tests that were broke by the g_log transition
Gary Kramlich <grim@reaperworld.com>
parents: 41127
diff changeset
167 purple_prefs_add_none("/purple");
4be9a7876d35 Fix the unit tests that were broke by the g_log transition
Gary Kramlich <grim@reaperworld.com>
parents: 41127
diff changeset
168 purple_prefs_add_none("/purple/test_ui");
4be9a7876d35 Fix the unit tests that were broke by the g_log transition
Gary Kramlich <grim@reaperworld.com>
parents: 41127
diff changeset
169 purple_prefs_add_none("/purple/test_ui/plugins");
4be9a7876d35 Fix the unit tests that were broke by the g_log transition
Gary Kramlich <grim@reaperworld.com>
parents: 41127
diff changeset
170 purple_prefs_add_path_list("/purple/test_ui/plugins/saved", NULL);
4be9a7876d35 Fix the unit tests that were broke by the g_log transition
Gary Kramlich <grim@reaperworld.com>
parents: 41127
diff changeset
171
38831
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
172 /* Load the desired plugins. The client should save the list of loaded plugins in
40669
48dfed6f4f1f Fix Windows builds and tests
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40541
diff changeset
173 * the preferences using purple_plugins_save_loaded() */
48dfed6f4f1f Fix Windows builds and tests
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40541
diff changeset
174 purple_plugins_load_saved("/purple/test_ui/plugins/saved");
38831
d260f3b61831 The start of a ui for unit testing
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
175 }
42184
4e1bf25f5575 Fix several leaks in tests
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41873
diff changeset
176
4e1bf25f5575 Fix several leaks in tests
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41873
diff changeset
177 void
4e1bf25f5575 Fix several leaks in tests
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41873
diff changeset
178 test_ui_purple_uninit(void) {
4e1bf25f5575 Fix several leaks in tests
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41873
diff changeset
179 purple_core_quit();
4e1bf25f5575 Fix several leaks in tests
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41873
diff changeset
180 }

mercurial