Modify privacy display API and add tc for it 17/86817/1
authorYunjin Lee <yunjin-.lee@samsung.com>
Mon, 5 Sep 2016 05:14:57 +0000 (14:14 +0900)
committerYunjin Lee <yunjin-.lee@samsung.com>
Mon, 5 Sep 2016 05:14:57 +0000 (14:14 +0900)
- 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 <yunjin-.lee@samsung.com>
capi/src/privilege_info.c
test/tc-privilege-info.c

index bfda875..accd26e 100755 (executable)
@@ -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;
 }
 
index 75b88dc..ea7bb56 100755 (executable)
@@ -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);