From: Yunjin Lee Date: Mon, 5 Sep 2016 05:14:57 +0000 (+0900) Subject: Modify privacy display API and add tc for it X-Git-Tag: accepted/tizen/common/20160905.171354~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a21f85dafdd1a0e668dbd6f734543b2039da5954;p=platform%2Fcore%2Fsecurity%2Fprivilege-checker.git Modify privacy display API and add tc for it - Modify privilege_info_get_privacy_display() to get translated string - Add tc for privilege_info_get_privacy_display() Change-Id: If215be28cc7a716428e21b794e6d8eeb1c3bac95 Signed-off-by: Yunjin Lee --- diff --git a/capi/src/privilege_info.c b/capi/src/privilege_info.c index bfda875..accd26e 100755 --- a/capi/src/privilege_info.c +++ b/capi/src/privilege_info.c @@ -193,6 +193,19 @@ int privilege_info_foreach_privilege_list_by_pkgid_and_privilege_group(const cha return PRVMGR_ERR_NONE; } +int privilege_info_get_privilege_string_by_string_id(const char *string_id, char **string) +{ + char *temp = NULL; + TryReturn(string_id != NULL, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] string_id is NULL"); + + temp = dgettext("privilege", string_id); + + *string = strdup(temp); + TryReturn(*string != NULL, , PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] strdup of string failed."); + + return PRVMGR_ERR_NONE; +} + int privilege_info_get_group_name_string_id(const char *privilege_group, char **group_string_id) { LOGD("privilege_group = %s", privilege_group); @@ -213,24 +226,6 @@ int privilege_info_get_group_name_string_id(const char *privilege_group, char ** return PRVMGR_ERR_NONE; } -int privilege_info_get_privilege_group_display_name_by_string_id(const char *string_id, char **name) -{ - LOGD("string_id = %s", string_id); - - char *temp = NULL; - - TryReturn(string_id != NULL, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] string_id is NULL"); - - temp = dgettext("privilege", string_id); - - *name = (char *)calloc(strlen(temp) + 1, sizeof(char)); - TryReturn(*name != NULL, , PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] Memory allocation failed."); - - memcpy(*name, temp, strlen(temp)); - - return PRVMGR_ERR_NONE; -} - int privilege_info_get_privilege_group_display_name(const char *privilege_group, char **name) { LOGD("privilege_group = %s", privilege_group); @@ -258,7 +253,7 @@ int privilege_info_get_privilege_group_display_name(const char *privilege_group, memcpy(*name, buffer, strlen(buffer)); } else { - ret = privilege_info_get_privilege_group_display_name_by_string_id(name_string_id, name); + ret = privilege_info_get_privilege_string_by_string_id(name_string_id, name); free(name_string_id); TryReturn(ret == PRVMGR_ERR_NONE, , PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] Memory allocation failed."); } @@ -350,22 +345,6 @@ int privilege_info_get_name_string_id(const char *privilege, char **name_string_ return PRVMGR_ERR_NONE; } -int privilege_info_get_privilege_display_name_by_string_id(const char *string_id, char **name) -{ - char *temp = NULL; - - TryReturn(string_id != NULL, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] string_id is NULL"); - - temp = dgettext("privilege", string_id); - - *name = (char *)calloc(strlen(temp) + 1, sizeof(char)); - TryReturn(*name != NULL, , PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] Memory allocation failed."); - - memcpy(*name, temp, strlen(temp)); - - return PRVMGR_ERR_NONE; -} - int privilege_info_get_privilege_display_name(const char *privilege, char **name) { int ret = 0; @@ -395,7 +374,7 @@ int privilege_info_get_privilege_display_name(const char *privilege, char **name } else if (strcmp(name_string_id, "") == 0) { *name = strdup("display string is not defined yet"); } else { - ret = privilege_info_get_privilege_display_name_by_string_id(name_string_id, name); + ret = privilege_info_get_privilege_string_by_string_id(name_string_id, name); free(name_string_id); name_string_id = NULL; TryReturn(ret == PRVMGR_ERR_NONE, , PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] Memory allocation failed."); @@ -490,22 +469,6 @@ int privilege_info_get_description_string_id(const char *privilege, char **descr return PRVMGR_ERR_NONE; } -int privilege_info_get_privilege_description_by_string_id(const char *string_id, char **description) -{ - char *temp = NULL; - - TryReturn(string_id != NULL, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] string_id is NULL"); - - temp = dgettext("privilege", string_id); - - *description = (char *)calloc(strlen(temp) + 1, sizeof(char)); - TryReturn(*description != NULL, , PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] Memory allocation failed."); - - memcpy(*description, temp, strlen(temp)); - - return PRVMGR_ERR_NONE; -} - int privilege_info_get_privilege_description(const char *privilege, char **description) { int ret = 0; @@ -527,7 +490,7 @@ int privilege_info_get_privilege_description(const char *privilege, char **descr } else if (strcmp(description_string_id, "") == 0) { *description = strdup("description string is not defined yet"); } else { - ret = privilege_info_get_privilege_display_name_by_string_id(description_string_id, description); + ret = privilege_info_get_privilege_string_by_string_id(description_string_id, description); free(description_string_id); description_string_id = NULL; TryReturn(ret == PRVMGR_ERR_NONE, , PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] Memory allocation failed."); @@ -586,11 +549,19 @@ int privilege_info_get_privacy_display(const char* privacy, char** privacy_displ { TryReturn(privacy != NULL, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] privacy is NULL"); - int ret = privilege_db_manager_get_privacy_display(privacy, privacy_display); - if (ret == PRIVILEGE_DB_MANAGER_ERR_NONE) - ret = PRVMGR_ERR_NONE; - else + char* privacy_display_string = NULL; + int ret = privilege_db_manager_get_privacy_display(privacy, &privacy_display_string); + if (ret == PRIVILEGE_DB_MANAGER_ERR_NONE) { + TryReturn(privacy_display_string != NULL, , PRVMGR_ERR_INTERNAL_ERROR, "[PRVMGR_ERR_INTERNAL_ERROR] return value is PRVMGR_ERR_NONE but privacy_display_string is NULL."); + ret = privilege_info_get_privilege_string_by_string_id(privacy_display_string, privacy_display); + free(privacy_display_string); + TryReturn(ret == PRVMGR_ERR_NONE, , ret, "privilege_info_get_privilege_string_by_string_id() failed. ret = %d", ret); + TryReturn(*privacy_display != NULL, , PRVMGR_ERR_INTERNAL_ERROR, "[PRVMGR_ERR_INTERNAL_ERROR] return value is PRVMGR_ERR_NONE but privacy_display is NULL."); + } else if (ret == PRIVILEGE_DB_NO_EXIST_RESULT) { + ret = PRVMGR_ERR_INVALID_PARAMETER; + } else { ret = PRVMGR_ERR_INTERNAL_ERROR; + } return ret; } diff --git a/test/tc-privilege-info.c b/test/tc-privilege-info.c index 75b88dc..ea7bb56 100755 --- a/test/tc-privilege-info.c +++ b/test/tc-privilege-info.c @@ -228,6 +228,50 @@ static void __test_privilege_info_is_privacy() __print_line(); } +static void __test_privilege_info_get_privacy_display() +{ + char* privacy_display = NULL; + int ret; + + printf("VALID privacy: http://tizen.org/privacy/account\n"); + ret = privilege_info_get_privacy_display("http://tizen.org/privacy/account", &privacy_display); + if (ret == PRVMGR_ERR_NONE && privacy_display != NULL) { + success_cnt++; + printf("SUCCESS: privacy_display = %s\n", privacy_display); + } else { + fail_cnt++; + printf("FAIL: ret = %d, privacy_display = %s\n", ret, privacy_display); + } + + free(privacy_display); + privacy_display = NULL; + + printf("WRONG privacy: http://tizen.org/privilege/account.read\n"); + ret = privilege_info_get_privacy_display("http://tizen.org/privilege/account.read", &privacy_display); + if(ret == PRVMGR_ERR_INVALID_PARAMETER && privacy_display == NULL) { + success_cnt++; + printf("SUCCESS\n"); + } else { + fail_cnt++; + printf("FAIL: ret = %d, privacy_display = %s\n", ret, privacy_display); + } + + free(privacy_display); + privacy_display = NULL; + + printf("NULL param\n"); + ret = privilege_info_get_privacy_display(NULL, &privacy_display); + if(ret == PRVMGR_ERR_INVALID_PARAMETER && privacy_display == NULL) { + success_cnt++; + printf("SUCCESS\n"); + } else { + fail_cnt++; + printf("FAIL: ret = %d, privacy_display = %s\n", ret, privacy_display); + } + + free(privacy_display); +} + static void __test_privilege_info_get_privacy_list() { GList* privacy_list = NULL; @@ -444,6 +488,9 @@ int main() __tcinfo(function, "privilege_info_get_privacy_by_privilege"); __test_privilege_info_get_privacy_by_privilege(); + __tcinfo(function, "privilege_info_get_privacy_display"); + __test_privilege_info_get_privacy_display(); + __color_to_green(); printf("Test Complete\n"); printf("success : %d, ", success_cnt);