Add core privileges: securesysteminfo, voicecontrol.tts and new privacy: duid
[platform/core/security/privilege-checker.git] / test / tc-privilege-db-manager.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4 #include <privilege_db_manager.h>
5 #include <tc-common.h>
6
7 static void __free_privilege_list(GList * privilege_list)
8 {
9         GList *l = NULL;
10         for (l = privilege_list; l != NULL; l = l->next) {
11                 privilege_info_db_row_s *privilege_info_db_row = (privilege_info_db_row_s *) l->data;
12                 if (privilege_info_db_row->privilege_name != NULL)
13                         free(privilege_info_db_row->privilege_name);
14         }
15 }
16
17
18 void __test_privilege_db_manager_get_privilege_list()
19 {
20         GList *privilege_list = NULL;
21         int ret = privilege_db_manager_get_privilege_list(PRVMGR_PACKAGE_TYPE_CORE, &privilege_list);
22         if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE) {
23                 printf("failed to call privilege_db_manager_get_privilege_list()\n");
24                 printf("error message = %s\n", __get_result_string('d', ret));
25                 printf_red("test fail\n");
26                 fail_cnt++;
27                 return;
28         }
29
30         GList *l = NULL;
31         for (l = privilege_list; l != NULL; l = l->next) {
32                 privilege_info_db_row_s *privilege_info_db_row = (privilege_info_db_row_s *) l->data;
33                 printf("privilege_name = %s\n", privilege_info_db_row->privilege_name);
34                 printf("privilege_level_id = %d\n", privilege_info_db_row->privilege_level_id);
35         }
36         __free_privilege_list(privilege_list);
37
38         printf_green("test success\n");
39         success_cnt++;
40 }
41
42 void __print_mapped_privilege_list(int ret, GList* mapped_privilege_list)
43 {
44         GList *l = NULL;
45         if (ret == PRIVILEGE_DB_MANAGER_ERR_NONE && mapped_privilege_list != NULL) {
46                 for (l = mapped_privilege_list; l != NULL; l = l->next) {
47                         char *privilege_name = (char *)l->data;
48                         printf("mapped_privilege_name = %s\n", privilege_name);
49                 }
50                 printf_green("success\n");
51                 success_cnt++;
52         } else {
53                 fail_cnt++;
54                 printf_red("failed\n");
55         }
56
57         printf("test result = %s\n", __get_result_string('d', ret));
58 }
59
60 void __test_privilege_db_manager_get_mapped_privilege_list()
61 {
62         GList *privilege_list = NULL;
63         GList *mapped_privilege_list = NULL;
64         int ret;
65
66         __print_line();
67         printf("privilege : http://tizen.org/privilege/internal/default/public\n");
68         printf("api_version : 2.4\n");
69         printf("package type : wrt\n");
70         privilege_list = g_list_append(privilege_list, "http://tizen.org/privilege/internal/default/public");
71         ret = privilege_db_manager_get_mapped_privilege_list("2.4", PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
72         __print_mapped_privilege_list(ret, mapped_privilege_list);
73
74         g_list_free(privilege_list);
75         privilege_list = NULL;
76         g_list_free(mapped_privilege_list);
77         mapped_privilege_list = NULL;
78
79         __print_line();
80         printf("privilege : http://tizen.org/privilege/mediacapture\n");
81         printf("api_version : 2.4\n");
82         printf("package type : wrt\n");
83         privilege_list = g_list_append(privilege_list, "http://tizen.org/privilege/mediacapture");
84         ret = privilege_db_manager_get_mapped_privilege_list("2.4", PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
85         __print_mapped_privilege_list(ret, mapped_privilege_list);
86
87         g_list_free(privilege_list);
88         privilege_list = NULL;
89         g_list_free(mapped_privilege_list);
90         mapped_privilege_list = NULL;
91
92         __print_line();
93         printf("privilege : http://tizen.org/privilege/internal/default/public\n");
94         printf("privilege : http://tizen.org/privilege/mediacapture\n");
95         printf("api_version : 2.4\n");
96         printf("package type : wrt\n");
97         privilege_list = g_list_append(privilege_list, "http://tizen.org/privilege/internal/default/public");
98         privilege_list = g_list_append(privilege_list, "http://tizen.org/privilege/mediacapture");
99         ret = privilege_db_manager_get_mapped_privilege_list("2.4", PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
100         __print_mapped_privilege_list(ret, mapped_privilege_list);
101
102         g_list_free(privilege_list);
103         privilege_list = NULL;
104         g_list_free(mapped_privilege_list);
105         mapped_privilege_list = NULL;
106
107         __print_line();
108         printf("privilege : http://tizen.org/privilege/internal/default/public\n");
109         printf("api_version : 2.3\n");
110         printf("package type : wrt\n");
111         privilege_list = g_list_append(privilege_list, "http://tizen.org/privilege/internal/default/public");
112         ret = privilege_db_manager_get_mapped_privilege_list("2.3", PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
113         __print_mapped_privilege_list(ret, mapped_privilege_list);
114
115         g_list_free(privilege_list);
116         privilege_list = NULL;
117         g_list_free(mapped_privilege_list);
118         mapped_privilege_list = NULL;
119
120         __print_line();
121         printf("privilege : http://tizen.org/privilege/mediacapture\n");
122         printf("api_version : 2.2.1\n");
123         printf("package type : wrt\n");
124         privilege_list = g_list_append(privilege_list, "http://tizen.org/privilege/mediacapture");
125         ret = privilege_db_manager_get_mapped_privilege_list("2.2.1", PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
126         __print_mapped_privilege_list(ret, mapped_privilege_list);
127
128         g_list_free(privilege_list);
129         privilege_list = NULL;
130         g_list_free(mapped_privilege_list);
131         mapped_privilege_list = NULL;
132
133         __print_line();
134         printf("privilege : http://tizen.org/privilege/content.read\n");
135         printf("api_version : 2.2.1\n");
136         printf("package type : wrt\n");
137         privilege_list = g_list_append(privilege_list, "http://tizen.org/privilege/content.read");
138         ret = privilege_db_manager_get_mapped_privilege_list("2.2.1", PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
139         __print_mapped_privilege_list(ret, mapped_privilege_list);
140
141         g_list_free(privilege_list);
142         privilege_list = NULL;
143         g_list_free(mapped_privilege_list);
144         mapped_privilege_list = NULL;
145
146         __print_line();
147         printf("privilege : http://tizen.org/privilege/internal/webappdefault\n");
148         printf("privilege : http://tizen.org/privilege/internal/default/public\n");
149         printf("privilege : http://tizen.org/privilege/mediacapture\n");
150         printf("privilege : http://tizen.org/privilege/content.read\n");
151         printf("api_version : 2.2.1\n");
152         printf("package type : wrt\n");
153         privilege_list = g_list_append(privilege_list, "http://tizen.org/privilege/internal/webappdefault");
154         privilege_list = g_list_append(privilege_list, "http://tizen.org/privilege/internal/default/public");
155         privilege_list = g_list_append(privilege_list, "http://tizen.org/privilege/mediacapture");
156         privilege_list = g_list_append(privilege_list, "http://tizen.org/privilege/content.read");
157         ret = privilege_db_manager_get_mapped_privilege_list("2.2.1", PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
158         __print_mapped_privilege_list(ret, mapped_privilege_list);
159
160         g_list_free(privilege_list);
161         g_list_free(mapped_privilege_list);
162
163         printf_green("test success\n");
164         success_cnt++;
165 }
166
167 void __check_get_privilege_display_result(privilege_db_manager_error_e expected_result, privilege_db_manager_error_e result, char *privilege_display)
168 {
169         printf("expected result = %s, result = %s\n", __get_result_string('d', expected_result), __get_result_string('d', result));
170
171         if (expected_result != result) {
172                 printf("not matched\n");
173                 printf_red("test fail\n");
174                 fail_cnt++;
175         } else {
176                 printf("matched\n");
177
178                 if (privilege_display == NULL)
179                         printf("privilege_display = NULL\n");
180                 else
181                         printf("privilege_display = %s\n", privilege_display);
182
183                 printf_green("test success\n");
184                 success_cnt++;
185         }
186 }
187
188 void __test_privilege_db_manager_get_privilege_display()
189 {
190         int ret;
191
192         char *privilege_display = NULL;
193         if (_get_tizen_profile() == TIZEN_PROFILE_MOBILE) {
194                 __print_line();
195                 printf("privilege : http://tizen.org/privilege/location\n");
196                 printf("privilege_type : core\n");
197                 printf("expected result : PRIVILEGE_DB_MANAGER_ERR_NONE\n");
198                 ret = privilege_db_manager_get_privilege_display(PRVMGR_PACKAGE_TYPE_CORE, "http://tizen.org/privilege/location", "2.3", &privilege_display);
199                 __check_get_privilege_display_result(PRIVILEGE_DB_MANAGER_ERR_NONE, ret, privilege_display);
200                 free(privilege_display);
201         }
202         __print_line();
203         printf("privilege : http://tizen.org/privilege/internet\n");
204         printf("privilege_type : wrt\n");
205         printf("expected result : PRIVILEGE_DB_MANAGER_ERR_NONE\n");
206         privilege_display = NULL;
207         ret = privilege_db_manager_get_privilege_display(PRVMGR_PACKAGE_TYPE_WRT, "http://tizen.org/privilege/internet", "2.3", &privilege_display);
208         __check_get_privilege_display_result(PRIVILEGE_DB_MANAGER_ERR_NONE, ret, privilege_display);
209         free(privilege_display);
210
211         __print_line();
212         printf("privilege : http://tizen.org/privilege/messasdfsfsdfsdfad\n");
213         printf("expected result : PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT\n");
214         privilege_display = NULL;
215         ret = privilege_db_manager_get_privilege_display(PRVMGR_PACKAGE_TYPE_CORE, "http://tizen.org/privilege/messasdfsfsdfsdfad", "2.3", &privilege_display);
216         __check_get_privilege_display_result(PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT, ret, privilege_display);
217         free(privilege_display);
218
219         __print_line();
220         printf("api_version is NULL\n");
221         printf("privilege : http://tizen.org/privilege/internet\n");
222         printf("privilege_type : wrt\n");
223         printf("expected result : PRIVILEGE_DB_MANAGER_ERR_NONE\n");
224         privilege_display = NULL;
225         ret = privilege_db_manager_get_privilege_display(PRVMGR_PACKAGE_TYPE_WRT, "http://tizen.org/privilege/internet", NULL, &privilege_display);
226         __check_get_privilege_display_result(PRIVILEGE_DB_MANAGER_ERR_NONE, ret, privilege_display);
227         free(privilege_display);
228
229         __print_line();
230         printf("api_version is NULL\n");
231         printf("privilege : http://tizen.org/privilege/messasdfsfsdfsdfad\n");
232         printf("expected result : PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT\n");
233         privilege_display = NULL;
234         ret = privilege_db_manager_get_privilege_display(PRVMGR_PACKAGE_TYPE_CORE, "http://tizen.org/privilege/messasdfsfsdfsdfad", NULL, &privilege_display);
235         __check_get_privilege_display_result(PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT, ret, privilege_display);
236         free(privilege_display);
237
238         __print_line();
239
240 }
241
242 void __check_get_privilege_description_result(privilege_db_manager_error_e expected_result, privilege_db_manager_error_e result, char *privilege_description)
243 {
244         printf("expected result = %s, result = %s\n", __get_result_string('d', expected_result), __get_result_string('d', result));
245
246         if (expected_result != result) {
247                 printf("not matched\n");
248                 printf_red("test fail\n");
249                 fail_cnt++;
250         } else {
251                 printf("matched\n");
252
253                 if (privilege_description == NULL)
254                         printf("privilege_description = NULL\n");
255                 else
256                         printf("privilege_description = %s\n", privilege_description);
257
258                 printf_green("test success\n");
259                 success_cnt++;
260         }
261 }
262
263 void __test_privilege_db_manager_get_privilege_description()
264 {
265         int ret;
266         char *privilege_description = NULL;
267         if (_get_tizen_profile() == TIZEN_PROFILE_MOBILE) {
268                 __print_line();
269                 printf("privilege : http://tizen.org/privilege/location\n");
270                 printf("privilege_type : core\n");
271                 printf("expected result : PRIVILEGE_DB_MANAGER_ERR_NONE\n");
272                 ret = privilege_db_manager_get_privilege_description(PRVMGR_PACKAGE_TYPE_CORE, "http://tizen.org/privilege/location", "2.3", &privilege_description);
273                 __check_get_privilege_description_result(PRIVILEGE_DB_MANAGER_ERR_NONE, ret, privilege_description);
274
275                 if (privilege_description != NULL) {
276                         free(privilege_description);
277                         privilege_description = NULL;
278                 }
279         }
280         __print_line();
281         printf("privilege : http://tizen.org/privilege/internet\n");
282         printf("privilege_type : wrt\n");
283         printf("expected result : PRIVILEGE_DB_MANAGER_ERR_NONE\n");
284         ret = privilege_db_manager_get_privilege_description(PRVMGR_PACKAGE_TYPE_WRT, "http://tizen.org/privilege/internet", "2.3", &privilege_description);
285         __check_get_privilege_description_result(PRIVILEGE_DB_MANAGER_ERR_NONE, ret, privilege_description);
286
287         if (privilege_description != NULL) {
288                 free(privilege_description);
289                 privilege_description = NULL;
290         }
291
292         __print_line();
293         printf("privilege : http://tizen.org/privilege/messasdfsfsdfsdfad\n");
294         printf("expected result : PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT\n");
295         ret = privilege_db_manager_get_privilege_description(PRVMGR_PACKAGE_TYPE_CORE, "http://tizen.org/privilege/messasdfsfsdfsdfad", "2.3", &privilege_description);
296         __check_get_privilege_description_result(PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT, ret, privilege_description);
297
298         if (privilege_description != NULL) {
299                 free(privilege_description);
300                 privilege_description = NULL;
301         }
302
303         __print_line();
304         printf("api_version is NULL\n");
305         printf("privilege : http://tizen.org/privilege/internet\n");
306         printf("privilege_type : wrt\n");
307         printf("expected result : PRIVILEGE_DB_MANAGER_ERR_NONE\n");
308         ret = privilege_db_manager_get_privilege_description(PRVMGR_PACKAGE_TYPE_WRT, "http://tizen.org/privilege/internet", NULL, &privilege_description);
309         __check_get_privilege_description_result(PRIVILEGE_DB_MANAGER_ERR_NONE, ret, privilege_description);
310
311         if (privilege_description != NULL) {
312                 free(privilege_description);
313                 privilege_description = NULL;
314         }
315
316         __print_line();
317         printf("api_version is NULL\n");
318         printf("privilege : http://tizen.org/privilege/messasdfsfsdfsdfad\n");
319         printf("expected result : PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT\n");
320         ret = privilege_db_manager_get_privilege_description(PRVMGR_PACKAGE_TYPE_CORE, "http://tizen.org/privilege/messasdfsfsdfsdfad", NULL, &privilege_description);
321         __check_get_privilege_description_result(PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT, ret, privilege_description);
322         __print_line();
323
324         free(privilege_description);
325
326 }
327
328 void __test_privilege_db_manager_get_privacy_by_privilege()
329 {
330         int ret = 0;
331         int privacy_id = 100;
332         char* privacy_name = NULL;
333
334         __print_line();
335         printf("privilege: http://tizen.org/privilege/account.read\n");
336         printf("privacy: http://tizen.org/privacy/account\n");
337         ret = privilege_db_manager_get_privacy_by_privilege("http://tizen.org/privilege/account.read", &privacy_name);
338         ret = privilege_db_manager_get_privacy_id_by_privilege("http://tizen.org/privilege/account.read", &privacy_id);
339         printf("privacy name = %s, privacy_id = %d\n", privacy_name, privacy_id);
340         if ((ENABLE_ASKUSER && ret == 0 && !strcmp(privacy_name, "http://tizen.org/privacy/account") && privacy_id == 0) || (DISABLE_ASKUSER && ret == PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT)) {
341                 success_cnt++;
342                 printf_green("success\n");
343         } else {
344                 fail_cnt++;
345                 printf_red("fail. ret = %s\n", __get_result_string('d', ret));
346         }
347
348         free(privacy_name);
349         privacy_name = NULL;
350
351         __print_line();
352         printf("privilege: http://tizen.org/privilege/location\n");
353         printf("privacy: http://tizen.org/privacy/location\n");
354         ret = privilege_db_manager_get_privacy_by_privilege("http://tizen.org/privilege/location", &privacy_name);
355         ret = privilege_db_manager_get_privacy_id_by_privilege("http://tizen.org/privilege/location", &privacy_id);
356         printf("privacy name = %s, privacy_id = %d\n", privacy_name, privacy_id);
357         if ((ENABLE_ASKUSER && ret == 0 && !strcmp(privacy_name, "http://tizen.org/privacy/location") && privacy_id == 7) || (DISABLE_ASKUSER && ret == PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT)) {
358                 success_cnt++;
359                 printf_green("success\n");
360         } else {
361                 fail_cnt++;
362                 printf_red("fail\n");
363         }
364         free(privacy_name);
365         privacy_name = NULL;
366
367         __print_line();
368         printf("privilege: http://tizen.org/privilege/call\n");
369         printf("privacy: http://tizen.org/privacy/call\n");
370         ret = privilege_db_manager_get_privacy_by_privilege("http://tizen.org/privilege/call", &privacy_name);
371         ret = privilege_db_manager_get_privacy_id_by_privilege("http://tizen.org/privilege/call", &privacy_id);
372         printf("privacy name = %s, privacy_id = %d\n", privacy_name, privacy_id);
373         if ((ENABLE_ASKUSER && ret == 0 && !strcmp(privacy_name, "http://tizen.org/privacy/call") && privacy_id == 3) || (DISABLE_ASKUSER && ret == PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT)) {
374                 success_cnt++;
375                 printf_green("success\n");
376         } else {
377                 fail_cnt++;
378                 printf_red("fail\n");
379         }
380         free(privacy_name);
381         privacy_name = NULL;
382 }
383
384 void __test_privilege_db_manager_is_privacy_white_list()
385 {
386         int ret = 0;
387
388         __print_line();
389         printf("pkgid: ise-default\n");
390         printf("privilege: http://tizen.org/privilege/call\n");
391         printf("is privacy whitelist\n");
392         ret = privilege_db_manager_is_privacy_white_list("ise-default", "http://tizen.org/privilege/call");
393         printf("ret = %d\n", ret);
394         if ((ENABLE_ASKUSER && ret == 1) || (DISABLE_ASKUSER && ret == PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT)) {
395                 success_cnt++;
396                 printf_green("success\n");
397         } else {
398                 fail_cnt++;
399                 printf_red("fail\n");
400         }
401
402         __print_line();
403         printf("pkgid: ise-default\n");
404         printf("privilege: http://tizen.org/privilege/location\n");
405         printf("is not privacy whitelist\n");
406         ret = privilege_db_manager_is_privacy_white_list("ise-default", "http://tizen.org/privilege/location");
407         printf("ret = %d\n", ret);
408         if ((ENABLE_ASKUSER && ret == 0) || (DISABLE_ASKUSER && ret == PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT)) {
409                 success_cnt++;
410                 printf_green("success\n");
411         } else {
412                 fail_cnt++;
413                 printf_red("fail\n");
414         }
415
416         __print_line();
417         printf("pkgid: ise-default\n");
418         printf("privilege: http://tizen.org/privilege/calendar.read\n");
419         printf("is privacy whitelist\n");
420         ret = privilege_db_manager_is_privacy_white_list("ise-default", "http://tizen.org/privilege/calendar.read");
421         printf("ret = %d\n", ret);
422         if ((ENABLE_ASKUSER && ret == 1) || (DISABLE_ASKUSER && ret == PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT)) {
423                 success_cnt++;
424                 printf_green("success\n");
425         } else {
426                 fail_cnt++;
427                 printf_red("fail\n");
428         }
429
430         __print_line();
431         printf("pkgid: orxxxxx\n");
432         printf("privilege: http://tizen.org/privilege/call\n");
433         printf("is not privacy whitelist\n");
434         ret = privilege_db_manager_is_privacy_white_list("orxxxxx", "http://tizen.org/privilege/call");
435         printf("ret = %d\n", ret);
436         if ((ENABLE_ASKUSER && ret == 0) || (DISABLE_ASKUSER && ret == PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT)) {
437                 success_cnt++;
438                 printf_green("success\n");
439         } else {
440                 fail_cnt++;
441                 printf_red("fail\n");
442         }
443
444 }
445
446 void __test_privilege_db_manager_get_privacy_id()
447 {
448         int ret = 0;
449         int privacy_id = 100;
450
451         __print_line();
452         ret = privilege_db_manager_get_privacy_id("http://tizen.org/privacy/account", &privacy_id);
453         printf("privacy : http://tizen.org/privacy/account, privacy_id = %d\n", privacy_id);
454         if (ret == PRIVILEGE_DB_MANAGER_ERR_NONE && privacy_id == 0) {
455                 success_cnt++;
456                 printf_green("success\n");
457         } else {
458                 fail_cnt++;
459                 printf_red("fail\n");
460         }
461
462         __print_line();
463         ret = privilege_db_manager_get_privacy_id("http://tizen.org/privacy/location", &privacy_id);
464         printf("privacy : http://tizen.org/privacy/location, privacy_id = %d\n", privacy_id);
465         if (ret == PRIVILEGE_DB_MANAGER_ERR_NONE && privacy_id == 7) {
466                 success_cnt++;
467                 printf_green("success\n");
468         } else {
469                 fail_cnt++;
470                 printf_red("fail\n");
471         }
472         __print_line();
473 }
474
475 void __test_privilege_db_manager_is_user_settable()
476 {
477         int ret = 0;
478
479         __print_line();
480         printf("pkgid: ise-default\n");
481         printf("privilege: http://tizen.org/privacy/calendar\n");
482         printf("is not user-settable\n");
483         ret = privilege_db_manager_is_user_settable("ise-default", "http://tizen.org/privacy/calendar");
484         printf("ret = %d\n", ret);
485         if ((ENABLE_ASKUSER && ret == 0) || (DISABLE_ASKUSER && ret == 1)) {
486                 success_cnt++;
487                 printf_green("success\n");
488         } else {
489                 fail_cnt++;
490                 printf_red("fail\n");
491         }
492
493         __print_line();
494         printf("pkgid: ise-default\n");
495         printf("privilege: http://tizen.org/privacy/location\n");
496         printf("is user-settable\n");
497         ret = privilege_db_manager_is_user_settable("ise-default", "http://tizen.org/privacy/location");
498         printf("ret = %d\n", ret);
499         if (ret == 1) {
500                 success_cnt++;
501                 printf_green("success\n");
502         } else {
503                 fail_cnt++;
504                 printf_red("fail\n");
505         }
506
507         __print_line();
508         printf("pkgid: org.tizen.xxxxxxx\n");
509         printf("privilege: http://tizen.org/privacy/location\n");
510         printf("is user-settable\n");
511         ret = privilege_db_manager_is_user_settable("org.tizen.xxxxxxx", "http://tizen.org/privacy/location");
512         printf("ret = %d\n", ret);
513         if (ret == 1) {
514                 success_cnt++;
515                 printf_green("success\n");
516         } else {
517                 fail_cnt++;
518                 printf_red("fail\n");
519         }
520
521         __print_line();
522         printf("pkgid: org.tizen.xxxxxxx\n");
523         printf("privilege: http://tizen.org/privacy/xxxxx\n");
524         printf("is user-settable\n");
525         ret = privilege_db_manager_is_user_settable("org.tizen.xxxxxxx", "http://tizen.org/privacy/xxxxx");
526         printf("ret = %d\n", ret);
527         if (ret == PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT) {
528                 success_cnt++;
529                 printf_green("success\n");
530         } else {
531                 fail_cnt++;
532                 printf_red("fail\n");
533         }
534
535         __print_line();
536 }
537
538 void __test_privilege_db_manager_get_same_privacy_grouped_privileges()
539 {
540         int ret = 0;
541         GList *privilege_list = NULL;
542
543         __print_line();
544         printf("privilege = http://tizen.org/privilege/account.read\n");
545         ret = privilege_db_manager_get_same_privacy_grouped_privileges("http://tizen.org/privilege/account.read", &privilege_list);
546
547         if (ENABLE_ASKUSER) {
548                 printf("privacy = account\n");
549                 if (ret == PRIVILEGE_DB_MANAGER_ERR_NONE && privilege_list != NULL) {
550                         success_cnt++;
551                         printf_green("success\n");
552                 } else {
553                         fail_cnt++;
554                         printf_red("failed. ret = %s\n", __get_result_string('m', ret));
555                 }
556         } else {
557                 printf("not privacy\n");
558                 if (ret == PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT && privilege_list == NULL) {
559                         success_cnt++;
560                         printf_green("success\n");
561                 } else {
562                         fail_cnt++;
563                         printf_red("failed. ret = %s\n", __get_result_string('d', ret));
564                 }
565         }
566
567         if (privilege_list != NULL) {
568                 __print_glist(privilege_list);
569                 g_list_free_full(privilege_list, free);
570                 privilege_list = NULL;
571         }
572
573         __print_line();
574         printf("privilege = http://tizen.org/privilege/internet\n");
575         printf("not privacy\n");
576
577         ret = privilege_db_manager_get_same_privacy_grouped_privileges("http://tizen.org/privilege/internet", &privilege_list);
578         if (ret == PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT && privilege_list == NULL) {
579                 success_cnt++;
580                 printf_green("success\n");
581         } else {
582                 fail_cnt++;
583                 printf_red("failed. internet privilege is not privacy. ret = %s\n", __get_result_string('d', ret));
584         }
585
586         if (privilege_list != NULL) {
587                 __print_glist(privilege_list);
588                 g_list_free_full(privilege_list, free);
589                 privilege_list = NULL;
590         }
591         __print_line();
592         printf("privilege = http://tizen.org/privilege/internal/buxton/message.read\n");
593         printf("not privacy\n");
594
595         ret = privilege_db_manager_get_same_privacy_grouped_privileges("http://tizen.org/privilege/internal/buxton/message.read", &privilege_list);
596         if (ret == PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT && privilege_list == NULL) {
597                 success_cnt++;
598                 printf_green("success\n");
599         } else {
600                 fail_cnt++;
601                 printf_red("failed. internal/buxton/message.read privilege is not privacy. ret = %s\n", __get_result_string('d', ret));
602         }
603
604         if (privilege_list != NULL) {
605                 __print_glist(privilege_list);
606                 g_list_free_full(privilege_list, free);
607         }
608 }
609
610 int main()
611 {
612         __tcinfo(function, "privilege_db_manager_get_privilege_list");
613         __test_privilege_db_manager_get_privilege_list();
614
615         __tcinfo(function, "privilege_db_manager_get_mapped_privilege_list");
616         __test_privilege_db_manager_get_mapped_privilege_list();
617
618         __tcinfo(function, "privilege_db_manager_get_privilege_display");
619         __test_privilege_db_manager_get_privilege_display();
620
621         __tcinfo(function, "privilege_db_manager_get_privilege_description");
622         __test_privilege_db_manager_get_privilege_description();
623
624         __tcinfo(function, "privilege_db_manager_get_privacy_id_by_privilege, privilege_db_manager_get_privacy_by_privilege");
625         __test_privilege_db_manager_get_privacy_by_privilege();
626
627         __tcinfo(function, "privilege_db_manager_is_privacy_white_list");
628         __test_privilege_db_manager_is_privacy_white_list();
629
630         __tcinfo(function, "privilege_db_manager_get_privacy_id");
631         __test_privilege_db_manager_get_privacy_id();
632
633         __tcinfo(function, "privilege_db_manager_is_user_settable");
634         __test_privilege_db_manager_is_user_settable();
635
636         __tcinfo(function, "privilege_db_manager_get_same_privacy_grouped_privileges");
637         __test_privilege_db_manager_get_same_privacy_grouped_privileges();
638
639         printf_green("Test Complete\n");
640         printf_green("success : %d, ", success_cnt);
641         printf_red("fail : %d\n", fail_cnt);
642
643         return 0;
644 }