Merge lp:~rainct/libzeitgeist/event-origin-subject-current-uri into lp:libzeitgeist
- event-origin-subject-current-uri
- Merge into trunk
Proposed by
Siegfried Gevatter
Status: | Merged |
---|---|
Approved by: | Mikkel Kamstrup Erlandsen |
Approved revision: | 216 |
Merged at revision: | 216 |
Proposed branch: | lp:~rainct/libzeitgeist/event-origin-subject-current-uri |
Merge into: | lp:libzeitgeist |
Diff against target: |
462 lines (+206/-15) 5 files modified
src/zeitgeist-event.c (+62/-3) src/zeitgeist-event.h (+4/-0) src/zeitgeist-subject.c (+34/-2) src/zeitgeist-subject.h (+4/-0) tests/test-event.c (+102/-10) |
To merge this branch: | bzr merge lp:~rainct/libzeitgeist/event-origin-subject-current-uri |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Mikkel Kamstrup Erlandsen | Approve | ||
Review via email: mp+90876@code.launchpad.net |
Commit message
Description of the change
To post a comment you must log in.
Revision history for this message
Mikkel Kamstrup Erlandsen (kamstrup) wrote : | # |
review:
Needs Fixing
- 216. By Siegfried Gevatter
-
Improve documentation of zeitgeist_
event_set_ origin
Revision history for this message
Siegfried Gevatter (rainct) wrote : | # |
Done :)
Revision history for this message
Mikkel Kamstrup Erlandsen (kamstrup) wrote : | # |
Great work!
review:
Approve
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'src/zeitgeist-event.c' |
2 | --- src/zeitgeist-event.c 2011-07-11 18:05:11 +0000 |
3 | +++ src/zeitgeist-event.c 2012-02-02 09:59:18 +0000 |
4 | @@ -82,6 +82,7 @@ |
5 | ZEITGEIST_EVENT_INTERPRETATION, |
6 | ZEITGEIST_EVENT_MANIFESTATION, |
7 | ZEITGEIST_EVENT_ACTOR, |
8 | + ZEITGEIST_EVENT_ORIGIN, |
9 | } ZeitgeistEventDataOffset; |
10 | |
11 | typedef struct |
12 | @@ -91,6 +92,7 @@ |
13 | gchar *interpretation; |
14 | gchar *manifestation; |
15 | gchar *actor; |
16 | + gchar *origin; |
17 | GPtrArray *subjects; |
18 | GByteArray *payload; |
19 | } ZeitgeistEventPrivate; |
20 | @@ -431,6 +433,53 @@ |
21 | } |
22 | |
23 | /** |
24 | + * zeitgeist_event_get_origin: |
25 | + * @event: The event to get the origin from |
26 | + * |
27 | + * Get the origin of an event. |
28 | + * This differs from a subject's origin, as it describes where the event comes |
29 | + * from, not where it resides. |
30 | + * |
31 | + * Returns: The origin of @event. |
32 | + */ |
33 | +const gchar* |
34 | +zeitgeist_event_get_origin (ZeitgeistEvent *event) |
35 | +{ |
36 | + g_return_val_if_fail (ZEITGEIST_IS_EVENT (event), NULL); |
37 | + |
38 | + ZeitgeistEventPrivate* priv = ZEITGEIST_EVENT_GET_PRIVATE (event); |
39 | + |
40 | + return priv->origin; |
41 | +} |
42 | + |
43 | +/** |
44 | + * zeitgeist_event_set_origin: |
45 | + * @event: The event to set the origin of |
46 | + * @origin: The origin to set |
47 | + * |
48 | + * Set the origin of an event. |
49 | + * This differs from a subject's origin, as it describes where the event comes |
50 | + * from, not where it resides. |
51 | + */ |
52 | +void |
53 | +zeitgeist_event_set_origin (ZeitgeistEvent *event, |
54 | + const gchar *origin) |
55 | +{ |
56 | + g_return_if_fail (ZEITGEIST_IS_EVENT (event)); |
57 | + |
58 | + ZeitgeistEventPrivate* priv = ZEITGEIST_EVENT_GET_PRIVATE (event); |
59 | + |
60 | + gchar* copy = g_strdup (origin); |
61 | + |
62 | + if (priv->origin) |
63 | + { |
64 | + g_free (priv->origin); |
65 | + } |
66 | + |
67 | + priv->origin = copy; |
68 | +} |
69 | + |
70 | +/** |
71 | * zeitgeist_event_get_payload: |
72 | * @event: The event to get the payload for |
73 | * |
74 | @@ -439,7 +488,6 @@ |
75 | * Returns: The event payload or %NULL if unset. Do not free. If you want to |
76 | * keep the subject around you need to g_byte_array_ref() it. |
77 | */ |
78 | - |
79 | GByteArray* |
80 | zeitgeist_event_get_payload (ZeitgeistEvent *event) |
81 | { |
82 | @@ -491,6 +539,7 @@ |
83 | priv->interpretation = NULL; |
84 | priv->manifestation = NULL; |
85 | priv->actor = NULL; |
86 | + priv->origin = NULL; |
87 | priv->subjects = g_ptr_array_new_with_free_func ( |
88 | (GDestroyNotify)g_object_unref); |
89 | priv->payload = NULL; |
90 | @@ -506,14 +555,15 @@ |
91 | |
92 | if (priv->subjects) |
93 | { |
94 | - /* Subjects are unreffed by the free-func of the GPtrArray */ |
95 | + /* Subjects are unreffed by the free-func of the GPtrArray */ |
96 | g_ptr_array_unref (priv->subjects); |
97 | priv->subjects = NULL; |
98 | } |
99 | |
100 | zeitgeist_event_set_interpretation (event, NULL); |
101 | zeitgeist_event_set_manifestation (event, NULL); |
102 | - zeitgeist_event_set_actor (event, NULL); |
103 | + zeitgeist_event_set_actor (event, NULL); |
104 | + zeitgeist_event_set_origin (event, NULL); |
105 | zeitgeist_event_set_payload (event, NULL); |
106 | |
107 | G_OBJECT_CLASS (zeitgeist_event_parent_class)->finalize (object); |
108 | @@ -550,6 +600,7 @@ |
109 | return self; |
110 | } |
111 | |
112 | +// FIXME: add `origin' parameter |
113 | /** |
114 | * zeitgeist_event_new_full: |
115 | * @interpretation: The interpretation type of the event. |
116 | @@ -691,6 +742,9 @@ |
117 | zeitgeist_event_set_actor (result, str[0] == '\0' ? NULL : str); |
118 | g_free (str); |
119 | |
120 | + if (g_variant_iter_loop (event_data, "s", &str)) |
121 | + zeitgeist_event_set_origin (result, str[0] == '\0' ? NULL : str); |
122 | + |
123 | /* Build the list of subjects */ |
124 | while (g_variant_iter_loop (subjects, "as", &subject_data)) |
125 | { |
126 | @@ -732,6 +786,9 @@ |
127 | zeitgeist_subject_set_storage (subject, str[0] == '\0' ? NULL : str); |
128 | g_free (str); |
129 | |
130 | + if (g_variant_iter_loop (subject_data, "s", &str)) |
131 | + zeitgeist_subject_set_current_uri (subject, str[0] == '\0' ? NULL : str); |
132 | + |
133 | zeitgeist_event_add_subject (result, subject); |
134 | } |
135 | |
136 | @@ -799,6 +856,7 @@ |
137 | g_variant_builder_add (&b, "s", (bif = zeitgeist_event_get_interpretation(event), bif ? bif : "")); |
138 | g_variant_builder_add (&b, "s", (bif = zeitgeist_event_get_manifestation(event), bif ? bif : "")); |
139 | g_variant_builder_add (&b, "s", (bif = zeitgeist_event_get_actor (event), bif ? bif : "")); |
140 | + g_variant_builder_add (&b, "s", (bif = zeitgeist_event_get_origin (event), bif ? bif : "")); |
141 | g_variant_builder_close (&b); |
142 | |
143 | /* Build subjects */ |
144 | @@ -815,6 +873,7 @@ |
145 | g_variant_builder_add (&b, "s", (bif = zeitgeist_subject_get_mimetype(su), bif ? bif : "")); |
146 | g_variant_builder_add (&b, "s", (bif = zeitgeist_subject_get_text(su), bif ? bif : "")); |
147 | g_variant_builder_add (&b, "s", (bif = zeitgeist_subject_get_storage(su), bif ? bif : "")); |
148 | + g_variant_builder_add (&b, "s", (bif = zeitgeist_subject_get_current_uri(su), bif ? bif : "")); |
149 | g_variant_builder_close (&b); |
150 | } |
151 | g_variant_builder_close (&b); |
152 | |
153 | === modified file 'src/zeitgeist-event.h' |
154 | --- src/zeitgeist-event.h 2011-03-07 14:19:39 +0000 |
155 | +++ src/zeitgeist-event.h 2012-02-02 09:59:18 +0000 |
156 | @@ -104,6 +104,10 @@ |
157 | void zeitgeist_event_set_actor (ZeitgeistEvent *event, |
158 | const gchar *actor); |
159 | |
160 | +const gchar* zeitgeist_event_get_origin (ZeitgeistEvent *event); |
161 | +void zeitgeist_event_set_origin (ZeitgeistEvent *event, |
162 | + const gchar *origin); |
163 | + |
164 | void zeitgeist_event_set_actor_from_app_info (ZeitgeistEvent *event, |
165 | GAppInfo *appinfo); |
166 | |
167 | |
168 | === modified file 'src/zeitgeist-subject.c' |
169 | --- src/zeitgeist-subject.c 2011-03-07 14:19:39 +0000 |
170 | +++ src/zeitgeist-subject.c 2012-02-02 09:59:18 +0000 |
171 | @@ -43,6 +43,8 @@ |
172 | ZEITGEIST_SUBJECT_MIMETYPE, |
173 | ZEITGEIST_SUBJECT_ORIGIN, |
174 | ZEITGEIST_SUBJECT_TEXT, |
175 | + ZEITGEIST_SUBJECT_STORAGE, |
176 | + ZEITGEIST_SUBJECT_CURRENT_URI, |
177 | } ZeitgeistSubjectDataOffset; |
178 | |
179 | typedef struct |
180 | @@ -54,6 +56,7 @@ |
181 | gchar *origin; |
182 | gchar *text; |
183 | gchar *storage; |
184 | + gchar *current_uri; |
185 | } ZeitgeistSubjectPrivate; |
186 | |
187 | const gchar* |
188 | @@ -245,6 +248,33 @@ |
189 | priv->storage = copy; |
190 | } |
191 | |
192 | +const gchar* |
193 | +zeitgeist_subject_get_current_uri (ZeitgeistSubject *subject) |
194 | +{ |
195 | + g_return_val_if_fail (ZEITGEIST_IS_SUBJECT (subject), NULL); |
196 | + |
197 | + ZeitgeistSubjectPrivate *priv = ZEITGEIST_SUBJECT_GET_PRIVATE (subject); |
198 | + return priv->current_uri; |
199 | +} |
200 | + |
201 | +void |
202 | +zeitgeist_subject_set_current_uri (ZeitgeistSubject *subject, |
203 | + const gchar *current_uri) |
204 | +{ |
205 | + g_return_if_fail (ZEITGEIST_IS_SUBJECT (subject)); |
206 | + |
207 | + ZeitgeistSubjectPrivate *priv = ZEITGEIST_SUBJECT_GET_PRIVATE (subject); |
208 | + |
209 | + gchar* copy = g_strdup (current_uri); |
210 | + |
211 | + if (priv->current_uri) |
212 | + { |
213 | + g_free (priv->current_uri); |
214 | + } |
215 | + |
216 | + priv->current_uri = copy; |
217 | +} |
218 | + |
219 | static void |
220 | zeitgeist_subject_init (ZeitgeistSubject *object) |
221 | { |
222 | @@ -258,6 +288,7 @@ |
223 | priv->origin = NULL; |
224 | priv->text = NULL; |
225 | priv->storage = NULL; |
226 | + priv->current_uri = NULL; |
227 | } |
228 | |
229 | static void |
230 | @@ -275,6 +306,7 @@ |
231 | zeitgeist_subject_set_origin (subject, NULL); |
232 | zeitgeist_subject_set_text (subject, NULL); |
233 | zeitgeist_subject_set_storage (subject, NULL); |
234 | + zeitgeist_subject_set_current_uri (subject, NULL); |
235 | |
236 | G_OBJECT_CLASS (zeitgeist_subject_parent_class)->finalize (object); |
237 | } |
238 | @@ -306,6 +338,7 @@ |
239 | return g_object_new (ZEITGEIST_TYPE_SUBJECT, NULL); |
240 | } |
241 | |
242 | +// FIXME: add `current_uri' parameter |
243 | /** |
244 | * zeitgeist_subject_new_full: |
245 | * @uri: The URI or URL of the subject |
246 | @@ -319,7 +352,6 @@ |
247 | * @text: A small textual representation of the subject suitable for display |
248 | * @storage: String identifier for the storage medium the subject is on. |
249 | * Se zeitgeist_subject_set_storage() for details |
250 | - * |
251 | * Create a new subject structure with predefined data |
252 | * |
253 | * Returns: A newly create #ZeitgeistSubject instance. The returned subject will |
254 | @@ -347,6 +379,6 @@ |
255 | zeitgeist_subject_set_origin (self, origin); |
256 | zeitgeist_subject_set_text (self, text); |
257 | zeitgeist_subject_set_storage (self, storage); |
258 | - |
259 | + |
260 | return self; |
261 | } |
262 | |
263 | === modified file 'src/zeitgeist-subject.h' |
264 | --- src/zeitgeist-subject.h 2011-03-07 14:19:39 +0000 |
265 | +++ src/zeitgeist-subject.h 2012-02-02 09:59:18 +0000 |
266 | @@ -101,6 +101,10 @@ |
267 | void zeitgeist_subject_set_storage (ZeitgeistSubject *subject, |
268 | const gchar *storage); |
269 | |
270 | +const gchar* zeitgeist_subject_get_current_uri (ZeitgeistSubject *subject); |
271 | +void zeitgeist_subject_set_current_uri (ZeitgeistSubject *subject, |
272 | + const gchar *current_uri); |
273 | + |
274 | G_END_DECLS |
275 | |
276 | #endif /* _ZEITGEIST_SUBJECT_H_ */ |
277 | |
278 | === modified file 'tests/test-event.c' |
279 | --- tests/test-event.c 2011-02-14 08:27:28 +0000 |
280 | +++ tests/test-event.c 2012-02-02 09:59:18 +0000 |
281 | @@ -62,6 +62,7 @@ |
282 | g_assert_cmpstr (NULL, ==, zeitgeist_event_get_interpretation (ev)); |
283 | g_assert_cmpstr (NULL, ==, zeitgeist_event_get_manifestation (ev)); |
284 | g_assert_cmpstr (NULL, ==, zeitgeist_event_get_actor (ev)); |
285 | + g_assert_cmpstr (NULL, ==, zeitgeist_event_get_origin (ev)); |
286 | g_assert_cmpint (0, ==, zeitgeist_event_num_subjects (ev)); |
287 | g_assert (zeitgeist_event_get_payload (ev) == NULL); |
288 | |
289 | @@ -94,6 +95,7 @@ |
290 | g_assert_cmpstr (ZEITGEIST_ZG_ACCESS_EVENT,==, zeitgeist_event_get_interpretation (ev)); |
291 | g_assert_cmpstr (ZEITGEIST_ZG_USER_ACTIVITY, ==, zeitgeist_event_get_manifestation (ev)); |
292 | g_assert_cmpstr ("application://firefox.desktop", ==, zeitgeist_event_get_actor (ev)); |
293 | + g_assert (zeitgeist_event_get_origin (ev) == NULL); |
294 | g_assert_cmpint (2, ==, zeitgeist_event_num_subjects (ev)); |
295 | g_assert (zeitgeist_event_get_payload (ev) == NULL); |
296 | |
297 | @@ -105,6 +107,7 @@ |
298 | g_assert_cmpstr ("http://example.com", ==, zeitgeist_subject_get_origin (su)); |
299 | g_assert_cmpstr ("example.com", ==, zeitgeist_subject_get_text (su)); |
300 | g_assert_cmpstr ("net", ==, zeitgeist_subject_get_storage (su)); |
301 | + g_assert (zeitgeist_subject_get_current_uri (su) == NULL); |
302 | |
303 | su = zeitgeist_event_get_subject (ev, 1); |
304 | g_assert (zeitgeist_subject_get_uri(su) == NULL); |
305 | @@ -114,6 +117,7 @@ |
306 | g_assert (zeitgeist_subject_get_origin (su) == NULL); |
307 | g_assert (zeitgeist_subject_get_text (su) == NULL); |
308 | g_assert (zeitgeist_subject_get_storage (su) == NULL); |
309 | + g_assert (zeitgeist_subject_get_current_uri (su) == NULL); |
310 | |
311 | g_object_unref (ev); |
312 | } |
313 | @@ -183,16 +187,93 @@ |
314 | g_assert_cmpstr (ZEITGEIST_ZG_ACCESS_EVENT,==, zeitgeist_event_get_interpretation (ev)); |
315 | g_assert_cmpstr (ZEITGEIST_ZG_USER_ACTIVITY, ==, zeitgeist_event_get_manifestation (ev)); |
316 | g_assert_cmpstr ("application://foo.desktop", ==, zeitgeist_event_get_actor (ev)); |
317 | - g_assert_cmpint (1, ==, zeitgeist_event_num_subjects (ev)); |
318 | - |
319 | - su = zeitgeist_event_get_subject (ev, 0); |
320 | - g_assert_cmpstr ("file:///tmp/foo.txt", ==, zeitgeist_subject_get_uri(su)); |
321 | - g_assert_cmpstr (ZEITGEIST_NFO_DOCUMENT, ==, zeitgeist_subject_get_interpretation (su)); |
322 | - g_assert_cmpstr (ZEITGEIST_NFO_FILE_DATA_OBJECT, ==, zeitgeist_subject_get_manifestation (su)); |
323 | - g_assert_cmpstr ("text/plain", ==, zeitgeist_subject_get_mimetype (su)); |
324 | - g_assert_cmpstr ("file:///tmp", ==, zeitgeist_subject_get_origin (su)); |
325 | - g_assert_cmpstr ("foo.txt", ==, zeitgeist_subject_get_text (su)); |
326 | - g_assert_cmpstr ("36e5604e-7e1b-4ebd-bb6a-184c6ea99627", ==, zeitgeist_subject_get_storage (su)); |
327 | + g_assert (zeitgeist_event_get_origin (ev) == NULL); |
328 | + g_assert_cmpint (1, ==, zeitgeist_event_num_subjects (ev)); |
329 | + |
330 | + su = zeitgeist_event_get_subject (ev, 0); |
331 | + g_assert_cmpstr ("file:///tmp/foo.txt", ==, zeitgeist_subject_get_uri(su)); |
332 | + g_assert_cmpstr (ZEITGEIST_NFO_DOCUMENT, ==, zeitgeist_subject_get_interpretation (su)); |
333 | + g_assert_cmpstr (ZEITGEIST_NFO_FILE_DATA_OBJECT, ==, zeitgeist_subject_get_manifestation (su)); |
334 | + g_assert_cmpstr ("text/plain", ==, zeitgeist_subject_get_mimetype (su)); |
335 | + g_assert_cmpstr ("file:///tmp", ==, zeitgeist_subject_get_origin (su)); |
336 | + g_assert_cmpstr ("foo.txt", ==, zeitgeist_subject_get_text (su)); |
337 | + g_assert_cmpstr ("36e5604e-7e1b-4ebd-bb6a-184c6ea99627", ==, zeitgeist_subject_get_storage (su)); |
338 | + g_assert (zeitgeist_subject_get_current_uri (su) == NULL); |
339 | + |
340 | + payload = zeitgeist_event_get_payload (ev); |
341 | + g_assert (payload != NULL); |
342 | + g_assert_cmpint (3, ==, payload->len); |
343 | + g_assert_cmpint (1, ==, payload->data[0]); |
344 | + g_assert_cmpint (2, ==, payload->data[1]); |
345 | + g_assert_cmpint (3, ==, payload->data[2]); |
346 | + |
347 | + g_object_unref (ev); |
348 | +} |
349 | + |
350 | +static void |
351 | +test_from_variant_with_new_fields (Fixture *fix, gconstpointer data) |
352 | +{ |
353 | + GVariant *var; |
354 | + GVariantBuilder b; |
355 | + ZeitgeistEvent *ev; |
356 | + ZeitgeistSubject *su; |
357 | + GByteArray *payload; |
358 | + |
359 | + g_variant_builder_init (&b, ZEITGEIST_EVENT_VARIANT_TYPE); |
360 | + |
361 | + /* Build event data */ |
362 | + g_variant_builder_open (&b, G_VARIANT_TYPE ("as")); |
363 | + g_variant_builder_add (&b, "s", "27"); |
364 | + g_variant_builder_add (&b, "s", "68"); |
365 | + g_variant_builder_add (&b, "s", ZEITGEIST_ZG_ACCESS_EVENT); |
366 | + g_variant_builder_add (&b, "s", ZEITGEIST_ZG_USER_ACTIVITY); |
367 | + g_variant_builder_add (&b, "s", "application://foo.desktop"); |
368 | + g_variant_builder_add (&b, "s", "origin"); |
369 | + g_variant_builder_close (&b); |
370 | + |
371 | + /* Build subjects */ |
372 | + g_variant_builder_open (&b, G_VARIANT_TYPE ("aas")); |
373 | + { |
374 | + g_variant_builder_open (&b, G_VARIANT_TYPE ("as")); |
375 | + g_variant_builder_add (&b, "s", "file:///tmp/foo.txt"); |
376 | + g_variant_builder_add (&b, "s", ZEITGEIST_NFO_DOCUMENT); |
377 | + g_variant_builder_add (&b, "s", ZEITGEIST_NFO_FILE_DATA_OBJECT); |
378 | + g_variant_builder_add (&b, "s", "file:///tmp"); |
379 | + g_variant_builder_add (&b, "s", "text/plain"); |
380 | + g_variant_builder_add (&b, "s", "foo.txt"); |
381 | + g_variant_builder_add (&b, "s", "36e5604e-7e1b-4ebd-bb6a-184c6ea99627"); |
382 | + g_variant_builder_add (&b, "s", "file:///tmp/current.txt"); |
383 | + g_variant_builder_close (&b); |
384 | + } |
385 | + g_variant_builder_close (&b); |
386 | + |
387 | + /* Build payload */ |
388 | + g_variant_builder_open (&b, G_VARIANT_TYPE ("ay")); |
389 | + g_variant_builder_add (&b, "y", 1); |
390 | + g_variant_builder_add (&b, "y", 2); |
391 | + g_variant_builder_add (&b, "y", 3); |
392 | + g_variant_builder_close (&b); |
393 | + |
394 | + var = g_variant_builder_end (&b); |
395 | + ev = zeitgeist_event_new_from_variant (var); // var freed |
396 | + |
397 | + g_assert_cmpint (27, ==, zeitgeist_event_get_id (ev)); |
398 | + g_assert_cmpint (68, ==, zeitgeist_event_get_timestamp (ev)); |
399 | + g_assert_cmpstr (ZEITGEIST_ZG_ACCESS_EVENT,==, zeitgeist_event_get_interpretation (ev)); |
400 | + g_assert_cmpstr (ZEITGEIST_ZG_USER_ACTIVITY, ==, zeitgeist_event_get_manifestation (ev)); |
401 | + g_assert_cmpstr ("application://foo.desktop", ==, zeitgeist_event_get_actor (ev)); |
402 | + g_assert_cmpstr ("origin", ==, zeitgeist_event_get_origin (ev)); |
403 | + g_assert_cmpint (1, ==, zeitgeist_event_num_subjects (ev)); |
404 | + |
405 | + su = zeitgeist_event_get_subject (ev, 0); |
406 | + g_assert_cmpstr ("file:///tmp/foo.txt", ==, zeitgeist_subject_get_uri(su)); |
407 | + g_assert_cmpstr (ZEITGEIST_NFO_DOCUMENT, ==, zeitgeist_subject_get_interpretation (su)); |
408 | + g_assert_cmpstr (ZEITGEIST_NFO_FILE_DATA_OBJECT, ==, zeitgeist_subject_get_manifestation (su)); |
409 | + g_assert_cmpstr ("text/plain", ==, zeitgeist_subject_get_mimetype (su)); |
410 | + g_assert_cmpstr ("file:///tmp", ==, zeitgeist_subject_get_origin (su)); |
411 | + g_assert_cmpstr ("foo.txt", ==, zeitgeist_subject_get_text (su)); |
412 | + g_assert_cmpstr ("36e5604e-7e1b-4ebd-bb6a-184c6ea99627", ==, zeitgeist_subject_get_storage (su)); |
413 | + g_assert_cmpstr ("file:///tmp/current.txt", ==, zeitgeist_subject_get_current_uri (su)); |
414 | |
415 | payload = zeitgeist_event_get_payload (ev); |
416 | g_assert (payload != NULL); |
417 | @@ -218,6 +299,7 @@ |
418 | g_assert (zeitgeist_event_get_interpretation (marshalled) == NULL); |
419 | g_assert (zeitgeist_event_get_manifestation (marshalled) == NULL); |
420 | g_assert (zeitgeist_event_get_actor (marshalled) == NULL); |
421 | + g_assert (zeitgeist_event_get_origin (marshalled) == NULL); |
422 | g_assert_cmpint (0, ==, zeitgeist_event_num_subjects (marshalled)); |
423 | g_assert (zeitgeist_event_get_payload (marshalled) == NULL); |
424 | |
425 | @@ -245,6 +327,12 @@ |
426 | "example.com", |
427 | "net"), |
428 | NULL); |
429 | + |
430 | + // Set event origin and current_uri |
431 | + zeitgeist_event_set_origin (orig, "origin"); |
432 | + zeitgeist_subject_set_current_uri ( |
433 | + zeitgeist_event_get_subject (orig, 0), "http://current-example.com"); |
434 | + |
435 | payload = g_byte_array_new (); |
436 | byte = 255; |
437 | g_byte_array_append (payload, &byte, 1); |
438 | @@ -257,6 +345,7 @@ |
439 | g_assert_cmpstr (ZEITGEIST_ZG_ACCESS_EVENT,==, zeitgeist_event_get_interpretation (marshalled)); |
440 | g_assert_cmpstr (ZEITGEIST_ZG_USER_ACTIVITY, ==, zeitgeist_event_get_manifestation (marshalled)); |
441 | g_assert_cmpstr ("application://firefox.desktop", ==, zeitgeist_event_get_actor (marshalled)); |
442 | + g_assert_cmpstr ("origin", ==, zeitgeist_event_get_origin (marshalled)); |
443 | g_assert_cmpint (1, ==, zeitgeist_event_num_subjects (marshalled)); |
444 | |
445 | payload = zeitgeist_event_get_payload (marshalled); |
446 | @@ -272,6 +361,7 @@ |
447 | g_assert_cmpstr ("http://example.com", ==, zeitgeist_subject_get_origin (su)); |
448 | g_assert_cmpstr ("example.com", ==, zeitgeist_subject_get_text (su)); |
449 | g_assert_cmpstr ("net", ==, zeitgeist_subject_get_storage (su)); |
450 | + g_assert_cmpstr ("http://current-example.com", ==, zeitgeist_subject_get_current_uri (su)); |
451 | |
452 | g_object_unref (orig); |
453 | g_object_unref (marshalled); |
454 | @@ -333,6 +423,8 @@ |
455 | setup, test_actor_from_app_info, teardown); |
456 | g_test_add ("/Zeitgeist/Event/FromVariant", Fixture, NULL, |
457 | setup, test_from_variant, teardown); |
458 | + g_test_add ("/Zeitgeist/Event/FromVariantWithNewFields", Fixture, NULL, |
459 | + setup, test_from_variant_with_new_fields, teardown); |
460 | g_test_add ("/Zeitgeist/Event/EmptyToFromVariant", Fixture, NULL, |
461 | setup, test_empty_to_from_variant, teardown); |
462 | g_test_add ("/Zeitgeist/Event/WithOneSubjectToFromVariant", Fixture, NULL, |
Looking good Siegfried, and I am glad we that we can stick this in the ABI stable series. from the principle that any mrq with more than 100 lines must have at least one comment - here goes ;-) :
28 + * This differs from a subject's origin, as it describes where the event comes
29 + * from, not where it resides.
Can you add this event.set_origin() as well?