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_METHOD2(ClearUpApplicationData, int(const std::string&, int32_t userId));
120     MOCK_METHOD1(GetAbilityRunningInfos, int(std::vector<AbilityRunningInfo>& info));
121     MOCK_METHOD2(GetExtensionRunningInfos, int(int upperLimit, std::vector<ExtensionRunningInfo>& info));
122     MOCK_METHOD1(GetProcessRunningInfos, int(std::vector<AppExecFwk::RunningProcessInfo>& info));
123     MOCK_METHOD2(GetWantSenderInfo, int(const sptr<IWantSender>& target, std::shared_ptr<WantSenderInfo>& info));
124     MOCK_METHOD2(AcquireShareData, int32_t(const int32_t &missionId, const sptr<IAcquireShareDataCallback> &shareData));
125     MOCK_METHOD4(ShareDataDone, int32_t(const sptr<IRemoteObject> &token,
126         const int32_t &resultCode, const int32_t &uniqueId, WantParams &wantParam));
127     MOCK_METHOD2(GetAbilityTokenByCalleeObj, void(const sptr<IRemoteObject> &callStub, sptr<IRemoteObject> &token));
StartAbility( const Want& want, const StartOptions& startOptions, const sptr<IRemoteObject>& callerToken, int32_t userId = DEFAULT_INVAL_VALUE, int requestCode = DEFAULT_INVAL_VALUE)128     virtual int StartAbility(
129         const Want& want,
130         const StartOptions& startOptions,
131         const sptr<IRemoteObject>& callerToken,
132         int32_t userId = DEFAULT_INVAL_VALUE,
133         int requestCode = DEFAULT_INVAL_VALUE)
134     {
135         return 0;
136     }
137 
StartAbilityAsCaller( const Want& want, const StartOptions& startOptions, const sptr<IRemoteObject>& callerToken, sptr<IRemoteObject> asCallerSourceToken, int32_t userId = DEFAULT_INVAL_VALUE, int requestCode = DEFAULT_INVAL_VALUE)138     virtual int StartAbilityAsCaller(
139         const Want& want,
140         const StartOptions& startOptions,
141         const sptr<IRemoteObject>& callerToken,
142         sptr<IRemoteObject> asCallerSourceToken,
143         int32_t userId = DEFAULT_INVAL_VALUE,
144         int requestCode = DEFAULT_INVAL_VALUE)
145     {
146         return 0;
147     }
148 
149     int StartUser(int userId, sptr<IUserCallback> callback, bool isAppRecovery) override
150     {
151         return 0;
152     }
153 
154     int StopUser(int userId, const sptr<IUserCallback>& callback) override
155     {
156         return 0;
157     }
158 
159     int LogoutUser(int32_t userId) override
160     {
161         return 0;
162     }
163 
164     int StartSyncRemoteMissions(const std::string& devId, bool fixConflict, int64_t tag) override
165     {
166         return 0;
167     }
168     int StopSyncRemoteMissions(const std::string& devId) override
169     {
170         return 0;
171     }
172     int RegisterMissionListener(const std::string& deviceId,
173         const sptr<IRemoteMissionListener>& listener) override
174     {
175         return 0;
176     }
177     int UnRegisterMissionListener(const std::string& deviceId,
178         const sptr<IRemoteMissionListener>& listener) override
179     {
180         return 0;
181     }
182 
183     int32_t ReportDrawnCompleted(const sptr<IRemoteObject>& callerToken) override
184     {
185         return 0;
186     }
187 
StartAbilityByCall(const Want& want, const sptr<IAbilityConnection>& connect, const sptr<IRemoteObject>& callerToken, int32_t userId = DEFAULT_INVAL_VALUE)188     virtual int StartAbilityByCall(const Want& want, const sptr<IAbilityConnection>& connect,
189         const sptr<IRemoteObject>& callerToken, int32_t userId = DEFAULT_INVAL_VALUE)
190     {
191         return 0;
192     }
ReleaseCall(const sptr<IAbilityConnection>& connect, const AppExecFwk::ElementName& element)193     virtual int ReleaseCall(const sptr<IAbilityConnection>& connect,
194         const AppExecFwk::ElementName& element)
195     {
196         return 0;
197     }
198 
GetMissionSnapshot(const std::string& deviceId, int32_t missionId, MissionSnapshot& snapshot, bool isLowResolution)199     virtual int GetMissionSnapshot(const std::string& deviceId, int32_t missionId,
200         MissionSnapshot& snapshot, bool isLowResolution)
201     {
202         return 0;
203     }
204 
RegisterSnapshotHandler(const sptr<ISnapshotHandler>& handler)205     virtual int RegisterSnapshotHandler(const sptr<ISnapshotHandler>& handler)
206     {
207         return 0;
208     }
209 
210     int RegisterWindowManagerServiceHandler(const sptr<IWindowManagerServiceHandler>& handler,
211         bool animationEnabled = true) override
212     {
213         return 0;
214     }
215 
GetForegroundUIAbilities(std::vector<AppExecFwk::AbilityStateData> &list)216     virtual int32_t GetForegroundUIAbilities(std::vector<AppExecFwk::AbilityStateData> &list)
217     {
218         return 0;
219     }
220 
221     void CompleteFirstFrameDrawing(const sptr<IRemoteObject>& abilityToken) override {}
222 
223     int SetAbilityController(const sptr<AppExecFwk::IAbilityController>& abilityController,
224         bool imAStabilityTest) override
225     {
226         return 0;
227     }
228     bool IsRunningInStabilityTest() override
229     {
230         return true;
231     }
232     void DumpSysState(
233         const std::string& args, std::vector<std::string>& info, bool isClient, bool isUserID, int UserID) override
234     {}
235 
236     MOCK_METHOD2(StartUserTest, int(const Want& want, const sptr<IRemoteObject>& observer));
237 
238     int FinishUserTest(
239         const std::string& msg, const int64_t& resultCode, const std::string& bundleName) override
240     {
241         return 0;
242     }
243 
244     int GetTopAbility(sptr<IRemoteObject>& token) override
245     {
246         return 0;
247     }
248 
249     int DelegatorDoAbilityForeground(const sptr<IRemoteObject>& token) override
250     {
251         return 0;
252     }
253 
254     int DelegatorDoAbilityBackground(const sptr<IRemoteObject>& token) override
255     {
256         return 0;
257     }
258 
259     int32_t SetApplicationAutoStartupByEDM(const AutoStartupInfo &info, bool flag) override
260     {
261         return 0;
262     }
263 
264     int32_t CancelApplicationAutoStartupByEDM(const AutoStartupInfo &info, bool flag) override
265     {
266         return 0;
267     }
268 
269 #ifdef ABILITY_COMMAND_FOR_TEST
270     MOCK_METHOD2(ForceTimeoutForTest, int(const std::string& abilityName, const std::string& state));
271 #endif
272     MOCK_METHOD2(IsValidMissionIds, int32_t(const std::vector<int32_t>&, std::vector<MissionValidResult>&));
273     MOCK_METHOD1(RegisterAppDebugListener, int32_t(sptr<AppExecFwk::IAppDebugListener> listener));
274     MOCK_METHOD1(UnregisterAppDebugListener, int32_t(sptr<AppExecFwk::IAppDebugListener> listener));
275     MOCK_METHOD1(AttachAppDebug, int32_t(const std::string &bundleName));
276     MOCK_METHOD1(DetachAppDebug, int32_t(const std::string &bundleName));
277     MOCK_METHOD3(ExecuteIntent, int32_t(uint64_t key, const sptr<IRemoteObject> &callerToken,
278         const InsightIntentExecuteParam &param));
279     MOCK_METHOD3(ExecuteInsightIntentDone, int32_t(const sptr<IRemoteObject> &token, uint64_t intentId,
280         const InsightIntentExecuteResult &result));
281     MOCK_METHOD5(StartAbilityWithSpecifyTokenId, int(const Want& want, const sptr<IRemoteObject>& callerToken,
282         uint32_t specifyTokenId, int32_t userId, int requestCode));
283 public:
284     std::string powerState_;
285 };
286 }  // namespace AAFwk
287 }  // namespace OHOS
288 
289 #endif  // OHOS_ABILITY_RUNTIME_MOCK_ABILITY_MANAGER_STUB_H
290