1 /*
2  * Copyright (c) 2022-2023 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 OHOS_ABILITY_RUNTIME_MOCK_ABILITY_MANAGER_STUB_H
17 #define OHOS_ABILITY_RUNTIME_MOCK_ABILITY_MANAGER_STUB_H
18 
19 #include "gmock/gmock.h"
20 
21 #include "string_ex.h"
22 #include "ability_manager_errors.h"
23 #include "ability_manager_stub.h"
24 
25 namespace OHOS {
26 namespace AAFwk {
27 class MockAbilityManagerStub : public AbilityManagerStub {
28 public:
29     int StartAbility(const Want& want, int32_t userId = DEFAULT_INVAL_VALUE, int requestCode = -1);
30 
31     MOCK_METHOD4(StartAbility, int(const Want& want, const sptr<IRemoteObject>& callerToken,
32         int32_t userId, int requestCode));
33     MOCK_METHOD5(StartAbilityAsCaller, int(const Want &want, const sptr<IRemoteObject> &callerToken,
34         sptr<IRemoteObject> asCallerSourceToken, int32_t userId, int requestCode));
35     MOCK_METHOD3(TerminateAbility, int(const sptr<IRemoteObject>& token, int resultCode, const Want* resultWant));
36     MOCK_METHOD3(TerminateUIExtensionAbility, int(const sptr<SessionInfo> &extensionSessionInfo, int resultCode,
37         const Want* resultWant));
38     int CloseAbility(const sptr<IRemoteObject>& token, int resultCode = DEFAULT_INVAL_VALUE,
39         const Want* resultWant = nullptr) override
40     {
41         return 0;
42     }
43     int MinimizeAbility(const sptr<IRemoteObject>& token, bool fromUser = false) override
44     {
45         return 0;
46     }
47     int MinimizeUIExtensionAbility(const sptr<SessionInfo> &extensionSessionInfo, bool fromUser = false) override
48     {
49         return 0;
50     }
51     MOCK_METHOD4(ConnectAbility, int(const Want& want, const sptr<IAbilityConnection>& connect,
52         const sptr<IRemoteObject>& callerToken, int32_t userId));
53     MOCK_METHOD1(DisconnectAbility, int(sptr<IAbilityConnection> connect));
54     MOCK_METHOD3(AcquireDataAbility,
55         sptr<IAbilityScheduler>(const Uri& uri, bool tryBind, const sptr<IRemoteObject>& callerToken));
56     MOCK_METHOD2(
57         ReleaseDataAbility, int(sptr<IAbilityScheduler> dataAbilityScheduler, const sptr<IRemoteObject>& callerToken));
58     MOCK_METHOD2(AttachAbilityThread, int(const sptr<IAbilityScheduler>& scheduler, const sptr<IRemoteObject>& token));
59     MOCK_METHOD3(AbilityTransitionDone, int(const sptr<IRemoteObject>& token, int state, const PacMap&));
60     MOCK_METHOD2(
61         ScheduleConnectAbilityDone, int(const sptr<IRemoteObject>& token, const sptr<IRemoteObject>& remoteObject));
62     MOCK_METHOD1(ScheduleDisconnectAbilityDone, int(const sptr<IRemoteObject>& token));
63     MOCK_METHOD1(ScheduleCommandAbilityDone, int(const sptr<IRemoteObject>& token));
64     MOCK_METHOD4(ScheduleCommandAbilityWindowDone, int(const sptr<IRemoteObject> &token,
65         const sptr<SessionInfo> &sessionInfo, WindowCommand winCmd, AbilityCommand abilityCmd));
66 
67     void DumpState(const std::string& args, std::vector<std::string>& state);
68 
69     int StopServiceAbility(const Want& want, int32_t userId = DEFAULT_INVAL_VALUE,
70         const sptr<IRemoteObject> &token = nullptr);
71 
72     MOCK_METHOD2(KillProcess, int(const std::string& bundleName, const bool clearPageStack));
73     MOCK_METHOD2(UninstallApp, int(const std::string& bundleName, int32_t uid));
74     MOCK_METHOD3(UninstallApp, int32_t(const std::string& bundleName, int32_t uid, int32_t appIndex));
75 
76     MOCK_METHOD3(
77         GetWantSender, sptr<IWantSender>(const WantSenderInfo& wantSenderInfo, const sptr<IRemoteObject>& callerToken,
78         int32_t uid));
79     MOCK_METHOD2(SendWantSender, int(sptr<IWantSender> target, const SenderInfo& senderInfo));
80     MOCK_METHOD1(CancelWantSender, void(const sptr<IWantSender>& sender));
81     MOCK_METHOD1(GetPendingWantUid, int(const sptr<IWantSender>& target));
82     MOCK_METHOD1(GetPendingWantUserId, int(const sptr<IWantSender>& target));
83     MOCK_METHOD1(GetPendingWantBundleName, std::string(const sptr<IWantSender>& target));
84     MOCK_METHOD1(GetPendingWantCode, int(const sptr<IWantSender>& target));
85     MOCK_METHOD1(GetPendingWantType, int(const sptr<IWantSender>& target));
86     MOCK_METHOD2(RegisterCancelListener, void(const sptr<IWantSender>& sender, const sptr<IWantReceiver>& receiver));
87     MOCK_METHOD2(UnregisterCancelListener, void(const sptr<IWantSender>& sender, const sptr<IWantReceiver>& receiver));
88     MOCK_METHOD2(GetPendingRequestWant, int(const sptr<IWantSender>& target, std::shared_ptr<Want>& want));
89     MOCK_METHOD5(StartAbility, int(const Want& want, const AbilityStartSetting& abilityStartSetting,
90         const sptr<IRemoteObject>& callerToken, int32_t userId, int requestCode));
91     MOCK_METHOD4(StartAbilityByInsightIntent, int32_t(const Want& want, const sptr<IRemoteObject>& callerToken,
92         uint64_t intentId, int32_t userId));
93     MOCK_METHOD1(GetMissionIdByToken, int32_t(const sptr<IRemoteObject>& token));
94     MOCK_METHOD1(GetPendinTerminateAbilityTestgRequestWant, void(int id));
95     MOCK_METHOD3(StartContinuation, int(const Want& want, const sptr<IRemoteObject>& abilityToken, int32_t status));
96     MOCK_METHOD2(NotifyContinuationResult, int(int32_t missionId, int32_t result));
97     MOCK_METHOD5(ContinueMission, int(const std::string& srcDeviceId, const std::string& dstDeviceId,
98         int32_t missionId, const sptr<IRemoteObject>& callBack, AAFwk::WantParams& wantParams));
99     MOCK_METHOD3(ContinueAbility, int(const std::string& deviceId, int32_t missionId, uint32_t versionCode));
100     MOCK_METHOD3(NotifyCompleteContinuation, void(const std::string& deviceId, int32_t sessionId, bool isSuccess));
101 
102     MOCK_METHOD1(LockMissionForCleanup, int(int32_t missionId));
103     MOCK_METHOD1(UnlockMissionForCleanup, int(int32_t missionId));
104     MOCK_METHOD1(RegisterMissionListener, int(const sptr<IMissionListener>& listener));
105     MOCK_METHOD1(UnRegisterMissionListener, int(const sptr<IMissionListener>& listener));
106     MOCK_METHOD3(
107         GetMissionInfos, int(const std::string& deviceId, int32_t numMax, std::vector<MissionInfo>& missionInfos));
108     MOCK_METHOD3(GetMissionInfo, int(const std::string& deviceId, int32_t missionId, MissionInfo& missionInfo));
109     MOCK_METHOD1(CleanMission, int(int32_t missionId));
110     MOCK_METHOD0(CleanAllMissions, int());
111     MOCK_METHOD1(MoveMissionToFront, int(int32_t missionId));
112     MOCK_METHOD2(MoveMissionToFront, int(int32_t missionId, const StartOptions& startOptions));
113     MOCK_METHOD2(MoveMissionsToForeground, int(const std::vector<int32_t>& missionIds, int32_t topMissionId));
114     MOCK_METHOD2(MoveMissionsToBackground, int(const std::vector<int32_t>& missionIds, std::vector<int32_t>& result));
115     MOCK_METHOD2(SetMissionContinueState, int(const sptr<IRemoteObject>& token, const AAFwk::ContinueState& state));
116     MOCK_METHOD2(SetMissionLabel, int(const sptr<IRemoteObject>& token, const std::string& label));
117     MOCK_METHOD2(SetMissionIcon, int(const sptr<IRemoteObject>& token,
118         const std::shared_ptr<OHOS::Media::PixelMap>& icon));
119     MOCK_METHOD1(GetAbilityRunningInfos, int(std::vector<AbilityRunningInfo>& info));
120     MOCK_METHOD2(GetExtensionRunningInfos, int(int upperLimit, std::vector<ExtensionRunningInfo>& info));
121     MOCK_METHOD1(GetProcessRunningInfos, int(std::vector<AppExecFwk::RunningProcessInfo>& info));
122     MOCK_METHOD2(GetWantSenderInfo, int(const sptr<IWantSender>& target, std::shared_ptr<WantSenderInfo>& info));
123     MOCK_METHOD2(AcquireShareData, int32_t(const int32_t &missionId, const sptr<IAcquireShareDataCallback> &shareData));
124     MOCK_METHOD4(ShareDataDone, int32_t(const sptr<IRemoteObject> &token,
125         const int32_t &resultCode, const int32_t &uniqueId, WantParams &wantParam));
126     MOCK_METHOD2(GetAbilityTokenByCalleeObj, void(const sptr<IRemoteObject> &callStub, sptr<IRemoteObject> &token));
127     virtual int StartAbility(
128         const Want& want,
129         const StartOptions& startOptions,
130         const sptr<IRemoteObject>& callerToken,
131         int32_t userId = DEFAULT_INVAL_VALUE,
132         int requestCode = DEFAULT_INVAL_VALUE)
133     {
134         return 0;
135     }
136 
137     virtual int StartAbilityAsCaller(
138         const Want& want,
139         const StartOptions& startOptions,
140         const sptr<IRemoteObject>& callerToken,
141         sptr<IRemoteObject> asCallerSourceToken,
142         int32_t userId = DEFAULT_INVAL_VALUE,
143         int requestCode = DEFAULT_INVAL_VALUE)
144     {
145         return 0;
146     }
147 
StartUser(int userId,sptr<IUserCallback> callback)148     int StartUser(int userId, sptr<IUserCallback> callback) override
149     {
150         return 0;
151     }
152 
StopUser(int userId,const sptr<IUserCallback> & callback)153     int StopUser(int userId, const sptr<IUserCallback>& callback) override
154     {
155         return 0;
156     }
157 
LogoutUser(int32_t userId)158     int LogoutUser(int32_t userId) override
159     {
160         return 0;
161     }
162 
StartSyncRemoteMissions(const std::string & devId,bool fixConflict,int64_t tag)163     int StartSyncRemoteMissions(const std::string& devId, bool fixConflict, int64_t tag) override
164     {
165         return 0;
166     }
StopSyncRemoteMissions(const std::string & devId)167     int StopSyncRemoteMissions(const std::string& devId) override
168     {
169         return 0;
170     }
RegisterMissionListener(const std::string & deviceId,const sptr<IRemoteMissionListener> & listener)171     int RegisterMissionListener(const std::string& deviceId,
172         const sptr<IRemoteMissionListener>& listener) override
173     {
174         return 0;
175     }
UnRegisterMissionListener(const std::string & deviceId,const sptr<IRemoteMissionListener> & listener)176     int UnRegisterMissionListener(const std::string& deviceId,
177         const sptr<IRemoteMissionListener>& listener) override
178     {
179         return 0;
180     }
181 
ReportDrawnCompleted(const sptr<IRemoteObject> & callerToken)182     int32_t ReportDrawnCompleted(const sptr<IRemoteObject>& callerToken) override
183     {
184         return 0;
185     }
186 
187     virtual int StartAbilityByCall(const Want& want, const sptr<IAbilityConnection>& connect,
188         const sptr<IRemoteObject>& callerToken, int32_t userId = DEFAULT_INVAL_VALUE)
189     {
190         return 0;
191     }
ReleaseCall(const sptr<IAbilityConnection> & connect,const AppExecFwk::ElementName & element)192     virtual int ReleaseCall(const sptr<IAbilityConnection>& connect,
193         const AppExecFwk::ElementName& element)
194     {
195         return 0;
196     }
197 
GetMissionSnapshot(const std::string & deviceId,int32_t missionId,MissionSnapshot & snapshot,bool isLowResolution)198     virtual int GetMissionSnapshot(const std::string& deviceId, int32_t missionId,
199         MissionSnapshot& snapshot, bool isLowResolution)
200     {
201         return 0;
202     }
203 
RegisterSnapshotHandler(const sptr<ISnapshotHandler> & handler)204     virtual int RegisterSnapshotHandler(const sptr<ISnapshotHandler>& handler)
205     {
206         return 0;
207     }
208 
209     int RegisterWindowManagerServiceHandler(const sptr<IWindowManagerServiceHandler>& handler,
210         bool animationEnabled = true) override
211     {
212         return 0;
213     }
214 
GetForegroundUIAbilities(std::vector<AppExecFwk::AbilityStateData> & list)215     virtual int32_t GetForegroundUIAbilities(std::vector<AppExecFwk::AbilityStateData> &list)
216     {
217         return 0;
218     }
219 
CompleteFirstFrameDrawing(const sptr<IRemoteObject> & abilityToken)220     void CompleteFirstFrameDrawing(const sptr<IRemoteObject>& abilityToken) override {}
221 
SetAbilityController(const sptr<AppExecFwk::IAbilityController> & abilityController,bool imAStabilityTest)222     int SetAbilityController(const sptr<AppExecFwk::IAbilityController>& abilityController,
223         bool imAStabilityTest) override
224     {
225         return 0;
226     }
IsRunningInStabilityTest()227     bool IsRunningInStabilityTest() override
228     {
229         return true;
230     }
DumpSysState(const std::string & args,std::vector<std::string> & info,bool isClient,bool isUserID,int UserID)231     void DumpSysState(
232         const std::string& args, std::vector<std::string>& info, bool isClient, bool isUserID, int UserID) override
233     {}
234 
235     MOCK_METHOD2(StartUserTest, int(const Want& want, const sptr<IRemoteObject>& observer));
236 
FinishUserTest(const std::string & msg,const int64_t & resultCode,const std::string & bundleName)237     int FinishUserTest(
238         const std::string& msg, const int64_t& resultCode, const std::string& bundleName) override
239     {
240         return 0;
241     }
242 
GetTopAbility(sptr<IRemoteObject> & token)243     int GetTopAbility(sptr<IRemoteObject>& token) override
244     {
245         return 0;
246     }
247 
DelegatorDoAbilityForeground(const sptr<IRemoteObject> & token)248     int DelegatorDoAbilityForeground(const sptr<IRemoteObject>& token) override
249     {
250         return 0;
251     }
252 
DelegatorDoAbilityBackground(const sptr<IRemoteObject> & token)253     int DelegatorDoAbilityBackground(const sptr<IRemoteObject>& token) override
254     {
255         return 0;
256     }
257 
SetApplicationAutoStartupByEDM(const AutoStartupInfo & info,bool flag)258     int32_t SetApplicationAutoStartupByEDM(const AutoStartupInfo &info, bool flag) override
259     {
260         return 0;
261     }
262 
CancelApplicationAutoStartupByEDM(const AutoStartupInfo & info,bool flag)263     int32_t CancelApplicationAutoStartupByEDM(const AutoStartupInfo &info, bool flag) override
264     {
265         return 0;
266     }
267 
268 #ifdef ABILITY_COMMAND_FOR_TEST
269     MOCK_METHOD2(ForceTimeoutForTest, int(const std::string& abilityName, const std::string& state));
270 #endif
271     MOCK_METHOD2(IsValidMissionIds, int32_t(const std::vector<int32_t>&, std::vector<MissionValidResult>&));
272     MOCK_METHOD1(RegisterAppDebugListener, int32_t(sptr<AppExecFwk::IAppDebugListener> listener));
273     MOCK_METHOD1(UnregisterAppDebugListener, int32_t(sptr<AppExecFwk::IAppDebugListener> listener));
274     MOCK_METHOD1(AttachAppDebug, int32_t(const std::string &bundleName));
275     MOCK_METHOD1(DetachAppDebug, int32_t(const std::string &bundleName));
276     MOCK_METHOD3(ExecuteIntent, int32_t(uint64_t key, const sptr<IRemoteObject> &callerToken,
277         const InsightIntentExecuteParam &param));
278     MOCK_METHOD3(ExecuteInsightIntentDone, int32_t(const sptr<IRemoteObject> &token, uint64_t intentId,
279         const InsightIntentExecuteResult &result));
280     MOCK_METHOD5(StartAbilityWithSpecifyTokenId, int(const Want& want, const sptr<IRemoteObject>& callerToken,
281         uint32_t specifyTokenId, int32_t userId, int requestCode));
282 public:
283     std::string powerState_;
284 };
285 }  // namespace AAFwk
286 }  // namespace OHOS
287 
288 #endif  // OHOS_ABILITY_RUNTIME_MOCK_ABILITY_MANAGER_STUB_H
289