From cdcc4b49c5d402bbfd1d9827683bab246b691e57 Mon Sep 17 00:00:00 2001 From: Dariusz Michaluk Date: Thu, 23 Feb 2017 15:17:01 +0100 Subject: [PATCH] Add test for app defined privileges update Change-Id: I4bc9402b33836a1d5394764a4ff8474902f2324c --- .../test_cases_app_defined_privilege.cpp | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) 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 4af31a4..7535226 100644 --- a/src/security-manager-tests/test_cases_app_defined_privilege.cpp +++ b/src/security-manager-tests/test_cases_app_defined_privilege.cpp @@ -137,3 +137,44 @@ RUNNER_CHILD_TEST(app_defined_03_database_update) cynara.check(consumerLabel, session, ownerId, privilegeA, CYNARA_API_ACCESS_DENIED); cynara.check(consumerLabel, session, ownerId, privilegeB, CYNARA_API_ACCESS_DENIED); } + +RUNNER_CHILD_TEST(app_defined_04_app_update) +{ + const std::string privilegeA = "http://tizen.org/licensedPrivilege/app_defined_04a"; + const std::string privilegeB = "http://tizen.org/applicationDefinedPrivilege/app_defined_04b"; + const std::string privilegeC = "http://tizen.org/licensedPrivilege/app_defined_04c"; + const std::string providerAppId = "app_def_04_provider_appid"; + const std::string consumerAppId = "app_def_04_client_appid"; + const std::string ownerId = "5001"; + const std::string session = "S0M33S3SSI0N"; + + AppInstallHelper providerV1(providerAppId); + AppInstallHelper providerV2(providerAppId); + AppInstallHelper consumer(consumerAppId); + + std::string consumerLabel = consumer.generateAppLabel(); + + providerV1.addAppDefinedPrivilege(std::make_pair(privilegeA, SM_APP_DEFINED_PRIVILEGE_TYPE_LICENSED)); + providerV1.addAppDefinedPrivilege(std::make_pair(privilegeB, SM_APP_DEFINED_PRIVILEGE_TYPE_UNTRUSTED)); + consumer.addPrivilege(privilegeA); + consumer.addPrivilege(privilegeB); + consumer.addPrivilege(privilegeC); + + ScopedInstaller req1(providerV1); + ScopedInstaller req2(consumer); + + CynaraTestClient::Client cynara; + cynara.check(consumerLabel, session, ownerId, privilegeA, CYNARA_API_ACCESS_ALLOWED); + cynara.check(consumerLabel, session, ownerId, privilegeB, CYNARA_API_ACCESS_ALLOWED); + cynara.check(consumerLabel, session, ownerId, privilegeC, CYNARA_API_ACCESS_DENIED); + + // update provider version, remove privilegeA, add privilegeC + providerV2.addAppDefinedPrivilege(std::make_pair(privilegeB, SM_APP_DEFINED_PRIVILEGE_TYPE_UNTRUSTED)); + providerV2.addAppDefinedPrivilege(std::make_pair(privilegeC, SM_APP_DEFINED_PRIVILEGE_TYPE_LICENSED)); + ScopedInstaller req3(providerV2); + + cynara.check(consumerLabel, session, ownerId, privilegeA, CYNARA_API_ACCESS_DENIED); + cynara.check(consumerLabel, session, ownerId, privilegeB, CYNARA_API_ACCESS_ALLOWED); + cynara.check(consumerLabel, session, ownerId, privilegeC, CYNARA_API_ACCESS_ALLOWED); +} + -- 2.7.4