diff options
author | Gary Kramlich <grim@reaperworld.com> | 2018-02-15 23:15:48 -0600 |
---|---|---|
committer | Gary Kramlich <grim@reaperworld.com> | 2018-02-15 23:15:48 -0600 |
commit | af0e42cc061fde8a908073832194d7eb4fdcd69b (patch) | |
tree | ce4a634a31682c947575566952452b4a3ffdb71b | |
parent | cffb894f610eb534901324e05f51e0f6f0f6196d (diff) | |
download | pidgin-af0e42cc061fde8a908073832194d7eb4fdcd69b.tar.gz |
Add some basic unit tests
-rw-r--r-- | libpurple/action.c | 2 | ||||
-rw-r--r-- | libpurple/action.h | 12 | ||||
-rw-r--r-- | libpurple/tests/meson.build | 1 | ||||
-rw-r--r-- | libpurple/tests/test_protocol_action.c | 100 |
4 files changed, 114 insertions, 1 deletions
diff --git a/libpurple/action.c b/libpurple/action.c index 51fe868da1..bfa0a5757f 100644 --- a/libpurple/action.c +++ b/libpurple/action.c @@ -150,7 +150,7 @@ purple_protocol_action_free(PurpleProtocolAction *action) { g_free(action); } -static PurpleProtocolAction * +PurpleProtocolAction * purple_protocol_action_copy(PurpleProtocolAction *action) { g_return_val_if_fail(action != NULL, NULL); diff --git a/libpurple/action.h b/libpurple/action.h index 42f32c1810..36b4ceb6b3 100644 --- a/libpurple/action.h +++ b/libpurple/action.h @@ -199,10 +199,22 @@ GType purple_protocol_action_get_type(void); * * Allocates and returns a new PurpleProtocolAction. Use this to add actions in * a list in the get_actions function of the protocol. + * + * Returns: (transfer full): The new #PurpleProtocolAction. */ PurpleProtocolAction *purple_protocol_action_new(const gchar *label, PurpleProtocolActionCallback callback); /** + * purple_protocol_action_copy: + * @action: The #PurpleProtocolAction to copy. + * + * Creates a newly allocated copy of @action. + * + * Returns: (transfer full): A copy of @action. + */ +PurpleProtocolAction *purple_protocol_action_copy(PurpleProtocolAction *action); + +/** * purple_protocol_action_free: * @action: The PurpleProtocolAction to free. * diff --git a/libpurple/tests/meson.build b/libpurple/tests/meson.build index 4d353adab6..52dc968d4c 100644 --- a/libpurple/tests/meson.build +++ b/libpurple/tests/meson.build @@ -2,6 +2,7 @@ PROGS = [ 'attention_type', 'image', 'protocol_attention', + 'protocol_action', 'protocol_xfer', 'queued_output_stream', 'smiley', diff --git a/libpurple/tests/test_protocol_action.c b/libpurple/tests/test_protocol_action.c new file mode 100644 index 0000000000..14f4f36658 --- /dev/null +++ b/libpurple/tests/test_protocol_action.c @@ -0,0 +1,100 @@ +/* + * Purple + * + * Purple is the legal property of its developers, whose names are too + * numerous to list here. Please refer to the COPYRIGHT file distributed + * with this source distribution + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA + */ + +#include <glib.h> +#include <string.h> + +#include <purple.h> + +#include "dbus-server.h" + +/****************************************************************************** + * Helpers + *****************************************************************************/ +static void +_test_purple_protocol_action_callback(PurpleProtocolAction *action) { + +} + +/****************************************************************************** + * Tests + *****************************************************************************/ +static void +test_purple_protocol_action_new(void) { + PurpleProtocolAction *action = NULL; + + action = purple_protocol_action_new( + "label", + _test_purple_protocol_action_callback + ); + g_assert_nonnull(action); + + g_assert_cmpstr(action->label, ==, "label"); + g_assert(action->callback == _test_purple_protocol_action_callback); + + purple_protocol_action_free(action); +} + +static void +test_purple_protocol_action_copy(void) { + PurpleProtocolAction *orig = NULL, *copy = NULL; + + orig = purple_protocol_action_new( + "label", + _test_purple_protocol_action_callback + ); + g_assert_nonnull(orig); + + copy = purple_protocol_action_copy(orig); + purple_protocol_action_free(orig); + + g_assert_cmpstr(copy->label, ==, "label"); + g_assert(copy->callback == _test_purple_protocol_action_callback); + + purple_protocol_action_free(copy); +} + +/****************************************************************************** + * Main + *****************************************************************************/ +gint +main(gint argc, gchar **argv) { + gint res = 0; + + g_test_init(&argc, &argv, NULL); + + g_test_set_nonfatal_assertions(); + + g_test_add_func( + "/protocol-action/new", + test_purple_protocol_action_new + ); + + g_test_add_func( + "/protocol-action/copy", + test_purple_protocol_action_copy + ); + + res = g_test_run(); + + return res; +} |