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 #define private public
18 #define protected public
19 #include "ability_manager_service.h"
20 #include "mission_list_manager.h"
21 #undef private
22 #undef protected
23 #include "scene_board_judgement.h"
24
25 using namespace testing;
26 using namespace testing::ext;
27 using namespace OHOS::AppExecFwk;
28
29 namespace OHOS {
30 namespace AAFwk {
31 namespace {
32 const int32_t USER_ID = 100;
33 const size_t SIZE_ZERO = 0;
34 const std::string STRING_PROCESS_NAME = "process_name";
35 } // namespace
36
37 class AbilityManagerServiceDumpTest : public testing::Test {
38 public:
39 static void SetUpTestCase();
40 static void TearDownTestCase();
41 void SetUp();
42 void TearDown();
43 };
44
SetUpTestCase()45 void AbilityManagerServiceDumpTest::SetUpTestCase()
46 {}
47
TearDownTestCase()48 void AbilityManagerServiceDumpTest::TearDownTestCase()
49 {}
50
SetUp()51 void AbilityManagerServiceDumpTest::SetUp()
52 {
53 }
54
TearDown()55 void AbilityManagerServiceDumpTest::TearDown()
56 {
57 }
58
59 /**
60 * @tc.name: AbilityManagerService_GetProcessRunningInfosByUserId_0100
61 * @tc.desc: GetProcessRunningInfosByUserId
62 * @tc.type: FUNC
63 * @tc.require: SR000GH1GO
64 */
65 HWTEST_F(AbilityManagerServiceDumpTest, AbilityManagerService_GetProcessRunningInfosByUserId_0100, TestSize.Level1)
66 {
67 auto abilityMs_ = std::make_shared<AbilityManagerService>();
68 std::vector<RunningProcessInfo> info;
69 auto result = abilityMs_->GetProcessRunningInfosByUserId(info, USER_ID);
70 EXPECT_EQ(result, AppMgrResultCode::RESULT_OK);
71 }
72
73 /**
74 * @tc.name: AbilityManagerService_DumpSysInner_0100
75 * @tc.desc: DumpSysInner
76 * @tc.type: FUNC
77 * @tc.require: SR000GH1GO
78 */
79 HWTEST_F(AbilityManagerServiceDumpTest, AbilityManagerService_DumpSysInner_0100, TestSize.Level1)
80 {
81 auto abilityMs_ = std::make_shared<AbilityManagerService>();
82 std::string args = "-a";
83 std::vector<std::string> info;
84 bool isClient = false;
85 bool isUserID = true;
86 abilityMs_->DumpSysInner(args, info, isClient, isUserID, USER_ID);
87 EXPECT_GT(info.size(), SIZE_ZERO);
88 }
89
90 /**
91 * @tc.name: AbilityManagerService_DumpSysMissionListInner_0100
92 * @tc.desc: DumpSysMissionListInner
93 * @tc.type: FUNC
94 * @tc.require: SR000GH1GO
95 */
96 HWTEST_F(AbilityManagerServiceDumpTest, AbilityManagerService_DumpSysMissionListInner_0100, TestSize.Level1)
97 {
98 auto abilityMs_ = std::make_shared<AbilityManagerService>();
99 std::string args = "-a";
100 std::vector<std::string> info;
101 bool isClient = false;
102 bool isUserID = true;
103 EXPECT_TRUE(abilityMs_ != nullptr);
104 abilityMs_->DumpSysMissionListInner(args, info, isClient, isUserID, USER_ID);
105 if (!Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) {
106 EXPECT_GT(info.size(), SIZE_ZERO);
107 }
108 }
109
110 /**
111 * @tc.name: AbilityManagerService_DumpSysAbilityInner_0100
112 * @tc.desc: DumpSysAbilityInner
113 * @tc.type: FUNC
114 * @tc.require: SR000GH1GO
115 */
116 HWTEST_F(AbilityManagerServiceDumpTest, AbilityManagerService_DumpSysAbilityInner_0100, TestSize.Level1)
117 {
118 auto abilityMs_ = std::make_shared<AbilityManagerService>();
119 std::string args = "-a";
120 std::vector<std::string> info;
121 bool isClient = false;
122 bool isUserID = true;
123 abilityMs_->DumpSysAbilityInner(args, info, isClient, isUserID, USER_ID);
124 EXPECT_GT(info.size(), SIZE_ZERO);
125 }
126
127 /**
128 * @tc.name: AbilityManagerService_DumpSysStateInner_0100
129 * @tc.desc: DumpSysStateInner
130 * @tc.type: FUNC
131 * @tc.require: SR000GH1GO
132 */
133 HWTEST_F(AbilityManagerServiceDumpTest, AbilityManagerService_DumpSysStateInner_0100, TestSize.Level1)
134 {
135 auto abilityMs_ = std::make_shared<AbilityManagerService>();
136 std::string args = "-a";
137 std::vector<std::string> info;
138 bool isClient = false;
139 bool isUserID = true;
140 abilityMs_->DumpSysStateInner(args, info, isClient, isUserID, USER_ID);
141 EXPECT_GT(info.size(), SIZE_ZERO);
142 }
143
144 /**
145 * @tc.name: AbilityManagerService_DumpSysPendingInner_0100
146 * @tc.desc: DumpSysPendingInner
147 * @tc.type: FUNC
148 * @tc.require: SR000GH1GO
149 */
150 HWTEST_F(AbilityManagerServiceDumpTest, AbilityManagerService_DumpSysPendingInner_0100, TestSize.Level1)
151 {
152 auto abilityMs_ = std::make_shared<AbilityManagerService>();
153 std::string args = "-a";
154 std::vector<std::string> info;
155 bool isClient = false;
156 bool isUserID = true;
157 abilityMs_->DumpSysPendingInner(args, info, isClient, isUserID, USER_ID);
158 EXPECT_GT(info.size(), SIZE_ZERO);
159 }
160
161 /**
162 * @tc.name: AbilityManagerService_DumpSysProcess_0100
163 * @tc.desc: DumpSysProcess
164 * @tc.type: FUNC
165 * @tc.require: SR000GH1GO
166 */
167 HWTEST_F(AbilityManagerServiceDumpTest, AbilityManagerService_DumpSysProcess_0100, TestSize.Level1)
168 {
169 auto abilityMs_ = std::make_shared<AbilityManagerService>();
170 std::string args = "-a";
171 std::vector<std::string> info;
172 bool isClient = false;
173 bool isUserID = true;
174 abilityMs_->DumpSysProcess(args, info, isClient, isUserID, USER_ID);
175 EXPECT_NE(info.size(), SIZE_ZERO);
176 }
177
178 /**
179 * @tc.name: AbilityManagerService_DataDumpSysStateInner_0100
180 * @tc.desc: DataDumpSysStateInner
181 * @tc.type: FUNC
182 * @tc.require: SR000GH1GO
183 */
184 HWTEST_F(AbilityManagerServiceDumpTest, AbilityManagerService_DataDumpSysStateInner_0100, TestSize.Level1)
185 {
186 auto abilityMs_ = std::make_shared<AbilityManagerService>();
187 std::string args = "-a";
188 std::vector<std::string> info;
189 bool isClient = false;
190 bool isUserID = true;
191 abilityMs_->DataDumpSysStateInner(args, info, isClient, isUserID, USER_ID);
192 EXPECT_GT(info.size(), SIZE_ZERO);
193 }
194
195 /**
196 * @tc.name: AbilityManagerService_OnAppStateChanged_0100
197 * @tc.desc: OnAppStateChanged
198 * @tc.type: FUNC
199 * @tc.require: SR000GH1GO
200 */
201 HWTEST_F(AbilityManagerServiceDumpTest, AbilityManagerService_OnAppStateChanged_0100, TestSize.Level1)
202 {
203 auto abilityMs_ = std::make_shared<AbilityManagerService>();
204 abilityMs_->subManagersHelper_ = std::make_shared<SubManagersHelper>(nullptr, nullptr);
205 abilityMs_->subManagersHelper_->currentConnectManager_ = std::make_shared<AbilityConnectManager>(0);
206 EXPECT_NE(abilityMs_->subManagersHelper_->currentConnectManager_, nullptr);
207
208 Want want;
209 OHOS::AppExecFwk::AbilityInfo abilityInfo;
210 abilityInfo.process = STRING_PROCESS_NAME;
211 OHOS::AppExecFwk::ApplicationInfo applicationInfo;
212 auto abilityRecord = std::make_shared<AbilityRecord>(want, abilityInfo, applicationInfo);
213 EXPECT_NE(abilityRecord, nullptr);
214
215 if (!Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) {
216 auto missionListManager = std::make_shared<MissionListManager>(USER_ID);
217 missionListManager->Init();
218 abilityMs_->subManagersHelper_->currentMissionListManager_ = missionListManager;
219 missionListManager->terminateAbilityList_.push_back(abilityRecord);
220
221 abilityMs_->subManagersHelper_->currentDataAbilityManager_ = std::make_shared<DataAbilityManager>();
222 EXPECT_NE(abilityMs_->subManagersHelper_->currentDataAbilityManager_, nullptr);
223
224 AppInfo info;
225 info.processName = STRING_PROCESS_NAME;
226 info.state = AppState::TERMINATED;
227 abilityMs_->OnAppStateChanged(info);
228
229 abilityRecord = missionListManager->terminateAbilityList_.front();
230 EXPECT_NE(abilityRecord, nullptr);
231 EXPECT_NE(abilityRecord->GetAppState(), AppState::TERMINATED);
232 }
233 }
234
235 /**
236 * @tc.name: DumpUIExtensionRootHostRunningInfos_0100
237 * @tc.desc: Dump ui extension root host info.
238 * @tc.type: FUNC
239 */
240 HWTEST_F(AbilityManagerServiceDumpTest, DumpUIExtensionRootHostRunningInfos_0100, TestSize.Level1)
241 {
242 auto abilityMs_ = std::make_shared<AbilityManagerService>();
243 ASSERT_NE(abilityMs_, nullptr);
244 pid_t pid = 1;
245 std::vector<std::string> info;
246 abilityMs_->DumpUIExtensionRootHostRunningInfos(pid, info);
247 EXPECT_EQ(info.size(), 0);
248 }
249
250 /**
251 * @tc.name: DumpUIExtensionProviderRunningInfos_0100
252 * @tc.desc: Dump ui extension provider info.
253 * @tc.type: FUNC
254 */
255 HWTEST_F(AbilityManagerServiceDumpTest, DumpUIExtensionProviderRunningInfos_0100, TestSize.Level1)
256 {
257 auto abilityMs_ = std::make_shared<AbilityManagerService>();
258 ASSERT_NE(abilityMs_, nullptr);
259 pid_t hostPid = 1;
260 std::vector<std::string> info;
261 abilityMs_->DumpUIExtensionRootHostRunningInfos(hostPid, info);
262 EXPECT_EQ(info.size(), 0);
263 }
264 } // namespace AAFwk
265 } // namespace OHOS
266