[empathy] merge check-empathy-helpers to test-helper



commit d948dd18d07e799223057134557312885d0cad42
Author: Guillaume Desmottes <guillaume desmottes collabora co uk>
Date:   Thu Oct 29 16:01:44 2009 +0100

    merge check-empathy-helpers to test-helper

 tests/Makefile.am                        |    3 +-
 tests/check-empathy-helpers.c            |  169 ------------------------------
 tests/check-empathy-helpers.h            |   32 ------
 tests/empathy-chatroom-test.c            |    1 -
 tests/empathy-irc-network-manager-test.c |    1 -
 tests/test-helper.c                      |  159 ++++++++++++++++++++++++++++
 tests/test-helper.h                      |   28 +++++
 7 files changed, 188 insertions(+), 205 deletions(-)
---
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 61c6b78..7821d8d 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/empathy-chatroom-test.c b/tests/empathy-chatroom-test.c
index 77d0c29..3826411 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 274bf00..711cdb2 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 37fad86..8b6cc29 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 a2a69b7..67e371e 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



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]