aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXavier Claessens <xclaesse@src.gnome.org>2008-10-13 15:54:09 +0800
committerXavier Claessens <xclaesse@src.gnome.org>2008-10-13 15:54:09 +0800
commit847a1e698af32218b1e464180aa2268b2bf68df0 (patch)
tree5745a1794bdd7a36e1711150c8d8daff148f5f41
parent861c07c7e33e1a0145d9a46fa98e5b50e0cee19b (diff)
downloadgsoc2013-empathy-847a1e698af32218b1e464180aa2268b2bf68df0.tar
gsoc2013-empathy-847a1e698af32218b1e464180aa2268b2bf68df0.tar.gz
gsoc2013-empathy-847a1e698af32218b1e464180aa2268b2bf68df0.tar.bz2
gsoc2013-empathy-847a1e698af32218b1e464180aa2268b2bf68df0.tar.lz
gsoc2013-empathy-847a1e698af32218b1e464180aa2268b2bf68df0.tar.xz
gsoc2013-empathy-847a1e698af32218b1e464180aa2268b2bf68df0.tar.zst
gsoc2013-empathy-847a1e698af32218b1e464180aa2268b2bf68df0.zip
add remove_account_from_gconf to check-helpers
svn path=/trunk/; revision=1550
-rw-r--r--tests/check-helpers.c64
-rw-r--r--tests/check-helpers.h3
2 files changed, 67 insertions, 0 deletions
diff --git a/tests/check-helpers.c b/tests/check-helpers.c
index 8cd46388c..276cf11b2 100644
--- a/tests/check-helpers.c
+++ b/tests/check-helpers.c
@@ -20,6 +20,10 @@
#include <stdio.h>
#include <stdlib.h>
+#include <glib/gstdio.h>
+#include <gconf/gconf.h>
+#include <gconf/gconf-client.h>
+
#include "check-helpers.h"
static gboolean expecting_critical = FALSE;
@@ -97,3 +101,63 @@ copy_xml_file (const gchar *orig,
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 85cebc1b3..4e91b3124 100644
--- a/tests/check-helpers.h
+++ b/tests/check-helpers.h
@@ -21,6 +21,7 @@
#include <glib.h>
#include <check.h>
+#include <libmissioncontrol/mc-account.h>
void
check_helpers_init (void);
@@ -43,5 +44,7 @@ G_STMT_START { \
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__ */