From: Pawel Kowalski Date: Wed, 28 Mar 2018 12:08:59 +0000 (+0200) Subject: Adjust tests to allow change of hybrid flag X-Git-Tag: security-manager_5.5_testing~7^3~7 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f0e0e09d825564343082fdcc700c38a7830ce659;p=platform%2Fcore%2Ftest%2Fsecurity-tests.git Adjust tests to allow change of hybrid flag Change-Id: I37f387e79a07cf1a5b16d673693d01c3932b781b --- diff --git a/src/common/sm_api.cpp b/src/common/sm_api.cpp index 7f07a861..ec1d8179 100644 --- a/src/common/sm_api.cpp +++ b/src/common/sm_api.cpp @@ -32,6 +32,16 @@ void install(const InstallRequest &request, lib_retcode expectedResult) << " Expected result: " << expectedResult); } +void update(const InstallRequest &request, lib_retcode expectedResult) +{ + int result = security_manager_app_update(request.get()); + RUNNER_ASSERT_MSG((lib_retcode)result == expectedResult, + "installing app returned wrong value." + << " InstallRequest: [ " << request << "];" + << " Result: " << result << ";" + << " Expected result: " << expectedResult); +} + void uninstall(const InstallRequest &request, lib_retcode expectedResult) { int result = security_manager_app_uninstall(request.get()); diff --git a/src/common/sm_api.h b/src/common/sm_api.h index e1c8efe6..cef222cb 100644 --- a/src/common/sm_api.h +++ b/src/common/sm_api.h @@ -30,6 +30,7 @@ namespace SecurityManagerTest { namespace Api { void install(const InstallRequest &request, lib_retcode expectedResult = SECURITY_MANAGER_SUCCESS); +void update(const InstallRequest &request, lib_retcode expectedResult = SECURITY_MANAGER_SUCCESS); void uninstall(const InstallRequest &request, lib_retcode expectedResult = SECURITY_MANAGER_SUCCESS); std::string getPkgId(const std::string &appId, lib_retcode expectedResult = SECURITY_MANAGER_SUCCESS); void setProcessLabel(const std::string &appId, lib_retcode expectedResult = SECURITY_MANAGER_SUCCESS); diff --git a/src/security-manager-tests/test_cases.cpp b/src/security-manager-tests/test_cases.cpp index c87399d3..05c52c40 100644 --- a/src/security-manager-tests/test_cases.cpp +++ b/src/security-manager-tests/test_cases.cpp @@ -446,6 +446,30 @@ RUNNER_TEST(security_manager_09_app_install_constraint_check) } }; + auto update = [](const TemporaryTestUser& user, + const char *pkgId, + const char *appId, + const char *version, + const char *author, + bool isHybrid, + enum lib_retcode expected, + bool uninstall = true) + { + InstallRequest request; + request.setAppId(appId); + request.setPkgId(pkgId); + request.setAppTizenVersion(version); + request.setAuthorId(author); + request.setUid(user.getUid()); + if (isHybrid) + request.setHybrid(); + Api::update(request, expected); + + if(expected == SECURITY_MANAGER_SUCCESS && uninstall) { + Api::uninstall(request); + } + }; + std::vector users = { {"sm_test_09_user_name_0", GUM_USERTYPE_NORMAL, false}, {"sm_test_09_user_name_1", GUM_USERTYPE_NORMAL, false} @@ -464,16 +488,18 @@ RUNNER_TEST(security_manager_09_app_install_constraint_check) install(users[0], pkgId[0], appId[0], version[0], author[0], hybrid[0], SECURITY_MANAGER_SUCCESS, false); // uid_1, pkg_0, app_0, version_0, author_0, not hybrid -> ok (different uid) install(users[1], pkgId[0], appId[0], version[0], author[0], hybrid[0], SECURITY_MANAGER_SUCCESS); - // uid_0, pkg_0, app_0, version_0, author_0, hybrid -> fail (different hybrid setting) + // uid_0, pkg_0, app_0, version_0, author_0, hybrid -> ok for update (different hybrid setting) install(users[0], pkgId[0], appId[0], version[0], author[0], hybrid[1], SECURITY_MANAGER_ERROR_INPUT_PARAM); - // uid_0, pkg_0, app_1, version_0, author_0, hybrid -> fail (different hybrid setting) - install(users[0], pkgId[0], appId[1], version[0], author[0], hybrid[1], SECURITY_MANAGER_ERROR_INPUT_PARAM); - // uid_1, pkg_0, app_0, version_0, author_0, hybrid -> fail (different hybrid setting) - install(users[1], pkgId[0], appId[0], version[0], author[0], hybrid[1], SECURITY_MANAGER_ERROR_INPUT_PARAM); + update(users[0], pkgId[0], appId[0], version[0], author[0], hybrid[1], SECURITY_MANAGER_SUCCESS, false); + // uid_0, pkg_0, app_1, version_0, author_0, hybrid -> ok (new app id) + install(users[0], pkgId[0], appId[1], version[0], author[0], hybrid[1], SECURITY_MANAGER_SUCCESS, false); + // uid_1, pkg_0, app_0, version_0, author_0, hybrid -> ok (different hybrid setting) + install(users[1], pkgId[0], appId[0], version[0], author[0], hybrid[1], SECURITY_MANAGER_SUCCESS, false); // uid_1, pkg_0, app_0, version_0, author_1, not hybrid -> fail (author of app_0 must be the same) install(users[1], pkgId[0], appId[0], version[0], author[1], hybrid[0], SECURITY_MANAGER_ERROR_INPUT_PARAM); - // uid_1, pkg_0, app_0, version_1, author_0, not hybrid -> ok (version upgrade) - install(users[1], pkgId[0], appId[0], version[1], author[0], hybrid[0], SECURITY_MANAGER_SUCCESS); + // uid_1, pkg_0, app_0, version_1, author_0, not hybrid -> ok (version upgrade and different hybrid setting) + install(users[1], pkgId[0], appId[0], version[1], author[0], hybrid[0], SECURITY_MANAGER_ERROR_INPUT_PARAM); + update(users[1], pkgId[0], appId[0], version[1], author[0], hybrid[0], SECURITY_MANAGER_SUCCESS); // uid_1, pkg_1, app_0, version_0, author_0, not hybrid -> fail (pkg of app_0 must be the same) install(users[1], pkgId[1], appId[0], version[0], author[0], hybrid[0], SECURITY_MANAGER_ERROR_INPUT_PARAM); // uid_0, pkg_0, app_0, version_0, author_0, not hybrid -> ok (the same app again)