2 * Copyright (c) 2014-2020 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the License);
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
19 #include <privilege_information.h>
27 static int fail_cnt = 0;
28 static int success_cnt = 0;
30 static void __change_color_to_red()
32 printf("%c[%d;%dm", 0x1B, BRIGHTNESS, RED);
35 static void __change_color_to_green()
37 printf("%c[%d;%dm", 0x1B, BRIGHTNESS, GREEN);
40 static void __change_color_to_yellow()
42 printf("%c[%d;%dm", 0x1B, BRIGHTNESS, YELLOW);
45 static void __change_color_to_origin()
47 printf("%c[%dm", 0x1B, 0);
50 static const char* __get_result_string(privilege_info_error_e ret)
52 if (ret == PRVINFO_ERROR_NONE)
53 return "PRVINFO_ERROR_NONE";
54 else if (ret == PRVINFO_ERROR_INVALID_PARAMETER)
55 return "PRVINFO_ERROR_INVALID_PARAMETER";
56 else if (ret == PRVINFO_ERROR_OUT_OF_MEMORY)
57 return "PRVINFO_ERROR_OUT_OF_MEMORY";
58 else if (ret == PRVINFO_ERROR_INTERNAL_ERROR)
59 return "PRVINFO_ERROR_INTERNAL_ERROR";
60 else if (ret == PRVINFO_ERROR_NOT_SUPPORTED)
61 return "PRVINFO_ERROR_NOT_SUPPORTED";
62 else if (ret == PRVINFO_ERROR_NO_MATCHING_PRIVILEGE)
63 return "PRVINFO_ERROR_NO_MATCHING_PRIVILEGE";
65 return "PRVINFO_ERROR_NO_MATCHED_ERROR_MESSAGE";
68 static void __check_get_privilege_display_name_result(privilege_info_error_e expected_result, privilege_info_error_e result, const char* display_name)
70 printf("expected : %s\n result : %s\n", __get_result_string(expected_result), __get_result_string(result));
72 if (expected_result != result) {
73 printf("not matched\n");
74 __change_color_to_red();
75 printf("test fail\n");
79 if (result == PRVINFO_ERROR_NONE) {
80 if (display_name == NULL) {
81 printf("display_name must not be NULL\n");
82 __change_color_to_red();
83 printf("test fail\n");
85 __change_color_to_origin();
88 printf("display_name = %s\n", display_name);
90 } else if (result == PRVINFO_ERROR_NO_MATCHING_PRIVILEGE) {
91 if (display_name != NULL) {
92 printf("display_name = %s\n", display_name);
93 printf("display_name must be NULL\n");
94 __change_color_to_red();
95 printf("test fail\n");
97 __change_color_to_origin();
101 __change_color_to_green();
102 printf("test success\n");
105 __change_color_to_origin();
109 static void __check_get_privilege_description_result(privilege_info_error_e expected_result, privilege_info_error_e result, const char* description)
111 printf("expected : %s\n result : %s\n", __get_result_string(expected_result), __get_result_string(result));
113 if (expected_result != result) {
114 printf("not matched\n");
115 __change_color_to_red();
116 printf("test fail\n");
120 if (result == PRVINFO_ERROR_NONE) {
121 if (description == NULL) {
122 printf("description must not be NULL\n");
123 __change_color_to_red();
124 printf("test fail\n");
126 __change_color_to_origin();
129 printf("description = %s\n", description);
131 } else if (result == PRVINFO_ERROR_NO_MATCHING_PRIVILEGE) {
132 if (description != NULL) {
133 printf("description = %s\n", description);
134 printf("description must be NULL\n");
135 __change_color_to_red();
136 printf("test fail\n");
138 __change_color_to_origin();
143 __change_color_to_green();
144 printf("test success\n");
147 __change_color_to_origin();
150 static void __check_get_privacy_display_name_result(privilege_info_error_e expected_result, privilege_info_error_e result, const char* privacy_display)
152 printf("expected : %s\n result : %s\n", __get_result_string(expected_result), __get_result_string(result));
154 if (expected_result != result) {
155 printf("not matched\n");
156 __change_color_to_red();
157 printf("test fail\n");
161 if (privacy_display != NULL)
162 printf("privacy_display_name = %s\n", privacy_display);
164 printf("privacy_display_name is NULL.\n");
165 __change_color_to_green();
166 printf("test success\n");
169 __change_color_to_origin();
172 static void __test_privilege_info_get_display_name()
175 char* display_name = NULL;
177 printf("-----------------------------------------------------------\n");
178 printf("api_version : 2.3\n");
179 printf("privilege : http://tizen.org/privilege/window.priority.set\n");
180 ret = privilege_info_get_display_name("2.3", "http://tizen.org/privilege/window.priority.set", &display_name);
181 __check_get_privilege_display_name_result(PRVINFO_ERROR_NONE, ret, display_name);
183 printf("-----------------------------------------------------------\n");
184 printf("api_version : 2.3\n");
185 printf("privilege : http://tizen.org/privilege/mediacapture\n");
186 if (display_name != NULL) {
190 ret = privilege_info_get_display_name("2.3", "http://tizen.org/privilege/mediacapture", &display_name);
191 __check_get_privilege_display_name_result(PRVINFO_ERROR_NONE, ret, display_name);
193 printf("-----------------------------------------------------------\n");
194 printf("Not existing privilege\n");
195 printf("api_version : 2.3\n");
196 printf("privilege : http://tizen.org/privilege/RRRRRRRRRR\n");
197 if (display_name != NULL) {
201 ret = privilege_info_get_display_name("2.3", "http://tizen.org/privilege/RRRRRRRRRR", &display_name);
202 __check_get_privilege_display_name_result(PRVINFO_ERROR_NO_MATCHING_PRIVILEGE, ret, display_name);
204 printf("-----------------------------------------------------------\n");
205 printf("Invalid parameter\n");
206 printf("api_version : NULL\n");
207 printf("privilege : http://tizen.org/privilege/window.priority.set\n");
208 if (display_name != NULL) {
212 ret = privilege_info_get_display_name(NULL, "http://tizen.org/privilege/window, priority.set", &display_name);
213 __check_get_privilege_display_name_result(PRVINFO_ERROR_INVALID_PARAMETER, ret, display_name);
218 static void __test_privilege_info_get_display_name_by_pkgtype()
221 char* display_name = NULL;
223 printf("-----------------------------------------------------------\n");
224 printf("pkgtype : PRVINFO_PACKAGE_TYPE_NATIVE\n");
225 printf("api_version : 2.3\n");
226 printf("privilege : http://tizen.org/privilege/window.priority.set\n");
227 ret = privilege_info_get_display_name_by_pkgtype("PRVINFO_PACKAGE_TYPE_NATIVE", "2.3", "http://tizen.org/privilege/window.priority.set", &display_name);
228 __check_get_privilege_display_name_result(PRVINFO_ERROR_NONE, ret, display_name);
230 printf("-----------------------------------------------------------\n");
231 printf("pkgtype : PRVINFO_PACKAGE_TYPE_WEB\n");
232 printf("api_version : 2.3\n");
233 printf("privilege : http://tizen.org/privilege/mediacapture\n");
234 if (display_name != NULL) {
238 ret = privilege_info_get_display_name_by_pkgtype("PRVINFO_PACKAGE_TYPE_WEB", "2.3", "http://tizen.org/privilege/mediacapture", &display_name);
239 __check_get_privilege_display_name_result(PRVINFO_ERROR_NONE, ret, display_name);
241 printf("-----------------------------------------------------------\n");
242 printf("Mismatched package type: write WEB as NATIVE\n");
243 printf("pkgtype : PRVINFO_PACKAGE_TYPE_NATIVE\n");
244 printf("api_version : 2.3\n");
245 printf("privilege : http://tizen.org/privilege/mediacapture\n");
246 if (display_name != NULL) {
250 ret = privilege_info_get_display_name_by_pkgtype("PRVINFO_PACKAGE_TYPE_NATIVE", "2.3", "http://tizen.org/privilege/mediacapture", &display_name);
251 __check_get_privilege_display_name_result(PRVINFO_ERROR_NO_MATCHING_PRIVILEGE, ret, display_name);
254 printf("-----------------------------------------------------------\n");
255 printf("Not existing privilege\n");
256 printf("api_version : 2.3\n");
257 printf("privilege : http://tizen.org/privilege/RRRRRRRRRR\n");
258 if (display_name != NULL) {
262 ret = privilege_info_get_display_name_by_pkgtype("PRVINFO_PACKAGE_TYPE_WEB", "2.3", "http://tizen.org/privilege/RRRRRRRRRR", &display_name);
263 __check_get_privilege_display_name_result(PRVINFO_ERROR_NO_MATCHING_PRIVILEGE, ret, display_name);
265 printf("-----------------------------------------------------------\n");
266 printf("Invalid parameter\n");
267 printf("api_version : 2.3\n");
268 printf("privilege : http://tizen.org/privilege/mediacapture\n");
269 if (display_name != NULL) {
273 ret = privilege_info_get_display_name_by_pkgtype(NULL, "2.3", "http://tizen.org/privilege/mediacapture", &display_name);
274 __check_get_privilege_display_name_result(PRVINFO_ERROR_INVALID_PARAMETER, ret, display_name);
279 static void __test_privilege_info_get_description()
282 char* description = NULL;
284 printf("-----------------------------------------------------------\n");
285 printf("api_version : 2.3\n");
286 printf("privilege : http://tizen.org/privilege/window.priority.set\n");
287 ret = privilege_info_get_description("2.3", "http://tizen.org/privilege/window.priority.set", &description);
288 __check_get_privilege_description_result(PRVINFO_ERROR_NONE, ret, description);
290 printf("-----------------------------------------------------------\n");
291 printf("api_version : 2.3\n");
292 printf("privilege : http://tizen.org/privilege/mediacapture\n");
293 if (description != NULL) {
297 ret = privilege_info_get_description("2.3", "http://tizen.org/privilege/mediacapture", &description);
298 __check_get_privilege_description_result(PRVINFO_ERROR_NONE, ret, description);
300 printf("-----------------------------------------------------------\n");
301 printf("Not existing privilege\n");
302 printf("api_version : 2.3\n");
303 printf("privilege : http://tizen.org/privilege/RRRRRRRRRR\n");
304 if (description != NULL) {
308 ret = privilege_info_get_description("2.3", "http://tizen.org/privilege/RRRRRRRRRR", &description);
309 __check_get_privilege_description_result(PRVINFO_ERROR_NO_MATCHING_PRIVILEGE, ret, description);
311 printf("-----------------------------------------------------------\n");
312 printf("Invalid parameter\n");
313 printf("api_version : 2.3\n");
314 printf("privilege : http://tizen.org/privilege/mediacapture\n");
315 if (description != NULL) {
319 ret = privilege_info_get_description(NULL, "http://tizen.org/privilege/mediacapture", &description);
320 __check_get_privilege_description_result(PRVINFO_ERROR_INVALID_PARAMETER, ret, description);
325 static void __test_privilege_info_get_description_by_pkgtype()
328 char* description = NULL;
330 printf("-----------------------------------------------------------\n");
331 printf("api_version : 2.3\n");
332 printf("privilege : http://tizen.org/privilege/window.priority.set\n");
333 ret = privilege_info_get_description_by_pkgtype("PRVINFO_PACKAGE_TYPE_NATIVE", "2.3", "http://tizen.org/privilege/window.priority.set", &description);
334 __check_get_privilege_description_result(PRVINFO_ERROR_NONE, ret, description);
336 printf("-----------------------------------------------------------\n");
337 printf("api_version : 2.3\n");
338 printf("privilege : http://tizen.org/privilege/mediacapture\n");
339 if (description != NULL) {
343 ret = privilege_info_get_description_by_pkgtype("PRVINFO_PACKAGE_TYPE_WEB", "2.3", "http://tizen.org/privilege/mediacapture", &description);
344 __check_get_privilege_description_result(PRVINFO_ERROR_NONE, ret, description);
346 printf("-----------------------------------------------------------\n");
347 printf("Mismatched package type: write WEB as NATIVE\n");
348 printf("pkgtype : PRVINFO_PACKAGE_TYPE_NATIVE\n");
349 printf("api_version : 2.3\n");
350 printf("privilege : http://tizen.org/privilege/mediacapture\n");
351 if (description != NULL) {
355 ret = privilege_info_get_description_by_pkgtype("PRVINFO_PACKAGE_TYPE_NATIVE", "2.3", "http://tizen.org/privilege/mediacapture", &description);
356 __check_get_privilege_description_result(PRVINFO_ERROR_NO_MATCHING_PRIVILEGE, ret, description);
358 printf("-----------------------------------------------------------\n");
359 printf("Not existing privilege\n");
360 printf("api_version : 2.3\n");
361 printf("privilege : http://tizen.org/privilege/RRRRRRRRRR\n");
362 if (description != NULL) {
366 ret = privilege_info_get_description_by_pkgtype("PRVINFO_PACKAGE_TYPE_NATIVE", "2.3", "http://tizen.org/privilege/RRRRRRRRRR", &description);
367 __check_get_privilege_description_result(PRVINFO_ERROR_NO_MATCHING_PRIVILEGE, ret, description);
369 printf("-----------------------------------------------------------\n");
370 printf("Invalid parameter\n");
371 printf("api_version : 2.3\n");
372 printf("privilege : NULL\n");
373 if (description != NULL) {
377 ret = privilege_info_get_description_by_pkgtype("PRVINFO_PACKAGE_TYPE_NATIVE", "2.3", NULL, &description);
378 __check_get_privilege_description_result(PRVINFO_ERROR_INVALID_PARAMETER, ret, description);
383 static void __test_privilege_info_get_privacy_display_name()
386 char* privacy_display_name = NULL;
388 printf("-----------------------------------------------------------\n");
389 printf("Invalid parameter\n");
390 printf("no input privilege\n");
391 ret = privilege_info_get_privacy_display_name(NULL, &privacy_display_name);
392 __check_get_privacy_display_name_result(PRVINFO_ERROR_INVALID_PARAMETER, ret, privacy_display_name);
394 if (privacy_display_name != NULL) {
395 free(privacy_display_name);
396 privacy_display_name = NULL;
399 printf("-----------------------------------------------------------\n");
400 printf("Not a privacy related privilege\n");
401 printf("privilege: http://tizen.org/privilege/internet\n");
402 ret = privilege_info_get_privacy_display_name("http://tizen.org/privilege/internet", &privacy_display_name);
403 __check_get_privacy_display_name_result(PRVINFO_ERROR_INVALID_PARAMETER, ret, privacy_display_name);
405 if (privacy_display_name != NULL) {
406 free(privacy_display_name);
407 privacy_display_name = NULL;
410 printf("-----------------------------------------------------------\n");
411 printf("Not existing privilege\n");
412 printf("privilege: http://tizen.org/privilege/wrong.privilege.name\n");
413 ret = privilege_info_get_privacy_display_name("http://tizen.org/privilege/wrong.privilege.name", &privacy_display_name);
414 __check_get_privacy_display_name_result(PRVINFO_ERROR_INVALID_PARAMETER, ret, privacy_display_name);
416 if (privacy_display_name != NULL) {
417 free(privacy_display_name);
418 privacy_display_name = NULL;
421 printf("-----------------------------------------------------------\n");
422 printf("Privacy related privilege\n");
423 printf("privilege: http://tizen.org/privilege/account.read\n");
424 ret = privilege_info_get_privacy_display_name("http://tizen.org/privilege/account.read", &privacy_display_name);
425 __check_get_privacy_display_name_result(PRVINFO_ERROR_NONE, ret, privacy_display_name);
427 free(privacy_display_name);
430 static void __check_privilege_info_get_privilege_info(privilege_info_error_e expected_result, privilege_info_error_e result, GList* privilege_info_list, int return_result)
432 printf("expected : %s\n result : %s\n", __get_result_string(expected_result), __get_result_string(result));
434 if (expected_result != result) {
435 __change_color_to_yellow();
436 printf("not matched\n");
437 __change_color_to_origin();
439 __change_color_to_green();
441 __change_color_to_origin();
444 printf("return_result = %d\n", return_result);
446 if (result == PRVINFO_ERROR_NONE) {
447 for (l = privilege_info_list; l != NULL; l = l->next) {
448 privilege_info_s* privilege_info = (privilege_info_s*)l->data;
450 printf("privilege_info->privilege_name = %s\n", privilege_info->privilege_name);
451 printf("privilege_info->display_name = %s\n", privilege_info->display_name);
452 printf("privilege_info->description = %s\n", privilege_info->description);
460 static void __test_privilege_info_get_privilege_info_list()
462 GList* privilege_name_list = NULL;
463 GList* privilege_info_list = NULL;
464 privilege_consumer_return_code_e return_result;
467 printf("case : SUCCESS\n");
468 printf("locale : ko_KR.UTF8\n");
469 printf("privilege name : http://tizen.org/privilege/call\n");
470 printf("privilege name : http://tizen.org/privilege/content.read\n");
471 printf("privilege name : http://tizen.org/privilege/filesystem.read\n");
472 privilege_name_list = g_list_append(privilege_name_list, "http://tizen.org/privilege/call");
473 privilege_name_list = g_list_append(privilege_name_list, "http://tizen.org/privilege/content.read");
474 privilege_name_list = g_list_append(privilege_name_list, "http://tizen.org/privilege/filesystem.read");
476 ret = privilege_info_get_privilege_info_list("ko_KR.UTF8", privilege_name_list, &privilege_info_list, &return_result);
477 __check_privilege_info_get_privilege_info(PRVINFO_ERROR_NONE, ret, privilege_info_list, return_result);
478 g_list_free(privilege_name_list);
479 privilege_name_list = NULL;
480 privilege_info_free_privilege_info_list(privilege_info_list);
481 privilege_info_list = NULL;
482 printf("-----------------------------------------------------------\n");
484 printf("case : SUCCESS2\n");
485 printf("locale : ko_KR.UTF8\n");
486 printf("privilege name : http://tizen.org/privilege/call\n");
487 printf("privilege name : http://tizen.org/privilege/systemsettings.admin\n");
488 printf("privilege name : http://tizen.org/privilege/bookmark.admin\n");
489 privilege_name_list = g_list_append(privilege_name_list, "http://tizen.org/privilege/call");
490 privilege_name_list = g_list_append(privilege_name_list, "http://tizen.org/privilege/systemsettings.admin");
491 privilege_name_list = g_list_append(privilege_name_list, "http://tizen.org/privilege/bookmark.admin");
493 ret = privilege_info_get_privilege_info_list("ko_KR.UTF8", privilege_name_list, &privilege_info_list, &return_result);
494 __check_privilege_info_get_privilege_info(PRVINFO_ERROR_NONE, ret, privilege_info_list, return_result);
495 g_list_free(privilege_name_list);
496 privilege_name_list = NULL;
497 privilege_info_free_privilege_info_list(privilege_info_list);
498 privilege_info_list = NULL;
499 printf("-----------------------------------------------------------\n");
501 printf("case : SUCCESS3\n");
502 printf("locale : ko_KR.UTF8\n");
503 printf("privilege name : http://tizen.org/privilege/call\n");
504 printf("privilege name : http://tizen.org/privilege/alarm.xxxx\n");
505 printf("privilege name : http://tizen.org/privilege/account.xxx\n");
506 privilege_name_list = g_list_append(privilege_name_list, "http://tizen.org/privilege/call");
507 privilege_name_list = g_list_append(privilege_name_list, "http://tizen.org/privilege/alarm.xxxx");
508 privilege_name_list = g_list_append(privilege_name_list, "http://tizen.org/privilege/account.xxx");
510 ret = privilege_info_get_privilege_info_list("ko_KR.UTF8", privilege_name_list, &privilege_info_list, &return_result);
511 __check_privilege_info_get_privilege_info(PRVINFO_ERROR_NONE, ret, privilege_info_list, return_result);
512 g_list_free(privilege_name_list);
513 privilege_name_list = NULL;
514 privilege_info_free_privilege_info_list(privilege_info_list);
515 privilege_info_list = NULL;
516 printf("-----------------------------------------------------------\n");
518 printf("case : UNKNOWN_LOCAL_CODE\n");
519 printf("locale : xx_XX.UTF8\n");
520 printf("privilege name : http://tizen.org/privilege/call\n");
521 printf("privilege name : http://tizen.org/privilege/content.read\n");
522 printf("privilege name : http://tizen.org/privilege/filesystem.read\n");
523 privilege_name_list = g_list_append(privilege_name_list, "http://tizen.org/privilege/call");
524 privilege_name_list = g_list_append(privilege_name_list, "http://tizen.org/privilege/content.read");
525 privilege_name_list = g_list_append(privilege_name_list, "http://tizen.org/privilege/filesystem.read");
527 ret = privilege_info_get_privilege_info_list("xx_XX.UTF8", privilege_name_list, &privilege_info_list, &return_result);
528 __check_privilege_info_get_privilege_info(PRVINFO_ERROR_NONE, ret, privilege_info_list, return_result);
529 g_list_free(privilege_name_list);
530 privilege_name_list = NULL;
531 privilege_info_free_privilege_info_list(privilege_info_list);
532 privilege_info_list = NULL;
533 printf("-----------------------------------------------------------\n");
535 printf("case : INVAILD_PARAMETER\n");
536 printf("locale : ko_KR.UTF8\n");
537 printf("privilege name : http://tizen.org/privilege/xxxx\n");
538 printf("privilege name : http://tizen.org/privilege/alarm.xxxx\n");
539 printf("privilege name : http://tizen.org/privilege/account.xxx\n");
540 privilege_name_list = g_list_append(privilege_name_list, "http://tizen.org/privilege/xxxx");
541 privilege_name_list = g_list_append(privilege_name_list, "http://tizen.org/privilege/alarm.xxxx");
542 privilege_name_list = g_list_append(privilege_name_list, "http://tizen.org/privilege/account.xxx");
544 ret = privilege_info_get_privilege_info_list("ko_KR.UTF8", privilege_name_list, &privilege_info_list, &return_result);
545 __check_privilege_info_get_privilege_info(PRVINFO_ERROR_NONE, ret, privilege_info_list, return_result);
546 g_list_free(privilege_name_list);
547 privilege_name_list = NULL;
548 privilege_info_free_privilege_info_list(privilege_info_list);
549 privilege_info_list = NULL;
550 printf("-----------------------------------------------------------\n");
556 __change_color_to_yellow();
557 printf("Test function : privilege_info_get_display_name\n");
558 __change_color_to_origin();
559 __test_privilege_info_get_display_name();
561 __change_color_to_yellow();
562 printf("Test function : privilege_info_get_display_name_by_pkgtype\n");
563 __change_color_to_origin();
564 __test_privilege_info_get_display_name_by_pkgtype();
566 __change_color_to_yellow();
567 printf("Test function : privilege_info_get_description\n");
568 __change_color_to_origin();
569 __test_privilege_info_get_description();
571 __change_color_to_yellow();
572 printf("Test function : privilege_info_get_description_by_pkgtype\n");
573 __change_color_to_origin();
574 __test_privilege_info_get_description_by_pkgtype();
576 __change_color_to_yellow();
577 printf("Test function : privilege_info_get_privacy_display_name\n");
578 __change_color_to_origin();
579 __test_privilege_info_get_privacy_display_name();
581 __change_color_to_yellow();
582 printf("Test function : privilege_info_get_privilege_info_list\n");
583 __change_color_to_origin();
584 __test_privilege_info_get_privilege_info_list();
586 __change_color_to_green();
587 printf("Test Complete\n");
588 printf("success : %d, ", success_cnt);
589 __change_color_to_red();
590 printf("fail : %d\n", fail_cnt);
591 __change_color_to_origin();