From: Dariusz Michaluk Date: Mon, 13 Mar 2017 16:32:12 +0000 (+0100) Subject: Add security_manager_identify_privilege_provider() tests X-Git-Tag: security-manager_5.5_testing~15^2~7^2~7 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fed22c2be4112372ed4f44a0f64fc841dd16c53a;p=platform%2Fcore%2Ftest%2Fsecurity-tests.git Add security_manager_identify_privilege_provider() tests Change-Id: I56533a6e4675b1764597b22100f483e6ba8c9ec8 --- diff --git a/src/security-manager-tests/test_cases_app_defined_privilege.cpp b/src/security-manager-tests/test_cases_app_defined_privilege.cpp index e6b89b14..fe2a8119 100644 --- a/src/security-manager-tests/test_cases_app_defined_privilege.cpp +++ b/src/security-manager-tests/test_cases_app_defined_privilege.cpp @@ -252,3 +252,50 @@ RUNNER_CHILD_TEST(app_defined_05_global_local_install) cynara.check(consumerGlobalLabel, session, ownerId, privilegeB, CYNARA_API_ACCESS_DENIED); cynara.check(consumerGlobalLabel, session, ownerId, privilegeC, CYNARA_API_ACCESS_ALLOWED); } + +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 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); + + 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); + 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); + RUNNER_ASSERT(result == SECURITY_MANAGER_ERROR_INPUT_PARAM); + + result = security_manager_identify_privilege_provider(privilege.c_str(), uid, &pkgId, nullptr); + RUNNER_ASSERT_MSG(result == SECURITY_MANAGER_SUCCESS, "getting privilege provider failed"); + RUNNER_ASSERT(pkgId && std::string(pkgId) == provider.getPkgId()); + free(pkgId); + pkgId = nullptr; + + result = security_manager_identify_privilege_provider(privilege.c_str(), uid, nullptr, &appId); + RUNNER_ASSERT_MSG(result == SECURITY_MANAGER_SUCCESS, "getting privilege provider failed"); + RUNNER_ASSERT(appId && std::string(appId) == provider.getAppId()); + free(appId); + appId = nullptr; + + result = security_manager_identify_privilege_provider(privilege.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()); + free(appId); + free(pkgId); +}