• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022-2025 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 #include <gtest/gtest.h>
17 
18 #define private public
19 #define protected public
20 #include "ability_manager_client.h"
21 #undef private
22 #undef protected
23 #include "ability_connect_callback_interface.h"
24 #include "ability_manager_errors.h"
25 #include "ability_state_data.h"
26 #include "element_name.h"
27 #include "hilog_tag_wrapper.h"
28 #include "ipc_object_stub.h"
29 #include "scene_board_judgement.h"
30 #include "start_options.h"
31 #include "status_bar_delegate_proxy.h"
32 #include "ui_extension/ui_extension_session_info.h"
33 #include "want.h"
34 #include "mock_iqueryermsobserver.h"
35 #include "mock_ihiddenstartobserver.h"
36 #include "mock_sa_call.h"
37 
38 using namespace testing;
39 using namespace testing::ext;
40 using AtomicServiceStartupRule = OHOS::AbilityRuntime::AtomicServiceStartupRule;
41 
42 namespace OHOS {
43 namespace AAFwk {
44 namespace {
45 const int USER_ID = 100;
46 const size_t SIZE_ONE = 1;
47 const int32_t ABILITYID = 1002;
48 const int32_t UID = 10000;
49 const int REQUESTCODE = 1008;
50 const int ERR_BUNDLE_MANAGER_INVALID_UID = 8521233;
51 }  // namespace
52 
53 class MockIAbilityConnection : public IAbilityConnection {
54 public:
OnAbilityConnectDone(const AppExecFwk::ElementName & element,const sptr<IRemoteObject> & remoteObject,int resultCode)55     void OnAbilityConnectDone(const AppExecFwk::ElementName &element,
56         const sptr<IRemoteObject> &remoteObject, int resultCode)
57     {
58         return;
59     }
OnAbilityDisconnectDone(const AppExecFwk::ElementName & element,int resultCode)60     void OnAbilityDisconnectDone(const AppExecFwk::ElementName &element, int resultCode)
61     {
62         return;
63     }
AsObject()64     sptr<IRemoteObject> AsObject()
65     {
66         return nullptr;
67     }
68 };
69 
70 class AbilityManagerClientTest : public testing::Test {
71 public:
72     static void SetUpTestCase();
73     static void TearDownTestCase();
74     void SetUp() override;
75     void TearDown() override;
76     void SetWant(Want& want, const std::string bundleName);
77 };
78 
SetUpTestCase(void)79 void AbilityManagerClientTest::SetUpTestCase(void)
80 {}
81 
TearDownTestCase(void)82 void AbilityManagerClientTest::TearDownTestCase(void)
83 {}
84 
SetUp()85 void AbilityManagerClientTest::SetUp()
86 {}
87 
TearDown()88 void AbilityManagerClientTest::TearDown()
89 {}
90 
SetWant(Want & want,const std::string bundleName)91 void AbilityManagerClientTest::SetWant(Want& want, const std::string bundleName)
92 {
93     AppExecFwk::ElementName name;
94     name.SetBundleName(bundleName);
95     name.SetAbilityName("testAbility");
96     want.SetElement(name);
97 }
98 
99 /**
100  * @tc.name: AbilityManagerClient_DumpSysState_0100
101  * @tc.desc: DumpSysState
102  * @tc.type: FUNC
103  * @tc.require: SR000GH1GO
104  */
105 HWTEST_F(AbilityManagerClientTest, AbilityManagerClient_DumpSysState_0100, TestSize.Level1)
106 {
107     TAG_LOGI(AAFwkTag::TEST, "AbilityManagerClient_DumpSysState_0100 start");
108 
109     std::string args = "-a";
110     std::vector<std::string> state;
111     bool isClient = false;
112     bool isUserID = true;
113     auto result = AbilityManagerClient::GetInstance()->DumpSysState(args, state, isClient, isUserID, USER_ID);
114     EXPECT_EQ(result, ERR_OK);
115     EXPECT_GT(state.size(), SIZE_ONE);
116 
117     TAG_LOGI(AAFwkTag::TEST, "state.size() = %{public}zu", state.size());
118     for (auto item : state) {
119         TAG_LOGI(AAFwkTag::TEST, "item = %{public}s", item.c_str());
120     }
121 
122     TAG_LOGI(AAFwkTag::TEST, "AbilityManagerClient_DumpSysState_0100 end");
123 }
124 
125 /**
126  * @tc.name: AbilityManagerClient_ForceExitApp_0100
127  * @tc.desc: ForceExitApp
128  * @tc.type: FUNC
129  */
130 HWTEST_F(AbilityManagerClientTest, AbilityManagerClient_ForceExitApp_0100, TestSize.Level1)
131 {
132     TAG_LOGI(AAFwkTag::TEST, "AbilityManagerClient_ForceExitApp_0100 start");
133     int32_t pid = 0;
134     ExitReason exitReason = { REASON_JS_ERROR, "Js Error." };
135     auto result = AbilityManagerClient::GetInstance()->ForceExitApp(pid, exitReason);
136     EXPECT_EQ(result, ERR_OK);
137     TAG_LOGI(AAFwkTag::TEST, "AbilityManagerClient_ForceExitApp_0100 end");
138 }
139 
140 /**
141  * @tc.name: AbilityManagerClient_RecordAppExitReason_0100
142  * @tc.desc: RecordAppExitReason
143  * @tc.type: FUNC
144  */
145 HWTEST_F(AbilityManagerClientTest, AbilityManagerClient_RecordAppExitReason_0100, TestSize.Level1)
146 {
147     TAG_LOGI(AAFwkTag::TEST, "AbilityManagerClient_RecordAppExitReason_0100 start");
148     ExitReason exitReason = { REASON_JS_ERROR, "Js Error." };
149     auto result = AbilityManagerClient::GetInstance()->RecordAppExitReason(exitReason);
150     EXPECT_EQ(result, ERR_BUNDLE_MANAGER_INVALID_UID);
151     TAG_LOGI(AAFwkTag::TEST, "AbilityManagerClient_RecordAppExitReason_0100 end");
152 }
153 
154 /**
155  * @tc.name: AbilityManagerClient_RecordProcessExitReason_0100
156  * @tc.desc: RecordAppExitReason
157  * @tc.type: FUNC
158  */
159 HWTEST_F(AbilityManagerClientTest, AbilityManagerClient_RecordProcessExitReason_0100, TestSize.Level1)
160 {
161     TAG_LOGI(AAFwkTag::TEST, "AbilityManagerClient_RecordProcessExitReason_0100 start");
162     ExitReason exitReason = { REASON_JS_ERROR, "Js Error." };
163     auto result = AbilityManagerClient::GetInstance()->RecordAppExitReason(exitReason);
164     EXPECT_EQ(result, ERR_BUNDLE_MANAGER_INVALID_UID);
165     TAG_LOGI(AAFwkTag::TEST, "AbilityManagerClient_RecordProcessExitReason_0100 end");
166 }
167 
168 /**
169  * @tc.name: AbilityManagerClient_RegisterStatusBarDelegate_0100
170  * @tc.desc: RegisterStatusBarDelegate
171  * @tc.type: FUNC
172  */
173 HWTEST_F(AbilityManagerClientTest, AbilityManagerClient_RegisterStatusBarDelegate_001, TestSize.Level1)
174 {
175     TAG_LOGI(AAFwkTag::TEST, "AbilityManagerClient_RegisterStatusBarDelegate_001 start");
176     sptr<IRemoteObject> impl(new IPCObjectStub());
177     sptr<AbilityRuntime::IStatusBarDelegate> delegate(new AbilityRuntime::StatusBarDelegateProxy(impl));
178     auto result = AbilityManagerClient::GetInstance()->RegisterStatusBarDelegate(delegate);
179     EXPECT_EQ(result, ERR_WRONG_INTERFACE_CALL);
180     TAG_LOGI(AAFwkTag::TEST, "AbilityManagerClient_RegisterStatusBarDelegate_001 result %{public}d", result);
181     TAG_LOGI(AAFwkTag::TEST, "AbilityManagerClient_RegisterStatusBarDelegate_001 end");
182 }
183 
184 /**
185  * @tc.name: AbilityManagerClient_ScheduleClearRecoveryPageStack_0100
186  * @tc.desc: ScheduleClearRecoveryPageStack
187  * @tc.type: FUNC
188  */
189 HWTEST_F(AbilityManagerClientTest, AbilityManagerClient_ScheduleClearRecoveryPageStack_001, TestSize.Level1)
190 {
191     TAG_LOGI(AAFwkTag::TEST, "AbilityManagerClient_ScheduleClearRecoveryPageStack_001 start");
192     std::shared_ptr<AbilityManagerClient> client = AbilityManagerClient::GetInstance();
193     client->ScheduleClearRecoveryPageStack();
194     EXPECT_TRUE(client != nullptr);
195     TAG_LOGI(AAFwkTag::TEST, "AbilityManagerClient_ScheduleClearRecoveryPageStack_001 end");
196 }
197 
198 /**
199  * @tc.name: AbilityManagerClient_IsValidMissionIds_0100
200  * @tc.desc: IsValidMissionIds
201  * @tc.type: FUNC
202  */
203 HWTEST_F(AbilityManagerClientTest, AbilityManagerClient_IsValidMissionIds_001, TestSize.Level1)
204 {
205     TAG_LOGI(AAFwkTag::TEST, "AbilityManagerClient_IsValidMissionIds_001 start");
206     std::vector<int32_t> missionIds;
207     missionIds.push_back(ABILITYID);
208     std::vector<MissionValidResult> results;
209     auto result = AbilityManagerClient::GetInstance()->IsValidMissionIds(missionIds, results);
210     if (!Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) {
211         EXPECT_EQ(result, ERR_INVALID_VALUE);
212     }
213     TAG_LOGI(AAFwkTag::TEST, "AbilityManagerClient_IsValidMissionIds_001 result %{public}d", result);
214     TAG_LOGI(AAFwkTag::TEST, "AbilityManagerClient_IsValidMissionIds_001 end");
215 }
216 
217 /**
218  * @tc.name: AbilityManagerClient_GetForegroundUIAbilities_0100
219  * @tc.desc: GetForegroundUIAbilities
220  * @tc.type: FUNC
221  */
222 HWTEST_F(AbilityManagerClientTest, AbilityManagerClient_GetForegroundUIAbilities_001, TestSize.Level1)
223 {
224     TAG_LOGI(AAFwkTag::TEST, "AbilityManagerClient_GetForegroundUIAbilities_001 start");
225     std::vector<AppExecFwk::AbilityStateData> list;
226     auto result = AbilityManagerClient::GetInstance()->GetForegroundUIAbilities(list);
227     EXPECT_EQ(result, ERR_OK);
228     TAG_LOGI(AAFwkTag::TEST, "AbilityManagerClient_GetForegroundUIAbilities_001 result %{public}d", result);
229     TAG_LOGI(AAFwkTag::TEST, "AbilityManagerClient_GetForegroundUIAbilities_001 end");
230 }
231 
232 /**
233  * @tc.name: AbilityManagerClient_GetUIExtensionSessionInfo_0100
234  * @tc.desc: GetUIExtensionSessionInfo
235  * @tc.type: FUNC
236  */
237 HWTEST_F(AbilityManagerClientTest, AbilityManagerClient_GetUIExtensionSessionInfo_001, TestSize.Level1)
238 {
239     TAG_LOGI(AAFwkTag::TEST, "AbilityManagerClient_GetUIExtensionSessionInfo_001 start");
240     sptr<IRemoteObject> token_(new IPCObjectStub());
241     UIExtensionSessionInfo uiExtensionSessionInfo;
242     auto result = AbilityManagerClient::GetInstance()->GetUIExtensionSessionInfo(token_,
243         uiExtensionSessionInfo, USER_ID);
244     EXPECT_NE(result, ERR_OK);
245     TAG_LOGI(AAFwkTag::TEST, "AbilityManagerClient_GetUIExtensionSessionInfo_001 result %{public}d", result);
246     TAG_LOGI(AAFwkTag::TEST, "AbilityManagerClient_GetUIExtensionSessionInfo_001 end");
247 }
248 
249 /**
250  * @tc.name: AbilityManagerClient_StartShortCut_0100
251  * @tc.desc: StartShortCut
252  * @tc.type: FUNC
253  */
254 HWTEST_F(AbilityManagerClientTest, AbilityManagerClient_StartShortCut_001, TestSize.Level1)
255 {
256     TAG_LOGI(AAFwkTag::TEST, "AbilityManagerClient_StartShortCut_001 start");
257     Want want;
258     StartOptions startOptions;
259     SetWant(want, "bundleName");
260     auto result = AbilityManagerClient::GetInstance()->StartShortcut(want, startOptions);
261     EXPECT_EQ(result, ERR_NOT_SYSTEM_APP);
262     TAG_LOGI(AAFwkTag::TEST, "AbilityManagerClient_StartShortCut_001 result %{public}d", result);
263     TAG_LOGI(AAFwkTag::TEST, "AbilityManagerClient_StartShortCut_001 end");
264 }
265 
266 /**
267  * @tc.name: AbilityManagerClient_NotifyFrozenProcessByRSS_0100
268  * @tc.desc: NotifyFrozenProcessByRSS
269  * @tc.type: FUNC
270  */
271 HWTEST_F(AbilityManagerClientTest, AbilityManagerClient_NotifyFrozenProcessByRSS_001, TestSize.Level1)
272 {
273     TAG_LOGI(AAFwkTag::TEST, "AbilityManagerClient_NotifyFrozenProcessByRSS_001 start");
274     std::shared_ptr<AbilityManagerClient> client = AbilityManagerClient::GetInstance();
275     std::vector<int32_t> pidList;
276     pidList.push_back(19082);
277     client->NotifyFrozenProcessByRSS(pidList, UID);
278     EXPECT_TRUE(client != nullptr);
279     TAG_LOGI(AAFwkTag::TEST, "AbilityManagerClient_NotifyFrozenProcessByRSS_001 end");
280 }
281 
282 /**
283  * @tc.name: AbilityManagerClient_PreStartMission_0100
284  * @tc.desc: PreStartMission
285  * @tc.type: FUNC
286  */
287 HWTEST_F(AbilityManagerClientTest, AbilityManagerClient_PreStartMission_001, TestSize.Level1)
288 {
289     TAG_LOGI(AAFwkTag::TEST, "AbilityManagerClient_PreStartMission_001 start");
290     auto result = AbilityManagerClient::GetInstance()->PreStartMission("com.ix.hiservcie", "entry",
291         "ServiceAbility", "2024-07-19 10:00:00");
292     EXPECT_NE(result, ERR_OK);
293     TAG_LOGI(AAFwkTag::TEST, "AbilityManagerClient_PreStartMission_001 result %{public}d", result);
294     TAG_LOGI(AAFwkTag::TEST, "AbilityManagerClient_PreStartMission_001 end");
295 }
296 
297 /**
298  * @tc.name: AbilityManagerClient_OpenLink_0100
299  * @tc.desc: OpenLink
300  * @tc.type: FUNC
301  */
302 HWTEST_F(AbilityManagerClientTest, AbilityManagerClient_OpenLink, TestSize.Level1)
303 {
304     TAG_LOGI(AAFwkTag::TEST, "AbilityManagerClient_OpenLink start");
305     Want want;
306     sptr<IRemoteObject> token_(new IPCObjectStub());
307     SetWant(want, "bundleName");
308     auto result = AbilityManagerClient::GetInstance()->OpenLink(want, token_,
309         USER_ID, REQUESTCODE);
310     EXPECT_EQ(result, ERR_INVALID_CALLER);
311     TAG_LOGI(AAFwkTag::TEST, "AbilityManagerClient_OpenLink result %{public}d", result);
312     TAG_LOGI(AAFwkTag::TEST, "AbilityManagerClient_OpenLink end");
313 }
314 
315 /**
316  * @tc.name: AbilityManagerClient_StartSelfUIAbility_0100
317  * @tc.desc: StartSelfUIAbility
318  * @tc.type: FUNC
319  */
320 HWTEST_F(AbilityManagerClientTest, StartSelfUIAbility_0100, TestSize.Level1)
321 {
322     TAG_LOGI(AAFwkTag::TEST, "StartSelfUIAbility_0100 start");
323     AAFwk::Want want;
324     auto result = AbilityManagerClient::GetInstance()->StartSelfUIAbility(want);
325     sptr<IRemoteObject> token_(new IPCObjectStub());
326     AbilityManagerClient::GetInstance()->SubmitSaveRecoveryInfo(token_);
327     EXPECT_NE(result, ERR_OK);
328     TAG_LOGI(AAFwkTag::TEST, "StartSelfUIAbility_0100 end");
329 }
330 
331 /**
332  * @tc.name: AbilityManagerClient_StartSelfUIAbilityWithStartOptions_0100
333  * @tc.desc: StartSelfUIAbilityWithStartOptions
334  * @tc.type: FUNC
335  */
336 HWTEST_F(AbilityManagerClientTest, StartSelfUIAbilityWithStartOptions_0100, TestSize.Level1)
337 {
338     TAG_LOGI(AAFwkTag::TEST, "StartSelfUIAbilityWithStartOptions_0100 start");
339     AAFwk::Want want;
340     AAFwk::StartOptions options;
341     auto result = AbilityManagerClient::GetInstance()->StartSelfUIAbilityWithStartOptions(want, options);
342     sptr<IRemoteObject> token_(new IPCObjectStub());
343     AbilityManagerClient::GetInstance()->SubmitSaveRecoveryInfo(token_);
344     EXPECT_NE(result, ERR_OK);
345     TAG_LOGI(AAFwkTag::TEST, "StartSelfUIAbilityWithStartOptions_0100 end");
346 }
347 
348 /**
349  * @tc.name: AddQueryERMSObserver_0100
350  * @tc.name: AbilityManagerClient_AddQueryERMSObserver_0100
351  * @tc.desc: AddQueryERMSObserver
352  */
353 HWTEST_F(AbilityManagerClientTest, AddQueryERMSObserver_0100, TestSize.Level1)
354 {
355     TAG_LOGI(AAFwkTag::TEST, "AddQueryERMSObserver_0100start");
356 
357     sptr<IRemoteObject> callertoken(new IPCObjectStub());
358     sptr<AbilityRuntime::IQueryERMSObserver> observer(new AbilityRuntime::IQueryERMSObserverMock());
359     auto result = AbilityManagerClient::GetInstance()->AddQueryERMSObserver(callertoken, observer);
360     EXPECT_NE(result, ERR_OK);
361     TAG_LOGI(AAFwkTag::TEST, "AddQueryERMSObserver_0100 end");
362 }
363 
364 /**
365   * @tc.name: AbilityManagerClient_QueryAtomicServiceStartupRule_0100
366  * @tc.desc: QueryAtomicServiceStartupRule
367  * @tc.type: FUNC
368  */
369 HWTEST_F(AbilityManagerClientTest, QueryAtomicServiceStartupRule_0100, TestSize.Level1)
370 {
371     TAG_LOGI(AAFwkTag::TEST, "QueryAtomicServiceStartupRule_0100 start");
372     sptr<IRemoteObject> callertoken(new IPCObjectStub());
373     std::string appId = "0100";
374     std::string startTime = "12:00";
375     AtomicServiceStartupRule rule;
376     auto result = AbilityManagerClient::GetInstance()->QueryAtomicServiceStartupRule(callertoken,
377         appId, startTime, rule);
378     EXPECT_NE(result, ERR_OK);
379     TAG_LOGI(AAFwkTag::TEST, "QueryAtomicServiceStartupRule_0100 end");
380 }
381 
382 /**
383   * @tc.name: AbilityManagerClient_RegisterHiddenStartObserver_0100
384  * @tc.desc: RegisterHiddenStartObserver
385  * @tc.type: FUNC
386  */
387 HWTEST_F(AbilityManagerClientTest, RegisterHiddenStartObserver_0100, TestSize.Level1)
388 {
389     TAG_LOGI(AAFwkTag::TEST, "RegisterHiddenStartObserver_0100 start");
390 
391     sptr<MockIHiddenStartObserver> observer(new MockIHiddenStartObserver());
392     auto result = AbilityManagerClient::GetInstance()->RegisterHiddenStartObserver(observer);
393     EXPECT_NE(result, ERR_OK);
394 
395     TAG_LOGI(AAFwkTag::TEST, "RegisterHiddenStartObserver_0100 end");
396 }
397 
398 /**
399   * @tc.name: AbilityManagerClient_UnregisterHiddenStartObserver_0100
400  * @tc.desc: RegisterHiddenStartObserver
401  * @tc.type: FUNC
402  */
403 HWTEST_F(AbilityManagerClientTest, UnregisterHiddenStartObserver_0100, TestSize.Level1)
404 {
405     TAG_LOGI(AAFwkTag::TEST, "UnregisterHiddenStartObserver_0100 start");
406 
407     sptr<MockIHiddenStartObserver> observer(new MockIHiddenStartObserver());
408     auto result = AbilityManagerClient::GetInstance()->UnregisterHiddenStartObserver(observer);
409     EXPECT_NE(result, ERR_OK);
410 
411     TAG_LOGI(AAFwkTag::TEST, "UnregisterHiddenStartObserver_0100 end");
412 }
413 
414 /**
415  * @tc.name: KillProcessForPermissionUpdate_0100
416  * @tc.desc: KillProcessForPermissionUpdate ERR_PERMISSION_DENIED
417  * @tc.type: FUNC
418  */
419 HWTEST_F(AbilityManagerClientTest, KillProcessForPermissionUpdate_0100, TestSize.Level1)
420 {
421     TAG_LOGI(AAFwkTag::TEST, "KillProcessForPermissionUpdate_0100 start");
422     uint32_t accessTokenId = 1;
423     auto result = AbilityManagerClient::GetInstance()->KillProcessForPermissionUpdate(accessTokenId);
424     EXPECT_EQ(result, ERR_PERMISSION_DENIED);
425     TAG_LOGI(AAFwkTag::TEST, "KillProcessForPermissionUpdate_0100 end");
426 }
427 
428 /**
429  * @tc.name: KillProcessForPermissionUpdate_0200
430  * @tc.desc: KillProcessForPermissionUpdate has peimission
431  * @tc.type: FUNC
432  */
433 HWTEST_F(AbilityManagerClientTest, KillProcessForPermissionUpdate_0200, TestSize.Level1)
434 {
435     TAG_LOGI(AAFwkTag::TEST, "KillProcessForPermissionUpdate_0200 start");
436     uint32_t accessTokenId = 1;
437     AAFwk::IsMockSaCall::IsMockKillAppProcessesPermission();
438     TAG_LOGI(AAFwkTag::TEST, "MockKillAppProcessesPermission");
439     auto result = AbilityManagerClient::GetInstance()->KillProcessForPermissionUpdate(accessTokenId);
440     EXPECT_EQ(result, ERR_OK);
441     TAG_LOGI(AAFwkTag::TEST, "KillProcessForPermissionUpdate_0200 end");
442 }
443 
444 /**
445  * @tc.name: AbilityManagerClient_KillProcessWithReason_0100
446  * @tc.name: AbilityManagerClient_KillProcessWithPrepareTerminateDone_0100
447  * @tc.desc: KillProcessWithReason and KillProcessWithPrepareTerminateDone
448  * @tc.type: FUNC
449  */
450 HWTEST_F(AbilityManagerClientTest, KillProcessWithReasonandKillProcessWithPrepareTerminateDone_0100, TestSize.Level1)
451 {
452     TAG_LOGI(AAFwkTag::TEST, "KillProcessWithReason_0100 start");
453 
454     std::string moduleName = "com.ohos.example.moduleName";
455     int32_t prepareTermination = 1;
456     bool isExist = false;
457     AbilityManagerClient::GetInstance()->KillProcessWithPrepareTerminateDone(moduleName,
458         prepareTermination, isExist);
459 
460     int32_t pid = 1;
461     AAFwk::ExitReason reason;
462     auto result = AbilityManagerClient::GetInstance()->KillProcessWithReason(pid, reason);
463     EXPECT_NE(result, ERR_OK);
464 
465     TAG_LOGI(AAFwkTag::TEST, "KillProcessWithReason_0100 end");
466 }
467 
468 /**
469  * @tc.name: AbilityManagerClient_StartAbilityByCallWithErrMsg_0100
470  * @tc.desc: StartAbilityByCallWithErrMsg
471  * @tc.type: FUNC
472  */
473 HWTEST_F(AbilityManagerClientTest, StartAbilityByCallWithErrMsg_0100, TestSize.Level1)
474 {
475     TAG_LOGI(AAFwkTag::TEST, "StartAbilityByCallWithErrMsg_0100 start");
476 
477     Want want;
478     sptr<IAbilityConnection> connect = sptr<MockIAbilityConnection>::MakeSptr();
479     sptr<IRemoteObject> callToken = sptr<AbilityRuntime::MockIRemoteObject>::MakeSptr();
480     int32_t accountId = 0x001;
481     std::string errMsg = "error";
482     auto result = AbilityManagerClient::GetInstance()->StartAbilityByCallWithErrMsg(want,
483         connect, callToken, accountId, errMsg);
484     EXPECT_NE(result, ERR_OK);
485 
486     TAG_LOGI(AAFwkTag::TEST, "StartAbilityByCallWithErrMsg_0100 end");
487 }
488 }  // namespace AAFwk
489 }  // namespace OHOS