1
/* duplicated-emails.c generated by valac 0.12.0, the Vala compiler
2
* generated from duplicated-emails.vala, do not modify */
5
* Copyright (C) 2011 Collabora Ltd.
7
* This library is free software: you can redistribute it and/or modify
8
* it under the terms of the GNU Lesser General Public License as published by
9
* the Free Software Foundation, either version 2.1 of the License, or
10
* (at your option) any later version.
12
* This library is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
* GNU Lesser General Public License for more details.
17
* You should have received a copy of the GNU Lesser General Public License
18
* along with this library. If not, see <http://www.gnu.org/licenses/>.
20
* Authors: Raul Gutierrez Segales <raul.gutierrez.segales@collabora.co.uk>
25
#include <glib-object.h>
26
#include <folks-test.h>
27
#include <tracker-test.h>
28
#include <folks/folks.h>
31
#include <folks/folks-tracker.h>
36
#define TYPE_DUPLICATED_EMAILS_TESTS (duplicated_emails_tests_get_type ())
37
#define DUPLICATED_EMAILS_TESTS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DUPLICATED_EMAILS_TESTS, DuplicatedEmailsTests))
38
#define DUPLICATED_EMAILS_TESTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DUPLICATED_EMAILS_TESTS, DuplicatedEmailsTestsClass))
39
#define IS_DUPLICATED_EMAILS_TESTS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DUPLICATED_EMAILS_TESTS))
40
#define IS_DUPLICATED_EMAILS_TESTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DUPLICATED_EMAILS_TESTS))
41
#define DUPLICATED_EMAILS_TESTS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DUPLICATED_EMAILS_TESTS, DuplicatedEmailsTestsClass))
43
typedef struct _DuplicatedEmailsTests DuplicatedEmailsTests;
44
typedef struct _DuplicatedEmailsTestsClass DuplicatedEmailsTestsClass;
45
typedef struct _DuplicatedEmailsTestsPrivate DuplicatedEmailsTestsPrivate;
46
#define _g_main_loop_unref0(var) ((var == NULL) ? NULL : (var = (g_main_loop_unref (var), NULL)))
47
#define _tracker_test_backend_unref0(var) ((var == NULL) ? NULL : (var = (tracker_test_backend_unref (var), NULL)))
48
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
49
#define _g_free0(var) (var = (g_free (var), NULL))
50
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
51
typedef struct _DuplicatedEmailsTestsTestDuplicatedEmailsAsyncData DuplicatedEmailsTestsTestDuplicatedEmailsAsyncData;
52
typedef struct _DuplicatedEmailsTestsTryToAddData DuplicatedEmailsTestsTryToAddData;
53
#define __vala_GValue_free0(var) ((var == NULL) ? NULL : (var = (_vala_GValue_free (var), NULL)))
54
#define _g_hash_table_unref0(var) ((var == NULL) ? NULL : (var = (g_hash_table_unref (var), NULL)))
55
typedef struct _DuplicatedEmailsTestsAddPersonasData DuplicatedEmailsTestsAddPersonasData;
57
struct _DuplicatedEmailsTests {
58
FolksTestCase parent_instance;
59
DuplicatedEmailsTestsPrivate * priv;
62
struct _DuplicatedEmailsTestsClass {
63
FolksTestCaseClass parent_class;
66
struct _DuplicatedEmailsTestsPrivate {
67
GMainLoop* _main_loop;
68
TrackerTestBackend* _tracker_backend;
69
FolksIndividualAggregator* _aggregator;
70
gchar* _persona_fullname_1;
71
gchar* _persona_fullname_2;
73
gboolean _added_personas;
74
GStaticRecMutex __lock__added_personas;
75
gchar* _individual_id_1;
76
gchar* _individual_id_2;
77
TrfPersonaStore* _pstore;
80
struct _DuplicatedEmailsTestsTestDuplicatedEmailsAsyncData {
82
GObject* _source_object_;
84
GSimpleAsyncResult* _async_result;
85
DuplicatedEmailsTests* self;
86
FolksBackendStore* _tmp0_;
87
FolksBackendStore* store;
88
FolksIndividualAggregator* _tmp1_;
90
GeeCollection* _tmp3_;
91
GeeCollection* _tmp4_;
94
GeeIterator* _backend_it;
97
FolksBackend* backend;
101
GError * _inner_error_;
104
struct _DuplicatedEmailsTestsTryToAddData {
106
GObject* _source_object_;
108
GSimpleAsyncResult* _async_result;
109
DuplicatedEmailsTests* self;
112
GError * _inner_error_;
115
struct _DuplicatedEmailsTestsAddPersonasData {
117
GObject* _source_object_;
119
GSimpleAsyncResult* _async_result;
120
DuplicatedEmailsTests* self;
122
GHashTable* details1;
124
GHashTable* details2;
139
FolksFieldDetails* _tmp14_;
140
FolksFieldDetails* email_1;
141
const gchar* _tmp15_;
148
const gchar* _tmp22_;
157
FolksFieldDetails* _tmp30_;
158
FolksFieldDetails* email_2;
159
const gchar* _tmp31_;
162
FolksPersona* _tmp34_;
163
FolksPersona* _tmp35_;
164
FolksPersona* _tmp36_;
165
FolksPersona* _tmp37_;
167
GError * _inner_error_;
171
static gpointer duplicated_emails_tests_parent_class = NULL;
173
GType duplicated_emails_tests_get_type (void) G_GNUC_CONST;
174
#define DUPLICATED_EMAILS_TESTS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_DUPLICATED_EMAILS_TESTS, DuplicatedEmailsTestsPrivate))
176
DUPLICATED_EMAILS_TESTS_DUMMY_PROPERTY
178
DuplicatedEmailsTests* duplicated_emails_tests_new (void);
179
DuplicatedEmailsTests* duplicated_emails_tests_construct (GType object_type);
180
void duplicated_emails_tests_test_duplicated_emails (DuplicatedEmailsTests* self);
181
static void _duplicated_emails_tests_test_duplicated_emails_folks_test_case_test_method (gpointer self);
182
static void duplicated_emails_tests_real_set_up (FolksTestCase* base);
183
static void duplicated_emails_tests_real_tear_down (FolksTestCase* base);
184
static void _duplicated_emails_tests_test_duplicated_emails_async (DuplicatedEmailsTests* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
185
static void _duplicated_emails_tests_test_duplicated_emails_finish (DuplicatedEmailsTests* self, GAsyncResult* _res_);
186
static gboolean _lambda0_ (DuplicatedEmailsTests* self);
187
static gboolean __lambda0__gsource_func (gpointer self);
188
static void _duplicated_emails_tests_test_duplicated_emails_async_data_free (gpointer _data);
189
static gboolean _duplicated_emails_tests_test_duplicated_emails_async_co (DuplicatedEmailsTestsTestDuplicatedEmailsAsyncData* data);
190
static void _duplicated_emails_tests_test_duplicated_emails_async_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
191
static void _duplicated_emails_tests_individuals_changed_cb (DuplicatedEmailsTests* self, GeeSet* added, GeeSet* removed, const gchar* message, FolksPersona* actor, FolksGroupDetailsChangeReason reason);
192
static void __duplicated_emails_tests_individuals_changed_cb_folks_individual_aggregator_individuals_changed (FolksIndividualAggregator* _sender, GeeSet* added, GeeSet* removed, const gchar* message, FolksPersona* actor, FolksGroupDetailsChangeReason reason, gpointer self);
193
static void _duplicated_emails_tests_notify_pstore_cb (DuplicatedEmailsTests* self, GObject* _pstore, GParamSpec* ps);
194
static void __duplicated_emails_tests_notify_pstore_cb_g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
195
static void _duplicated_emails_tests_try_to_add (DuplicatedEmailsTests* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
196
static void _duplicated_emails_tests_try_to_add_finish (DuplicatedEmailsTests* self, GAsyncResult* _res_);
197
static void _duplicated_emails_tests_try_to_add_data_free (gpointer _data);
198
static gboolean _duplicated_emails_tests_try_to_add_co (DuplicatedEmailsTestsTryToAddData* data);
199
static void _duplicated_emails_tests_add_personas (DuplicatedEmailsTests* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
200
static void _duplicated_emails_tests_add_personas_finish (DuplicatedEmailsTests* self, GAsyncResult* _res_);
201
static void _duplicated_emails_tests_try_to_add_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
202
static void _duplicated_emails_tests_add_personas_data_free (gpointer _data);
203
static gboolean _duplicated_emails_tests_add_personas_co (DuplicatedEmailsTestsAddPersonasData* data);
204
static void _g_free0_ (gpointer var);
205
static void _vala_GValue_free (GValue* self);
206
static void __vala_GValue_free0_ (gpointer var);
207
static GValue* _g_value_dup (GValue* self);
208
static void _duplicated_emails_tests_add_personas_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
209
static void duplicated_emails_tests_finalize (GObject* obj);
210
gint _vala_main (gchar** args, int args_length1);
213
static void _duplicated_emails_tests_test_duplicated_emails_folks_test_case_test_method (gpointer self) {
214
duplicated_emails_tests_test_duplicated_emails (self);
218
DuplicatedEmailsTests* duplicated_emails_tests_construct (GType object_type) {
219
DuplicatedEmailsTests * self = NULL;
220
TrackerTestBackend* _tmp0_ = NULL;
221
self = (DuplicatedEmailsTests*) folks_test_case_construct (object_type, "DuplicatedEmailsTests");
222
_tmp0_ = tracker_test_backend_new ();
223
_tracker_test_backend_unref0 (self->priv->_tracker_backend);
224
self->priv->_tracker_backend = _tmp0_;
225
folks_test_case_add_test ((FolksTestCase*) self, "test adding 2 personas with the same email address ", _duplicated_emails_tests_test_duplicated_emails_folks_test_case_test_method, self);
230
DuplicatedEmailsTests* duplicated_emails_tests_new (void) {
231
return duplicated_emails_tests_construct (TYPE_DUPLICATED_EMAILS_TESTS);
235
static void duplicated_emails_tests_real_set_up (FolksTestCase* base) {
236
DuplicatedEmailsTests * self;
237
self = (DuplicatedEmailsTests*) base;
241
static void duplicated_emails_tests_real_tear_down (FolksTestCase* base) {
242
DuplicatedEmailsTests * self;
243
self = (DuplicatedEmailsTests*) base;
244
tracker_test_backend_tear_down (self->priv->_tracker_backend);
248
static gboolean _lambda0_ (DuplicatedEmailsTests* self) {
249
gboolean result = FALSE;
250
g_main_loop_quit (self->priv->_main_loop);
251
g_assert_not_reached ();
256
static gboolean __lambda0__gsource_func (gpointer self) {
258
result = _lambda0_ (self);
263
void duplicated_emails_tests_test_duplicated_emails (DuplicatedEmailsTests* self) {
264
GMainLoop* _tmp0_ = NULL;
265
g_return_if_fail (self != NULL);
266
_tmp0_ = g_main_loop_new (NULL, FALSE);
267
_g_main_loop_unref0 (self->priv->_main_loop);
268
self->priv->_main_loop = _tmp0_;
269
_duplicated_emails_tests_test_duplicated_emails_async (self, NULL, NULL);
270
g_timeout_add_seconds_full (G_PRIORITY_DEFAULT, (guint) 5, __lambda0__gsource_func, g_object_ref (self), g_object_unref);
271
g_main_loop_run (self->priv->_main_loop);
272
g_assert (g_strcmp0 (self->priv->_individual_id_1, "") != 0);
273
g_assert (g_strcmp0 (self->priv->_individual_id_2, "") != 0);
277
static void _duplicated_emails_tests_test_duplicated_emails_async_data_free (gpointer _data) {
278
DuplicatedEmailsTestsTestDuplicatedEmailsAsyncData* data;
280
_g_object_unref0 (data->self);
281
g_slice_free (DuplicatedEmailsTestsTestDuplicatedEmailsAsyncData, data);
285
static gpointer _g_object_ref0 (gpointer self) {
286
return self ? g_object_ref (self) : NULL;
290
static void _duplicated_emails_tests_test_duplicated_emails_async (DuplicatedEmailsTests* self, GAsyncReadyCallback _callback_, gpointer _user_data_) {
291
DuplicatedEmailsTestsTestDuplicatedEmailsAsyncData* _data_;
292
_data_ = g_slice_new0 (DuplicatedEmailsTestsTestDuplicatedEmailsAsyncData);
293
_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, _duplicated_emails_tests_test_duplicated_emails_async);
294
g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, _duplicated_emails_tests_test_duplicated_emails_async_data_free);
295
_data_->self = _g_object_ref0 (self);
296
_duplicated_emails_tests_test_duplicated_emails_async_co (_data_);
300
static void _duplicated_emails_tests_test_duplicated_emails_finish (DuplicatedEmailsTests* self, GAsyncResult* _res_) {
301
DuplicatedEmailsTestsTestDuplicatedEmailsAsyncData* _data_;
302
_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
306
static void _duplicated_emails_tests_test_duplicated_emails_async_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
307
DuplicatedEmailsTestsTestDuplicatedEmailsAsyncData* data;
309
data->_source_object_ = source_object;
311
_duplicated_emails_tests_test_duplicated_emails_async_co (data);
315
static void __duplicated_emails_tests_individuals_changed_cb_folks_individual_aggregator_individuals_changed (FolksIndividualAggregator* _sender, GeeSet* added, GeeSet* removed, const gchar* message, FolksPersona* actor, FolksGroupDetailsChangeReason reason, gpointer self) {
316
_duplicated_emails_tests_individuals_changed_cb (self, added, removed, message, actor, reason);
320
static void __duplicated_emails_tests_notify_pstore_cb_g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
321
_duplicated_emails_tests_notify_pstore_cb (self, _sender, pspec);
325
static gboolean _duplicated_emails_tests_test_duplicated_emails_async_co (DuplicatedEmailsTestsTestDuplicatedEmailsAsyncData* data) {
326
switch (data->_state_) {
334
g_assert_not_reached ();
338
data->_tmp0_ = folks_backend_store_dup ();
339
data->store = data->_tmp0_;
341
folks_backend_store_prepare (data->store, _duplicated_emails_tests_test_duplicated_emails_async_ready, data);
344
folks_backend_store_prepare_finish (data->store, data->_res_);
346
data->_tmp1_ = folks_individual_aggregator_new ();
347
_g_object_unref0 (data->self->priv->_aggregator);
348
data->self->priv->_aggregator = data->_tmp1_;
349
g_signal_connect_object (data->self->priv->_aggregator, "individuals-changed", (GCallback) __duplicated_emails_tests_individuals_changed_cb_folks_individual_aggregator_individuals_changed, data->self, 0);
351
folks_individual_aggregator_prepare (data->self->priv->_aggregator, _duplicated_emails_tests_test_duplicated_emails_async_ready, data);
354
folks_individual_aggregator_prepare_finish (data->self->priv->_aggregator, data->_res_, &data->_inner_error_);
355
if (data->_inner_error_ != NULL) {
356
goto __catch0_g_error;
358
_g_object_unref0 (data->self->priv->_pstore);
359
data->self->priv->_pstore = NULL;
362
data->_tmp2_ = folks_backend_store_get_enabled_backends (data->store);
364
data->_tmp3_ = gee_map_get_values (data->_tmp2_);
365
data->_tmp4_ = data->_tmp3_;
367
data->_tmp5_ = gee_iterable_iterator ((GeeIterable*) data->_tmp4_);
368
data->_tmp6_ = data->_tmp5_;
369
_g_object_unref0 (data->_tmp4_);
370
data->_backend_it = data->_tmp6_;
372
data->_tmp7_ = gee_iterator_next (data->_backend_it);
377
data->_tmp8_ = gee_iterator_get (data->_backend_it);
378
data->backend = (FolksBackend*) data->_tmp8_;
380
data->_tmp9_ = folks_backend_get_persona_stores (data->backend);
381
data->_tmp10_ = NULL;
382
data->_tmp10_ = gee_map_get (data->_tmp9_, "tracker");
383
_g_object_unref0 (data->self->priv->_pstore);
384
data->self->priv->_pstore = TRF_PERSONA_STORE ((FolksPersonaStore*) data->_tmp10_);
385
if (data->self->priv->_pstore != NULL) {
386
_g_object_unref0 (data->backend);
389
_g_object_unref0 (data->backend);
391
_g_object_unref0 (data->_backend_it);
393
g_assert (data->self->priv->_pstore != NULL);
394
g_signal_connect_object ((GObject*) data->self->priv->_pstore, "notify::is-prepared", (GCallback) __duplicated_emails_tests_notify_pstore_cb_g_object_notify, data->self, 0);
395
_duplicated_emails_tests_try_to_add (data->self, NULL, NULL);
399
data->e = data->_inner_error_;
400
data->_inner_error_ = NULL;
401
g_warning ("duplicated-emails.vala:99: Error when calling prepare: %s\n", data->e->message);
402
_g_error_free0 (data->e);
405
if (data->_inner_error_ != NULL) {
406
_g_object_unref0 (data->store);
407
g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, data->_inner_error_->message, g_quark_to_string (data->_inner_error_->domain), data->_inner_error_->code);
408
g_clear_error (&data->_inner_error_);
411
_g_object_unref0 (data->store);
412
if (data->_state_ == 0) {
413
g_simple_async_result_complete_in_idle (data->_async_result);
415
g_simple_async_result_complete (data->_async_result);
417
g_object_unref (data->_async_result);
422
static void _duplicated_emails_tests_individuals_changed_cb (DuplicatedEmailsTests* self, GeeSet* added, GeeSet* removed, const gchar* message, FolksPersona* actor, FolksGroupDetailsChangeReason reason) {
423
gboolean _tmp9_ = FALSE;
425
g_return_if_fail (self != NULL);
426
g_return_if_fail (added != NULL);
427
g_return_if_fail (removed != NULL);
429
GeeIterator* _tmp0_ = NULL;
431
_tmp0_ = gee_iterable_iterator ((GeeIterable*) added);
435
gpointer _tmp2_ = NULL;
437
const gchar* _tmp3_ = NULL;
438
_tmp1_ = gee_iterator_next (_i_it);
442
_tmp2_ = gee_iterator_get (_i_it);
443
i = (FolksIndividual*) _tmp2_;
444
_tmp3_ = folks_name_details_get_full_name ((FolksNameDetails*) i);
445
if (g_strcmp0 (_tmp3_, self->priv->_persona_fullname_1) == 0) {
446
const gchar* _tmp4_ = NULL;
448
_tmp4_ = folks_individual_get_id (i);
449
_tmp5_ = g_strdup (_tmp4_);
450
_g_free0 (self->priv->_individual_id_1);
451
self->priv->_individual_id_1 = _tmp5_;
453
const gchar* _tmp6_ = NULL;
454
_tmp6_ = folks_name_details_get_full_name ((FolksNameDetails*) i);
455
if (g_strcmp0 (_tmp6_, self->priv->_persona_fullname_2) == 0) {
456
const gchar* _tmp7_ = NULL;
458
_tmp7_ = folks_individual_get_id (i);
459
_tmp8_ = g_strdup (_tmp7_);
460
_g_free0 (self->priv->_individual_id_2);
461
self->priv->_individual_id_2 = _tmp8_;
464
_g_object_unref0 (i);
466
_g_object_unref0 (_i_it);
468
if (g_strcmp0 (self->priv->_individual_id_1, "") != 0) {
469
_tmp9_ = g_strcmp0 (self->priv->_individual_id_2, "") != 0;
474
g_main_loop_quit (self->priv->_main_loop);
476
_tmp10_ = gee_collection_get_size ((GeeCollection*) removed);
477
g_assert (_tmp10_ == 0);
481
static void _duplicated_emails_tests_notify_pstore_cb (DuplicatedEmailsTests* self, GObject* _pstore, GParamSpec* ps) {
482
g_return_if_fail (self != NULL);
483
g_return_if_fail (_pstore != NULL);
484
g_return_if_fail (ps != NULL);
485
_duplicated_emails_tests_try_to_add (self, NULL, NULL);
489
static void _duplicated_emails_tests_try_to_add_data_free (gpointer _data) {
490
DuplicatedEmailsTestsTryToAddData* data;
492
_g_object_unref0 (data->self);
493
g_slice_free (DuplicatedEmailsTestsTryToAddData, data);
497
static void _duplicated_emails_tests_try_to_add (DuplicatedEmailsTests* self, GAsyncReadyCallback _callback_, gpointer _user_data_) {
498
DuplicatedEmailsTestsTryToAddData* _data_;
499
_data_ = g_slice_new0 (DuplicatedEmailsTestsTryToAddData);
500
_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, _duplicated_emails_tests_try_to_add);
501
g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, _duplicated_emails_tests_try_to_add_data_free);
502
_data_->self = _g_object_ref0 (self);
503
_duplicated_emails_tests_try_to_add_co (_data_);
507
static void _duplicated_emails_tests_try_to_add_finish (DuplicatedEmailsTests* self, GAsyncResult* _res_) {
508
DuplicatedEmailsTestsTryToAddData* _data_;
509
_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
513
static void _duplicated_emails_tests_try_to_add_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
514
DuplicatedEmailsTestsTryToAddData* data;
516
data->_source_object_ = source_object;
518
_duplicated_emails_tests_try_to_add_co (data);
522
static gboolean _duplicated_emails_tests_try_to_add_co (DuplicatedEmailsTestsTryToAddData* data) {
523
switch (data->_state_) {
529
g_assert_not_reached ();
533
g_static_rec_mutex_lock (&data->self->priv->__lock__added_personas);
534
data->_tmp1_ = folks_persona_store_get_is_prepared ((FolksPersonaStore*) data->self->priv->_pstore);
536
data->_tmp0_ = data->self->priv->_added_personas == FALSE;
538
data->_tmp0_ = FALSE;
541
data->self->priv->_added_personas = TRUE;
543
_duplicated_emails_tests_add_personas (data->self, _duplicated_emails_tests_try_to_add_ready, data);
546
_duplicated_emails_tests_add_personas_finish (data->self, data->_res_);
549
g_static_rec_mutex_unlock (&data->self->priv->__lock__added_personas);
550
if (data->_inner_error_ != NULL) {
551
g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, data->_inner_error_->message, g_quark_to_string (data->_inner_error_->domain), data->_inner_error_->code);
552
g_clear_error (&data->_inner_error_);
556
if (data->_state_ == 0) {
557
g_simple_async_result_complete_in_idle (data->_async_result);
559
g_simple_async_result_complete (data->_async_result);
561
g_object_unref (data->_async_result);
566
static void _duplicated_emails_tests_add_personas_data_free (gpointer _data) {
567
DuplicatedEmailsTestsAddPersonasData* data;
569
_g_object_unref0 (data->self);
570
g_slice_free (DuplicatedEmailsTestsAddPersonasData, data);
574
static void _duplicated_emails_tests_add_personas (DuplicatedEmailsTests* self, GAsyncReadyCallback _callback_, gpointer _user_data_) {
575
DuplicatedEmailsTestsAddPersonasData* _data_;
576
_data_ = g_slice_new0 (DuplicatedEmailsTestsAddPersonasData);
577
_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, _duplicated_emails_tests_add_personas);
578
g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, _duplicated_emails_tests_add_personas_data_free);
579
_data_->self = _g_object_ref0 (self);
580
_duplicated_emails_tests_add_personas_co (_data_);
584
static void _duplicated_emails_tests_add_personas_finish (DuplicatedEmailsTests* self, GAsyncResult* _res_) {
585
DuplicatedEmailsTestsAddPersonasData* _data_;
586
_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
591
* Add 2 personas with the same e-mail address. Although
592
* Tracker forbids inserting 2 duplicated nco:EmailAddresses,
593
* our Trf.PersonaStore should be able to detect the existence
594
* of an e-mail address and re-use that instead of trying to
597
static void _g_free0_ (gpointer var) {
598
var = (g_free (var), NULL);
602
static void _vala_GValue_free (GValue* self) {
603
g_value_unset (self);
608
static void __vala_GValue_free0_ (gpointer var) {
609
(var == NULL) ? NULL : (var = (_vala_GValue_free (var), NULL));
613
static GValue* _g_value_dup (GValue* self) {
614
return g_boxed_copy (G_TYPE_VALUE, self);
618
static gpointer __g_value_dup0 (gpointer self) {
619
return self ? _g_value_dup (self) : NULL;
623
static void _duplicated_emails_tests_add_personas_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
624
DuplicatedEmailsTestsAddPersonasData* data;
626
data->_source_object_ = source_object;
628
_duplicated_emails_tests_add_personas_co (data);
632
static gboolean _duplicated_emails_tests_add_personas_co (DuplicatedEmailsTestsAddPersonasData* data) {
633
switch (data->_state_) {
641
g_assert_not_reached ();
645
data->_tmp0_ = g_hash_table_new_full (g_str_hash, g_str_equal, _g_free0_, __vala_GValue_free0_);
646
data->details1 = data->_tmp0_;
648
data->_tmp1_ = g_hash_table_new_full (g_str_hash, g_str_equal, _g_free0_, __vala_GValue_free0_);
649
data->details2 = data->_tmp1_;
650
memset (&data->_tmp2_, 0, sizeof (GValue));
651
g_value_init (&data->_tmp2_, G_TYPE_STRING);
652
memset (&data->_tmp3_, 0, sizeof (GValue));
653
data->_tmp3_ = data->_tmp2_;
654
data->_tmp4_ = data->_tmp3_;
655
data->_tmp5_ = __g_value_dup0 (&data->_tmp4_);
656
__vala_GValue_free0 (data->val);
657
data->val = data->_tmp5_;
658
G_IS_VALUE (&data->_tmp4_) ? (g_value_unset (&data->_tmp4_), NULL) : NULL;
659
g_value_set_string (data->val, data->self->priv->_persona_fullname_1);
661
data->_tmp6_ = folks_persona_store_detail_key (FOLKS_PERSONA_DETAIL_FULL_NAME);
662
data->_tmp7_ = g_strdup (data->_tmp6_);
663
data->_tmp8_ = data->val;
665
g_hash_table_insert (data->details1, data->_tmp7_, data->_tmp8_);
666
memset (&data->_tmp9_, 0, sizeof (GValue));
667
g_value_init (&data->_tmp9_, GEE_TYPE_SET);
668
memset (&data->_tmp10_, 0, sizeof (GValue));
669
data->_tmp10_ = data->_tmp9_;
670
data->_tmp11_ = data->_tmp10_;
671
data->_tmp12_ = __g_value_dup0 (&data->_tmp11_);
672
__vala_GValue_free0 (data->val);
673
data->val = data->_tmp12_;
674
G_IS_VALUE (&data->_tmp11_) ? (g_value_unset (&data->_tmp11_), NULL) : NULL;
675
data->_tmp13_ = NULL;
676
data->_tmp13_ = gee_hash_set_new (FOLKS_TYPE_FIELD_DETAILS, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL);
677
data->emails1 = data->_tmp13_;
678
data->_tmp14_ = NULL;
679
data->_tmp14_ = folks_field_details_new (data->self->priv->_email_1);
680
data->email_1 = data->_tmp14_;
681
gee_abstract_collection_add ((GeeAbstractCollection*) data->emails1, data->email_1);
682
g_value_set_object (data->val, (GObject*) data->emails1);
683
data->_tmp15_ = NULL;
684
data->_tmp15_ = folks_persona_store_detail_key (FOLKS_PERSONA_DETAIL_EMAIL_ADDRESSES);
685
data->_tmp16_ = g_strdup (data->_tmp15_);
686
data->_tmp17_ = data->val;
688
g_hash_table_insert (data->details1, data->_tmp16_, data->_tmp17_);
689
memset (&data->_tmp18_, 0, sizeof (GValue));
690
g_value_init (&data->_tmp18_, G_TYPE_STRING);
691
memset (&data->_tmp19_, 0, sizeof (GValue));
692
data->_tmp19_ = data->_tmp18_;
693
data->_tmp20_ = data->_tmp19_;
694
data->_tmp21_ = __g_value_dup0 (&data->_tmp20_);
695
__vala_GValue_free0 (data->val);
696
data->val = data->_tmp21_;
697
G_IS_VALUE (&data->_tmp20_) ? (g_value_unset (&data->_tmp20_), NULL) : NULL;
698
g_value_set_string (data->val, data->self->priv->_persona_fullname_2);
699
data->_tmp22_ = NULL;
700
data->_tmp22_ = folks_persona_store_detail_key (FOLKS_PERSONA_DETAIL_FULL_NAME);
701
data->_tmp23_ = g_strdup (data->_tmp22_);
702
data->_tmp24_ = data->val;
704
g_hash_table_insert (data->details2, data->_tmp23_, data->_tmp24_);
705
memset (&data->_tmp25_, 0, sizeof (GValue));
706
g_value_init (&data->_tmp25_, GEE_TYPE_SET);
707
memset (&data->_tmp26_, 0, sizeof (GValue));
708
data->_tmp26_ = data->_tmp25_;
709
data->_tmp27_ = data->_tmp26_;
710
data->_tmp28_ = __g_value_dup0 (&data->_tmp27_);
711
__vala_GValue_free0 (data->val);
712
data->val = data->_tmp28_;
713
G_IS_VALUE (&data->_tmp27_) ? (g_value_unset (&data->_tmp27_), NULL) : NULL;
714
data->_tmp29_ = NULL;
715
data->_tmp29_ = gee_hash_set_new (FOLKS_TYPE_FIELD_DETAILS, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL);
716
data->emails2 = data->_tmp29_;
717
data->_tmp30_ = NULL;
718
data->_tmp30_ = folks_field_details_new (data->self->priv->_email_1);
719
data->email_2 = data->_tmp30_;
720
gee_abstract_collection_add ((GeeAbstractCollection*) data->emails2, data->email_2);
721
g_value_set_object (data->val, (GObject*) data->emails2);
722
data->_tmp31_ = NULL;
723
data->_tmp31_ = folks_persona_store_detail_key (FOLKS_PERSONA_DETAIL_EMAIL_ADDRESSES);
724
data->_tmp32_ = g_strdup (data->_tmp31_);
725
data->_tmp33_ = data->val;
727
g_hash_table_insert (data->details2, data->_tmp32_, data->_tmp33_);
729
folks_individual_aggregator_add_persona_from_details (data->self->priv->_aggregator, NULL, (FolksPersonaStore*) data->self->priv->_pstore, data->details1, _duplicated_emails_tests_add_personas_ready, data);
732
data->_tmp34_ = NULL;
733
data->_tmp34_ = folks_individual_aggregator_add_persona_from_details_finish (data->self->priv->_aggregator, data->_res_, &data->_inner_error_);
734
data->_tmp35_ = data->_tmp34_;
735
_g_object_unref0 (data->_tmp35_);
736
if (data->_inner_error_ != NULL) {
737
if (data->_inner_error_->domain == FOLKS_INDIVIDUAL_AGGREGATOR_ERROR) {
738
goto __catch2_folks_individual_aggregator_error;
740
_g_object_unref0 (data->email_2);
741
_g_object_unref0 (data->emails2);
742
_g_object_unref0 (data->email_1);
743
_g_object_unref0 (data->emails1);
744
__vala_GValue_free0 (data->val);
745
_g_hash_table_unref0 (data->details2);
746
_g_hash_table_unref0 (data->details1);
747
g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, data->_inner_error_->message, g_quark_to_string (data->_inner_error_->domain), data->_inner_error_->code);
748
g_clear_error (&data->_inner_error_);
752
folks_individual_aggregator_add_persona_from_details (data->self->priv->_aggregator, NULL, (FolksPersonaStore*) data->self->priv->_pstore, data->details2, _duplicated_emails_tests_add_personas_ready, data);
755
data->_tmp36_ = NULL;
756
data->_tmp36_ = folks_individual_aggregator_add_persona_from_details_finish (data->self->priv->_aggregator, data->_res_, &data->_inner_error_);
757
data->_tmp37_ = data->_tmp36_;
758
_g_object_unref0 (data->_tmp37_);
759
if (data->_inner_error_ != NULL) {
760
if (data->_inner_error_->domain == FOLKS_INDIVIDUAL_AGGREGATOR_ERROR) {
761
goto __catch2_folks_individual_aggregator_error;
763
_g_object_unref0 (data->email_2);
764
_g_object_unref0 (data->emails2);
765
_g_object_unref0 (data->email_1);
766
_g_object_unref0 (data->emails1);
767
__vala_GValue_free0 (data->val);
768
_g_hash_table_unref0 (data->details2);
769
_g_hash_table_unref0 (data->details1);
770
g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, data->_inner_error_->message, g_quark_to_string (data->_inner_error_->domain), data->_inner_error_->code);
771
g_clear_error (&data->_inner_error_);
775
__catch2_folks_individual_aggregator_error:
777
data->e = data->_inner_error_;
778
data->_inner_error_ = NULL;
779
g_warning ("duplicated-emails.vala:202: [AddPersonaError] add_persona_from_details" \
780
": %s\n", data->e->message);
781
_g_error_free0 (data->e);
784
if (data->_inner_error_ != NULL) {
785
_g_object_unref0 (data->email_2);
786
_g_object_unref0 (data->emails2);
787
_g_object_unref0 (data->email_1);
788
_g_object_unref0 (data->emails1);
789
__vala_GValue_free0 (data->val);
790
_g_hash_table_unref0 (data->details2);
791
_g_hash_table_unref0 (data->details1);
792
g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, data->_inner_error_->message, g_quark_to_string (data->_inner_error_->domain), data->_inner_error_->code);
793
g_clear_error (&data->_inner_error_);
796
_g_object_unref0 (data->email_2);
797
_g_object_unref0 (data->emails2);
798
_g_object_unref0 (data->email_1);
799
_g_object_unref0 (data->emails1);
800
__vala_GValue_free0 (data->val);
801
_g_hash_table_unref0 (data->details2);
802
_g_hash_table_unref0 (data->details1);
803
if (data->_state_ == 0) {
804
g_simple_async_result_complete_in_idle (data->_async_result);
806
g_simple_async_result_complete (data->_async_result);
808
g_object_unref (data->_async_result);
813
static void duplicated_emails_tests_class_init (DuplicatedEmailsTestsClass * klass) {
814
duplicated_emails_tests_parent_class = g_type_class_peek_parent (klass);
815
g_type_class_add_private (klass, sizeof (DuplicatedEmailsTestsPrivate));
816
FOLKS_TEST_CASE_CLASS (klass)->set_up = duplicated_emails_tests_real_set_up;
817
FOLKS_TEST_CASE_CLASS (klass)->tear_down = duplicated_emails_tests_real_tear_down;
818
G_OBJECT_CLASS (klass)->finalize = duplicated_emails_tests_finalize;
822
static void duplicated_emails_tests_instance_init (DuplicatedEmailsTests * self) {
828
self->priv = DUPLICATED_EMAILS_TESTS_GET_PRIVATE (self);
829
_tmp0_ = g_strdup ("persona #1");
830
self->priv->_persona_fullname_1 = _tmp0_;
831
_tmp1_ = g_strdup ("persona #2");
832
self->priv->_persona_fullname_2 = _tmp1_;
833
_tmp2_ = g_strdup ("some-address@example.org");
834
self->priv->_email_1 = _tmp2_;
835
g_static_rec_mutex_init (&self->priv->__lock__added_personas);
836
self->priv->_added_personas = FALSE;
837
_tmp3_ = g_strdup ("");
838
self->priv->_individual_id_1 = _tmp3_;
839
_tmp4_ = g_strdup ("");
840
self->priv->_individual_id_2 = _tmp4_;
844
static void duplicated_emails_tests_finalize (GObject* obj) {
845
DuplicatedEmailsTests * self;
846
self = DUPLICATED_EMAILS_TESTS (obj);
847
_g_main_loop_unref0 (self->priv->_main_loop);
848
_tracker_test_backend_unref0 (self->priv->_tracker_backend);
849
_g_object_unref0 (self->priv->_aggregator);
850
_g_free0 (self->priv->_persona_fullname_1);
851
_g_free0 (self->priv->_persona_fullname_2);
852
_g_free0 (self->priv->_email_1);
853
g_static_rec_mutex_free (&self->priv->__lock__added_personas);
854
_g_free0 (self->priv->_individual_id_1);
855
_g_free0 (self->priv->_individual_id_2);
856
_g_object_unref0 (self->priv->_pstore);
857
G_OBJECT_CLASS (duplicated_emails_tests_parent_class)->finalize (obj);
861
GType duplicated_emails_tests_get_type (void) {
862
static volatile gsize duplicated_emails_tests_type_id__volatile = 0;
863
if (g_once_init_enter (&duplicated_emails_tests_type_id__volatile)) {
864
static const GTypeInfo g_define_type_info = { sizeof (DuplicatedEmailsTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) duplicated_emails_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DuplicatedEmailsTests), 0, (GInstanceInitFunc) duplicated_emails_tests_instance_init, NULL };
865
GType duplicated_emails_tests_type_id;
866
duplicated_emails_tests_type_id = g_type_register_static (FOLKS_TYPE_TEST_CASE, "DuplicatedEmailsTests", &g_define_type_info, 0);
867
g_once_init_leave (&duplicated_emails_tests_type_id__volatile, duplicated_emails_tests_type_id);
869
return duplicated_emails_tests_type_id__volatile;
873
gint _vala_main (gchar** args, int args_length1) {
875
GTestSuite* _tmp0_ = NULL;
877
DuplicatedEmailsTests* _tmp1_ = NULL;
878
DuplicatedEmailsTests* _tmp2_;
879
GTestSuite* _tmp3_ = NULL;
880
g_test_init (&args_length1, &args, NULL);
881
_tmp0_ = g_test_get_root ();
883
_tmp1_ = duplicated_emails_tests_new ();
885
_tmp3_ = folks_test_case_get_suite ((FolksTestCase*) _tmp2_);
886
g_test_suite_add_suite (root, _tmp3_);
887
_g_object_unref0 (_tmp2_);
894
int main (int argc, char ** argv) {
896
return _vala_main (argv, argc);