Thu, 17 Aug 2023 22:00:17 -0500
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 | } |