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