diff options
| author | Matthew Barnes <mbarnes@redhat.com> | 2011-03-22 13:57:21 -0400 |
|---|---|---|
| committer | Matthew Barnes <mbarnes@redhat.com> | 2011-03-22 15:50:04 -0400 |
| commit | 450e98c83234f6d82f46c0124f874f47b785923f (patch) | |
| tree | 3e07b75868d85abff88b05e261b3fa97069c1874 /tests/libebook/test-ebook-get-required-fields.c | |
| parent | 99f96227311145922e3d0319dd9b3aed2e784584 (diff) | |
| download | evolution-data-server-450e98c83234f6d82f46c0124f874f47b785923f.tar.gz | |
Collect all test code into a top-level "tests" directory
This includes both automated unit tests and standalone demo programs.
Test code is partitioned by library. So far we have:
tests/libebook
tests/libecal
tests/libedata-cal
tests/libedataserver
tests/libedataserverui
This makes for a natural place to put additional E-D-S test code, but
still have it compartmentalized in one place (excluding Camel, which is
still tagging along with E-D-S but is not really part of E-D-S).
Diffstat (limited to 'tests/libebook/test-ebook-get-required-fields.c')
| -rw-r--r-- | tests/libebook/test-ebook-get-required-fields.c | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/tests/libebook/test-ebook-get-required-fields.c b/tests/libebook/test-ebook-get-required-fields.c new file mode 100644 index 000000000..0739f73ed --- /dev/null +++ b/tests/libebook/test-ebook-get-required-fields.c @@ -0,0 +1,76 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +#include <stdlib.h> +#include <libebook/e-book.h> + +#include "ebook-test-utils.h" + +static void +list_member_print_and_free (gchar *member, + gpointer user_data) +{ + test_print (" %s\n", member); + g_free (member); +} + +static void +get_required_fields_cb (EBookTestClosure *closure) +{ + /* XXX: assuming an empty list is valid, we'll just print out anything + * we do get */ + if (closure->list) { + EIterator *iter; + const gchar *field; + + test_print ("required fields:\n"); + iter = e_list_get_iterator (closure->list); + while ((field = e_iterator_get (iter))) { + test_print (" %s\n", field); + e_iterator_next (iter); + } + test_print ("----------------\n"); + } + + g_object_unref (closure->list); + + g_main_loop_quit ((GMainLoop*) (closure->user_data)); +} + +gint +main (gint argc, gchar **argv) +{ + EBook *book; + GMainLoop *loop; + GList *fields; + + g_type_init (); + + /* + * Setup + */ + book = ebook_test_utils_book_new_temp (NULL); + ebook_test_utils_book_open (book, FALSE); + + /* + * Sync version + */ + fields = ebook_test_utils_book_get_required_fields (book); + + test_print ("successfully retrieved required fields:\n"); + g_list_foreach (fields, (GFunc) list_member_print_and_free, NULL); + test_print ("----------------\n"); + g_list_free (fields); + + /* + * Async version + */ + loop = g_main_loop_new (NULL, TRUE); + ebook_test_utils_book_async_get_required_fields (book, + (GSourceFunc) get_required_fields_cb, loop); + + g_main_loop_run (loop); + + ebook_test_utils_book_remove (book); + + return 0; +} |
