From aa592206b27a0e167149e8b780e2fef47ca0a46a Mon Sep 17 00:00:00 2001 From: lanhaoyu Date: Thu, 11 Sep 2025 16:22:19 +0800 Subject: [PATCH] add TDD Signed-off-by: lanhaoyu --- .../src/app_control/app_control_host.cpp | 2 +- .../bms_bundle_app_control_test.cpp | 192 +++++++++++++++--- 2 files changed, 167 insertions(+), 27 deletions(-) diff --git a/interfaces/inner_api/appexecfwk_core/src/app_control/app_control_host.cpp b/interfaces/inner_api/appexecfwk_core/src/app_control/app_control_host.cpp index 67b5241349..deb818c49f 100644 --- a/interfaces/inner_api/appexecfwk_core/src/app_control/app_control_host.cpp +++ b/interfaces/inner_api/appexecfwk_core/src/app_control/app_control_host.cpp @@ -251,7 +251,7 @@ ErrCode AppControlHost::HandleGetAppRunningControlRule(MessageParcel& data, Mess { int32_t userId = data.ReadInt32(); std::vector appIds; - bool allowRunning; + bool allowRunning = false; int32_t ret = GetAppRunningControlRule(userId, appIds, allowRunning); if (ret != ERR_OK) { LOG_E(BMS_TAG_DEFAULT, "HandleGetAppRunningControlRule failed"); 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 0c0d8f7f07..41a829955c 100644 --- 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 @@ -60,6 +60,7 @@ const std::string PERMISSION_DISPOSED_STATUS = "ohos.permission.MANAGE_DISPOSED_ const std::string ABILITY_RUNNING_KEY = "ABILITY_RUNNING_KEY"; const std::string INVALID_MESSAGE = "INVALID_MESSAGE"; const int32_t USERID = 100; +const int32_t USERID2 = 101; const int32_t WAIT_TIME = 5; // init mocked bms const int NOT_EXIST_USERID = -5; const int ALL_USERID = -3; @@ -3691,31 +3692,6 @@ HWTEST_F(BmsBundleAppControlTest, AddAppRunningControlRule_0300, Function | Smal EXPECT_EQ(res, ERR_OK); } -/** - * @tc.number: AddAppRunningControlRule_0400 - * @tc.name: Test AddAppRunningControlRule by AppControlManager - * @tc.desc: 1.AddAppRunningControlRule test - */ -HWTEST_F(BmsBundleAppControlTest, AddAppRunningControlRule_0400, Function | SmallTest | Level1) -{ - auto appControlManager = DelayedSingleton::GetInstance(); - ASSERT_NE(appControlManager, nullptr); - std::vector controlRules; - AppRunningControlRule ruleParam; - ruleParam.appId = APPID; - ruleParam.controlMessage = CONTROL_MESSAGE; - ruleParam.allowRunning = false; - for (int i = 0; i < 1024; i++) { - ruleParam.appId = APPID + "_" + std::to_string(i); - controlRules.clear(); - controlRules.emplace_back(ruleParam); - auto res = appControlManager->AddAppRunningControlRule(AppControlConstants::EDM_CALLING, controlRules, USERID); - EXPECT_EQ(res, ERR_OK); - } - auto res = appControlManager->DeleteAppRunningControlRule(AppControlConstants::EDM_CALLING, USERID); - EXPECT_EQ(res, ERR_OK); -} - /** * @tc.number: CheckControlRules_0100 * @tc.name: Test CheckControlRules by AppControlManager @@ -3838,6 +3814,35 @@ HWTEST_F(BmsBundleAppControlTest, GetRunningRuleSettingStatusByUserId_0200, Func EXPECT_EQ(ret, ERR_OK); } +/** + * @tc.number: GetRunningRuleSettingStatusByUserId_0300 + * @tc.name: Test GetRunningRuleSettingStatusByUserId by AppControlManager + * @tc.desc: 1.GetRunningRuleSettingStatusByUserId test + */ +HWTEST_F(BmsBundleAppControlTest, GetRunningRuleSettingStatusByUserId_0300, Function | SmallTest | Level1) +{ + auto appControlManager = DelayedSingleton::GetInstance(); + ASSERT_NE(appControlManager, nullptr); + appControlManager->runningRuleSettingStatusMap_.clear(); + auto res = appControlManager->GetRunningRuleSettingStatusByUserId(0); + EXPECT_EQ(res, AppExecFwk::AppControlManager::RunningRuleSettingStatus::NO_SET); +} + +/** + * @tc.number: GetRunningRuleSettingStatusByUserId_0400 + * @tc.name: Test GetRunningRuleSettingStatusByUserId by AppControlManager + * @tc.desc: 1.GetRunningRuleSettingStatusByUserId test + */ +HWTEST_F(BmsBundleAppControlTest, GetRunningRuleSettingStatusByUserId_0400, Function | SmallTest | Level1) +{ + auto appControlManager = DelayedSingleton::GetInstance(); + ASSERT_NE(appControlManager, nullptr); + appControlManager->SetRunningRuleSettingStatusByUserId( + USERID, AppExecFwk::AppControlManager::RunningRuleSettingStatus::BLACK_LIST); + auto res = appControlManager->GetRunningRuleSettingStatusByUserId(USERID2); + EXPECT_EQ(res, AppExecFwk::AppControlManager::RunningRuleSettingStatus::NO_SET); +} + /** * @tc.number: DeleteAppRunningControlRule_0100 * @tc.name: Test DeleteAppRunningControlRule by AppControlManager @@ -3865,7 +3870,7 @@ HWTEST_F(BmsBundleAppControlTest, DeleteAppRunningControlRule_0200, Function | S AppRunningControlRule ruleParam; ruleParam.appId = APPID; ruleParam.controlMessage = CONTROL_MESSAGE; - ruleParam.allowRunning = true; + ruleParam.allowRunning = false; controlRules.emplace_back(ruleParam); auto res = appControlManager->DeleteAppRunningControlRule(AppControlConstants::EDM_CALLING, controlRules, USERID); EXPECT_EQ(res, ERR_OK); @@ -4059,6 +4064,24 @@ HWTEST_F(BmsBundleAppControlTest, CheckAppControlRuleIntercept_0700, Function | EXPECT_EQ(ruleParam.controlMessage, APP_CONTROL_EDM_DEFAULT_MESSAGE); } +/** + * @tc.number: CheckAppControlRuleIntercept_0800 + * @tc.name: Test CheckAppControlRuleIntercept by AppControlManager + * @tc.desc: 1.CheckAppControlRuleIntercept test + */ +HWTEST_F(BmsBundleAppControlTest, CheckAppControlRuleIntercept_0800, Function | SmallTest | Level1) +{ + auto appControlManager = DelayedSingleton::GetInstance(); + ASSERT_NE(appControlManager, nullptr); + AppRunningControlRuleResult ruleParam; + ruleParam.controlMessage = CONTROL_MESSAGE; + ruleParam.isEdm = true; + appControlManager->SetRunningRuleSettingStatusByUserId( + USERID, AppExecFwk::AppControlManager::RunningRuleSettingStatus::WHITE_LIST); + auto ret = appControlManager->CheckAppControlRuleIntercept("", USERID, false, ruleParam); + EXPECT_EQ(ret, ERR_BUNDLE_MANAGER_BUNDLE_NOT_EXIST); +} + /** * @tc.number: GetAppRunningControlRule_0100 * @tc.name: Test GetAppRunningControlRule by AppControlManager @@ -4313,4 +4336,121 @@ HWTEST_F(BmsBundleAppControlTest, DeleteDisposedRules_0200, Function | SmallTest ErrCode res = impl->DeleteDisposedRules(disposedRuleConfigurations, USERID); EXPECT_EQ(res, ERR_OK); } + +/** + * @tc.number: SetRunningRuleSettingStatusByUserId_0100 + * @tc.name: Test SetRunningRuleSettingStatusByUserId by AppControlManager + * @tc.desc: 1.SetRunningRuleSettingStatusByUserId test + */ +HWTEST_F(BmsBundleAppControlTest, SetRunningRuleSettingStatusByUserId_0100, Function | SmallTest | Level1) +{ + auto appControlManager = DelayedSingleton::GetInstance(); + ASSERT_NE(appControlManager, nullptr); + appControlManager->runningRuleSettingStatusMap_.clear(); + appControlManager->SetRunningRuleSettingStatusByUserId( + USERID, AppExecFwk::AppControlManager::RunningRuleSettingStatus::BLACK_LIST); + auto ret = appControlManager->GetRunningRuleSettingStatusByUserId(USERID); + EXPECT_EQ(ret, AppExecFwk::AppControlManager::RunningRuleSettingStatus::BLACK_LIST); +} + +/** + * @tc.number: SetRunningRuleSettingStatusByUserId_0200 + * @tc.name: Test SetRunningRuleSettingStatusByUserId by AppControlManager + * @tc.desc: 1.SetRunningRuleSettingStatusByUserId test + */ +HWTEST_F(BmsBundleAppControlTest, SetRunningRuleSettingStatusByUserId_0200, Function | SmallTest | Level1) +{ + auto appControlManager = DelayedSingleton::GetInstance(); + ASSERT_NE(appControlManager, nullptr); + appControlManager->runningRuleSettingStatusMap_.emplace( + USERID, AppExecFwk::AppControlManager::RunningRuleSettingStatus::NO_SET); + appControlManager->SetRunningRuleSettingStatusByUserId( + USERID, AppExecFwk::AppControlManager::RunningRuleSettingStatus::BLACK_LIST); + auto ret = appControlManager->GetRunningRuleSettingStatusByUserId(USERID); + EXPECT_EQ(ret, AppExecFwk::AppControlManager::RunningRuleSettingStatus::BLACK_LIST); +} + +/** + * @tc.number: SetRunningRuleSettingStatusByUserId_0300 + * @tc.name: Test SetRunningRuleSettingStatusByUserId by AppControlManager + * @tc.desc: 1.SetRunningRuleSettingStatusByUserId test + */ +HWTEST_F(BmsBundleAppControlTest, SetRunningRuleSettingStatusByUserId_0300, Function | SmallTest | Level1) +{ + auto appControlManager = DelayedSingleton::GetInstance(); + ASSERT_NE(appControlManager, nullptr); + appControlManager->runningRuleSettingStatusMap_.emplace( + USERID, AppExecFwk::AppControlManager::RunningRuleSettingStatus::NO_SET); + appControlManager->SetRunningRuleSettingStatusByUserId( + USERID2, AppExecFwk::AppControlManager::RunningRuleSettingStatus::BLACK_LIST); + auto ret = appControlManager->GetRunningRuleSettingStatusByUserId(USERID2); + EXPECT_EQ(ret, AppExecFwk::AppControlManager::RunningRuleSettingStatus::BLACK_LIST); +} + +/** + * @tc.number: GetAppRunningControlRuleCache_0100 + * @tc.name: Test GetAppRunningControlRuleCache by AppControlManager + * @tc.desc: 1.GetAppRunningControlRuleCache test + */ +HWTEST_F(BmsBundleAppControlTest, GetAppRunningControlRuleCache_0100, Function | SmallTest | Level1) +{ + auto appControlManager = DelayedSingleton::GetInstance(); + ASSERT_NE(appControlManager, nullptr); + appControlManager->appRunningControlRuleResult_.clear(); + AppRunningControlRuleResult rule; + std::string key = APPID + std::string("_") + std::to_string(USERID); + auto ret = appControlManager->GetAppRunningControlRuleCache(key, rule); + EXPECT_FALSE(ret); +} + +/** + * @tc.number: GetAppRunningControlRuleCache_0200 + * @tc.name: Test GetAppRunningControlRuleCache by AppControlManager + * @tc.desc: 1.GetAppRunningControlRuleCache test + */ +HWTEST_F(BmsBundleAppControlTest, GetAppRunningControlRuleCache_0200, Function | SmallTest | Level1) +{ + auto appControlManager = DelayedSingleton::GetInstance(); + ASSERT_NE(appControlManager, nullptr); + std::string key = ""; + AppRunningControlRuleResult rule; + auto ret = appControlManager->GetAppRunningControlRuleCache(key, rule); + EXPECT_FALSE(ret); +} + +/** + * @tc.number: DeleteAppRunningControlRuleCache_0200 + * @tc.name: Test DeleteAppRunningControlRuleCache by AppControlManager + * @tc.desc: 1.DeleteAppRunningControlRuleCache test + */ +HWTEST_F(BmsBundleAppControlTest, DeleteAppRunningControlRuleCache_0200, Function | SmallTest | Level1) +{ + auto appControlManager = DelayedSingleton::GetInstance(); + ASSERT_NE(appControlManager, nullptr); + AppRunningControlRuleResult ruleParam; + ruleParam.controlMessage = CONTROL_MESSAGE; + std::string key = APPID + std::string("_") + std::to_string(USERID); + appControlManager->SetAppRunningControlRuleCache(key, ruleParam); + appControlManager->DeleteAppRunningControlRuleCache(""); + AppRunningControlRuleResult rule; + auto ret = appControlManager->GetAppRunningControlRuleCache(key, rule); + EXPECT_TRUE(ret); +} + +/** + * @tc.number: DeleteAppRunningControlRuleCache_0300 + * @tc.name: Test DeleteAppRunningControlRuleCache by AppControlManager + * @tc.desc: 1.DeleteAppRunningControlRuleCache test + */ +HWTEST_F(BmsBundleAppControlTest, DeleteAppRunningControlRuleCache_0300, Function | SmallTest | Level1) +{ + auto appControlManager = DelayedSingleton::GetInstance(); + ASSERT_NE(appControlManager, nullptr); + appControlManager->appRunningControlRuleResult_.clear(); + std::string key = APPID + std::string("_") + std::to_string(USERID); + appControlManager->DeleteAppRunningControlRuleCache(key); + AppRunningControlRuleResult rule; + auto ret = appControlManager->GetAppRunningControlRuleCache(key, rule); + EXPECT_FALSE(ret); +} } // OHOS \ No newline at end of file -- Gitee