1 /*
2  * Copyright (c) 2022 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 #include "ability_info.h"
18 #include "mission.h"
19 #include "mission_list.h"
20 
21 using namespace testing::ext;
22 using namespace OHOS::AppExecFwk;
23 
24 namespace {
25 const std::string DEVICE_ID = "15010038475446345206a332922cb765";
26 const std::string INVALID_DEVICE_ID = "88880038475446345206a332922c8888";
27 const std::string BUNDLE_NAME = "testBundle";
28 const std::string INVALID_BUNDLE_NAME = "invalidBundle";
29 const std::string NAME = ".testMainAbility";
30 const std::string INVALID_NAME = "invalid.testMainAbility";
31 }
32 
33 namespace OHOS {
34 namespace AAFwk {
35 class MissionListTest : public testing::Test {
36 public:
37     static void SetUpTestCase(void);
38     static void TearDownTestCase(void);
39     void SetUp();
40     void TearDown();
41 };
42 
SetUpTestCase(void)43 void MissionListTest::SetUpTestCase(void)
44 {}
TearDownTestCase(void)45 void MissionListTest::TearDownTestCase(void)
46 {}
SetUp(void)47 void MissionListTest::SetUp(void)
48 {}
TearDown(void)49 void MissionListTest::TearDown(void)
50 {}
51 
52 /*
53  * Feature: MissionList
54  * Function: GetAbilityRecordByName
55  * SubFunction: NA
56  * FunctionPoints: MissionList GetAbilityRecordByName
57  * EnvConditions: NA
58  * CaseDescription: Verify GetAbilityRecordByName
59  */
60 HWTEST_F(MissionListTest, mission_list_get_ability_record_by_name_001, TestSize.Level1)
61 {
62     AppExecFwk::AbilityInfo abilityInfo;
63     abilityInfo.deviceId = DEVICE_ID;
64     abilityInfo.bundleName = BUNDLE_NAME;
65     abilityInfo.name = NAME;
66     Want want;
67     AppExecFwk::ApplicationInfo applicationInfo;
68     std::shared_ptr<AbilityRecord> abilityRecord = std::make_shared<AbilityRecord>(want, abilityInfo, applicationInfo);
69 
70     auto mission = std::make_shared<Mission>(0, abilityRecord, "launcher");
71     auto missionList = std::make_shared<MissionList>();
72     missionList->AddMissionToTop(mission);
73 
74     AppExecFwk::ElementName localElement(DEVICE_ID, BUNDLE_NAME, NAME);
75     EXPECT_EQ(abilityRecord, missionList->GetAbilityRecordByName(localElement));
76 }
77 
78 /*
79  * Feature: MissionList
80  * Function: GetAbilityRecordByName
81  * SubFunction: NA
82  * FunctionPoints: MissionList GetAbilityRecordByName
83  * EnvConditions: NA
84  * CaseDescription: Verify GetAbilityRecordByName
85  */
86 HWTEST_F(MissionListTest, mission_list_get_ability_record_by_name_002, TestSize.Level1)
87 {
88     AppExecFwk::AbilityInfo abilityInfo;
89     abilityInfo.deviceId = DEVICE_ID;
90     abilityInfo.bundleName = BUNDLE_NAME;
91     abilityInfo.name = NAME;
92     Want want;
93     AppExecFwk::ApplicationInfo applicationInfo;
94     std::shared_ptr<AbilityRecord> abilityRecord = std::make_shared<AbilityRecord>(want, abilityInfo, applicationInfo);
95 
96     auto mission = std::make_shared<Mission>(0, abilityRecord, "launcher");
97     auto missionList = std::make_shared<MissionList>();
98     missionList->AddMissionToTop(mission);
99 
100     AppExecFwk::ElementName localElement(INVALID_DEVICE_ID, BUNDLE_NAME, NAME);
101     EXPECT_EQ(nullptr, missionList->GetAbilityRecordByName(localElement));
102 }
103 
104 /*
105  * Feature: MissionList
106  * Function: GetAbilityRecordByName
107  * SubFunction: NA
108  * FunctionPoints: MissionList GetAbilityRecordByName
109  * EnvConditions: NA
110  * CaseDescription: Verify GetAbilityRecordByName
111  */
112 HWTEST_F(MissionListTest, mission_list_get_ability_record_by_name_003, TestSize.Level1)
113 {
114     AppExecFwk::AbilityInfo abilityInfo;
115     abilityInfo.deviceId = DEVICE_ID;
116     abilityInfo.bundleName = BUNDLE_NAME;
117     abilityInfo.name = NAME;
118     Want want;
119     AppExecFwk::ApplicationInfo applicationInfo;
120     std::shared_ptr<AbilityRecord> abilityRecord = std::make_shared<AbilityRecord>(want, abilityInfo, applicationInfo);
121 
122     auto mission = std::make_shared<Mission>(0, abilityRecord, "launcher");
123     auto missionList = std::make_shared<MissionList>();
124     missionList->AddMissionToTop(mission);
125 
126     AppExecFwk::ElementName localElement(DEVICE_ID, INVALID_BUNDLE_NAME, NAME);
127     EXPECT_EQ(nullptr, missionList->GetAbilityRecordByName(localElement));
128 }
129 
130 /*
131  * Feature: MissionList
132  * Function: GetAbilityRecordByName
133  * SubFunction: NA
134  * FunctionPoints: MissionList GetAbilityRecordByName
135  * EnvConditions: NA
136  * CaseDescription: Verify GetAbilityRecordByName
137  */
138 HWTEST_F(MissionListTest, mission_list_get_ability_record_by_name_004, TestSize.Level1)
139 {
140     AppExecFwk::AbilityInfo abilityInfo;
141     abilityInfo.deviceId = DEVICE_ID;
142     abilityInfo.bundleName = BUNDLE_NAME;
143     abilityInfo.name = NAME;
144     Want want;
145     AppExecFwk::ApplicationInfo applicationInfo;
146     std::shared_ptr<AbilityRecord> abilityRecord = std::make_shared<AbilityRecord>(want, abilityInfo, applicationInfo);
147 
148     auto mission = std::make_shared<Mission>(0, abilityRecord, "launcher");
149     auto missionList = std::make_shared<MissionList>();
150     missionList->AddMissionToTop(mission);
151 
152     AppExecFwk::ElementName localElement(DEVICE_ID, BUNDLE_NAME, INVALID_NAME);
153     EXPECT_EQ(nullptr, missionList->GetAbilityRecordByName(localElement));
154 }
155 }  // namespace AAFwk
156 }  // namespace OHOS
157