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);
+}
+