1 /*
2  * Copyright (c) 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 #include <gtest/gtest.h>
17 
18 #include "ability_manager_errors.h"
19 #define private public
20 #define protected public
21 #include "ability_record.h"
22 #include "ability_start_setting.h"
23 #include "app_scheduler.h"
24 #include "app_utils.h"
25 #include "scene_board/ui_ability_lifecycle_manager.h"
26 #undef protected
27 #undef private
28 #include "app_mgr_client.h"
29 #include "mock_ability_info_callback_stub.h"
30 #include "process_options.h"
31 #include "session/host/include/session.h"
32 #include "session_info.h"
33 #include "ability_manager_service.h"
34 
35 using namespace testing;
36 using namespace testing::ext;
37 
38 namespace OHOS {
39 namespace AAFwk {
40 namespace {
41 #ifdef WITH_DLP
42 const std::string DLP_INDEX = "ohos.dlp.params.index";
43 #endif // WITH_DLP
44 constexpr int32_t TEST_UID = 20010001;
45 };
46 class UIAbilityLifecycleManagerTest : public testing::Test {
47 public:
48     static void SetUpTestCase();
49     static void TearDownTestCase();
50     void SetUp() override;
51     void TearDown() override;
52     std::shared_ptr<AbilityRecord> InitAbilityRecord();
53 };
54 
SetUpTestCase()55 void UIAbilityLifecycleManagerTest::SetUpTestCase() {}
56 
TearDownTestCase()57 void UIAbilityLifecycleManagerTest::TearDownTestCase() {}
58 
SetUp()59 void UIAbilityLifecycleManagerTest::SetUp() {}
60 
TearDown()61 void UIAbilityLifecycleManagerTest::TearDown() {}
62 
63 class UIAbilityLifcecycleManagerTestStub : public IRemoteStub<IAbilityConnection> {
64 public:
UIAbilityLifcecycleManagerTestStub()65     UIAbilityLifcecycleManagerTestStub() {};
~UIAbilityLifcecycleManagerTestStub()66     virtual ~UIAbilityLifcecycleManagerTestStub() {};
67 
OnRemoteRequest(uint32_t code,MessageParcel & data,MessageParcel & reply,MessageOption & option)68     virtual int OnRemoteRequest(
69         uint32_t code, MessageParcel& data, MessageParcel& reply, MessageOption& option)
70     {
71         return 0;
72     };
73 
OnAbilityConnectDone(const AppExecFwk::ElementName & element,const sptr<IRemoteObject> & remoteObject,int resultCode)74     virtual void OnAbilityConnectDone(
75         const AppExecFwk::ElementName& element, const sptr<IRemoteObject>& remoteObject, int resultCode) {};
76 
77     /**
78      * OnAbilityDisconnectDone, AbilityMs notify caller ability the result of disconnect.
79      *
80      * @param element, service ability's ElementName.
81      * @param resultCode, ERR_OK on success, others on failure.
82      */
OnAbilityDisconnectDone(const AppExecFwk::ElementName & element,int resultCode)83     virtual void OnAbilityDisconnectDone(const AppExecFwk::ElementName& element, int resultCode) {};
84 };
85 
InitAbilityRecord()86 std::shared_ptr<AbilityRecord> UIAbilityLifecycleManagerTest::InitAbilityRecord()
87 {
88     AbilityRequest abilityRequest;
89     abilityRequest.appInfo.bundleName = "com.example.unittest";
90     abilityRequest.abilityInfo.name = "MainAbility";
91     abilityRequest.abilityInfo.type = AppExecFwk::AbilityType::PAGE;
92     std::shared_ptr<AbilityRecord> abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
93     return abilityRecord;
94 }
95 
96 /**
97  * @tc.name: UIAbilityLifecycleManager_StartUIAbility_0100
98  * @tc.desc: StartUIAbility
99  * @tc.type: FUNC
100  */
101 HWTEST_F(UIAbilityLifecycleManagerTest, StartUIAbility_001, TestSize.Level1)
102 {
103     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
104     AbilityRequest abilityRequest;
105     bool isColdStart = false;
106     EXPECT_EQ(mgr->StartUIAbility(abilityRequest, nullptr, 0, isColdStart), ERR_INVALID_VALUE);
107 }
108 
109 /**
110  * @tc.name: UIAbilityLifecycleManager_StartUIAbility_0200
111  * @tc.desc: StartUIAbility
112  * @tc.type: FUNC
113  */
114 HWTEST_F(UIAbilityLifecycleManagerTest, StartUIAbility_002, TestSize.Level1)
115 {
116     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
117     AbilityRequest abilityRequest;
118     Rosen::SessionInfo info;
119     sptr<SessionInfo> sessionInfo(new SessionInfo());
120     sessionInfo->sessionToken = new Rosen::Session(info);
121     bool isColdStart = false;
122     EXPECT_EQ(mgr->StartUIAbility(abilityRequest, sessionInfo, 0, isColdStart), ERR_OK);
123 }
124 
125 /**
126  * @tc.name: UIAbilityLifecycleManager_StartUIAbility_0300
127  * @tc.desc: StartUIAbility
128  * @tc.type: FUNC
129  */
130 HWTEST_F(UIAbilityLifecycleManagerTest, StartUIAbility_003, TestSize.Level1)
131 {
132     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
133     AbilityRequest abilityRequest;
134     Rosen::SessionInfo info;
135     sptr<SessionInfo> sessionInfo(new SessionInfo());
136     sessionInfo->sessionToken = new Rosen::Session(info);
137     sessionInfo->persistentId = 1;
138     abilityRequest.sessionInfo = sessionInfo;
139     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
140     mgr->sessionAbilityMap_.emplace(sessionInfo->persistentId, abilityRecord);
141     bool isColdStart = false;
142     EXPECT_EQ(mgr->StartUIAbility(abilityRequest, sessionInfo, 0, isColdStart), ERR_OK);
143 }
144 
145 /**
146  * @tc.name: UIAbilityLifecycleManager_StartUIAbility_0400
147  * @tc.desc: StartUIAbility
148  * @tc.type: FUNC
149  */
150 HWTEST_F(UIAbilityLifecycleManagerTest, StartUIAbility_004, TestSize.Level1)
151 {
152     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
153     AbilityRequest abilityRequest;
154     Rosen::SessionInfo info;
155     sptr<SessionInfo> sessionInfo(new SessionInfo());
156     sessionInfo->sessionToken = new Rosen::Session(info);
157     sessionInfo->startSetting = std::make_shared<AbilityStartSetting>();
158     sessionInfo->persistentId = 1;
159     abilityRequest.sessionInfo = sessionInfo;
160     bool isColdStart = false;
161     EXPECT_EQ(mgr->StartUIAbility(abilityRequest, sessionInfo, 0, isColdStart), ERR_OK);
162 }
163 
164 /**
165  * @tc.name: UIAbilityLifecycleManager_StartUIAbility_0500
166  * @tc.desc: StartUIAbility
167  * @tc.type: FUNC
168  */
169 HWTEST_F(UIAbilityLifecycleManagerTest, StartUIAbility_005, TestSize.Level1)
170 {
171     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
172     AbilityRequest abilityRequest;
173     Rosen::SessionInfo info;
174     sptr<SessionInfo> sessionInfo(new SessionInfo());
175     sessionInfo->sessionToken = new Rosen::Session(info);
176     sessionInfo->persistentId = 1;
177     abilityRequest.sessionInfo = sessionInfo;
178     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
179     abilityRecord->SetPendingState(AbilityState::FOREGROUND);
180     mgr->sessionAbilityMap_.emplace(sessionInfo->persistentId, abilityRecord);
181     bool isColdStart = false;
182     EXPECT_EQ(mgr->StartUIAbility(abilityRequest, sessionInfo, 0, isColdStart), ERR_OK);
183 }
184 
185 /**
186  * @tc.name: UIAbilityLifecycleManager_StartUIAbility_0600
187  * @tc.desc: StartUIAbility
188  * @tc.type: FUNC
189  */
190 HWTEST_F(UIAbilityLifecycleManagerTest, StartUIAbility_006, TestSize.Level1)
191 {
192     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
193     AbilityRequest abilityRequest;
194     abilityRequest.abilityInfoCallback = new MockAbilityInfoCallbackStub();
195     Rosen::SessionInfo info;
196     sptr<SessionInfo> sessionInfo(new SessionInfo());
197     sessionInfo->sessionToken = new Rosen::Session(info);
198     bool isColdStart = false;
199     EXPECT_EQ(mgr->StartUIAbility(abilityRequest, sessionInfo, 0, isColdStart), ERR_OK);
200 }
201 
202 /**
203  * @tc.name: UIAbilityLifecycleManager_StartUIAbility_0700
204  * @tc.desc: StartUIAbility
205  * @tc.type: FUNC
206  */
207 HWTEST_F(UIAbilityLifecycleManagerTest, StartUIAbility_007, TestSize.Level1)
208 {
209     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
210     AbilityRequest abilityRequest;
211     abilityRequest.abilityInfo.visible = true;
212     abilityRequest.abilityInfoCallback = new MockAbilityInfoCallbackStub();
213     Rosen::SessionInfo info;
214     sptr<SessionInfo> sessionInfo(new SessionInfo());
215     sessionInfo->sessionToken = new Rosen::Session(info);
216     bool isColdStart = false;
217     EXPECT_EQ(mgr->StartUIAbility(abilityRequest, sessionInfo, 0, isColdStart), ERR_OK);
218 }
219 
220 /**
221  * @tc.name: UIAbilityLifecycleManager_StartUIAbility_0800
222  * @tc.desc: StartUIAbility
223  * @tc.type: FUNC
224  */
225 HWTEST_F(UIAbilityLifecycleManagerTest, StartUIAbility_008, TestSize.Level1)
226 {
227     auto mgr = std::make_shared<UIAbilityLifecycleManager>();
228     AbilityRequest abilityRequest;
229     Rosen::SessionInfo info;
230     sptr<SessionInfo> sessionInfo = new (std::nothrow) SessionInfo();
231     sessionInfo->sessionToken = new (std::nothrow) Rosen::Session(info);
232     sessionInfo->persistentId = 1;
233     abilityRequest.abilityInfo.bundleName = "com.example.test";
234     abilityRequest.abilityInfo.name = "Entry";
235     abilityRequest.abilityInfo.moduleName = "EntryModule";
236     std::shared_ptr<AbilityRecord>  abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
237     mgr->sessionAbilityMap_.emplace(2, abilityRecord);
238     bool isColdStart = false;
239     EXPECT_EQ(mgr->StartUIAbility(abilityRequest, sessionInfo, 0, isColdStart), ERR_OK);
240 }
241 
242 /**
243  * @tc.name: UIAbilityLifecycleManager_CreateSessionInfo_0100
244  * @tc.desc: CreateSessionInfo
245  * @tc.type: FUNC
246  */
247 HWTEST_F(UIAbilityLifecycleManagerTest, CreateSessionInfo_001, TestSize.Level1)
248 {
249     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
250     EXPECT_NE(mgr, nullptr);
251     AbilityRequest abilityRequest;
252     abilityRequest.startSetting = std::make_shared<AbilityStartSetting>();
253     EXPECT_NE(mgr->CreateSessionInfo(abilityRequest), nullptr);
254 }
255 
256 /**
257  * @tc.name: UIAbilityLifecycleManager_AbilityTransactionDone_0100
258  * @tc.desc: AbilityTransactionDone
259  * @tc.type: FUNC
260  */
261 HWTEST_F(UIAbilityLifecycleManagerTest, AbilityTransactionDone_001, TestSize.Level1)
262 {
263     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
264     AbilityRequest abilityRequest;
265     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
266     auto token = abilityRecord->GetToken()->AsObject();
267     int state = 6;
268     PacMap saveData;
269     EXPECT_EQ(mgr->AbilityTransactionDone(token, state, saveData), ERR_INVALID_VALUE);
270 }
271 
272 /**
273  * @tc.name: UIAbilityLifecycleManager_AbilityTransactionDone_0200
274  * @tc.desc: AbilityTransactionDone
275  * @tc.type: FUNC
276  */
277 HWTEST_F(UIAbilityLifecycleManagerTest, AbilityTransactionDone_002, TestSize.Level1)
278 {
279     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
280     AbilityRequest abilityRequest;
281     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
282     mgr->terminateAbilityList_.emplace_back(abilityRecord);
283     auto token = abilityRecord->GetToken()->AsObject();
284     int state = 6;
285     PacMap saveData;
286     EXPECT_EQ(mgr->AbilityTransactionDone(token, state, saveData), ERR_INVALID_VALUE);
287 }
288 
289 /**
290  * @tc.name: UIAbilityLifecycleManager_AttachAbilityThread_0100
291  * @tc.desc: AttachAbilityThread
292  * @tc.type: FUNC
293  */
294 HWTEST_F(UIAbilityLifecycleManagerTest, AttachAbilityThread_001, TestSize.Level1)
295 {
296     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
297     sptr<IAbilityScheduler> scheduler = nullptr;
298     sptr<IRemoteObject> token = nullptr;
299     EXPECT_EQ(mgr->AttachAbilityThread(scheduler, token), ERR_INVALID_VALUE);
300 }
301 
302 /**
303  * @tc.name: UIAbilityLifecycleManager_AttachAbilityThread_0200
304  * @tc.desc: AttachAbilityThread
305  * @tc.type: FUNC
306  */
307 HWTEST_F(UIAbilityLifecycleManagerTest, AttachAbilityThread_002, TestSize.Level1)
308 {
309     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
310     AbilityRequest abilityRequest;
311     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
312     mgr->sessionAbilityMap_.emplace(1, abilityRecord);
313     sptr<IAbilityScheduler> scheduler = nullptr;
314     auto&& token = abilityRecord->GetToken()->AsObject();
315     EXPECT_EQ(mgr->AttachAbilityThread(scheduler, token), ERR_INVALID_VALUE);
316 }
317 
318 /**
319  * @tc.name: UIAbilityLifecycleManager_AttachAbilityThread_0300
320  * @tc.desc: AttachAbilityThread
321  * @tc.type: FUNC
322  */
323 HWTEST_F(UIAbilityLifecycleManagerTest, AttachAbilityThread_003, TestSize.Level1)
324 {
325     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
326     AbilityRequest abilityRequest;
327     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
328     abilityRecord->SetStartedByCall(true);
329 
330     mgr->sessionAbilityMap_.emplace(1, abilityRecord);
331     sptr<IAbilityScheduler> scheduler = nullptr;
332     auto&& token = abilityRecord->GetToken()->AsObject();
333     EXPECT_EQ(mgr->AttachAbilityThread(scheduler, token), ERR_INVALID_VALUE);
334 }
335 
336 /**
337  * @tc.name: UIAbilityLifecycleManager_AttachAbilityThread_0400
338  * @tc.desc: AttachAbilityThread
339  * @tc.type: FUNC
340  */
341 HWTEST_F(UIAbilityLifecycleManagerTest, AttachAbilityThread_004, TestSize.Level1)
342 {
343     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
344     AbilityRequest abilityRequest;
345     Want want;
346     want.SetParam(Want::PARAM_RESV_CALL_TO_FOREGROUND, true);
347     abilityRequest.want = want;
348     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
349     abilityRecord->SetStartedByCall(true);
350 
351     mgr->sessionAbilityMap_.emplace(1, abilityRecord);
352     sptr<IAbilityScheduler> scheduler = nullptr;
353     auto&& token = abilityRecord->GetToken()->AsObject();
354     EXPECT_EQ(mgr->AttachAbilityThread(scheduler, token), ERR_INVALID_VALUE);
355 }
356 
357 /**
358  * @tc.name: UIAbilityLifecycleManager_OnAbilityRequestDone_0100
359  * @tc.desc: OnAbilityRequestDone
360  * @tc.type: FUNC
361  */
362 HWTEST_F(UIAbilityLifecycleManagerTest, OnAbilityRequestDone_001, TestSize.Level1)
363 {
364     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
365     EXPECT_NE(mgr, nullptr);
366     sptr<IRemoteObject> token = nullptr;
367     mgr->OnAbilityRequestDone(token, 1);
368     EXPECT_NE(mgr, nullptr);
369 }
370 
371 /**
372  * @tc.name: UIAbilityLifecycleManager_OnAbilityRequestDone_0200
373  * @tc.desc: OnAbilityRequestDone
374  * @tc.type: FUNC
375  */
376 HWTEST_F(UIAbilityLifecycleManagerTest, OnAbilityRequestDone_002, TestSize.Level1)
377 {
378     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
379     EXPECT_NE(mgr, nullptr);
380     AbilityRequest abilityRequest;
381     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
382     auto&& token = abilityRecord->GetToken()->AsObject();
383     mgr->OnAbilityRequestDone(token, 1);
384     EXPECT_NE(mgr, nullptr);
385 }
386 
387 /**
388  * @tc.name: UIAbilityLifecycleManager_GetAbilityRecordByToken_0100
389  * @tc.desc: GetAbilityRecordByToken
390  * @tc.type: FUNC
391  */
392 HWTEST_F(UIAbilityLifecycleManagerTest, GetAbilityRecordByToken_001, TestSize.Level1)
393 {
394     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
395     sptr<IRemoteObject> token = nullptr;
396     EXPECT_EQ(mgr->GetAbilityRecordByToken(token), nullptr);
397 }
398 
399 /**
400  * @tc.name: UIAbilityLifecycleManager_GetAbilityRecordByToken_0200
401  * @tc.desc: GetAbilityRecordByToken
402  * @tc.type: FUNC
403  */
404 HWTEST_F(UIAbilityLifecycleManagerTest, GetAbilityRecordByToken_002, TestSize.Level1)
405 {
406     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
407     AbilityRequest abilityRequest;
408     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
409     auto&& token = abilityRecord->GetToken()->AsObject();
410     EXPECT_EQ(mgr->GetAbilityRecordByToken(token), nullptr);
411 }
412 
413 /**
414  * @tc.name: UIAbilityLifecycleManager_GetAbilityRecordByToken_0300
415  * @tc.desc: GetAbilityRecordByToken
416  * @tc.type: FUNC
417  */
418 HWTEST_F(UIAbilityLifecycleManagerTest, GetAbilityRecordByToken_003, TestSize.Level1)
419 {
420     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
421     AbilityRequest abilityRequest;
422     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
423     mgr->sessionAbilityMap_.emplace(1, abilityRecord);
424     auto&& token = abilityRecord->GetToken()->AsObject();
425     EXPECT_NE(mgr->GetAbilityRecordByToken(token), nullptr);
426 }
427 
428 /**
429  * @tc.name: UIAbilityLifecycleManager_UpdateAbilityRecordLaunchReason_0100
430  * @tc.desc: UpdateAbilityRecordLaunchReason
431  * @tc.type: FUNC
432  */
433 HWTEST_F(UIAbilityLifecycleManagerTest, UpdateAbilityRecordLaunchReason_001, TestSize.Level1)
434 {
435     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
436     EXPECT_NE(mgr, nullptr);
437     AbilityRequest abilityRequest;
438     std::shared_ptr<AbilityRecord> abilityRecord = nullptr;
439     mgr->UpdateAbilityRecordLaunchReason(abilityRequest, abilityRecord);
440     EXPECT_NE(mgr, nullptr);
441 }
442 
443 /**
444  * @tc.name: UIAbilityLifecycleManager_UpdateAbilityRecordLaunchReason_0200
445  * @tc.desc: UpdateAbilityRecordLaunchReason
446  * @tc.type: FUNC
447  */
448 HWTEST_F(UIAbilityLifecycleManagerTest, UpdateAbilityRecordLaunchReason_002, TestSize.Level1)
449 {
450     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
451     EXPECT_NE(mgr, nullptr);
452     Want want;
453     want.SetFlags(Want::FLAG_ABILITY_CONTINUATION);
454     AbilityRequest abilityRequest;
455     abilityRequest.want = want;
456     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
457     mgr->UpdateAbilityRecordLaunchReason(abilityRequest, abilityRecord);
458     EXPECT_NE(mgr, nullptr);
459 }
460 
461 /**
462  * @tc.name: UIAbilityLifecycleManager_UpdateAbilityRecordLaunchReason_0300
463  * @tc.desc: UpdateAbilityRecordLaunchReason
464  * @tc.type: FUNC
465  */
466 HWTEST_F(UIAbilityLifecycleManagerTest, UpdateAbilityRecordLaunchReason_003, TestSize.Level1)
467 {
468     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
469     EXPECT_NE(mgr, nullptr);
470     Want want;
471     want.SetParam(Want::PARAM_ABILITY_RECOVERY_RESTART, true);
472     AbilityRequest abilityRequest;
473     abilityRequest.want = want;
474     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
475     mgr->UpdateAbilityRecordLaunchReason(abilityRequest, abilityRecord);
476     EXPECT_NE(mgr, nullptr);
477 }
478 
479 /**
480  * @tc.name: UIAbilityLifecycleManager_UpdateAbilityRecordLaunchReason_0400
481  * @tc.desc: UpdateAbilityRecordLaunchReason
482  * @tc.type: FUNC
483  */
484 HWTEST_F(UIAbilityLifecycleManagerTest, UpdateAbilityRecordLaunchReason_004, TestSize.Level1)
485 {
486     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
487     EXPECT_NE(mgr, nullptr);
488     Want want;
489     want.SetParam(Want::PARAM_ABILITY_RECOVERY_RESTART, true);
490     AbilityRequest abilityRequest;
491     abilityRequest.want = want;
492     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
493     mgr->UpdateAbilityRecordLaunchReason(abilityRequest, abilityRecord);
494     EXPECT_NE(mgr, nullptr);
495 }
496 
497 /**
498  * @tc.name: UIAbilityLifecycleManager_EraseAbilityRecord_0100
499  * @tc.desc: EraseAbilityRecord
500  * @tc.type: FUNC
501  */
502 HWTEST_F(UIAbilityLifecycleManagerTest, EraseAbilityRecord_001, TestSize.Level1)
503 {
504     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
505     EXPECT_NE(mgr, nullptr);
506     std::shared_ptr<AbilityRecord> abilityRecord = nullptr;
507     mgr->EraseAbilityRecord(abilityRecord);
508     EXPECT_NE(mgr, nullptr);
509 }
510 
511 /**
512  * @tc.name: UIAbilityLifecycleManager_EraseAbilityRecord_0200
513  * @tc.desc: EraseAbilityRecord
514  * @tc.type: FUNC
515  */
516 HWTEST_F(UIAbilityLifecycleManagerTest, EraseAbilityRecord_002, TestSize.Level1)
517 {
518     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
519     EXPECT_NE(mgr, nullptr);
520     AbilityRequest abilityRequest;
521     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
522     mgr->sessionAbilityMap_.emplace(1, abilityRecord);
523     mgr->EraseAbilityRecord(abilityRecord);
524     EXPECT_NE(mgr, nullptr);
525 }
526 
527 /**
528  * @tc.name: UIAbilityLifecycleManager_DispatchState_0100
529  * @tc.desc: DispatchState
530  * @tc.type: FUNC
531  */
532 HWTEST_F(UIAbilityLifecycleManagerTest, DispatchState_001, TestSize.Level1)
533 {
534     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
535     std::shared_ptr<AbilityRecord> abilityRecord = nullptr;
536     EXPECT_EQ(mgr->DispatchState(abilityRecord, AbilityState::INITIAL), ERR_INVALID_VALUE);
537 }
538 
539 /**
540  * @tc.name: UIAbilityLifecycleManager_DispatchState_0200
541  * @tc.desc: DispatchState
542  * @tc.type: FUNC
543  */
544 HWTEST_F(UIAbilityLifecycleManagerTest, DispatchState_002, TestSize.Level1)
545 {
546     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
547     std::shared_ptr<AbilityRecord> abilityRecord = nullptr;
548     EXPECT_EQ(mgr->DispatchState(abilityRecord, AbilityState::FOREGROUND), ERR_INVALID_VALUE);
549 }
550 
551 /**
552  * @tc.name: UIAbilityLifecycleManager_DispatchState_0300
553  * @tc.desc: DispatchState
554  * @tc.type: FUNC
555  */
556 HWTEST_F(UIAbilityLifecycleManagerTest, DispatchState_003, TestSize.Level1)
557 {
558     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
559     std::shared_ptr<AbilityRecord> abilityRecord = nullptr;
560     EXPECT_EQ(mgr->DispatchState(abilityRecord, AbilityState::FOREGROUND_FAILED), ERR_INVALID_VALUE);
561 }
562 
563 /**
564  * @tc.name: UIAbilityLifecycleManager_DispatchState_0400
565  * @tc.desc: DispatchState
566  * @tc.type: FUNC
567  */
568 HWTEST_F(UIAbilityLifecycleManagerTest, DispatchState_004, TestSize.Level1)
569 {
570     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
571     std::shared_ptr<AbilityRecord> abilityRecord = nullptr;
572     int state = 130;
573     EXPECT_EQ(mgr->DispatchState(abilityRecord, state), ERR_INVALID_VALUE);
574 }
575 
576 /**
577  * @tc.name: UIAbilityLifecycleManager_DispatchForeground_0100
578  * @tc.desc: DispatchForeground
579  * @tc.type: FUNC
580  */
581 HWTEST_F(UIAbilityLifecycleManagerTest, DispatchForeground_001, TestSize.Level1)
582 {
583     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
584     AbilityRequest abilityRequest;
585     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
586     EXPECT_EQ(mgr->DispatchForeground(abilityRecord, true, AbilityState::FOREGROUND), ERR_INVALID_VALUE);
587 }
588 
589 /**
590  * @tc.name: UIAbilityLifecycleManager_CompleteForegroundSuccess_0100
591  * @tc.desc: CompleteForegroundSuccess
592  * @tc.type: FUNC
593  */
594 HWTEST_F(UIAbilityLifecycleManagerTest, CompleteForegroundSuccess_001, TestSize.Level1)
595 {
596     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
597     EXPECT_NE(mgr, nullptr);
598     AbilityRequest abilityRequest;
599     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
600     abilityRecord->SetPendingState(AbilityState::BACKGROUND);
601     mgr->CompleteForegroundSuccess(abilityRecord);
602     EXPECT_NE(mgr, nullptr);
603 }
604 
605 /**
606  * @tc.name: UIAbilityLifecycleManager_CompleteForegroundSuccess_0200
607  * @tc.desc: CompleteForegroundSuccess
608  * @tc.type: FUNC
609  */
610 HWTEST_F(UIAbilityLifecycleManagerTest, CompleteForegroundSuccess_002, TestSize.Level1)
611 {
612     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
613     EXPECT_NE(mgr, nullptr);
614     AbilityRequest abilityRequest;
615     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
616     abilityRecord->SetPendingState(AbilityState::FOREGROUND);
617     mgr->CompleteForegroundSuccess(abilityRecord);
618     EXPECT_NE(mgr, nullptr);
619 }
620 
621 /**
622  * @tc.name: UIAbilityLifecycleManager_CompleteForegroundSuccess_0300
623  * @tc.desc: CompleteForegroundSuccess
624  * @tc.type: FUNC
625  */
626 HWTEST_F(UIAbilityLifecycleManagerTest, CompleteForegroundSuccess_003, TestSize.Level1)
627 {
628     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
629     EXPECT_NE(mgr, nullptr);
630     AbilityRequest abilityRequest;
631     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
632     abilityRecord->SetStartedByCall(true);
633     abilityRecord->SetStartToForeground(true);
634     abilityRecord->isReady_ = true;
635     mgr->CompleteForegroundSuccess(abilityRecord);
636     EXPECT_NE(mgr, nullptr);
637 }
638 
639 /**
640  * @tc.name: UIAbilityLifecycleManager_CompleteForegroundSuccess_0400
641  * @tc.desc: CompleteForegroundSuccess
642  * @tc.type: FUNC
643  */
644 HWTEST_F(UIAbilityLifecycleManagerTest, CompleteForegroundSuccess_004, TestSize.Level1)
645 {
646     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
647     EXPECT_NE(mgr, nullptr);
648     AbilityRequest abilityRequest;
649     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
650     abilityRecord->SetStartedByCall(true);
651     abilityRecord->SetStartToForeground(true);
652     abilityRecord->isReady_ = true;
653     abilityRecord->SetSessionInfo(new SessionInfo());
654     mgr->CompleteForegroundSuccess(abilityRecord);
655     EXPECT_NE(mgr, nullptr);
656 }
657 
658 /**
659  * @tc.name: UIAbilityLifecycleManager_HandleForegroundFailed_0100
660  * @tc.desc: HandleForegroundOrFailed
661  * @tc.type: FUNC
662  */
663 HWTEST_F(UIAbilityLifecycleManagerTest, HandleForegroundFailed_001, TestSize.Level1)
664 {
665     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
666     EXPECT_NE(mgr, nullptr);
667     std::shared_ptr<AbilityRecord> abilityRecord = nullptr;
668     mgr->HandleForegroundFailed(abilityRecord, AbilityState::FOREGROUND_FAILED);
669     EXPECT_NE(mgr, nullptr);
670 }
671 
672 /**
673  * @tc.name: UIAbilityLifecycleManager_HandleForegroundFailed_0200
674  * @tc.desc: HandleForegroundFailed
675  * @tc.type: FUNC
676  */
677 HWTEST_F(UIAbilityLifecycleManagerTest, HandleForegroundFailed_002, TestSize.Level1)
678 {
679     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
680     EXPECT_NE(mgr, nullptr);
681     AbilityRequest abilityRequest;
682     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
683     abilityRecord->currentState_ = AbilityState::FOREGROUNDING;
684     mgr->HandleForegroundFailed(abilityRecord, AbilityState::FOREGROUND_FAILED);
685     EXPECT_NE(mgr, nullptr);
686 }
687 
688 /**
689  * @tc.name: UIAbilityLifecycleManager_MinimizeUIAbility_0100
690  * @tc.desc: MinimizeUIAbility
691  * @tc.type: FUNC
692  */
693 HWTEST_F(UIAbilityLifecycleManagerTest, MinimizeUIAbility_001, TestSize.Level1)
694 {
695     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
696     EXPECT_EQ(uiAbilityLifecycleManager->MinimizeUIAbility(nullptr, false, 0), ERR_INVALID_VALUE);
697     uiAbilityLifecycleManager.reset();
698 }
699 
700 /**
701  * @tc.name: UIAbilityLifecycleManager_MinimizeUIAbility_0200
702  * @tc.desc: MinimizeUIAbility
703  * @tc.type: FUNC
704  */
705 HWTEST_F(UIAbilityLifecycleManagerTest, MinimizeUIAbility_002, TestSize.Level1)
706 {
707     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
708     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
709     abilityRecord->currentState_ = AbilityState::BACKGROUND;
710     EXPECT_EQ(uiAbilityLifecycleManager->MinimizeUIAbility(abilityRecord, false, 0), ERR_OK);
711     uiAbilityLifecycleManager.reset();
712 }
713 
714 /**
715  * @tc.name: UIAbilityLifecycleManager_MinimizeUIAbility_0300
716  * @tc.desc: MinimizeUIAbility
717  * @tc.type: FUNC
718  */
719 HWTEST_F(UIAbilityLifecycleManagerTest, MinimizeUIAbility_003, TestSize.Level1)
720 {
721     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
722     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
723     abilityRecord->currentState_ = AbilityState::FOREGROUND;
724     EXPECT_EQ(uiAbilityLifecycleManager->MinimizeUIAbility(abilityRecord, false, 0), ERR_OK);
725     uiAbilityLifecycleManager.reset();
726 }
727 
728 /**
729  * @tc.name: UIAbilityLifecycleManager_MoveToBackground_0100
730  * @tc.desc: MoveToBackground
731  * @tc.type: FUNC
732  */
733 HWTEST_F(UIAbilityLifecycleManagerTest, MoveToBackground_001, TestSize.Level1)
734 {
735     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
736     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
737     uiAbilityLifecycleManager->MoveToBackground(nullptr);
738     uiAbilityLifecycleManager.reset();
739 }
740 
741 /**
742  * @tc.name: UIAbilityLifecycleManager_MoveToBackground_0200
743  * @tc.desc: MoveToBackground
744  * @tc.type: FUNC
745  */
746 HWTEST_F(UIAbilityLifecycleManagerTest, MoveToBackground_002, TestSize.Level1)
747 {
748     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
749     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
750     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
751     uiAbilityLifecycleManager->MoveToBackground(abilityRecord);
752     uiAbilityLifecycleManager.reset();
753 }
754 
755 /**
756  * @tc.name: UIAbilityLifecycleManager_PrintTimeOutLog_0100
757  * @tc.desc: PrintTimeOutLog
758  * @tc.type: FUNC
759  */
760 HWTEST_F(UIAbilityLifecycleManagerTest, PrintTimeOutLog_001, TestSize.Level1)
761 {
762     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
763     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
764     uint32_t msgId = 0;
765     uiAbilityLifecycleManager->PrintTimeOutLog(nullptr, msgId);
766     uiAbilityLifecycleManager.reset();
767 }
768 
769 /**
770  * @tc.name: UIAbilityLifecycleManager_PrintTimeOutLog_0200
771  * @tc.desc: PrintTimeOutLog
772  * @tc.type: FUNC
773  */
774 HWTEST_F(UIAbilityLifecycleManagerTest, PrintTimeOutLog_002, TestSize.Level1)
775 {
776     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
777     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
778     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
779     uint32_t msgId = 0;
780     uiAbilityLifecycleManager->PrintTimeOutLog(abilityRecord, msgId);
781     uiAbilityLifecycleManager.reset();
782 }
783 
784 /**
785  * @tc.name: UIAbilityLifecycleManager_PrintTimeOutLog_0300
786  * @tc.desc: PrintTimeOutLog
787  * @tc.type: FUNC
788  */
789 HWTEST_F(UIAbilityLifecycleManagerTest, PrintTimeOutLog_003, TestSize.Level1)
790 {
791     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
792     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
793     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
794     uint32_t msgId = 1;
795     uiAbilityLifecycleManager->PrintTimeOutLog(abilityRecord, msgId);
796     uiAbilityLifecycleManager.reset();
797 }
798 
799 /**
800  * @tc.name: UIAbilityLifecycleManager_PrintTimeOutLog_0400
801  * @tc.desc: PrintTimeOutLog
802  * @tc.type: FUNC
803  */
804 HWTEST_F(UIAbilityLifecycleManagerTest, PrintTimeOutLog_004, TestSize.Level1)
805 {
806     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
807     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
808     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
809     uint32_t msgId = 2;
810     uiAbilityLifecycleManager->PrintTimeOutLog(abilityRecord, msgId);
811     uiAbilityLifecycleManager.reset();
812 }
813 
814 /**
815  * @tc.name: UIAbilityLifecycleManager_PrintTimeOutLog_0500
816  * @tc.desc: PrintTimeOutLog
817  * @tc.type: FUNC
818  */
819 HWTEST_F(UIAbilityLifecycleManagerTest, PrintTimeOutLog_005, TestSize.Level1)
820 {
821     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
822     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
823     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
824     uint32_t msgId = 3;
825     uiAbilityLifecycleManager->PrintTimeOutLog(abilityRecord, msgId);
826     uiAbilityLifecycleManager.reset();
827 }
828 
829 /**
830  * @tc.name: UIAbilityLifecycleManager_PrintTimeOutLog_0600
831  * @tc.desc: PrintTimeOutLog
832  * @tc.type: FUNC
833  */
834 HWTEST_F(UIAbilityLifecycleManagerTest, PrintTimeOutLog_006, TestSize.Level1)
835 {
836     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
837     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
838     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
839     uint32_t msgId = 4;
840     uiAbilityLifecycleManager->PrintTimeOutLog(abilityRecord, msgId);
841     uiAbilityLifecycleManager.reset();
842 }
843 
844 /**
845  * @tc.name: UIAbilityLifecycleManager_PrintTimeOutLog_0700
846  * @tc.desc: PrintTimeOutLog
847  * @tc.type: FUNC
848  */
849 HWTEST_F(UIAbilityLifecycleManagerTest, PrintTimeOutLog_007, TestSize.Level1)
850 {
851     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
852     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
853     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
854     uint32_t msgId = 5;
855     uiAbilityLifecycleManager->PrintTimeOutLog(abilityRecord, msgId);
856     uiAbilityLifecycleManager.reset();
857 }
858 
859 /**
860  * @tc.name: UIAbilityLifecycleManager_PrintTimeOutLog_0800
861  * @tc.desc: PrintTimeOutLog
862  * @tc.type: FUNC
863  */
864 HWTEST_F(UIAbilityLifecycleManagerTest, PrintTimeOutLog_008, TestSize.Level1)
865 {
866     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
867     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
868     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
869     uint32_t msgId = 6;
870     uiAbilityLifecycleManager->PrintTimeOutLog(abilityRecord, msgId);
871     uiAbilityLifecycleManager.reset();
872 }
873 
874 /**
875  * @tc.name: UIAbilityLifecycleManager_CompleteBackground_0100
876  * @tc.desc: CompleteBackground
877  * @tc.type: FUNC
878  */
879 HWTEST_F(UIAbilityLifecycleManagerTest, CompleteBackground_001, TestSize.Level1)
880 {
881     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
882     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
883     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
884     abilityRecord->currentState_ = AbilityState::FOREGROUND;
885     uiAbilityLifecycleManager->CompleteBackground(abilityRecord);
886     uiAbilityLifecycleManager.reset();
887 }
888 
889 /**
890  * @tc.name: UIAbilityLifecycleManager_CompleteBackground_0200
891  * @tc.desc: CompleteBackground
892  * @tc.type: FUNC
893  */
894 HWTEST_F(UIAbilityLifecycleManagerTest, CompleteBackground_002, TestSize.Level1)
895 {
896     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
897     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
898     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
899     abilityRecord->currentState_ = AbilityState::BACKGROUNDING;
900     abilityRecord->SetPendingState(AbilityState::FOREGROUND);
901     uiAbilityLifecycleManager->CompleteBackground(abilityRecord);
902     uiAbilityLifecycleManager.reset();
903 }
904 
905 /**
906  * @tc.name: UIAbilityLifecycleManager_CompleteBackground_0300
907  * @tc.desc: CompleteBackground
908  * @tc.type: FUNC
909  */
910 HWTEST_F(UIAbilityLifecycleManagerTest, CompleteBackground_003, TestSize.Level1)
911 {
912     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
913     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
914     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
915     abilityRecord->currentState_ = AbilityState::BACKGROUNDING;
916     abilityRecord->SetPendingState(AbilityState::BACKGROUND);
917     uiAbilityLifecycleManager->CompleteBackground(abilityRecord);
918     uiAbilityLifecycleManager.reset();
919 }
920 
921 /**
922  * @tc.name: UIAbilityLifecycleManager_CompleteBackground_0400
923  * @tc.desc: CompleteBackground
924  * @tc.type: FUNC
925  */
926 HWTEST_F(UIAbilityLifecycleManagerTest, CompleteBackground_004, TestSize.Level1)
927 {
928     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
929     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
930     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
931     abilityRecord->currentState_ = AbilityState::BACKGROUNDING;
932     abilityRecord->SetPendingState(AbilityState::FOREGROUND);
933     uiAbilityLifecycleManager->CompleteBackground(abilityRecord);
934     uiAbilityLifecycleManager.reset();
935 }
936 
937 /**
938  * @tc.name: UIAbilityLifecycleManager_CompleteBackground_0500
939  * @tc.desc: CompleteBackground
940  * @tc.type: FUNC
941  */
942 HWTEST_F(UIAbilityLifecycleManagerTest, CompleteBackground_005, TestSize.Level1)
943 {
944     auto mgr = std::make_shared<UIAbilityLifecycleManager>();
945     EXPECT_NE(mgr, nullptr);
946     AbilityRequest abilityRequest;
947     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
948     abilityRecord->currentState_ = AbilityState::BACKGROUNDING;
949     abilityRecord->SetStartedByCall(true);
950     abilityRecord->SetStartToBackground(true);
951     abilityRecord->isReady_ = true;
952     mgr->CompleteBackground(abilityRecord);
953     EXPECT_NE(mgr, nullptr);
954 }
955 
956 /**
957  * @tc.name: UIAbilityLifecycleManager_CompleteBackground_0600
958  * @tc.desc: CompleteBackground
959  * @tc.type: FUNC
960  */
961 HWTEST_F(UIAbilityLifecycleManagerTest, CompleteBackground_006, TestSize.Level1)
962 {
963     auto mgr = std::make_shared<UIAbilityLifecycleManager>();
964     EXPECT_NE(mgr, nullptr);
965     AbilityRequest abilityRequest;
966     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
967     abilityRecord->currentState_ = AbilityState::BACKGROUNDING;
968     mgr->terminateAbilityList_.push_back(abilityRecord);
969     mgr->CompleteBackground(abilityRecord);
970     EXPECT_NE(mgr, nullptr);
971 }
972 
973 /**
974  * @tc.name: UIAbilityLifecycleManager_CloseUIAbility_0100
975  * @tc.desc: CloseUIAbility
976  * @tc.type: FUNC
977  */
978 HWTEST_F(UIAbilityLifecycleManagerTest, CloseUIAbility_001, TestSize.Level1)
979 {
980     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
981     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
982     abilityRecord->SetTerminatingState();
983     abilityRecord->currentState_ = AbilityState::BACKGROUND;
984     EXPECT_EQ(uiAbilityLifecycleManager->CloseUIAbility(abilityRecord, -1, nullptr, false), ERR_OK);
985     uiAbilityLifecycleManager.reset();
986 }
987 
988 /**
989  * @tc.name: UIAbilityLifecycleManager_CloseUIAbility_0200
990  * @tc.desc: CloseUIAbility
991  * @tc.type: FUNC
992  */
993 HWTEST_F(UIAbilityLifecycleManagerTest, CloseUIAbility_002, TestSize.Level1)
994 {
995     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
996     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
997     EXPECT_EQ(uiAbilityLifecycleManager->CloseUIAbility(abilityRecord, -1, nullptr, false), ERR_INVALID_VALUE);
998     uiAbilityLifecycleManager.reset();
999 }
1000 
1001 /**
1002  * @tc.name: UIAbilityLifecycleManager_CloseUIAbility_0300
1003  * @tc.desc: CloseUIAbility
1004  * @tc.type: FUNC
1005  */
1006 HWTEST_F(UIAbilityLifecycleManagerTest, CloseUIAbility_003, TestSize.Level1)
1007 {
1008     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
1009     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
1010     Want want;
1011     EXPECT_EQ(uiAbilityLifecycleManager->CloseUIAbility(abilityRecord, -1, &want, false), ERR_INVALID_VALUE);
1012     uiAbilityLifecycleManager.reset();
1013 }
1014 
1015 /**
1016  * @tc.name: UIAbilityLifecycleManager_CloseUIAbility_0400
1017  * @tc.desc: CloseUIAbility
1018  * @tc.type: FUNC
1019  */
1020 HWTEST_F(UIAbilityLifecycleManagerTest, CloseUIAbility_004, TestSize.Level1)
1021 {
1022     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
1023     auto abilityRecord = InitAbilityRecord();
1024     abilityRecord->currentState_ = AbilityState::FOREGROUND;
1025     Want want;
1026     EXPECT_EQ(uiAbilityLifecycleManager->CloseUIAbility(abilityRecord, -1, &want, false), ERR_OK);
1027     uiAbilityLifecycleManager.reset();
1028 }
1029 
1030 /**
1031  * @tc.name: UIAbilityLifecycleManager_CloseUIAbility_0500
1032  * @tc.desc: CloseUIAbility
1033  * @tc.type: FUNC
1034  */
1035 HWTEST_F(UIAbilityLifecycleManagerTest, CloseUIAbility_005, TestSize.Level1)
1036 {
1037     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
1038     auto abilityRecord = InitAbilityRecord();
1039     abilityRecord->currentState_ = AbilityState::FOREGROUNDING;
1040     Want want;
1041     EXPECT_EQ(uiAbilityLifecycleManager->CloseUIAbility(abilityRecord, -1, &want, false), ERR_OK);
1042     uiAbilityLifecycleManager.reset();
1043 }
1044 
1045 /**
1046  * @tc.name: UIAbilityLifecycleManager_CloseUIAbility_0600
1047  * @tc.desc: CloseUIAbility
1048  * @tc.type: FUNC
1049  */
1050 HWTEST_F(UIAbilityLifecycleManagerTest, CloseUIAbility_006, TestSize.Level1)
1051 {
1052     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
1053     auto abilityRecord = InitAbilityRecord();
1054     abilityRecord->currentState_ = AbilityState::BACKGROUND;
1055     Want want;
1056     EXPECT_EQ(uiAbilityLifecycleManager->CloseUIAbility(abilityRecord, -1, &want, false), ERR_OK);
1057     uiAbilityLifecycleManager.reset();
1058 }
1059 
1060 /**
1061  * @tc.name: UIAbilityLifecycleManager_DelayCompleteTerminate_0100
1062  * @tc.desc: DelayCompleteTerminate
1063  * @tc.type: FUNC
1064  */
1065 HWTEST_F(UIAbilityLifecycleManagerTest, DelayCompleteTerminate_001, TestSize.Level1)
1066 {
1067     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
1068     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
1069     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
1070     uiAbilityLifecycleManager->DelayCompleteTerminate(abilityRecord);
1071     uiAbilityLifecycleManager.reset();
1072 }
1073 
1074 /**
1075  * @tc.name: UIAbilityLifecycleManager_CompleteTerminate_0100
1076  * @tc.desc: CompleteTerminate
1077  * @tc.type: FUNC
1078  */
1079 HWTEST_F(UIAbilityLifecycleManagerTest, CompleteTerminate_001, TestSize.Level1)
1080 {
1081     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
1082     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
1083     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
1084     abilityRecord->currentState_ = AbilityState::BACKGROUND;
1085     uiAbilityLifecycleManager->CompleteTerminate(abilityRecord);
1086     uiAbilityLifecycleManager.reset();
1087 }
1088 
1089 /**
1090  * @tc.name: UIAbilityLifecycleManager_CompleteTerminate_0200
1091  * @tc.desc: CompleteTerminate
1092  * @tc.type: FUNC
1093  */
1094 HWTEST_F(UIAbilityLifecycleManagerTest, CompleteTerminate_002, TestSize.Level1)
1095 {
1096     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
1097     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
1098     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
1099     abilityRecord->currentState_ = AbilityState::TERMINATING;
1100     uiAbilityLifecycleManager->CompleteTerminate(abilityRecord);
1101     uiAbilityLifecycleManager.reset();
1102 }
1103 
1104 /**
1105  * @tc.name: UIAbilityLifecycleManager_OnTimeOut_0100
1106  * @tc.desc: OnTimeOut
1107  * @tc.type: FUNC
1108  */
1109 HWTEST_F(UIAbilityLifecycleManagerTest, OnTimeOut_001, TestSize.Level1)
1110 {
1111     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
1112     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
1113     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
1114     uint32_t msgId = 0;
1115     int64_t abilityRecordId = 0;
1116     uiAbilityLifecycleManager->OnTimeOut(msgId, abilityRecordId);
1117     uiAbilityLifecycleManager.reset();
1118 }
1119 
1120 /**
1121  * @tc.name: UIAbilityLifecycleManager_OnTimeOut_0200
1122  * @tc.desc: OnTimeOut
1123  * @tc.type: FUNC
1124  */
1125 HWTEST_F(UIAbilityLifecycleManagerTest, OnTimeOut_002, TestSize.Level1)
1126 {
1127     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
1128     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
1129     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
1130     uint32_t msgId = 0;
1131     int64_t abilityRecordId = 0;
1132     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(0, abilityRecord);
1133     uiAbilityLifecycleManager->OnTimeOut(msgId, abilityRecordId);
1134     uiAbilityLifecycleManager.reset();
1135 }
1136 
1137 /**
1138  * @tc.name: UIAbilityLifecycleManager_OnTimeOut_0300
1139  * @tc.desc: OnTimeOut
1140  * @tc.type: FUNC
1141  */
1142 HWTEST_F(UIAbilityLifecycleManagerTest, OnTimeOut_003, TestSize.Level1)
1143 {
1144     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
1145     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
1146     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
1147     uint32_t msgId = 5;
1148     int64_t abilityRecordId = 0;
1149     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(0, abilityRecord);
1150     uiAbilityLifecycleManager->OnTimeOut(msgId, abilityRecordId);
1151     uiAbilityLifecycleManager.reset();
1152 }
1153 
1154 /**
1155  * @tc.name: UIAbilityLifecycleManager_OnTimeOut_0400
1156  * @tc.desc: OnTimeOut
1157  * @tc.type: FUNC
1158  */
1159 HWTEST_F(UIAbilityLifecycleManagerTest, OnTimeOut_004, TestSize.Level1)
1160 {
1161     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
1162     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
1163     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
1164     uint32_t msgId = 6;
1165     int64_t abilityRecordId = 0;
1166     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(msgId, abilityRecord);
1167     uiAbilityLifecycleManager->OnTimeOut(msgId, abilityRecordId);
1168     uiAbilityLifecycleManager.reset();
1169 }
1170 
1171 /**
1172  * @tc.name: UIAbilityLifecycleManager_NotifySCBToHandleException_0100
1173  * @tc.desc: NotifySCBToHandleException
1174  * @tc.type: FUNC
1175  */
1176 HWTEST_F(UIAbilityLifecycleManagerTest, NotifySCBToHandleException_001, TestSize.Level1)
1177 {
1178     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
1179     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
1180     std::shared_ptr<AbilityRecord> record = nullptr;
1181     uiAbilityLifecycleManager->NotifySCBToHandleException(record,
1182         static_cast<int32_t>(ErrorLifecycleState::ABILITY_STATE_LOAD_TIMEOUT), "handleLoadTimeout");
1183     uiAbilityLifecycleManager.reset();
1184 }
1185 
1186 /**
1187  * @tc.name: UIAbilityLifecycleManager_NotifySCBToHandleException_0200
1188  * @tc.desc: NotifySCBToHandleException
1189  * @tc.type: FUNC
1190  */
1191 HWTEST_F(UIAbilityLifecycleManagerTest, NotifySCBToHandleException_002, TestSize.Level1)
1192 {
1193     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
1194     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
1195     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
1196     uiAbilityLifecycleManager->NotifySCBToHandleException(abilityRecord,
1197         static_cast<int32_t>(ErrorLifecycleState::ABILITY_STATE_LOAD_TIMEOUT), "handleLoadTimeout");
1198     uiAbilityLifecycleManager.reset();
1199 }
1200 
1201 /**
1202  * @tc.name: UIAbilityLifecycleManager_NotifySCBToHandleException_0300
1203  * @tc.desc: NotifySCBToHandleException
1204  * @tc.type: FUNC
1205  */
1206 HWTEST_F(UIAbilityLifecycleManagerTest, NotifySCBToHandleException_003, TestSize.Level1)
1207 {
1208     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
1209     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
1210     AbilityRequest abilityRequest;
1211     sptr<SessionInfo> sessionInfo(new SessionInfo());
1212     abilityRequest.sessionInfo = sessionInfo;
1213     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
1214     uiAbilityLifecycleManager->NotifySCBToHandleException(abilityRecord,
1215         static_cast<int32_t>(ErrorLifecycleState::ABILITY_STATE_LOAD_TIMEOUT), "handleLoadTimeout");
1216     uiAbilityLifecycleManager.reset();
1217 }
1218 
1219 /**
1220  * @tc.name: UIAbilityLifecycleManager_NotifySCBToHandleException_0400
1221  * @tc.desc: NotifySCBToHandleException
1222  * @tc.type: FUNC
1223  */
1224 HWTEST_F(UIAbilityLifecycleManagerTest, NotifySCBToHandleException_004, TestSize.Level1)
1225 {
1226     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
1227     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
1228     AbilityRequest abilityRequest;
1229     Rosen::SessionInfo info;
1230     sptr<SessionInfo> sessionInfo(new SessionInfo());
1231     sessionInfo->sessionToken = new Rosen::Session(info);
1232     abilityRequest.sessionInfo = sessionInfo;
1233     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
1234     uiAbilityLifecycleManager->NotifySCBToHandleException(abilityRecord,
1235         static_cast<int32_t>(ErrorLifecycleState::ABILITY_STATE_LOAD_TIMEOUT), "handleLoadTimeout");
1236     uiAbilityLifecycleManager.reset();
1237 }
1238 
1239 /**
1240  * @tc.name: UIAbilityLifecycleManager_NotifySCBToHandleException_0500
1241  * @tc.desc: NotifySCBToHandleException
1242  * @tc.type: FUNC
1243  */
1244 HWTEST_F(UIAbilityLifecycleManagerTest, NotifySCBToHandleException_005, TestSize.Level1)
1245 {
1246     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
1247     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
1248     AbilityRequest abilityRequest;
1249     Rosen::SessionInfo info;
1250     sptr<SessionInfo> sessionInfo(new SessionInfo());
1251     sessionInfo->sessionToken = new Rosen::Session(info);
1252     abilityRequest.sessionInfo = sessionInfo;
1253     sessionInfo->persistentId = 0;
1254     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
1255     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(sessionInfo->persistentId, abilityRecord);
1256     uiAbilityLifecycleManager->NotifySCBToHandleException(abilityRecord,
1257         static_cast<int32_t>(ErrorLifecycleState::ABILITY_STATE_LOAD_TIMEOUT), "handleLoadTimeout");
1258     uiAbilityLifecycleManager.reset();
1259 }
1260 
1261 /**
1262  * @tc.name: UIAbilityLifecycleManager_NotifySCBToHandleException_0600
1263  * @tc.desc: NotifySCBToHandleException
1264  * @tc.type: FUNC
1265  */
1266 HWTEST_F(UIAbilityLifecycleManagerTest, NotifySCBToHandleException_006, TestSize.Level1)
1267 {
1268     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
1269     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
1270     AbilityRequest abilityRequest;
1271     Rosen::SessionInfo info;
1272     sptr<SessionInfo> sessionInfo(new SessionInfo());
1273     sessionInfo->sessionToken = new Rosen::Session(info);
1274     abilityRequest.sessionInfo = sessionInfo;
1275     sessionInfo->persistentId = 0;
1276     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
1277     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(sessionInfo->persistentId, abilityRecord);
1278     uiAbilityLifecycleManager->NotifySCBToHandleException(abilityRecord,
1279         static_cast<int32_t>(ErrorLifecycleState::ABILITY_STATE_FOREGROUND_TIMEOUT), "handleForegroundTimeout");
1280     uiAbilityLifecycleManager.reset();
1281 }
1282 
1283 /**
1284  * @tc.name: UIAbilityLifecycleManager_NotifySCBToHandleException_0700
1285  * @tc.desc: NotifySCBToHandleException
1286  * @tc.type: FUNC
1287  */
1288 HWTEST_F(UIAbilityLifecycleManagerTest, NotifySCBToHandleException_007, TestSize.Level1)
1289 {
1290     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
1291     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
1292     AbilityRequest abilityRequest;
1293     Rosen::SessionInfo info;
1294     sptr<SessionInfo> sessionInfo(new SessionInfo());
1295     sessionInfo->sessionToken = new Rosen::Session(info);
1296     abilityRequest.sessionInfo = sessionInfo;
1297     sessionInfo->persistentId = 0;
1298     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
1299     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(sessionInfo->persistentId, abilityRecord);
1300     uiAbilityLifecycleManager->NotifySCBToHandleException(abilityRecord,
1301         static_cast<int32_t>(ErrorLifecycleState::ABILITY_STATE_DIED), "onAbilityDied");
1302     uiAbilityLifecycleManager.reset();
1303 }
1304 
1305 /**
1306  * @tc.name: UIAbilityLifecycleManager_HandleLoadTimeout_0100
1307  * @tc.desc: HandleLoadTimeout
1308  * @tc.type: FUNC
1309  */
1310 HWTEST_F(UIAbilityLifecycleManagerTest, HandleLoadTimeout_001, TestSize.Level1)
1311 {
1312     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
1313     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
1314     uiAbilityLifecycleManager->HandleLoadTimeout(nullptr);
1315     uiAbilityLifecycleManager.reset();
1316 }
1317 
1318 /**
1319  * @tc.name: UIAbilityLifecycleManager_HandleLoadTimeout_0200
1320  * @tc.desc: HandleLoadTimeout
1321  * @tc.type: FUNC
1322  */
1323 HWTEST_F(UIAbilityLifecycleManagerTest, HandleLoadTimeout_002, TestSize.Level1)
1324 {
1325     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
1326     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
1327     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
1328     uiAbilityLifecycleManager->HandleLoadTimeout(abilityRecord);
1329     uiAbilityLifecycleManager.reset();
1330 }
1331 
1332 /**
1333  * @tc.name: UIAbilityLifecycleManager_HandleLoadTimeout_0300
1334  * @tc.desc: HandleLoadTimeout
1335  * @tc.type: FUNC
1336  */
1337 HWTEST_F(UIAbilityLifecycleManagerTest, HandleLoadTimeout_003, TestSize.Level1)
1338 {
1339     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
1340     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
1341     AbilityRequest abilityRequest;
1342     sptr<SessionInfo> sessionInfo(new SessionInfo());
1343     abilityRequest.sessionInfo = sessionInfo;
1344     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
1345     uiAbilityLifecycleManager->HandleLoadTimeout(abilityRecord);
1346     uiAbilityLifecycleManager.reset();
1347 }
1348 
1349 /**
1350  * @tc.name: UIAbilityLifecycleManager_HandleLoadTimeout_0400
1351  * @tc.desc: HandleLoadTimeout
1352  * @tc.type: FUNC
1353  */
1354 HWTEST_F(UIAbilityLifecycleManagerTest, HandleLoadTimeout_004, TestSize.Level1)
1355 {
1356     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
1357     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
1358     AbilityRequest abilityRequest;
1359     Rosen::SessionInfo info;
1360     sptr<SessionInfo> sessionInfo(new SessionInfo());
1361     sessionInfo->sessionToken = new Rosen::Session(info);
1362     abilityRequest.sessionInfo = sessionInfo;
1363     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
1364     uiAbilityLifecycleManager->HandleLoadTimeout(abilityRecord);
1365     uiAbilityLifecycleManager.reset();
1366 }
1367 
1368 /**
1369  * @tc.name: UIAbilityLifecycleManager_HandleLoadTimeout_0500
1370  * @tc.desc: HandleLoadTimeout
1371  * @tc.type: FUNC
1372  */
1373 HWTEST_F(UIAbilityLifecycleManagerTest, HandleLoadTimeout_005, TestSize.Level1)
1374 {
1375     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
1376     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
1377     AbilityRequest abilityRequest;
1378     Rosen::SessionInfo info;
1379     sptr<SessionInfo> sessionInfo(new SessionInfo());
1380     sessionInfo->sessionToken = new Rosen::Session(info);
1381     abilityRequest.sessionInfo = sessionInfo;
1382     sessionInfo->persistentId = 0;
1383     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
1384     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(sessionInfo->persistentId, abilityRecord);
1385     uiAbilityLifecycleManager->HandleLoadTimeout(abilityRecord);
1386     uiAbilityLifecycleManager.reset();
1387 }
1388 
1389 /**
1390  * @tc.name: UIAbilityLifecycleManager_HandleForegroundTimeout_0100
1391  * @tc.desc: HandleForegroundTimeout
1392  * @tc.type: FUNC
1393  */
1394 HWTEST_F(UIAbilityLifecycleManagerTest, HandleForegroundTimeout_001, TestSize.Level1)
1395 {
1396     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
1397     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
1398     uiAbilityLifecycleManager->HandleForegroundTimeout(nullptr);
1399     uiAbilityLifecycleManager.reset();
1400 }
1401 
1402 /**
1403  * @tc.name: UIAbilityLifecycleManager_HandleForegroundTimeout_0200
1404  * @tc.desc: HandleForegroundTimeout
1405  * @tc.type: FUNC
1406  */
1407 HWTEST_F(UIAbilityLifecycleManagerTest, HandleForegroundTimeout_002, TestSize.Level1)
1408 {
1409     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
1410     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
1411     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
1412     abilityRecord->currentState_ = AbilityState::TERMINATING;
1413     uiAbilityLifecycleManager->HandleForegroundTimeout(abilityRecord);
1414     uiAbilityLifecycleManager.reset();
1415 }
1416 
1417 /**
1418  * @tc.name: UIAbilityLifecycleManager_HandleForegroundTimeout_0300
1419  * @tc.desc: HandleForegroundTimeout
1420  * @tc.type: FUNC
1421  */
1422 HWTEST_F(UIAbilityLifecycleManagerTest, HandleForegroundTimeout_003, TestSize.Level1)
1423 {
1424     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
1425     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
1426     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
1427     abilityRecord->currentState_ = AbilityState::FOREGROUNDING;
1428     uiAbilityLifecycleManager->HandleForegroundTimeout(abilityRecord);
1429     uiAbilityLifecycleManager.reset();
1430 }
1431 
1432 /**
1433  * @tc.name: UIAbilityLifecycleManager_HandleForegroundTimeout_0400
1434  * @tc.desc: HandleForegroundTimeout
1435  * @tc.type: FUNC
1436  */
1437 HWTEST_F(UIAbilityLifecycleManagerTest, HandleForegroundTimeout_004, TestSize.Level1)
1438 {
1439     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
1440     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
1441     AbilityRequest abilityRequest;
1442     sptr<SessionInfo> sessionInfo(new SessionInfo());
1443     abilityRequest.sessionInfo = sessionInfo;
1444     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
1445     abilityRecord->currentState_ = AbilityState::FOREGROUNDING;
1446     uiAbilityLifecycleManager->HandleForegroundTimeout(abilityRecord);
1447     uiAbilityLifecycleManager.reset();
1448 }
1449 
1450 /**
1451  * @tc.name: UIAbilityLifecycleManager_HandleForegroundTimeout_0500
1452  * @tc.desc: HandleForegroundTimeout
1453  * @tc.type: FUNC
1454  */
1455 HWTEST_F(UIAbilityLifecycleManagerTest, HandleForegroundTimeout_005, TestSize.Level1)
1456 {
1457     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
1458     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
1459     AbilityRequest abilityRequest;
1460     Rosen::SessionInfo info;
1461     sptr<SessionInfo> sessionInfo(new SessionInfo());
1462     sessionInfo->sessionToken = new Rosen::Session(info);
1463     abilityRequest.sessionInfo = sessionInfo;
1464     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
1465     abilityRecord->currentState_ = AbilityState::FOREGROUNDING;
1466     uiAbilityLifecycleManager->HandleForegroundTimeout(abilityRecord);
1467     uiAbilityLifecycleManager.reset();
1468 }
1469 
1470 /**
1471  * @tc.name: UIAbilityLifecycleManager_HandleForegroundTimeout_0600
1472  * @tc.desc: HandleForegroundTimeout
1473  * @tc.type: FUNC
1474  */
1475 HWTEST_F(UIAbilityLifecycleManagerTest, HandleForegroundTimeout_006, TestSize.Level1)
1476 {
1477     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
1478     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
1479     AbilityRequest abilityRequest;
1480     Rosen::SessionInfo info;
1481     sptr<SessionInfo> sessionInfo(new SessionInfo());
1482     sessionInfo->sessionToken = new Rosen::Session(info);
1483     abilityRequest.sessionInfo = sessionInfo;
1484     sessionInfo->persistentId = 0;
1485     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
1486     abilityRecord->currentState_ = AbilityState::FOREGROUNDING;
1487     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(sessionInfo->persistentId, abilityRecord);
1488     uiAbilityLifecycleManager->HandleForegroundTimeout(abilityRecord);
1489     uiAbilityLifecycleManager.reset();
1490 }
1491 
1492 /**
1493  * @tc.name: UIAbilityLifecycleManager_OnAbilityDied_0100
1494  * @tc.desc: OnAbilityDied
1495  * @tc.type: FUNC
1496  */
1497 HWTEST_F(UIAbilityLifecycleManagerTest, OnAbilityDied_001, TestSize.Level1)
1498 {
1499     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
1500     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
1501     uiAbilityLifecycleManager->OnAbilityDied(nullptr);
1502     uiAbilityLifecycleManager.reset();
1503 }
1504 
1505 /**
1506  * @tc.name: UIAbilityLifecycleManager_OnAbilityDied_0200
1507  * @tc.desc: OnAbilityDied
1508  * @tc.type: FUNC
1509  */
1510 HWTEST_F(UIAbilityLifecycleManagerTest, OnAbilityDied_002, TestSize.Level1)
1511 {
1512     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
1513     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
1514     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
1515     uiAbilityLifecycleManager->OnAbilityDied(abilityRecord);
1516     uiAbilityLifecycleManager.reset();
1517 }
1518 
1519 /**
1520  * @tc.name: UIAbilityLifecycleManager_OnAbilityDied_0300
1521  * @tc.desc: OnAbilityDied
1522  * @tc.type: FUNC
1523  */
1524 HWTEST_F(UIAbilityLifecycleManagerTest, OnAbilityDied_003, TestSize.Level1)
1525 {
1526     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
1527     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
1528     AbilityRequest abilityRequest;
1529     sptr<SessionInfo> sessionInfo(new SessionInfo());
1530     abilityRequest.sessionInfo = sessionInfo;
1531     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
1532     uiAbilityLifecycleManager->OnAbilityDied(abilityRecord);
1533     uiAbilityLifecycleManager.reset();
1534 }
1535 
1536 /**
1537  * @tc.name: UIAbilityLifecycleManager_OnAbilityDied_0400
1538  * @tc.desc: OnAbilityDied
1539  * @tc.type: FUNC
1540  */
1541 HWTEST_F(UIAbilityLifecycleManagerTest, OnAbilityDied_004, TestSize.Level1)
1542 {
1543     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
1544     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
1545     AbilityRequest abilityRequest;
1546     Rosen::SessionInfo info;
1547     sptr<SessionInfo> sessionInfo(new SessionInfo());
1548     sessionInfo->sessionToken = new Rosen::Session(info);
1549     abilityRequest.sessionInfo = sessionInfo;
1550     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
1551     uiAbilityLifecycleManager->OnAbilityDied(abilityRecord);
1552     uiAbilityLifecycleManager.reset();
1553 }
1554 
1555 /**
1556  * @tc.name: UIAbilityLifecycleManager_OnAbilityDied_0500
1557  * @tc.desc: OnAbilityDied
1558  * @tc.type: FUNC
1559  */
1560 HWTEST_F(UIAbilityLifecycleManagerTest, OnAbilityDied_005, TestSize.Level1)
1561 {
1562     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
1563     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
1564     AbilityRequest abilityRequest;
1565     Rosen::SessionInfo info;
1566     sptr<SessionInfo> sessionInfo(new SessionInfo());
1567     sessionInfo->sessionToken = new Rosen::Session(info);
1568     abilityRequest.sessionInfo = sessionInfo;
1569     sessionInfo->persistentId = 0;
1570     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
1571     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(sessionInfo->persistentId, abilityRecord);
1572     uiAbilityLifecycleManager->OnAbilityDied(abilityRecord);
1573     uiAbilityLifecycleManager.reset();
1574 }
1575 
1576 /**
1577  * @tc.name: UIAbilityLifecycleManager_SetRootSceneSession_0100
1578  * @tc.desc: SetRootSceneSession
1579  * @tc.type: FUNC
1580  */
1581 HWTEST_F(UIAbilityLifecycleManagerTest, SetRootSceneSession_001, TestSize.Level1)
1582 {
1583     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
1584     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
1585     sptr<IRemoteObject> object = nullptr;
1586     uiAbilityLifecycleManager->SetRootSceneSession(object);
1587     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
1588 }
1589 
1590 /**
1591  * @tc.name: UIAbilityLifecycleManager_SetRootSceneSession_0200
1592  * @tc.desc: SetRootSceneSession
1593  * @tc.type: FUNC
1594  */
1595 HWTEST_F(UIAbilityLifecycleManagerTest, SetRootSceneSession_002, TestSize.Level1)
1596 {
1597     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
1598     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
1599     auto abilityRecord = InitAbilityRecord();
1600     EXPECT_NE(abilityRecord, nullptr);
1601     auto token = abilityRecord->GetToken();
1602     EXPECT_NE(token, nullptr);
1603     auto object = token->AsObject();
1604     uiAbilityLifecycleManager->SetRootSceneSession(object);
1605     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
1606 }
1607 
1608 /**
1609  * @tc.name: UIAbilityLifecycleManager_SetRootSceneSession_0300
1610  * @tc.desc: SetRootSceneSession
1611  * @tc.type: FUNC
1612  */
1613 HWTEST_F(UIAbilityLifecycleManagerTest, SetRootSceneSession_003, TestSize.Level1)
1614 {
1615     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
1616     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
1617     Rosen::SessionInfo info;
1618     sptr<Rosen::ISession> session = new Rosen::Session(info);
1619     EXPECT_NE(session, nullptr);
1620     sptr<IRemoteObject> rootSceneSession = session->AsObject();
1621     uiAbilityLifecycleManager->SetRootSceneSession(rootSceneSession);
1622     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
1623 }
1624 
1625 /**
1626  * @tc.name: UIAbilityLifecycleManager_NotifySCBToStartUIAbility_0100
1627  * @tc.desc: NotifySCBToStartUIAbility
1628  * @tc.type: FUNC
1629  */
1630 HWTEST_F(UIAbilityLifecycleManagerTest, NotifySCBToStartUIAbility_001, TestSize.Level1)
1631 {
1632     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
1633     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
1634     AbilityRequest abilityRequest;
1635     uiAbilityLifecycleManager->NotifySCBToStartUIAbility(abilityRequest);
1636     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
1637 }
1638 
1639 /**
1640  * @tc.name: UIAbilityLifecycleManager_GetPersistentIdByAbilityRequest_0100
1641  * @tc.desc: GetPersistentIdByAbilityRequest
1642  * @tc.type: FUNC
1643  */
1644 HWTEST_F(UIAbilityLifecycleManagerTest, GetPersistentIdByAbilityRequest_001, TestSize.Level1)
1645 {
1646     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
1647     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
1648     AbilityRequest abilityRequest;
1649     abilityRequest.abilityInfo.launchMode = AppExecFwk::LaunchMode::SPECIFIED;
1650     bool reuse = false;
1651     EXPECT_EQ(uiAbilityLifecycleManager->GetPersistentIdByAbilityRequest(abilityRequest, reuse), 0);
1652 }
1653 
1654 /**
1655  * @tc.name: UIAbilityLifecycleManager_GetPersistentIdByAbilityRequest_0200
1656  * @tc.desc: GetPersistentIdByAbilityRequest
1657  * @tc.type: FUNC
1658  */
1659 HWTEST_F(UIAbilityLifecycleManagerTest, GetPersistentIdByAbilityRequest_002, TestSize.Level1)
1660 {
1661     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
1662     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
1663     AbilityRequest abilityRequest;
1664     abilityRequest.abilityInfo.launchMode = AppExecFwk::LaunchMode::STANDARD;
1665     bool reuse = false;
1666     EXPECT_EQ(uiAbilityLifecycleManager->GetPersistentIdByAbilityRequest(abilityRequest, reuse), 0);
1667 }
1668 
1669 /**
1670  * @tc.name: UIAbilityLifecycleManager_GetPersistentIdByAbilityRequest_0300
1671  * @tc.desc: GetPersistentIdByAbilityRequest
1672  * @tc.type: FUNC
1673  */
1674 HWTEST_F(UIAbilityLifecycleManagerTest, GetPersistentIdByAbilityRequest_003, TestSize.Level1)
1675 {
1676     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
1677     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
1678     AbilityRequest abilityRequest;
1679     abilityRequest.abilityInfo.launchMode = AppExecFwk::LaunchMode::SINGLETON;
1680     abilityRequest.abilityInfo.name = "testAbility";
1681     abilityRequest.abilityInfo.moduleName = "testModule";
1682     abilityRequest.abilityInfo.bundleName = "com.test.ut";
1683 
1684     Rosen::SessionInfo info;
1685     sptr<SessionInfo> sessionInfo(new SessionInfo());
1686     sessionInfo->sessionToken = new Rosen::Session(info);
1687     sessionInfo->persistentId = 1;
1688     abilityRequest.sessionInfo = sessionInfo;
1689     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
1690     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(sessionInfo->persistentId, abilityRecord);
1691     bool reuse = false;
1692     EXPECT_EQ(uiAbilityLifecycleManager->GetPersistentIdByAbilityRequest(abilityRequest, reuse),
1693         sessionInfo->persistentId);
1694 }
1695 
1696 /**
1697  * @tc.name: UIAbilityLifecycleManager_GetPersistentIdByAbilityRequest_0400
1698  * @tc.desc: GetPersistentIdByAbilityRequest
1699  * @tc.type: FUNC
1700  */
1701 HWTEST_F(UIAbilityLifecycleManagerTest, GetPersistentIdByAbilityRequest_004, TestSize.Level1)
1702 {
1703     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
1704     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
1705     AbilityRequest abilityRequest1;
1706     abilityRequest1.abilityInfo.launchMode = AppExecFwk::LaunchMode::SINGLETON;
1707 
1708     Rosen::SessionInfo info;
1709     sptr<SessionInfo> sessionInfo(new SessionInfo());
1710     sessionInfo->sessionToken = new Rosen::Session(info);
1711     sessionInfo->persistentId = 1;
1712     AbilityRequest abilityRequest;
1713     abilityRequest.sessionInfo = sessionInfo;
1714     abilityRequest.abilityInfo.name = "testAbility";
1715     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
1716     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(sessionInfo->persistentId, abilityRecord);
1717     bool reuse = false;
1718     EXPECT_EQ(uiAbilityLifecycleManager->GetPersistentIdByAbilityRequest(abilityRequest1, reuse), 0);
1719 }
1720 
1721 /**
1722  * @tc.name: UIAbilityLifecycleManager_GetReusedSpecifiedPersistentId_0100
1723  * @tc.desc: GetReusedSpecifiedPersistentId
1724  * @tc.type: FUNC
1725  */
1726 HWTEST_F(UIAbilityLifecycleManagerTest, GetReusedSpecifiedPersistentId_001, TestSize.Level1)
1727 {
1728     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
1729     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
1730     AbilityRequest abilityRequest;
1731     bool reuse = false;
1732     EXPECT_EQ(uiAbilityLifecycleManager->GetReusedSpecifiedPersistentId(abilityRequest, reuse), 0);
1733 }
1734 
1735 /**
1736  * @tc.name: UIAbilityLifecycleManager_GetReusedSpecifiedPersistentId_0200
1737  * @tc.desc: GetReusedSpecifiedPersistentId
1738  * @tc.type: FUNC
1739  */
1740 HWTEST_F(UIAbilityLifecycleManagerTest, GetReusedSpecifiedPersistentId_002, TestSize.Level1)
1741 {
1742     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
1743     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
1744     AbilityRequest abilityRequest;
1745     abilityRequest.abilityInfo.launchMode = AppExecFwk::LaunchMode::SPECIFIED;
1746     abilityRequest.abilityInfo.name = "testAbility";
1747     abilityRequest.abilityInfo.moduleName = "testModule";
1748     abilityRequest.abilityInfo.bundleName = "com.test.ut";
1749     abilityRequest.startRecent = true;
1750     std::string flag = "specified";
1751     abilityRequest.specifiedFlag = flag;
1752 
1753     Rosen::SessionInfo info;
1754     sptr<SessionInfo> sessionInfo(new SessionInfo());
1755     sessionInfo->sessionToken = new Rosen::Session(info);
1756     sessionInfo->persistentId = 1;
1757     abilityRequest.sessionInfo = sessionInfo;
1758     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
1759     abilityRecord->SetSpecifiedFlag(flag);
1760     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(sessionInfo->persistentId, abilityRecord);
1761     bool reuse = false;
1762     EXPECT_EQ(uiAbilityLifecycleManager->GetReusedSpecifiedPersistentId(abilityRequest, reuse),
1763         sessionInfo->persistentId);
1764 }
1765 
1766 /**
1767  * @tc.name: UIAbilityLifecycleManager_GetReusedSpecifiedPersistentId_0300
1768  * @tc.desc: GetReusedSpecifiedPersistentId
1769  * @tc.type: FUNC
1770  */
1771 HWTEST_F(UIAbilityLifecycleManagerTest, GetReusedSpecifiedPersistentId_003, TestSize.Level1)
1772 {
1773     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
1774     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
1775     AbilityRequest abilityRequest;
1776     abilityRequest.abilityInfo.launchMode = AppExecFwk::LaunchMode::SPECIFIED;
1777     abilityRequest.startRecent = true;
1778     std::string flag = "specified";
1779     abilityRequest.specifiedFlag = flag;
1780 
1781     Rosen::SessionInfo info;
1782     sptr<SessionInfo> sessionInfo(new SessionInfo());
1783     sessionInfo->sessionToken = new Rosen::Session(info);
1784     sessionInfo->persistentId = 1;
1785     abilityRequest.sessionInfo = sessionInfo;
1786     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
1787     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(sessionInfo->persistentId, abilityRecord);
1788     bool reuse = false;
1789     EXPECT_EQ(uiAbilityLifecycleManager->GetReusedSpecifiedPersistentId(abilityRequest, reuse), 0);
1790 }
1791 
1792 /**
1793  * @tc.name: UIAbilityLifecycleManager_GetReusedStandardPersistentId_0100
1794  * @tc.desc: GetReusedStandardPersistentId
1795  * @tc.type: FUNC
1796  */
1797 HWTEST_F(UIAbilityLifecycleManagerTest, GetReusedStandardPersistentId_001, TestSize.Level1)
1798 {
1799     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
1800     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
1801     AbilityRequest abilityRequest;
1802     bool reuse = false;
1803     EXPECT_EQ(uiAbilityLifecycleManager->GetReusedStandardPersistentId(abilityRequest, reuse), 0);
1804 }
1805 
1806 /**
1807  * @tc.name: UIAbilityLifecycleManager_GetReusedStandardPersistentId_0200
1808  * @tc.desc: GetReusedStandardPersistentId
1809  * @tc.type: FUNC
1810  */
1811 HWTEST_F(UIAbilityLifecycleManagerTest, GetReusedStandardPersistentId_002, TestSize.Level1)
1812 {
1813     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
1814     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
1815     AbilityRequest abilityRequest;
1816     abilityRequest.abilityInfo.launchMode = AppExecFwk::LaunchMode::STANDARD;
1817     abilityRequest.abilityInfo.name = "testAbility";
1818     abilityRequest.abilityInfo.moduleName = "testModule";
1819     abilityRequest.abilityInfo.bundleName = "com.test.ut";
1820     abilityRequest.startRecent = true;
1821 
1822     Rosen::SessionInfo info;
1823     sptr<SessionInfo> sessionInfo(new SessionInfo());
1824     sessionInfo->sessionToken = new Rosen::Session(info);
1825     sessionInfo->persistentId = 1;
1826     abilityRequest.sessionInfo = sessionInfo;
1827     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
1828     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(sessionInfo->persistentId, abilityRecord);
1829     bool reuse = false;
1830     EXPECT_EQ(uiAbilityLifecycleManager->GetReusedStandardPersistentId(abilityRequest, reuse),
1831         sessionInfo->persistentId);
1832 }
1833 
1834 /**
1835  * @tc.name: UIAbilityLifecycleManager_NotifySCBPendingActivation_0100
1836  * @tc.desc: NotifySCBPendingActivation
1837  * @tc.type: FUNC
1838  */
1839 HWTEST_F(UIAbilityLifecycleManagerTest, NotifySCBPendingActivation_001, TestSize.Level1)
1840 {
1841     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
1842     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
1843     AbilityRequest abilityRequest;
1844     Rosen::SessionInfo info;
1845     sptr<SessionInfo> sessionInfo(new SessionInfo());
1846     sessionInfo->sessionToken = new Rosen::Session(info);
1847     sessionInfo->persistentId = 1;
1848     abilityRequest.sessionInfo = sessionInfo;
1849     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
1850     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(sessionInfo->persistentId, abilityRecord);
1851     auto token = abilityRecord->GetToken();
1852     EXPECT_NE(token, nullptr);
1853     abilityRequest.callerToken = token->AsObject();
1854     uiAbilityLifecycleManager->NotifySCBPendingActivation(sessionInfo, abilityRequest);
1855     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
1856 }
1857 
1858 /**
1859  * @tc.name: UIAbilityLifecycleManager_ResolveLocked_0100
1860  * @tc.desc: ResolveLocked
1861  * @tc.type: FUNC
1862  */
1863 HWTEST_F(UIAbilityLifecycleManagerTest, ResolveLocked_001, TestSize.Level1)
1864 {
1865     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
1866     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
1867     AbilityRequest abilityRequest;
1868     EXPECT_EQ(uiAbilityLifecycleManager->ResolveLocked(abilityRequest), RESOLVE_CALL_ABILITY_INNER_ERR);
1869 }
1870 
1871 /**
1872  * @tc.name: UIAbilityLifecycleManager_ResolveLocked_0200
1873  * @tc.desc: ResolveLocked
1874  * @tc.type: FUNC
1875  */
1876 HWTEST_F(UIAbilityLifecycleManagerTest, ResolveLocked_002, TestSize.Level1)
1877 {
1878     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
1879     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
1880     AbilityRequest abilityRequest;
1881     abilityRequest.callType = AbilityCallType::CALL_REQUEST_TYPE;
1882     EXPECT_EQ(uiAbilityLifecycleManager->ResolveLocked(abilityRequest), RESOLVE_CALL_ABILITY_INNER_ERR);
1883 }
1884 
1885 /**
1886  * @tc.name: UIAbilityLifecycleManager_CallAbilityLocked_0100
1887  * @tc.desc: CallAbilityLocked
1888  * @tc.type: FUNC
1889  */
1890 HWTEST_F(UIAbilityLifecycleManagerTest, CallAbilityLocked_001, TestSize.Level1)
1891 {
1892     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
1893     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
1894 
1895     AbilityRequest abilityRequest;
1896     Rosen::SessionInfo info;
1897     sptr<SessionInfo> sessionInfo(new SessionInfo());
1898     sessionInfo->sessionToken = new Rosen::Session(info);
1899     sessionInfo->persistentId = 1;
1900     Want want;
1901     want.SetParam(Want::PARAM_RESV_CALL_TO_FOREGROUND, true);
1902     abilityRequest.sessionInfo = sessionInfo;
1903     abilityRequest.want = want;
1904     abilityRequest.abilityInfo.launchMode = AppExecFwk::LaunchMode::SINGLETON;
1905     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
1906     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(sessionInfo->persistentId, abilityRecord);
1907     abilityRecord->isReady_ = true;
1908 
1909     uiAbilityLifecycleManager->CallAbilityLocked(abilityRequest);
1910     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
1911 }
1912 
1913 /**
1914  * @tc.name: UIAbilityLifecycleManager_CallAbilityLocked_0200
1915  * @tc.desc: CallAbilityLocked
1916  * @tc.type: FUNC
1917  */
1918 HWTEST_F(UIAbilityLifecycleManagerTest, CallAbilityLocked_002, TestSize.Level1)
1919 {
1920     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
1921     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
1922     AbilityRequest abilityRequest;
1923     abilityRequest.callType = AbilityCallType::CALL_REQUEST_TYPE;
1924     Want want;
1925     want.SetParam(Want::PARAM_RESV_CALL_TO_FOREGROUND, true);
1926     abilityRequest.want = want;
1927     uiAbilityLifecycleManager->CallAbilityLocked(abilityRequest);
1928     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
1929 }
1930 
1931 /**
1932  * @tc.name: UIAbilityLifecycleManager_CallUIAbilityBySCB_0100
1933  * @tc.desc: CallUIAbilityBySCB
1934  * @tc.type: FUNC
1935  */
1936 HWTEST_F(UIAbilityLifecycleManagerTest, CallUIAbilityBySCB_001, TestSize.Level1)
1937 {
1938     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
1939     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
1940     sptr<SessionInfo> sessionInfo;
1941     bool isColdStart = false;
1942     uiAbilityLifecycleManager->CallUIAbilityBySCB(sessionInfo, isColdStart);
1943     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
1944 }
1945 
1946 /**
1947  * @tc.name: UIAbilityLifecycleManager_CallUIAbilityBySCB_0200
1948  * @tc.desc: CallUIAbilityBySCB
1949  * @tc.type: FUNC
1950  */
1951 HWTEST_F(UIAbilityLifecycleManagerTest, CallUIAbilityBySCB_002, TestSize.Level1)
1952 {
1953     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
1954     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
1955     sptr<SessionInfo> sessionInfo(new SessionInfo());
1956     sessionInfo->sessionToken = nullptr;
1957     bool isColdStart = false;
1958     uiAbilityLifecycleManager->CallUIAbilityBySCB(sessionInfo, isColdStart);
1959     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
1960 }
1961 
1962 /**
1963  * @tc.name: UIAbilityLifecycleManager_CallUIAbilityBySCB_0300
1964  * @tc.desc: CallUIAbilityBySCB
1965  * @tc.type: FUNC
1966  */
1967 HWTEST_F(UIAbilityLifecycleManagerTest, CallUIAbilityBySCB_003, TestSize.Level1)
1968 {
1969     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
1970     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
1971     sptr<SessionInfo> sessionInfo(new SessionInfo());
1972     AbilityRequest abilityRequest;
1973     abilityRequest.sessionInfo = sessionInfo;
1974     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
1975     auto token = abilityRecord->GetToken();
1976     EXPECT_NE(token, nullptr);
1977     sessionInfo->sessionToken = token->AsObject();
1978     bool isColdStart = false;
1979     uiAbilityLifecycleManager->CallUIAbilityBySCB(sessionInfo, isColdStart);
1980     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
1981 }
1982 
1983 /**
1984  * @tc.name: UIAbilityLifecycleManager_CallUIAbilityBySCB_0400
1985  * @tc.desc: CallUIAbilityBySCB
1986  * @tc.type: FUNC
1987  */
1988 HWTEST_F(UIAbilityLifecycleManagerTest, CallUIAbilityBySCB_004, TestSize.Level1)
1989 {
1990     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
1991     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
1992     Rosen::SessionInfo info;
1993     sptr<SessionInfo> sessionInfo(new SessionInfo());
1994     sessionInfo->sessionToken = new Rosen::Session(info);
1995     bool isColdStart = false;
1996     uiAbilityLifecycleManager->CallUIAbilityBySCB(sessionInfo, isColdStart);
1997     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
1998 }
1999 
2000 /**
2001  * @tc.name: UIAbilityLifecycleManager_CallUIAbilityBySCB_0500
2002  * @tc.desc: CallUIAbilityBySCB
2003  * @tc.type: FUNC
2004  */
2005 HWTEST_F(UIAbilityLifecycleManagerTest, CallUIAbilityBySCB_005, TestSize.Level1)
2006 {
2007     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
2008     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2009     Rosen::SessionInfo info;
2010     sptr<SessionInfo> sessionInfo(new SessionInfo());
2011     sessionInfo->sessionToken = new Rosen::Session(info);
2012     sessionInfo->uiAbilityId = 1;
2013 
2014     uiAbilityLifecycleManager->tmpAbilityMap_.emplace(1, nullptr);
2015     bool isColdStart = false;
2016     uiAbilityLifecycleManager->CallUIAbilityBySCB(sessionInfo, isColdStart);
2017     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2018 }
2019 
2020 /**
2021  * @tc.name: UIAbilityLifecycleManager_CallUIAbilityBySCB_0600
2022  * @tc.desc: CallUIAbilityBySCB
2023  * @tc.type: FUNC
2024  */
2025 HWTEST_F(UIAbilityLifecycleManagerTest, CallUIAbilityBySCB_006, TestSize.Level1)
2026 {
2027     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
2028     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2029     Rosen::SessionInfo info;
2030     sptr<SessionInfo> sessionInfo(new SessionInfo());
2031     sessionInfo->sessionToken = new Rosen::Session(info);
2032     sessionInfo->uiAbilityId = 1;
2033 
2034     AbilityRequest abilityRequest;
2035     abilityRequest.sessionInfo = sessionInfo;
2036     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
2037     uiAbilityLifecycleManager->tmpAbilityMap_.emplace(1, abilityRecord);
2038     bool isColdStart = false;
2039     uiAbilityLifecycleManager->CallUIAbilityBySCB(sessionInfo, isColdStart);
2040     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2041 }
2042 
2043 /**
2044  * @tc.name: UIAbilityLifecycleManager_CallUIAbilityBySCB_0700
2045  * @tc.desc: CallUIAbilityBySCB
2046  * @tc.type: FUNC
2047  */
2048 HWTEST_F(UIAbilityLifecycleManagerTest, CallUIAbilityBySCB_007, TestSize.Level1)
2049 {
2050     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
2051     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2052     Rosen::SessionInfo info;
2053     sptr<SessionInfo> sessionInfo(new SessionInfo());
2054     sessionInfo->sessionToken = new Rosen::Session(info);
2055     sessionInfo->uiAbilityId = 1;
2056     sessionInfo->persistentId = 1;
2057 
2058     AbilityRequest abilityRequest;
2059     abilityRequest.sessionInfo = sessionInfo;
2060     abilityRequest.abilityInfo.launchMode = AppExecFwk::LaunchMode::SINGLETON;
2061     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
2062 
2063     uiAbilityLifecycleManager->tmpAbilityMap_.emplace(1, abilityRecord);
2064     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(sessionInfo->persistentId, abilityRecord);
2065     bool isColdStart = false;
2066     uiAbilityLifecycleManager->CallUIAbilityBySCB(sessionInfo, isColdStart);
2067     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2068 }
2069 
2070 /**
2071  * @tc.name: UIAbilityLifecycleManager_CallRequestDone_0100
2072  * @tc.desc: CallRequestDone
2073  * @tc.type: FUNC
2074  */
2075 HWTEST_F(UIAbilityLifecycleManagerTest, CallRequestDone_001, TestSize.Level1)
2076 {
2077     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
2078     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2079     uiAbilityLifecycleManager->CallRequestDone(nullptr, nullptr);
2080     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2081 }
2082 
2083 /**
2084  * @tc.name: UIAbilityLifecycleManager_CallRequestDone_0200
2085  * @tc.desc: CallRequestDone
2086  * @tc.type: FUNC
2087  */
2088 HWTEST_F(UIAbilityLifecycleManagerTest, CallRequestDone_002, TestSize.Level1)
2089 {
2090     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
2091     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2092     AbilityRequest abilityRequest;
2093     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
2094     uiAbilityLifecycleManager->CallRequestDone(abilityRecord, nullptr);
2095     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2096 }
2097 
2098 /**
2099  * @tc.name: UIAbilityLifecycleManager_CallRequestDone_0300
2100  * @tc.desc: CallRequestDone
2101  * @tc.type: FUNC
2102  */
2103 HWTEST_F(UIAbilityLifecycleManagerTest, CallRequestDone_003, TestSize.Level1)
2104 {
2105     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
2106     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2107     AbilityRequest abilityRequest;
2108     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
2109     auto token = abilityRecord->GetToken();
2110     EXPECT_NE(token, nullptr);
2111     uiAbilityLifecycleManager->CallRequestDone(abilityRecord, token->AsObject());
2112     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2113 }
2114 
2115 /**
2116  * @tc.name: UIAbilityLifecycleManager_ReleaseCallLocked_0100
2117  * @tc.desc: ReleaseCallLocked
2118  * @tc.type: FUNC
2119  */
2120 HWTEST_F(UIAbilityLifecycleManagerTest, ReleaseCallLocked_001, TestSize.Level1)
2121 {
2122     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
2123     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2124     sptr<IAbilityConnection> connect = new UIAbilityLifcecycleManagerTestStub();
2125     AppExecFwk::ElementName element;
2126     auto ret = uiAbilityLifecycleManager->ReleaseCallLocked(connect, element);
2127     EXPECT_EQ(ret, RELEASE_CALL_ABILITY_INNER_ERR);
2128 }
2129 
2130 /**
2131  * @tc.name: UIAbilityLifecycleManager_ReleaseCallLocked_0200
2132  * @tc.desc: ReleaseCallLocked
2133  * @tc.type: FUNC
2134  */
2135 HWTEST_F(UIAbilityLifecycleManagerTest, ReleaseCallLocked_002, TestSize.Level1)
2136 {
2137     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
2138     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2139     auto abilityRecord = InitAbilityRecord();
2140     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(1, abilityRecord);
2141     sptr<IAbilityConnection> connect = new UIAbilityLifcecycleManagerTestStub();
2142     AppExecFwk::ElementName element("", "com.example.unittest", "MainAbility");
2143     auto ret = uiAbilityLifecycleManager->ReleaseCallLocked(connect, element);
2144     EXPECT_EQ(ret, RELEASE_CALL_ABILITY_INNER_ERR);
2145 }
2146 
2147 /**
2148  * @tc.name: UIAbilityLifecycleManager_Dump_001
2149  * @tc.desc: Dump
2150  * @tc.type: FUNC
2151  */
2152 HWTEST_F(UIAbilityLifecycleManagerTest, Dump_001, TestSize.Level1)
2153 {
2154     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
2155     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2156     AbilityRequest abilityRequest;
2157     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
2158     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(1, abilityRecord);
2159     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(1, nullptr);
2160     std::vector<std::string> info;
2161     uiAbilityLifecycleManager->Dump(info);
2162 }
2163 
2164 /**
2165  * @tc.name: UIAbilityLifecycleManager_DumpMissionList_001
2166  * @tc.desc: DumpMissionList
2167  * @tc.type: FUNC
2168  */
2169 HWTEST_F(UIAbilityLifecycleManagerTest, DumpMissionList_001, TestSize.Level1)
2170 {
2171     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
2172     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2173     AbilityRequest abilityRequest;
2174     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
2175     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(1, nullptr);
2176     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(1, abilityRecord);
2177     std::vector<std::string> info;
2178     bool isClient = false;
2179     std::string args;
2180     uiAbilityLifecycleManager->DumpMissionList(info, isClient, args);
2181 }
2182 
2183 /**
2184  * @tc.name: UIAbilityLifecycleManager_DumpMissionList_002
2185  * @tc.desc: DumpMissionList
2186  * @tc.type: FUNC
2187  */
2188 HWTEST_F(UIAbilityLifecycleManagerTest, DumpMissionList_002, TestSize.Level1)
2189 {
2190     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
2191     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2192     AbilityRequest abilityRequest;
2193     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
2194     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(1, abilityRecord);
2195     std::vector<std::string> info;
2196     bool isClient = false;
2197     std::string args;
2198     uiAbilityLifecycleManager->DumpMissionList(info, isClient, args);
2199 }
2200 
2201 /**
2202  * @tc.name: UIAbilityLifecycleManager_DumpMissionListByRecordId_001
2203  * @tc.desc: DumpMissionListByRecordId
2204  * @tc.type: FUNC
2205  */
2206 HWTEST_F(UIAbilityLifecycleManagerTest, DumpMissionListByRecordId_001, TestSize.Level1)
2207 {
2208     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
2209     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2210     AbilityRequest abilityRequest;
2211     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
2212     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(1, nullptr);
2213     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(1, abilityRecord);
2214     std::vector<std::string> info;
2215     bool isClient = false;
2216     int32_t abilityRecordId = 0;
2217     std::vector<std::string> params;
2218     uiAbilityLifecycleManager->DumpMissionListByRecordId(info, isClient, abilityRecordId, params);
2219 }
2220 
2221 /**
2222  * @tc.name: UIAbilityLifecycleManager_DumpMissionListByRecordId_002
2223  * @tc.desc: DumpMissionListByRecordId
2224  * @tc.type: FUNC
2225  */
2226 HWTEST_F(UIAbilityLifecycleManagerTest, DumpMissionListByRecordId_002, TestSize.Level1)
2227 {
2228     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
2229     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2230     AbilityRequest abilityRequest;
2231     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
2232     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(1, abilityRecord);
2233     std::vector<std::string> info;
2234     bool isClient = false;
2235     int32_t abilityRecordId = 1;
2236     std::vector<std::string> params;
2237     uiAbilityLifecycleManager->DumpMissionListByRecordId(info, isClient, abilityRecordId, params);
2238 }
2239 
2240 /**
2241  * @tc.name: UIAbilityLifecycleManager_EraseSpecifiedAbilityRecord_0100
2242  * @tc.desc: EraseSpecifiedAbilityRecord
2243  * @tc.type: FUNC
2244  */
2245 HWTEST_F(UIAbilityLifecycleManagerTest, EraseSpecifiedAbilityRecord_001, TestSize.Level1)
2246 {
2247     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
2248     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2249     std::shared_ptr<AbilityRecord> abilityRecord1 = InitAbilityRecord();
2250     std::shared_ptr<AbilityRecord> abilityRecord2 = InitAbilityRecord();
2251     UIAbilityLifecycleManager::SpecifiedInfo specifiedInfo1;
2252     UIAbilityLifecycleManager::SpecifiedInfo specifiedInfo2;
2253     UIAbilityLifecycleManager::SpecifiedInfo specifiedInfo3;
2254     UIAbilityLifecycleManager::SpecifiedInfo specifiedInfo4;
2255     specifiedInfo1.abilityName = "MainAbility";
2256     specifiedInfo1.bundleName = "com.example.unittest";
2257     specifiedInfo1.flag = "flag";
2258     specifiedInfo2.abilityName = "MainAbility2";
2259     specifiedInfo2.bundleName = "com.example.unittest";
2260     specifiedInfo2.flag = "flag";
2261     specifiedInfo3.abilityName = "MainAbility";
2262     specifiedInfo3.bundleName = "com.example.unittest2";
2263     specifiedInfo3.flag = "flag";
2264     specifiedInfo4.abilityName = "MainAbility";
2265     specifiedInfo4.bundleName = "com.example.unittest2";
2266     specifiedInfo4.flag = "flag2";
2267     uiAbilityLifecycleManager->specifiedAbilityMap_.emplace(specifiedInfo1, abilityRecord1);
2268     uiAbilityLifecycleManager->specifiedAbilityMap_.emplace(specifiedInfo1, nullptr);
2269     uiAbilityLifecycleManager->specifiedAbilityMap_.emplace(specifiedInfo1, abilityRecord2);
2270     uiAbilityLifecycleManager->specifiedAbilityMap_.emplace(specifiedInfo2, abilityRecord1);
2271     uiAbilityLifecycleManager->specifiedAbilityMap_.emplace(specifiedInfo3, abilityRecord1);
2272     uiAbilityLifecycleManager->specifiedAbilityMap_.emplace(specifiedInfo4, abilityRecord1);
2273     uiAbilityLifecycleManager->EraseSpecifiedAbilityRecord(abilityRecord1);
2274     uiAbilityLifecycleManager.reset();
2275 }
2276 
2277 /**
2278  * @tc.name: UIAbilityLifecycleManager_OnAcceptWantResponse_0100
2279  * @tc.desc: OnAcceptWantResponse
2280  * @tc.type: FUNC
2281  */
2282 HWTEST_F(UIAbilityLifecycleManagerTest, OnAcceptWantResponse_001, TestSize.Level1)
2283 {
2284     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
2285     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2286     Want want;
2287     std::string flag = "flag";
2288     uiAbilityLifecycleManager->OnAcceptWantResponse(want, flag);
2289 
2290     AbilityRequest abilityRequest;
2291     uiAbilityLifecycleManager->OnAcceptWantResponse(want, flag);
2292 
2293     abilityRequest.abilityInfo.launchMode = AppExecFwk::LaunchMode::SPECIFIED;
2294     uiAbilityLifecycleManager->OnAcceptWantResponse(want, flag);
2295 
2296     uiAbilityLifecycleManager->OnAcceptWantResponse(want, "");
2297     uiAbilityLifecycleManager.reset();
2298 }
2299 
2300 #ifdef WITH_DLP
2301 /**
2302  * @tc.name: UIAbilityLifecycleManager_OnAcceptWantResponse_0200
2303  * @tc.desc: OnAcceptWantResponse
2304  * @tc.type: FUNC
2305  */
2306 HWTEST_F(UIAbilityLifecycleManagerTest, OnAcceptWantResponse_002, TestSize.Level1)
2307 {
2308     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
2309     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2310     Want want;
2311     std::string flag = "flag";
2312     AbilityRequest abilityRequest;
2313     abilityRequest.abilityInfo.launchMode = AppExecFwk::LaunchMode::SPECIFIED;
2314     abilityRequest.startRecent = true;
2315     abilityRequest.abilityInfo.bundleName = "com.example.unittest";
2316     abilityRequest.abilityInfo.name = "MainAbility";
2317     abilityRequest.abilityInfo.moduleName = "entry";
2318     abilityRequest.specifiedFlag = flag;
2319     want.SetParam(DLP_INDEX, 1);
2320     abilityRequest.want = want;
2321     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
2322     abilityRecord->abilityInfo_.launchMode = AppExecFwk::LaunchMode::SPECIFIED;
2323     abilityRecord->abilityInfo_.moduleName = "entry";
2324     abilityRecord->SetAppIndex(1);
2325     abilityRecord->SetSpecifiedFlag(flag);
2326     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(1, abilityRecord);
2327     uiAbilityLifecycleManager->OnAcceptWantResponse(want, flag);
2328 
2329     UIAbilityLifecycleManager::SpecifiedInfo specifiedInfo;
2330     specifiedInfo.abilityName = "MainAbility";
2331     specifiedInfo.bundleName = "com.example.unittest";
2332     specifiedInfo.flag = "flag";
2333     uiAbilityLifecycleManager->specifiedAbilityMap_.emplace(specifiedInfo, abilityRecord);
2334     uiAbilityLifecycleManager->OnAcceptWantResponse(want, flag);
2335 
2336     std::shared_ptr<AbilityRecord> callerAbility = InitAbilityRecord();
2337     abilityRequest.callerToken = callerAbility->GetToken()->AsObject();
2338     uiAbilityLifecycleManager->OnAcceptWantResponse(want, flag);
2339     uiAbilityLifecycleManager.reset();
2340 }
2341 #endif // WITH_DLP
2342 
2343 /**
2344  * @tc.name: UIAbilityLifecycleManager_StartSpecifiedAbilityBySCB_0100
2345  * @tc.desc: StartSpecifiedAbilityBySCB
2346  * @tc.type: FUNC
2347  */
2348 HWTEST_F(UIAbilityLifecycleManagerTest, StartSpecifiedAbilityBySCB_001, TestSize.Level1)
2349 {
2350     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
2351     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2352     Want want;
2353     uiAbilityLifecycleManager->StartSpecifiedAbilityBySCB(want);
2354     uiAbilityLifecycleManager.reset();
2355 }
2356 
2357 /**
2358  * @tc.name: UIAbilityLifecycleManager_GetReusedSpecifiedAbility_0100
2359  * @tc.desc: GetReusedSpecifiedAbility
2360  * @tc.type: FUNC
2361  */
2362 HWTEST_F(UIAbilityLifecycleManagerTest, GetReusedSpecifiedAbility_001, TestSize.Level1)
2363 {
2364     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
2365     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2366     Want want;
2367     std::string flag = "flag";
2368     UIAbilityLifecycleManager::SpecifiedInfo specifiedInfo;
2369     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
2370     specifiedInfo.flag = "flag2";
2371     want.SetElementName(specifiedInfo.abilityName, specifiedInfo.bundleName);
2372     uiAbilityLifecycleManager->specifiedAbilityMap_.emplace(specifiedInfo, abilityRecord);
2373     specifiedInfo.abilityName = "MainAbility2";
2374     specifiedInfo.flag = "flag";
2375     uiAbilityLifecycleManager->specifiedAbilityMap_.emplace(specifiedInfo, abilityRecord);
2376     specifiedInfo.abilityName = "MainAbility";
2377     specifiedInfo.bundleName = "com.example.unittest2";
2378     uiAbilityLifecycleManager->specifiedAbilityMap_.emplace(specifiedInfo, abilityRecord);
2379     uiAbilityLifecycleManager->GetReusedSpecifiedAbility(want, flag);
2380     uiAbilityLifecycleManager.reset();
2381 }
2382 
2383 /**
2384  * @tc.name: UIAbilityLifecycleManager_NotifyRestartSpecifiedAbility_0100
2385  * @tc.desc: NotifyRestartSpecifiedAbility
2386  * @tc.type: FUNC
2387  */
2388 HWTEST_F(UIAbilityLifecycleManagerTest, NotifyRestartSpecifiedAbility_001, TestSize.Level1)
2389 {
2390     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
2391     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2392     AbilityRequest request;
2393     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
2394     sptr<IRemoteObject> token = abilityRecord->GetToken();
2395     request.abilityInfoCallback = new MockAbilityInfoCallbackStub();
2396     uiAbilityLifecycleManager->NotifyRestartSpecifiedAbility(request, token);
2397     uiAbilityLifecycleManager.reset();
2398 }
2399 
2400 /**
2401  * @tc.name: UIAbilityLifecycleManager_NotifyStartSpecifiedAbility_0100
2402  * @tc.desc: NotifyStartSpecifiedAbility
2403  * @tc.type: FUNC
2404  */
2405 HWTEST_F(UIAbilityLifecycleManagerTest, NotifyStartSpecifiedAbility_001, TestSize.Level1)
2406 {
2407     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
2408     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2409     AbilityRequest request;
2410     Want want;
2411     request.abilityInfoCallback = new MockAbilityInfoCallbackStub();
2412     uiAbilityLifecycleManager->NotifyStartSpecifiedAbility(request, want);
2413     uiAbilityLifecycleManager.reset();
2414 }
2415 
2416 /**
2417  * @tc.name: UIAbilityLifecycleManager_MoveAbilityToFront_0100
2418  * @tc.desc: MoveAbilityToFront
2419  * @tc.type: FUNC
2420  */
2421 HWTEST_F(UIAbilityLifecycleManagerTest, MoveAbilityToFront_001, TestSize.Level1)
2422 {
2423     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
2424     AbilityRequest abilityRequest;
2425     int res = uiAbilityLifecycleManager->MoveAbilityToFront(abilityRequest, nullptr, nullptr, nullptr);
2426     EXPECT_EQ(res, ERR_INVALID_VALUE);
2427 
2428     abilityRequest.sessionInfo = new SessionInfo();
2429     abilityRequest.appInfo.bundleName = "com.example.unittest";
2430     abilityRequest.abilityInfo.name = "MainAbility";
2431     abilityRequest.abilityInfo.type = AppExecFwk::AbilityType::PAGE;
2432     std::shared_ptr<AbilityRecord> abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
2433     res = uiAbilityLifecycleManager->MoveAbilityToFront(abilityRequest, abilityRecord, nullptr, nullptr);
2434     EXPECT_EQ(res, ERR_OK);
2435 
2436     auto startOptions = std::make_shared<StartOptions>();
2437     res = uiAbilityLifecycleManager->MoveAbilityToFront(abilityRequest, abilityRecord, nullptr, nullptr);
2438     EXPECT_EQ(res, ERR_OK);
2439 
2440     uiAbilityLifecycleManager.reset();
2441 }
2442 
2443 /**
2444  * @tc.name: UIAbilityLifecycleManager_SendSessionInfoToSCB_0100
2445  * @tc.desc: SendSessionInfoToSCB
2446  * @tc.type: FUNC
2447  */
2448 HWTEST_F(UIAbilityLifecycleManagerTest, SendSessionInfoToSCB_001, TestSize.Level1)
2449 {
2450     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
2451     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2452     Rosen::SessionInfo info;
2453     sptr<SessionInfo> sessionInfo(new SessionInfo());
2454     AbilityRequest abilityRequest;
2455     sessionInfo->sessionToken = new Rosen::Session(info);
2456     abilityRequest.sessionInfo = sessionInfo;
2457     abilityRequest.appInfo.bundleName = "com.example.unittest";
2458     abilityRequest.abilityInfo.name = "MainAbility";
2459     abilityRequest.abilityInfo.type = AppExecFwk::AbilityType::PAGE;
2460     std::shared_ptr<AbilityRecord> callerAbility = AbilityRecord::CreateAbilityRecord(abilityRequest);
2461     int res = uiAbilityLifecycleManager->SendSessionInfoToSCB(callerAbility, sessionInfo);
2462     EXPECT_EQ(res, ERR_OK);
2463 
2464     sessionInfo->sessionToken = nullptr;
2465     abilityRequest.sessionInfo = sessionInfo;
2466     callerAbility = AbilityRecord::CreateAbilityRecord(abilityRequest);
2467     res = uiAbilityLifecycleManager->SendSessionInfoToSCB(callerAbility, sessionInfo);
2468     EXPECT_EQ(res, ERR_INVALID_VALUE);
2469 
2470     abilityRequest.sessionInfo = nullptr;
2471     callerAbility = AbilityRecord::CreateAbilityRecord(abilityRequest);
2472     auto token = callerAbility->GetToken();
2473     EXPECT_NE(token, nullptr);
2474     auto object = token->AsObject();
2475     uiAbilityLifecycleManager->SetRootSceneSession(object);
2476     res = uiAbilityLifecycleManager->SendSessionInfoToSCB(callerAbility, sessionInfo);
2477     EXPECT_EQ(res, ERR_INVALID_VALUE);
2478 
2479     uiAbilityLifecycleManager->SetRootSceneSession(nullptr);
2480     res = uiAbilityLifecycleManager->SendSessionInfoToSCB(callerAbility, sessionInfo);
2481     EXPECT_EQ(res, ERR_INVALID_VALUE);
2482 
2483     uiAbilityLifecycleManager.reset();
2484 }
2485 
2486 /**
2487  * @tc.name: UIAbilityLifecycleManager_StartAbilityBySpecifed_0100
2488  * @tc.desc: StartAbilityBySpecifed
2489  * @tc.type: FUNC
2490  */
2491 HWTEST_F(UIAbilityLifecycleManagerTest, StartAbilityBySpecifed_001, TestSize.Level1)
2492 {
2493     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
2494     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2495     AbilityRequest request;
2496     std::shared_ptr<AbilityRecord> callerAbility = nullptr;
2497     uiAbilityLifecycleManager->StartAbilityBySpecifed(request, callerAbility);
2498     uiAbilityLifecycleManager.reset();
2499 }
2500 
2501 /**
2502  * @tc.name: UIAbilityLifecycleManager_GetAbilityStateByPersistentId_0100
2503  * @tc.desc: GetAbilityStateByPersistentId
2504  * @tc.type: FUNC
2505  */
2506 HWTEST_F(UIAbilityLifecycleManagerTest, GetAbilityStateByPersistentId_001, TestSize.Level1)
2507 {
2508     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
2509     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2510     int32_t persistentId = 100;
2511     bool state;
2512     int32_t ret = uiAbilityLifecycleManager->GetAbilityStateByPersistentId(persistentId, state);
2513     EXPECT_EQ(ERR_INVALID_VALUE, ret);
2514 }
2515 
2516 /**
2517  * @tc.name: UIAbilityLifecycleManager_GetAbilityStateByPersistentId_0200
2518  * @tc.desc: GetAbilityStateByPersistentId
2519  * @tc.type: FUNC
2520  */
2521 HWTEST_F(UIAbilityLifecycleManagerTest, GetAbilityStateByPersistentId_002, TestSize.Level1)
2522 {
2523     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
2524     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2525     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
2526     abilityRecord->SetPendingState(AbilityState::INITIAL);
2527     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(100, abilityRecord);
2528     int32_t persistentId = 100;
2529     bool state;
2530     int32_t ret = uiAbilityLifecycleManager->GetAbilityStateByPersistentId(persistentId, state);
2531     EXPECT_EQ(ERR_OK, ret);
2532 }
2533 
2534 /**
2535  * @tc.name: UIAbilityLifecycleManager_UpdateProcessName_0100
2536  * @tc.desc: UpdateProcessName
2537  * @tc.type: FUNC
2538  */
2539 HWTEST_F(UIAbilityLifecycleManagerTest, UpdateProcessName_001, TestSize.Level1)
2540 {
2541     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
2542     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2543     sptr<SessionInfo> sessionInfo = new (std::nothrow) SessionInfo();
2544     sessionInfo->processOptions = std::make_shared<ProcessOptions>();
2545     EXPECT_NE(sessionInfo->processOptions, nullptr);
2546     sessionInfo->processOptions->processMode = ProcessMode::NEW_PROCESS_ATTACH_TO_PARENT;
2547     AbilityRequest abilityRequest;
2548     abilityRequest.sessionInfo = sessionInfo;
2549     abilityRequest.abilityInfo.bundleName = "com.example.unittest";
2550     abilityRequest.abilityInfo.moduleName = "entry";
2551     abilityRequest.abilityInfo.name = "MainAbility";
2552     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
2553     uiAbilityLifecycleManager->UpdateProcessName(abilityRequest, abilityRecord);
2554     EXPECT_EQ("com.example.unittest:entry:MainAbility:0", abilityRecord->GetProcessName());
2555 }
2556 
2557 /**
2558  * @tc.name: UIAbilityLifecycleManager_ChangeAbilityVisibility_0100
2559  * @tc.desc: ChangeAbilityVisibility
2560  * @tc.type: FUNC
2561  */
2562 HWTEST_F(UIAbilityLifecycleManagerTest, ChangeAbilityVisibility_001, TestSize.Level1)
2563 {
2564     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
2565     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2566     int32_t ret = uiAbilityLifecycleManager->ChangeAbilityVisibility(nullptr, true);
2567     EXPECT_EQ(ERR_INVALID_VALUE, ret);
2568 }
2569 
2570 /**
2571  * @tc.name: UIAbilityLifecycleManager_ChangeUIAbilityVisibilityBySCB_0100
2572  * @tc.desc: ChangeUIAbilityVisibilityBySCB
2573  * @tc.type: FUNC
2574  */
2575 HWTEST_F(UIAbilityLifecycleManagerTest, ChangeUIAbilityVisibilityBySCB_001, TestSize.Level1)
2576 {
2577     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
2578     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2579     int32_t ret = uiAbilityLifecycleManager->ChangeUIAbilityVisibilityBySCB(nullptr, true);
2580     EXPECT_EQ(ERR_INVALID_VALUE, ret);
2581 }
2582 
2583 /**
2584  * @tc.name: UIAbilityLifecycleManager_IsContainsAbility_0100
2585  * @tc.desc: IsContainsAbility
2586  * @tc.type: FUNC
2587  */
2588 HWTEST_F(UIAbilityLifecycleManagerTest, IsContainsAbility_001, TestSize.Level1)
2589 {
2590     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
2591     EXPECT_NE(mgr, nullptr);
2592     sptr<IRemoteObject> token = nullptr;
2593     bool boolValue = mgr->IsContainsAbility(token);
2594     EXPECT_FALSE(boolValue);
2595 }
2596 
2597 /**
2598  * @tc.name: UIAbilityLifecycleManager_IsContainsAbility_0200
2599  * @tc.desc: IsContainsAbility
2600  * @tc.type: FUNC
2601  */
2602 HWTEST_F(UIAbilityLifecycleManagerTest, IsContainsAbility_002, TestSize.Level1)
2603 {
2604     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
2605     EXPECT_NE(mgr, nullptr);
2606     AbilityRequest abilityRequest;
2607     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
2608     auto&& token = abilityRecord->GetToken()->AsObject();
2609     mgr->sessionAbilityMap_.emplace(1, abilityRecord);
2610     bool boolValue = mgr->IsContainsAbility(token);
2611     EXPECT_TRUE(boolValue);
2612 }
2613 
2614 /**
2615  * @tc.name: UIAbilityLifecycleManager_IsContainsAbilityInner_0100
2616  * @tc.desc: IsContainsAbilityInner
2617  * @tc.type: FUNC
2618  */
2619 HWTEST_F(UIAbilityLifecycleManagerTest, IsContainsAbilityInner_001, TestSize.Level1)
2620 {
2621     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
2622     EXPECT_NE(mgr, nullptr);
2623     sptr<IRemoteObject> token = nullptr;
2624     bool boolValue = mgr->IsContainsAbilityInner(token);
2625     EXPECT_FALSE(boolValue);
2626 }
2627 
2628 /**
2629  * @tc.name: UIAbilityLifecycleManager_IsContainsAbilityInner_0200
2630  * @tc.desc: IsContainsAbilityInner
2631  * @tc.type: FUNC
2632  */
2633 HWTEST_F(UIAbilityLifecycleManagerTest, IsContainsAbilityInner_002, TestSize.Level1)
2634 {
2635     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
2636     EXPECT_NE(mgr, nullptr);
2637     AbilityRequest abilityRequest;
2638     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
2639     auto&& token = abilityRecord->GetToken()->AsObject();
2640     mgr->sessionAbilityMap_.emplace(1, abilityRecord);
2641     bool boolValue = mgr->IsContainsAbilityInner(token);
2642     EXPECT_TRUE(boolValue);
2643 }
2644 
2645 /**
2646  * @tc.name: UIAbilityLifecycleManager_NotifySCBToMinimizeUIAbility_0100
2647  * @tc.desc: NotifySCBToMinimizeUIAbility
2648  * @tc.type: FUNC
2649  */
2650 HWTEST_F(UIAbilityLifecycleManagerTest, NotifySCBToMinimizeUIAbility_001, TestSize.Level1)
2651 {
2652     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
2653     sptr<IRemoteObject> token = nullptr;
2654     EXPECT_NE(mgr->NotifySCBToMinimizeUIAbility(token), ERR_OK);
2655 }
2656 
2657 /**
2658  * @tc.name: UIAbilityLifecycleManager_GetUIAbilityRecordBySessionInfo_0100
2659  * @tc.desc: GetUIAbilityRecordBySessionInfo
2660  * @tc.type: FUNC
2661  */
2662 HWTEST_F(UIAbilityLifecycleManagerTest, GetUIAbilityRecordBySessionInfo_001, TestSize.Level1)
2663 {
2664     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
2665     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2666     sptr<SessionInfo> sessionInfo = nullptr;
2667     EXPECT_EQ(uiAbilityLifecycleManager->GetUIAbilityRecordBySessionInfo(sessionInfo), nullptr);
2668 }
2669 
2670 /**
2671  * @tc.name: UIAbilityLifecycleManager_GetUIAbilityRecordBySessionInfo_0200
2672  * @tc.desc: GetUIAbilityRecordBySessionInfo
2673  * @tc.type: FUNC
2674  */
2675 HWTEST_F(UIAbilityLifecycleManagerTest, GetUIAbilityRecordBySessionInfo_002, TestSize.Level1)
2676 {
2677     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
2678     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2679     sptr<SessionInfo> sessionInfo(new SessionInfo());
2680     sessionInfo->sessionToken = nullptr;
2681     EXPECT_EQ(uiAbilityLifecycleManager->GetUIAbilityRecordBySessionInfo(sessionInfo), nullptr);
2682 }
2683 
2684 /**
2685  * @tc.name: UIAbilityLifecycleManager_GetUIAbilityRecordBySessionInfo_0300
2686  * @tc.desc: GetUIAbilityRecordBySessionInfo
2687  * @tc.type: FUNC
2688  */
2689 HWTEST_F(UIAbilityLifecycleManagerTest, GetUIAbilityRecordBySessionInfo_003, TestSize.Level1)
2690 {
2691     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
2692     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2693     Rosen::SessionInfo info;
2694     sptr<SessionInfo> sessionInfo(new SessionInfo());
2695     sessionInfo->sessionToken = new Rosen::Session(info);
2696     EXPECT_EQ(uiAbilityLifecycleManager->GetUIAbilityRecordBySessionInfo(sessionInfo), nullptr);
2697 }
2698 
2699 /**
2700  * @tc.name: UIAbilityLifecycleManager_GetUIAbilityRecordBySessionInfo_0400
2701  * @tc.desc: GetUIAbilityRecordBySessionInfo
2702  * @tc.type: FUNC
2703  */
2704 HWTEST_F(UIAbilityLifecycleManagerTest, GetUIAbilityRecordBySessionInfo_004, TestSize.Level1)
2705 {
2706     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
2707     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2708     AbilityRequest abilityRequest;
2709     Rosen::SessionInfo info;
2710     sptr<SessionInfo> sessionInfo(new SessionInfo());
2711     sessionInfo->sessionToken = new Rosen::Session(info);
2712     sessionInfo->persistentId = 1;
2713     abilityRequest.sessionInfo = sessionInfo;
2714     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
2715     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(sessionInfo->persistentId, abilityRecord);
2716     EXPECT_NE(uiAbilityLifecycleManager->GetUIAbilityRecordBySessionInfo(sessionInfo), nullptr);
2717 }
2718 
2719 /**
2720  * @tc.name: UIAbilityLifecycleManager_OnStartSpecifiedProcessResponse_0100
2721  * @tc.desc: OnStartSpecifiedProcessResponse
2722  * @tc.type: FUNC
2723  */
2724 HWTEST_F(UIAbilityLifecycleManagerTest, OnStartSpecifiedProcessResponse_001, TestSize.Level1)
2725 {
2726     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
2727     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2728     Want want;
2729     std::string flag = "flag";
2730     uiAbilityLifecycleManager->OnStartSpecifiedProcessResponse(want, flag);
2731     uiAbilityLifecycleManager.reset();
2732 }
2733 
2734 /**
2735  * @tc.name: UIAbilityLifecycleManager_OnStartSpecifiedProcessResponse_0200
2736  * @tc.desc: OnStartSpecifiedProcessResponse
2737  * @tc.type: FUNC
2738  */
2739 HWTEST_F(UIAbilityLifecycleManagerTest, OnStartSpecifiedProcessResponse_002, TestSize.Level1)
2740 {
2741     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
2742     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2743     Want want;
2744     std::string flag = "flag";
2745     int32_t requestId = 100;
2746     uiAbilityLifecycleManager->OnStartSpecifiedProcessResponse(want, flag, requestId);
2747     uiAbilityLifecycleManager.reset();
2748 }
2749 
2750 /**
2751  * @tc.name: UIAbilityLifecycleManager_OnStartSpecifiedAbilityTimeoutResponse_0100
2752  * @tc.desc: OnStartSpecifiedAbilityTimeoutResponse
2753  * @tc.type: FUNC
2754  */
2755 HWTEST_F(UIAbilityLifecycleManagerTest, OnStartSpecifiedAbilityTimeoutResponse_001, TestSize.Level1)
2756 {
2757     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
2758     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2759     Want want;
2760     uiAbilityLifecycleManager->OnStartSpecifiedAbilityTimeoutResponse(want);
2761     uiAbilityLifecycleManager.reset();
2762 }
2763 
2764 /**
2765  * @tc.name: UIAbilityLifecycleManager_OnStartSpecifiedAbilityTimeoutResponse_0200
2766  * @tc.desc: OnStartSpecifiedAbilityTimeoutResponse
2767  * @tc.type: FUNC
2768  */
2769 HWTEST_F(UIAbilityLifecycleManagerTest, OnStartSpecifiedAbilityTimeoutResponse_002, TestSize.Level1)
2770 {
2771     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
2772     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2773     Want want;
2774     int32_t requestId = 100;
2775     uiAbilityLifecycleManager->OnStartSpecifiedAbilityTimeoutResponse(want, requestId);
2776     uiAbilityLifecycleManager.reset();
2777 }
2778 
2779 /**
2780  * @tc.name: UIAbilityLifecycleManager_OnStartSpecifiedProcessTimeoutResponse_0100
2781  * @tc.desc: OnStartSpecifiedProcessTimeoutResponse
2782  * @tc.type: FUNC
2783  */
2784 HWTEST_F(UIAbilityLifecycleManagerTest, OnStartSpecifiedProcessTimeoutResponse_001, TestSize.Level1)
2785 {
2786     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
2787     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2788     Want want;
2789     uiAbilityLifecycleManager->OnStartSpecifiedProcessTimeoutResponse(want);
2790     uiAbilityLifecycleManager.reset();
2791 }
2792 
2793 /**
2794  * @tc.name: UIAbilityLifecycleManager_OnStartSpecifiedProcessTimeoutResponse_0200
2795  * @tc.desc: OnStartSpecifiedProcessTimeoutResponse
2796  * @tc.type: FUNC
2797  */
2798 HWTEST_F(UIAbilityLifecycleManagerTest, OnStartSpecifiedProcessTimeoutResponse_002, TestSize.Level1)
2799 {
2800     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
2801     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2802     Want want;
2803     int32_t requestId = 100;
2804     uiAbilityLifecycleManager->OnStartSpecifiedProcessTimeoutResponse(want, requestId);
2805     uiAbilityLifecycleManager.reset();
2806 }
2807 
2808 /**
2809  * @tc.name: UIAbilityLifecycleManager_OnCallConnectDied_0100
2810  * @tc.desc: OnCallConnectDied
2811  * @tc.type: FUNC
2812  */
2813 HWTEST_F(UIAbilityLifecycleManagerTest, OnCallConnectDied_001, TestSize.Level1)
2814 {
2815     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
2816     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2817     std::shared_ptr<CallRecord> callRecord = nullptr;
2818     uiAbilityLifecycleManager->OnCallConnectDied(callRecord);
2819     uiAbilityLifecycleManager.reset();
2820 }
2821 
2822 /**
2823  * @tc.name: UIAbilityLifecycleManager_GetSessionIdByAbilityToken_0100
2824  * @tc.desc: GetSessionIdByAbilityToken
2825  * @tc.type: FUNC
2826  */
2827 HWTEST_F(UIAbilityLifecycleManagerTest, GetSessionIdByAbilityToken_001, TestSize.Level1)
2828 {
2829     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
2830     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2831     sptr<IRemoteObject> token = nullptr;
2832     EXPECT_EQ(uiAbilityLifecycleManager->GetSessionIdByAbilityToken(token), ERR_OK);
2833 }
2834 
2835 /**
2836  * @tc.name: UIAbilityLifecycleManager_GetSessionIdByAbilityToken_0200
2837  * @tc.desc: GetSessionIdByAbilityToken
2838  * @tc.type: FUNC
2839  */
2840 HWTEST_F(UIAbilityLifecycleManagerTest, GetSessionIdByAbilityToken_002, TestSize.Level1)
2841 {
2842     auto mgr = std::make_unique<UIAbilityLifecycleManager>();
2843     AbilityRequest abilityRequest;
2844     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
2845     mgr->sessionAbilityMap_.emplace(1, abilityRecord);
2846     auto&& token = abilityRecord->GetToken()->AsObject();
2847     EXPECT_EQ(mgr->GetSessionIdByAbilityToken(token), 1);
2848 }
2849 
2850 /**
2851  * @tc.name: UIAbilityLifecycleManager_GetActiveAbilityList_0100
2852  * @tc.desc: GetActiveAbilityList
2853  * @tc.type: FUNC
2854  */
2855 HWTEST_F(UIAbilityLifecycleManagerTest, GetActiveAbilityList_001, TestSize.Level1)
2856 {
2857     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
2858     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2859     AbilityRequest abilityRequest;
2860     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
2861     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(1, abilityRecord);
2862     std::vector<std::string> abilityList;
2863     int32_t pid = 100;
2864     uiAbilityLifecycleManager->GetActiveAbilityList(TEST_UID, abilityList, pid);
2865     uiAbilityLifecycleManager.reset();
2866 }
2867 
2868 /**
2869  * @tc.name: UIAbilityLifecycleManager_GetActiveAbilityList_0200
2870  * @tc.desc: GetActiveAbilityList
2871  * @tc.type: FUNC
2872  */
2873 HWTEST_F(UIAbilityLifecycleManagerTest, GetActiveAbilityList_002, TestSize.Level1)
2874 {
2875     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
2876     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2877     AbilityRequest abilityRequest;
2878     abilityRequest.abilityInfo.launchMode = AppExecFwk::LaunchMode::STANDARD;
2879     abilityRequest.abilityInfo.name = "testAbility";
2880     abilityRequest.abilityInfo.moduleName = "testModule";
2881     abilityRequest.abilityInfo.bundleName = "com.example.unittest";
2882     abilityRequest.abilityInfo.applicationInfo.uid = TEST_UID;
2883     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
2884     abilityRecord->SetOwnerMissionUserId(DelayedSingleton<AbilityManagerService>::GetInstance()->GetUserId());
2885     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(1, abilityRecord);
2886     std::vector<std::string> abilityList;
2887     int32_t pid = 100;
2888     uiAbilityLifecycleManager->GetActiveAbilityList(TEST_UID, abilityList, pid);
2889     uiAbilityLifecycleManager.reset();
2890 }
2891 
2892 /**
2893  * @tc.name: UIAbilityLifecycleManager_IsAbilityStarted_0100
2894  * @tc.desc: IsAbilityStarted
2895  * @tc.type: FUNC
2896  */
2897 HWTEST_F(UIAbilityLifecycleManagerTest, IsAbilityStarted_001, TestSize.Level1)
2898 {
2899     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
2900     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
2901     AbilityRequest abilityRequest;
2902     Rosen::SessionInfo info;
2903     sptr<SessionInfo> sessionInfo(new SessionInfo());
2904     sessionInfo->sessionToken = new Rosen::Session(info);
2905     sessionInfo->persistentId = 0;
2906     abilityRequest.sessionInfo = sessionInfo;
2907     auto targetRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
2908     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(sessionInfo->persistentId, targetRecord);
2909     EXPECT_EQ(uiAbilityLifecycleManager->IsAbilityStarted(abilityRequest, targetRecord), false);
2910 }
2911 
2912 /**
2913  * @tc.name: UIAbilityLifecycleManager_IsAbilityStarted_0200
2914  * @tc.desc: IsAbilityStarted
2915  * @tc.type: FUNC
2916  */
2917 HWTEST_F(UIAbilityLifecycleManagerTest, IsAbilityStarted_002, TestSize.Level1)
2918 {
2919     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
2920     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
2921     AbilityRequest abilityRequest;
2922     Rosen::SessionInfo info;
2923     sptr<SessionInfo> sessionInfo(new SessionInfo());
2924     sessionInfo->sessionToken = new Rosen::Session(info);
2925     sessionInfo->persistentId = 1;
2926     abilityRequest.sessionInfo = sessionInfo;
2927     auto targetRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
2928     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(sessionInfo->persistentId, targetRecord);
2929     EXPECT_EQ(uiAbilityLifecycleManager->IsAbilityStarted(abilityRequest, targetRecord), true);
2930 }
2931 
2932 /**
2933  * @tc.name: UIAbilityLifecycleManager_TryPrepareTerminateByPids_0100
2934  * @tc.desc: TryPrepareTerminateByPids
2935  * @tc.type: FUNC
2936  */
2937 HWTEST_F(UIAbilityLifecycleManagerTest, TryPrepareTerminateByPids_001, TestSize.Level1)
2938 {
2939     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
2940     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
2941     std::vector<int32_t> pids;
2942     EXPECT_EQ(uiAbilityLifecycleManager->TryPrepareTerminateByPids(pids), ERR_OK);
2943 }
2944 
2945 /**
2946  * @tc.name: UIAbilityLifecycleManager_ChangeAbilityVisibility_0200
2947  * @tc.desc: ChangeAbilityVisibility
2948  * @tc.type: FUNC
2949  */
2950 HWTEST_F(UIAbilityLifecycleManagerTest, ChangeAbilityVisibility_002, TestSize.Level1)
2951 {
2952     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
2953     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2954     sptr<IRemoteObject> token = nullptr;
2955     bool isShow = false;
2956     EXPECT_EQ(uiAbilityLifecycleManager->ChangeAbilityVisibility(token, isShow), ERR_INVALID_VALUE);
2957 }
2958 
2959 /**
2960  * @tc.name: UIAbilityLifecycleManager_ChangeAbilityVisibility_0300
2961  * @tc.desc: ChangeAbilityVisibility
2962  * @tc.type: FUNC
2963  */
2964 HWTEST_F(UIAbilityLifecycleManagerTest, ChangeAbilityVisibility_003, TestSize.Level1)
2965 {
2966     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
2967     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2968     AbilityRequest abilityRequest;
2969     abilityRequest.appInfo.accessTokenId = 100;
2970     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
2971     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(0, abilityRecord);
2972     sptr<IRemoteObject> token = abilityRecord->GetToken()->AsObject();
2973     bool isShow = true;
2974     EXPECT_EQ(uiAbilityLifecycleManager->ChangeAbilityVisibility(token, isShow), ERR_NATIVE_NOT_SELF_APPLICATION);
2975 }
2976 
2977 /**
2978  * @tc.name: UIAbilityLifecycleManager_ChangeAbilityVisibility_0400
2979  * @tc.desc: ChangeAbilityVisibility
2980  * @tc.type: FUNC
2981  */
2982 HWTEST_F(UIAbilityLifecycleManagerTest, ChangeAbilityVisibility_004, TestSize.Level1)
2983 {
2984     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
2985     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
2986     AbilityRequest abilityRequest;
2987     abilityRequest.appInfo.accessTokenId = IPCSkeleton::GetCallingTokenID();
2988     abilityRequest.sessionInfo = nullptr;
2989     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
2990     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(0, abilityRecord);
2991     sptr<IRemoteObject> token = abilityRecord->GetToken()->AsObject();
2992     bool isShow = true;
2993     EXPECT_EQ(uiAbilityLifecycleManager->ChangeAbilityVisibility(token, isShow), ERR_INVALID_VALUE);
2994 }
2995 
2996 /**
2997  * @tc.name: UIAbilityLifecycleManager_ChangeAbilityVisibility_0500
2998  * @tc.desc: ChangeAbilityVisibility
2999  * @tc.type: FUNC
3000  */
3001 HWTEST_F(UIAbilityLifecycleManagerTest, ChangeAbilityVisibility_005, TestSize.Level1)
3002 {
3003     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3004     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
3005     AbilityRequest abilityRequest;
3006     abilityRequest.appInfo.accessTokenId = IPCSkeleton::GetCallingTokenID();
3007     sptr<SessionInfo> sessionInfo(new SessionInfo());
3008     sessionInfo->processOptions = nullptr;
3009     abilityRequest.sessionInfo = sessionInfo;
3010     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
3011     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(0, abilityRecord);
3012     sptr<IRemoteObject> token = abilityRecord->GetToken()->AsObject();
3013     bool isShow = true;
3014     EXPECT_EQ(uiAbilityLifecycleManager->ChangeAbilityVisibility(token, isShow), ERR_START_OPTIONS_CHECK_FAILED);
3015 }
3016 
3017 /**
3018  * @tc.name: UIAbilityLifecycleManager_ChangeAbilityVisibility_0600
3019  * @tc.desc: ChangeAbilityVisibility
3020  * @tc.type: FUNC
3021  */
3022 HWTEST_F(UIAbilityLifecycleManagerTest, ChangeAbilityVisibility_006, TestSize.Level1)
3023 {
3024     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3025     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
3026     AbilityRequest abilityRequest;
3027     abilityRequest.appInfo.accessTokenId = IPCSkeleton::GetCallingTokenID();
3028     sptr<SessionInfo> sessionInfo(new SessionInfo());
3029     sessionInfo->processOptions = std::make_shared<ProcessOptions>();
3030     abilityRequest.sessionInfo = sessionInfo;
3031     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
3032     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(0, abilityRecord);
3033     sptr<IRemoteObject> token = abilityRecord->GetToken()->AsObject();
3034     bool isShow = true;
3035     EXPECT_EQ(uiAbilityLifecycleManager->ChangeAbilityVisibility(token, isShow), ERR_START_OPTIONS_CHECK_FAILED);
3036 }
3037 
3038 /**
3039  * @tc.name: UIAbilityLifecycleManager_ChangeAbilityVisibility_0700
3040  * @tc.desc: ChangeAbilityVisibility
3041  * @tc.type: FUNC
3042  */
3043 HWTEST_F(UIAbilityLifecycleManagerTest, ChangeAbilityVisibility_007, TestSize.Level1)
3044 {
3045     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3046     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
3047     AbilityRequest abilityRequest;
3048     abilityRequest.appInfo.accessTokenId = IPCSkeleton::GetCallingTokenID();
3049     sptr<SessionInfo> sessionInfo(new SessionInfo());
3050     sessionInfo->sessionToken = nullptr;
3051     sessionInfo->processOptions = std::make_shared<ProcessOptions>();
3052     sessionInfo->processOptions->processMode = ProcessMode::NEW_PROCESS_ATTACH_TO_STATUS_BAR_ITEM;
3053     abilityRequest.sessionInfo = sessionInfo;
3054     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
3055     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(0, abilityRecord);
3056     sptr<IRemoteObject> token = abilityRecord->GetToken()->AsObject();
3057     bool isShow = true;
3058     EXPECT_EQ(uiAbilityLifecycleManager->ChangeAbilityVisibility(token, isShow), ERR_INVALID_VALUE);
3059 }
3060 
3061 /**
3062  * @tc.name: UIAbilityLifecycleManager_ChangeAbilityVisibility_0800
3063  * @tc.desc: ChangeAbilityVisibility
3064  * @tc.type: FUNC
3065  */
3066 HWTEST_F(UIAbilityLifecycleManagerTest, ChangeAbilityVisibility_008, TestSize.Level1)
3067 {
3068     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3069     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
3070     AbilityRequest abilityRequest;
3071     abilityRequest.appInfo.accessTokenId = IPCSkeleton::GetCallingTokenID();
3072     Rosen::SessionInfo info;
3073     sptr<SessionInfo> sessionInfo(new SessionInfo());
3074     sessionInfo->sessionToken = new Rosen::Session(info);
3075     sessionInfo->processOptions = std::make_shared<ProcessOptions>();
3076     sessionInfo->processOptions->processMode = ProcessMode::NEW_PROCESS_ATTACH_TO_STATUS_BAR_ITEM;
3077     abilityRequest.sessionInfo = sessionInfo;
3078     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
3079     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(0, abilityRecord);
3080     sptr<IRemoteObject> token = abilityRecord->GetToken()->AsObject();
3081     bool isShow = true;
3082     EXPECT_EQ(uiAbilityLifecycleManager->ChangeAbilityVisibility(token, isShow), ERR_OK);
3083 }
3084 
3085 /**
3086  * @tc.name: UIAbilityLifecycleManager_ChangeAbilityVisibility_0900
3087  * @tc.desc: ChangeAbilityVisibility
3088  * @tc.type: FUNC
3089  */
3090 HWTEST_F(UIAbilityLifecycleManagerTest, ChangeAbilityVisibility_009, TestSize.Level1)
3091 {
3092     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3093     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
3094     AbilityRequest abilityRequest;
3095     abilityRequest.appInfo.accessTokenId = IPCSkeleton::GetCallingTokenID();
3096     Rosen::SessionInfo info;
3097     sptr<SessionInfo> sessionInfo(new SessionInfo());
3098     sessionInfo->sessionToken = new Rosen::Session(info);
3099     sessionInfo->processOptions = std::make_shared<ProcessOptions>();
3100     sessionInfo->processOptions->processMode = ProcessMode::NEW_PROCESS_ATTACH_TO_STATUS_BAR_ITEM;
3101     abilityRequest.sessionInfo = sessionInfo;
3102     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
3103     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(0, abilityRecord);
3104     sptr<IRemoteObject> token = abilityRecord->GetToken()->AsObject();
3105     bool isShow = false;
3106     EXPECT_EQ(uiAbilityLifecycleManager->ChangeAbilityVisibility(token, isShow), ERR_OK);
3107 }
3108 
3109 /**
3110  * @tc.name: UIAbilityLifecycleManager_ChangeUIAbilityVisibilityBySCB_0200
3111  * @tc.desc: ChangeUIAbilityVisibilityBySCB
3112  * @tc.type: FUNC
3113  */
3114 HWTEST_F(UIAbilityLifecycleManagerTest, ChangeUIAbilityVisibilityBySCB_002, TestSize.Level1)
3115 {
3116     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3117     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
3118     sptr<SessionInfo> sessionInfo = nullptr;
3119     bool isShow = false;
3120     EXPECT_EQ(uiAbilityLifecycleManager->ChangeUIAbilityVisibilityBySCB(sessionInfo, isShow), ERR_INVALID_VALUE);
3121 }
3122 
3123 /**
3124  * @tc.name: UIAbilityLifecycleManager_ChangeUIAbilityVisibilityBySCB_0300
3125  * @tc.desc: ChangeUIAbilityVisibilityBySCB
3126  * @tc.type: FUNC
3127  */
3128 HWTEST_F(UIAbilityLifecycleManagerTest, ChangeUIAbilityVisibilityBySCB_003, TestSize.Level1)
3129 {
3130     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3131     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
3132     AbilityRequest abilityRequest;
3133     sptr<SessionInfo> sessionInfo(new SessionInfo());
3134     sessionInfo->persistentId = 100;
3135     abilityRequest.sessionInfo = sessionInfo;
3136     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
3137     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(0, abilityRecord);
3138     bool isShow = false;
3139     EXPECT_EQ(uiAbilityLifecycleManager->ChangeUIAbilityVisibilityBySCB(sessionInfo, isShow),
3140         ERR_NATIVE_ABILITY_NOT_FOUND);
3141 }
3142 
3143 /**
3144  * @tc.name: UIAbilityLifecycleManager_ChangeUIAbilityVisibilityBySCB_0400
3145  * @tc.desc: ChangeUIAbilityVisibilityBySCB
3146  * @tc.type: FUNC
3147  */
3148 HWTEST_F(UIAbilityLifecycleManagerTest, ChangeUIAbilityVisibilityBySCB_004, TestSize.Level1)
3149 {
3150     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3151     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
3152     sptr<SessionInfo> sessionInfo(new SessionInfo());
3153     sessionInfo->persistentId = 100;
3154     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(sessionInfo->persistentId, nullptr);
3155     bool isShow = false;
3156     EXPECT_EQ(uiAbilityLifecycleManager->ChangeUIAbilityVisibilityBySCB(sessionInfo, isShow),
3157         ERR_INVALID_VALUE);
3158 }
3159 
3160 /**
3161  * @tc.name: UIAbilityLifecycleManager_ChangeUIAbilityVisibilityBySCB_0500
3162  * @tc.desc: ChangeUIAbilityVisibilityBySCB
3163  * @tc.type: FUNC
3164  */
3165 HWTEST_F(UIAbilityLifecycleManagerTest, ChangeUIAbilityVisibilityBySCB_005, TestSize.Level1)
3166 {
3167     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3168     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
3169     AbilityRequest abilityRequest;
3170     sptr<SessionInfo> sessionInfo(new SessionInfo());
3171     sessionInfo->persistentId = 100;
3172     abilityRequest.sessionInfo = sessionInfo;
3173     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
3174     abilityRecord->SetAbilityVisibilityState(AbilityVisibilityState::INITIAL);
3175     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(sessionInfo->persistentId, abilityRecord);
3176     bool isShow = false;
3177     EXPECT_EQ(uiAbilityLifecycleManager->ChangeUIAbilityVisibilityBySCB(sessionInfo, isShow),
3178         ERR_NATIVE_ABILITY_STATE_CHECK_FAILED);
3179 }
3180 
3181 /**
3182  * @tc.name: UIAbilityLifecycleManager_ChangeUIAbilityVisibilityBySCB_0600
3183  * @tc.desc: ChangeUIAbilityVisibilityBySCB
3184  * @tc.type: FUNC
3185  */
3186 HWTEST_F(UIAbilityLifecycleManagerTest, ChangeUIAbilityVisibilityBySCB_006, TestSize.Level1)
3187 {
3188     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3189     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
3190     AbilityRequest abilityRequest;
3191     sptr<SessionInfo> sessionInfo(new SessionInfo());
3192     sessionInfo->persistentId = 100;
3193     abilityRequest.sessionInfo = sessionInfo;
3194     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
3195     abilityRecord->SetAbilityVisibilityState(AbilityVisibilityState::UNSPECIFIED);
3196     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(sessionInfo->persistentId, abilityRecord);
3197     bool isShow = false;
3198     EXPECT_EQ(uiAbilityLifecycleManager->ChangeUIAbilityVisibilityBySCB(sessionInfo, isShow),
3199         ERR_NATIVE_ABILITY_STATE_CHECK_FAILED);
3200 }
3201 
3202 /**
3203  * @tc.name: UIAbilityLifecycleManager_ChangeUIAbilityVisibilityBySCB_0700
3204  * @tc.desc: ChangeUIAbilityVisibilityBySCB
3205  * @tc.type: FUNC
3206  */
3207 HWTEST_F(UIAbilityLifecycleManagerTest, ChangeUIAbilityVisibilityBySCB_007, TestSize.Level1)
3208 {
3209     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3210     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
3211     AbilityRequest abilityRequest;
3212     sptr<SessionInfo> sessionInfo(new SessionInfo());
3213     sessionInfo->persistentId = 100;
3214     abilityRequest.sessionInfo = sessionInfo;
3215     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
3216     abilityRecord->SetAbilityVisibilityState(AbilityVisibilityState::FOREGROUND_SHOW);
3217     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(sessionInfo->persistentId, abilityRecord);
3218     bool isShow = true;
3219     EXPECT_EQ(uiAbilityLifecycleManager->ChangeUIAbilityVisibilityBySCB(sessionInfo, isShow), ERR_OK);
3220 }
3221 
3222 /**
3223  * @tc.name: UIAbilityLifecycleManager_ChangeUIAbilityVisibilityBySCB_0800
3224  * @tc.desc: ChangeUIAbilityVisibilityBySCB
3225  * @tc.type: FUNC
3226  */
3227 HWTEST_F(UIAbilityLifecycleManagerTest, ChangeUIAbilityVisibilityBySCB_008, TestSize.Level1)
3228 {
3229     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3230     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
3231     AbilityRequest abilityRequest;
3232     sptr<SessionInfo> sessionInfo(new SessionInfo());
3233     sessionInfo->persistentId = 100;
3234     abilityRequest.sessionInfo = sessionInfo;
3235     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
3236     abilityRecord->SetAbilityVisibilityState(AbilityVisibilityState::FOREGROUND_HIDE);
3237     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(sessionInfo->persistentId, abilityRecord);
3238     bool isShow = false;
3239     EXPECT_EQ(uiAbilityLifecycleManager->ChangeUIAbilityVisibilityBySCB(sessionInfo, isShow), ERR_OK);
3240 }
3241 
3242 /**
3243  * @tc.name: UIAbilityLifecycleManager_GetAbilityRecordsByName_0100
3244  * @tc.desc: GetAbilityRecordsByName
3245  * @tc.type: FUNC
3246  */
3247 HWTEST_F(UIAbilityLifecycleManagerTest, GetAbilityRecordsByName_001, TestSize.Level1)
3248 {
3249     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3250     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
3251     AbilityRequest abilityRequest;
3252     abilityRequest.abilityInfo.bundleName = "com.example.unittest";
3253     abilityRequest.abilityInfo.name = "MainAbility";
3254     abilityRequest.abilityInfo.deviceId = "100";
3255     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
3256     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(1, abilityRecord);
3257     AppExecFwk::ElementName element;
3258     auto ret = uiAbilityLifecycleManager->GetAbilityRecordsByName(element);
3259     EXPECT_EQ(ret.empty(), true);
3260 }
3261 
3262 /**
3263  * @tc.name: UIAbilityLifecycleManager_GetAbilityRecordsByName_0200
3264  * @tc.desc: GetAbilityRecordsByName
3265  * @tc.type: FUNC
3266  */
3267 HWTEST_F(UIAbilityLifecycleManagerTest, GetAbilityRecordsByName_002, TestSize.Level1)
3268 {
3269     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3270     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
3271     AbilityRequest abilityRequest;
3272     abilityRequest.abilityInfo.deviceId = "100";
3273     abilityRequest.abilityInfo.bundleName = "com.example.unittest";
3274     abilityRequest.abilityInfo.name = "MainAbility";
3275     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
3276     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(1, abilityRecord);
3277     AppExecFwk::ElementName element("100", "com.example.unittest", "MainAbility");
3278     auto ret = uiAbilityLifecycleManager->GetAbilityRecordsByName(element);
3279     EXPECT_EQ(ret.empty(), false);
3280 }
3281 
3282 /**
3283  * @tc.name: UIAbilityLifecycleManager_GetAbilityRecordsByName_0300
3284  * @tc.desc: GetAbilityRecordsByName
3285  * @tc.type: FUNC
3286  */
3287 HWTEST_F(UIAbilityLifecycleManagerTest, GetAbilityRecordsByName_003, TestSize.Level1)
3288 {
3289     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3290     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
3291     AbilityRequest abilityRequest;
3292     abilityRequest.abilityInfo.deviceId = "100";
3293     abilityRequest.abilityInfo.bundleName = "com.example.unittest";
3294     abilityRequest.abilityInfo.name = "MainAbility";
3295     abilityRequest.abilityInfo.moduleName = "entry";
3296     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
3297     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(1, abilityRecord);
3298     AppExecFwk::ElementName element("100", "com.example.unittest", "MainAbility", "entry");
3299     auto ret = uiAbilityLifecycleManager->GetAbilityRecordsByName(element);
3300     EXPECT_EQ(ret.empty(), false);
3301 }
3302 
3303 /**
3304  * @tc.name: UIAbilityLifecycleManager_GetAbilityRecordsByNameInner_0100
3305  * @tc.desc: GetAbilityRecordsByNameInner
3306  * @tc.type: FUNC
3307  */
3308 HWTEST_F(UIAbilityLifecycleManagerTest, GetAbilityRecordsByNameInner_001, TestSize.Level1)
3309 {
3310     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3311     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
3312     AbilityRequest abilityRequest;
3313     abilityRequest.abilityInfo.bundleName = "com.example.unittest";
3314     abilityRequest.abilityInfo.name = "MainAbility";
3315     abilityRequest.abilityInfo.deviceId = "100";
3316     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
3317     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(1, abilityRecord);
3318     AppExecFwk::ElementName element;
3319     auto ret = uiAbilityLifecycleManager->GetAbilityRecordsByNameInner(element);
3320     EXPECT_EQ(ret.empty(), true);
3321 }
3322 
3323 /**
3324  * @tc.name: UIAbilityLifecycleManager_GetAbilityRecordsByNameInner_0200
3325  * @tc.desc: GetAbilityRecordsByNameInner
3326  * @tc.type: FUNC
3327  */
3328 HWTEST_F(UIAbilityLifecycleManagerTest, GetAbilityRecordsByNameInner_002, TestSize.Level1)
3329 {
3330     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3331     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
3332     AbilityRequest abilityRequest;
3333     abilityRequest.abilityInfo.deviceId = "100";
3334     abilityRequest.abilityInfo.bundleName = "com.example.unittest";
3335     abilityRequest.abilityInfo.name = "MainAbility";
3336     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
3337     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(1, abilityRecord);
3338     AppExecFwk::ElementName element("100", "com.example.unittest", "MainAbility");
3339     auto ret = uiAbilityLifecycleManager->GetAbilityRecordsByNameInner(element);
3340     EXPECT_EQ(ret.empty(), false);
3341 }
3342 
3343 /**
3344  * @tc.name: UIAbilityLifecycleManager_GetAbilityRecordsByNameInner_0300
3345  * @tc.desc: GetAbilityRecordsByNameInner
3346  * @tc.type: FUNC
3347  */
3348 HWTEST_F(UIAbilityLifecycleManagerTest, GetAbilityRecordsByNameInner_003, TestSize.Level1)
3349 {
3350     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3351     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
3352     AbilityRequest abilityRequest;
3353     abilityRequest.abilityInfo.deviceId = "100";
3354     abilityRequest.abilityInfo.bundleName = "com.example.unittest";
3355     abilityRequest.abilityInfo.name = "MainAbility";
3356     abilityRequest.abilityInfo.moduleName = "entry";
3357     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
3358     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(1, abilityRecord);
3359     AppExecFwk::ElementName element("100", "com.example.unittest", "MainAbility", "entry");
3360     auto ret = uiAbilityLifecycleManager->GetAbilityRecordsByNameInner(element);
3361     EXPECT_EQ(ret.empty(), false);
3362 }
3363 
3364 /**
3365  * @tc.name: UIAbilityLifecycleManager_PrepareTerminateAbility_0100
3366  * @tc.desc: PrepareTerminateAbility
3367  * @tc.type: FUNC
3368  */
3369 HWTEST_F(UIAbilityLifecycleManagerTest, PrepareTerminateAbility_001, TestSize.Level1)
3370 {
3371     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
3372     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
3373     std::shared_ptr<AbilityRecord> abilityRecord = nullptr;
3374     bool boolValue = uiAbilityLifecycleManager->PrepareTerminateAbility(abilityRecord);
3375     EXPECT_FALSE(boolValue);
3376 }
3377 
3378 /**
3379  * @tc.name: UIAbilityLifecycleManager_PrepareTerminateAbility_0200
3380  * @tc.desc: PrepareTerminateAbility
3381  * @tc.type: FUNC
3382  */
3383 HWTEST_F(UIAbilityLifecycleManagerTest, PrepareTerminateAbility_002, TestSize.Level1)
3384 {
3385     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
3386     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
3387     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
3388     bool boolValue = uiAbilityLifecycleManager->PrepareTerminateAbility(abilityRecord);
3389     EXPECT_FALSE(boolValue);
3390 }
3391 
3392 /**
3393  * @tc.name: UIAbilityLifecycleManager_SetSessionHandler_0100
3394  * @tc.desc: SetSessionHandler
3395  * @tc.type: FUNC
3396  */
3397 HWTEST_F(UIAbilityLifecycleManagerTest, SetSessionHandler_001, TestSize.Level1)
3398 {
3399     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3400     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
3401     sptr<ISessionHandler> handler;
3402     uiAbilityLifecycleManager->SetSessionHandler(handler);
3403     EXPECT_EQ(uiAbilityLifecycleManager->handler_, handler);
3404 }
3405 
3406 /**
3407  * @tc.name: UIAbilityLifecycleManager_GetAbilityRecordsById_0100
3408  * @tc.desc: GetAbilityRecordsById
3409  * @tc.type: FUNC
3410  */
3411 HWTEST_F(UIAbilityLifecycleManagerTest, GetAbilityRecordsById_001, TestSize.Level1)
3412 {
3413     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3414     int32_t sessionId = 100;
3415     AbilityRequest abilityRequest;
3416     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
3417     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(sessionId, abilityRecord);
3418     EXPECT_EQ(uiAbilityLifecycleManager->GetAbilityRecordsById(sessionId + 1), nullptr);
3419 }
3420 
3421 /**
3422  * @tc.name: UIAbilityLifecycleManager_GetAbilityRecordsById_0200
3423  * @tc.desc: GetAbilityRecordsById
3424  * @tc.type: FUNC
3425  */
3426 HWTEST_F(UIAbilityLifecycleManagerTest, GetAbilityRecordsById_002, TestSize.Level1)
3427 {
3428     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3429     int32_t sessionId = 100;
3430     AbilityRequest abilityRequest;
3431     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
3432     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(sessionId, abilityRecord);
3433     EXPECT_NE(uiAbilityLifecycleManager->GetAbilityRecordsById(sessionId), nullptr);
3434 }
3435 
3436 /**
3437  * @tc.name: UIAbilityLifecycleManager_OnAppStateChanged_0100
3438  * @tc.desc: OnAppStateChanged
3439  * @tc.type: FUNC
3440  */
3441 HWTEST_F(UIAbilityLifecycleManagerTest, OnAppStateChanged_001, TestSize.Level1)
3442 {
3443     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
3444     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
3445     AbilityRequest abilityRequest;
3446     abilityRequest.appInfo.bundleName = "com.example.unittest";
3447     abilityRequest.abilityInfo.name = "MainAbility";
3448     abilityRequest.abilityInfo.process = "AbilityProcess";
3449     std::shared_ptr<AbilityRecord> abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
3450     AppInfo info;
3451     info.processName = "AbilityProcess";
3452     info.state = AppState::TERMINATED;
3453     uiAbilityLifecycleManager->terminateAbilityList_.emplace_back(abilityRecord);
3454     uiAbilityLifecycleManager->OnAppStateChanged(info);
3455     uiAbilityLifecycleManager.reset();
3456 }
3457 
3458 /**
3459  * @tc.name: UIAbilityLifecycleManager_OnAppStateChanged_0200
3460  * @tc.desc: OnAppStateChanged
3461  * @tc.type: FUNC
3462  */
3463 HWTEST_F(UIAbilityLifecycleManagerTest, OnAppStateChanged_002, TestSize.Level1)
3464 {
3465     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
3466     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
3467     AbilityRequest abilityRequest;
3468     abilityRequest.appInfo.bundleName = "com.example.unittest";
3469     abilityRequest.abilityInfo.name = "MainAbility";
3470     abilityRequest.abilityInfo.process = "AbilityProcess";
3471     std::shared_ptr<AbilityRecord> abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
3472     AppInfo info;
3473     info.processName = "AbilityProcess";
3474     info.state = AppState::END;
3475     uiAbilityLifecycleManager->terminateAbilityList_.emplace_back(abilityRecord);
3476     uiAbilityLifecycleManager->OnAppStateChanged(info);
3477     uiAbilityLifecycleManager.reset();
3478 }
3479 
3480 /**
3481  * @tc.name: UIAbilityLifecycleManager_OnAppStateChanged_0300
3482  * @tc.desc: OnAppStateChanged
3483  * @tc.type: FUNC
3484  */
3485 HWTEST_F(UIAbilityLifecycleManagerTest, OnAppStateChanged_003, TestSize.Level1)
3486 {
3487     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
3488     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
3489     AbilityRequest abilityRequest;
3490     abilityRequest.appInfo.bundleName = "com.example.unittest";
3491     abilityRequest.abilityInfo.name = "MainAbility";
3492     abilityRequest.abilityInfo.process = "AbilityProcess";
3493     std::shared_ptr<AbilityRecord> abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
3494     AppInfo info;
3495     info.processName = "com.example.unittest";
3496     info.state = AppState::TERMINATED;
3497     uiAbilityLifecycleManager->terminateAbilityList_.emplace_back(abilityRecord);
3498     uiAbilityLifecycleManager->OnAppStateChanged(info);
3499     uiAbilityLifecycleManager.reset();
3500 }
3501 
3502 /**
3503  * @tc.name: UIAbilityLifecycleManager_OnAppStateChanged_0400
3504  * @tc.desc: OnAppStateChanged
3505  * @tc.type: FUNC
3506  */
3507 HWTEST_F(UIAbilityLifecycleManagerTest, OnAppStateChanged_004, TestSize.Level1)
3508 {
3509     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
3510     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
3511     AbilityRequest abilityRequest;
3512     abilityRequest.appInfo.bundleName = "com.example.unittest";
3513     abilityRequest.abilityInfo.name = "MainAbility";
3514     abilityRequest.abilityInfo.process = "AbilityProcess";
3515     std::shared_ptr<AbilityRecord> abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
3516     AppInfo info;
3517     info.processName = "com.example.unittest";
3518     info.state = AppState::END;
3519     uiAbilityLifecycleManager->terminateAbilityList_.emplace_back(abilityRecord);
3520     uiAbilityLifecycleManager->OnAppStateChanged(info);
3521     uiAbilityLifecycleManager.reset();
3522 }
3523 
3524 /**
3525  * @tc.name: UIAbilityLifecycleManager_OnAppStateChanged_0500
3526  * @tc.desc: OnAppStateChanged
3527  * @tc.type: FUNC
3528  */
3529 HWTEST_F(UIAbilityLifecycleManagerTest, OnAppStateChanged_005, TestSize.Level1)
3530 {
3531     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
3532     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
3533     AbilityRequest abilityRequest;
3534     abilityRequest.appInfo.bundleName = "com.example.unittest";
3535     abilityRequest.abilityInfo.name = "MainAbility";
3536     abilityRequest.abilityInfo.process = "AbilityProcess";
3537     std::shared_ptr<AbilityRecord> abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
3538     AppInfo info;
3539     info.processName = "com.example.unittest";
3540     info.state = AppState::COLD_START;
3541     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(0, abilityRecord);
3542     uiAbilityLifecycleManager->OnAppStateChanged(info);
3543     uiAbilityLifecycleManager.reset();
3544 }
3545 
3546 /**
3547  * @tc.name: UIAbilityLifecycleManager_OnAppStateChanged_0600
3548  * @tc.desc: OnAppStateChanged
3549  * @tc.type: FUNC
3550  */
3551 HWTEST_F(UIAbilityLifecycleManagerTest, OnAppStateChanged_006, TestSize.Level1)
3552 {
3553     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
3554     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
3555     AbilityRequest abilityRequest;
3556     abilityRequest.appInfo.bundleName = "com.example.unittest";
3557     abilityRequest.abilityInfo.name = "MainAbility";
3558     abilityRequest.abilityInfo.process = "AbilityProcess";
3559     std::shared_ptr<AbilityRecord> abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
3560     AppInfo info;
3561     info.processName = "AbilityProcess";
3562     info.state = AppState::COLD_START;
3563     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(0, abilityRecord);
3564     uiAbilityLifecycleManager->OnAppStateChanged(info);
3565     uiAbilityLifecycleManager.reset();
3566 }
3567 
3568 /**
3569  * @tc.name: UIAbilityLifecycleManager_OnAppStateChanged_0700
3570  * @tc.desc: OnAppStateChanged
3571  * @tc.type: FUNC
3572  */
3573 HWTEST_F(UIAbilityLifecycleManagerTest, OnAppStateChanged_007, TestSize.Level1)
3574 {
3575     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
3576     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
3577     AbilityRequest abilityRequest;
3578     abilityRequest.appInfo.bundleName = "com.example.unittest";
3579     abilityRequest.abilityInfo.name = "MainAbility";
3580     abilityRequest.abilityInfo.process = "AbilityProcess";
3581     std::shared_ptr<AbilityRecord> abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
3582     AppInfo info;
3583     info.processName = "com.example.unittest";
3584     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(0, abilityRecord);
3585     uiAbilityLifecycleManager->OnAppStateChanged(info);
3586     uiAbilityLifecycleManager.reset();
3587 }
3588 
3589 /**
3590  * @tc.name: UIAbilityLifecycleManager_OnAppStateChanged_0800
3591  * @tc.desc: OnAppStateChanged
3592  * @tc.type: FUNC
3593  */
3594 HWTEST_F(UIAbilityLifecycleManagerTest, OnAppStateChanged_008, TestSize.Level1)
3595 {
3596     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
3597     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
3598     AbilityRequest abilityRequest;
3599     abilityRequest.appInfo.bundleName = "com.example.unittest";
3600     abilityRequest.abilityInfo.name = "MainAbility";
3601     abilityRequest.abilityInfo.process = "AbilityProcess";
3602     std::shared_ptr<AbilityRecord> abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
3603     AppInfo info;
3604     info.processName = "AbilityProcess";
3605     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(0, abilityRecord);
3606     uiAbilityLifecycleManager->OnAppStateChanged(info);
3607     uiAbilityLifecycleManager.reset();
3608 }
3609 
3610 /**
3611  * @tc.name: UIAbilityLifecycleManager_UninstallApp_0100
3612  * @tc.desc: UninstallApp
3613  * @tc.type: FUNC
3614  */
3615 HWTEST_F(UIAbilityLifecycleManagerTest, UninstallApp_001, TestSize.Level1)
3616 {
3617     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
3618     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
3619     AbilityRequest abilityRequest;
3620     abilityRequest.abilityInfo.bundleName = "com.example.unittest";
3621     abilityRequest.abilityInfo.name = "MainAbility";
3622     std::shared_ptr<AbilityRecord> abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
3623     AppInfo info;
3624     std::string bundleName = "com.example.unittest";
3625     int32_t uid = 0;
3626     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(0, abilityRecord);
3627     uiAbilityLifecycleManager->UninstallApp(bundleName, uid);
3628     uiAbilityLifecycleManager.reset();
3629 }
3630 
3631 /**
3632  * @tc.name: UIAbilityLifecycleManager_GetAbilityRunningInfos_0100
3633  * @tc.desc: GetAbilityRunningInfos
3634  * @tc.type: FUNC
3635  */
3636 HWTEST_F(UIAbilityLifecycleManagerTest, GetAbilityRunningInfos_001, TestSize.Level1)
3637 {
3638     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
3639     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
3640     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
3641     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(0, abilityRecord);
3642     std::vector<AbilityRunningInfo> info;
3643     bool isPerm = true;
3644     uiAbilityLifecycleManager->GetAbilityRunningInfos(info, isPerm);
3645     uiAbilityLifecycleManager.reset();
3646 }
3647 
3648 /**
3649  * @tc.name: UIAbilityLifecycleManager_GetAbilityRunningInfos_0200
3650  * @tc.desc: GetAbilityRunningInfos
3651  * @tc.type: FUNC
3652  */
3653 HWTEST_F(UIAbilityLifecycleManagerTest, GetAbilityRunningInfos_002, TestSize.Level1)
3654 {
3655     auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
3656     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
3657     AbilityRequest abilityRequest;
3658     abilityRequest.appInfo.accessTokenId = IPCSkeleton::GetCallingTokenID();
3659     std::shared_ptr<AbilityRecord> abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
3660     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(0, abilityRecord);
3661     std::vector<AbilityRunningInfo> info;
3662     bool isPerm = false;
3663     uiAbilityLifecycleManager->GetAbilityRunningInfos(info, isPerm);
3664     uiAbilityLifecycleManager.reset();
3665 }
3666 
3667 /**
3668  * @tc.name: UIAbilityLifecycleManager_MoveMissionToFront_0100
3669  * @tc.desc: MoveMissionToFront
3670  * @tc.type: FUNC
3671  */
3672 HWTEST_F(UIAbilityLifecycleManagerTest, MoveMissionToFront_001, TestSize.Level1)
3673 {
3674     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3675     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
3676     uiAbilityLifecycleManager->rootSceneSession_ = nullptr;
3677     int32_t sessionId = 100;
3678     std::shared_ptr<StartOptions> startOptions;
3679     EXPECT_EQ(uiAbilityLifecycleManager->MoveMissionToFront(sessionId, startOptions), ERR_INVALID_VALUE);
3680 }
3681 
3682 /**
3683  * @tc.name: UIAbilityLifecycleManager_MoveMissionToFront_0200
3684  * @tc.desc: MoveMissionToFront
3685  * @tc.type: FUNC
3686  */
3687 HWTEST_F(UIAbilityLifecycleManagerTest, MoveMissionToFront_002, TestSize.Level1)
3688 {
3689     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3690     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
3691     Rosen::SessionInfo info;
3692     uiAbilityLifecycleManager->rootSceneSession_ = new Rosen::Session(info);
3693     int32_t sessionId = 100;
3694     std::shared_ptr<StartOptions> startOptions;
3695     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
3696     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(0, abilityRecord);
3697     EXPECT_EQ(uiAbilityLifecycleManager->MoveMissionToFront(sessionId, startOptions), ERR_INVALID_VALUE);
3698 }
3699 
3700 /**
3701  * @tc.name: UIAbilityLifecycleManager_MoveMissionToFront_0300
3702  * @tc.desc: MoveMissionToFront
3703  * @tc.type: FUNC
3704  */
3705 HWTEST_F(UIAbilityLifecycleManagerTest, MoveMissionToFront_003, TestSize.Level1)
3706 {
3707     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3708     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
3709     Rosen::SessionInfo info;
3710     uiAbilityLifecycleManager->rootSceneSession_ = new Rosen::Session(info);
3711     int32_t sessionId = 100;
3712     std::shared_ptr<StartOptions> startOptions;
3713     AbilityRequest abilityRequest;
3714     sptr<SessionInfo> sessionInfo = nullptr;
3715     abilityRequest.sessionInfo = sessionInfo;
3716     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
3717     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(sessionId, abilityRecord);
3718     EXPECT_EQ(uiAbilityLifecycleManager->MoveMissionToFront(sessionId, startOptions), ERR_INVALID_VALUE);
3719 }
3720 
3721 /**
3722  * @tc.name: UIAbilityLifecycleManager_MoveMissionToFront_0400
3723  * @tc.desc: MoveMissionToFront
3724  * @tc.type: FUNC
3725  */
3726 HWTEST_F(UIAbilityLifecycleManagerTest, MoveMissionToFront_004, TestSize.Level1)
3727 {
3728     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3729     ASSERT_NE(uiAbilityLifecycleManager, nullptr);
3730     int32_t sessionId = 100;
3731     std::shared_ptr<StartOptions> startOptions;
3732     Rosen::SessionInfo info;
3733     uiAbilityLifecycleManager->rootSceneSession_ = new Rosen::Session(info);
3734     AbilityRequest abilityRequest;
3735     sptr<SessionInfo> sessionInfo = (new SessionInfo());
3736     abilityRequest.sessionInfo = sessionInfo;
3737     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
3738     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(sessionId, abilityRecord);
3739     EXPECT_EQ(uiAbilityLifecycleManager->MoveMissionToFront(sessionId, startOptions), ERR_OK);
3740 }
3741 
3742 /**
3743  * @tc.name: UIAbilityLifecycleManager_GetReusedCollaboratorPersistentId_0100
3744  * @tc.desc: GetReusedCollaboratorPersistentId
3745  * @tc.type: FUNC
3746  */
3747 HWTEST_F(UIAbilityLifecycleManagerTest, GetReusedCollaboratorPersistentId_001, TestSize.Level1)
3748 {
3749     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3750     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
3751     AbilityRequest abilityRequest;
3752     Want want;
3753     want.SetParam("ohos.anco.param.missionAffinity", false);
3754     abilityRequest.want = want;
3755     sptr<SessionInfo> sessionInfo(new SessionInfo());
3756     sessionInfo->persistentId = 100;
3757     abilityRequest.sessionInfo = sessionInfo;
3758     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
3759     abilityRecord->collaboratorType_ = CollaboratorType::DEFAULT_TYPE;
3760     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(sessionInfo->persistentId, abilityRecord);
3761     bool reuse = false;
3762     EXPECT_NE(uiAbilityLifecycleManager->GetReusedCollaboratorPersistentId(abilityRequest, reuse),
3763         sessionInfo->persistentId);
3764 }
3765 
3766 /**
3767  * @tc.name: UIAbilityLifecycleManager_GetReusedCollaboratorPersistentId_0200
3768  * @tc.desc: GetReusedCollaboratorPersistentId
3769  * @tc.type: FUNC
3770  */
3771 HWTEST_F(UIAbilityLifecycleManagerTest, GetReusedCollaboratorPersistentId_002, TestSize.Level1)
3772 {
3773     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3774     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
3775     AbilityRequest abilityRequest;
3776     Want want;
3777     want.SetParam("ohos.anco.param.missionAffinity", false);
3778     abilityRequest.want = want;
3779     sptr<SessionInfo> sessionInfo(new SessionInfo());
3780     sessionInfo->persistentId = 100;
3781     abilityRequest.sessionInfo = sessionInfo;
3782     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
3783     abilityRecord->collaboratorType_ = CollaboratorType::RESERVE_TYPE;
3784     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(sessionInfo->persistentId, abilityRecord);
3785     bool reuse = false;
3786     EXPECT_EQ(uiAbilityLifecycleManager->GetReusedCollaboratorPersistentId(abilityRequest, reuse),
3787         sessionInfo->persistentId);
3788 }
3789 
3790 /**
3791  * @tc.name: UIAbilityLifecycleManager_GetReusedCollaboratorPersistentId_0300
3792  * @tc.desc: GetReusedCollaboratorPersistentId
3793  * @tc.type: FUNC
3794  */
3795 HWTEST_F(UIAbilityLifecycleManagerTest, GetReusedCollaboratorPersistentId_003, TestSize.Level1)
3796 {
3797     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3798     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
3799     AbilityRequest abilityRequest;
3800     Want want;
3801     want.SetParam("ohos.anco.param.missionAffinity", false);
3802     abilityRequest.want = want;
3803     sptr<SessionInfo> sessionInfo(new SessionInfo());
3804     sessionInfo->persistentId = 100;
3805     abilityRequest.sessionInfo = sessionInfo;
3806     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
3807     abilityRecord->collaboratorType_ = CollaboratorType::OTHERS_TYPE;
3808     uiAbilityLifecycleManager->sessionAbilityMap_.emplace(sessionInfo->persistentId, abilityRecord);
3809     bool reuse = false;
3810     EXPECT_EQ(uiAbilityLifecycleManager->GetReusedCollaboratorPersistentId(abilityRequest, reuse),
3811         sessionInfo->persistentId);
3812 }
3813 
3814 /**
3815  * @tc.name: UIAbilityLifecycleManager_DispatchTerminate_0100
3816  * @tc.desc: DispatchTerminate
3817  * @tc.type: FUNC
3818  */
3819 HWTEST_F(UIAbilityLifecycleManagerTest, DispatchTerminate_001, TestSize.Level1)
3820 {
3821     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3822     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
3823     std::shared_ptr<AbilityRecord> abilityRecord = nullptr;
3824     EXPECT_EQ(uiAbilityLifecycleManager->DispatchTerminate(abilityRecord), ERR_INVALID_VALUE);
3825 }
3826 
3827 /**
3828  * @tc.name: UIAbilityLifecycleManager_DispatchTerminate_0200
3829  * @tc.desc: DispatchTerminate
3830  * @tc.type: FUNC
3831  */
3832 HWTEST_F(UIAbilityLifecycleManagerTest, DispatchTerminate_002, TestSize.Level1)
3833 {
3834     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3835     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
3836     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
3837     abilityRecord->currentState_ = AbilityState::INITIAL;
3838     EXPECT_EQ(uiAbilityLifecycleManager->DispatchTerminate(abilityRecord), INNER_ERR);
3839 }
3840 
3841 /**
3842  * @tc.name: UIAbilityLifecycleManager_DispatchTerminate_0300
3843  * @tc.desc: DispatchTerminate
3844  * @tc.type: FUNC
3845  */
3846 HWTEST_F(UIAbilityLifecycleManagerTest, DispatchTerminate_003, TestSize.Level1)
3847 {
3848     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3849     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
3850     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
3851     abilityRecord->currentState_ = AbilityState::TERMINATING;
3852     EXPECT_EQ(uiAbilityLifecycleManager->DispatchTerminate(abilityRecord), ERR_INVALID_VALUE);
3853 }
3854 
3855 /**
3856  * @tc.name: UIAbilityLifecycleManager_DispatchBackground_0100
3857  * @tc.desc: DispatchBackground
3858  * @tc.type: FUNC
3859  */
3860 HWTEST_F(UIAbilityLifecycleManagerTest, DispatchBackground_001, TestSize.Level1)
3861 {
3862     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3863     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
3864     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
3865     EXPECT_EQ(uiAbilityLifecycleManager->DispatchBackground(abilityRecord), ERR_INVALID_VALUE);
3866 }
3867 
3868 /**
3869  * @tc.name: UIAbilityLifecycleManager_DispatchBackground_0200
3870  * @tc.desc: DispatchBackground
3871  * @tc.type: FUNC
3872  */
3873 HWTEST_F(UIAbilityLifecycleManagerTest, DispatchBackground_002, TestSize.Level1)
3874 {
3875     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3876     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
3877     std::shared_ptr<AbilityRecord> abilityRecord = nullptr;
3878     EXPECT_EQ(uiAbilityLifecycleManager->DispatchBackground(abilityRecord), ERR_INVALID_VALUE);
3879 }
3880 
3881 #ifdef WITH_DLP
3882 /**
3883  * @tc.name: UIAbilityLifecycleManager_CheckProperties_0100
3884  * @tc.desc: CheckProperties
3885  * @tc.type: FUNC
3886  */
3887 HWTEST_F(UIAbilityLifecycleManagerTest, CheckProperties_001, TestSize.Level1)
3888 {
3889     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3890     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
3891     Want want;
3892     AbilityRequest abilityRequest;
3893     want.SetParam(DLP_INDEX, 1);
3894     abilityRequest.want = want;
3895     abilityRequest.abilityInfo.launchMode = AppExecFwk::LaunchMode::SPECIFIED;
3896     abilityRequest.abilityInfo.bundleName = "com.example.unittest";
3897     abilityRequest.abilityInfo.name = "MainAbility";
3898     abilityRequest.abilityInfo.moduleName = "entry";
3899     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
3900     abilityRecord->SetAppIndex(2);
3901     AppExecFwk::LaunchMode launchMode = AppExecFwk::LaunchMode::SPECIFIED;
3902     auto ret = uiAbilityLifecycleManager->CheckProperties(abilityRecord, abilityRequest, launchMode);
3903     EXPECT_EQ(ret, false);
3904 }
3905 
3906 /**
3907  * @tc.name: UIAbilityLifecycleManager_CheckProperties_0200
3908  * @tc.desc: CheckProperties
3909  * @tc.type: FUNC
3910  */
3911 HWTEST_F(UIAbilityLifecycleManagerTest, CheckProperties_002, TestSize.Level1)
3912 {
3913     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3914     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
3915     Want want;
3916     AbilityRequest abilityRequest;
3917     want.SetParam(DLP_INDEX, 1);
3918     abilityRequest.want = want;
3919     abilityRequest.abilityInfo.launchMode = AppExecFwk::LaunchMode::SPECIFIED;
3920     abilityRequest.abilityInfo.bundleName = "com.example.unittest";
3921     abilityRequest.abilityInfo.name = "MainAbility";
3922     abilityRequest.abilityInfo.moduleName = "entry";
3923     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
3924     abilityRecord->SetAppIndex(1);
3925     AppExecFwk::LaunchMode launchMode = AppExecFwk::LaunchMode::STANDARD;
3926     auto ret = uiAbilityLifecycleManager->CheckProperties(abilityRecord, abilityRequest, launchMode);
3927     EXPECT_EQ(ret, false);
3928 }
3929 
3930 /**
3931  * @tc.name: UIAbilityLifecycleManager_CheckProperties_0300
3932  * @tc.desc: CheckProperties
3933  * @tc.type: FUNC
3934  */
3935 HWTEST_F(UIAbilityLifecycleManagerTest, CheckProperties_003, TestSize.Level1)
3936 {
3937     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3938     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
3939     Want want;
3940     AbilityRequest abilityRequest;
3941     want.SetParam(DLP_INDEX, 1);
3942     abilityRequest.want = want;
3943     abilityRequest.abilityInfo.launchMode = AppExecFwk::LaunchMode::SPECIFIED;
3944     abilityRequest.abilityInfo.bundleName = "com.example.unittest";
3945     abilityRequest.abilityInfo.name = "MainAbility";
3946     abilityRequest.abilityInfo.moduleName = "entry";
3947     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
3948     abilityRecord->SetAppIndex(1);
3949     AppExecFwk::LaunchMode launchMode = AppExecFwk::LaunchMode::SPECIFIED;
3950     auto ret = uiAbilityLifecycleManager->CheckProperties(abilityRecord, abilityRequest, launchMode);
3951     EXPECT_EQ(ret, true);
3952 }
3953 #endif // WITH_DLP
3954 
3955 /**
3956  * @tc.name: UIAbilityLifecycleManager_ResolveAbility_0100
3957  * @tc.desc: ResolveAbility
3958  * @tc.type: FUNC
3959  */
3960 HWTEST_F(UIAbilityLifecycleManagerTest, ResolveAbility_001, TestSize.Level1)
3961 {
3962     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3963     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
3964     AbilityRequest abilityRequest;
3965     std::shared_ptr<AbilityRecord> targetAbility = nullptr;
3966     EXPECT_EQ(uiAbilityLifecycleManager->ResolveAbility(targetAbility, abilityRequest),
3967         ResolveResultType::NG_INNER_ERROR);
3968 }
3969 
3970 /**
3971  * @tc.name: UIAbilityLifecycleManager_ResolveAbility_0200
3972  * @tc.desc: ResolveAbility
3973  * @tc.type: FUNC
3974  */
3975 HWTEST_F(UIAbilityLifecycleManagerTest, ResolveAbility_002, TestSize.Level1)
3976 {
3977     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3978     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
3979     AbilityRequest abilityRequest;
3980     abilityRequest.callType = AbilityCallType::START_OPTIONS_TYPE;
3981     auto targetAbility = AbilityRecord::CreateAbilityRecord(abilityRequest);
3982     EXPECT_EQ(uiAbilityLifecycleManager->ResolveAbility(targetAbility, abilityRequest),
3983         ResolveResultType::NG_INNER_ERROR);
3984 }
3985 
3986 /**
3987  * @tc.name: UIAbilityLifecycleManager_ResolveAbility_0300
3988  * @tc.desc: ResolveAbility
3989  * @tc.type: FUNC
3990  */
3991 HWTEST_F(UIAbilityLifecycleManagerTest, ResolveAbility_003, TestSize.Level1)
3992 {
3993     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
3994     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
3995     AbilityRequest abilityRequest;
3996     abilityRequest.connect = new UIAbilityLifcecycleManagerTestStub();
3997     abilityRequest.callType = AbilityCallType::CALL_REQUEST_TYPE;
3998     auto targetAbility = AbilityRecord::CreateAbilityRecord(abilityRequest);
3999     targetAbility->callContainer_ = std::make_shared<CallContainer>();
4000     EXPECT_EQ(uiAbilityLifecycleManager->ResolveAbility(targetAbility, abilityRequest),
4001         ResolveResultType::OK_NO_REMOTE_OBJ);
4002 }
4003 
4004 /**
4005  * @tc.name: UIAbilityLifecycleManager_ResolveAbility_0400
4006  * @tc.desc: ResolveAbility
4007  * @tc.type: FUNC
4008  */
4009 HWTEST_F(UIAbilityLifecycleManagerTest, ResolveAbility_004, TestSize.Level1)
4010 {
4011     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
4012     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
4013     AbilityRequest abilityRequest;
4014     abilityRequest.connect = new UIAbilityLifcecycleManagerTestStub();
4015     abilityRequest.callType = AbilityCallType::CALL_REQUEST_TYPE;
4016     auto targetAbility = AbilityRecord::CreateAbilityRecord(abilityRequest);
4017     targetAbility->isReady_ = true;
4018     EXPECT_EQ(uiAbilityLifecycleManager->ResolveAbility(targetAbility, abilityRequest),
4019         ResolveResultType::OK_HAS_REMOTE_OBJ);
4020 }
4021 
4022 /**
4023  * @tc.name: UIAbilityLifecycleManager_CheckPrepareTerminateEnable_0100
4024  * @tc.desc: CheckPrepareTerminateEnable
4025  * @tc.type: FUNC
4026  */
4027 HWTEST_F(UIAbilityLifecycleManagerTest, CheckPrepareTerminateEnable_001, TestSize.Level1)
4028 {
4029     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
4030     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
4031     std::shared_ptr<AbilityRecord> abilityRecord = nullptr;
4032     EXPECT_EQ(uiAbilityLifecycleManager->CheckPrepareTerminateEnable(abilityRecord), false);
4033 }
4034 
4035 /**
4036  * @tc.name: UIAbilityLifecycleManager_CheckPrepareTerminateEnable_0200
4037  * @tc.desc: CheckPrepareTerminateEnable
4038  * @tc.type: FUNC
4039  */
4040 HWTEST_F(UIAbilityLifecycleManagerTest, CheckPrepareTerminateEnable_002, TestSize.Level1)
4041 {
4042     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
4043     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
4044     std::shared_ptr<AbilityRecord> abilityRecord = InitAbilityRecord();
4045     abilityRecord->isTerminating_ = true;
4046     EXPECT_EQ(uiAbilityLifecycleManager->CheckPrepareTerminateEnable(abilityRecord), false);
4047 }
4048 
4049 /**
4050  * @tc.name: UIAbilityLifecycleManager_CheckPrepareTerminateEnable_0300
4051  * @tc.desc: CheckPrepareTerminateEnable
4052  * @tc.type: FUNC
4053  */
4054 HWTEST_F(UIAbilityLifecycleManagerTest, CheckPrepareTerminateEnable_003, TestSize.Level1)
4055 {
4056     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
4057     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
4058     AbilityRequest abilityRequest;
4059     abilityRequest.abilityInfo.type = AppExecFwk::AbilityType::PAGE;
4060     abilityRequest.abilityInfo.isStageBasedModel = false;
4061     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
4062     abilityRecord->isTerminating_ = false;
4063     EXPECT_EQ(uiAbilityLifecycleManager->CheckPrepareTerminateEnable(abilityRecord), false);
4064 }
4065 
4066 /**
4067  * @tc.name: UIAbilityLifecycleManager_CheckPrepareTerminateEnable_0400
4068  * @tc.desc: CheckPrepareTerminateEnable
4069  * @tc.type: FUNC
4070  */
4071 HWTEST_F(UIAbilityLifecycleManagerTest, CheckPrepareTerminateEnable_004, TestSize.Level1)
4072 {
4073     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
4074     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
4075     AbilityRequest abilityRequest;
4076     abilityRequest.abilityInfo.type = AppExecFwk::AbilityType::SERVICE;
4077     abilityRequest.abilityInfo.isStageBasedModel = true;
4078     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
4079     abilityRecord->isTerminating_ = false;
4080     EXPECT_EQ(uiAbilityLifecycleManager->CheckPrepareTerminateEnable(abilityRecord), false);
4081 }
4082 
4083 /**
4084  * @tc.name: UIAbilityLifecycleManager_CheckPrepareTerminateEnable_0500
4085  * @tc.desc: CheckPrepareTerminateEnable
4086  * @tc.type: FUNC
4087  */
4088 HWTEST_F(UIAbilityLifecycleManagerTest, CheckPrepareTerminateEnable_005, TestSize.Level1)
4089 {
4090     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
4091     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
4092     AbilityRequest abilityRequest;
4093     abilityRequest.abilityInfo.type = AppExecFwk::AbilityType::PAGE;
4094     abilityRequest.abilityInfo.isStageBasedModel = true;
4095     abilityRequest.appInfo.accessTokenId = IPCSkeleton::GetCallingTokenID();
4096     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
4097     abilityRecord->isTerminating_ = false;
4098     EXPECT_EQ(uiAbilityLifecycleManager->CheckPrepareTerminateEnable(abilityRecord), false);
4099 }
4100 
4101 /**
4102  * @tc.name: UIAbilityLifecycleManager_GetContentAndTypeId_0100
4103  * @tc.desc: GetContentAndTypeId
4104  * @tc.type: FUNC
4105  */
4106 HWTEST_F(UIAbilityLifecycleManagerTest, GetContentAndTypeId_001, TestSize.Level1)
4107 {
4108     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
4109     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
4110     uint32_t msgId = AbilityManagerService::LOAD_TIMEOUT_MSG;
4111     std::string msgContent = "content";
4112     int typeId;
4113     EXPECT_EQ(uiAbilityLifecycleManager->GetContentAndTypeId(msgId, msgContent, typeId), true);
4114 }
4115 
4116 /**
4117  * @tc.name: UIAbilityLifecycleManager_GetContentAndTypeId_0200
4118  * @tc.desc: GetContentAndTypeId
4119  * @tc.type: FUNC
4120  */
4121 HWTEST_F(UIAbilityLifecycleManagerTest, GetContentAndTypeId_002, TestSize.Level1)
4122 {
4123     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
4124     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
4125     uint32_t msgId = AbilityManagerService::FOREGROUND_TIMEOUT_MSG;
4126     std::string msgContent = "content";
4127     int typeId;
4128     EXPECT_EQ(uiAbilityLifecycleManager->GetContentAndTypeId(msgId, msgContent, typeId), true);
4129 }
4130 
4131 /**
4132  * @tc.name: UIAbilityLifecycleManager_GetContentAndTypeId_0300
4133  * @tc.desc: GetContentAndTypeId
4134  * @tc.type: FUNC
4135  */
4136 HWTEST_F(UIAbilityLifecycleManagerTest, GetContentAndTypeId_003, TestSize.Level1)
4137 {
4138     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
4139     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
4140     uint32_t msgId = AbilityManagerService::BACKGROUND_TIMEOUT_MSG;
4141     std::string msgContent = "content";
4142     int typeId;
4143     EXPECT_EQ(uiAbilityLifecycleManager->GetContentAndTypeId(msgId, msgContent, typeId), true);
4144 }
4145 
4146 /**
4147  * @tc.name: UIAbilityLifecycleManager_GetContentAndTypeId_0400
4148  * @tc.desc: GetContentAndTypeId
4149  * @tc.type: FUNC
4150  */
4151 HWTEST_F(UIAbilityLifecycleManagerTest, GetContentAndTypeId_004, TestSize.Level1)
4152 {
4153     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
4154     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
4155     uint32_t msgId = AbilityManagerService::TERMINATE_TIMEOUT_MSG;
4156     std::string msgContent = "content";
4157     int typeId;
4158     EXPECT_EQ(uiAbilityLifecycleManager->GetContentAndTypeId(msgId, msgContent, typeId), true);
4159 }
4160 
4161 /**
4162  * @tc.name: UIAbilityLifecycleManager_GetContentAndTypeId_0500
4163  * @tc.desc: GetContentAndTypeId
4164  * @tc.type: FUNC
4165  */
4166 HWTEST_F(UIAbilityLifecycleManagerTest, GetContentAndTypeId_005, TestSize.Level1)
4167 {
4168     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
4169     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
4170     uint32_t msgId = AbilityManagerService::ACTIVE_TIMEOUT_MSG;
4171     std::string msgContent = "content";
4172     int typeId;
4173     EXPECT_EQ(uiAbilityLifecycleManager->GetContentAndTypeId(msgId, msgContent, typeId), false);
4174 }
4175 
4176 /**
4177  * @tc.name: UIAbilityLifecycleManager_CheckCallerFromBackground_0100
4178  * @tc.desc: CheckCallerFromBackground
4179  * @tc.type: FUNC
4180  */
4181 HWTEST_F(UIAbilityLifecycleManagerTest, CheckCallerFromBackground_0100, TestSize.Level1)
4182 {
4183     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
4184     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
4185     sptr<SessionInfo> info = nullptr;
4186     uiAbilityLifecycleManager->CheckCallerFromBackground(nullptr, info);
4187 }
4188 
4189 /**
4190  * @tc.name: UIAbilityLifecycleManager_CheckCallerFromBackground_0200
4191  * @tc.desc: CheckCallerFromBackground
4192  * @tc.type: FUNC
4193  */
4194 HWTEST_F(UIAbilityLifecycleManagerTest, CheckCallerFromBackground_0200, TestSize.Level1)
4195 {
4196     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
4197     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
4198     sptr<SessionInfo> info = nullptr;
4199     sptr<SessionInfo> sessionInfo(new SessionInfo());
4200     AbilityRequest abilityRequest;
4201     abilityRequest.sessionInfo = sessionInfo;
4202     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
4203     uiAbilityLifecycleManager->CheckCallerFromBackground(abilityRecord, info);
4204 }
4205 
4206 /**
4207  * @tc.name: UIAbilityLifecycleManager_CheckCallerFromBackground_0300
4208  * @tc.desc: CheckCallerFromBackground
4209  * @tc.type: FUNC
4210  */
4211 HWTEST_F(UIAbilityLifecycleManagerTest, CheckCallerFromBackground_0300, TestSize.Level1)
4212 {
4213     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
4214     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
4215     sptr<SessionInfo> sessionInfo(new SessionInfo());
4216     uiAbilityLifecycleManager->CheckCallerFromBackground(nullptr, sessionInfo);
4217 }
4218 
4219 /**
4220  * @tc.name: UIAbilityLifecycleManager_CheckCallerFromBackground_0400
4221  * @tc.desc: CheckCallerFromBackground
4222  * @tc.type: FUNC
4223  */
4224 HWTEST_F(UIAbilityLifecycleManagerTest, CheckCallerFromBackground_0400, TestSize.Level1)
4225 {
4226     auto uiAbilityLifecycleManager = std::make_unique<UIAbilityLifecycleManager>();
4227     EXPECT_NE(uiAbilityLifecycleManager, nullptr);
4228     sptr<SessionInfo> sessionInfo(new SessionInfo());
4229     AbilityRequest abilityRequest;
4230     abilityRequest.sessionInfo = sessionInfo;
4231     auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
4232     uiAbilityLifecycleManager->CheckCallerFromBackground(abilityRecord, sessionInfo);
4233 }
4234 }  // namespace AAFwk
4235 }  // namespace OHOS
4236