diff options
author | Debarshi Ray <debarshir@freedesktop.org> | 2012-07-31 16:31:24 +0200 |
---|---|---|
committer | Debarshi Ray <debarshir@freedesktop.org> | 2012-08-28 19:37:58 +0200 |
commit | 940368c746660b88941af1bf156e6fd584606568 (patch) | |
tree | 3af3e5e417784ccedbf84e2e553a4cab7fd1b43c /tests/dbus/test-tpl-log-iter-xml.c | |
parent | f933eddd65b7c1104630a6c628eb7bd67bff6ac0 (diff) | |
download | telepathy-logger-940368c746660b88941af1bf156e6fd584606568.tar.gz |
tests: Add a test for log-iter-xml/rewind
... to cover text events spanning multiple days, and a mix of call and
text events.
Fixes: https://bugs.freedesktop.org/41772
Diffstat (limited to 'tests/dbus/test-tpl-log-iter-xml.c')
-rw-r--r-- | tests/dbus/test-tpl-log-iter-xml.c | 195 |
1 files changed, 195 insertions, 0 deletions
diff --git a/tests/dbus/test-tpl-log-iter-xml.c b/tests/dbus/test-tpl-log-iter-xml.c index 0762eeb..1d64c15 100644 --- a/tests/dbus/test-tpl-log-iter-xml.c +++ b/tests/dbus/test-tpl-log-iter-xml.c @@ -218,6 +218,197 @@ test_get_events (XmlTestCaseFixture *fixture, } +static void +test_rewind (XmlTestCaseFixture *fixture, + gconstpointer user_data) +{ + TplEntity *user2, *user4; + TplLogIter *iter; + GList *events; + GError *error = NULL; + GTimeSpan duration; + const gchar *message; + gint64 timestamp; + + user2 = tpl_entity_new ("user2@collabora.co.uk", TPL_ENTITY_CONTACT, + "User2", ""); + + user4 = tpl_entity_new ("user4@collabora.co.uk", TPL_ENTITY_CONTACT, + "User4", ""); + + /* Text events spanning multiple days */ + iter = tpl_log_iter_xml_new (fixture->store, fixture->account, user2, + TPL_EVENT_MASK_ANY, NULL, NULL); + + tpl_log_iter_rewind (iter, 8, &error); + g_assert_no_error (error); + + events = tpl_log_iter_get_events (iter, 0, &error); + g_assert_no_error (error); + g_assert (events == NULL); + + tpl_log_iter_rewind (iter, 8, &error); + g_assert_no_error (error); + + events = tpl_log_iter_get_events (iter, 5, &error); + g_assert_no_error (error); + g_assert (events != NULL); + g_assert_cmpint (g_list_length (events), ==, 5); + timestamp = tpl_event_get_timestamp (TPL_EVENT (events->data)); + g_assert_cmpint (timestamp, ==, 1266425566); + message = tpl_text_event_get_message (TPL_TEXT_EVENT (events->data)); + g_assert_cmpstr (message, ==, "4"); + g_list_free_full (events, g_object_unref); + + tpl_log_iter_rewind (iter, 8, &error); + g_assert_no_error (error); + + events = tpl_log_iter_get_events (iter, 10, &error); + g_assert_no_error (error); + g_assert (events != NULL); + g_assert_cmpint (g_list_length (events), ==, 10); + timestamp = tpl_event_get_timestamp (TPL_EVENT (events->data)); + g_assert_cmpint (timestamp, ==, 1266425566); + message = tpl_text_event_get_message (TPL_TEXT_EVENT (events->data)); + g_assert_cmpstr (message, ==, "5"); + g_list_free_full (events, g_object_unref); + + tpl_log_iter_rewind (iter, 3, &error); + g_assert_no_error (error); + + events = tpl_log_iter_get_events (iter, 5, &error); + g_assert_no_error (error); + g_assert (events != NULL); + g_assert_cmpint (g_list_length (events), ==, 5); + timestamp = tpl_event_get_timestamp (TPL_EVENT (events->data)); + g_assert_cmpint (timestamp, ==, 1266425566); + message = tpl_text_event_get_message (TPL_TEXT_EVENT (events->data)); + g_assert_cmpstr (message, ==, "3"); + g_list_free_full (events, g_object_unref); + + tpl_log_iter_rewind (iter, 1, &error); + g_assert_no_error (error); + + tpl_log_iter_rewind (iter, 9, &error); + g_assert_no_error (error); + + events = tpl_log_iter_get_events (iter, 10, &error); + g_assert_no_error (error); + g_assert (events != NULL); + g_assert_cmpint (g_list_length (events), ==, 10); + timestamp = tpl_event_get_timestamp (TPL_EVENT (events->data)); + g_assert_cmpint (timestamp, ==, 1266425566); + message = tpl_text_event_get_message (TPL_TEXT_EVENT (events->data)); + g_assert_cmpstr (message, ==, "3"); + g_list_free_full (events, g_object_unref); + + events = tpl_log_iter_get_events (iter, 10, &error); + g_assert_no_error (error); + g_assert (events != NULL); + g_assert_cmpint (g_list_length (events), ==, 10); + timestamp = tpl_event_get_timestamp (TPL_EVENT (events->data)); + g_assert_cmpint (timestamp, ==, 1266329628); + message = tpl_text_event_get_message (TPL_TEXT_EVENT (events->data)); + g_assert_cmpstr (message, ==, "123"); + g_list_free_full (events, g_object_unref); + + tpl_log_iter_rewind (iter, 13, &error); + g_assert_no_error (error); + + events = tpl_log_iter_get_events (iter, 10, &error); + g_assert_no_error (error); + g_assert (events != NULL); + g_assert_cmpint (g_list_length (events), ==, 10); + timestamp = tpl_event_get_timestamp (TPL_EVENT (events->data)); + g_assert_cmpint (timestamp, ==, 1266335803); + message = tpl_text_event_get_message (TPL_TEXT_EVENT (events->data)); + g_assert_cmpstr (message, ==, "a"); + g_list_free_full (events, g_object_unref); + + events = tpl_log_iter_get_events (iter, 10, &error); + g_assert_no_error (error); + g_assert (events != NULL); + g_assert_cmpint (g_list_length (events), ==, 10); + timestamp = tpl_event_get_timestamp (TPL_EVENT (events->data)); + g_assert_cmpint (timestamp, ==, 1263405203); + message = tpl_text_event_get_message (TPL_TEXT_EVENT (events->data)); + g_assert_cmpstr (message, ==, "6"); + g_list_free_full (events, g_object_unref); + + events = tpl_log_iter_get_events (iter, 5, &error); + g_assert_no_error (error); + g_assert (events != NULL); + g_assert_cmpint (g_list_length (events), ==, 5); + timestamp = tpl_event_get_timestamp (TPL_EVENT (events->data)); + g_assert_cmpint (timestamp, ==, 1263404877); + message = tpl_text_event_get_message (TPL_TEXT_EVENT (events->data)); + g_assert_cmpstr (message, ==, "1"); + g_list_free_full (events, g_object_unref); + + events = tpl_log_iter_get_events (iter, 3, &error); + g_assert_no_error (error); + g_assert (events == NULL); + + g_object_unref (iter); + + /* A mix of call and text events */ + iter = tpl_log_iter_xml_new (fixture->store, fixture->account, user4, + TPL_EVENT_MASK_ANY, NULL, NULL); + + tpl_log_iter_rewind (iter, 8, &error); + g_assert_no_error (error); + + events = tpl_log_iter_get_events (iter, 0, &error); + g_assert_no_error (error); + g_assert (events == NULL); + + tpl_log_iter_rewind (iter, 8, &error); + g_assert_no_error (error); + + events = tpl_log_iter_get_events (iter, 4, &error); + g_assert_no_error (error); + g_assert (events != NULL); + g_assert_cmpint (g_list_length (events), ==, 4); + timestamp = tpl_event_get_timestamp (TPL_EVENT (events->data)); + g_assert_cmpint (timestamp, ==, 1263404881); + duration = tpl_call_event_get_duration (TPL_CALL_EVENT (events->data)); + g_assert_cmpint (duration, ==, 1); + g_list_free_full (events, g_object_unref); + + tpl_log_iter_rewind (iter, 8, &error); + g_assert_no_error (error); + + events = tpl_log_iter_get_events (iter, 4, &error); + g_assert_no_error (error); + g_assert (events != NULL); + g_assert_cmpint (g_list_length (events), ==, 4); + timestamp = tpl_event_get_timestamp (TPL_EVENT (events->data)); + g_assert_cmpint (timestamp, ==, 1263404881); + duration = tpl_call_event_get_duration (TPL_CALL_EVENT (events->data)); + g_assert_cmpint (duration, ==, 1); + g_list_free_full (events, g_object_unref); + + events = tpl_log_iter_get_events (iter, 2, &error); + g_assert_no_error (error); + g_assert (events != NULL); + g_assert_cmpint (g_list_length (events), ==, 2); + timestamp = tpl_event_get_timestamp (TPL_EVENT (events->data)); + g_assert_cmpint (timestamp, ==, 1263404877); + message = tpl_text_event_get_message (TPL_TEXT_EVENT (events->data)); + g_assert_cmpstr (message, ==, "7"); + g_list_free_full (events, g_object_unref); + + events = tpl_log_iter_get_events (iter, 1, &error); + g_assert_no_error (error); + g_assert (events == NULL); + + g_object_unref (iter); + + g_object_unref (user2); + g_object_unref (user4); +} + + gint main (gint argc, gchar **argv) { g_type_init (); @@ -229,5 +420,9 @@ gint main (gint argc, gchar **argv) XmlTestCaseFixture, NULL, setup, test_get_events, teardown); + g_test_add ("/log-iter-xml/rewind", + XmlTestCaseFixture, NULL, + setup, test_rewind, teardown); + return g_test_run (); } |