Add more security_manager_identify_privilege_provider() tests 21/119921/1
authorDariusz Michaluk <d.michaluk@samsung.com>
Mon, 20 Mar 2017 13:31:17 +0000 (14:31 +0100)
committerDariusz Michaluk <d.michaluk@samsung.com>
Mon, 20 Mar 2017 13:31:17 +0000 (14:31 +0100)
Change-Id: Id5f0c41f23c41cdd1c6a34f1485628f4faaeb6e2

src/security-manager-tests/test_cases_app_defined_privilege.cpp

index fe2a811..c681d1a 100644 (file)
@@ -258,44 +258,59 @@ RUNNER_CHILD_TEST(app_defined_06_get_provider)
     int result;
     char *pkgId = nullptr;
     char *appId = nullptr;
-    const std::string privilege = "http://tizen.org/applicationDefinedPrivilege/app_defined_06";
+    const std::string privilegeA = "http://tizen.org/applicationDefinedPrivilege/app_defined_06a";
+    const std::string privilegeB = "http://tizen.org/applicationDefinedPrivilege/app_defined_06b";
     const app_defined_privilege_type type = SM_APP_DEFINED_PRIVILEGE_TYPE_UNTRUSTED;
     const std::string providerId = "app_def_06_provider";
     uid_t uid = 5001;
 
-    AppInstallHelper provider(providerId, uid);
-    provider.addAppDefinedPrivilege(std::make_pair(privilege, type));
-    ScopedInstaller req1(provider);
+    AppInstallHelper providerGlobal(providerId);
+    AppInstallHelper providerLocal(providerId, uid);
+    providerGlobal.addAppDefinedPrivilege(std::make_pair(privilegeB, type));
+    providerLocal.addAppDefinedPrivilege(std::make_pair(privilegeA, type));
+    ScopedInstaller req1(providerGlobal);
+    ScopedInstaller req2(providerLocal);
 
     result = security_manager_identify_privilege_provider("noExistingPrivilege", uid, &pkgId, &appId);
     RUNNER_ASSERT(result == SECURITY_MANAGER_ERROR_NO_SUCH_OBJECT);
     RUNNER_ASSERT(appId == nullptr);
     RUNNER_ASSERT(pkgId == nullptr);
 
-    result = security_manager_identify_privilege_provider(privilege.c_str(), uid+1, &pkgId, &appId);
+    result = security_manager_identify_privilege_provider(privilegeA.c_str(), uid+1, &pkgId, &appId);
     RUNNER_ASSERT(result == SECURITY_MANAGER_ERROR_NO_SUCH_OBJECT);
     RUNNER_ASSERT(appId == nullptr);
     RUNNER_ASSERT(pkgId == nullptr);
 
-    result = security_manager_identify_privilege_provider(privilege.c_str(), uid, nullptr, nullptr);
+    result = security_manager_identify_privilege_provider(privilegeA.c_str(), uid, nullptr, nullptr);
     RUNNER_ASSERT(result == SECURITY_MANAGER_ERROR_INPUT_PARAM);
 
-    result = security_manager_identify_privilege_provider(privilege.c_str(), uid, &pkgId, nullptr);
+    result = security_manager_identify_privilege_provider(privilegeA.c_str(), uid, &pkgId, nullptr);
     RUNNER_ASSERT_MSG(result == SECURITY_MANAGER_SUCCESS, "getting privilege provider failed");
-    RUNNER_ASSERT(pkgId && std::string(pkgId) == provider.getPkgId());
+    RUNNER_ASSERT(pkgId && std::string(pkgId) == providerLocal.getPkgId());
     free(pkgId);
     pkgId = nullptr;
 
-    result = security_manager_identify_privilege_provider(privilege.c_str(), uid, nullptr, &appId);
+    result = security_manager_identify_privilege_provider(privilegeA.c_str(), uid, nullptr, &appId);
+    RUNNER_ASSERT_MSG(result == SECURITY_MANAGER_SUCCESS, "getting privilege provider failed");
+    RUNNER_ASSERT(appId && std::string(appId) == providerLocal.getAppId());
+    free(appId);
+    appId = nullptr;
+
+    result = security_manager_identify_privilege_provider(privilegeA.c_str(), uid, &pkgId, &appId);
     RUNNER_ASSERT_MSG(result == SECURITY_MANAGER_SUCCESS, "getting privilege provider failed");
-    RUNNER_ASSERT(appId && std::string(appId) == provider.getAppId());
+    RUNNER_ASSERT(appId && std::string(appId) == providerLocal.getAppId());
+    RUNNER_ASSERT(pkgId && std::string(pkgId) == providerLocal.getPkgId());
     free(appId);
+    free(pkgId);
     appId = nullptr;
+    pkgId = nullptr;
 
-    result = security_manager_identify_privilege_provider(privilege.c_str(), uid, &pkgId, &appId);
+    result = security_manager_identify_privilege_provider(privilegeB.c_str(), uid, &pkgId, &appId);
     RUNNER_ASSERT_MSG(result == SECURITY_MANAGER_SUCCESS, "getting privilege provider failed");
-    RUNNER_ASSERT(appId && std::string(appId) == provider.getAppId());
-    RUNNER_ASSERT(pkgId && std::string(pkgId) == provider.getPkgId());
+    RUNNER_ASSERT(appId && std::string(appId) == providerGlobal.getAppId());
+    RUNNER_ASSERT(pkgId && std::string(pkgId) == providerGlobal.getPkgId());
     free(appId);
     free(pkgId);
+    appId = nullptr;
+    pkgId = nullptr;
 }