1
/* suffix-name-updates.c generated by valac 0.12.0, the Vala compiler
2
* generated from suffix-name-updates.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>
32
#include <folks/folks-tracker.h>
36
#define TYPE_SUFFIX_NAME_UPDATES_TESTS (suffix_name_updates_tests_get_type ())
37
#define SUFFIX_NAME_UPDATES_TESTS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SUFFIX_NAME_UPDATES_TESTS, SuffixNameUpdatesTests))
38
#define SUFFIX_NAME_UPDATES_TESTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SUFFIX_NAME_UPDATES_TESTS, SuffixNameUpdatesTestsClass))
39
#define IS_SUFFIX_NAME_UPDATES_TESTS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SUFFIX_NAME_UPDATES_TESTS))
40
#define IS_SUFFIX_NAME_UPDATES_TESTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SUFFIX_NAME_UPDATES_TESTS))
41
#define SUFFIX_NAME_UPDATES_TESTS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SUFFIX_NAME_UPDATES_TESTS, SuffixNameUpdatesTestsClass))
43
typedef struct _SuffixNameUpdatesTests SuffixNameUpdatesTests;
44
typedef struct _SuffixNameUpdatesTestsClass SuffixNameUpdatesTestsClass;
45
typedef struct _SuffixNameUpdatesTestsPrivate SuffixNameUpdatesTestsPrivate;
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 _SuffixNameUpdatesTestsTestSuffixNameUpdatesAsyncData SuffixNameUpdatesTestsTestSuffixNameUpdatesAsyncData;
53
struct _SuffixNameUpdatesTests {
54
FolksTestCase parent_instance;
55
SuffixNameUpdatesTestsPrivate * priv;
58
struct _SuffixNameUpdatesTestsClass {
59
FolksTestCaseClass parent_class;
62
struct _SuffixNameUpdatesTestsPrivate {
63
GMainLoop* _main_loop;
64
TrackerTestBackend* _tracker_backend;
65
FolksIndividualAggregator* _aggregator;
66
gboolean _updated_suffix_name_found;
67
gboolean _deleted_suffix_name_found;
68
gboolean _initial_suffix_name_found;
69
gchar* _updated_suffix_name;
70
gchar* _individual_id;
71
gchar* _initial_fullname;
72
gchar* _initial_suffix_name;
76
struct _SuffixNameUpdatesTestsTestSuffixNameUpdatesAsyncData {
78
GObject* _source_object_;
80
GSimpleAsyncResult* _async_result;
81
SuffixNameUpdatesTests* self;
82
FolksBackendStore* _tmp0_;
83
FolksBackendStore* store;
84
FolksIndividualAggregator* _tmp1_;
86
GError * _inner_error_;
90
static gpointer suffix_name_updates_tests_parent_class = NULL;
92
GType suffix_name_updates_tests_get_type (void) G_GNUC_CONST;
93
#define SUFFIX_NAME_UPDATES_TESTS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SUFFIX_NAME_UPDATES_TESTS, SuffixNameUpdatesTestsPrivate))
95
SUFFIX_NAME_UPDATES_TESTS_DUMMY_PROPERTY
97
SuffixNameUpdatesTests* suffix_name_updates_tests_new (void);
98
SuffixNameUpdatesTests* suffix_name_updates_tests_construct (GType object_type);
99
void suffix_name_updates_tests_test_suffix_name_updates (SuffixNameUpdatesTests* self);
100
static void _suffix_name_updates_tests_test_suffix_name_updates_folks_test_case_test_method (gpointer self);
101
static void suffix_name_updates_tests_real_set_up (FolksTestCase* base);
102
static void suffix_name_updates_tests_real_tear_down (FolksTestCase* base);
103
static void _suffix_name_updates_tests_test_suffix_name_updates_async (SuffixNameUpdatesTests* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
104
static void _suffix_name_updates_tests_test_suffix_name_updates_finish (SuffixNameUpdatesTests* self, GAsyncResult* _res_);
105
static gboolean _lambda0_ (SuffixNameUpdatesTests* self);
106
static gboolean __lambda0__gsource_func (gpointer self);
107
static void _suffix_name_updates_tests_test_suffix_name_updates_async_data_free (gpointer _data);
108
static gboolean _suffix_name_updates_tests_test_suffix_name_updates_async_co (SuffixNameUpdatesTestsTestSuffixNameUpdatesAsyncData* data);
109
static void _suffix_name_updates_tests_test_suffix_name_updates_async_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
110
static void _suffix_name_updates_tests_individuals_changed_cb (SuffixNameUpdatesTests* self, GeeSet* added, GeeSet* removed, const gchar* message, FolksPersona* actor, FolksGroupDetailsChangeReason reason);
111
static void __suffix_name_updates_tests_individuals_changed_cb_folks_individual_aggregator_individuals_changed (FolksIndividualAggregator* _sender, GeeSet* added, GeeSet* removed, const gchar* message, FolksPersona* actor, FolksGroupDetailsChangeReason reason, gpointer self);
112
static void _suffix_name_updates_tests_notify_suffix_name_cb (SuffixNameUpdatesTests* self, GObject* individual_obj, GParamSpec* ps);
113
static void __suffix_name_updates_tests_notify_suffix_name_cb_g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
114
static void suffix_name_updates_tests_finalize (GObject* obj);
115
gint _vala_main (gchar** args, int args_length1);
118
static void _suffix_name_updates_tests_test_suffix_name_updates_folks_test_case_test_method (gpointer self) {
119
suffix_name_updates_tests_test_suffix_name_updates (self);
123
SuffixNameUpdatesTests* suffix_name_updates_tests_construct (GType object_type) {
124
SuffixNameUpdatesTests * self = NULL;
125
TrackerTestBackend* _tmp0_ = NULL;
126
self = (SuffixNameUpdatesTests*) folks_test_case_construct (object_type, "SuffixNameUpdates");
127
_tmp0_ = tracker_test_backend_new ();
128
_tracker_test_backend_unref0 (self->priv->_tracker_backend);
129
self->priv->_tracker_backend = _tmp0_;
130
tracker_test_backend_set_debug (self->priv->_tracker_backend, FALSE);
131
folks_test_case_add_test ((FolksTestCase*) self, "suffix name updates", _suffix_name_updates_tests_test_suffix_name_updates_folks_test_case_test_method, self);
136
SuffixNameUpdatesTests* suffix_name_updates_tests_new (void) {
137
return suffix_name_updates_tests_construct (TYPE_SUFFIX_NAME_UPDATES_TESTS);
141
static void suffix_name_updates_tests_real_set_up (FolksTestCase* base) {
142
SuffixNameUpdatesTests * self;
143
self = (SuffixNameUpdatesTests*) base;
147
static void suffix_name_updates_tests_real_tear_down (FolksTestCase* base) {
148
SuffixNameUpdatesTests * self;
149
self = (SuffixNameUpdatesTests*) base;
153
static gboolean _lambda0_ (SuffixNameUpdatesTests* self) {
154
gboolean result = FALSE;
155
g_main_loop_quit (self->priv->_main_loop);
156
g_assert_not_reached ();
161
static gboolean __lambda0__gsource_func (gpointer self) {
163
result = _lambda0_ (self);
168
void suffix_name_updates_tests_test_suffix_name_updates (SuffixNameUpdatesTests* self) {
169
GMainLoop* _tmp0_ = NULL;
170
GeeHashMap* _tmp1_ = NULL;
177
g_return_if_fail (self != NULL);
178
_tmp0_ = g_main_loop_new (NULL, FALSE);
179
_g_main_loop_unref0 (self->priv->_main_loop);
180
self->priv->_main_loop = _tmp0_;
181
_tmp1_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
183
_tmp2_ = g_strdup ("persona #1");
184
_g_free0 (self->priv->_initial_fullname);
185
self->priv->_initial_fullname = _tmp2_;
186
_tmp3_ = g_strdup ("suffix name #1");
187
_g_free0 (self->priv->_initial_suffix_name);
188
self->priv->_initial_suffix_name = _tmp3_;
189
_tmp4_ = g_strdup ("updated suffix #1");
190
_g_free0 (self->priv->_updated_suffix_name);
191
self->priv->_updated_suffix_name = _tmp4_;
192
_tmp5_ = g_strdup ("<urn:contact001>");
193
_g_free0 (self->priv->_contact_urn);
194
self->priv->_contact_urn = _tmp5_;
195
gee_abstract_map_set ((GeeAbstractMap*) c1, TRACKER_TEST_BACKEND_URN, self->priv->_contact_urn);
196
gee_abstract_map_set ((GeeAbstractMap*) c1, TRF_ONTOLOGY_DEFS_NCO_FULLNAME, self->priv->_initial_fullname);
197
gee_abstract_map_set ((GeeAbstractMap*) c1, TRF_ONTOLOGY_DEFS_NCO_SUFFIX, self->priv->_initial_suffix_name);
198
tracker_test_backend_add_contact (self->priv->_tracker_backend, c1);
199
tracker_test_backend_set_up (self->priv->_tracker_backend);
200
self->priv->_initial_suffix_name_found = FALSE;
201
self->priv->_updated_suffix_name_found = FALSE;
202
self->priv->_deleted_suffix_name_found = FALSE;
203
_tmp6_ = g_strdup ("");
204
_g_free0 (self->priv->_individual_id);
205
self->priv->_individual_id = _tmp6_;
206
_suffix_name_updates_tests_test_suffix_name_updates_async (self, NULL, NULL);
207
g_timeout_add_seconds_full (G_PRIORITY_DEFAULT, (guint) 5, __lambda0__gsource_func, g_object_ref (self), g_object_unref);
208
g_main_loop_run (self->priv->_main_loop);
209
g_assert (self->priv->_initial_suffix_name_found == TRUE);
210
g_assert (self->priv->_updated_suffix_name_found == TRUE);
211
tracker_test_backend_tear_down (self->priv->_tracker_backend);
212
_g_object_unref0 (c1);
216
static void _suffix_name_updates_tests_test_suffix_name_updates_async_data_free (gpointer _data) {
217
SuffixNameUpdatesTestsTestSuffixNameUpdatesAsyncData* data;
219
_g_object_unref0 (data->self);
220
g_slice_free (SuffixNameUpdatesTestsTestSuffixNameUpdatesAsyncData, data);
224
static gpointer _g_object_ref0 (gpointer self) {
225
return self ? g_object_ref (self) : NULL;
229
static void _suffix_name_updates_tests_test_suffix_name_updates_async (SuffixNameUpdatesTests* self, GAsyncReadyCallback _callback_, gpointer _user_data_) {
230
SuffixNameUpdatesTestsTestSuffixNameUpdatesAsyncData* _data_;
231
_data_ = g_slice_new0 (SuffixNameUpdatesTestsTestSuffixNameUpdatesAsyncData);
232
_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, _suffix_name_updates_tests_test_suffix_name_updates_async);
233
g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, _suffix_name_updates_tests_test_suffix_name_updates_async_data_free);
234
_data_->self = _g_object_ref0 (self);
235
_suffix_name_updates_tests_test_suffix_name_updates_async_co (_data_);
239
static void _suffix_name_updates_tests_test_suffix_name_updates_finish (SuffixNameUpdatesTests* self, GAsyncResult* _res_) {
240
SuffixNameUpdatesTestsTestSuffixNameUpdatesAsyncData* _data_;
241
_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
245
static void _suffix_name_updates_tests_test_suffix_name_updates_async_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
246
SuffixNameUpdatesTestsTestSuffixNameUpdatesAsyncData* data;
248
data->_source_object_ = source_object;
250
_suffix_name_updates_tests_test_suffix_name_updates_async_co (data);
254
static void __suffix_name_updates_tests_individuals_changed_cb_folks_individual_aggregator_individuals_changed (FolksIndividualAggregator* _sender, GeeSet* added, GeeSet* removed, const gchar* message, FolksPersona* actor, FolksGroupDetailsChangeReason reason, gpointer self) {
255
_suffix_name_updates_tests_individuals_changed_cb (self, added, removed, message, actor, reason);
259
static gboolean _suffix_name_updates_tests_test_suffix_name_updates_async_co (SuffixNameUpdatesTestsTestSuffixNameUpdatesAsyncData* data) {
260
switch (data->_state_) {
268
g_assert_not_reached ();
272
data->_tmp0_ = folks_backend_store_dup ();
273
data->store = data->_tmp0_;
275
folks_backend_store_prepare (data->store, _suffix_name_updates_tests_test_suffix_name_updates_async_ready, data);
278
folks_backend_store_prepare_finish (data->store, data->_res_);
280
data->_tmp1_ = folks_individual_aggregator_new ();
281
_g_object_unref0 (data->self->priv->_aggregator);
282
data->self->priv->_aggregator = data->_tmp1_;
283
g_signal_connect_object (data->self->priv->_aggregator, "individuals-changed", (GCallback) __suffix_name_updates_tests_individuals_changed_cb_folks_individual_aggregator_individuals_changed, data->self, 0);
285
folks_individual_aggregator_prepare (data->self->priv->_aggregator, _suffix_name_updates_tests_test_suffix_name_updates_async_ready, data);
288
folks_individual_aggregator_prepare_finish (data->self->priv->_aggregator, data->_res_, &data->_inner_error_);
289
if (data->_inner_error_ != NULL) {
290
goto __catch0_g_error;
295
data->e = data->_inner_error_;
296
data->_inner_error_ = NULL;
297
g_warning ("suffix-name-updates.vala:108: Error when calling prepare: %s\n", data->e->message);
298
_g_error_free0 (data->e);
301
if (data->_inner_error_ != NULL) {
302
_g_object_unref0 (data->store);
303
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);
304
g_clear_error (&data->_inner_error_);
307
_g_object_unref0 (data->store);
308
if (data->_state_ == 0) {
309
g_simple_async_result_complete_in_idle (data->_async_result);
311
g_simple_async_result_complete (data->_async_result);
313
g_object_unref (data->_async_result);
318
static void __suffix_name_updates_tests_notify_suffix_name_cb_g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
319
_suffix_name_updates_tests_notify_suffix_name_cb (self, _sender, pspec);
323
static void _suffix_name_updates_tests_individuals_changed_cb (SuffixNameUpdatesTests* self, GeeSet* added, GeeSet* removed, const gchar* message, FolksPersona* actor, FolksGroupDetailsChangeReason reason) {
325
g_return_if_fail (self != NULL);
326
g_return_if_fail (added != NULL);
327
g_return_if_fail (removed != NULL);
329
GeeIterator* _tmp0_ = NULL;
331
_tmp0_ = gee_iterable_iterator ((GeeIterable*) added);
335
gpointer _tmp2_ = NULL;
337
const gchar* _tmp3_ = NULL;
338
_tmp1_ = gee_iterator_next (_i_it);
342
_tmp2_ = gee_iterator_get (_i_it);
343
i = (FolksIndividual*) _tmp2_;
344
_tmp3_ = folks_name_details_get_full_name ((FolksNameDetails*) i);
345
if (g_strcmp0 (self->priv->_initial_fullname, _tmp3_) == 0) {
346
FolksStructuredName* _tmp4_ = NULL;
347
const gchar* _tmp5_ = NULL;
350
_tmp4_ = folks_name_details_get_structured_name ((FolksNameDetails*) i);
351
_tmp5_ = folks_structured_name_get_suffixes (_tmp4_);
352
_tmp6_ = g_strdup (_tmp5_);
353
suffix_name = _tmp6_;
354
if (g_strcmp0 (suffix_name, self->priv->_initial_suffix_name) == 0) {
355
FolksStructuredName* _tmp7_ = NULL;
356
const gchar* _tmp8_ = NULL;
358
_tmp7_ = folks_name_details_get_structured_name ((FolksNameDetails*) i);
359
g_signal_connect_object ((GObject*) _tmp7_, "notify::suffixes", (GCallback) __suffix_name_updates_tests_notify_suffix_name_cb_g_object_notify, self, 0);
360
_tmp8_ = folks_individual_get_id (i);
361
_tmp9_ = g_strdup (_tmp8_);
362
_g_free0 (self->priv->_individual_id);
363
self->priv->_individual_id = _tmp9_;
364
self->priv->_initial_suffix_name_found = TRUE;
365
tracker_test_backend_update_contact (self->priv->_tracker_backend, self->priv->_contact_urn, TRF_ONTOLOGY_DEFS_NCO_SUFFIX, self->priv->_updated_suffix_name);
367
_g_free0 (suffix_name);
369
_g_object_unref0 (i);
371
_g_object_unref0 (_i_it);
373
_tmp10_ = gee_collection_get_size ((GeeCollection*) removed);
374
g_assert (_tmp10_ == 0);
378
static void _suffix_name_updates_tests_notify_suffix_name_cb (SuffixNameUpdatesTests* self, GObject* individual_obj, GParamSpec* ps) {
379
FolksStructuredName* _tmp0_;
380
FolksStructuredName* sname;
381
const gchar* _tmp1_ = NULL;
384
g_return_if_fail (self != NULL);
385
g_return_if_fail (individual_obj != NULL);
386
g_return_if_fail (ps != NULL);
387
_tmp0_ = _g_object_ref0 (FOLKS_STRUCTURED_NAME (individual_obj));
389
_tmp1_ = folks_structured_name_get_suffixes (sname);
390
_tmp2_ = g_strdup (_tmp1_);
391
suffix_name = _tmp2_;
392
if (g_strcmp0 (suffix_name, self->priv->_updated_suffix_name) == 0) {
393
self->priv->_updated_suffix_name_found = TRUE;
394
g_main_loop_quit (self->priv->_main_loop);
396
_g_free0 (suffix_name);
397
_g_object_unref0 (sname);
401
static void suffix_name_updates_tests_class_init (SuffixNameUpdatesTestsClass * klass) {
402
suffix_name_updates_tests_parent_class = g_type_class_peek_parent (klass);
403
g_type_class_add_private (klass, sizeof (SuffixNameUpdatesTestsPrivate));
404
FOLKS_TEST_CASE_CLASS (klass)->set_up = suffix_name_updates_tests_real_set_up;
405
FOLKS_TEST_CASE_CLASS (klass)->tear_down = suffix_name_updates_tests_real_tear_down;
406
G_OBJECT_CLASS (klass)->finalize = suffix_name_updates_tests_finalize;
410
static void suffix_name_updates_tests_instance_init (SuffixNameUpdatesTests * self) {
411
self->priv = SUFFIX_NAME_UPDATES_TESTS_GET_PRIVATE (self);
415
static void suffix_name_updates_tests_finalize (GObject* obj) {
416
SuffixNameUpdatesTests * self;
417
self = SUFFIX_NAME_UPDATES_TESTS (obj);
418
_g_main_loop_unref0 (self->priv->_main_loop);
419
_tracker_test_backend_unref0 (self->priv->_tracker_backend);
420
_g_object_unref0 (self->priv->_aggregator);
421
_g_free0 (self->priv->_updated_suffix_name);
422
_g_free0 (self->priv->_individual_id);
423
_g_free0 (self->priv->_initial_fullname);
424
_g_free0 (self->priv->_initial_suffix_name);
425
_g_free0 (self->priv->_contact_urn);
426
G_OBJECT_CLASS (suffix_name_updates_tests_parent_class)->finalize (obj);
430
GType suffix_name_updates_tests_get_type (void) {
431
static volatile gsize suffix_name_updates_tests_type_id__volatile = 0;
432
if (g_once_init_enter (&suffix_name_updates_tests_type_id__volatile)) {
433
static const GTypeInfo g_define_type_info = { sizeof (SuffixNameUpdatesTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) suffix_name_updates_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SuffixNameUpdatesTests), 0, (GInstanceInitFunc) suffix_name_updates_tests_instance_init, NULL };
434
GType suffix_name_updates_tests_type_id;
435
suffix_name_updates_tests_type_id = g_type_register_static (FOLKS_TYPE_TEST_CASE, "SuffixNameUpdatesTests", &g_define_type_info, 0);
436
g_once_init_leave (&suffix_name_updates_tests_type_id__volatile, suffix_name_updates_tests_type_id);
438
return suffix_name_updates_tests_type_id__volatile;
442
gint _vala_main (gchar** args, int args_length1) {
444
GTestSuite* _tmp0_ = NULL;
446
SuffixNameUpdatesTests* _tmp1_ = NULL;
447
SuffixNameUpdatesTests* _tmp2_;
448
GTestSuite* _tmp3_ = NULL;
449
g_test_init (&args_length1, &args, NULL);
450
_tmp0_ = g_test_get_root ();
452
_tmp1_ = suffix_name_updates_tests_new ();
454
_tmp3_ = folks_test_case_get_suite ((FolksTestCase*) _tmp2_);
455
g_test_suite_add_suite (root, _tmp3_);
456
_g_object_unref0 (_tmp2_);
463
int main (int argc, char ** argv) {
465
return _vala_main (argv, argc);