diff options
author | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2009-10-29 16:01:44 +0100 |
---|---|---|
committer | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2009-11-03 12:25:02 +0000 |
commit | d948dd18d07e799223057134557312885d0cad42 (patch) | |
tree | 96590ef2ce355f71c9958b8fd2b8a729150c7181 /tests | |
parent | b3e65f73b24b69f3c6acd0dd662393259e13fc2d (diff) |
merge check-empathy-helpers to test-helper
Diffstat (limited to 'tests')
-rw-r--r-- | tests/Makefile.am | 3 | ||||
-rw-r--r-- | tests/check-empathy-helpers.c | 169 | ||||
-rw-r--r-- | tests/check-empathy-helpers.h | 32 | ||||
-rw-r--r-- | tests/empathy-chatroom-test.c | 1 | ||||
-rw-r--r-- | tests/empathy-irc-network-manager-test.c | 1 | ||||
-rw-r--r-- | tests/test-helper.c | 159 | ||||
-rw-r--r-- | tests/test-helper.h | 28 |
7 files changed, 188 insertions, 205 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am index 61c6b78db..7821d8d2f 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -42,8 +42,7 @@ empathy_irc_network_test_SOURCES = empathy-irc-network-test.c \ empathy_irc_network_manager_test_SOURCES = empathy-irc-network-manager-test.c \ test-helper.c test-helper.h \ - check-irc-helper.h check-irc-helper.c \ - check-empathy-helpers.h check-empathy-helpers.c + check-irc-helper.h check-irc-helper.c empathy_chatroom_test_SOURCES = empathy-chatroom-test.c \ test-helper.c test-helper.h diff --git a/tests/check-empathy-helpers.c b/tests/check-empathy-helpers.c deleted file mode 100644 index 619a1d535..000000000 --- a/tests/check-empathy-helpers.c +++ /dev/null @@ -1,169 +0,0 @@ -/* - * 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 <telepathy-glib/account-manager.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); - g_assert (result); - - file = get_user_xml_file (dest); - result = g_file_set_contents (file, buffer, length, NULL); - g_assert (result); - - g_free (sample); - g_free (file); - g_free (buffer); -} - -#if 0 -EmpathyAccount * -get_test_account (void) -{ - McProfile *profile; - EmpathyAccountManager *account_manager; - EmpathyAccount *account; - GList *accounts; - - account_manager = empathy_account_manager_dup_singleton (); - profile = mc_profile_lookup ("test"); - accounts = mc_accounts_list_by_profile (profile); - if (g_list_length (accounts) == 0) - { - /* need to create a test account */ - account = empathy_account_manager_create_by_profile (account_manager, - profile); - } - else - { - /* reuse an existing test account */ - McAccount *mc_account; - mc_account = accounts->data; - account = empathy_account_manager_lookup (account_manager, - mc_account_get_unique_name (mc_account)); - } - g_object_unref (account_manager); - - g_object_unref (profile); - - return account; -} - -/* Not used for now as there is no API to remove completely gconf keys. - * So we reuse existing accounts instead of creating new ones */ -void -destroy_test_account (EmpathyAccount *account) -{ - GConfClient *client; - gchar *path; - GError *error = NULL; - GSList *entries = NULL, *l; - EmpathyAccountManager *manager; - - client = gconf_client_get_default (); - path = g_strdup_printf ("/apps/telepathy/mc/accounts/%s", - empathy_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); - } - - g_free (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_unref (entry); - } - - g_slist_free (entries); - - g_object_unref (client); - g_free (path); - - manager = empathy_account_manager_dup_singleton (); - empathy_account_manager_remove (manager, account); - g_object_unref (account); - g_object_unref (manager); -} -#endif diff --git a/tests/check-empathy-helpers.h b/tests/check-empathy-helpers.h deleted file mode 100644 index 665e7e256..000000000 --- a/tests/check-empathy-helpers.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * 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 <telepathy-glib/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); -TpAccount * get_test_account (void); -void destroy_test_account (TpAccount *account); - -#endif /* #ifndef __CHECK_EMPATHY_HELPERS_H__ */ diff --git a/tests/empathy-chatroom-test.c b/tests/empathy-chatroom-test.c index 77d0c29e9..3826411a5 100644 --- a/tests/empathy-chatroom-test.c +++ b/tests/empathy-chatroom-test.c @@ -2,7 +2,6 @@ #include <stdio.h> #include <string.h> -#include "check-empathy-helpers.h" #include "test-helper.h" #include <libempathy/empathy-chatroom.h> diff --git a/tests/empathy-irc-network-manager-test.c b/tests/empathy-irc-network-manager-test.c index 274bf00f2..711cdb22c 100644 --- a/tests/empathy-irc-network-manager-test.c +++ b/tests/empathy-irc-network-manager-test.c @@ -4,7 +4,6 @@ #include <glib/gstdio.h> #include "check-irc-helper.h" -#include "check-empathy-helpers.h" #include "test-helper.h" #include <libempathy/empathy-irc-network-manager.h> diff --git a/tests/test-helper.c b/tests/test-helper.c index 37fad86eb..8b6cc2937 100644 --- a/tests/test-helper.c +++ b/tests/test-helper.c @@ -1,3 +1,22 @@ +/* + * test-helper.c - Source for some test helper functions + * Copyright (C) 2007-2009 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 <stdlib.h> #include <glib.h> #include <glib-object.h> @@ -17,3 +36,143 @@ test_deinit (void) { ; } + +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); + g_assert (result); + + file = get_user_xml_file (dest); + result = g_file_set_contents (file, buffer, length, NULL); + g_assert (result); + + g_free (sample); + g_free (file); + g_free (buffer); +} + +#if 0 +EmpathyAccount * +get_test_account (void) +{ + McProfile *profile; + EmpathyAccountManager *account_manager; + EmpathyAccount *account; + GList *accounts; + + account_manager = empathy_account_manager_dup_singleton (); + profile = mc_profile_lookup ("test"); + accounts = mc_accounts_list_by_profile (profile); + if (g_list_length (accounts) == 0) + { + /* need to create a test account */ + account = empathy_account_manager_create_by_profile (account_manager, + profile); + } + else + { + /* reuse an existing test account */ + McAccount *mc_account; + mc_account = accounts->data; + account = empathy_account_manager_lookup (account_manager, + mc_account_get_unique_name (mc_account)); + } + g_object_unref (account_manager); + + g_object_unref (profile); + + return account; +} + +/* Not used for now as there is no API to remove completely gconf keys. + * So we reuse existing accounts instead of creating new ones */ +void +destroy_test_account (EmpathyAccount *account) +{ + GConfClient *client; + gchar *path; + GError *error = NULL; + GSList *entries = NULL, *l; + EmpathyAccountManager *manager; + + client = gconf_client_get_default (); + path = g_strdup_printf ("/apps/telepathy/mc/accounts/%s", + empathy_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); + } + + g_free (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_unref (entry); + } + + g_slist_free (entries); + + g_object_unref (client); + g_free (path); + + manager = empathy_account_manager_dup_singleton (); + empathy_account_manager_remove (manager, account); + g_object_unref (account); + g_object_unref (manager); +} +#endif diff --git a/tests/test-helper.h b/tests/test-helper.h index a2a69b764..67e371edc 100644 --- a/tests/test-helper.h +++ b/tests/test-helper.h @@ -1,9 +1,37 @@ +/* + * test-helper.h - Header for some test helper functions + * Copyright (C) 2007-2009 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 __TEST_HELPER_H__ #define __TEST_HELPER_H__ +#include <telepathy-glib/account.h> + void test_init (int argc, char **argv); void test_deinit (void); +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); +TpAccount * get_test_account (void); +void destroy_test_account (TpAccount *account); + + #endif |