Add test for app defined privileges update 20/116320/3
authorDariusz Michaluk <d.michaluk@samsung.com>
Thu, 23 Feb 2017 14:17:01 +0000 (15:17 +0100)
committerDariusz Michaluk <d.michaluk@samsung.com>
Fri, 24 Feb 2017 10:56:04 +0000 (11:56 +0100)
Change-Id: I4bc9402b33836a1d5394764a4ff8474902f2324c

src/security-manager-tests/test_cases_app_defined_privilege.cpp

index 4af31a4..7535226 100644 (file)
@@ -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);
+}
+