1 /* 2 * Copyright (c) 2021-2024 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef MOCK_OHOS_ABILITY_RUNTIME_MOCK_AMS_MGR_SCHEDULER_H 17 #define MOCK_OHOS_ABILITY_RUNTIME_MOCK_AMS_MGR_SCHEDULER_H 18 19 #include "gmock/gmock.h" 20 #include "ams_mgr_scheduler.h" 21 22 namespace OHOS { 23 namespace AbilityRuntime { 24 struct LoadParam; 25 } 26 namespace AppExecFwk { 27 class MockAmsMgrScheduler : public AmsMgrStub { 28 public: 29 MOCK_METHOD4(LoadAbility, 30 void(const std::shared_ptr<AbilityInfo>& abilityInfo, const std::shared_ptr<ApplicationInfo>& appInfo, 31 const std::shared_ptr<AAFwk::Want>& want, std::shared_ptr<AbilityRuntime::LoadParam> loadParam)); 32 MOCK_METHOD5(AbilityBehaviorAnalysis, 33 void(const sptr<OHOS::IRemoteObject>& token, const sptr<OHOS::IRemoteObject>& preToken, 34 const int32_t visibility, const int32_t perceptibility, const int32_t connectionState)); 35 MOCK_METHOD2(TerminateAbility, void(const sptr<IRemoteObject>& token, bool clearMissionFlag)); 36 MOCK_METHOD2(UpdateAbilityState, void(const sptr<IRemoteObject>& token, const AbilityState state)); 37 MOCK_METHOD0(Reset, void()); 38 MOCK_METHOD1(KillProcessByAbilityToken, void(const sptr<IRemoteObject>& token)); 39 MOCK_METHOD1(KillProcessesByUserId, void(int32_t userId)); 40 MOCK_METHOD3(KillProcessWithAccount, int(const std::string&, const int, const bool clearPageStack)); 41 MOCK_METHOD1(KillProcessesInBatch, int(const std::vector<int32_t> &pids)); 42 MOCK_METHOD2(UpdateApplicationInfoInstalled, int(const std::string&, const int uid)); 43 MOCK_METHOD2(KillApplication, int32_t(const std::string& bundleName, const bool clearPageStack)); 44 MOCK_METHOD3(ForceKillApplication, int32_t(const std::string& appName, const int userId, const int appIndex)); 45 MOCK_METHOD1(KillProcessesByAccessTokenId, int32_t(const uint32_t accessTokenId)); 46 MOCK_METHOD3(KillApplicationByUid, int(const std::string&, const int uid, const std::string&)); 47 MOCK_METHOD0(IsReady, bool()); 48 MOCK_METHOD1(AbilityAttachTimeOut, void(const sptr<IRemoteObject>& token)); 49 MOCK_METHOD2(PrepareTerminate, void(const sptr<IRemoteObject>& token, bool clearMissionFlag)); 50 MOCK_METHOD2(GetRunningProcessInfoByToken, 51 void(const sptr<IRemoteObject>& token, OHOS::AppExecFwk::RunningProcessInfo& info)); 52 MOCK_METHOD1(SetAbilityForegroundingFlagToAppRecord, void(const pid_t pid)); 53 MOCK_METHOD3(StartSpecifiedAbility, void(const AAFwk::Want&, const AppExecFwk::AbilityInfo&, int32_t)); 54 MOCK_METHOD3(StartSpecifiedProcess, void(const AAFwk::Want&, const AppExecFwk::AbilityInfo&, int32_t)); 55 MOCK_METHOD1(RegisterStartSpecifiedAbilityResponse, void(const sptr<IStartSpecifiedAbilityResponse>& response)); 56 MOCK_METHOD3(GetApplicationInfoByProcessID, int(const int pid, AppExecFwk::ApplicationInfo& application, 57 bool& debug)); 58 MOCK_METHOD3(NotifyAppMgrRecordExitReason, int32_t(int32_t pid, int32_t reason, const std::string &exitMsg)); 59 MOCK_METHOD3(GetBundleNameByPid, int32_t(const int pid, std::string &bundleName, int32_t &uid)); 60 MOCK_METHOD1(RegisterAppDebugListener, int32_t(const sptr<IAppDebugListener> &listener)); 61 MOCK_METHOD1(UnregisterAppDebugListener, int32_t(const sptr<IAppDebugListener> &listener)); 62 MOCK_METHOD1(AttachAppDebug, int32_t(const std::string &bundleName)); 63 MOCK_METHOD1(DetachAppDebug, int32_t(const std::string &bundleName)); 64 MOCK_METHOD1(RegisterAbilityDebugResponse, int32_t(const sptr<IAbilityDebugResponse> &response)); 65 MOCK_METHOD1(IsAttachDebug, bool(const std::string &bundleName)); 66 MOCK_METHOD2(SetAppWaitingDebug, int32_t(const std::string &bundleName, bool isPersist)); 67 MOCK_METHOD0(CancelAppWaitingDebug, int32_t()); 68 MOCK_METHOD1(GetWaitingDebugApp, int32_t(std::vector<std::string> &debugInfoList)); 69 MOCK_METHOD1(IsWaitingDebugApp, bool(const std::string &bundleName)); 70 MOCK_METHOD0(ClearNonPersistWaitingDebugFlag, void()); 71 MOCK_METHOD0(IsMemorySizeSufficent, bool()); 72 MockAmsMgrScheduler()73 MockAmsMgrScheduler() : AmsMgrStub() {}; ~MockAmsMgrScheduler()74 virtual ~MockAmsMgrScheduler() {}; RegisterAppStateCallback(const sptr<IAppStateCallback> & callback)75 virtual void RegisterAppStateCallback(const sptr<IAppStateCallback>& callback) override 76 { 77 callback->OnAbilityRequestDone(nullptr, AbilityState::ABILITY_STATE_BACKGROUND); 78 AppProcessData appProcessData; 79 callback->OnAppStateChanged(appProcessData); 80 } 81 82 MOCK_METHOD1(SetCurrentUserId, void(const int32_t userId)); 83 84 MOCK_METHOD4(SendRequest, int(uint32_t, MessageParcel&, MessageParcel&, MessageOption&)); 85 InvokeSendRequest(uint32_t code,MessageParcel & data,MessageParcel & reply,MessageOption & option)86 int InvokeSendRequest(uint32_t code, MessageParcel& data, MessageParcel& reply, MessageOption& option) 87 { 88 code_ = code; 89 90 return 0; 91 } 92 93 int code_ = 0; 94 }; 95 } // namespace AppExecFwk 96 } // namespace OHOS 97 98 #endif 99