[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