aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Zucci <zucchi@src.gnome.org>2000-05-20 00:17:13 +0800
committerMichael Zucci <zucchi@src.gnome.org>2000-05-20 00:17:13 +0800
commitae208c7e8ff0463666c52392553af2572a8ee9b5 (patch)
treeeeccba976c4f17fca2c479cce3c14c9b657e2775
parentcfcf5e016ca8acab994c301101280331cab54a0d (diff)
downloadgsoc2013-evolution-ae208c7e8ff0463666c52392553af2572a8ee9b5.tar.gz
gsoc2013-evolution-ae208c7e8ff0463666c52392553af2572a8ee9b5.tar.zst
gsoc2013-evolution-ae208c7e8ff0463666c52392553af2572a8ee9b5.zip
A little vfolder test.
svn path=/trunk/; revision=3137
-rw-r--r--tests/Makefile.am8
-rw-r--r--tests/test11.c16
-rw-r--r--tests/test14.c177
3 files changed, 197 insertions, 4 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 4f8214829b..8ce3cffb3d 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -34,6 +34,13 @@ LDADD = \
# $(GNOME_LIBDIR) \
# $(GNOMEUI_LIBS) $(INTLLIBS) $(EXTRA_GNOME_LIBS)
+test14_LDADD = \
+ $(top_builddir)/camel/providers/vee/libcamelvee.la \
+ $(top_builddir)/camel/libcamel.la \
+ $(top_builddir)/libibex/libibex.la \
+ $(GNOME_LIBDIR) \
+ $(GNOMEUI_LIBS) $(INTLLIBS) $(EXTRA_GNOME_LIBS)
+
#test12_LDADD = \
# $(top_builddir)/camel/libcamel.la \
# $(top_builddir)/camel/providers/nntp/libcamelnntp.la \
@@ -61,6 +68,7 @@ noinst_PROGRAMS = \
test10 \
test11 \
test13 \
+ test14 \
test-movemail \
test-url \
$(THREAD_RELATED_TESTS)
diff --git a/tests/test11.c b/tests/test11.c
index 25f7d88928..1323a5f90b 100644
--- a/tests/test11.c
+++ b/tests/test11.c
@@ -44,7 +44,7 @@ main (int argc, char**argv)
camel_provider_load (session, "../camel/providers/mbox/.libs/libcamelmbox.so.0", ex);
if (camel_exception_get_id (ex)) {
- printf ("Exceptions suck\n");
+ printf ("Exceptions suck: %s\n", camel_exception_get_description (ex));
return 1;
}
@@ -94,13 +94,15 @@ main (int argc, char**argv)
CamelMimeMessage *m;
printf("uid: %s\n", (char *) n->data);
-#if 0
m = camel_folder_get_message_by_uid(folder, n->data, ex);
if (camel_exception_get_id (ex)) {
printf ("Cannot get message\n"
"Full description : %s\n", camel_exception_get_description (ex));
+ camel_exception_init(ex);
} else {
+
+#if 1
camel_folder_append_message(outbox, m, ex);
@@ -112,14 +114,20 @@ main (int argc, char**argv)
printf("Removing matching message from source folder?\n");
camel_mime_message_set_flags(m, CAMEL_MESSAGE_DELETED, CAMEL_MESSAGE_DELETED);
/* camel_mime_message_set_flags(m, CAMEL_MESSAGE_ANSWERED, CAMEL_MESSAGE_ANSWERED);*/
- }
- camel_mime_message_unref(m);
#endif
+
+ }
+ if (m)
+ gtk_object_unref(m);
n = g_list_next(n);
}
+ camel_folder_close (outbox, TRUE, ex);
camel_folder_close (folder, TRUE, ex);
+ gtk_object_unref((GtkObject *)outbox);
+ gtk_object_unref((GtkObject *)folder);
+
return 0;
}
diff --git a/tests/test14.c b/tests/test14.c
new file mode 100644
index 0000000000..80963415db
--- /dev/null
+++ b/tests/test14.c
@@ -0,0 +1,177 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+
+/*
+ Test vfolder.
+ */
+
+
+#include <camel/camel.h>
+#include <camel/camel-exception.h>
+#include <camel/camel-folder.h>
+#include <camel/providers/vee/camel-vee-folder.h>
+#include <camel/md5-utils.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <errno.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <glib.h>
+
+static void
+dump_message_content(CamelDataWrapper *object)
+{
+ CamelDataWrapper *containee;
+ CamelStream *stream;
+ int parts, i;
+ int len;
+ int left;
+ char buffer[128];
+
+ printf("Dumping message ...");
+
+ containee = camel_medium_get_content_object(CAMEL_MEDIUM(object));
+
+ if (containee) {
+ char *type = gmime_content_field_get_mime_type(containee->mime_type);
+
+ printf("type = %s\n", type);
+
+ if (CAMEL_IS_MULTIPART(containee)) {
+ parts = camel_multipart_get_number (CAMEL_MULTIPART(containee));
+ printf("multipart message, scanning contents %d parts ...\n", parts);
+ for (i=0;i<parts;i++) {
+ dump_message_content(CAMEL_DATA_WRAPPER (camel_multipart_get_part(CAMEL_MULTIPART(containee), i)));
+ }
+ } else if (CAMEL_IS_MIME_MESSAGE(containee)) {
+ dump_message_content((CamelDataWrapper *)containee);
+ } else {
+ stream = camel_data_wrapper_get_output_stream(containee);
+ left = 0;
+
+ if (stream) {
+ while ( (len = camel_stream_read(stream, buffer+left, sizeof(buffer)-left, NULL)) > 0) {
+ fwrite(buffer, len, 1, stdout);
+ }
+ printf("\n");
+ } else {
+ g_warning("cannot get stream for message?");
+ }
+ }
+
+ g_free(type);
+ } else {
+ printf("no containee?\n");
+ }
+}
+
+
+static char *
+auth_callback(char *prompt, gboolean secret,
+ CamelService *service, char *item,
+ CamelException *ex)
+{
+ printf ("auth_callback called: %s\n", prompt);
+ return NULL;
+}
+
+int
+main (int argc, char**argv)
+{
+ CamelSession *session;
+ CamelException *ex;
+ CamelStore *store;
+ gchar *store_url = "vfolder:";
+ CamelFolder *folder;
+ GList *n, *matches;
+
+ gtk_init (&argc, &argv);
+ camel_init ();
+ ex = camel_exception_new ();
+
+ session = camel_session_new (auth_callback);
+
+ camel_provider_load (session, "../camel/providers/vee/.libs/libcamelvee.so.0", ex);
+ if (camel_exception_get_id (ex)) {
+ printf ("Exceptions suck: %s\n", camel_exception_get_description (ex));
+ return 1;
+ }
+
+ store = camel_session_get_store (session, store_url, ex);
+ if (camel_exception_get_id (ex)) {
+ printf ("Exception caught in camel_session_get_store\n"
+ "Full description : %s\n", camel_exception_get_description (ex));
+ return -1;
+ }
+
+ printf("get folder\n");
+
+ folder = camel_store_get_folder (store, "gnome_email?(match-all (header-contains \"subject\" \"gnome\"))", ex);
+ if (camel_exception_get_id (ex)) {
+ printf ("Exception caught in camel_store_get_folder\n"
+ "Full description : %s\n", camel_exception_get_description (ex));
+ return -1;
+ }
+
+ /* setup searched folders */
+ {
+ CamelFolder *subfolder;
+ CamelStore *substore;
+
+ substore = camel_session_get_store (session, "mbox:///home/notzed/evolution/local/Inbox", ex);
+ subfolder = camel_store_get_folder(substore, "mbox", ex);
+ camel_folder_open (subfolder, FOLDER_OPEN_READ, ex);
+ camel_vee_folder_add_folder(folder, subfolder);
+
+ if (camel_exception_get_id (ex)) {
+ printf ("Exception caught in camel_store_get_folder\n"
+ "Full description : %s\n", camel_exception_get_description (ex));
+ return -1;
+ }
+
+ substore = camel_session_get_store (session, "mbox:///home/notzed/evolution/local/Outbox", ex);
+ subfolder = camel_store_get_folder(substore, "mbox", ex);
+ camel_folder_open (subfolder, FOLDER_OPEN_READ, ex);
+ camel_vee_folder_add_folder(folder, subfolder);
+
+ if (camel_exception_get_id (ex)) {
+ printf ("Exception caught in camel_store_get_folder\n"
+ "Full description : %s\n", camel_exception_get_description (ex));
+ return -1;
+ }
+ }
+
+ printf("open folder\n");
+
+ camel_folder_open (folder, FOLDER_OPEN_READ, ex);
+ if (camel_exception_get_id (ex)) {
+ printf ("Exception caught when trying to open the folder\n"
+ "Full description : %s\n", camel_exception_get_description (ex));
+ return -1;
+ }
+
+ printf("vfolder's uid's:\n");
+ n = camel_folder_get_uid_list(folder, ex);
+ while (n) {
+ CamelMimeMessage *m;
+
+ printf("uid: %s\n", (char *) n->data);
+
+ m = camel_folder_get_message_by_uid(folder, n->data, ex);
+ if (m) {
+ dump_message_content(m);
+ gtk_object_unref(m);
+ }
+ n = g_list_next(n);
+ }
+
+ camel_folder_close (folder, TRUE, ex);
+
+ gtk_object_unref((GtkObject *)folder);
+
+ return 0;
+}
+
+
+
+