diff --git a/interfaces/inner_api/ability_manager/include/ability_auto_startup_client.h b/interfaces/inner_api/ability_manager/include/ability_auto_startup_client.h index ccdc54b28d3e3e7b64ad54e4c383a5a2a0cedf96..490a51232e7f25f33e40cac84ba55fc0a51e517f 100644 --- a/interfaces/inner_api/ability_manager/include/ability_auto_startup_client.h +++ b/interfaces/inner_api/ability_manager/include/ability_auto_startup_client.h @@ -58,6 +58,22 @@ public: */ ErrCode CancelApplicationAutoStartupByEDM(const AutoStartupInfo &info, bool flag); + /** + * @brief Set applications auto start up state by EDM. + * @param infoList The auto startup info vector list. + * @param flag Indicate whether to allow the application to change the auto start up state. + * @return Returns ERR_OK on success, others on failure. + */ + ErrCode SetApplicationAutoStartupByEDM(const std::vector &infoList, bool flag); + + /** + * @brief Cancel applications auto start up state by EDM. + * @param infoList The auto startup info vector list. + * @param flag Indicate whether to allow the application to change the auto start up state. + * @return Returns ERR_OK on success, others on failure. + */ + ErrCode CancelApplicationAutoStartupByEDM(const std::vector &infoList, bool flag); + /** * @brief Query all auto startup state applications. * @param infoList Output parameters, return auto startup info list. diff --git a/interfaces/inner_api/ability_manager/include/ability_manager_interface.h b/interfaces/inner_api/ability_manager/include/ability_manager_interface.h index b8b486ac4c6256ea34ae664ebaf210d34ff47e73..6bb8e222b11324cdf49880fbc9bbb5239c43d850 100644 --- a/interfaces/inner_api/ability_manager/include/ability_manager_interface.h +++ b/interfaces/inner_api/ability_manager/include/ability_manager_interface.h @@ -1384,6 +1384,22 @@ public: */ virtual int32_t CancelApplicationAutoStartupByEDM(const AutoStartupInfo &info, bool flag) = 0; + /** + * @brief Set applications auto start up state by EDM. + * @param infoList The auto startup info vector list. + * @param flag Indicate whether to allow the application to change the auto start up state. + * @return Returns ERR_OK on success, others on failure. + */ + virtual int32_t SetApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) = 0; + + /** + * @brief Cancel applications auto start up state by EDM. + * @param infoList The auto startup info vector list. + * @param flag Indicate whether to allow the application to change the auto start up state. + * @return Returns ERR_OK on success, others on failure. + */ + virtual int32_t CancelApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) = 0; + /** * @brief Get foreground ui abilities. * @param list Foreground ui abilities. diff --git a/interfaces/inner_api/ability_manager/include/ability_manager_ipc_interface_code.h b/interfaces/inner_api/ability_manager/include/ability_manager_ipc_interface_code.h index cf4e285bb54b8b45153062dc70c6786266330542..b644701732889a814ea3f7ce5f0408751737e56d 100644 --- a/interfaces/inner_api/ability_manager/include/ability_manager_ipc_interface_code.h +++ b/interfaces/inner_api/ability_manager/include/ability_manager_ipc_interface_code.h @@ -489,6 +489,10 @@ enum class AbilityManagerInterfaceCode { SET_APPLICATION_AUTO_STARTUP_BY_EDM = 6113, // ipc id for cancel application auto startup by EDM CANCEL_APPLICATION_AUTO_STARTUP_BY_EDM = 6114, + // ipc id for batch set application auto startup by EDM + BATCH_SET_APPLICATION_AUTO_STARTUP_BY_EDM = 6115, + // ipc id for batch cancel application auto startup by EDM + BATCH_CANCEL_APPLICATION_AUTO_STARTUP_BY_EDM = 6116, }; } // namespace AAFwk } // namespace OHOS diff --git a/services/abilitymgr/include/ability_auto_startup_data_manager.h b/services/abilitymgr/include/ability_auto_startup_data_manager.h index e4787e2a658215abc3183b1bc51a16558d9186f0..f3710bf4e0da7709d58c0210353c73da43e9b163 100644 --- a/services/abilitymgr/include/ability_auto_startup_data_manager.h +++ b/services/abilitymgr/include/ability_auto_startup_data_manager.h @@ -41,7 +41,7 @@ public: AutoStartupStatus QueryAutoStartupData(const AutoStartupInfo &info); - int32_t QueryAllAutoStartupApplications(std::vector &infoList); + int32_t QueryAllAutoStartupApplications(std::vector &infoList, bool isQueryEdmList = false); int32_t GetCurrentAppAutoStartupData(const std::string &bundleName, std::vector &infoList); diff --git a/services/abilitymgr/include/ability_auto_startup_service.h b/services/abilitymgr/include/ability_auto_startup_service.h index acbaed233829583ab4976634f3535506dd1f99b2..13004490596e49a2ab9d610c914d578857672968 100644 --- a/services/abilitymgr/include/ability_auto_startup_service.h +++ b/services/abilitymgr/include/ability_auto_startup_service.h @@ -142,6 +142,22 @@ public: */ int32_t CancelApplicationAutoStartupByEDM(const AutoStartupInfo &info, bool flag); + /** + * @brief Set applications auto start up state by EDM. + * @param infoList The auto startup info vector list. + * @param flag Indicate whether to allow the application to change the auto start up state. + * @return Returns ERR_OK on success, others on failure. + */ + int32_t SetApplicationAutoStartupByEDM(const std::vector &infoList, bool flag); + + /** + * @brief Cancel applications auto start up state by EDM. + * @param infoList The auto startup info vector list. + * @param flag Indicate whether to allow the application to change the auto start up state. + * @return Returns ERR_OK on success, others on failure. + */ + int32_t CancelApplicationAutoStartupByEDM(const std::vector &infoList, bool flag); + /** * @class ClientDeathRecipient * notices IRemoteBroker died. diff --git a/services/abilitymgr/include/ability_manager_proxy.h b/services/abilitymgr/include/ability_manager_proxy.h index 2cecc01f342b241e094fb5b3047d07888917da9e..4db50c498b06633af807380e51c0743831f49d1f 100644 --- a/services/abilitymgr/include/ability_manager_proxy.h +++ b/services/abilitymgr/include/ability_manager_proxy.h @@ -1100,6 +1100,22 @@ public: */ int32_t CancelApplicationAutoStartupByEDM(const AutoStartupInfo &info, bool flag) override; + /** + * @brief Set applications auto start up state by EDM. + * @param infoList The auto startup info vector list. + * @param flag Indicate whether to allow the application to change the auto start up state. + * @return Returns ERR_OK on success, others on failure. + */ + int32_t SetApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) override; + + /** + * @brief Cancel applications auto start up state by EDM. + * @param infoList The auto startup info vector list. + * @param flag Indicate whether to allow the application to change the auto start up state. + * @return Returns ERR_OK on success, others on failure. + */ + int32_t CancelApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) override; + /** * @brief Get foreground ui abilities. * @param list Foreground ui abilities. diff --git a/services/abilitymgr/include/ability_manager_service.h b/services/abilitymgr/include/ability_manager_service.h index 3fe76ce5c450260bf934f983f87fc0f04f10e6d8..53fcfac8a8f2b90dca1eab97ddd4f83fbbf7098a 100644 --- a/services/abilitymgr/include/ability_manager_service.h +++ b/services/abilitymgr/include/ability_manager_service.h @@ -1446,6 +1446,22 @@ public: */ int32_t CancelApplicationAutoStartupByEDM(const AutoStartupInfo &info, bool flag) override; + /** + * @brief Set applications auto start up state by EDM. + * @param infoList The auto startup info vector list. + * @param flag Indicate whether to allow the application to change the auto start up state. + * @return Returns ERR_OK on success, others on failure. + */ + int32_t SetApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) override; + + /** + * @brief Cancel applications auto start up state by EDM. + * @param infoList The auto startup info vector list. + * @param flag Indicate whether to allow the application to change the auto start up state. + * @return Returns ERR_OK on success, others on failure. + */ + int32_t CancelApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) override; + /** * @brief Get foreground ui abilities. * @param list Foreground ui abilities. diff --git a/services/abilitymgr/include/ability_manager_stub.h b/services/abilitymgr/include/ability_manager_stub.h index e5d20fcfcc72b0a736365bdb556da84d80b06efb..005c115dbb6c3e632d6d6ae96757d387316244d9 100644 --- a/services/abilitymgr/include/ability_manager_stub.h +++ b/services/abilitymgr/include/ability_manager_stub.h @@ -273,6 +273,8 @@ private: int32_t SetApplicationAutoStartupByEDMInner(MessageParcel &data, MessageParcel &reply); int32_t CancelApplicationAutoStartupByEDMInner(MessageParcel &data, MessageParcel &reply); + int32_t BatchSetApplicationAutoStartupByEDMInner(MessageParcel &data, MessageParcel &reply); + int32_t BatchCancelApplicationAutoStartupByEDMInner(MessageParcel &data, MessageParcel &reply); int32_t IsAbilityControllerStartInner(MessageParcel &data, MessageParcel &reply); int32_t OpenFileInner(MessageParcel &data, MessageParcel &reply); diff --git a/services/abilitymgr/src/ability_auto_startup_client.cpp b/services/abilitymgr/src/ability_auto_startup_client.cpp index bd13ba60f6b315b3a6b08e5c9f07015dbc5bea8f..e19f1ed1c98bba913a18cbd121522360317a3f61 100644 --- a/services/abilitymgr/src/ability_auto_startup_client.cpp +++ b/services/abilitymgr/src/ability_auto_startup_client.cpp @@ -107,6 +107,24 @@ ErrCode AbilityAutoStartupClient::CancelApplicationAutoStartupByEDM(const AutoSt return abms->CancelApplicationAutoStartupByEDM(info, flag); } +ErrCode AbilityAutoStartupClient::SetApplicationAutoStartupByEDM( + const std::vector &infoList, bool flag) +{ + HILOG_DEBUG("Called."); + auto abms = GetAbilityManager(); + CHECK_POINTER_RETURN_NOT_CONNECTED(abms); + return abms->SetApplicationAutoStartupByEDM(infoList, flag); +} + +ErrCode AbilityAutoStartupClient::CancelApplicationAutoStartupByEDM( + const std::vector &infoList, bool flag) +{ + HILOG_DEBUG("Called."); + auto abms = GetAbilityManager(); + CHECK_POINTER_RETURN_NOT_CONNECTED(abms); + return abms->CancelApplicationAutoStartupByEDM(infoList, flag); +} + ErrCode AbilityAutoStartupClient::QueryAllAutoStartupApplications(std::vector &infoList) { HILOG_DEBUG("Called."); diff --git a/services/abilitymgr/src/ability_auto_startup_data_manager.cpp b/services/abilitymgr/src/ability_auto_startup_data_manager.cpp index e6c41bce49d57277e6f2782d6cebe1a928a69499..0141058621dedd90da1aec772e3eaafeafa5c235 100644 --- a/services/abilitymgr/src/ability_auto_startup_data_manager.cpp +++ b/services/abilitymgr/src/ability_auto_startup_data_manager.cpp @@ -269,7 +269,8 @@ AutoStartupStatus AbilityAutoStartupDataManager::QueryAutoStartupData(const Auto return asustatus; } -int32_t AbilityAutoStartupDataManager::QueryAllAutoStartupApplications(std::vector &infoList) +int32_t AbilityAutoStartupDataManager::QueryAllAutoStartupApplications(std::vector &infoList, + bool isQueryEdmList) { HILOG_DEBUG("Called."); { @@ -290,7 +291,8 @@ int32_t AbilityAutoStartupDataManager::QueryAllAutoStartupApplications(std::vect for (const auto &item : allEntries) { bool isAutoStartup, isEdmForce; ConvertAutoStartupStatusFromValue(item.value, isAutoStartup, isEdmForce); - if (isAutoStartup) { + if ((isQueryEdmList && isAutoStartup && isEdmForce) || + ((!isQueryEdmList && isAutoStartup))) { infoList.emplace_back(ConvertAutoStartupInfoFromKeyAndValue(item.key, item.value)); } } diff --git a/services/abilitymgr/src/ability_auto_startup_service.cpp b/services/abilitymgr/src/ability_auto_startup_service.cpp index 28f40e0351140ae90f09971aae599d808c37e859..6153881757636f1a5f6c315a04b3fa8bf76ec13a 100644 --- a/services/abilitymgr/src/ability_auto_startup_service.cpp +++ b/services/abilitymgr/src/ability_auto_startup_service.cpp @@ -228,10 +228,10 @@ int32_t AbilityAutoStartupService::QueryAllAutoStartupApplicationsWithoutPermiss { HILOG_DEBUG("Called."); if (!system::GetBoolParameter(PRODUCT_APPBOOT_SETTING_ENABLED, false)) { - HILOG_ERROR("Product configuration item is disable."); - return ERR_NOT_SUPPORTED_PRODUCT_TYPE; + HILOG_DEBUG("Query EDM auto start up info list."); + return DelayedSingleton::GetInstance()->QueryAllAutoStartupApplications( + infoList, true); } - return DelayedSingleton::GetInstance()->QueryAllAutoStartupApplications(infoList); } @@ -777,6 +777,62 @@ int32_t AbilityAutoStartupService::CancelApplicationAutoStartupByEDM(const AutoS return InnerApplicationAutoStartupByEDM(fullInfo, false, flag); } +int32_t AbilityAutoStartupService::SetApplicationAutoStartupByEDM( + const std::vector &infoList, bool flag) +{ + int32_t errorCode = CheckPermissionForEDM(); + if (errorCode != ERR_OK) { + HILOG_ERROR("Permission denied."); + return errorCode; + } + int32_t tempErrorCode = ERR_OK; + for (auto info : infoList) { + std::string typeName; + tempErrorCode = GetAbilityInfo(info, typeName); + if (tempErrorCode != ERR_OK) { + HILOG_ERROR("Get ability info failed, bundleName:%{public}s,moduleName:%{public}s,abilityName:%{public}s," + "flag:%{public}d.", info.bundleName.c_str(), info.moduleName.c_str(), info.abilityName.c_str(), flag); + errorCode = tempErrorCode; + continue; + } + info.abilityTypeName = typeName; + tempErrorCode = InnerApplicationAutoStartupByEDM(info, true, flag); + if (tempErrorCode != ERR_OK) { + HILOG_ERROR("Failed to update the database."); + errorCode = tempErrorCode; + } + } + return errorCode; +} + +int32_t AbilityAutoStartupService::CancelApplicationAutoStartupByEDM( + const std::vector &infoList, bool flag) +{ + int32_t errorCode = CheckPermissionForEDM(); + if (errorCode != ERR_OK) { + HILOG_ERROR("Permission denied."); + return errorCode; + } + int32_t tempErrorCode = ERR_OK; + for (auto info : infoList) { + std::string typeName; + tempErrorCode = GetAbilityInfo(info, typeName); + if (tempErrorCode != ERR_OK) { + HILOG_ERROR("Get ability info failed, bundleName:%{public}s,moduleName:%{public}s,abilityName:%{public}s," + "flag:%{public}d.", info.bundleName.c_str(), info.moduleName.c_str(), info.abilityName.c_str(), flag); + errorCode = tempErrorCode; + continue; + } + info.abilityTypeName = typeName; + tempErrorCode = InnerApplicationAutoStartupByEDM(info, false, flag); + if (tempErrorCode != ERR_OK) { + HILOG_ERROR("Failed to update the database."); + errorCode = tempErrorCode; + } + } + return errorCode; +} + int32_t AbilityAutoStartupService::InnerApplicationAutoStartupByEDM(const AutoStartupInfo &info, bool isSet, bool flag) { HILOG_DEBUG("Called, bundleName: %{public}s, moduleName: %{public}s, abilityName: %{public}s, isSet: %{public}d.," diff --git a/services/abilitymgr/src/ability_manager_proxy.cpp b/services/abilitymgr/src/ability_manager_proxy.cpp index 23e3a36395b99c6d224d1da86856bd76de357ec3..adc93a950d8b047b3e44aa5809d44cbbbdf7b030 100644 --- a/services/abilitymgr/src/ability_manager_proxy.cpp +++ b/services/abilitymgr/src/ability_manager_proxy.cpp @@ -4841,5 +4841,85 @@ int32_t AbilityManagerProxy::CancelApplicationAutoStartupByEDM(const AutoStartup } return reply.ReadInt32(); } + +int32_t AbilityManagerProxy::SetApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) +{ + int32_t num = infoList.size(); + if (num > MAX_AUTO_STARTUP_COUNT) { + HILOG_ERROR("infoList is too large."); + return ERR_INVALID_VALUE; + } + + MessageParcel data; + if (!WriteInterfaceToken(data)) { + HILOG_ERROR("Write interface token failed."); + return INNER_ERR; + } + if (!data.WriteInt32(num)) { + HILOG_ERROR("Write num failed."); + return INNER_ERR; + } + for (auto i = 0; i < num; ++i) { + if (!data.WriteParcelable(&infoList.at(i))) { + HILOG_ERROR("Write AutoStartupInfo failed."); + return INNER_ERR; + } + } + + if (!data.WriteBool(flag)) { + HILOG_ERROR("Write flag failed."); + return INNER_ERR; + } + + MessageParcel reply; + MessageOption option; + auto ret = SendRequest( + AbilityManagerInterfaceCode::BATCH_SET_APPLICATION_AUTO_STARTUP_BY_EDM, data, reply, option); + if (ret != NO_ERROR) { + HILOG_ERROR("Send request error: %{public}d.", ret); + return ret; + } + return reply.ReadInt32(); +} + +int32_t AbilityManagerProxy::CancelApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) +{ + int32_t num = infoList.size(); + if (num > MAX_AUTO_STARTUP_COUNT) { + HILOG_ERROR("infoList is too large."); + return ERR_INVALID_VALUE; + } + + MessageParcel data; + if (!WriteInterfaceToken(data)) { + HILOG_ERROR("Write interface token failed."); + return INNER_ERR; + } + if (!data.WriteInt32(num)) { + HILOG_ERROR("Write num failed."); + return INNER_ERR; + } + for (auto i = 0; i < num; ++i) { + if (!data.WriteParcelable(&infoList.at(i))) { + HILOG_ERROR("Write AutoStartupInfo failed."); + return INNER_ERR; + } + } + + if (!data.WriteBool(flag)) { + HILOG_ERROR("Write flag failed."); + return INNER_ERR; + } + + MessageParcel reply; + MessageOption option; + auto ret = SendRequest( + AbilityManagerInterfaceCode::BATCH_CANCEL_APPLICATION_AUTO_STARTUP_BY_EDM, data, reply, option); + if (ret != NO_ERROR) { + HILOG_ERROR("Send request error: %{public}d.", ret); + return ret; + } + return reply.ReadInt32(); +} } // namespace AAFwk } // namespace OHOS diff --git a/services/abilitymgr/src/ability_manager_service.cpp b/services/abilitymgr/src/ability_manager_service.cpp index b7e5befc8052c2bcfe5abe8803a8433298d676ce..6f1791b97be134ea775f666a6d6a62d1bc7f4e3a 100644 --- a/services/abilitymgr/src/ability_manager_service.cpp +++ b/services/abilitymgr/src/ability_manager_service.cpp @@ -9393,6 +9393,25 @@ int32_t AbilityManagerService::CancelApplicationAutoStartupByEDM(const AutoStart return abilityAutoStartupService_->CancelApplicationAutoStartupByEDM(info, flag); } +int32_t AbilityManagerService::SetApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) +{ + if (abilityAutoStartupService_ == nullptr) { + HILOG_ERROR("abilityAutoStartupService_ is nullptr."); + return ERR_NO_INIT; + } + return abilityAutoStartupService_->SetApplicationAutoStartupByEDM(infoList, flag); +} + +int32_t AbilityManagerService::CancelApplicationAutoStartupByEDM( + const std::vector &infoList, bool flag) +{ + if (abilityAutoStartupService_ == nullptr) { + HILOG_ERROR("abilityAutoStartupService_ is nullptr."); + return ERR_NO_INIT; + } + return abilityAutoStartupService_->CancelApplicationAutoStartupByEDM(infoList, flag); +} + int32_t AbilityManagerService::GetForegroundUIAbilities(std::vector &list) { HILOG_DEBUG("Called."); diff --git a/services/abilitymgr/src/ability_manager_stub.cpp b/services/abilitymgr/src/ability_manager_stub.cpp index 0af466862a058674f61a7f473bb27250e78f53c1..6a1f6a9e874519cb610f8a0c6d2932f43d28e861 100644 --- a/services/abilitymgr/src/ability_manager_stub.cpp +++ b/services/abilitymgr/src/ability_manager_stub.cpp @@ -33,6 +33,7 @@ using AutoStartupInfo = AbilityRuntime::AutoStartupInfo; namespace { const std::u16string extensionDescriptor = u"ohos.aafwk.ExtensionManager"; constexpr int32_t CYCLE_LIMIT = 1000; +constexpr int32_t MAX_AUTO_STARTUP_COUNT = 100; } // namespace AbilityManagerStub::AbilityManagerStub() { @@ -403,6 +404,10 @@ void AbilityManagerStub::FourthStepInit() &AbilityManagerStub::SetApplicationAutoStartupByEDMInner; requestFuncMap_[static_cast(AbilityManagerInterfaceCode::CANCEL_APPLICATION_AUTO_STARTUP_BY_EDM)] = &AbilityManagerStub::CancelApplicationAutoStartupByEDMInner; + requestFuncMap_[static_cast(AbilityManagerInterfaceCode::BATCH_SET_APPLICATION_AUTO_STARTUP_BY_EDM)] = + &AbilityManagerStub::BatchSetApplicationAutoStartupByEDMInner; + requestFuncMap_[static_cast(AbilityManagerInterfaceCode::BATCH_CANCEL_APPLICATION_AUTO_STARTUP_BY_EDM)] = + &AbilityManagerStub::BatchCancelApplicationAutoStartupByEDMInner; requestFuncMap_[static_cast(AbilityManagerInterfaceCode::GET_FOREGROUND_UI_ABILITIES)] = &AbilityManagerStub::GetForegroundUIAbilitiesInner; } @@ -2992,6 +2997,49 @@ int32_t AbilityManagerStub::CancelApplicationAutoStartupByEDMInner(MessageParcel return reply.WriteInt32(result); } +int32_t AbilityManagerStub::BatchSetApplicationAutoStartupByEDMInner(MessageParcel &data, MessageParcel &reply) +{ + int32_t num = data.ReadInt32(); + if (num > MAX_AUTO_STARTUP_COUNT) { + HILOG_ERROR("infoList is too large."); + return ERR_INVALID_VALUE; + } + std::vector infoList; + for (int32_t i = 0; i < num; ++i) { + sptr info = data.ReadParcelable(); + if (info == nullptr) { + HILOG_ERROR("Info is nullptr."); + return ERR_INVALID_VALUE; + } + infoList.emplace_back(*info); + } + + auto flag = data.ReadBool(); + int32_t result = SetApplicationAutoStartupByEDM(infoList, flag); + return reply.WriteInt32(result); +} + +int32_t AbilityManagerStub::BatchCancelApplicationAutoStartupByEDMInner(MessageParcel &data, MessageParcel &reply) +{ + int32_t num = data.ReadInt32(); + if (num > MAX_AUTO_STARTUP_COUNT) { + HILOG_ERROR("infoList is too large."); + return ERR_INVALID_VALUE; + } + std::vector infoList; + for (int32_t i = 0; i < num; ++i) { + sptr info = data.ReadParcelable(); + if (info == nullptr) { + HILOG_ERROR("Info is nullptr."); + return ERR_INVALID_VALUE; + } + infoList.emplace_back(*info); + } + auto flag = data.ReadBool(); + int32_t result = CancelApplicationAutoStartupByEDM(infoList, flag); + return reply.WriteInt32(result); +} + int32_t AbilityManagerStub::OpenFileInner(MessageParcel &data, MessageParcel &reply) { std::unique_ptr uri(data.ReadParcelable()); diff --git a/test/mock/frameworks_kits_ability_ability_runtime_test/AMS/mock_serviceability_manager_service.h b/test/mock/frameworks_kits_ability_ability_runtime_test/AMS/mock_serviceability_manager_service.h index c7fad515df67eeefae74e24e53450dc164ff9356..d98126d146dbe95b50efa1dada9242848583f8ec 100644 --- a/test/mock/frameworks_kits_ability_ability_runtime_test/AMS/mock_serviceability_manager_service.h +++ b/test/mock/frameworks_kits_ability_ability_runtime_test/AMS/mock_serviceability_manager_service.h @@ -325,6 +325,16 @@ public: return 0; } + int32_t SetApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) override + { + return 0; + } + + int32_t CancelApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) override + { + return 0; + } + void CompleteFirstFrameDrawing(const sptr& abilityToken) override {} #ifdef ABILITY_COMMAND_FOR_TEST diff --git a/test/mock/frameworks_kits_ability_native_test/include/mock_ability_manager_service.h b/test/mock/frameworks_kits_ability_native_test/include/mock_ability_manager_service.h index c7a8c0f741197cf27667915e523845a62e816310..f4c93739fcfedfae34193a4472fca36c1f0af4f0 100644 --- a/test/mock/frameworks_kits_ability_native_test/include/mock_ability_manager_service.h +++ b/test/mock/frameworks_kits_ability_native_test/include/mock_ability_manager_service.h @@ -294,6 +294,16 @@ public: return 0; } + int32_t SetApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) override + { + return 0; + } + + int32_t CancelApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) override + { + return 0; + } + void CompleteFirstFrameDrawing(const sptr& abilityToken) override {} void CallRequestDone(const sptr& token, const sptr& callStub) override {} diff --git a/test/mock/frameworks_kits_appkit_native_test/ability_delegator/mock_ability_delegator_stub.h b/test/mock/frameworks_kits_appkit_native_test/ability_delegator/mock_ability_delegator_stub.h index 40f4094a17eff025e323a7d8de9d0b06f5db8217..a6f825fa9cee896e1ed2065d890785dfe203ffe0 100644 --- a/test/mock/frameworks_kits_appkit_native_test/ability_delegator/mock_ability_delegator_stub.h +++ b/test/mock/frameworks_kits_appkit_native_test/ability_delegator/mock_ability_delegator_stub.h @@ -172,6 +172,16 @@ public: return 0; } + int32_t SetApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) override + { + return 0; + } + + int32_t CancelApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) override + { + return 0; + } + virtual int32_t GetForegroundUIAbilities(std::vector &list) { return 0; @@ -356,6 +366,16 @@ public: { return 0; } + + int32_t SetApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) override + { + return 0; + } + + int32_t CancelApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) override + { + return 0; + } #ifdef ABILITY_COMMAND_FOR_TEST int ForceTimeoutForTest(const std::string& abilityName, const std::string& state) override; #endif diff --git a/test/mock/frameworks_kits_appkit_test/include/mock_ability_mgr_service.h b/test/mock/frameworks_kits_appkit_test/include/mock_ability_mgr_service.h index 6282af7d3674b6abe55a59331d8fb27b382a0cbb..d014fcb89e01ae0cb0277297e4de4f1e63fe34b0 100644 --- a/test/mock/frameworks_kits_appkit_test/include/mock_ability_mgr_service.h +++ b/test/mock/frameworks_kits_appkit_test/include/mock_ability_mgr_service.h @@ -132,6 +132,16 @@ public: return 0; } + int32_t SetApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) override + { + return 0; + } + + int32_t CancelApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) override + { + return 0; + } + #ifdef ABILITY_COMMAND_FOR_TEST virtual int ForceTimeoutForTest(const std::string& abilityName, const std::string& state) override { diff --git a/test/mock/frameworks_kits_test/AMS/mock_ability_manager_service.h b/test/mock/frameworks_kits_test/AMS/mock_ability_manager_service.h index 76345ce5fb38fdce00f765c87b8a80fdbf722159..220e785e79daa73bd2f2f4048f064b7ff8eb39e3 100644 --- a/test/mock/frameworks_kits_test/AMS/mock_ability_manager_service.h +++ b/test/mock/frameworks_kits_test/AMS/mock_ability_manager_service.h @@ -285,6 +285,16 @@ public: return 0; } + int32_t SetApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) override + { + return 0; + } + + int32_t CancelApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) override + { + return 0; + } + void CompleteFirstFrameDrawing(const sptr& abilityToken) override {} void CallRequestDone(const sptr &token, const sptr &callStub) override {} diff --git a/test/mock/frameworks_kits_test/AMS/mock_serviceability_manager_service.h b/test/mock/frameworks_kits_test/AMS/mock_serviceability_manager_service.h index 57db50c51270b6f1c4aa078b6248eecd0376316c..0205323fb6a562a0a5727d2bdb5404fe42263eb2 100644 --- a/test/mock/frameworks_kits_test/AMS/mock_serviceability_manager_service.h +++ b/test/mock/frameworks_kits_test/AMS/mock_serviceability_manager_service.h @@ -303,6 +303,16 @@ public: return 0; } + int32_t SetApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) override + { + return 0; + } + + int32_t CancelApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) override + { + return 0; + } + void CompleteFirstFrameDrawing(const sptr& abilityToken) override {} #ifdef ABILITY_COMMAND_FOR_TEST diff --git a/test/moduletest/mock/include/appmgr/mock_ability_mgr_host.h b/test/moduletest/mock/include/appmgr/mock_ability_mgr_host.h index ebc0a7ce687f1f8400403245f7031974c81d0a82..5d70a08926170005e2204d6d79703c5ce7b6c2db 100644 --- a/test/moduletest/mock/include/appmgr/mock_ability_mgr_host.h +++ b/test/moduletest/mock/include/appmgr/mock_ability_mgr_host.h @@ -334,6 +334,16 @@ public: return 0; } + int32_t SetApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) override + { + return 0; + } + + int32_t CancelApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) override + { + return 0; + } + #ifdef ABILITY_COMMAND_FOR_TEST virtual int ForceTimeoutForTest(const std::string& abilityName, const std::string& state) override { diff --git a/test/moduletest/mock/include/mock_ability_mgr_service.h b/test/moduletest/mock/include/mock_ability_mgr_service.h index ec1f2ba5ceeb47a25d970850806fb5d261faf75d..84397be1b4af8a9bd45b0d41b04da37b90bb0dfa 100644 --- a/test/moduletest/mock/include/mock_ability_mgr_service.h +++ b/test/moduletest/mock/include/mock_ability_mgr_service.h @@ -270,6 +270,16 @@ public: return 0; } + int32_t SetApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) override + { + return 0; + } + + int32_t CancelApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) override + { + return 0; + } + #ifdef ABILITY_COMMAND_FOR_TEST virtual int ForceTimeoutForTest(const std::string& abilityName, const std::string& state) override { diff --git a/test/unittest/ability_auto_startup_service_test/ability_auto_startup_service_test.cpp b/test/unittest/ability_auto_startup_service_test/ability_auto_startup_service_test.cpp index 347348aa5340d2f2afe9b2aa6435df29b8836df1..95b1c40a411af2f0ab687205d9f6f686a1399f3f 100644 --- a/test/unittest/ability_auto_startup_service_test/ability_auto_startup_service_test.cpp +++ b/test/unittest/ability_auto_startup_service_test/ability_auto_startup_service_test.cpp @@ -236,7 +236,7 @@ HWTEST_F(AbilityAutoStartupServiceTest, QueryAllAutoStartupApplicationsWithoutPe auto abilityAutoStartupService = std::make_shared(); std::vector infoList; auto result = abilityAutoStartupService->QueryAllAutoStartupApplicationsWithoutPermission(infoList); - EXPECT_EQ(result, ERR_NOT_SUPPORTED_PRODUCT_TYPE); + EXPECT_EQ(result, ERR_OK); GTEST_LOG_(INFO) << "AbilityAutoStartupServiceTest QueryAllAutoStartupApplicationsWithoutPermission_001 end"; } @@ -767,5 +767,51 @@ HWTEST_F(AbilityAutoStartupServiceTest, CheckPermissionForEDM_001, TestSize.Leve EXPECT_EQ(result, ERR_OK); GTEST_LOG_(INFO) << "AbilityAutoStartupServiceTest CheckPermissionForEDM_001 end"; } + +/* + * Feature: AbilityAutoStartupService + * Function: SetApplicationAutoStartupByEDM + * SubFunction: NA + * FunctionPoints: AbilityAutoStartupService SetApplicationAutoStartupByEDM + */ +HWTEST_F(AbilityAutoStartupServiceTest, BatchSetApplicationAutoStartupByEDM_001, TestSize.Level1) +{ + GTEST_LOG_(INFO) << "AbilityAutoStartupServiceTest SetApplicationAutoStartupByEDM_001 start"; + SetNativeToken(); + MyFlag::flag_ = 1; + auto abilityAutoStartupService = std::make_shared(); + AutoStartupInfo info; + info.abilityName = "abilityName"; + info.bundleName = "bundleName"; + std::vector infoList; + infoList.push_back(info); + bool flag = false; + auto result = abilityAutoStartupService->SetApplicationAutoStartupByEDM(infoList, flag); + EXPECT_EQ(result, INNER_ERR); + GTEST_LOG_(INFO) << "AbilityAutoStartupServiceTest SetApplicationAutoStartupByEDM_001 end"; +} + +/* + * Feature: AbilityAutoStartupService + * Function: CancelApplicationAutoStartupByEDM + * SubFunction: NA + * FunctionPoints: AbilityAutoStartupService CancelApplicationAutoStartupByEDM + */ +HWTEST_F(AbilityAutoStartupServiceTest, BatchCancelApplicationAutoStartupByEDM_001, TestSize.Level1) +{ + GTEST_LOG_(INFO) << "AbilityAutoStartupServiceTest CancelApplicationAutoStartupByEDM_001 start"; + SetNativeToken(); + MyFlag::flag_ = 1; + auto abilityAutoStartupService = std::make_shared(); + AutoStartupInfo info; + info.abilityName = "abilityName"; + info.bundleName = "bundleName"; + std::vector infoList; + infoList.push_back(info); + bool flag = false; + auto result = abilityAutoStartupService->CancelApplicationAutoStartupByEDM(infoList, flag); + EXPECT_EQ(result, INNER_ERR); + GTEST_LOG_(INFO) << "AbilityAutoStartupServiceTest CancelApplicationAutoStartupByEDM_001 end"; +} } // namespace AAFwk } // namespace OHOS diff --git a/test/unittest/ability_manager_client_branch_test/ability_manager_stub_mock_test.h b/test/unittest/ability_manager_client_branch_test/ability_manager_stub_mock_test.h index 0a8bf0a2f8c5f08a21070e395c651e9affde6bf0..b73e5e420a8fe341cae9e22c69c6c35add19d9d2 100644 --- a/test/unittest/ability_manager_client_branch_test/ability_manager_stub_mock_test.h +++ b/test/unittest/ability_manager_client_branch_test/ability_manager_stub_mock_test.h @@ -425,6 +425,16 @@ public: return 0; } + int32_t SetApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) override + { + return 0; + } + + int32_t CancelApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) override + { + return 0; + } + #ifdef ABILITY_COMMAND_FOR_TEST int ForceTimeoutForTest(const std::string& abilityName, const std::string& state) override { diff --git a/test/unittest/ability_manager_proxy_test/ability_manager_stub_mock.h b/test/unittest/ability_manager_proxy_test/ability_manager_stub_mock.h index cd7627ade28f2bcfc1cbf0cbda4d313fed98ca78..c10c48d4af43009f52787470f11bab286f75f41b 100644 --- a/test/unittest/ability_manager_proxy_test/ability_manager_stub_mock.h +++ b/test/unittest/ability_manager_proxy_test/ability_manager_stub_mock.h @@ -410,6 +410,16 @@ public: return 0; } + int32_t SetApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) override + { + return 0; + } + + int32_t CancelApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) override + { + return 0; + } + #ifdef ABILITY_COMMAND_FOR_TEST int ForceTimeoutForTest(const std::string& abilityName, const std::string& state) override { diff --git a/test/unittest/ability_manager_stub_test/ability_manager_stub_impl_mock.h b/test/unittest/ability_manager_stub_test/ability_manager_stub_impl_mock.h index dfd3e9bffabb847e96b1df5eb4c214df871cece9..b986dfd230caa333c8816589bd2b3ac6ccf52c5c 100644 --- a/test/unittest/ability_manager_stub_test/ability_manager_stub_impl_mock.h +++ b/test/unittest/ability_manager_stub_test/ability_manager_stub_impl_mock.h @@ -408,6 +408,16 @@ public: return 0; } + int32_t SetApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) override + { + return 0; + } + + int32_t CancelApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) override + { + return 0; + } + int32_t GetForegroundUIAbilities(std::vector &list) override { AppExecFwk::AbilityStateData abilityStateDataOne; diff --git a/test/unittest/ability_manager_test/ability_manager_stub_mock.h b/test/unittest/ability_manager_test/ability_manager_stub_mock.h index 296ea023ea7aa451ddd08ee714cb0ce5268094ae..645319ea89aeb28c7f835b209c2e6058396df456 100644 --- a/test/unittest/ability_manager_test/ability_manager_stub_mock.h +++ b/test/unittest/ability_manager_test/ability_manager_stub_mock.h @@ -411,6 +411,16 @@ public: return 0; } + int32_t SetApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) override + { + return 0; + } + + int32_t CancelApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) override + { + return 0; + } + #ifdef ABILITY_COMMAND_FOR_TEST int ForceTimeoutForTest(const std::string& abilityName, const std::string& state) override { diff --git a/test/unittest/service_extension_context_test/ability_manager_stub_mock.h b/test/unittest/service_extension_context_test/ability_manager_stub_mock.h index e3fd50ae28e75f141bd76b840980233fdbf0aaa8..0f2571f4c5349b82af432fa5e99296988e3a8054 100644 --- a/test/unittest/service_extension_context_test/ability_manager_stub_mock.h +++ b/test/unittest/service_extension_context_test/ability_manager_stub_mock.h @@ -402,6 +402,16 @@ public: return 0; } + int32_t SetApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) override + { + return 0; + } + + int32_t CancelApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) override + { + return 0; + } + #ifdef ABILITY_COMMAND_FOR_TEST int ForceTimeoutForTest(const std::string& abilityName, const std::string& state) override { diff --git a/test/unittest/sys_mgr_client_test/mock_ability_manager_service.h b/test/unittest/sys_mgr_client_test/mock_ability_manager_service.h index e438aaf73197586aef2325b5a8d096756e3a4455..f7f22471dd1f64df14ea1167b271e1ad36162e57 100644 --- a/test/unittest/sys_mgr_client_test/mock_ability_manager_service.h +++ b/test/unittest/sys_mgr_client_test/mock_ability_manager_service.h @@ -275,6 +275,16 @@ public: return 0; } + int32_t SetApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) override + { + return 0; + } + + int32_t CancelApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) override + { + return 0; + } + void CompleteFirstFrameDrawing(const sptr& abilityToken) override {} void CallRequestDone(const sptr &token, const sptr &callStub) override {} diff --git a/tools/test/mock/mock_ability_manager_stub.h b/tools/test/mock/mock_ability_manager_stub.h index cde17cabd43dbf8361c0596ed89792e67a079d79..276117dd0987a1edba83ad9836536793afa839ba 100644 --- a/tools/test/mock/mock_ability_manager_stub.h +++ b/tools/test/mock/mock_ability_manager_stub.h @@ -269,6 +269,16 @@ public: return 0; } + int32_t SetApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) override + { + return 0; + } + + int32_t CancelApplicationAutoStartupByEDM(const std::vector &infoList, bool flag) override + { + return 0; + } + #ifdef ABILITY_COMMAND_FOR_TEST MOCK_METHOD2(ForceTimeoutForTest, int(const std::string& abilityName, const std::string& state));