]> git.0d.be Git - empathy.git/commitdiff
add remove_account_from_gconf to check-helpers
authorXavier Claessens <xclaesse@src.gnome.org>
Mon, 13 Oct 2008 07:54:09 +0000 (07:54 +0000)
committerXavier Claessens <xclaesse@src.gnome.org>
Mon, 13 Oct 2008 07:54:09 +0000 (07:54 +0000)
svn path=/trunk/; revision=1550

tests/check-helpers.c
tests/check-helpers.h

index 8cd46388c13c8a5dcd2a04e00ec5524905d5598f..276cf11b28eadd533a02fbc5773b9a0b98ffa76b 100644 (file)
 #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);
+}
index 85cebc1b3ecd978912a4624b23a615acd617ad83..4e91b3124faa73cb54adf995048ac4dc922a853b 100644 (file)
@@ -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__ */