tizen beta release
[platform/core/pim/contacts-service.git] / test / phonelog-test.c
1 /*
2  * Contacts Service
3  *
4  * Copyright (c) 2010 - 2012 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Contact: Youngjae Shin <yj99.shin@samsung.com>
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  *
20  */
21 #include <stdio.h>
22 #include <stdlib.h>
23 #include <glib.h>
24 #include <unistd.h>
25 #include <string.h>
26 #include <contacts-svc.h>
27
28 void phonelog_insert_test(void)
29 {
30         CTSvalue *plog;
31
32         plog = contacts_svc_value_new(CTS_VALUE_PHONELOG);
33         contacts_svc_value_set_str(plog, CTS_PLOG_VAL_NUMBER_STR, "0123456789");
34         contacts_svc_value_set_int(plog, CTS_PLOG_VAL_LOG_TIME_INT,(int) time(NULL));
35         contacts_svc_value_set_int(plog, CTS_PLOG_VAL_LOG_TYPE_INT,
36                         CTS_PLOG_TYPE_VOICE_INCOMMING);
37         contacts_svc_value_set_int(plog, CTS_PLOG_VAL_DURATION_INT, 65);
38         contacts_svc_insert_phonelog(plog);
39
40         contacts_svc_value_set_str(plog, CTS_PLOG_VAL_NUMBER_STR, "0987654321");
41         contacts_svc_value_set_int(plog, CTS_PLOG_VAL_LOG_TIME_INT,(int) time(NULL));
42         contacts_svc_value_set_int(plog, CTS_PLOG_VAL_LOG_TYPE_INT,
43                         CTS_PLOG_TYPE_VOICE_INCOMMING_UNSEEN);
44         contacts_svc_value_set_int(plog, CTS_PLOG_VAL_DURATION_INT, 65);
45         contacts_svc_insert_phonelog(plog);
46
47         contacts_svc_value_set_str(plog, CTS_PLOG_VAL_NUMBER_STR, "0987654321");
48         contacts_svc_value_set_int(plog, CTS_PLOG_VAL_LOG_TIME_INT,(int) time(NULL));
49         contacts_svc_value_set_int(plog, CTS_PLOG_VAL_LOG_TYPE_INT,
50                         CTS_PLOG_TYPE_VOICE_INCOMMING);
51         contacts_svc_value_set_int(plog, CTS_PLOG_VAL_DURATION_INT, 65);
52         contacts_svc_insert_phonelog(plog);
53
54
55         contacts_svc_value_free(plog);
56 }
57 void phonelog_modify_test(void)
58 {
59         contacts_svc_phonelog_set_seen(2, CTS_PLOG_TYPE_VOICE_INCOMMING_UNSEEN);
60
61         contacts_svc_delete_phonelog(CTS_PLOG_DEL_BY_ID, 3);
62         contacts_svc_delete_phonelog(CTS_PLOG_DEL_BY_NUMBER, "0123456789");
63 }
64
65 void phonelog_get_list_test(void)
66 {
67         CTSiter *iter = NULL;
68         char display[1024]={0};
69
70         contacts_svc_get_list(CTS_LIST_GROUPING_PLOG, &iter);
71
72         while (CTS_SUCCESS == contacts_svc_iter_next(iter))
73         {
74                 CTSvalue *plog= NULL;
75                 plog = contacts_svc_iter_get_info(iter);
76
77                 const char *img_path = contacts_svc_value_get_str(plog, CTS_LIST_PLOG_IMG_PATH_STR);
78                 const char *display_name = contacts_svc_value_get_str(plog, CTS_LIST_PLOG_DISPLAY_NAME_STR);
79                 const char *number = contacts_svc_value_get_str(plog, CTS_LIST_PLOG_NUMBER_STR);
80                 if (display_name)
81                         snprintf(display, sizeof(display), "%s", display_name);
82                 else
83                 {
84                         const char *first = contacts_svc_value_get_str(plog, CTS_LIST_PLOG_FIRST_NAME_STR);
85                         const char *last = contacts_svc_value_get_str(plog, CTS_LIST_PLOG_LAST_NAME_STR);
86                         if (first && last) {
87                                 if (CTS_ORDER_NAME_FIRSTLAST == contacts_svc_get_order(CTS_ORDER_OF_DISPLAY))
88                                         snprintf(display, sizeof(display), "%s %s", first, last);
89                                 else
90                                         snprintf(display, sizeof(display), "%s %s", last, first);
91                         }else if (first)
92                                 strcpy(display, first);
93                         else if (last)
94                                 strcpy(display, last);
95                         else {
96                                 if (number)
97                                         strcpy(display, number);
98                         }
99                 }
100
101                 int num_type = contacts_svc_value_get_int(plog, CTS_LIST_PLOG_NUM_TYPE_INT);
102
103                 int index = contacts_svc_value_get_int(plog, CTS_LIST_PLOG_ID_INT);
104                 int type = contacts_svc_value_get_int(plog, CTS_LIST_PLOG_LOG_TYPE_INT);
105                 int time = contacts_svc_value_get_int(plog, CTS_LIST_PLOG_LOG_TIME_INT);
106
107                 if (strlen(display))
108                         printf("%d:%s(%s:%d):type=%d:time=%d\n",
109                                         index, display, number, num_type, type, time);
110                 if (img_path)
111                         printf("%s\n", img_path);
112                 contacts_svc_value_free(plog);
113         }
114         contacts_svc_iter_remove(iter);
115 }
116
117 void phonelog_get_detail_list_test(void)
118 {
119         int ret;
120         CTSiter *iter = NULL;
121         contacts_svc_get_list_with_str(CTS_LIST_PLOGS_OF_NUMBER,"0987654321", &iter);
122
123         ret = contacts_svc_iter_next(iter);
124         while (CTS_SUCCESS == ret)
125         {
126                 CTSvalue *plog=NULL;
127                 plog = contacts_svc_iter_get_info(iter);
128
129                 int index = contacts_svc_value_get_int(plog, CTS_LIST_PLOG_ID_INT);
130                 int type = contacts_svc_value_get_int(plog, CTS_LIST_PLOG_LOG_TYPE_INT);
131                 int time = contacts_svc_value_get_int(plog, CTS_LIST_PLOG_LOG_TIME_INT);
132                 int duration = contacts_svc_value_get_int(plog, CTS_LIST_PLOG_DURATION_INT);
133
134                 printf("%d::type=%d:time=%d:duration=%d\n", index, type, time, duration);
135                 contacts_svc_value_free(plog);
136                 ret = contacts_svc_iter_next(iter);
137         }
138         contacts_svc_iter_remove(iter);
139 }
140
141 static int plog_get_number_list_cb(const char *number, void *user_data)
142 {
143         printf("number = %s\n", number);
144         return CTS_SUCCESS;
145 }
146
147 void phonelog_get_number_list_test(void)
148 {
149         int ret;
150
151         ret = contats_svc_phonelog_get_all_number(plog_get_number_list_cb, NULL);
152         if (CTS_SUCCESS != ret)
153                 printf("contats_svc_phonelog_get_all_number() Failed(%d)\n", ret);
154
155 }
156
157 void phonelog_get_last_call_number_test(void)
158 {
159         char *number = contacts_svc_phonelog_get_last_number(CTS_PLOG_LAST_ALL);
160
161         printf("Last Call Number is %s\n", number);
162         free(number);
163 }
164
165 int main()
166 {
167         contacts_svc_connect();
168         phonelog_insert_test();
169         sleep(2);
170         phonelog_insert_test();
171         printf("grouping List 1 <<<<<<<<<<<\n");
172         phonelog_get_list_test();
173         phonelog_modify_test();
174         printf("grouping List 2 <<<<<<<<<<<\n");
175         phonelog_get_list_test();
176         printf("detail List <<<<<<<<<<<\n");
177         phonelog_get_detail_list_test();
178         printf("phonelog number List <<<<<<<<<<<\n");
179         phonelog_get_number_list_test();
180
181         phonelog_get_last_call_number_test();
182
183         contacts_svc_disconnect();
184         return 0;
185 }