telepathy-logger: tests: Add a test for log-iter-xml/rewind

Nicolas Dufresne nicolasd at kemper.freedesktop.org
Tue Aug 28 13:01:07 PDT 2012


Module: telepathy-logger
Branch: master
Commit: 940368c746660b88941af1bf156e6fd584606568
URL:    http://cgit.freedesktop.org/telepathy/telepathy-logger/commit/?id=940368c746660b88941af1bf156e6fd584606568

Author: Debarshi Ray <debarshir at freedesktop.org>
Date:   Tue Jul 31 16:31:24 2012 +0200

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

---

 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 at collabora.co.uk", TPL_ENTITY_CONTACT,
+      "User2", "");
+
+  user4 = tpl_entity_new ("user4 at 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 ();
 }



More information about the telepathy-commits mailing list