Refactoring and increasing negative test cases for __test_dpm_black_list_set_unset... 00/318700/7
authortranthanhtung2001 <tran.tung@samsung.com>
Mon, 7 Oct 2024 06:51:03 +0000 (13:51 +0700)
committerDariusz Michaluk <d.michaluk@samsung.com>
Mon, 14 Oct 2024 09:23:25 +0000 (09:23 +0000)
Change-Id: I9325663630b516b9a096c8106e94d1c39be065e0
Signed-off-by: tranthanhtung2001 <tran.tung@samsung.com>
test/tc-privilege-black-list.c

index 8e9e2150d90d49a7bafe7d86f24aa3e32208debb..c1e8841c0bea8226e12ba95f3b09a2f725f14622 100644 (file)
 #include <privilege_db_manager.h>
 #include "tc-common.h"
 
-void __test_dpm_black_list_set_unset()
+typedef struct {
+       char *name;
+       char *level;
+       char *comment;
+} privilege_info;
+
+privilege_info __create_privilege_info(char *name, char *level, char *comment)
 {
-       int ret = 0;
-       GList *black_list;
+       privilege_info element;
+       element.name = name;
+       element.level = level;
+       element.comment = comment;
+       return element;
+}
 
-       __color_to_bold_yellow();
-       printf("\nTest black list set/unset/get\n\n");
-       __color_to_origin();
+void __check_privilege_manager_set_black_list_return_code(
+       int uid,
+       privilege_manager_package_type_e package_type,
+       int expected_ret,
+       privilege_info *lists,
+       int len)
+{
+       printf("uid = %d\npackage_type = %d\n", uid, package_type);
+       if (len != 0)
+               printf("These privileges will be added into black list :\n");
+       else
+               printf("These privileges will not be added into black list\n");
+       for (int i = 0; i < len; i++)
+               __privinfo(lists[i].name, lists[i].level, lists[i].comment);
 
-       __tcinfo(goal, POS_TC_PREFIX "uid = 0, Get wrt black list");
-       ret = privilege_info_get_black_list(0, PRVMGR_PACKAGE_TYPE_WRT, &black_list);
-       __tcinfo(expect, PRVMGR_ERR_NONE);
-       __print_result('m', ret);
-       __print_privilege_list(black_list);
-       __print_line();
-       gfree(black_list);
+       int ret = privilege_manager_set_black_list(uid, package_type, privilege_list);
+       __check_the_return_code('m', expected_ret, ret);
 
-       __tcinfo(goal, POS_TC_PREFIX "uid = 0, Add wrt privileges");
-       __privinfo("http://tizen.org/privilege/filesystem.read", NULL, NULL);
-       __privinfo("http://tizen.org/privilege/account.read", NULL, NULL);
-       __privinfo("http://tizen.org/privilege/internet", NULL, NULL);
-       __tcinfo(expect, PRVMGR_ERR_NONE);
-       ret = privilege_manager_set_black_list(0, PRVMGR_PACKAGE_TYPE_WRT, privilege_list);
-       __print_result('m', ret);
        __print_line();
        gfree(privilege_list);
+}
+
+GList * __privilege_info_get_black_list_and_check_return_code(
+       int uid,
+       privilege_manager_package_type_e package_type,
+       int expected_ret)
+{
+       GList *black_list = NULL;
+
+       printf("uid = %d\npackage_type = %d\n", uid, package_type);
+
+       int ret = privilege_info_get_black_list(uid, package_type, &black_list);
+       __check_the_return_code('m', expected_ret, ret);
 
-       __tcinfo(goal, POS_TC_PREFIX "uid = 0, Get wrt black list");
-       __tcinfo(expect, PRVMGR_ERR_NONE);
-       ret = privilege_info_get_black_list(0, PRVMGR_PACKAGE_TYPE_WRT, &black_list);
-       __print_result('m', ret);
        __print_privilege_list(black_list);
        __print_line();
-       gfree(black_list);
-       black_list = NULL;
 
-       __tcinfo(goal, POS_TC_PREFIX "uid = 0, Add wrt privileges -- Add duplicated privileges");
-       __privinfo("http://tizen.org/privilege/filesystem.read", NULL, NULL);
-       __privinfo("http://tizen.org/privilege/account.read", NULL, NULL);
-       __privinfo("http://tizen.org/privilege/internet", NULL, NULL);
-       __privinfo("http://tizen.org/privilege/mediacapture", NULL, NULL);
-       __tcinfo(expect, PRVMGR_ERR_NONE);
-       ret = privilege_manager_set_black_list(0, PRVMGR_PACKAGE_TYPE_WRT, privilege_list);
-       __print_result('m', ret);
+       return black_list;
+}
+
+void __privilege_info_remove_black_list_and_check_return_code(
+       int uid,
+       privilege_manager_package_type_e package_type,
+       int expected_ret,
+       privilege_info *lists,
+       int len)
+{
+       printf("uid = %d\npackage_type = %d\n", uid, package_type);
+       if (len != 0)
+               printf("These privileges will be removed in black list:\n");
+       else
+               printf("These privileges will not be removed in black list\n");
+       for (int i = 0; i < len; i++)
+               __privinfo(lists[i].name, lists[i].level, lists[i].comment);
+
+       int ret = privilege_manager_unset_black_list(uid, package_type, privilege_list);
+       __check_the_return_code('m', expected_ret, ret);
+
        __print_line();
        gfree(privilege_list);
+}
+
+void __test_dpm_black_list_set_unset()
+{
+       int uid = 0;
+       GList *black_list = NULL;
+
+       __color_to_bold_yellow();
+       printf("\nTest black list set/unset/get\n\n");
+       __color_to_origin();
+
+       /* Add privileges into prevent_list table */
+       __tcinfo(goal, POS_TC_PREFIX "uid = 0, Add wrt privileges");
+
+       privilege_info first_list[] = {
+               __create_privilege_info("http://tizen.org/privilege/filesystem.read", NULL, NULL),
+               __create_privilege_info("http://tizen.org/privilege/account.read", NULL, NULL),
+               __create_privilege_info("http://tizen.org/privilege/internet", NULL, NULL),
+       };
+
+       int len = sizeof(first_list) / sizeof(first_list[0]);
+       __check_privilege_manager_set_black_list_return_code(uid, PRVMGR_PACKAGE_TYPE_WRT, PRVMGR_ERR_NONE, first_list, len);
 
+       /* Get black list */
        __tcinfo(goal, POS_TC_PREFIX "uid = 0, Get wrt black list");
-       __tcinfo(expect, PRVMGR_ERR_NONE);
-       ret = privilege_info_get_black_list(0, PRVMGR_PACKAGE_TYPE_WRT, &black_list);
-       __print_result('m', ret);
-       __print_privilege_list(black_list);
-       __print_line();
+       black_list = __privilege_info_get_black_list_and_check_return_code(uid, PRVMGR_PACKAGE_TYPE_WRT, PRVMGR_ERR_NONE);
+       gfree(black_list);
+
+       /* Add privileges which existed in prevent_list table */
+       __tcinfo(goal, POS_TC_PREFIX "uid = 0, Add wrt privileges -- Add duplicated privileges");
+
+       privilege_info second_list[] = {
+               __create_privilege_info("http://tizen.org/privilege/filesystem.read", NULL, NULL),
+               __create_privilege_info("http://tizen.org/privilege/account.read", NULL, NULL),
+               __create_privilege_info("http://tizen.org/privilege/internet", NULL, NULL),
+               __create_privilege_info("http://tizen.org/privilege/mediacapture", NULL, NULL)
+       };
+
+       len = sizeof(second_list) / sizeof(second_list[0]);
+       __check_privilege_manager_set_black_list_return_code(uid, PRVMGR_PACKAGE_TYPE_WRT, PRVMGR_ERR_NONE, second_list, len);
+
+       /* Get black list */
+       black_list = __privilege_info_get_black_list_and_check_return_code(uid, PRVMGR_PACKAGE_TYPE_WRT, PRVMGR_ERR_NONE);
        gfree(black_list);
-       black_list = NULL;
 
+       /* Remove black list */
        __tcinfo(goal, POS_TC_PREFIX "uid = 0, Remove wrt privileges");
-       __privinfo("http://tizen.org/privilege/filesystem.read", NULL, NULL);
-       __privinfo("http://tizen.org/privilege/account.read", NULL, NULL);
-       __tcinfo(expect, PRVMGR_ERR_NONE);
-       ret = privilege_manager_unset_black_list(0, PRVMGR_PACKAGE_TYPE_WRT, privilege_list);
-       __print_result('m', ret);
-       __print_line();
-       gfree(privilege_list);
 
-       __tcinfo(goal, POS_TC_PREFIX "uid = 0, Get wrt black list");
-       __tcinfo(expect, PRVMGR_ERR_NONE);
-       ret = privilege_info_get_black_list(0, PRVMGR_PACKAGE_TYPE_WRT, &black_list);
-       __print_result('m', ret);
-       __print_privilege_list(black_list);
-       __print_line();
+       privilege_info third_list[] = {
+               __create_privilege_info("http://tizen.org/privilege/filesystem.read", NULL, NULL),
+               __create_privilege_info("http://tizen.org/privilege/account.read", NULL, NULL),
+       };
+
+       len = sizeof(third_list) / sizeof(third_list[0]);
+       __privilege_info_remove_black_list_and_check_return_code(uid, PRVMGR_PACKAGE_TYPE_WRT, PRVMGR_ERR_NONE, third_list, len);
+
+       /* Get black list */
+       black_list = __privilege_info_get_black_list_and_check_return_code(uid, PRVMGR_PACKAGE_TYPE_WRT, PRVMGR_ERR_NONE);
        gfree(black_list);
-       black_list = NULL;
 
+       /* Remove privileges which dont exist in black list */
        __tcinfo(goal, POS_TC_PREFIX "uid = 0, Remove wrt privileges -- Try to remove already removed privileges");
-       __privinfo("http://tizen.org/privilege/filesystem.read", NULL, NULL);
-       __privinfo("http://tizen.org/privilege/account.read", NULL, NULL);
-       __tcinfo(expect, PRVMGR_ERR_NONE);
-       ret = privilege_manager_unset_black_list(0, PRVMGR_PACKAGE_TYPE_WRT, privilege_list);
-       __print_result('m', ret);
-       __print_line();
-       gfree(privilege_list);
+       __privilege_info_remove_black_list_and_check_return_code(uid, PRVMGR_PACKAGE_TYPE_WRT, PRVMGR_ERR_NONE, third_list, len);
 
-       __tcinfo(goal, POS_TC_PREFIX "uid = 0, Get wrt black list");
-       __tcinfo(expect, PRVMGR_ERR_NONE);
-       ret = privilege_info_get_black_list(0, PRVMGR_PACKAGE_TYPE_WRT, &black_list);
-       __print_result('m', ret);
-       __print_privilege_list(black_list);
-       __print_line();
+       /* Get black list */
+       black_list = __privilege_info_get_black_list_and_check_return_code(uid, PRVMGR_PACKAGE_TYPE_WRT, PRVMGR_ERR_NONE);
        gfree(black_list);
-       black_list = NULL;
 
-}
+       /* Add privileges when package_type is wrong */
+       __tcinfo(goal, NEG_TC_PREFIX "uid = 0, Add wrt privileges when package_type is wrong");
+       __check_privilege_manager_set_black_list_return_code(
+               uid,
+               PRVMGR_PACKAGE_TYPE_METADATA,
+               PRVMGR_ERR_INVALID_PARAMETER,
+               third_list,
+               len);
+
+       /* Add privileges when privilege_list is empty */
+       __tcinfo(goal, NEG_TC_PREFIX "uid = 0, Add wrt privileges when privilege_list is empty");
+       __check_privilege_manager_set_black_list_return_code(
+               uid,
+               PRVMGR_PACKAGE_TYPE_METADATA,
+               PRVMGR_ERR_INVALID_PARAMETER,
+               third_list,
+               0);
+
+       /* Get black list when package_type is wrong */
+       __tcinfo(goal, NEG_TC_PREFIX "uid = 0, Get black list when package_type is wrong");
+       __privilege_info_get_black_list_and_check_return_code(uid, PRVMGR_PACKAGE_TYPE_METADATA, PRVMGR_ERR_INVALID_PARAMETER);
+
+       /* Remove privileges when package_type is wrong */
+       __tcinfo(goal, NEG_TC_PREFIX "uid = 0, Remove wrt privileges when package_type is wrong");
+       __privilege_info_remove_black_list_and_check_return_code(
+               uid,
+               PRVMGR_PACKAGE_TYPE_METADATA,
+               PRVMGR_ERR_INVALID_PARAMETER,
+               third_list,
+               len);
+
+       /* Remove privileges when privilege_list is empty */
+       __tcinfo(goal, NEG_TC_PREFIX "uid = 0, Remove wrt privileges when privilege_list is empty");
+       __privilege_info_remove_black_list_and_check_return_code(
+               uid,
+               PRVMGR_PACKAGE_TYPE_METADATA,
+               PRVMGR_ERR_INVALID_PARAMETER,
+               third_list,
+               0);
 
+}
 
 void __test_dpm_black_list_check()
 {