diff options
author | Xavier Claessens <xclaesse@src.gnome.org> | 2008-10-13 15:54:23 +0800 |
---|---|---|
committer | Xavier Claessens <xclaesse@src.gnome.org> | 2008-10-13 15:54:23 +0800 |
commit | 44352aaa83077ed3853a74b65c486116653d10ac (patch) | |
tree | 80ef1953cbb30ed022d7cc8c47212382b0941ce9 /tests/check-empathy-helpers.c | |
parent | 566da7c05622e1463ef84967a2b81c295c113812 (diff) | |
download | gsoc2013-empathy-44352aaa83077ed3853a74b65c486116653d10ac.tar gsoc2013-empathy-44352aaa83077ed3853a74b65c486116653d10ac.tar.gz gsoc2013-empathy-44352aaa83077ed3853a74b65c486116653d10ac.tar.bz2 gsoc2013-empathy-44352aaa83077ed3853a74b65c486116653d10ac.tar.lz gsoc2013-empathy-44352aaa83077ed3853a74b65c486116653d10ac.tar.xz gsoc2013-empathy-44352aaa83077ed3853a74b65c486116653d10ac.tar.zst gsoc2013-empathy-44352aaa83077ed3853a74b65c486116653d10ac.zip |
move empathy specifc helpers to check-empathy-helpers
svn path=/trunk/; revision=1553
Diffstat (limited to 'tests/check-empathy-helpers.c')
-rw-r--r-- | tests/check-empathy-helpers.c | 124 |
1 files changed, 124 insertions, 0 deletions
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); +} |