[Galago-commits] r2333 - in trunk/libgalago: . tests
galago-commits at freedesktop.org
galago-commits at freedesktop.org
Sun Nov 20 02:55:13 PST 2005
Author: chipx86
Date: 2005-11-20 02:54:39 -0800 (Sun, 20 Nov 2005)
New Revision: 2333
Modified:
trunk/libgalago/ChangeLog
trunk/libgalago/tests/check-libgalago.c
Log:
Improve the unit tests to compare class-provided signatures and the actual signatures going into a DBusMessage. Also added some utility functions for creating dummy objects.
Modified: trunk/libgalago/ChangeLog
===================================================================
--- trunk/libgalago/ChangeLog 2005-11-20 09:31:04 UTC (rev 2332)
+++ trunk/libgalago/ChangeLog 2005-11-20 10:54:39 UTC (rev 2333)
@@ -1,3 +1,10 @@
+Sun Nov 20 02:53:50 PST 2005 Christian Hammond <chipx86 at chipx86.com>
+
+ * tests/check-libgalago.c:
+ - Improve the unit tests to compare class-provided signatures and
+ the actual signatures going into a DBusMessage. Also added some
+ utility functions for creating dummy objects.
+
Sun Nov 20 01:30:24 PST 2005 Christian Hammond <chipx86 at chipx86.com>
* libgalago/galago-service.c:
Modified: trunk/libgalago/tests/check-libgalago.c
===================================================================
--- trunk/libgalago/tests/check-libgalago.c 2005-11-20 09:31:04 UTC (rev 2332)
+++ trunk/libgalago/tests/check-libgalago.c 2005-11-20 10:54:39 UTC (rev 2333)
@@ -24,55 +24,143 @@
#include <stdio.h>
#include <stdarg.h>
+static GalagoPerson *
+make_dummy_person(void)
+{
+ return galago_create_person("dummy-person");
+}
+static GalagoService *
+make_dummy_service(void)
+{
+ return galago_create_service("dummy-service", "Dummy Service", 0);
+}
+
+static GalagoAccount *
+make_dummy_account(void)
+{
+ GalagoPerson *person = make_dummy_person();
+ GalagoService *service = make_dummy_service();
+
+ return galago_service_create_account(service, person, "dummy-account");
+}
+
+static GalagoImage *
+make_dummy_image(void)
+{
+ return galago_image_new_from_file("avatar.png");
+}
+
+static GalagoPresence *
+make_dummy_presence(void)
+{
+ return galago_account_create_presence(make_dummy_account());
+}
+
+static GalagoStatus *
+make_dummy_status(void)
+{
+ return galago_status_new(GALAGO_STATUS_AWAY, "away", "Away", TRUE);
+}
+
/**************************************************************************
* libgalago tests
**************************************************************************/
+START_TEST(test_create_person)
+{
+ galago_init("check-libgalago", FALSE);
+ fail_unless(make_dummy_person() != NULL, "Unable to create person");
+}
+END_TEST
+
+START_TEST(test_create_service)
+{
+ galago_init("check-libgalago", FALSE);
+ fail_unless(make_dummy_service() != NULL, "Unable to create service");
+}
+END_TEST
+
+START_TEST(test_create_account)
+{
+ galago_init("check-libgalago", FALSE);
+ fail_unless(make_dummy_account() != NULL, "Unable to create account");
+}
+END_TEST
+
+static void
+test_signature(GType type, GalagoObject *object)
+{
+ DBusMessage *message;
+ DBusMessageIter iter;
+ const char *obj_sig;
+ char *sig;
+
+ fail_unless(object != NULL, "Object was NULL");
+ fail_unless(GALAGO_IS_OBJECT(object), "Object was not a GalagoObject");
+
+ message = dbus_message_new_method_call(GALAGO_DBUS_SERVICE,
+ "/foo", "foo.bar", "foobar");
+ fail_unless(message != NULL, "Message was unable to be created");
+
+ obj_sig = galago_object_type_get_dbus_signature(type);
+ fail_unless(obj_sig != NULL, "D-BUS signature is NULL");
+
+ dbus_message_iter_init_append(message, &iter);
+ galago_dbus_message_iter_append_object(&iter, GALAGO_OBJECT(object));
+
+ dbus_message_iter_init(message, &iter);
+ sig = dbus_message_iter_get_signature(&iter);
+ fail_unless(sig != NULL, "Unable to retrieve signature from iterator");
+
+ fail_unless(!strcmp(sig, obj_sig),
+ "Class-provided signature ('%s') does not match "
+ "iterator-provided signature ('%s')",
+ obj_sig, sig);
+
+ g_free(sig);
+ g_object_unref(G_OBJECT(object));
+ dbus_message_unref(message);
+}
+
START_TEST(test_dbus_signature_account)
{
- fail_unless(
- galago_object_type_get_dbus_signature(GALAGO_TYPE_ACCOUNT) != NULL,
- "GalagoAccount's D-BUS signature is NULL");
+ galago_init("check-libgalago", FALSE);
+ test_signature(GALAGO_TYPE_ACCOUNT, GALAGO_OBJECT(make_dummy_account()));
}
END_TEST
START_TEST(test_dbus_signature_image)
{
- fail_unless(
- galago_object_type_get_dbus_signature(GALAGO_TYPE_IMAGE) != NULL,
- "GalagoImage's D-BUS signature is NULL");
+ galago_init("check-libgalago", FALSE);
+ test_signature(GALAGO_TYPE_IMAGE, GALAGO_OBJECT(make_dummy_image()));
}
END_TEST
START_TEST(test_dbus_signature_person)
{
- fail_unless(
- galago_object_type_get_dbus_signature(GALAGO_TYPE_PERSON) != NULL,
- "GalagoPerson's D-BUS signature is NULL");
+ galago_init("check-libgalago", FALSE);
+ test_signature(GALAGO_TYPE_PERSON, GALAGO_OBJECT(make_dummy_person()));
}
END_TEST
START_TEST(test_dbus_signature_presence)
{
- fail_unless(
- galago_object_type_get_dbus_signature(GALAGO_TYPE_PRESENCE) != NULL,
- "GalagoPresence's D-BUS signature is NULL");
+ galago_init("check-libgalago", FALSE);
+ test_signature(GALAGO_TYPE_PRESENCE, GALAGO_OBJECT(make_dummy_presence()));
}
END_TEST
START_TEST(test_dbus_signature_service)
{
- fail_unless(
- galago_object_type_get_dbus_signature(GALAGO_TYPE_SERVICE) != NULL,
- "GalagoService's D-BUS signature is NULL");
+ galago_init("check-libgalago", FALSE);
+ test_signature(GALAGO_TYPE_SERVICE, GALAGO_OBJECT(make_dummy_service()));
}
END_TEST
START_TEST(test_dbus_signature_status)
{
- fail_unless(
- galago_object_type_get_dbus_signature(GALAGO_TYPE_STATUS) != NULL,
- "GalagoStatus's D-BUS signature is NULL");
+ galago_init("check-libgalago", FALSE);
+ test_signature(GALAGO_TYPE_STATUS, GALAGO_OBJECT(make_dummy_status()));
}
END_TEST
@@ -115,8 +203,13 @@
ADD_TCASE("core", test_core);
/* libgalago tests */
- ADD_TCASE("init_reinit", test_init_reinit); /* This MUST run first! */
+ ADD_TCASE("init_reinit", test_init_reinit);
+ /* Test object creation */
+ ADD_TCASE("create_person", test_create_person);
+ ADD_TCASE("create_service", test_create_service);
+ ADD_TCASE("create_account", test_create_account);
+
/* Test D-BUS object signature support */
ADD_TCASE("dbus_signature_account", test_dbus_signature_account);
ADD_TCASE("dbus_signature_image", test_dbus_signature_image);
More information about the galago-commits
mailing list