------------------------------------------------------------
revno: 351
fixes bug: https://launchpad.net/bugs/899602
committer: Siegfried-Angel Gevatter Pujals <siegfr...@gevatter.com>
branch nick: bluebird
timestamp: Thu 2011-12-29 14:59:16 +0100
message:
   - Automatically determine interpretation from mime-type when it's empty
   - Automatically determine manifestation from URI when it's empty
added:
  test/data/incomplete_events.js
modified:
  src/engine.vala
  test/dbus/remote-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 'src/engine.vala'
--- src/engine.vala	2011-12-04 22:58:25 +0000
+++ src/engine.vala	2011-12-29 13:59:16 +0000
@@ -662,6 +662,25 @@
 
             unowned Subject subject = event.subjects[i];
 
+            // If subject manifestation and interpretation are not set,
+            // we try to automatically determine them from the other data.
+
+            if (subject.manifestation == "")
+            {
+                unowned string? manifestation = manifestation_for_uri (
+                    subject.uri);
+                if (manifestation != null)
+                    subject.manifestation = manifestation;
+            }
+
+            if (subject.interpretation == "")
+            {
+                unowned string? interpretation = interpretation_for_mimetype (
+                    subject.mimetype);
+                if (interpretation != null)
+                    subject.interpretation = interpretation;
+            }
+
             insert_stmt.bind_text (8, subject.uri);
             insert_stmt.bind_text (9, subject.current_uri);
             insert_stmt.bind_int64 (10,

=== added file 'test/data/incomplete_events.js'
--- test/data/incomplete_events.js	1970-01-01 00:00:00 +0000
+++ test/data/incomplete_events.js	2011-12-29 13:59:16 +0000
@@ -0,0 +1,56 @@
+[
+	{
+		"timestamp" : 400,
+		"interpretation" : "#AccessEvent",
+		"manifestation" : "#UserActivity",
+		"actor" : "Mistery",
+		"subjects" : [
+			{
+				"uri" : "foo://bar",
+				"interpretation" : "",
+				"manifestation" : "Hi"
+			},{
+				"uri" : "http://meh";,
+                "mimetype" : "bs",
+				"interpretation" : "",
+				"manifestation" : "Something"
+			}
+		]
+	},{
+		"timestamp" : 500,
+		"interpretation" : "#AccessEvent",
+		"manifestation" : "#UserActivity",
+		"actor" : "Void",
+		"subjects" : [
+			{
+				"uri" : "file://baz0",
+                "mimetype" : "text/x-python",
+				"interpretation" : "",
+				"manifestation" : ""
+			},{
+				"uri" : "file://baz1",
+                "mimetype" : "text/x-python",
+				"interpretation" : "a",
+				"manifestation" : ""
+			},{
+				"uri" : "file://baz2",
+                "mimetype" : "text/x-python",
+				"interpretation" : "",
+				"manifestation" : "b"
+			}
+		]
+	},{
+		"timestamp" : 600,
+		"interpretation" : "#SendEvent",
+		"manifestation" : "#UserActivity",
+		"actor" : "Empty",
+		"subjects" : [
+			{
+				"uri" : "sftp://quiz";,
+                "mimetype" : "text/x-sql",
+				"interpretation" : "#Audio",
+				"manifestation" : "something else"
+			}
+		]
+	}
+]

=== modified file 'test/dbus/remote-test.py'
--- test/dbus/remote-test.py	2011-12-29 13:22:53 +0000
+++ test/dbus/remote-test.py	2011-12-29 13:59:16 +0000
@@ -224,6 +224,29 @@
 		results = self.findEventsForTemplatesAndWait([], num_events=3)
 		self.assertEquals(3, len(results))
 
+	def testInsertWithEmptySubjectInterpretationManifestation(self):
+		events = parse_events("test/data/incomplete_events.js")
+		ids = self.insertEventsAndWait(events)
+		self.assertEquals(3, len(ids))
+		
+		event = self.getEventsAndWait([ids[0]])[0]
+		self.assertEquals("Hi", event.subjects[0].manifestation)
+		self.assertEquals("", event.subjects[0].interpretation)
+		self.assertEquals("Something", event.subjects[1].manifestation)
+		self.assertEquals("", event.subjects[1].interpretation)
+
+		event = self.getEventsAndWait([ids[1]])[0]
+		self.assertEquals(Manifestation.FILE_DATA_OBJECT, event.subjects[0].manifestation)
+		self.assertEquals(Interpretation.SOURCE_CODE, event.subjects[0].interpretation)
+		self.assertEquals(Manifestation.FILE_DATA_OBJECT, event.subjects[1].manifestation)
+		self.assertEquals("a", event.subjects[1].interpretation)
+		self.assertEquals("b", event.subjects[2].manifestation)
+		self.assertEquals(Interpretation.SOURCE_CODE, event.subjects[2].interpretation)
+		
+		event = self.getEventsAndWait([ids[2]])[0]
+		self.assertEquals("something else", event.subjects[0].manifestation)
+		self.assertEquals("#Audio", event.subjects[0].interpretation)
+
 	def testInsertWithDuplicateSubject(self):
 		events = parse_events("test/data/three_events.js")
 		events[0].subjects.append(list(events[0].subjects[0]))

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

Reply via email to