Add test for new security manager API user add 99/31099/21
authorMichal Eljasiewicz <m.eljasiewic@samsung.com>
Wed, 17 Dec 2014 10:20:47 +0000 (11:20 +0100)
committerMichal Eljasiewicz <m.eljasiewic@samsung.com>
Tue, 20 Jan 2015 09:22:43 +0000 (10:22 +0100)
Change-Id: If4886d140696c780dbf39865afe64e80a71d814d
Signed-off-by: Michal Eljasiewicz <m.eljasiewic@samsung.com>
tests/security-manager-tests/CMakeLists.txt
tests/security-manager-tests/security_manager_tests.cpp

index 6f8fd74..c185493 100644 (file)
@@ -30,7 +30,8 @@ PKG_CHECK_MODULES(SEC_MGR_TESTS_DEP
     libtzplatform-config
     sqlite3
     libcap
-    dbus-1)
+    dbus-1
+    libgum)
 
 
 SET(TARGET_SEC_MGR_TESTS "security-manager-tests")
index 0e12f8e..904367c 100644 (file)
@@ -21,6 +21,8 @@
 #include <sm_api.h>
 #include <sm_db.h>
 #include <sm_request.h>
+#include <sm_user_request.h>
+#include <temp_test_user.h>
 #include <cynara_test_client.h>
 #include <dbus_access.h>
 
@@ -622,6 +624,61 @@ RUNNER_CHILD_TEST(security_manager_06_install_app_offline)
     uninstall_app(app_id, pkg_id, true);
 }
 
+RUNNER_CHILD_TEST(security_manager_07_user_add_app_install)
+{
+    const char *const sm_app_id = "sm_test_07_app_id_user";
+    const char *const sm_pkg_id = "sm_test_07_pkg_id_user";
+    const std::string new_user_name = "sm_test_07_user_name";
+    std::string uid_string;
+    TemporaryTestUser test_user(new_user_name, GUM_USERTYPE_NORMAL, false);
+    uid_string =  std::to_string(static_cast<unsigned int>(test_user.getUid()));
+
+    install_app(sm_app_id, sm_pkg_id, test_user.getUid());
+
+    check_app_after_install(sm_app_id, sm_pkg_id);
+
+    test_user.remove();
+
+    check_app_permissions(sm_app_id, sm_pkg_id, uid_string.c_str(), SM_NO_PRIVILEGES, SM_ALLOWED_PRIVILEGES);
+
+    check_app_after_uninstall(sm_app_id, sm_pkg_id, true);
+}
+
+RUNNER_CHILD_TEST(security_manager_08_user_double_add_double_remove)
+{
+    UserRequest addUserRequest;
+
+    const char *const sm_app_id = "sm_test_08_app_id_user";
+    const char *const sm_pkg_id = "sm_test_08_pkg_id_user";
+    const char *const new_user_name = "sm_test_08_user_name";
+    std::string uid_string;
+
+    // gumd user add
+    TemporaryTestUser test_user(new_user_name, GUM_USERTYPE_NORMAL, false);
+    uid_string =  std::to_string(static_cast<unsigned int>(test_user.getUid()));
+
+    addUserRequest.setUid(test_user.getUid());
+    addUserRequest.setUserType(SM_USER_TYPE_NORMAL);
+
+    //sm user add
+    Api::addUser(addUserRequest);
+
+    install_app(sm_app_id, sm_pkg_id, test_user.getUid());
+
+    check_app_after_install(sm_app_id, sm_pkg_id);
+
+    test_user.remove();
+
+    UserRequest deleteUserRequest;
+    deleteUserRequest.setUid(test_user.getUid());
+
+    Api::deleteUser(deleteUserRequest);
+
+    check_app_permissions(sm_app_id, sm_pkg_id, uid_string.c_str(), SM_NO_PRIVILEGES, SM_ALLOWED_PRIVILEGES);
+
+    check_app_after_uninstall(sm_app_id, sm_pkg_id, true);
+}
+
 int main(int argc, char *argv[])
 {
     return DPL::Test::TestRunnerSingleton::Instance().ExecTestRunner(argc, argv);