Re: [Zeitgeist] [Merge] lp:~rainct/zeitgeist/fts-current-uri into lp:zeitgeist

2012-03-16 Thread Michal Hruby
Review: Needs Fixing

The boolean terms we're adding to the document should also use current_uri. As 
for CompileEventFilterQuery, since the indexer no longer cares about logged 
uris, there's basically no distinction between them - therefore it should look 
at uri field and if that is unset try current_uri.
-- 
https://code.launchpad.net/~rainct/zeitgeist/fts-current-uri/+merge/97655
Your team Zeitgeist Framework Team is subscribed to branch lp:zeitgeist.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


Re: [Zeitgeist] [Merge] lp:~rainct/zeitgeist/fts-current-uri into lp:zeitgeist

2012-03-16 Thread Michal Hruby
Review: Approve

Awesome!
-- 
https://code.launchpad.net/~rainct/zeitgeist/fts-current-uri/+merge/97655
Your team Zeitgeist Framework Team is subscribed to branch lp:zeitgeist.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Branch ~zeitgeist/zeitgeist/bluebird] Rev 428: FTS++: Log `current_uri' instead of `uri'

2012-03-16 Thread noreply

revno: 428
committer: Siegfried-Angel Gevatter Pujals siegfr...@gevatter.com
branch nick: bluebird
timestamp: Thu 2012-03-15 14:39:43 +0100
message:
  FTS++: Log `current_uri' instead of `uri'
modified:
  extensions/fts++/indexer.cpp
  extensions/fts++/test/test-indexer.cpp


--
lp:zeitgeist
https://code.launchpad.net/~zeitgeist/zeitgeist/bluebird

