aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/cal-client/client-test.c
diff options
context:
space:
mode:
authorFederico Mena Quintero <federico@helixcode.com>2000-08-08 05:38:28 +0800
committerFederico Mena Quintero <federico@src.gnome.org>2000-08-08 05:38:28 +0800
commit4de1f796a496703b01bcc0a8245030e4fbc378b8 (patch)
tree9817b8c5b886275946ae6aba5fc3b4f643ec82b4 /calendar/cal-client/client-test.c
parent3d4dc806bfa5832e7d91218b50512e672e377791 (diff)
downloadgsoc2013-evolution-4de1f796a496703b01bcc0a8245030e4fbc378b8.tar.gz
gsoc2013-evolution-4de1f796a496703b01bcc0a8245030e4fbc378b8.tar.zst
gsoc2013-evolution-4de1f796a496703b01bcc0a8245030e4fbc378b8.zip
Big sync. Disable calendar compilation for a few hours - Federico
2000-08-07 Federico Mena Quintero <federico@helixcode.com> * cal-util/cal-component.c (cal_component_get_as_string): Doh, libical owns the string's memory, so do not free it. * cal-client/client-test.c (create_client): Connect to the destroy signal of the client here. * cal-client/test.ics: New test file, modified from Eric Busboom's test file from RFC 2445. 2000-08-05 Federico Mena Quintero <federico@helixcode.com> * cal-client/client-test.c (dump_component): This was gone for some reason. (main): Load a new test file. 2000-08-04 Federico Mena Quintero <federico@helixcode.com> * cal-util/cal-component.c (cal_component_commit_sequence): New function to commit changes to the SEQUENCE property. (cal_component_get_as_string): Ensure that the sequence has been committed. * cal-client/cal-client.c (cal_client_get_object): Use CalComponent instead of the old iCalObject. (cal_client_update_object): Use iCalObject. Commit the SEQUENCE property before stringifying the object and piping it over to the Wombat. svn path=/trunk/; revision=4585
Diffstat (limited to 'calendar/cal-client/client-test.c')
-rw-r--r--calendar/cal-client/client-test.c118
1 files changed, 75 insertions, 43 deletions
diff --git a/calendar/cal-client/client-test.c b/calendar/cal-client/client-test.c
index f8741f4539..7f79b58266 100644
--- a/calendar/cal-client/client-test.c
+++ b/calendar/cal-client/client-test.c
@@ -1,8 +1,29 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/* Evolution calendar client - test program
+ *
+ * Copyright (C) 2000 Helix Code, Inc.
+ *
+ * Author: Federico Mena-Quintero <federico@helixcode.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+ */
+
#include <config.h>
#include <bonobo.h>
#include <gnome.h>
#include <cal-client/cal-client.h>
+
static CalClient *client1;
static CalClient *client2;
@@ -21,6 +42,26 @@ cl_printf (CalClient *client, const char *format, ...)
va_end (args);
}
+/* Dumps some interesting data from a component */
+static void
+dump_component (CalComponent *comp)
+{
+ const char *uid;
+ CalComponentText summary;
+
+ cal_component_get_uid (comp, &uid);
+
+ printf ("UID %s\n", uid);
+
+ cal_component_get_summary (comp, &summary);
+ if (summary.value)
+ printf ("\tSummary: `%s', altrep `%s'\n",
+ summary.value,
+ summary.altrep ? summary.altrep : "NONE");
+ else
+ printf ("\tNo summary\n");
+}
+
/* Lists the UIDs of objects in a calendar, called as an idle handler */
static gboolean
list_uids (gpointer data)
@@ -49,22 +90,20 @@ list_uids (gpointer data)
for (l = uids; l; l = l->next) {
char *uid;
- iCalObject *ico;
+ CalComponent *comp;
CalClientGetStatus status;
uid = l->data;
- status = cal_client_get_object (client, uid, &ico);
+ status = cal_client_get_object (client, uid, &comp);
if (status == CAL_CLIENT_GET_SUCCESS) {
printf ("------------------------------\n");
- dump_icalobject (ico);
+ dump_component (comp);
printf ("------------------------------\n");
+ gtk_object_unref (GTK_OBJECT (comp));
} else {
printf ("FAILED: %d\n", status);
}
-
- // cal_client_update_object (client, uid, calobj);
- // g_free (calobj);
}
}
@@ -98,32 +137,50 @@ obj_updated (CalClient *client, const char *uid, gpointer data)
cl_printf (client, "Object updated: %s\n", uid);
}
+/* Callback used when a client is destroyed */
+static void
+client_destroy_cb (GtkObject *object, gpointer data)
+{
+ if (CAL_CLIENT (object) == client1)
+ client1 = NULL;
+ else if (CAL_CLIENT (object) == client2)
+ client2 = NULL;
+ else
+ g_assert_not_reached ();
+
+ if (!client1 && !client2)
+ gtk_main_quit ();
+}
+
/* Creates a calendar client and tries to load the specified URI into it */
-static CalClient *
-create_client (const char *uri, gboolean load)
+static void
+create_client (CalClient **client, const char *uri, gboolean load)
{
- CalClient *client;
gboolean result;
- client = cal_client_new ();
- if (!client) {
+ *client = cal_client_new ();
+ if (!*client) {
g_message ("create_client(): could not create the client");
exit (1);
}
- gtk_signal_connect (GTK_OBJECT (client), "cal_loaded",
+ gtk_signal_connect (GTK_OBJECT (*client), "destroy",
+ client_destroy_cb,
+ NULL);
+
+ gtk_signal_connect (GTK_OBJECT (*client), "cal_loaded",
GTK_SIGNAL_FUNC (cal_loaded),
NULL);
- gtk_signal_connect (GTK_OBJECT (client), "obj_updated",
+ gtk_signal_connect (GTK_OBJECT (*client), "obj_updated",
GTK_SIGNAL_FUNC (obj_updated),
NULL);
printf ("Calendar loading `%s'...\n", uri);
if (load)
- result = cal_client_load_calendar (client, uri);
+ result = cal_client_load_calendar (*client, uri);
else
- result = cal_client_create_calendar (client, uri);
+ result = cal_client_create_calendar (*client, uri);
if (!result) {
g_message ("create_client(): failure when issuing calendar %s request `%s'",
@@ -131,23 +188,6 @@ create_client (const char *uri, gboolean load)
uri);
exit (1);
}
-
- return client;
-}
-
-/* Callback used when a client is destroyed */
-static void
-client_destroy_cb (GtkObject *object, gpointer data)
-{
- if (CAL_CLIENT (object) == client1)
- client1 = NULL;
- else if (CAL_CLIENT (object) == client2)
- client2 = NULL;
- else
- g_assert_not_reached ();
-
- if (!client1 && !client2)
- gtk_main_quit ();
}
#ifdef USING_OAF
@@ -195,17 +235,9 @@ main (int argc, char **argv)
exit (1);
}
- client1 = create_client ("/cvs/evolution/calendar/gui/test2.vcf", TRUE);
- gtk_signal_connect (GTK_OBJECT (client1), "destroy",
- client_destroy_cb,
- NULL);
-
- client2 = create_client ("/cvs/evolution/calendar/gui/test2.vcf", FALSE);
- gtk_signal_connect (GTK_OBJECT (client2), "destroy",
- client_destroy_cb,
- NULL);
+ create_client (&client1, "/cvs/evolution/calendar/cal-client/test.ics", TRUE);
+ create_client (&client2, "/cvs/evolution/calendar/cal-client/test.ics", FALSE);
bonobo_main ();
-
return 0;
}