Add privacy related APIs
[platform/core/security/privilege-info.git] / test / tc_privilege_info.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <privilege_information.h>
4
5 #define BRIGHTNESS 0
6 #define RED 31
7 #define GREEN 32
8 #define YELLOW 33
9 #define BG_BLACK 40
10
11 static int fail_cnt = 0;
12 static int success_cnt = 0;
13
14 static void __change_color_to_red()
15 {
16         printf("%c[%d;%dm", 0x1B, BRIGHTNESS, RED);
17 }
18
19 static void __change_color_to_green()
20 {
21         printf("%c[%d;%dm", 0x1B, BRIGHTNESS, GREEN);
22 }
23
24 static void __change_color_to_yellow()
25 {
26         printf("%c[%d;%dm", 0x1B, BRIGHTNESS, YELLOW);
27 }
28
29 static void __change_color_to_origin()
30 {
31         printf("%c[%dm", 0x1B, 0);
32 }
33
34 static const char* __get_result_string(privilege_info_error_e ret)
35 {
36         if (ret == PRVINFO_ERROR_NONE)
37                 return "PRVINFO_ERROR_NONE";
38         else if (ret == PRVINFO_ERROR_INVALID_PARAMETER)
39                 return "PRVINFO_ERROR_INVALID_PARAMETER";
40         else if (ret == PRVINFO_ERROR_OUT_OF_MEMORY)
41                 return "PRVINFO_ERROR_OUT_OF_MEMORY";
42         else if (ret == PRVINFO_ERROR_INTERNAL_ERROR)
43                 return "PRVINFO_ERROR_INTERNAL_ERROR";
44
45         return "PRVINFO_ERROR_NO_MATCHED_ERROR_MESSAGE";
46 }
47
48 static void __check_get_privilege_display_name_result(privilege_info_error_e expected_result, privilege_info_error_e result, const char* display_name)
49 {
50         printf("expected result = %s, result = %s\n", __get_result_string(expected_result), __get_result_string(result));
51
52         if (expected_result != result) {
53                 printf("not matched\n");
54                 __change_color_to_red();
55                 printf("test fail\n");
56                 fail_cnt++;
57         } else {
58                 printf("matched\n");
59                 if (result == PRVINFO_ERROR_NONE) {
60                         if (display_name == NULL) {
61                                 printf("display_name must not be NULL\n");
62                                 __change_color_to_red();
63                                 printf("test fail\n");
64                                 fail_cnt++;
65                                 __change_color_to_origin();
66                                 return;
67                         } else {
68                                 printf("display_name = %s\n", display_name);
69                         }
70                 } else {
71                         if (display_name != NULL) {
72                                 printf("display_name = %s\n", display_name);
73                                 printf("display_name must be NULL\n");
74                                 __change_color_to_red();
75                                 printf("test fail\n");
76                                 fail_cnt++;
77                                 __change_color_to_origin();
78                                 return;
79                         }
80                 }
81                 __change_color_to_green();
82                 printf("test success\n");
83                 success_cnt++;
84         }
85         __change_color_to_origin();
86 }
87
88
89 static void __check_get_privilege_description_result(privilege_info_error_e expected_result, privilege_info_error_e result, const char* description)
90 {
91         printf("expected result = %s, result = %s\n", __get_result_string(expected_result), __get_result_string(result));
92
93         if (expected_result != result) {
94                 printf("not matched\n");
95                 __change_color_to_red();
96                 printf("test fail\n");
97                 fail_cnt++;
98         } else {
99            printf("matched\n");
100            if (result == PRVINFO_ERROR_NONE) {
101                         if (description == NULL) {
102                                 printf("description must not be NULL\n");
103                                 __change_color_to_red();
104                                 printf("test fail\n");
105                                 fail_cnt++;
106                                 __change_color_to_origin();
107                                 return;
108                         } else {
109                                 printf("description = %s\n", description);
110                         }
111                 } else {
112                         if (description != NULL) {
113                                 printf("description = %s\n", description);
114                                 printf("description must be NULL\n");
115                                 __change_color_to_red();
116                                 printf("test fail\n");
117                                 fail_cnt++;
118                                 __change_color_to_origin();
119                                 return;
120                         }
121                 }
122
123                 __change_color_to_green();
124                 printf("test success\n");
125                 success_cnt++;
126         }
127         __change_color_to_origin();
128 }
129
130 static void __check_get_privacy_display_name_result(privilege_info_error_e expected_result, privilege_info_error_e result, const char* privacy_display)
131 {
132         printf("expectd result %s, result = %s\n", __get_result_string(expected_result), __get_result_string(result));
133
134         if (expected_result != result) {
135                 printf("not matched\n");
136                 __change_color_to_red();
137                 printf("test fail\n");
138                 fail_cnt++;
139         } else {
140                 printf("matched\n");
141                 if (privacy_display != NULL)
142                         printf("privacy_display_name = %s\n", privacy_display);
143                 else
144                         printf("privacy_display_name is NULL.\n");
145                 __change_color_to_green();
146                 printf("test success\n");
147                 success_cnt++;
148         }
149         __change_color_to_origin();
150 }
151
152 static void __test_privilege_info_get_display_name()
153 {
154         int ret;
155         char* display_name = NULL;
156
157         printf("-----------------------------------------------------------\n");
158         printf("api_version : 2.3\n");
159         printf("privilege : http://tizen.org/privilege/window.priority.set\n");
160         printf("expected result : PRVINFO_ERROR_NONE\n");
161         ret = privilege_info_get_display_name("2.3", "http://tizen.org/privilege/window.priority.set", &display_name);
162         __check_get_privilege_display_name_result(PRVINFO_ERROR_NONE, ret, display_name);
163
164         printf("-----------------------------------------------------------\n");
165         printf("api_version : 2.3\n");
166         printf("privilege : http://tizen.org/privilege/mediacapture\n");
167         printf("expected result : PRVINFO_ERROR_NONE\n");
168         if (display_name != NULL) {
169                 free(display_name);
170                 display_name = NULL;
171         }
172         ret = privilege_info_get_display_name("2.3", "http://tizen.org/privilege/mediacapture", &display_name);
173         __check_get_privilege_display_name_result(PRVINFO_ERROR_NONE, ret, display_name);
174
175         printf("-----------------------------------------------------------\n");
176         printf("Not existing privilege\n");
177         printf("api_version : 2.3\n");
178         printf("privilege : http://tizen.org/privilege/RRRRRRRRRR\n");
179         printf("expected result : PRVINFO_ERROR_NONE\n");
180         if (display_name != NULL) {
181                 free(display_name);
182                 display_name = NULL;
183         }
184         ret = privilege_info_get_display_name("2.3", "http://tizen.org/privilege/RRRRRRRRRR", &display_name);
185         __check_get_privilege_display_name_result(PRVINFO_ERROR_NONE, ret, display_name);
186
187         printf("-----------------------------------------------------------\n");
188         printf("Invalid parameter\n");
189         printf("api_version : NULL\n");
190         printf("privilege : http://tizen.org/privilege/window.priority.set\n");
191         printf("expected result : PRVINFO_ERROR_NONE\n");
192         if (display_name != NULL) {
193                 free(display_name);
194                 display_name = NULL;
195         }
196         ret = privilege_info_get_display_name(NULL, "http://tizen.org/privilege/window, priority.set", &display_name);
197         __check_get_privilege_display_name_result(PRVINFO_ERROR_INVALID_PARAMETER, ret, display_name);
198
199         free(display_name);
200 }
201 static void __test_privilege_info_get_display_name_by_pkgtype()
202 {
203         int ret;
204         char* display_name = NULL;
205
206         printf("-----------------------------------------------------------\n");
207         printf("pkgtype : PRVINFO_PACKAGE_TYPE_NATIVE\n");
208         printf("api_version : 2.3\n");
209         printf("privilege : http://tizen.org/privilege/window.priority.set\n");
210         printf("expected result : PRVINFO_ERROR_NONE\n");
211         ret = privilege_info_get_display_name_by_pkgtype("PRVINFO_PACKAGE_TYPE_NATIVE", "2.3", "http://tizen.org/privilege/window.priority.set", &display_name);
212         __check_get_privilege_display_name_result(PRVINFO_ERROR_NONE, ret, display_name);
213
214         printf("-----------------------------------------------------------\n");
215         printf("pkgtype : PRVINFO_PACKAGE_TYPE_WEB\n");
216         printf("api_version : 2.3\n");
217         printf("privilege : http://tizen.org/privilege/mediacapture\n");
218         printf("expected result : PRVINFO_ERROR_NONE\n");
219         if (display_name != NULL) {
220                 free(display_name);
221                 display_name = NULL;
222         }
223         ret = privilege_info_get_display_name_by_pkgtype("PRVINFO_PACKAGE_TYPE_WEB", "2.3", "http://tizen.org/privilege/mediacapture", &display_name);
224         __check_get_privilege_display_name_result(PRVINFO_ERROR_NONE, ret, display_name);
225
226         printf("-----------------------------------------------------------\n");
227         printf("Mismatched package type: write WEB as NATIVE\n");
228         printf("pkgtype : PRVINFO_PACKAGE_TYPE_NATIVE\n");
229         printf("api_version : 2.3\n");
230         printf("privilege : http://tizen.org/privilege/mediacapture\n");
231         printf("expected result : PRVINFO_ERROR_NONE\n");
232         if (display_name != NULL) {
233                 free(display_name);
234                 display_name = NULL;
235         }
236         ret = privilege_info_get_display_name_by_pkgtype("PRVINFO_PACKAGE_TYPE_NATIVE", "2.3", "http://tizen.org/privilege/mediacapture", &display_name);
237         __check_get_privilege_display_name_result(PRVINFO_ERROR_NONE, ret, display_name);
238
239
240         printf("-----------------------------------------------------------\n");
241         printf("Not existing privilege\n");
242         printf("api_version : 2.3\n");
243         printf("privilege : http://tizen.org/privilege/RRRRRRRRRR\n");
244         printf("expected result : PRVINFO_ERROR_NONE\n");
245         if (display_name != NULL) {
246                 free(display_name);
247                 display_name = NULL;
248         }
249         ret = privilege_info_get_display_name_by_pkgtype("PRVINFO_PACKAGE_TYPE_WEB", "2.3", "http://tizen.org/privilege/RRRRRRRRRR", &display_name);
250         __check_get_privilege_display_name_result(PRVINFO_ERROR_NONE, ret, display_name);
251
252         printf("-----------------------------------------------------------\n");
253         printf("Invalid parameter\n");
254         printf("api_version : 2.3\n");
255         printf("privilege : http://tizen.org/privilege/mediacapture\n");
256         printf("expected result : PRVINFO_ERROR_NONE\n");
257         if (display_name != NULL) {
258                 free(display_name);
259                 display_name = NULL;
260         }
261         ret = privilege_info_get_display_name_by_pkgtype(NULL, "2.3", "http://tizen.org/privilege/mediacapture", &display_name);
262         __check_get_privilege_display_name_result(PRVINFO_ERROR_INVALID_PARAMETER, ret, display_name);
263
264         free(display_name);
265 }
266
267 static void __test_privilege_info_get_description()
268 {
269         int ret;
270         char* description = NULL;
271
272         printf("-----------------------------------------------------------\n");
273         printf("api_version : 2.3\n");
274         printf("privilege : http://tizen.org/privilege/window.priority.set\n");
275         printf("expected result : PRVINFO_ERROR_NONE\n");
276         ret = privilege_info_get_description("2.3", "http://tizen.org/privilege/window.priority.set", &description);
277         __check_get_privilege_description_result(PRVINFO_ERROR_NONE, ret, description);
278
279         printf("-----------------------------------------------------------\n");
280         printf("api_version : 2.3\n");
281         printf("privilege : http://tizen.org/privilege/mediacapture\n");
282         printf("expected result : PRVINFO_ERROR_NONE\n");
283         if (description != NULL) {
284                 free(description);
285                 description = NULL;
286         }
287         ret = privilege_info_get_description("2.3", "http://tizen.org/privilege/mediacapture", &description);
288         __check_get_privilege_description_result(PRVINFO_ERROR_NONE, ret, description);
289
290         printf("-----------------------------------------------------------\n");
291         printf("Not existing privilege\n");
292         printf("api_version : 2.3\n");
293         printf("privilege : http://tizen.org/privilege/RRRRRRRRRR\n");
294         printf("expected result : PRVINFO_ERROR_NONE\n");
295         if (description != NULL) {
296                 free(description);
297                 description = NULL;
298         }
299         ret = privilege_info_get_description("2.3", "http://tizen.org/privilege/RRRRRRRRRR", &description);
300         __check_get_privilege_description_result(PRVINFO_ERROR_NONE, ret, description);
301
302         printf("-----------------------------------------------------------\n");
303         printf("Invalid parameter\n");
304         printf("api_version : 2.3\n");
305         printf("privilege : http://tizen.org/privilege/mediacapture\n");
306         printf("expected result : PRVINFO_ERROR_NONE\n");
307         if (description != NULL) {
308                 free(description);
309                 description = NULL;
310         }
311         ret = privilege_info_get_description(NULL, "http://tizen.org/privilege/mediacapture", &description);
312         __check_get_privilege_description_result(PRVINFO_ERROR_INVALID_PARAMETER, ret, description);
313
314         free(description);
315 }
316
317 static void __test_privilege_info_get_description_by_pkgtype()
318 {
319         int ret;
320         char* description = NULL;
321
322         printf("-----------------------------------------------------------\n");
323         printf("api_version : 2.3\n");
324         printf("privilege : http://tizen.org/privilege/window.priority.set\n");
325         printf("expected result : PRVINFO_ERROR_NONE\n");
326         ret = privilege_info_get_description_by_pkgtype("PRVINFO_PACKAGE_TYPE_NATIVE", "2.3", "http://tizen.org/privilege/window.priority.set", &description);
327         __check_get_privilege_description_result(PRVINFO_ERROR_NONE, ret, description);
328
329         printf("-----------------------------------------------------------\n");
330         printf("api_version : 2.3\n");
331         printf("privilege : http://tizen.org/privilege/mediacapture\n");
332         printf("expected result : PRVINFO_ERROR_NONE\n");
333         if (description != NULL) {
334                 free(description);
335                 description = NULL;
336         }
337         ret = privilege_info_get_description_by_pkgtype("PRVINFO_PACKAGE_TYPE_WEB", "2.3", "http://tizen.org/privilege/mediacapture", &description);
338         __check_get_privilege_description_result(PRVINFO_ERROR_NONE, ret, description);
339
340         printf("-----------------------------------------------------------\n");
341         printf("Mismatched package type: write WEB as NATIVE\n");
342         printf("pkgtype : PRVINFO_PACKAGE_TYPE_NATIVE\n");
343         printf("api_version : 2.3\n");
344         printf("privilege : http://tizen.org/privilege/mediacapture\n");
345         printf("expected result : PRVINFO_ERROR_NONE\n");
346         if (description != NULL) {
347                 free(description);
348                 description = NULL;
349         }
350         ret = privilege_info_get_description_by_pkgtype("PRVINFO_PACKAGE_TYPE_NATIVE", "2.3", "http://tizen.org/privilege/mediacapture", &description);
351         __check_get_privilege_description_result(PRVINFO_ERROR_NONE, ret, description);
352
353         printf("-----------------------------------------------------------\n");
354         printf("Not existing privilege\n");
355         printf("api_version : 2.3\n");
356         printf("privilege : http://tizen.org/privilege/RRRRRRRRRR\n");
357         printf("expected result : PRVINFO_ERROR_NONE\n");
358         if (description != NULL) {
359                 free(description);
360                 description = NULL;
361         }
362         ret = privilege_info_get_description_by_pkgtype("PRVINFO_PACKAGE_TYPE_NATIVE", "2.3", "http://tizen.org/privilege/RRRRRRRRRR", &description);
363         __check_get_privilege_description_result(PRVINFO_ERROR_NONE, ret, description);
364
365         printf("-----------------------------------------------------------\n");
366         printf("Invalid parameter\n");
367         printf("api_version : 2.3\n");
368         printf("privilege : NULL\n");
369         printf("expected result : PRVINFO_ERROR_INVALID_PARAMETER\n");
370         if (description != NULL) {
371                 free(description);
372                 description = NULL;
373         }
374         ret = privilege_info_get_description_by_pkgtype("PRVINFO_PACKAGE_TYPE_NATIVE", "2.3", NULL, &description);
375         __check_get_privilege_description_result(PRVINFO_ERROR_INVALID_PARAMETER, ret, description);
376
377         free(description);
378 }
379
380 static void __test_privilege_info_get_privacy_display_name()
381 {
382         int ret;
383         char* privacy_display_name = NULL;
384
385         printf("-----------------------------------------------------------\n");
386         printf("Invalid parameter\n");
387         printf("no input privilege\n");
388         ret = privilege_info_get_privacy_display_name(NULL, &privacy_display_name);
389         __check_get_privacy_display_name_result(PRVINFO_ERROR_INVALID_PARAMETER, ret, privacy_display_name);
390
391         if (privacy_display_name != NULL) {
392                 free(privacy_display_name);
393                 privacy_display_name = NULL;
394         }
395
396         printf("-----------------------------------------------------------\n");
397         printf("Not a privacy related privilege\n");
398         printf("privilege: http://tizen.org/privilege/internet\n");
399         ret = privilege_info_get_privacy_display_name("http://tizen.org/privilege/internet", &privacy_display_name);
400         __check_get_privacy_display_name_result(PRVINFO_ERROR_INVALID_PARAMETER, ret, privacy_display_name);
401
402         if (privacy_display_name != NULL) {
403                 free(privacy_display_name);
404                 privacy_display_name = NULL;
405         }
406
407         printf("-----------------------------------------------------------\n");
408         printf("Not existing privilege\n");
409         printf("privilege: http://tizen.org/privilege/wrong.privilege.name\n");
410         ret = privilege_info_get_privacy_display_name("http://tizen.org/privilege/wrong.privilege.name", &privacy_display_name);
411         __check_get_privacy_display_name_result(PRVINFO_ERROR_INVALID_PARAMETER, ret, privacy_display_name);
412
413         if (privacy_display_name != NULL) {
414                 free(privacy_display_name);
415                 privacy_display_name = NULL;
416         }
417
418         printf("-----------------------------------------------------------\n");
419         printf("Privacy related privilege\n");
420         printf("privilege: http://tizen.org/privilege/account.read\n");
421         ret = privilege_info_get_privacy_display_name("http://tizen.org/privilege/account.read", &privacy_display_name);
422         __check_get_privacy_display_name_result(PRVINFO_ERROR_NONE, ret, privacy_display_name);
423
424         free(privacy_display_name);
425 }
426
427 int main()
428 {
429         __change_color_to_yellow();
430         printf("Test function : privilege_info_get_display_name\n");
431         __change_color_to_origin();
432         __test_privilege_info_get_display_name();
433
434         __change_color_to_yellow();
435         printf("Test function : privilege_info_get_display_name_by_pkgtype\n");
436         __change_color_to_origin();
437         __test_privilege_info_get_display_name_by_pkgtype();
438
439         __change_color_to_yellow();
440         printf("Test function : privilege_info_get_description\n");
441         __change_color_to_origin();
442         __test_privilege_info_get_description();
443
444         __change_color_to_yellow();
445         printf("Test function : privilege_info_get_description_by_pkgtype\n");
446         __change_color_to_origin();
447         __test_privilege_info_get_description_by_pkgtype();
448
449         __change_color_to_yellow();
450         printf("Test function : privilege_info_get_privacy_display_name\n");
451         __change_color_to_origin();
452         __test_privilege_info_get_privacy_display_name();
453
454         __change_color_to_green();
455         printf("Test Complete\n");
456         printf("success : %d, ", success_cnt);
457         __change_color_to_red();
458         printf("fail : %d\n", fail_cnt);
459         __change_color_to_origin();
460
461         return 0;
462 }