From ae31e0b31f7abea16aade47fa3ccc8c4bbfdae44 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 31 Aug 2012 14:59:55 +0200 Subject: tests: Add a test for log-walker/get-events ... to cover the use of a filter. Fixes: https://bugs.freedesktop.org/54270 --- tests/dbus/test-tpl-log-walker.c | 41 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/tests/dbus/test-tpl-log-walker.c b/tests/dbus/test-tpl-log-walker.c index b26eb8f..3a6616a 100644 --- a/tests/dbus/test-tpl-log-walker.c +++ b/tests/dbus/test-tpl-log-walker.c @@ -1,5 +1,7 @@ #include "config.h" +#include + #include "lib/simple-account.h" #include "lib/util.h" @@ -138,6 +140,16 @@ teardown (WalkerTestCaseFixture *fixture, } +static gboolean +filter_events (TplEvent *event, gpointer user_data) +{ + const gchar *message; + + message = tpl_text_event_get_message (TPL_TEXT_EVENT (event)); + return strstr (message, "'") == NULL; +} + + static void rewind_cb (GObject *source, GAsyncResult *result, @@ -252,6 +264,7 @@ test_get_events (WalkerTestCaseFixture *fixture, user5 = tpl_entity_new ("user5@collabora.co.uk", TPL_ENTITY_CONTACT, "User5", ""); + /* Both text and call events without a filter */ walker = tpl_log_manager_walk_filtered_events (fixture->manager, fixture->account, user5, @@ -285,6 +298,34 @@ test_get_events (WalkerTestCaseFixture *fixture, events = fixture->events; g_assert (events == NULL); + g_object_unref (walker); + + /* Only text events with a filter */ + walker = tpl_log_manager_walk_filtered_events (fixture->manager, + fixture->account, + user5, + TPL_EVENT_MASK_TEXT, + filter_events, + NULL); + + get_events (fixture, walker, 0); + test_get_events_text (fixture, walker, 2, 1263427263, "K"); + test_get_events_text (fixture, walker, 5, 1263427202, "11"); + test_get_events_text (fixture, walker, 1, 1263427201, "10"); + test_get_events_text (fixture, walker, 5, 1263254401, "5"); + test_get_events_text (fixture, walker, 2, 1263168065, "G"); + test_get_events_text (fixture, walker, 4, 1263168061, "C"); + test_get_events_text (fixture, walker, 2, 1263168004, "3"); + get_events (fixture, walker, 0); + test_get_events_text (fixture, walker, 3, 1263168001, "0"); + test_get_events_text (fixture, walker, 2, 1263081661, "A"); + + tpl_log_walker_get_events_async (walker, 2, get_events_cb, fixture); + g_main_loop_run (fixture->main_loop); + + events = fixture->events; + g_assert (events == NULL); + g_object_unref (walker); g_object_unref (user5); } -- cgit v1.2.1