Your team Zeitgeist Framework Team is subscribed to branch lp:zeitgeist.
To unsubscribe from this branch go to 
https://code.launchpad.net/~zeitgeist/zeitgeist/bluebird/+edit-subscription
=== modified file 'extensions/fts++/indexer.cpp'
--- extensions/fts++/indexer.cpp	2012-03-14 12:31:51 +
+++ extensions/fts++/indexer.cpp	2012-03-15 13:39:43 +
@@ -1259,7 +1259,6 @@
 {
   try
   {
-// FIXME: we need to special case MOVE_EVENTs
 const gchar *val;
 guint event_id = zeitgeist_event_get_id (event);
 g_return_if_fail (event_id  0);
@@ -1288,7 +1287,13 @@
   ZeitgeistSubject *subject;
   subject = (ZeitgeistSubject*) g_ptr_array_index (subjects, i);
 
-  val = zeitgeist_subject_get_uri (subject);
+  // We use current_uri (vs. uri) where since we care about real stuff,
+  // not whatever happened some time ago.
+  //
+  // This will most likely still be the same as URI (unless something
+  // triggers a reindexation of the DB), but at least MOVE_EVENTS
+  // will have the updated URI.
+  val = zeitgeist_subject_get_current_uri (subject);
   if (val == NULL || val[0] == '\0') continue;
 
   std::string uri(val);

=== modified file 'extensions/fts++/test/test-indexer.cpp'
--- extensions/fts++/test/test-indexer.cpp	2012-03-14 15:47:20 +
+++ extensions/fts++/test/test-indexer.cpp	2012-03-15 13:39:43 +
@@ -203,6 +203,27 @@
   return event;
 }
 
+static ZeitgeistEvent* create_test_event8 (void)
+{
+  ZeitgeistEvent *event = zeitgeist_event_new ();
+  ZeitgeistSubject *subject = zeitgeist_subject_new ();
+  
+  zeitgeist_subject_set_interpretation (subject, ZEITGEIST_NFO_PRESENTATION);
+  zeitgeist_subject_set_manifestation (subject, ZEITGEIST_NFO_FILE_DATA_OBJECT);
+  zeitgeist_subject_set_uri (subject, file:///home/username/Documents/my_fabulous_presentation.pdf);
+  zeitgeist_subject_set_current_uri (subject, file:///home/username/Awesome.pdf);
+  zeitgeist_subject_set_text (subject, NULL);
+  zeitgeist_subject_set_mimetype (subject, application/pdf);
+
+  zeitgeist_event_set_interpretation (event, ZEITGEIST_ZG_MOVE_EVENT);
+  zeitgeist_event_set_manifestation (event, ZEITGEIST_ZG_USER_ACTIVITY);
+  zeitgeist_event_set_actor (event, application://nautilus.desktop);
+  zeitgeist_event_add_subject (event, subject);
+
+  g_object_unref (subject);
+  return event;
+}
+
 // Steals the event, ref it if you want to keep it
 static guint
 index_event (Fixture *fix, ZeitgeistEvent *event)
@@ -838,6 +859,36 @@
   zeitgeist_event_get_id ((ZeitgeistEvent*) results-pdata[0]));
 }
 
+static void
+test_simple_move_event (Fixture *fix, gconstpointer data)
+{
+  guint matches;
+  guint event_id;
+  ZeitgeistEvent* event;
+ 
+  // add test events to DBs
+  index_event (fix, create_test_event1 ());
+  index_event (fix, create_test_event4 ());
+  event_id = index_event (fix, create_test_event8 ());
+
+  GPtrArray *results =
+zeitgeist_indexer_search (fix-indexer,
+  awesome,
+  zeitgeist_time_range_new_anytime (),
+  g_ptr_array_new (),
+  0,
+  10,
+  ZEITGEIST_RESULT_TYPE_MOST_RECENT_EVENTS,
+  matches,
+  NULL);
+
+  g_assert_cmpuint (matches, , 0);
+  g_assert_cmpuint (results-len, ==, 1);
+
+  event = (ZeitgeistEvent*) results-pdata[0];
+  g_assert_cmpuint (zeitgeist_event_get_id (event), ==, event_id);
+}
+
 G_BEGIN_DECLS
 
 static void discard_message (const gchar *domain,
@@ -881,6 +932,8 @@
   setup, test_simple_relevancies_query, teardown);
   g_test_add (/Zeitgeist/FTS/Indexer/RelevanciesSubject, Fixture, 0,
   setup, test_simple_relevancies_subject_query, teardown);
+  g_test_add (/Zeitgeist/FTS/Indexer/MoveEvent, Fixture, 0,
+  setup, test_simple_move_event, teardown);
 
   // get rid of the rebuilding index... messages
   g_log_set_handler (NULL, G_LOG_LEVEL_MESSAGE, discard_message, NULL);

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Branch ~zeitgeist/zeitgeist/bluebird] Rev 431: FTS++: more test stuff (add more asserts, extend {Most, Least}Recent tests,

2012-03-16 Thread noreply

revno: 431
committer: Siegfried-Angel Gevatter Pujals siegfr...@gevatter.com
branch nick: bluebird
timestamp: Fri 2012-03-16 19:41:52 +0100
message:
  FTS++: more test stuff (add more asserts, extend {Most,Least}Recent tests,
 introduce new helper function)
modified:
  extensions/fts++/test/test-indexer.cpp


--
lp:zeitgeist
https://code.launchpad.net/~zeitgeist/zeitgeist/bluebird

Your team Zeitgeist Framework Team is subscribed to branch lp:zeitgeist.
To unsubscribe from this branch go to 
https://code.launchpad.net/~zeitgeist/zeitgeist/bluebird/+edit-subscription
=== modified file 'extensions/fts++/test/test-indexer.cpp'
--- extensions/fts++/test/test-indexer.cpp	2012-03-16 18:05:50 +
+++ extensions/fts++/test/test-indexer.cpp	2012-03-16 18:41:52 +
@@ -63,9 +63,11 @@
 }
 
 static void
-assert_nth_result_has_id (GPtrArray* results, int n, guint32 event_id)
+assert_nth_result_has_id (GPtrArray* results, guint n, guint32 event_id)
 {
+  g_assert_cmpuint (n, , results-len);
   ZeitgeistEvent *event = (ZeitgeistEvent*) results-pdata[n];
+  g_assert (event);
   g_assert_cmpuint (zeitgeist_event_get_id (event), ==, event_id);
 }
 
@@ -74,9 +76,13 @@
 static void
 assert_nth_result_has_text (GPtrArray* results, int n, const char *text)
 {
+  g_assert_cmpuint (n, , results-len);
   ZeitgeistEvent *event = (ZeitgeistEvent*) results-pdata[n];
+  g_assert (event);
+  g_assert_cmpint (zeitgeist_event_num_subjects (event), ==, 1);
   ZeitgeistSubject *subject = (ZeitgeistSubject*)
 g_ptr_array_index (zeitgeist_event_get_subjects (event), 0);
+  g_assert (subject);
   g_assert_cmpstr (zeitgeist_subject_get_text (subject), ==, text);
 }
 
@@ -275,6 +281,42 @@
   return event_id;
 }
 
