From f976236e64ef25ea0b5f192ff899294f69bd590e Mon Sep 17 00:00:00 2001 From: wanghang Date: Tue, 25 Oct 2022 17:16:32 +0800 Subject: [PATCH] IssueNo:#I5XMRU Description:add tdd Sig:SIG_ApplicaitonFramework Feature or Bugfix:Bugfix Binary Source:No Signed-off-by: wanghang Change-Id: I38ad30b476046194f0b831fdd34a28d3ebe96f5c --- .../app_control/app_control_manager_rdb.cpp | 9 +- .../bms_bundle_app_control_test.cpp | 89 ++++++++++++++++--- 2 files changed, 82 insertions(+), 16 deletions(-) diff --git a/services/bundlemgr/src/app_control/app_control_manager_rdb.cpp b/services/bundlemgr/src/app_control/app_control_manager_rdb.cpp index eb32a87b80..0538b4e38a 100644 --- a/services/bundlemgr/src/app_control/app_control_manager_rdb.cpp +++ b/services/bundlemgr/src/app_control/app_control_manager_rdb.cpp @@ -15,6 +15,7 @@ #include "app_control_manager_rdb.h" +#include "app_control_constants.h" #include "app_log_wrapper.h" #include "appexecfwk_errors.h" #include "bundle_util.h" @@ -26,7 +27,7 @@ namespace { const std::string RUNNING_CONTROL = "RunningControl"; const std::string APP_CONTROL_EDM_DEFAULT_MESSAGE = "The app has been disabled by EDM"; const std::string DEFAULT = "default"; - const int32_t CALLING_NAME_INDEX = 2; + const int32_t CALLING_NAME_INDEX = 1; const int32_t APP_ID_INDEX = 4; const int32_t CONTROL_MESSAGE_INDEX = 5; const int32_t DISPOSED_STATUS_INDEX = 6; @@ -39,7 +40,6 @@ namespace { const std::string DISPOSED_STATUS = "DISPOSED_STATUS"; const std::string PRIORITY = "PRIORITY"; const std::string TIME_STAMP = "TIME_STAMP"; - const std::string EDM_CALLING = "EDM"; enum class PRIORITY { EDM = 100, @@ -297,7 +297,7 @@ ErrCode AppControlManagerRdb::GetAppRunningControlRule(const std::string &appId, return ERR_BUNDLE_MANAGER_APP_CONTROL_INTERNAL_ERROR; } if (count == 0) { - APP_LOGI("GetAppRunningControlRule failed"); + APP_LOGE("GetAppRunningControlRuleResult size 0"); return ERR_BUNDLE_MANAGER_BUNDLE_NOT_SET_CONTROL; } ret = absSharedResultSet->GoToFirstRow(); @@ -313,7 +313,8 @@ ErrCode AppControlManagerRdb::GetAppRunningControlRule(const std::string &appId, ret = absSharedResultSet->GetString(CONTROL_MESSAGE_INDEX, controlRuleResult.controlMessage); if (ret != NativeRdb::E_OK) { APP_LOGW("GetString controlMessage failed, ret: %{public}d", ret); - if (callingName == EDM_CALLING) { + if (callingName == AppControlConstants::EDM_CALLING) { + APP_LOGD("GetString controlMessage default"); controlRuleResult.controlMessage = APP_CONTROL_EDM_DEFAULT_MESSAGE; } } diff --git a/services/bundlemgr/test/unittest/bms_bundle_app_control_test/bms_bundle_app_control_test.cpp b/services/bundlemgr/test/unittest/bms_bundle_app_control_test/bms_bundle_app_control_test.cpp index 138f585aad..86ac719507 100755 --- a/services/bundlemgr/test/unittest/bms_bundle_app_control_test/bms_bundle_app_control_test.cpp +++ b/services/bundlemgr/test/unittest/bms_bundle_app_control_test/bms_bundle_app_control_test.cpp @@ -46,6 +46,8 @@ const std::string APPID = "com.third.hiworld.example1_BNtg4JBClbl92Rgc3jm/" "RfcAdrHXaM8F0QOiwVEhnV5ebE5jNIYnAx+weFRT3QTyUjRNdhmc2aAzWyi+5t5CoBM="; const std::string CONTROL_MESSAGE = "this is control message"; const std::string CALLING_NAME = "ohos.permission.MANAGE_DISPOSED_APP_STATUS"; +const std::string APP_CONTROL_EDM_DEFAULT_MESSAGE = "The app has been disabled by EDM"; +const std::string PERMISSION_DISPOSED_STATUS = "ohos.permission.MANAGE_DISPOSED_APP_STATUS"; const int32_t USERID = 100; const int32_t WAIT_TIME = 5; // init mocked bms } // namespace @@ -338,11 +340,14 @@ HWTEST_F(BmsBundleAppControlTest, AppInstallControlRule_0400, Function | SmallTe HWTEST_F(BmsBundleAppControlTest, AppInstallControlRule_0500, Function | SmallTest | Level1) { std::vector appIds; - auto InstallRes = appControlManagerDb_->AddAppInstallControlRule(CALLING_NAME, appIds, APPID, 100); - auto InstallRes1 = appControlManagerDb_->GetAppInstallControlRule(CALLING_NAME, APPID, 100, appIds); - auto InstallRes2 = appControlManagerDb_->DeleteAppInstallControlRule(CALLING_NAME, APPID, appIds, 100); - appControlManagerDb_->AddAppInstallControlRule(CALLING_NAME, appIds, APPID, 100); - auto InstallRes3 = appControlManagerDb_->DeleteAppInstallControlRule(CALLING_NAME, APPID, 100); + auto InstallRes = appControlManagerDb_->AddAppInstallControlRule( + AppControlConstants::EDM_CALLING, appIds, APPID, 100); + auto InstallRes1 = appControlManagerDb_->GetAppInstallControlRule( + AppControlConstants::EDM_CALLING, APPID, 100, appIds); + auto InstallRes2 = appControlManagerDb_->DeleteAppInstallControlRule( + AppControlConstants::EDM_CALLING, APPID, appIds, 100); + appControlManagerDb_->AddAppInstallControlRule(AppControlConstants::EDM_CALLING, appIds, APPID, 100); + auto InstallRes3 = appControlManagerDb_->DeleteAppInstallControlRule(AppControlConstants::EDM_CALLING, APPID, 100); EXPECT_EQ(InstallRes, ERR_OK); EXPECT_EQ(InstallRes1, ERR_OK); @@ -463,6 +468,8 @@ HWTEST_F(BmsBundleAppControlTest, AppRunningControlRule_0400, Function | SmallTe EXPECT_EQ(res, ERR_OK); res = appControlProxy->GetAppRunningControlRule(USERID, appIds); EXPECT_EQ(res, ERR_OK); + res = appControlProxy->DeleteAppRunningControlRule(USERID); + EXPECT_EQ(res, ERR_OK); } /** @@ -490,6 +497,9 @@ HWTEST_F(BmsBundleAppControlTest, AppRunningControlRule_0500, Function | SmallTe seteuid(5523); res = appControlProxy->GetAppRunningControlRule(BUNDLE_NAME, USERID, controlRuleResult); EXPECT_EQ(res, ERR_BUNDLE_MANAGER_BUNDLE_NOT_EXIST); + seteuid(537); + res = appControlProxy->DeleteAppRunningControlRule(USERID); + EXPECT_EQ(res, ERR_OK); } /** @@ -501,15 +511,20 @@ HWTEST_F(BmsBundleAppControlTest, AppRunningControlRule_0500, Function | SmallTe HWTEST_F(BmsBundleAppControlTest, AppRunningControlRule_0600, Function | SmallTest | Level1) { std::vector appIds; - const std::vector controlRules; - + std::vector controlRules; + AppRunningControlRule controlRule; + controlRule.appId = APPID; + controlRule.controlMessage = "test control message"; + controlRules.emplace_back(controlRule); AppRunningControlRuleResult controlRuleResult; - auto RunningRes = appControlManagerDb_->AddAppRunningControlRule(CALLING_NAME, controlRules, 100); - auto RunningRes1 = appControlManagerDb_->GetAppRunningControlRule(CALLING_NAME, 100, appIds); + auto RunningRes = appControlManagerDb_->AddAppRunningControlRule( + AppControlConstants::EDM_CALLING, controlRules, 100); + auto RunningRes1 = appControlManagerDb_->GetAppRunningControlRule(AppControlConstants::EDM_CALLING, 100, appIds); auto RunningRes2 = appControlManagerDb_->GetAppRunningControlRule(APPID, 100, controlRuleResult); - auto RunningRes3 = appControlManagerDb_->DeleteAppRunningControlRule(CALLING_NAME, controlRules, 100); - appControlManagerDb_->AddAppRunningControlRule(CALLING_NAME, controlRules, 100); - auto RunningRes4 = appControlManagerDb_->DeleteAppRunningControlRule(CALLING_NAME, 100); + auto RunningRes3 = appControlManagerDb_->DeleteAppRunningControlRule( + AppControlConstants::EDM_CALLING, controlRules, 100); + appControlManagerDb_->AddAppRunningControlRule(AppControlConstants::EDM_CALLING, controlRules, 100); + auto RunningRes4 = appControlManagerDb_->DeleteAppRunningControlRule(AppControlConstants::EDM_CALLING, 100); EXPECT_EQ(RunningRes, ERR_OK); EXPECT_EQ(RunningRes1, ERR_OK); @@ -518,6 +533,56 @@ HWTEST_F(BmsBundleAppControlTest, AppRunningControlRule_0600, Function | SmallTe EXPECT_EQ(RunningRes4, ERR_OK); } +/** + * @tc.number: AppRunningControlRule_0700 + * @tc.name: test running control rule + * @tc.require: issueI5MZ8K + * @tc.desc: 1.GetAppRunningControlRule test + */ +HWTEST_F(BmsBundleAppControlTest, AppRunningControlRule_0700, Function | SmallTest | Level1) +{ + sptr bundleMgrProxy = GetBundleMgrProxy(); + sptr appControlProxy = bundleMgrProxy->GetAppControlProxy(); + seteuid(537); + auto ret = appControlProxy->DeleteAppRunningControlRule(100); + EXPECT_EQ(ret, ERR_OK); + std::vector controlRules; + AppRunningControlRule controlRule; + controlRule.appId = APPID; + controlRule.controlMessage = "test message"; + controlRules.emplace_back(controlRule); + ret = appControlManagerDb_->AddAppRunningControlRule(AppControlConstants::EDM_CALLING, controlRules, 100); + EXPECT_EQ(ret, ERR_OK); + AppRunningControlRuleResult controlRuleResult; + ret = appControlManagerDb_->GetAppRunningControlRule(APPID, 100, controlRuleResult); + EXPECT_EQ(ret, ERR_OK); + EXPECT_EQ(controlRuleResult.controlMessage, "test message"); + EXPECT_EQ(controlRuleResult.controlWant, nullptr); + ret = appControlManagerDb_->DeleteAppRunningControlRule(AppControlConstants::EDM_CALLING, 100); + EXPECT_EQ(ret, ERR_OK); + controlRules.clear(); + controlRule.controlMessage = ""; + controlRules.emplace_back(controlRule); + ret = appControlManagerDb_->AddAppRunningControlRule(AppControlConstants::EDM_CALLING, controlRules, 100); + EXPECT_EQ(ret, ERR_OK); + ret = appControlManagerDb_->GetAppRunningControlRule(APPID, 100, controlRuleResult); + EXPECT_EQ(controlRuleResult.controlMessage, APP_CONTROL_EDM_DEFAULT_MESSAGE); + EXPECT_EQ(controlRuleResult.controlWant, nullptr); + ret = appControlManagerDb_->DeleteAppRunningControlRule(AppControlConstants::EDM_CALLING, 100); + EXPECT_EQ(ret, ERR_OK); + controlRules.clear(); + Want want; + ret = appControlManagerDb_->SetDisposedStatus(PERMISSION_DISPOSED_STATUS, APPID, want, 100); + EXPECT_EQ(ret, ERR_OK); + AppRunningControlRuleResult ruleResult; + ret = appControlManagerDb_->GetAppRunningControlRule(APPID, 100, ruleResult); + EXPECT_EQ(ret, ERR_OK); + EXPECT_EQ(ruleResult.controlMessage, ""); + EXPECT_NE(ruleResult.controlWant, nullptr); + ret = appControlManagerDb_->DeleteAppRunningControlRule(PERMISSION_DISPOSED_STATUS, 100); + EXPECT_EQ(ret, ERR_OK); +} + /** * @tc.number: DisposedStatus_0100 * @tc.name: test setting disposed status -- Gitee