[next] telepathy-glib: add test-tls-certificate

Xavier Claessens xclaesse at kemper.freedesktop.org
Wed May 9 13:10:48 PDT 2012


Module: telepathy-glib
Branch: next
Commit: bb29e6e5e47ad09b77ae2fe6c75f22f96d1758f5
URL:    http://cgit.freedesktop.org/telepathy/telepathy-glib/commit/?id=bb29e6e5e47ad09b77ae2fe6c75f22f96d1758f5

Author: Guillaume Desmottes <guillaume.desmottes at collabora.co.uk>
Date:   Wed Apr 18 11:37:16 2012 +0200

add test-tls-certificate

---

 tests/dbus/Makefile.am       |    3 +
 tests/dbus/tls-certificate.c |  115 ++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 118 insertions(+), 0 deletions(-)

diff --git a/tests/dbus/Makefile.am b/tests/dbus/Makefile.am
index 79d89ec..4300db8 100644
--- a/tests/dbus/Makefile.am
+++ b/tests/dbus/Makefile.am
@@ -60,6 +60,7 @@ tests_list = \
     test-text-channel \
     test-text-mixin \
     test-text-respawn \
+    test-tls-certificate \
     test-unsupported-interface
 
 if ENABLE_INSTALLED_TESTS
@@ -257,6 +258,8 @@ test_debug_client_SOURCES = debug-client.c
 
 test_room_list_SOURCES = room-list.c
 
+test_tls_certificate_SOURCES = tls-certificate.c
+
 check_c_sources = *.c
 include $(top_srcdir)/tools/check-coding-style.mk
 check-local: check-coding-style
diff --git a/tests/dbus/tls-certificate.c b/tests/dbus/tls-certificate.c
new file mode 100644
index 0000000..e3b003b
--- /dev/null
+++ b/tests/dbus/tls-certificate.c
@@ -0,0 +1,115 @@
+/* Tests of TpTLSCertificate
+ *
+ * Copyright © 2012 Collabora Ltd. <http://www.collabora.co.uk/>
+ *
+ * Copying and distribution of this file, with or without modification,
+ * are permitted in any medium without royalty provided the copyright
+ * notice and this notice are preserved.
+ */
+
+#include "config.h"
+
+#include <string.h>
+
+#include <telepathy-glib/telepathy-glib.h>
+
+#include "tests/lib/contacts-conn.h"
+#include "tests/lib/tls-certificate.h"
+#include "tests/lib/util.h"
+
+typedef struct {
+    GMainLoop *mainloop;
+    TpDBusDaemon *dbus;
+
+    /* Service side objects */
+    TpBaseConnection *base_connection;
+    TpTestsTLSCertificate *service_cert;
+
+    /* Client side objects */
+    TpConnection *connection;
+    TpTLSCertificate *cert;
+
+    GError *error /* initialized where needed */;
+    gint wait;
+} Test;
+
+
+static void
+setup (Test *test,
+       gconstpointer data)
+{
+  gchar *path;
+  GPtrArray *chain_data;
+  GArray *cert;
+
+  test->mainloop = g_main_loop_new (NULL, FALSE);
+  test->dbus = tp_tests_dbus_daemon_dup_or_die ();
+
+  test->error = NULL;
+
+  /* Create (service and client sides) connection objects */
+  tp_tests_create_and_connect_conn (TP_TESTS_TYPE_CONTACTS_CONNECTION,
+      "me at test.com", &test->base_connection, &test->connection);
+
+  path = g_strdup_printf ("%s/TlsCertificate",
+      tp_proxy_get_object_path (test->connection));
+
+  chain_data = g_ptr_array_new_with_free_func ((GDestroyNotify) g_array_unref);
+
+  cert = g_array_new (TRUE, TRUE, sizeof (guchar));
+  g_array_append_vals (cert, "BADGER", 6);
+  g_ptr_array_add (chain_data, cert);
+
+  test->service_cert = g_object_new (TP_TESTS_TYPE_TLS_CERTIFICATE,
+      "object-path", path,
+      "certificate-type", "x509",
+      "certificate-chain-data", chain_data,
+      "dbus-daemon", test->dbus,
+      NULL);
+
+  g_ptr_array_unref (chain_data);
+
+  test->cert = tp_tls_certificate_new (TP_PROXY (test->connection), path,
+      &test->error);
+  g_assert_no_error (test->error);
+
+  g_free (path);
+}
+
+static void
+teardown (Test *test,
+          gconstpointer data)
+{
+  g_clear_error (&test->error);
+
+  tp_clear_object (&test->dbus);
+  g_main_loop_unref (test->mainloop);
+  test->mainloop = NULL;
+
+  tp_clear_object (&test->service_cert);
+  tp_clear_object (&test->cert);
+
+  tp_tests_connection_assert_disconnect_succeeds (test->connection);
+  g_object_unref (test->connection);
+  g_object_unref (test->base_connection);
+}
+
+static void
+test_creation (Test *test,
+    gconstpointer data G_GNUC_UNUSED)
+{
+  g_assert (TP_IS_TLS_CERTIFICATE (test->cert));
+}
+
+int
+main (int argc,
+      char **argv)
+{
+  tp_tests_init (&argc, &argv);
+  g_test_bug_base ("http://bugs.freedesktop.org/show_bug.cgi?id=");
+
+  g_test_add ("/tls-certificate/creation", Test, NULL, setup,
+      test_creation, teardown);
+
+  return g_test_run ();
+}



More information about the telepathy-commits mailing list