+static GPtrArray*
+search_simple (Fixture *fix, const char *text, GPtrArray *templates,
+ZeitgeistResultType result_type, guint *matches)
+{
+  if (!templates) templates = g_ptr_array_new ();
+  return zeitgeist_indexer_search (fix-indexer,
+text,
+zeitgeist_time_range_new_anytime (),
+templates,
+0, // offset
+10, // count
+result_type,
+matches,
+NULL);
+}
+
+static GPtrArray*
+search_with_relevancies_simple (Fixture *fix, const char *text,
+GPtrArray *templates, ZeitgeistResultType result_type,
+gdouble **relevancies, gint *relevancies_size, guint *matches)
+{
+  if (!templates) templates = g_ptr_array_new ();
+  return zeitgeist_indexer_search_with_relevancies (fix-indexer,
+text,
+zeitgeist_time_range_new_anytime (),
+templates,
+ZEITGEIST_STORAGE_STATE_ANY,
+0, // offset
+10, // count
+result_type,
+relevancies,
+relevancies_size,
+matches,
+NULL);
+}
+
 static void
 test_simple_query (Fixture *fix, gconstpointer data)
 {
@@ -288,16 +330,8 @@
   index_event (fix, create_test_event3 ());
   index_event (fix, create_test_event4 ());
 
-  GPtrArray *results =
-zeitgeist_indexer_search (fix-indexer,
-  text,
-  zeitgeist_time_range_new_anytime (),
-  g_ptr_array_new (),
-  0,
-  10,
-  ZEITGEIST_RESULT_TYPE_MOST_RECENT_EVENTS,
-  matches,
-  NULL);
+  GPtrArray *results = search_simple (fix, text, NULL,
+  ZEITGEIST_RESULT_TYPE_MOST_RECENT_EVENTS, matches);
 
   g_assert_cmpuint (matches, , 0);
   g_assert_cmpuint (results-len, ==, 1);
@@ -310,16 +344,9 @@
 {
   guint matches;
 
-  GPtrArray *results =
-zeitgeist_indexer_search (fix-indexer,
-  NothingWillEverMatchThisMwhahahaha,
-  zeitgeist_time_range_new_anytime (),
-  g_ptr_array_new (),
-  0,
-  10,
-  ZEITGEIST_RESULT_TYPE_MOST_RECENT_EVENTS,
-  matches,
-  NULL);
+  GPtrArray *results = search_simple (fix,
+  NothingWillEverMatchThisMwhahahaha, NULL,
+  ZEITGEIST_RESULT_TYPE_MOST_RECENT_EVENTS, matches);
 
   g_assert_cmpuint (matches, ==, 0);
   g_assert_cmpuint (results-len, ==, 0);
@@ -352,16 +379,8 @@
   zeitgeist_event_set_interpretation (event, ZEITGEIST_NFO_DOCUMENT);
   g_ptr_array_add (filters, event); // steals ref
 
-  GPtrArray *results =
-zeitgeist_indexer_search 

[Zeitgeist] [Branch ~zeitgeist/zeitgeist/bluebird] Rev 430: FTS++: some more test cases and add a couple utility functions

2012-03-16 Thread noreply

revno: 430
committer: Siegfried-Angel Gevatter Pujals siegfr...@gevatter.com
branch nick: bluebird
timestamp: Fri 2012-03-16 19:05:50 +0100
message:
  FTS++: some more test cases and add a couple utility functions
modified:
  extensions/fts++/test/test-indexer.cpp


--
lp:zeitgeist
https://code.launchpad.net/~zeitgeist/zeitgeist/bluebird

Your team Zeitgeist Framework Team is subscribed to branch lp:zeitgeist.
To unsubscribe from this branch go to 
https://code.launchpad.net/~zeitgeist/zeitgeist/bluebird/+edit-subscription
=== modified file 'extensions/fts++/test/test-indexer.cpp'
--- extensions/fts++/test/test-indexer.cpp	2012-03-16 17:08:43 +
+++ extensions/fts++/test/test-indexer.cpp	2012-03-16 18:05:50 +
@@ -62,6 +62,24 @@
   g_object_unref (fix-db);
 }
 
+static void
+assert_nth_result_has_id (GPtrArray* results, int n, guint32 event_id)
+{
+  ZeitgeistEvent *event = (ZeitgeistEvent*) results-pdata[n];
+  g_assert_cmpuint (zeitgeist_event_get_id (event), ==, event_id);
+}
+
+// This function only supports events with a single subject,
+// since that's enough for the tests in this file.
+static void
+assert_nth_result_has_text (GPtrArray* results, int n, const char *text)
+{
+  ZeitgeistEvent *event = (ZeitgeistEvent*) results-pdata[n];
+  ZeitgeistSubject *subject = (ZeitgeistSubject*)
+g_ptr_array_index (zeitgeist_event_get_subjects (event), 0);
+  g_assert_cmpstr (zeitgeist_subject_get_text (subject), ==, text);
+}
+
 static ZeitgeistEvent* create_test_event1 (void)
 {
   ZeitgeistEvent *event = zeitgeist_event_new ();
@@ -131,7 +149,7 @@
   zeitgeist_subject_set_interpretation (subject, ZEITGEIST_NFO_PRESENTATION);
   zeitgeist_subject_set_manifestation (subject, ZEITGEIST_NFO_FILE_DATA_OBJECT);
   zeitgeist_subject_set_uri (subject, file:///home/username/Documents/my_fabulous_presentation.pdf);
-  zeitgeist_subject_set_text (subject, NULL);
+  zeitgeist_subject_set_text (subject, test texts);
   zeitgeist_subject_set_mimetype (subject, application/pdf);
 
   zeitgeist_event_set_interpretation (event, ZEITGEIST_ZG_MODIFY_EVENT);
@@ -191,7 +209,7 @@
   zeitgeist_subject_set_interpretation (subject, ZEITGEIST_NFO_PRESENTATION);
   zeitgeist_subject_set_manifestation (subject, ZEITGEIST_NFO_FILE_DATA_OBJECT);
   zeitgeist_subject_set_uri (subject, file:///home/username/directory-with-dashes/and.dot/%C4%8C%20some-intl/CamelCasePresentation.pdf);
-  zeitgeist_subject_set_text (subject, NULL);
+  zeitgeist_subject_set_text (subject, some more texts);
   zeitgeist_subject_set_mimetype (subject, application/pdf);
 
   zeitgeist_event_set_interpretation (event, ZEITGEIST_ZG_MODIFY_EVENT);
@@ -212,7 +230,7 @@
   zeitgeist_subject_set_manifestation (subject, ZEITGEIST_NFO_FILE_DATA_OBJECT);
   zeitgeist_subject_set_uri (subject, file:///home/username/Documents/my_fabulous_presentation.pdf);
   zeitgeist_subject_set_current_uri (subject, file:///home/username/Awesome.pdf);
-  zeitgeist_subject_set_text (subject, NULL);
+  zeitgeist_subject_set_text (subject, some more textt about a presentation or something);
   zeitgeist_subject_set_mimetype (subject, application/pdf);
 
   zeitgeist_event_set_interpretation (event, ZEITGEIST_ZG_MOVE_EVENT);
@@ -283,13 +301,8 @@
 
   g_assert_cmpuint (matches, , 0);
   g_assert_cmpuint (results-len, ==, 1);
-
-  event = (ZeitgeistEvent*) results-pdata[0];
-  g_assert_cmpuint (zeitgeist_event_get_id (event), ==, event_id);
-
-  ZeitgeistSubject *subject = (ZeitgeistSubject*)
-g_ptr_array_index (zeitgeist_event_get_subjects (event), 0);
-  g_assert_cmpstr (zeitgeist_subject_get_text (subject), ==, text);
+  assert_nth_result_has_id (results, 0, event_id);
+  assert_nth_result_has_text (results, 0, text);
 }
 
 static void
@@ -328,7 +341,6 @@
 test_simple_with_filter (Fixture *fix, gconstpointer data)
 {
   guint matches;
-  guint event_id;
   ZeitgeistEvent* event;
 
   // add test events to DBs
@@ -387,25 +399,19 @@
 
   g_assert_cmpuint (matches, , 0);
   g_assert_cmpuint (results-len, ==, 1);
-
-  event = (ZeitgeistEvent*) results-pdata[0];
-  g_assert_cmpuint (zeitgeist_event_get_id (event), ==, event_id);
-
-  subject = (ZeitgeistSubject*)
-g_ptr_array_index (zeitgeist_event_get_subjects (event), 0);
-  g_assert_cmpstr (zeitgeist_subject_get_text (subject), ==, text);
+  assert_nth_result_has_id (results, 0, event_id);
+  assert_nth_result_has_text (results, 0, text);
 }
 
 static void
 test_simple_negation (Fixture *fix, gconstpointer data)
 {
   guint matches;
-  guint event_id;
   ZeitgeistEvent* event;
   ZeitgeistSubject *subject;
 
   // add test events to DBs
-  event_id = index_event (fix, create_test_event1 ());
+  index_event (fix, create_test_event1 ());
   index_event (fix, create_test_event2 ());
 
   GPtrArray *filters = g_ptr_array_new_with_free_func (g_object_unref);
@@ -434,12 +440,11 @@
 test_simple_noexpand (Fixture *fix, gconstpointer data)
 {
   guint matches;
-  guint 

[Zeitgeist] [Branch ~zeitgeist/zeitgeist/bluebird] Rev 429: FTS++: Change to current_uri in some more places. Add random test cases.

2012-03-16 Thread noreply

revno: 429
committer: Siegfried-Angel Gevatter Pujals siegfr...@gevatter.com
branch nick: bluebird
timestamp: Fri 2012-03-16 18:08:43 +0100
message:
  FTS++: Change to current_uri in some more places. Add random test cases.
modified:
  extensions/fts++/indexer.cpp
  extensions/fts++/test/test-indexer.cpp
  test/dbus/engine-test.py


--
lp:zeitgeist
https://code.launchpad.net/~zeitgeist/zeitgeist/bluebird

Your team Zeitgeist Framework Team is subscribed to branch lp:zeitgeist.
To unsubscribe from this branch go to 
https://code.launchpad.net/~zeitgeist/zeitgeist/bluebird/+edit-subscription
=== modified file 'extensions/fts++/indexer.cpp'
--- extensions/fts++/indexer.cpp	2012-03-15 13:39:43 +
+++ extensions/fts++/indexer.cpp	2012-03-16 17:08:43 +
@@ -262,7 +262,10 @@
 for (unsigned j = 0; j  subjects-len; j++)
 {
   ZeitgeistSubject *subject = (ZeitgeistSubject*) g_ptr_array_index (subjects, j);
+  // For backwards compatibility, we still check URI
   val = zeitgeist_subject_get_uri (subject);
+  if (!val || val[0] == '\0')
+  val = zeitgeist_subject_get_current_uri (subject);
   if (val  val[0] != '\0')
 tmpl.push_back (zgsu: + StringUtils::MangleUri (val));
 
@@ -344,7 +347,7 @@
   for (unsigned j = 0; j  subjects-len; j++)
   {
 ZeitgeistSubject *subject = (ZeitgeistSubject*) g_ptr_array_index (subjects, j);
-val = zeitgeist_subject_get_uri (subject);
+val = zeitgeist_subject_get_current_uri (subject);
 if (val  val[0] != '\0')
   doc.add_boolean_term (StringUtils::Truncate (FILTER_PREFIX_SUBJECT_URI + StringUtils::MangleUri (val)));
 
@@ -928,12 +931,13 @@
   if (subjects == NULL) continue;
   for (unsigned j = 0; j  subjects-len; j++)
   {
-const gchar *subj_uri = zeitgeist_subject_get_uri ((ZeitgeistSubject*) subjects-pdata[j]);
+const gchar *subj_uri = zeitgeist_subject_get_current_uri (
+(ZeitgeistSubject*) subjects-pdata[j]);
 if (subj_uri == NULL) continue;
 remapper[subj_uri] = event_id;
 ZeitgeistEvent *event = zeitgeist_event_new ();
 ZeitgeistSubject *subject = zeitgeist_subject_new ();
-zeitgeist_subject_set_uri (subject, subj_uri);
+zeitgeist_subject_set_current_uri (subject, subj_uri);
 zeitgeist_event_add_subject (event, subject); // FIXME: leaks?
 g_ptr_array_add (event_templates, event);
   }
@@ -976,7 +980,8 @@
   if (subjects == NULL) continue;
   for (unsigned j = 0; j  subjects-len; j++)
   {
-const gchar *subj_uri = zeitgeist_subject_get_uri ((ZeitgeistSubject*) subjects-pdata[j]);
+const gchar *subj_uri = zeitgeist_subject_get_current_uri (
+(ZeitgeistSubject*) subjects-pdata[j]);
 if (subj_uri == NULL) continue;
 relevancy_map[event_id] = relevancy_map[remapper[subj_uri]];
   }

=== modified file 'extensions/fts++/test/test-indexer.cpp'
--- extensions/fts++/test/test-indexer.cpp	2012-03-15 13:39:43 +
+++ extensions/fts++/test/test-indexer.cpp	2012-03-16 17:08:43 +
@@ -293,6 +293,38 @@
 }
 
 static void
+test_simple_query_empty_database (Fixture *fix, gconstpointer data)
+{
+  guint matches;
+
+  GPtrArray *results =
+zeitgeist_indexer_search (fix-indexer,
+  NothingWillEverMatchThisMwhahahaha,
+  zeitgeist_time_range_new_anytime (),
+  g_ptr_array_new (),
+  0,
+  10,
+  ZEITGEIST_RESULT_TYPE_MOST_RECENT_EVENTS,
+  matches,
+  NULL);
+
+  g_assert_cmpuint (matches, ==, 0);
+  g_assert_cmpuint (results-len, ==, 0);
+}
+
+static void
+test_simple_query_no_results (Fixture *fix, gconstpointer data)
+{
+  // add test events to DBs
+  index_event (fix, create_test_event1 ());
+  index_event (fix, create_test_event2 ());
+  index_event (fix, create_test_event3 ());
+  index_event (fix, create_test_event4 ());
+
+  test_simple_query_empty_database (fix, data);
+}
+
+static void
 test_simple_with_filter (Fixture *fix, gconstpointer data)
 {
   guint matches;
@@ -889,6 +921,37 @@
   g_assert_cmpuint (zeitgeist_event_get_id (event), ==, event_id);
 }
 
+static void
+test_simple_least_recent (Fixture *fix, gconstpointer data)
+{
+  guint matches;
+  guint event_id1, event_id2, event_id3, event_id4;
+  ZeitgeistEvent* event;
+ 
+  // add test events to DBs
+  event_id1 = index_event (fix, create_test_event1 ());
+  event_id2 = index_event (fix, create_test_event2 ());
+  event_id3 = index_event (fix, create_test_event3 ());
+  event_id4 = index_event (fix, create_test_event4 ());
+
+  GPtrArray *results =
+zeitgeist_indexer_search (fix-indexer,
+  ,
+  zeitgeist_time_range_new_anytime (),
+ 

[Zeitgeist] [Merge] lp:~rainct/zeitgeist/fts-current-uri into lp:zeitgeist

2012-03-16 Thread noreply
The proposal to merge lp:~rainct/zeitgeist/fts-current-uri into lp:zeitgeist 
has been updated.

Status: Approved = Merged

For more details, see:
https://code.launchpad.net/~rainct/zeitgeist/fts-current-uri/+merge/97655
-- 
https://code.launchpad.net/~rainct/zeitgeist/fts-current-uri/+merge/97655
Your team Zeitgeist Framework Team is subscribed to branch lp:zeitgeist.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Branch ~zeitgeist/zeitgeist/bluebird] Rev 432: FTS++: More test cases. These expose two bugs! ZOMG! :)

2012-03-16 Thread noreply

revno: 432
committer: Siegfried-Angel Gevatter Pujals siegfr...@gevatter.com
branch nick: bluebird
timestamp: Fri 2012-03-16 21:03:05 +0100
message:
  FTS++: More test cases. These expose two bugs! ZOMG! :)
modified:
  extensions/fts++/indexer.cpp
  extensions/fts++/test/test-indexer.cpp


--
lp:zeitgeist
https://code.launchpad.net/~zeitgeist/zeitgeist/bluebird

Your team Zeitgeist Framework Team is subscribed to branch lp:zeitgeist.
To unsubscribe from this branch go to 
https://code.launchpad.net/~zeitgeist/zeitgeist/bluebird/+edit-subscription
=== modified file 'extensions/fts++/indexer.cpp'
--- extensions/fts++/indexer.cpp	2012-03-16 17:08:43 +
+++ extensions/fts++/indexer.cpp	2012-03-16 20:03:05 +
@@ -738,6 +738,7 @@
   return query_string;
 }
 
+// FIXME: this is missing the Storage State parameter
 GPtrArray* Indexer::Search (const gchar *search,
 ZeitgeistTimeRange *time_range,
 GPtrArray *templates,

=== modified file 'extensions/fts++/test/test-indexer.cpp'
--- extensions/fts++/test/test-indexer.cpp	2012-03-16 18:41:52 +
+++ extensions/fts++/test/test-indexer.cpp	2012-03-16 20:03:05 +
@@ -248,6 +248,26 @@
   return event;
 }
 
+static ZeitgeistEvent* create_test_event_simple (const char *uri, const char *text)
+{
+  ZeitgeistEvent *event = zeitgeist_event_new ();
+  ZeitgeistSubject *subject = zeitgeist_subject_new ();
+  
+  zeitgeist_subject_set_interpretation (subject, ZEITGEIST_NFO_DOCUMENT);
+  zeitgeist_subject_set_manifestation (subject, ZEITGEIST_NFO_FILE_DATA_OBJECT);
+  zeitgeist_subject_set_uri (subject, uri);
+  zeitgeist_subject_set_text (subject, text);
+  zeitgeist_subject_set_mimetype (subject, text/plain);
+
+  zeitgeist_event_set_interpretation (event, ZEITGEIST_ZG_ACCESS_EVENT);
+  zeitgeist_event_set_manifestation (event, ZEITGEIST_ZG_USER_ACTIVITY);
+  zeitgeist_event_set_actor (event, application://random.desktop);
+  zeitgeist_event_add_subject (event, subject);
+
+  g_object_unref (subject);
+  return event;
+}
+
 // Steals the event, ref it if you want to keep it
 static guint
 index_event (Fixture *fix, ZeitgeistEvent *event)
@@ -278,6 +298,10 @@
 zeitgeist_indexer_process_task (fix-indexer);
   }
 
+  // sleep for 1 msec to make sure the next event will have a
+  // different timestamp
+  g_usleep (1000);
+
   return event_id;
 }
 
@@ -298,6 +322,23 @@
 }
 
 static GPtrArray*
+search_with_count (Fixture *fix, const char *text, GPtrArray *templates,
+ZeitgeistResultType result_type, guint offset, guint count,
+guint *matches)
+{
+  if (!templates) templates = g_ptr_array_new ();
+  return zeitgeist_indexer_search (fix-indexer,
+text,
+zeitgeist_time_range_new_anytime (),
+templates,
+offset,
+count,
+result_type,
+matches,
+NULL);
+}
+
+static GPtrArray*
 search_with_relevancies_simple (Fixture *fix, const char *text,
 GPtrArray *templates, ZeitgeistResultType result_type,
 gdouble **relevancies, gint *relevancies_size, guint *matches)
@@ -322,7 +363,6 @@
 {
   guint matches;
   guint event_id;
-  ZeitgeistEvent* event;
  
   // add test events to DBs
   event_id = index_event (fix, create_test_event1 ());
@@ -365,6 +405,23 @@
 }
 
 static void
+test_simple_recognize_schemas (Fixture *fix, gconstpointer data)
+{
+  guint matches;
+
+  // add test events to DBs
+  index_event (fix, create_test_event_simple (file://a.ok, getme1));
+  index_event (fix, create_test_event_simple (ubuntuone://a.bad, getme2));
+
+  GPtrArray *results = search_simple (fix, getme*, NULL,
+  ZEITGEIST_RESULT_TYPE_MOST_RECENT_EVENTS, matches);
+
+  g_assert_cmpuint (matches, , 0);
+  g_assert_cmpuint (results-len, ==, 1);
+  assert_nth_result_has_text (results, 0, getme1);
+}
+
+static void
 test_simple_with_filter (Fixture *fix, gconstpointer data)
 {
   guint matches;
@@ -788,7 +845,7 @@
 }
 
 static void
-test_simple_most_recent (Fixture *fix, gconstpointer data)
+test_query_most_recent (Fixture *fix, gconstpointer data)
 {
   guint matches;
   guint event_id1, event_id2, event_id3, event_id4;
@@ -840,7 +897,7 @@
 }
 
 static void
-test_simple_least_recent (Fixture *fix, gconstpointer data)
+test_query_least_recent (Fixture *fix, gconstpointer data)
 {
   guint matches;
   guint event_id1, event_id2, event_id3, event_id4;
@@ -891,6 +948,95 @@
   }
 }
 
+static void
+test_query_sort_order (Fixture *fix, gconstpointer data)
+{
+  guint matches;
+  guint event_id1, event_id2, event_id3, event_id4;
+  ZeitgeistEvent* event;
+  GPtrArray* results;
+ 
+  // add test events to DBs
+  event_id1 = index_event (fix, create_test_event_simple (file://uri1, !sort));
+  event_id2 = index_event (fix, 

[Zeitgeist] [Merge] lp:~rainct/zeitgeist/fts-sorting into lp:zeitgeist

2012-03-16 Thread Siegfried Gevatter
Siegfried Gevatter has proposed merging lp:~rainct/zeitgeist/fts-sorting into 
lp:zeitgeist.

Requested reviews:
  Michal Hruby (mhr3)

For more details, see:
https://code.launchpad.net/~rainct/zeitgeist/fts-sorting/+merge/97985
-- 
https://code.launchpad.net/~rainct/zeitgeist/fts-sorting/+merge/97985
Your team Zeitgeist Framework Team is subscribed to branch lp:zeitgeist.
=== modified file 'extensions/fts++/indexer.cpp'
--- extensions/fts++/indexer.cpp	2012-03-16 20:03:05 +
+++ extensions/fts++/indexer.cpp	2012-03-16 20:45:24 +
@@ -778,7 +778,10 @@
 }
 else
 {
-  enquire-set_sort_by_value (VALUE_TIMESTAMP, true);
+  bool reversed_sort = not
+  zeitgeist_db_reader_sort_order_for_result_type_is_asc (zg_reader,
+ result_type);
+  enquire-set_sort_by_value (VALUE_TIMESTAMP, reversed_sort);
 }
 
 if (result_type == ZEITGEIST_RESULT_TYPE_MOST_RECENT_SUBJECTS ||
@@ -786,7 +789,20 @@
 result_type == ZEITGEIST_RESULT_TYPE_MOST_POPULAR_SUBJECTS ||
 result_type == ZEITGEIST_RESULT_TYPE_LEAST_POPULAR_SUBJECTS)
 {
-enquire-set_collapse_key (VALUE_URI_HASH);
+  enquire-set_collapse_key (VALUE_URI_HASH);
+}
+else if (result_type == ZEITGEIST_RESULT_TYPE_MOST_RECENT_ORIGIN ||
+result_type == ZEITGEIST_RESULT_TYPE_LEAST_RECENT_ORIGIN ||
+result_type == ZEITGEIST_RESULT_TYPE_MOST_POPULAR_ORIGIN ||
+result_type == ZEITGEIST_RESULT_TYPE_LEAST_POPULAR_ORIGIN)
+{
+  // FIXME: not really correct but close :)
+  enquire-set_collapse_key (VALUE_URI_HASH);
+}
+else if (result_type == ZEITGEIST_RESULT_TYPE_MOST_RECENT_EVENTS ||
+result_type == ZEITGEIST_RESULT_TYPE_LEAST_RECENT_EVENTS)
+{
+  enquire-set_collapse_key (VALUE_EVENT_ID);
 }
 
 Xapian::Query q(query_parser-parse_query (query_string, QUERY_PARSER_FLAGS));
@@ -1096,12 +1112,9 @@
   return NULL;
 }
 
-bool reversed_sort =
-  result_type == ZEITGEIST_RESULT_TYPE_MOST_RECENT_EVENTS ||
-  result_type == ZEITGEIST_RESULT_TYPE_MOST_RECENT_SUBJECTS ||
-  result_type == ZEITGEIST_RESULT_TYPE_MOST_POPULAR_SUBJECTS ||
-  result_type == ZEITGEIST_RESULT_TYPE_MOST_RECENT_ORIGIN ||
-  result_type == ZEITGEIST_RESULT_TYPE_MOST_POPULAR_ORIGIN;
+bool reversed_sort = not
+zeitgeist_db_reader_sort_order_for_result_type_is_asc (zg_reader,
+   result_type);
 
 if (result_type == RELEVANCY_RESULT_TYPE)
 {

=== modified file 'src/db-reader.vala'
--- src/db-reader.vala	2012-03-14 12:31:51 +
+++ src/db-reader.vala	2012-03-16 20:45:24 +
@@ -160,6 +160,56 @@
 return results;
 }
 
+/*
+ * Returns true if the results for the given result_type will be sorted
+ * ascendantly by date, false if they'll be sorted descendingly.
+ **/
+public bool sort_order_for_result_type_is_asc (uint result_type)
+{
+switch (result_type)
+{
+// FIXME: Why are LEAST_POPULAR_* using ASC?
+case ResultType.LEAST_RECENT_EVENTS:
+case ResultType.LEAST_RECENT_EVENT_ORIGIN:
+case ResultType.LEAST_POPULAR_EVENT_ORIGIN:
+case ResultType.LEAST_RECENT_SUBJECTS:
+case ResultType.LEAST_POPULAR_SUBJECTS:
+case ResultType.LEAST_RECENT_CURRENT_URI:
+case ResultType.LEAST_POPULAR_CURRENT_URI:
+case ResultType.LEAST_RECENT_ACTOR:
+case ResultType.LEAST_POPULAR_ACTOR:
+case ResultType.OLDEST_ACTOR:
+case ResultType.LEAST_RECENT_ORIGIN:
+case ResultType.LEAST_POPULAR_ORIGIN:
+case ResultType.LEAST_RECENT_SUBJECT_INTERPRETATION:
+case ResultType.LEAST_POPULAR_SUBJECT_INTERPRETATION:
+case ResultType.LEAST_RECENT_MIMETYPE:
+case ResultType.LEAST_POPULAR_MIMETYPE:
+return true;
+
+case ResultType.MOST_RECENT_EVENTS:
+case ResultType.MOST_RECENT_EVENT_ORIGIN:
+case ResultType.MOST_POPULAR_EVENT_ORIGIN:
+case ResultType.MOST_RECENT_SUBJECTS:
+case ResultType.MOST_POPULAR_SUBJECTS:
+case ResultType.MOST_RECENT_CURRENT_URI:
+case ResultType.MOST_POPULAR_CURRENT_URI:
+case ResultType.MOST_RECENT_ACTOR:
+case ResultType.MOST_POPULAR_ACTOR:
+case ResultType.MOST_RECENT_ORIGIN:
+case ResultType.MOST_POPULAR_ORIGIN:
+case ResultType.MOST_RECENT_SUBJECT_INTERPRETATION:
+case ResultType.MOST_POPULAR_SUBJECT_INTERPRETATION:
+case ResultType.MOST_RECENT_MIMETYPE:
+case ResultType.MOST_POPULAR_MIMETYPE:
+return false;
+
+default:
+warning (Unrecognized ResultType: %u, result_type);
+return true;
+}
+}
+