aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test11.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test11.c')
-rw-r--r--tests/test11.c91
1 files changed, 39 insertions, 52 deletions
diff --git a/tests/test11.c b/tests/test11.c
index 1cc778bda1..beb706dca1 100644
--- a/tests/test11.c
+++ b/tests/test11.c
@@ -26,45 +26,6 @@ auth_callback(char *prompt, gboolean secret,
return NULL;
}
-struct search_data {
- CamelFolder *folder;
- CamelFolder *outbox;
- CamelException *ex;
-};
-
-static void
-search_cb(CamelFolder *folder, int id, gboolean complete, GList *matches, struct search_data *sd)
-{
- GList *n;
- printf("search found matches:\n");
- n = matches;
- while (n) {
- CamelMimeMessage *m;
-
- printf("uid: %s\n", (char *) n->data);
- m = camel_folder_get_message_by_uid(sd->folder, n->data, sd->ex);
-
- if (camel_exception_get_id (sd->ex)) {
- printf ("Cannot get message\n"
- "Full description : %s\n", camel_exception_get_description (sd->ex));
- } else {
-
- camel_folder_append_message(sd->outbox, m, sd->ex);
-
- if (camel_exception_get_id (sd->ex)) {
- printf ("Cannot save message\n"
- "Full description : %s\n", camel_exception_get_description (sd->ex));
- }
- }
- n = g_list_next(n);
- }
-
- if (complete) {
- camel_folder_close (sd->folder, FALSE, sd->ex);
- gtk_exit(0);
- }
-}
-
int
main (int argc, char**argv)
{
@@ -73,16 +34,20 @@ main (int argc, char**argv)
CamelStore *store;
gchar *store_url = "mbox:///tmp/evmail";
CamelFolder *folder, *outbox;
- struct search_data *sd;
+ GList *n, *matches;
gtk_init (&argc, &argv);
camel_init ();
ex = camel_exception_new ();
- sd = g_malloc0(sizeof(*sd));
- sd->ex = ex;
-
session = camel_session_new (auth_callback);
+
+ camel_provider_load (session, "../camel/providers/mbox/.libs/libcamelmbox.so.0", ex);
+ if (camel_exception_get_id (ex)) {
+ printf ("Exceptions suck\n");
+ 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"
@@ -116,18 +81,40 @@ main (int argc, char**argv)
camel_folder_open (outbox, FOLDER_OPEN_WRITE, ex);
- sd->folder = folder;
- sd->outbox = outbox;
-
printf("Search for messages\n");
- camel_folder_search_by_expression (folder,
- "(match-all (header-contains \"subject\" \"gnome\"))",
- (CamelSearchFunc*)search_cb,
- sd,
- ex);
+ matches = camel_folder_search_by_expression (folder,
+ "(match-all (header-contains \"subject\" \"gnome\"))",
+ ex);
+
+ printf("search found matches:\n");
+ n = matches;
+ while (n) {
+ CamelMimeMessage *m;
+
+ printf("uid: %s\n", (char *) n->data);
+ 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));
+ } else {
+
+ camel_folder_append_message(outbox, m, ex);
+
+ if (camel_exception_get_id (ex)) {
+ printf ("Cannot save message\n"
+ "Full description : %s\n", camel_exception_get_description (ex));
+ }
+
+ 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);*/
+ }
+ n = g_list_next(n);
+ }
- gtk_main();
+ camel_folder_close (folder, TRUE, ex);
return 0;
}