diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/Makefile.am | 1 | ||||
-rw-r--r-- | tests/test11.c | 89 |
2 files changed, 90 insertions, 0 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am index 441837288d..e437f42fa7 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -38,5 +38,6 @@ noinst_PROGRAMS = \ test7 \ test9 \ test10 \ + test11 \ test-formatter \ $(THREAD_RELATED_TESTS) diff --git a/tests/test11.c b/tests/test11.c new file mode 100644 index 0000000000..69b88c7ad4 --- /dev/null +++ b/tests/test11.c @@ -0,0 +1,89 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + Test search api + */ + + +#include "camel.h" +#include "camel-mbox-folder.h" +#include "camel-mbox-parser.h" +#include "camel-mbox-utils.h" +#include "camel-mbox-summary.h" +#include "camel-log.h" +#include "camel-exception.h" +#include "camel-folder-summary.h" +#include "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> + +int +main (int argc, char**argv) +{ + CamelSession *session; + CamelException *ex; + CamelStore *store; + gchar *store_url = "mbox:///tmp/evmail"; + CamelFolder *folder; + CamelMimeMessage *message; + GList *uid_list; + int camel_debug_level = 10; + GList *matches; + + gtk_init (&argc, &argv); + camel_init (); + ex = camel_exception_new (); + camel_provider_register_as_module ("/opt/gnome/lib/libcamelmbox.so.0"); + + session = camel_session_new (); + store = camel_session_get_store (session, store_url); + + printf("get folder\n"); + + folder = camel_store_get_folder (store, "Inbox", 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; + } + + 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("Search for messages\n"); + + matches = camel_folder_search_by_expression (folder, "(match-all (and (header-contains \"subject\" \"terminal\") (header-contains \"subject\" \"patch\")))", ex); + + if (matches) { + GList *n; + printf("search found matches:\n"); + n = matches; + while (n) { + printf("uid: %s\n", n->data); + n = g_list_next(n); + } + + } else { + printf("no matches?\n"); + } + + camel_folder_close (folder, FALSE, ex); + + return 0; +} + + + + |