security-manager-tests: use full proper path for applications
[platform/core/test/security-tests.git] / tests / security-manager-tests / security_manager_tests.cpp
index 7a23d2c..d7faca8 100644 (file)
@@ -596,7 +596,8 @@ static uid_t getGlobalUserId(void)
     return tzplatform_getuid(TZ_SYS_GLOBALAPP_USER);
 }
 
-static const std::string appDirPath(const TemporaryTestUser &user)
+static const std::string appDirPath(const TemporaryTestUser &user,
+        const std::string &appId, const std::string &pkgId)
 {
     struct tzplatform_context *tzCtxPtr = nullptr;
 
@@ -612,7 +613,7 @@ static const std::string appDirPath(const TemporaryTestUser &user)
                       "tzplatform_context_getenv failed"
                           << "for getting sys rw app of user <" << user.getUserName() << ">");
 
-    return appDir;
+    return std::string(appDir) + "/" + pkgId + "/" + appId;
 }
 
 static const std::string nonAppDirPath(const TemporaryTestUser &user)
@@ -674,7 +675,7 @@ static void createTestDir(const std::string &dir)
     mode_t execFileMode = S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH;
     mode_t normalFileMode = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH;
 
-    mkdirSafe(dir, dirMode);
+    mktreeSafe(dir, dirMode);
     creatSafe(dir + "/" + EXEC_FILE, execFileMode);
     creatSafe(dir + "/" + NORMAL_FILE, normalFileMode);
     symlinkSafe(dir + "/" + EXEC_FILE, dir + "/" + LINK_PREFIX + EXEC_FILE);
@@ -692,9 +693,10 @@ static void createInnerAppDir(const std::string &dir, const std::string &nonAppD
                 dir + "/" + LINK_PREFIX + "non_app_" + NORMAL_FILE);
 }
 
-static void generateAppDir(const TemporaryTestUser &user)
+static void generateAppDir(const TemporaryTestUser &user,
+       const std::string &appId, const std::string &pkgId)
 {
-    const std::string dir = appDirPath(user);
+    const std::string dir = appDirPath(user, appId, pkgId);
     const std::string nonAppDir = nonAppDirPath(user);
 
     createInnerAppDir(dir, nonAppDir);
@@ -711,15 +713,17 @@ static void generateNonAppDir(const TemporaryTestUser &user)
     createTestDir(dir + "/inner_dir");
 }
 
-static void createTestDirs(const TemporaryTestUser &user)
+static void createTestDirs(const TemporaryTestUser &user,
+       const std::string &appId, const std::string &pkgId)
 {
-    generateAppDir(user);
+    generateAppDir(user, appId, pkgId);
     generateNonAppDir(user);
 }
 
-static void removeTestDirs(const TemporaryTestUser &user)
+static void removeTestDirs(const TemporaryTestUser &user,
+       const std::string &appId, const std::string &pkgId)
 {
-    removeDir(appDirPath(user));
+    removeDir(appDirPath(user, appId, pkgId));
     removeDir(nonAppDirPath(user));
 }
 
@@ -733,10 +737,10 @@ RUNNER_CHILD_TEST(security_manager_04a_app_install_uninstall_by_app_user_for_sel
     TemporaryTestUser testUser(new_user_name, GUM_USERTYPE_NORMAL, false);
     testUser.create();
 
-    removeTestDirs(testUser);
-    createTestDirs(testUser);
+    removeTestDirs(testUser, sm_app_id, sm_pkg_id);
+    createTestDirs(testUser, sm_app_id, sm_pkg_id);
 
-    const std::string userAppDirPath = appDirPath(testUser);
+    const std::string userAppDirPath = appDirPath(testUser, sm_app_id, sm_pkg_id);
 
     //switch user to non-root
     result = drop_root_privileges(testUser.getUid(), testUser.getGid());
@@ -765,10 +769,10 @@ RUNNER_CHILD_TEST(security_manager_04b_app_install_by_root_for_app_user)
     TemporaryTestUser testUser(new_user_name, GUM_USERTYPE_NORMAL, false);
     testUser.create();
 
-    removeTestDirs(testUser);
-    createTestDirs(testUser);
+    removeTestDirs(testUser, sm_app_id, sm_pkg_id);
+    createTestDirs(testUser, sm_app_id, sm_pkg_id);
 
-    install_and_check(sm_app_id, sm_pkg_id, testUser, appDirPath(testUser), true);
+    install_and_check(sm_app_id, sm_pkg_id, testUser, appDirPath(testUser, sm_app_id, sm_pkg_id), true);
 
     //switch user to non-root - root may not uninstall apps for specified users
     result = drop_root_privileges(testUser.getUid(), testUser.getGid());
@@ -835,8 +839,8 @@ RUNNER_CHILD_TEST(security_manager_07_user_add_app_install)
     test_user.create();
     test_user.getUidString(uid_string);
 
-    removeTestDirs(test_user);
-    createTestDirs(test_user);
+    removeTestDirs(test_user, sm_app_id, sm_pkg_id);
+    createTestDirs(test_user, sm_app_id, sm_pkg_id);
 
     install_app(sm_app_id, sm_pkg_id, test_user.getUid());
 
@@ -863,8 +867,8 @@ RUNNER_CHILD_TEST(security_manager_08_user_double_add_double_remove)
     test_user.create();
     test_user.getUidString(uid_string);
 
-    removeTestDirs(test_user);
-    createTestDirs(test_user);
+    removeTestDirs(test_user, sm_app_id, sm_pkg_id);
+    createTestDirs(test_user, sm_app_id, sm_pkg_id);
 
     addUserRequest.setUid(test_user.getUid());
     addUserRequest.setUserType(SM_USER_TYPE_NORMAL);
@@ -900,8 +904,8 @@ RUNNER_CHILD_TEST(security_manager_09_add_user_offline)
     TemporaryTestUser test_user(new_user_name, GUM_USERTYPE_NORMAL, true);
     test_user.create();
 
-    removeTestDirs(test_user);
-    createTestDirs(test_user);
+    removeTestDirs(test_user, app_id, pkg_id);
+    createTestDirs(test_user, app_id, pkg_id);
 
     install_app(app_id, pkg_id, test_user.getUid());