diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/Makefile.am | 2 | ||||
-rw-r--r-- | tests/check-empathy-chatroom-manager.c | 3 | ||||
-rw-r--r-- | tests/check-empathy-helpers.c | 124 | ||||
-rw-r--r-- | tests/check-empathy-helpers.h | 30 | ||||
-rw-r--r-- | tests/check-empathy-irc-network-manager.c | 1 | ||||
-rw-r--r-- | tests/check-helpers.c | 96 | ||||
-rw-r--r-- | tests/check-helpers.h | 6 |
7 files changed, 160 insertions, 102 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am index ccf6c8f1d..4e2654050 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -33,6 +33,8 @@ check_main_SOURCES = \ check-helpers.h \ check-libempathy.h \ check-empathy-utils.c \ + check-empathy-helpers.h \ + check-empathy-helpers.c \ check-irc-helper.h \ check-irc-helper.c \ check-empathy-irc-server.c \ diff --git a/tests/check-empathy-chatroom-manager.c b/tests/check-empathy-chatroom-manager.c index 84ac32233..81b7e1c33 100644 --- a/tests/check-empathy-chatroom-manager.c +++ b/tests/check-empathy-chatroom-manager.c @@ -3,9 +3,12 @@ #include <string.h> #include <glib/gstdio.h> +#include <gconf/gconf.h> +#include <gconf/gconf-client.h> #include <check.h> #include "check-helpers.h" #include "check-libempathy.h" +#include "check-empathy-helpers.h" #include <libempathy/empathy-chatroom-manager.h> diff --git a/tests/check-empathy-helpers.c b/tests/check-empathy-helpers.c new file mode 100644 index 000000000..0f9678bbd --- /dev/null +++ b/tests/check-empathy-helpers.c @@ -0,0 +1,124 @@ +/* + * check-empathy-helpers.c - Source for some check helpers + * Copyright (C) 2007-2008 Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include <stdio.h> +#include <stdlib.h> + +#include <glib/gstdio.h> +#include <gconf/gconf.h> +#include <gconf/gconf-client.h> + +#include "check-helpers.h" +#include "check-empathy-helpers.h" + +gchar * +get_xml_file (const gchar *filename) +{ + return g_build_filename (g_getenv ("EMPATHY_SRCDIR"), "tests", "xml", + filename, NULL); +} + +gchar * +get_user_xml_file (const gchar *filename) +{ + return g_build_filename (g_get_tmp_dir (), filename, NULL); +} + +void +copy_xml_file (const gchar *orig, + const gchar *dest) +{ + gboolean result; + gchar *buffer; + gsize length; + gchar *sample; + gchar *file; + + sample = get_xml_file (orig); + result = g_file_get_contents (sample, &buffer, &length, NULL); + fail_if (!result); + + file = get_user_xml_file (dest); + result = g_file_set_contents (file, buffer, length, NULL); + fail_if (!result); + + g_free (sample); + g_free (file); + g_free (buffer); +} + +void +remove_account_from_gconf (McAccount *account) +{ + GConfClient *client; + gchar *path; + GError *error = NULL; + GSList *entries = NULL, *l; + + client = gconf_client_get_default (); + path = g_strdup_printf ("/apps/telepathy/mc/accounts/%s", + mc_account_get_unique_name (account)); + + entries = gconf_client_all_entries (client, path, &error); + if (error != NULL) + { + g_print ("failed to list entries in %s: %s\n", path, error->message); + g_error_free (error); + error = NULL; + } + + for (l = entries; l != NULL; l = g_slist_next (l)) + { + GConfEntry *entry = l->data; + + if (g_str_has_suffix (entry->key, "data_dir")) + { + gchar *dir; + + dir = gconf_client_get_string (client, entry->key, &error); + if (error != NULL) + { + g_print ("get data_dir string failed: %s\n", entry->key); + g_error_free (error); + error = NULL; + } + else + { + if (g_rmdir (dir) != 0) + g_print ("can't remove %s\n", dir); + } + } + + /* FIXME: this doesn't remove the key */ + gconf_client_unset (client, entry->key, &error); + if (error != NULL) + { + g_print ("unset of %s failed: %s\n", path, error->message); + g_error_free (error); + error = NULL; + } + + gconf_entry_free (entry); + } + + g_slist_free (entries); + + g_object_unref (client); + g_free (path); +} diff --git a/tests/check-empathy-helpers.h b/tests/check-empathy-helpers.h new file mode 100644 index 000000000..086d00196 --- /dev/null +++ b/tests/check-empathy-helpers.h @@ -0,0 +1,30 @@ +/* + * check-empathy-helpers.c - Source for some check helpers + * Copyright (C) 2007 Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#ifndef __CHECK_EMPATHY_HELPERS_H__ +#define __CHECK_EMPATHY_HELPERS_H__ + +#include <glib.h> +#include <libmissioncontrol/mc-account.h> + +gchar * get_xml_file (const gchar *filename); +gchar * get_user_xml_file (const gchar *filename); +void copy_xml_file (const gchar *orig, const gchar *dest); +void remove_account_from_gconf (McAccount *account); + +#endif /* #ifndef __CHECK_EMPATHY_HELPERS_H__ */ diff --git a/tests/check-empathy-irc-network-manager.c b/tests/check-empathy-irc-network-manager.c index 47601f5f3..44d6f7f82 100644 --- a/tests/check-empathy-irc-network-manager.c +++ b/tests/check-empathy-irc-network-manager.c @@ -7,6 +7,7 @@ #include "check-helpers.h" #include "check-libempathy.h" #include "check-irc-helper.h" +#include "check-empathy-helpers.h" #include <libempathy/empathy-irc-network-manager.h> diff --git a/tests/check-helpers.c b/tests/check-helpers.c index 276cf11b2..5f1f32fdd 100644 --- a/tests/check-helpers.c +++ b/tests/check-helpers.c @@ -65,99 +65,3 @@ check_helpers_init (void) g_log_set_handler (NULL, G_LOG_LEVEL_CRITICAL, check_helper_log_critical_func, NULL); } - -gchar * -get_xml_file (const gchar *filename) -{ - return g_build_filename (g_getenv ("EMPATHY_SRCDIR"), "tests", "xml", - filename, NULL); -} - -gchar * -get_user_xml_file (const gchar *filename) -{ - return g_build_filename (g_get_tmp_dir (), filename, NULL); -} - -void -copy_xml_file (const gchar *orig, - const gchar *dest) -{ - gboolean result; - gchar *buffer; - gsize length; - gchar *sample; - gchar *file; - - sample = get_xml_file (orig); - result = g_file_get_contents (sample, &buffer, &length, NULL); - fail_if (!result); - - file = get_user_xml_file (dest); - result = g_file_set_contents (file, buffer, length, NULL); - fail_if (!result); - - g_free (sample); - g_free (file); - g_free (buffer); -} - -void -remove_account_from_gconf (McAccount *account) -{ - GConfClient *client; - gchar *path; - GError *error = NULL; - GSList *entries = NULL, *l; - - client = gconf_client_get_default (); - path = g_strdup_printf ("/apps/telepathy/mc/accounts/%s", - mc_account_get_unique_name (account)); - - entries = gconf_client_all_entries (client, path, &error); - if (error != NULL) - { - g_print ("failed to list entries in %s: %s\n", path, error->message); - g_error_free (error); - error = NULL; - } - - for (l = entries; l != NULL; l = g_slist_next (l)) - { - GConfEntry *entry = l->data; - - if (g_str_has_suffix (entry->key, "data_dir")) - { - gchar *dir; - - dir = gconf_client_get_string (client, entry->key, &error); - if (error != NULL) - { - g_print ("get data_dir string failed: %s\n", entry->key); - g_error_free (error); - error = NULL; - } - else - { - if (g_rmdir (dir) != 0) - g_print ("can't remove %s\n", dir); - } - } - - /* FIXME: this doesn't remove the key */ - gconf_client_unset (client, entry->key, &error); - if (error != NULL) - { - g_print ("unset of %s failed: %s\n", path, error->message); - g_error_free (error); - error = NULL; - } - - gconf_entry_free (entry); - } - - g_slist_free (entries); - - g_object_unref (client); - g_free (path); -} diff --git a/tests/check-helpers.h b/tests/check-helpers.h index 4e91b3124..3e0783811 100644 --- a/tests/check-helpers.h +++ b/tests/check-helpers.h @@ -41,10 +41,4 @@ G_STMT_START { \ expect_critical (FALSE); \ } G_STMT_END; -gchar * get_xml_file (const gchar *filename); -gchar * get_user_xml_file (const gchar *filename); -void copy_xml_file (const gchar *orig, const gchar *dest); -void remove_account_from_gconf (McAccount *account); - - #endif /* #ifndef __CHECK_HELPERS_H__ */ |