Rework Application Defined Privileges support and tests 92/115592/3
authorDariusz Michaluk <d.michaluk@samsung.com>
Mon, 20 Feb 2017 11:19:41 +0000 (12:19 +0100)
committerDariusz Michaluk <d.michaluk@samsung.com>
Tue, 21 Feb 2017 11:50:17 +0000 (12:50 +0100)
Change-Id: I629bab91e4f04076bad9ec300943c6e83ba9ba6c

src/security-manager-tests/common/app_install_helper.cpp
src/security-manager-tests/common/app_install_helper.h
src/security-manager-tests/common/sm_request.cpp
src/security-manager-tests/common/sm_request.h
src/security-manager-tests/test_cases_app_defined_privilege.cpp

index cd352f6..69be463 100644 (file)
@@ -153,11 +153,11 @@ std::vector<std::string> AppInstallHelper::getPrivileges() const {
     return m_privileges;
 }
 
-void AppInstallHelper::addAppDefinedPrivilege(const std::string &privilege) {
+void AppInstallHelper::addAppDefinedPrivilege(const std::pair<std::string, int> &privilege) {
     m_appDefinedPrivileges.push_back(privilege);
 }
 
-std::vector<std::string> AppInstallHelper::getAppDefinedPrivileges() const {
+std::vector<std::pair<std::string, int>> AppInstallHelper::getAppDefinedPrivileges() const {
     return m_appDefinedPrivileges;
 }
 
index c4d083e..27543fc 100644 (file)
@@ -110,8 +110,8 @@ struct AppInstallHelper {
     void addPrivileges(const std::vector<std::string> &privileges);
     std::vector<std::string> getPrivileges() const;
 
-    void addAppDefinedPrivilege(const std::string &privilege);
-    std::vector<std::string> getAppDefinedPrivileges() const;
+    void addAppDefinedPrivilege(const std::pair<std::string, int> &privilege);
+    std::vector<std::pair<std::string, int>> getAppDefinedPrivileges() const;
 
     // Smack
     std::string generateAppLabel() const;
@@ -137,7 +137,7 @@ protected:
     TypePathsMap m_dirTypeMap;
     TypePathsMap m_fileTypeMap;
     std::vector<std::string> m_privileges;
-    std::vector<std::string> m_appDefinedPrivileges;
+    std::vector<std::pair<std::string, int>> m_appDefinedPrivileges;
     std::string m_author;
 
     pid_t m_creatorPid;
index 5f5f5a2..dc992bc 100644 (file)
@@ -95,12 +95,13 @@ void InstallRequest::addPrivilege(const std::string &privilege, lib_retcode expe
     m_privileges.push_back(privilege);
 }
 
-void InstallRequest::addAppDefinedPrivilege(const std::string &privilege, lib_retcode expectedResult)
+void InstallRequest::addAppDefinedPrivilege(const std::pair<std::string, int> &privilege, lib_retcode expectedResult)
 {
-    int result = security_manager_app_inst_req_add_app_defined_privilege(m_req, privilege.c_str());
+    int result = security_manager_app_inst_req_add_app_defined_privilege(m_req, privilege.first.c_str(),
+                                                                         static_cast<app_defined_privilege_type>(privilege.second));
     RUNNER_ASSERT_MSG((lib_retcode)result == expectedResult,
                       "adding app defined privilege returned wrong value."
-                          << " Privilege: " << privilege << ";"
+                          << " Privilege: " << privilege.first << ";"
                           << " Result: " << result << ";"
                           << " Expected result: " << expectedResult);
     m_appDefinedPrivileges.push_back(privilege);
@@ -174,9 +175,12 @@ std::ostream& operator<<(std::ostream &os, const InstallRequest &request)
         os << " ]";
     }
     if (!request.m_appDefinedPrivileges.empty()) {
-        os << "app defined privileges: [ " << request.m_appDefinedPrivileges[0];
-        for (size_t i = 1; i < request.m_appDefinedPrivileges.size(); ++i)
-            os << "; " << request.m_appDefinedPrivileges[i];
+        os << "app defined privileges: [ "  << "< " << request.m_appDefinedPrivileges[0].first << "; "
+                                                    << request.m_appDefinedPrivileges[0].second << " >";
+        for (size_t i = 1; i < request.m_appDefinedPrivileges.size(); ++i) {
+            os << "; <" << request.m_appDefinedPrivileges[i].first << "; "
+                        << request.m_appDefinedPrivileges[i].second << " >";
+        }
         os << " ]";
     }
 
index abdbb42..99c4318 100644 (file)
@@ -59,7 +59,7 @@ public:
     void setAppId(std::string appId, lib_retcode expectedresult = SECURITY_MANAGER_SUCCESS);
     void setPkgId(std::string pkgId, lib_retcode expectedresult = SECURITY_MANAGER_SUCCESS);
     void addPrivilege(const std::string &privilege, lib_retcode expectedresult = SECURITY_MANAGER_SUCCESS);
-    void addAppDefinedPrivilege(const std::string &privilege, lib_retcode expectedResult = SECURITY_MANAGER_SUCCESS);
+    void addAppDefinedPrivilege(const std::pair<std::string, int> &privilege, lib_retcode expectedResult = SECURITY_MANAGER_SUCCESS);
     void addPath(std::string path, app_install_path_type pathType,
                  lib_retcode expectedResult = SECURITY_MANAGER_SUCCESS);
     void setUid(const uid_t uid, lib_retcode expectedresult = SECURITY_MANAGER_SUCCESS);
@@ -79,7 +79,7 @@ private:
     std::string m_pkgId;
     std::string m_authorId;
     std::vector<std::string> m_privileges;
-    std::vector<std::string> m_appDefinedPrivileges;
+    std::vector<std::pair<std::string, int>> m_appDefinedPrivileges;
     std::vector<std::pair<std::string, app_install_path_type> > m_paths;
     std::pair<bool, uid_t> m_uid;
 };
index 85f57f2..d06ada6 100644 (file)
@@ -37,6 +37,7 @@ using namespace SecurityManagerTest;
 RUNNER_CHILD_TEST(app_define_01_global_install)
 {
     const std::string privilege = "http://tizen.org/applicationDefinedPrivilege/alamakota";
+    const app_defined_privilege_type type = SM_APP_DEFINED_PRIVILEGE_TYPE_UNTRUSTED;
     const std::string providerAppId = "app_def_01_provider_appid";
     const std::string consumerAppId = "app_def_01_client_appid";
     const std::string ownerId = "5001";
@@ -49,7 +50,7 @@ RUNNER_CHILD_TEST(app_define_01_global_install)
 
     std::string consumerLabel = consumer.generateAppLabel();
 
-    provider.addAppDefinedPrivilege(privilege);
+    provider.addAppDefinedPrivilege(std::make_pair(privilege, type));
     consumer.addPrivilege(privilege);
 
     ScopedInstaller req1(provider);
@@ -81,6 +82,7 @@ RUNNER_CHILD_TEST(app_define_01_global_install)
 RUNNER_CHILD_TEST(app_define_02_global_install)
 {
     const std::string privilege = "http://tizen.org/licensedPrivilege/alamakota";
+    const app_defined_privilege_type type = SM_APP_DEFINED_PRIVILEGE_TYPE_LICENSED;
     const std::string providerAppId = "app_def_02_provider_appid";
     const std::string consumerAppId = "app_def_02_client_appid";
     const std::string ownerId = "5001";
@@ -93,7 +95,7 @@ RUNNER_CHILD_TEST(app_define_02_global_install)
 
     std::string consumerLabel = consumer.generateAppLabel();
 
-    provider.addAppDefinedPrivilege(privilege);
+    provider.addAppDefinedPrivilege(std::make_pair(privilege, type));
     consumer.addPrivilege(privilege);
 
     ScopedInstaller req1(provider);