Check returned code if data were not found 71/133271/2
authorBartlomiej Grzelewski <b.grzelewski@samsung.com>
Mon, 5 Jun 2017 16:27:41 +0000 (18:27 +0200)
committerBartlomiej Grzelewski <b.grzelewski@samsung.com>
Mon, 12 Jun 2017 13:59:47 +0000 (15:59 +0200)
Security-manager should inform client with code
SECURITY_MANAGER_ERROR_NO_SUCH_OBJECT that data
were not found.

Change-Id: I821880eb96e78d16db4a3ce455021dda20053043

src/security-manager-tests/test_cases_app_defined_privilege.cpp

index 2a540bb..961d7fd 100644 (file)
@@ -417,7 +417,51 @@ RUNNER_CHILD_TEST(app_defined_07_get_provider_license)
     license = nullptr;
 }
 
-RUNNER_CHILD_TEST(app_defined_08_add_get_client_license)
+RUNNER_CHILD_TEST(app_defined_08_add_get_license_with_untrusted_priv)
+{
+    int result;
+    char *license = nullptr;
+    char *appId = nullptr;
+    char *pkgId = nullptr;
+
+    const Privilege privilegeUntrusted(
+        "http://tizen.org/licensed/abcsoftware/calendar",
+        Privilege::UNTRUSTED);
+
+    const std::string providerAppId = "app_def_provider_07";
+    const std::string clientAppId = "app_def_client_07";
+    uid_t uid = 5002;
+
+    AppInstallHelper providerGlobal(providerAppId);
+    providerGlobal.addAppDefinedPrivilege(privilegeUntrusted);
+
+    AppInstallHelper clientLocal(clientAppId, uid);
+    clientLocal.addPrivilege(privilegeUntrusted);
+
+    ScopedInstaller req1(providerGlobal);
+    ScopedInstaller req2(clientLocal);
+
+    result = security_manager_get_client_privilege_license(privilegeUntrusted,
+                                                           clientLocal.getPkgId().c_str(),
+                                                           clientLocal.getAppId().c_str(),
+                                                           uid, &license);
+    RUNNER_ASSERT(result == SECURITY_MANAGER_ERROR_NO_SUCH_OBJECT);
+    RUNNER_ASSERT(license == nullptr);
+
+    result = security_manager_get_app_defined_privilege_license(privilegeUntrusted, uid, &license);
+    RUNNER_ASSERT_MSG(result == SECURITY_MANAGER_ERROR_NO_SUCH_OBJECT, "getting privilege provider license failed");
+    RUNNER_ASSERT(license == nullptr);
+
+    result = security_manager_get_app_defined_privilege_provider(privilegeUntrusted,
+                                                                 uid, &pkgId, &appId);
+    RUNNER_ASSERT(result == SECURITY_MANAGER_SUCCESS);
+    RUNNER_ASSERT(appId != nullptr && providerGlobal.getAppId() == appId);
+    RUNNER_ASSERT(pkgId != nullptr && providerGlobal.getPkgId() == pkgId);
+    free(appId);
+    free(pkgId);
+}
+
+RUNNER_CHILD_TEST(app_defined_09_add_get_client_license)
 {
     int result;
     char *license = nullptr;
@@ -505,7 +549,7 @@ RUNNER_CHILD_TEST(app_defined_08_add_get_client_license)
     license = nullptr;
 }
 
-RUNNER_CHILD_TEST(app_defined_09_check_system_privileges)
+RUNNER_CHILD_TEST(app_defined_10_check_system_privileges)
 {
     const std::string providerAppId = "app_def_09_provider";
     const Privilege privilege("http://tizen.org/privilege/internet", Privilege::UNTRUSTED);
@@ -518,7 +562,7 @@ RUNNER_CHILD_TEST(app_defined_09_check_system_privileges)
     Api::uninstall(requestInst);
 }
 
-RUNNER_CHILD_TEST(app_defined_10_invalid_license)
+RUNNER_CHILD_TEST(app_defined_11_invalid_license)
 {
     const Privilege providerPrivilegeLicense(
         "http://tizen.org/licensed/abcsoftware/calendar",