3 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
5 * Licensed under the Apache License, Version 2.0 (the License);
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
20 #include <sync_agent.h>
23 POSITIVE_TC_IDX = 0x01,
27 static void startup(void);
28 static void cleanup(void);
30 void (*tet_startup) (void) = startup;
31 void (*tet_cleanup) (void) = cleanup;
33 #define TEST_FW_CONFIG_OMADS_FILE "../../../testcase/fw-test-cfg/test_fw_config_omads.xml"
35 #define OMA_DS_EVENT_NUM 10
37 #define API_NAME_SYNC_START_UP "startup"
38 #define API_NAME_SYNC_CLEAN_UP "cleanup"
40 #define API_NAME_SYNC_AGENT_DS_INIT "sync_agent_ds_init"
41 #define API_NAME_SYNC_AGENT_DS_CREATE_PROFILE_INFO "sync_agent_ds_create_profile_info"
42 #define API_NAME_SYNC_AGENT_DS_SET_PROFILE_NAME "sync_agent_ds_set_profile_name"
43 #define API_NAME_SYNC_AGENT_DS_SET_SERVER_INFO "sync_agent_ds_set_server_info"
44 #define API_NAME_SYNC_AGENT_DS_SET_SYNC_INFO "sync_agent_ds_set_sync_info"
45 #define API_NAME_SYNC_AGENT_DS_SET_SYNC_SERVICE_INFO "sync_agent_ds_set_sync_service_info"
46 #define API_NAME_SYNC_AGENT_DS_GET_PROFILE_NAME "sync_agent_ds_get_profile_name"
47 #define API_NAME_SYNC_AGENT_DS_GET_SERVER_INFO "sync_agent_ds_get_server_info"
48 #define API_NAME_SYNC_AGENT_DS_GET_SYNC_INFO "sync_agent_ds_get_sync_info"
49 #define API_NAME_SYNC_AGENT_DS_GET_SYNC_SERVICE_INFO "sync_agent_ds_get_sync_service_info"
50 #define API_NAME_SYNC_AGENT_DS_GET_LAST_SYNC_INFO "sync_agent_ds_get_last_sync_info"
51 #define API_NAME_SYNC_AGENT_DS_GET_SYNC_STATISTICS "sync_agent_ds_get_sync_statistics"
52 #define API_NAME_SYNC_AGENT_DS_ADD_PROFILE "sync_agent_ds_add_profile"
53 #define API_NAME_SYNC_AGENT_DS_GET_PROFILE "sync_agent_ds_get_profile"
54 #define API_NAME_SYNC_AGENT_DS_GET_ALL_PROFILE "sync_agent_ds_get_all_profile"
55 #define API_NAME_SYNC_AGENT_DS_UPDATE_PROFILE "sync_agent_ds_update_profile"
56 #define API_NAME_SYNC_AGENT_DS_DELETE_PROFILE "sync_agent_ds_delete_profile"
57 #define API_NAME_SYNC_AGENT_DS_START_SYNC "sync_agent_ds_start_sync"
58 #define API_NAME_SYNC_AGENT_DS_STOP_SYNC "sync_agent_ds_stop_sync"
59 #define API_NAME_SYNC_AGENT_DS_FREE_PROFILE_INFO "sync_agent_ds_free_profile_info"
60 #define API_NAME_SYNC_AGENT_DS_DEINIT "sync_agent_ds_deinit"
62 #define API_NAME_START_TEST_DS_AGENT "_start_test_ds_agent"
64 static void utc_sync_agent_framework_sync_agent_sync_agent_ds_init_p(void);
65 static void utc_sync_agent_framework_sync_agent_ds_create_profile_info_p(void);
66 static void utc_sync_agent_framework_sync_agent_ds_set_profile_name_p(void);
67 static void utc_sync_agent_framework_sync_agent_ds_set_server_info_p(void);
68 static void utc_sync_agent_framework_sync_agent_ds_set_sync_info_p(void);
69 static void utc_sync_agent_framework_sync_agent_ds_set_sync_service_info_p(void);
70 static void utc_sync_agent_framework_sync_agent_ds_get_profile_name_p(void);
71 static void utc_sync_agent_framework_sync_agent_ds_get_server_info_p(void);
72 static void utc_sync_agent_framework_sync_agent_ds_get_sync_info_p(void);
73 static void utc_sync_agent_framework_sync_agent_ds_get_sync_service_info_p(void);
74 static void utc_sync_agent_framework_sync_agent_ds_get_last_sync_info_p(void);
75 static void utc_sync_agent_framework_sync_agent_ds_get_sync_statistics_p(void);
76 static void utc_sync_agent_framework_sync_agent_ds_add_profile_p(void);
77 static void utc_sync_agent_framework_sync_agent_ds_get_profile_p(void);
78 static void utc_sync_agent_framework_sync_agent_ds_get_all_profile_p(void);
79 static void utc_sync_agent_framework_sync_agent_ds_update_profile_p(void);
80 static void utc_sync_agent_framework_sync_agent_ds_delete_profile_p(void);
81 static void utc_sync_agent_framework_sync_agent_ds_start_sync_p(void);
82 static void utc_sync_agent_framework_sync_agent_ds_stop_sync_p(void);
83 //static void utc_sync_agent_framework_sync_agent_ds_free_profile_info_p(void);
84 static void utc_sync_agent_framework_sync_agent_ds_deinit_p(void);
86 static void *_start_test_ds_agent(void *arg);
87 static int (*__get_event_callback(int event_id)) (sync_agent_event_data_s * request, sync_agent_event_data_s * response);
88 static int ___add_profile_cb(sync_agent_event_data_s * request, sync_agent_event_data_s * response);
89 static int ___update_profile_cb(sync_agent_event_data_s * request, sync_agent_event_data_s * response);
90 static int ___delete_profile_cb(sync_agent_event_data_s * request, sync_agent_event_data_s * response);
91 static int ___start_sync_cb(sync_agent_event_data_s * request, sync_agent_event_data_s * response);
92 static int ___stop_sync_cb(sync_agent_event_data_s * request, sync_agent_event_data_s * response);
93 static int ___get_profile_cb(sync_agent_event_data_s * request, sync_agent_event_data_s * response);
94 static int ___get_sync_category_cb(sync_agent_event_data_s * request, sync_agent_event_data_s * response);
95 static int ___get_sync_statistics_cb(sync_agent_event_data_s * request, sync_agent_event_data_s * response);
96 static int ___get_all_profiles_cb(sync_agent_event_data_s * request, sync_agent_event_data_s * response);
97 static int ___default_cb(sync_agent_event_data_s * request, sync_agent_event_data_s * response);
99 struct tet_testlist tet_testlist[] = {
100 {utc_sync_agent_framework_sync_agent_sync_agent_ds_init_p, POSITIVE_TC_IDX},
101 {utc_sync_agent_framework_sync_agent_ds_create_profile_info_p, POSITIVE_TC_IDX},
102 {utc_sync_agent_framework_sync_agent_ds_set_profile_name_p, POSITIVE_TC_IDX},
103 {utc_sync_agent_framework_sync_agent_ds_set_server_info_p, POSITIVE_TC_IDX},
104 {utc_sync_agent_framework_sync_agent_ds_set_sync_info_p, POSITIVE_TC_IDX},
105 {utc_sync_agent_framework_sync_agent_ds_set_sync_service_info_p, POSITIVE_TC_IDX},
106 {utc_sync_agent_framework_sync_agent_ds_get_profile_name_p, POSITIVE_TC_IDX},
107 {utc_sync_agent_framework_sync_agent_ds_get_server_info_p, POSITIVE_TC_IDX},
108 {utc_sync_agent_framework_sync_agent_ds_get_sync_info_p, POSITIVE_TC_IDX},
109 {utc_sync_agent_framework_sync_agent_ds_get_sync_service_info_p, POSITIVE_TC_IDX},
110 {utc_sync_agent_framework_sync_agent_ds_get_last_sync_info_p, POSITIVE_TC_IDX},
111 {utc_sync_agent_framework_sync_agent_ds_get_sync_statistics_p, POSITIVE_TC_IDX},
112 {utc_sync_agent_framework_sync_agent_ds_add_profile_p, POSITIVE_TC_IDX},
113 {utc_sync_agent_framework_sync_agent_ds_get_profile_p, POSITIVE_TC_IDX},
114 {utc_sync_agent_framework_sync_agent_ds_get_all_profile_p, POSITIVE_TC_IDX},
115 {utc_sync_agent_framework_sync_agent_ds_update_profile_p, POSITIVE_TC_IDX},
116 {utc_sync_agent_framework_sync_agent_ds_delete_profile_p, POSITIVE_TC_IDX},
117 {utc_sync_agent_framework_sync_agent_ds_start_sync_p, POSITIVE_TC_IDX},
118 {utc_sync_agent_framework_sync_agent_ds_stop_sync_p, POSITIVE_TC_IDX},
119 // { utc_sync_agent_framework_sync_agent_ds_free_profile_info_p, POSITIVE_TC_IDX },
120 {utc_sync_agent_framework_sync_agent_ds_deinit_p, POSITIVE_TC_IDX},
124 static pthread_t test_ds_agent_thread_id;
126 static void startup(void)
129 pthread_create(&test_ds_agent_thread_id, 0, _start_test_ds_agent, 0);
134 static void cleanup(void)
137 pthread_cancel(test_ds_agent_thread_id);
139 sync_agent_stop_main_loop(1);
142 static void utc_sync_agent_framework_sync_agent_sync_agent_ds_init_p(void)
144 char *api_name = API_NAME_SYNC_AGENT_DS_INIT;
145 sync_agent_ds_error_e ds_err = SYNC_AGENT_DS_SUCCESS;
147 ds_err = sync_agent_ds_init();
148 if (ds_err == SYNC_AGENT_DS_SUCCESS) {
151 dts_message(api_name, "sync_agent_ds_init : %d", ds_err);
156 static void utc_sync_agent_framework_sync_agent_ds_create_profile_info_p(void)
158 char *api_name = API_NAME_SYNC_AGENT_DS_CREATE_PROFILE_INFO;
159 sync_agent_ds_error_e ds_err = SYNC_AGENT_DS_SUCCESS;
161 ds_profile_h profile_h = NULL;
163 ds_err = sync_agent_ds_create_profile_info(&profile_h);
164 if (ds_err == SYNC_AGENT_DS_SUCCESS) {
167 dts_message(api_name, "sync_agent_ds_create_profile_info : %d", ds_err);
172 static void utc_sync_agent_framework_sync_agent_ds_set_profile_name_p(void)
174 char *api_name = API_NAME_SYNC_AGENT_DS_SET_PROFILE_NAME;
175 sync_agent_ds_error_e ds_err = SYNC_AGENT_DS_SUCCESS;
177 ds_profile_h profile_h = NULL;
178 char *profile_dir_name = "Sync1";
179 char *profile_name = "profile name";
181 ds_err = sync_agent_ds_create_profile_info(&profile_h);
182 if (ds_err != SYNC_AGENT_DS_SUCCESS) {
183 dts_message(api_name, "sync_agent_ds_create_profile_info : %d", ds_err);
187 ds_err = sync_agent_ds_set_profile_name(profile_h, profile_dir_name, profile_name);
188 if (ds_err == SYNC_AGENT_DS_SUCCESS) {
191 dts_message(api_name, "sync_agent_ds_set_profile_name : %d", ds_err);
196 static void utc_sync_agent_framework_sync_agent_ds_set_server_info_p(void)
198 char *api_name = API_NAME_SYNC_AGENT_DS_SET_SERVER_INFO;
199 sync_agent_ds_error_e ds_err = SYNC_AGENT_DS_SUCCESS;
201 ds_profile_h profile_h = NULL;
202 char *addr = "http://";
204 char *password = "password";
206 ds_err = sync_agent_ds_create_profile_info(&profile_h);
207 if (ds_err != SYNC_AGENT_DS_SUCCESS) {
208 dts_message(api_name, "sync_agent_ds_create_profile_info : %d", ds_err);
212 ds_err = sync_agent_ds_set_server_info(profile_h, addr, id, password);
213 if (ds_err == SYNC_AGENT_DS_SUCCESS) {
216 dts_message(api_name, "sync_agent_ds_set_server_info : %d", ds_err);
221 static void utc_sync_agent_framework_sync_agent_ds_set_sync_info_p(void)
223 char *api_name = API_NAME_SYNC_AGENT_DS_SET_SYNC_INFO;
224 sync_agent_ds_error_e ds_err = SYNC_AGENT_DS_SUCCESS;
226 ds_profile_h profile_h = NULL;
227 char *sync_mode = "Periodic";
228 char *sync_type = "Update both";
229 char *interval = "1 hour";
231 ds_err = sync_agent_ds_create_profile_info(&profile_h);
232 if (ds_err != SYNC_AGENT_DS_SUCCESS) {
233 dts_message(api_name, "sync_agent_ds_create_profile_info : %d", ds_err);
237 ds_err = sync_agent_ds_set_sync_info(profile_h, sync_mode, sync_type, interval);
238 if (ds_err == SYNC_AGENT_DS_SUCCESS) {
241 dts_message(api_name, "sync_agent_ds_set_sync_info : %d", ds_err);
246 static void utc_sync_agent_framework_sync_agent_ds_set_sync_service_info_p(void)
248 char *api_name = API_NAME_SYNC_AGENT_DS_SET_SYNC_SERVICE_INFO;
249 sync_agent_ds_error_e ds_err = SYNC_AGENT_DS_SUCCESS;
251 ds_profile_h profile_h = NULL;
252 sync_agent_ds_service_type_e service_type = SYNC_AGENT_CONTACT;
254 char *src_uri = "Contacts";
255 char *tgt_uri = "card";
257 char *password = "password";
259 ds_err = sync_agent_ds_create_profile_info(&profile_h);
260 if (ds_err != SYNC_AGENT_DS_SUCCESS) {
261 dts_message(api_name, "sync_agent_ds_create_profile_info : %d", ds_err);
265 ds_err = sync_agent_ds_set_sync_service_info(profile_h, service_type, enabled, src_uri, tgt_uri, id, password);
266 if (ds_err == SYNC_AGENT_DS_SUCCESS) {
269 dts_message(api_name, "sync_agent_ds_set_sync_service_info : %d", ds_err);
274 static void utc_sync_agent_framework_sync_agent_ds_get_profile_name_p(void)
276 char *api_name = API_NAME_SYNC_AGENT_DS_GET_PROFILE_NAME;
277 sync_agent_ds_error_e ds_err = SYNC_AGENT_DS_SUCCESS;
279 ds_profile_h profile_h = NULL;
280 char *profile_dir_name = "Sync1";
281 char *get_profile_dir_name = NULL;
282 char *profile_name = NULL;
284 ds_err = sync_agent_ds_get_profile(profile_dir_name, &profile_h);
285 if (ds_err != SYNC_AGENT_DS_SUCCESS) {
286 dts_message(api_name, "sync_agent_ds_get_profile : %d", ds_err);
290 ds_err = sync_agent_ds_get_profile_name(profile_h, &get_profile_dir_name, &profile_name);
291 if (ds_err == SYNC_AGENT_DS_SUCCESS) {
294 dts_message(api_name, "sync_agent_ds_get_profile_name : %d", ds_err);
299 static void utc_sync_agent_framework_sync_agent_ds_get_server_info_p(void)
301 char *api_name = API_NAME_SYNC_AGENT_DS_GET_SERVER_INFO;
302 sync_agent_ds_error_e ds_err = SYNC_AGENT_DS_SUCCESS;
304 ds_profile_h profile_h = NULL;
305 char *profile_dir_name = "Sync1";
306 sync_agent_ds_server_info server_info = { NULL };
308 ds_err = sync_agent_ds_get_profile(profile_dir_name, &profile_h);
309 if (ds_err != SYNC_AGENT_DS_SUCCESS) {
310 dts_message(api_name, "sync_agent_ds_get_profile : %d", ds_err);
314 ds_err = sync_agent_ds_get_server_info(profile_h, &server_info);
315 if (ds_err == SYNC_AGENT_DS_SUCCESS) {
318 dts_message(api_name, "sync_agent_ds_get_server_info : %d", ds_err);
323 static void utc_sync_agent_framework_sync_agent_ds_get_sync_info_p(void)
325 char *api_name = API_NAME_SYNC_AGENT_DS_GET_SYNC_INFO;
326 sync_agent_ds_error_e ds_err = SYNC_AGENT_DS_SUCCESS;
328 ds_profile_h profile_h = NULL;
329 char *profile_dir_name = "Sync1";
330 sync_agent_ds_sync_info sync_info = { NULL };
332 ds_err = sync_agent_ds_get_profile(profile_dir_name, &profile_h);
333 if (ds_err != SYNC_AGENT_DS_SUCCESS) {
334 dts_message(api_name, "sync_agent_ds_get_profile : %d", ds_err);
338 ds_err = sync_agent_ds_get_sync_info(profile_h, &sync_info);
339 if (ds_err == SYNC_AGENT_DS_SUCCESS) {
342 dts_message(api_name, "sync_agent_ds_get_sync_info : %d", ds_err);
347 static void utc_sync_agent_framework_sync_agent_ds_get_sync_service_info_p(void)
349 char *api_name = API_NAME_SYNC_AGENT_DS_GET_SYNC_SERVICE_INFO;
350 sync_agent_ds_error_e ds_err = SYNC_AGENT_DS_SUCCESS;
352 ds_profile_h profile_h = NULL;
353 char *profile_dir_name = "Sync1";
354 GList *service_list = NULL;
356 ds_err = sync_agent_ds_get_profile(profile_dir_name, &profile_h);
357 if (ds_err != SYNC_AGENT_DS_SUCCESS) {
358 dts_message(api_name, "sync_agent_ds_get_profile : %d", ds_err);
362 ds_err = sync_agent_ds_get_sync_service_info(profile_h, &service_list);
363 if (ds_err == SYNC_AGENT_DS_SUCCESS) {
366 dts_message(api_name, "sync_agent_ds_get_sync_service_info : %d", ds_err);
371 static void utc_sync_agent_framework_sync_agent_ds_get_last_sync_info_p(void)
373 char *api_name = API_NAME_SYNC_AGENT_DS_GET_LAST_SYNC_INFO;
374 sync_agent_ds_error_e ds_err = SYNC_AGENT_DS_SUCCESS;
376 ds_profile_h profile_h = NULL;
377 char *profile_dir_name = "Sync1";
378 int last_sync_status = 0;
379 int last_sync_time = 0;
381 ds_err = sync_agent_ds_get_profile(profile_dir_name, &profile_h);
382 if (ds_err != SYNC_AGENT_DS_SUCCESS) {
383 dts_message(api_name, "sync_agent_ds_get_profile : %d", ds_err);
387 ds_err = sync_agent_ds_get_last_sync_info(profile_h, &last_sync_status, &last_sync_time);
388 if (ds_err == SYNC_AGENT_DS_SUCCESS) {
391 dts_message(api_name, "sync_agent_ds_get_last_sync_info : %d", ds_err);
396 static void utc_sync_agent_framework_sync_agent_ds_get_sync_statistics_p(void)
398 char *api_name = API_NAME_SYNC_AGENT_DS_GET_SYNC_STATISTICS;
399 sync_agent_ds_error_e ds_err = SYNC_AGENT_DS_SUCCESS;
401 ds_profile_h profile_h = NULL;
402 char *profile_dir_name = "Sync1";
403 GList *statistics_list = NULL;
405 ds_err = sync_agent_ds_get_profile(profile_dir_name, &profile_h);
406 if (ds_err != SYNC_AGENT_DS_SUCCESS) {
407 dts_message(api_name, "sync_agent_ds_get_profile : %d", ds_err);
411 ds_err = sync_agent_ds_get_sync_statistics(profile_h, &statistics_list);
412 if (ds_err == SYNC_AGENT_DS_SUCCESS) {
415 dts_message(api_name, "sync_agent_ds_get_sync_statistics : %d", ds_err);
420 static void utc_sync_agent_framework_sync_agent_ds_add_profile_p(void)
422 char *api_name = API_NAME_SYNC_AGENT_DS_ADD_PROFILE;
423 sync_agent_ds_error_e ds_err = SYNC_AGENT_DS_SUCCESS;
425 ds_profile_h profile_h = NULL;
426 char *profile_dir_name = "Sync1";
427 char *profile_name = "profile name";
429 char *addr = "http://";
431 char *password = "password";
433 char *sync_mode = "Periodic";
434 char *sync_type = "Update both";
435 char *interval = "1 hour";
437 sync_agent_ds_service_type_e service_type = SYNC_AGENT_CONTACT;
439 char *src_uri = "Contacts";
440 char *tgt_uri = "card";
444 ds_err = sync_agent_ds_create_profile_info(&profile_h);
445 if (ds_err != SYNC_AGENT_DS_SUCCESS) {
446 dts_message(api_name, "sync_agent_ds_create_profile_info : %d", ds_err);
450 ds_err = sync_agent_ds_set_profile_name(profile_h, profile_dir_name, profile_name);
451 if (ds_err != SYNC_AGENT_DS_SUCCESS) {
452 dts_message(api_name, "sync_agent_ds_set_profile_name : %d", ds_err);
456 ds_err = sync_agent_ds_set_server_info(profile_h, addr, id, password);
457 if (ds_err != SYNC_AGENT_DS_SUCCESS) {
458 dts_message(api_name, "sync_agent_ds_set_server_info : %d", ds_err);
462 ds_err = sync_agent_ds_set_sync_info(profile_h, sync_mode, sync_type, interval);
463 if (ds_err != SYNC_AGENT_DS_SUCCESS) {
464 dts_message(api_name, "sync_agent_ds_set_sync_info : %d", ds_err);
468 ds_err = sync_agent_ds_add_profile(profile_h, &profile_id);
469 if (ds_err == SYNC_AGENT_DS_SUCCESS) {
472 dts_message(api_name, "sync_agent_ds_add_profile : %d", ds_err);
477 static void utc_sync_agent_framework_sync_agent_ds_get_profile_p(void)
479 char *api_name = API_NAME_SYNC_AGENT_DS_GET_PROFILE;
480 sync_agent_ds_error_e ds_err = SYNC_AGENT_DS_SUCCESS;
482 ds_profile_h profile_h = NULL;
483 char *profile_dir_name = "Sync1";
485 ds_err = sync_agent_ds_get_profile(profile_dir_name, &profile_h);
486 if (ds_err == SYNC_AGENT_DS_SUCCESS) {
489 dts_message(api_name, "sync_agent_ds_get_profile : %d", ds_err);
494 static void utc_sync_agent_framework_sync_agent_ds_get_all_profile_p(void)
496 char *api_name = API_NAME_SYNC_AGENT_DS_GET_ALL_PROFILE;
497 sync_agent_ds_error_e ds_err = SYNC_AGENT_DS_SUCCESS;
499 GList *profile_list = NULL;
501 ds_err = sync_agent_ds_get_all_profile(&profile_list);
503 if (ds_err == SYNC_AGENT_DS_SUCCESS) {
506 dts_message(api_name, "sync_agent_ds_get_all_profile : %d", ds_err);
511 static void utc_sync_agent_framework_sync_agent_ds_update_profile_p(void)
513 char *api_name = API_NAME_SYNC_AGENT_DS_UPDATE_PROFILE;
514 sync_agent_ds_error_e ds_err = SYNC_AGENT_DS_SUCCESS;
516 ds_profile_h profile_h = NULL;
517 char *profile_dir_name = "Sync1";
518 char *profile_name = "updated profile name";
520 char *addr = "http://";
522 char *password = "password";
524 char *sync_mode = "Periodic";
525 char *sync_type = "Update both";
526 char *interval = "1 hour";
528 sync_agent_ds_service_type_e service_type = SYNC_AGENT_CONTACT;
530 char *src_uri = "Contacts";
531 char *tgt_uri = "card";
533 ds_err = sync_agent_ds_create_profile_info(&profile_h);
534 if (ds_err != SYNC_AGENT_DS_SUCCESS) {
535 dts_message(api_name, "sync_agent_ds_create_profile_info : %d", ds_err);
539 ds_err = sync_agent_ds_set_profile_name(profile_h, profile_dir_name, profile_name);
540 if (ds_err != SYNC_AGENT_DS_SUCCESS) {
541 dts_message(api_name, "sync_agent_ds_set_profile_name : %d", ds_err);
545 ds_err = sync_agent_ds_set_server_info(profile_h, addr, id, password);
546 if (ds_err != SYNC_AGENT_DS_SUCCESS) {
547 dts_message(api_name, "sync_agent_ds_set_server_info : %d", ds_err);
551 ds_err = sync_agent_ds_set_sync_info(profile_h, sync_mode, sync_type, interval);
552 if (ds_err != SYNC_AGENT_DS_SUCCESS) {
553 dts_message(api_name, "sync_agent_ds_set_sync_info : %d", ds_err);
557 ds_err = sync_agent_ds_update_profile(profile_h);
558 sync_agent_ds_free_profile_info(profile_h);
560 if (ds_err == SYNC_AGENT_DS_SUCCESS) {
563 dts_message(api_name, "sync_agent_ds_update_profile : %d", ds_err);
568 static void utc_sync_agent_framework_sync_agent_ds_delete_profile_p(void)
570 char *api_name = API_NAME_SYNC_AGENT_DS_DELETE_PROFILE;
571 sync_agent_ds_error_e ds_err = SYNC_AGENT_DS_SUCCESS;
573 ds_profile_h profile_h = NULL;
574 char *profileDirName = "Sync1";
576 ds_err = sync_agent_ds_create_profile_info(&profile_h);
577 if (ds_err != SYNC_AGENT_DS_SUCCESS) {
578 dts_message(api_name, "sync_agent_ds_create_profile_info : %d", ds_err);
582 ds_err = sync_agent_ds_set_profile_name(profile_h, profileDirName, NULL);
583 if (ds_err != SYNC_AGENT_DS_SUCCESS) {
584 dts_message(api_name, "sync_agent_ds_set_profile_name : %d", ds_err);
588 ds_err = sync_agent_ds_delete_profile(profile_h);
589 if (ds_err == SYNC_AGENT_DS_SUCCESS) {
592 dts_message(api_name, "sync_agent_ds_delete_profile : %d", ds_err);
597 static void utc_sync_agent_framework_sync_agent_ds_start_sync_p(void)
599 char *api_name = API_NAME_SYNC_AGENT_DS_START_SYNC;
600 sync_agent_ds_error_e ds_err = SYNC_AGENT_DS_SUCCESS;
602 ds_profile_h profile_h = NULL;
603 char *profileDirName = "Sync1";
605 ds_err = sync_agent_ds_create_profile_info(&profile_h);
606 if (ds_err != SYNC_AGENT_DS_SUCCESS) {
607 dts_message(api_name, "sync_agent_ds_create_profile_info : %d", ds_err);
611 ds_err = sync_agent_ds_set_profile_name(profile_h, profileDirName, NULL);
612 if (ds_err != SYNC_AGENT_DS_SUCCESS) {
613 dts_message(api_name, "sync_agent_ds_set_profile_name : %d", ds_err);
617 ds_err = sync_agent_ds_start_sync(profile_h);
618 if (ds_err == SYNC_AGENT_DS_SUCCESS) {
621 dts_message(api_name, "sync_agent_ds_start_sync : %d", ds_err);
626 static void utc_sync_agent_framework_sync_agent_ds_stop_sync_p(void)
628 char *api_name = API_NAME_SYNC_AGENT_DS_STOP_SYNC;
629 sync_agent_ds_error_e ds_err = SYNC_AGENT_DS_SUCCESS;
631 ds_profile_h profile_h = NULL;
632 char *profileDirName = "Sync1";
634 ds_err = sync_agent_ds_create_profile_info(&profile_h);
635 if (ds_err != SYNC_AGENT_DS_SUCCESS) {
636 dts_message(api_name, "sync_agent_ds_create_profile_info : %d", ds_err);
640 ds_err = sync_agent_ds_set_profile_name(profile_h, profileDirName, NULL);
641 if (ds_err != SYNC_AGENT_DS_SUCCESS) {
642 dts_message(api_name, "sync_agent_ds_set_profile_name : %d", ds_err);
646 ds_err = sync_agent_ds_stop_sync(profile_h);
647 if (ds_err == SYNC_AGENT_DS_SUCCESS) {
650 dts_message(api_name, "sync_agent_ds_stop_sync : %d", ds_err);
655 //static void utc_sync_agent_framework_sync_agent_ds_free_profile_info_p(void)
657 // char *api_name = API_NAME_SYNC_AGENT_DS_FREE_PROFILE_INFO;
658 // sync_agent_ds_error_e ds_err = SYNC_AGENT_DS_SUCCESS;
660 // ds_profile_h profile_h = NULL;
662 // ds_err = sync_agent_ds_create_profile_info(&profile_h);
663 // if (ds_err != SYNC_AGENT_DS_SUCCESS) {
664 // dts_message(api_name, "sync_agent_ds_create_profile_info : %d", ds_err);
665 // dts_fail(api_name);
668 // sync_agent_ds_free_profile_info(profile_h);
671 static void utc_sync_agent_framework_sync_agent_ds_deinit_p(void)
673 char *api_name = API_NAME_SYNC_AGENT_DS_DEINIT;
674 sync_agent_ds_error_e ds_err = SYNC_AGENT_DS_SUCCESS;
676 ds_err = sync_agent_ds_deinit();
677 if (ds_err == SYNC_AGENT_DS_SUCCESS) {
680 dts_message(api_name, "sync_agent_ds_deinit : %d", ds_err);
685 static void *_start_test_ds_agent(void *arg)
687 char *api_name = API_NAME_START_TEST_DS_AGENT;
688 sync_agent_event_error_e event_err = SYNC_AGENT_EVENT_SUCCESS;
689 sync_agent_init_error_e init_error = sync_agent_init(TEST_FW_CONFIG_OMADS_FILE);
690 if (init_error != SYNC_AGENT_INIT_SUCCESS) {
691 dts_message(api_name, "sync_agent_init : %d", init_error);
696 for (event_id = 1; event_id < OMA_DS_EVENT_NUM; event_id++) {
697 event_err = sync_agent_set_event_callback(event_id, __get_event_callback(event_id));
698 if (event_err != SYNC_AGENT_EVENT_SUCCESS) {
699 dts_message(api_name, "sync_agent_set_event_callback : %d", event_err);
704 sync_agent_run_main_loop(1);
707 static int (*__get_event_callback(int event_id)) (sync_agent_event_data_s * request, sync_agent_event_data_s * response) {
708 g_print("%s Start \n", __func__);
712 return ___add_profile_cb;
715 return ___update_profile_cb;
718 return ___delete_profile_cb;
721 return ___start_sync_cb;
724 return ___stop_sync_cb;
727 return ___get_profile_cb;
730 return ___get_sync_category_cb;
733 return ___get_sync_statistics_cb;
736 return ___get_all_profiles_cb;
739 return ___default_cb;
743 g_print("%s End \n", __func__);
746 static int ___add_profile_cb(sync_agent_event_data_s * request, sync_agent_event_data_s * response)
748 g_print("%s Start \n", __func__);
750 int event_result = 1;
751 char *profile_dir_name = NULL;
752 char *profile_name = NULL;
755 char *password = NULL;
756 char *sync_mode = NULL;
757 char *sync_type = NULL;
758 char *interval = NULL;
759 int category_count = 0;
762 sync_agent_get_event_data_param(request, &profile_dir_name);
763 sync_agent_get_event_data_param(request, &profile_name);
764 sync_agent_get_event_data_param(request, &addr);
765 sync_agent_get_event_data_param(request, &id);
766 sync_agent_get_event_data_param(request, &password);
767 sync_agent_get_event_data_param(request, &sync_mode);
768 sync_agent_get_event_data_param(request, &sync_type);
769 sync_agent_get_event_data_param(request, &interval);
770 sync_agent_get_event_data_param(request, &category_count);
773 for (; i < category_count; i++) {
774 sync_agent_ds_service_info *category = NULL;
775 sync_agent_get_event_data_param(request, &(category->service_type));
776 sync_agent_get_event_data_param(request, &(category->enabled));
777 sync_agent_get_event_data_param(request, &(category->src_uri));
778 sync_agent_get_event_data_param(request, &(category->tgt_uri));
779 sync_agent_get_event_data_param(request, &(category->id));
780 sync_agent_get_event_data_param(request, &(category->password));
783 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &event_result);
784 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &account_id);
786 g_print("%s End \n", __func__);
791 static int ___update_profile_cb(sync_agent_event_data_s * request, sync_agent_event_data_s * response)
793 g_print("%s Start \n", __func__);
795 int event_result = 1;
796 char *profile_dir_name = NULL;
797 char *profile_name = NULL;
800 char *password = NULL;
801 char *sync_mode = NULL;
802 char *sync_type = NULL;
803 char *interval = NULL;
804 int category_count = 0;
806 sync_agent_get_event_data_param(request, &profile_dir_name);
807 sync_agent_get_event_data_param(request, &profile_name);
808 sync_agent_get_event_data_param(request, &addr);
809 sync_agent_get_event_data_param(request, &id);
810 sync_agent_get_event_data_param(request, &password);
811 sync_agent_get_event_data_param(request, &sync_mode);
812 sync_agent_get_event_data_param(request, &sync_type);
813 sync_agent_get_event_data_param(request, &interval);
814 sync_agent_get_event_data_param(request, &category_count);
817 for (; i < category_count; i++) {
818 sync_agent_ds_service_info *category = NULL;
819 sync_agent_get_event_data_param(request, &(category->service_type));
820 sync_agent_get_event_data_param(request, &(category->enabled));
821 sync_agent_get_event_data_param(request, &(category->src_uri));
822 sync_agent_get_event_data_param(request, &(category->tgt_uri));
823 sync_agent_get_event_data_param(request, &(category->id));
824 sync_agent_get_event_data_param(request, &(category->password));
827 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &event_result);
829 g_print("%s End \n", __func__);
834 static int ___delete_profile_cb(sync_agent_event_data_s * request, sync_agent_event_data_s * response)
836 g_print("%s Start \n", __func__);
838 int event_result = 1;
840 sync_agent_get_event_data_param(request, &count);
843 char *profile = NULL;
844 for (i = 0; i < count; i++) {
845 sync_agent_get_event_data_param(request, &profile);
848 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &event_result);
850 g_print("%s End \n", __func__);
855 static int ___start_sync_cb(sync_agent_event_data_s * request, sync_agent_event_data_s * response)
857 g_print("%s Start \n", __func__);
859 int event_result = 1;
860 char *profile = NULL;
862 sync_agent_get_event_data_param(request, &profile);
864 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &event_result);
869 g_print("%s End \n", __func__);
874 static int ___stop_sync_cb(sync_agent_event_data_s * request, sync_agent_event_data_s * response)
876 g_print("%s Start \n", __func__);
878 int event_result = 1;
879 char *profile = NULL;
881 sync_agent_get_event_data_param(request, &profile);
883 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &event_result);
888 g_print("%s End \n", __func__);
893 static int ___get_profile_cb(sync_agent_event_data_s * request, sync_agent_event_data_s * response)
895 g_print("%s Start \n", __func__);
897 int event_result = 1;
898 char *profile = NULL;
899 char *profile_name = strdup("profile name");
900 char *addr = strdup("addr");
901 char *id = strdup("id");
902 char *password = strdup("password");
903 char *sync_mode = strdup("sync_mode");
904 char *sync_type = strdup("sync_type");
905 char *interval = strdup("interval");
906 int last_session_status = 0;
907 int last_session_time = 0;
909 sync_agent_get_event_data_param(request, &profile);
911 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &event_result);
912 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)profile_name);
913 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)addr);
914 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)id);
915 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)password);
916 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)sync_mode);
917 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)sync_type);
918 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)interval);
919 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &last_session_status);
920 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &last_session_time);
925 g_print("%s End \n", __func__);
930 static int ___get_sync_category_cb(sync_agent_event_data_s * request, sync_agent_event_data_s * response)
932 g_print("%s Start \n", __func__);
934 int event_result = 1;
935 char *profile = NULL;
936 int content_type = 0;
938 char *srcURI = strdup("srcURI");
939 char *tgtURI = strdup("tgtURI");
940 char *id = strdup("id");
941 char *password = strdup("password");
943 sync_agent_get_event_data_param(request, &profile);
944 sync_agent_get_event_data_param(request, &content_type);
946 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &event_result);
947 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &enabled);
948 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)srcURI);
949 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)tgtURI);
950 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)id);
951 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)password);
956 g_print("%s End \n", __func__);
961 static int ___get_sync_statistics_cb(sync_agent_event_data_s * request, sync_agent_event_data_s * response)
963 g_print("%s Start \n", __func__);
965 int event_result = 1;
966 char *profile = NULL;
967 int content_type = 0;
968 char *dbSynced = strdup("NO");
969 int last_session_time = 0;
970 int server2Client_Total = 0;
971 int server2Client_NrOfAdd = 0;
972 int server2Client_NrOfDelete = 0;
973 int server2Client_NrOfReplace = 0;
974 int client2Server_Total = 0;
975 int client2Server_NrOfAdd = 0;
976 int client2Server_NrOrDelete = 0;
977 int client2Server_NrOfReplace = 0;
979 sync_agent_get_event_data_param(request, &profile);
980 sync_agent_get_event_data_param(request, &content_type);
982 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &event_result);
983 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)dbSynced);
984 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &last_session_time);
985 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &server2Client_Total);
986 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &server2Client_NrOfAdd);
987 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &server2Client_NrOfDelete);
988 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &server2Client_NrOfReplace);
989 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &client2Server_Total);
990 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &client2Server_NrOfAdd);
991 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &client2Server_NrOrDelete);
992 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &client2Server_NrOfReplace);
997 g_print("%s End \n", __func__);
1002 static int ___get_all_profiles_cb(sync_agent_event_data_s * request, sync_agent_event_data_s * response)
1004 g_print("%s Start \n", __func__);
1006 int event_result = 1;
1007 int profile_count = 1;
1008 int category_count = 1;
1009 sync_agent_ds_service_info *category_info = NULL;
1011 char *profile_dir_name = strdup("profile_dir_name");
1012 char *profile_name = strdup("profile_name");
1013 char *addr = strdup("addr");
1014 char *id = strdup("id");
1015 char *password = strdup("password");
1016 char *sync_mode = strdup("sync_mode");
1017 char *sync_type = strdup("sync_type");
1018 char *interval = strdup("interval");
1019 int last_sync_status = 0;
1020 int last_sync_time = 1;
1021 int service_type = 1;
1023 char *src_uri = strdup("src_uri");
1024 char *tgt_uri = strdup("tgt_uri");
1026 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &event_result);
1027 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &profile_count);
1028 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)profile_dir_name);
1029 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)profile_name);
1030 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)addr);
1031 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)id);
1032 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)password);
1033 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)sync_mode);
1034 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)sync_type);
1035 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)interval);
1036 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &last_sync_status);
1037 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &last_sync_time);
1039 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &category_count);
1041 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &service_type);
1042 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_INTEGER, &enabled);
1043 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)src_uri);
1044 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)tgt_uri);
1045 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)id);
1046 sync_agent_append_event_data_param(response, SYNC_AGENT_EVENT_PARAM_TYPE_STRING, (void *)password);
1048 g_print("%s End \n", __func__);
1053 static int ___default_cb(sync_agent_event_data_s * request, sync_agent_event_data_s * response)
1055 g_print("%s Start \n", __func__);
1057 g_print("%s End \n", __func__);