1 /*
2 * Copyright (c) 2023-2025 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include <gtest/gtest.h>
17
18 #define private public
19 #include "app_utils.h"
20 #undef private
21 #include "hilog_tag_wrapper.h"
22 #include "parameters.h"
23
24 using namespace testing;
25 using namespace testing::ext;
26
27 namespace OHOS {
28 namespace AbilityRuntime {
29 class AppUtilsTest : public testing::Test {
30 public:
31 static void SetUpTestCase();
32 static void TearDownTestCase();
33 void SetUp() override;
34 void TearDown() override;
35 };
36
SetUpTestCase(void)37 void AppUtilsTest::SetUpTestCase(void)
38 {}
39
TearDownTestCase(void)40 void AppUtilsTest::TearDownTestCase(void)
41 {}
42
SetUp()43 void AppUtilsTest::SetUp()
44 {}
45
TearDown()46 void AppUtilsTest::TearDown()
47 {}
48
49 /**
50 * @tc.number: AppUtilsTest_0100
51 * @tc.desc: Test IsInheritWindowSplitScreenMode works
52 * @tc.type: FUNC
53 */
54 HWTEST_F(AppUtilsTest, AppUtilsTest_0100, TestSize.Level2)
55 {
56 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_0100 called.");
57 bool isInheritWindowSplitScreenMode = AAFwk::AppUtils::GetInstance().IsInheritWindowSplitScreenMode();
58 std::string deviceType = OHOS::system::GetDeviceType();
59 TAG_LOGI(AAFwkTag::TEST, "current deviceType is %{public}s", deviceType.c_str());
60 if (deviceType == "default") {
61 EXPECT_TRUE(isInheritWindowSplitScreenMode == true);
62 } else if (deviceType == "phone") {
63 EXPECT_TRUE(isInheritWindowSplitScreenMode == true);
64 } else if (deviceType == "2in1") {
65 EXPECT_TRUE(isInheritWindowSplitScreenMode == false);
66 }
67 }
68
69 /**
70 * @tc.number: AppUtilsTest_0200
71 * @tc.desc: Test IsSupportAncoApp works
72 * @tc.type: FUNC
73 */
74 HWTEST_F(AppUtilsTest, AppUtilsTest_0200, TestSize.Level2)
75 {
76 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_0200 called.");
77 bool isSupportAncoApp = AAFwk::AppUtils::GetInstance().IsSupportAncoApp();
78 std::string deviceType = OHOS::system::GetDeviceType();
79 TAG_LOGI(AAFwkTag::TEST, "current deviceType is %{public}s", deviceType.c_str());
80 if (deviceType == "default") {
81 EXPECT_TRUE(isSupportAncoApp == false);
82 } else if (deviceType == "phone") {
83 EXPECT_TRUE(isSupportAncoApp == true);
84 } else if (deviceType == "2in1") {
85 EXPECT_TRUE(isSupportAncoApp == false);
86 }
87 }
88
89 /**
90 * @tc.number: AppUtilsTest_0300
91 * @tc.desc: Test GetTimeoutUnitTimeRatio works
92 * @tc.type: FUNC
93 */
94 HWTEST_F(AppUtilsTest, AppUtilsTest_0300, TestSize.Level2)
95 {
96 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_0300 called.");
97 int32_t timeoutUnitTimeRatio = AAFwk::AppUtils::GetInstance().GetTimeoutUnitTimeRatio();
98 std::string deviceType = OHOS::system::GetDeviceType();
99 TAG_LOGI(AAFwkTag::TEST, "current deviceType is %{public}s", deviceType.c_str());
100 if (deviceType == "default") {
101 EXPECT_TRUE(timeoutUnitTimeRatio == 1);
102 } else if (deviceType == "phone") {
103 EXPECT_TRUE(timeoutUnitTimeRatio == 1);
104 } else if (deviceType == "2in1") {
105 EXPECT_TRUE(timeoutUnitTimeRatio == 10);
106 }
107 }
108
109 /**
110 * @tc.number: AppUtilsTest_0400
111 * @tc.desc: Test IsSelectorDialogDefaultPossion works
112 * @tc.type: FUNC
113 */
114 HWTEST_F(AppUtilsTest, AppUtilsTest_0400, TestSize.Level2)
115 {
116 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_0400 called.");
117 bool isSelectorDialogDefaultPossion = AAFwk::AppUtils::GetInstance().IsSelectorDialogDefaultPossion();
118 std::string deviceType = OHOS::system::GetDeviceType();
119 TAG_LOGI(AAFwkTag::TEST, "current deviceType is %{public}s", deviceType.c_str());
120 if (deviceType == "default") {
121 EXPECT_TRUE(isSelectorDialogDefaultPossion == true);
122 } else if (deviceType == "phone") {
123 EXPECT_TRUE(isSelectorDialogDefaultPossion == true);
124 } else if (deviceType == "2in1") {
125 EXPECT_TRUE(isSelectorDialogDefaultPossion == false);
126 }
127 }
128
129 /**
130 * @tc.number: AppUtilsTest_0500
131 * @tc.desc: Test IsStartSpecifiedProcess works
132 * @tc.type: FUNC
133 */
134 HWTEST_F(AppUtilsTest, AppUtilsTest_0500, TestSize.Level2)
135 {
136 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_0500 called.");
137 bool isStartSpecifiedProcess = AAFwk::AppUtils::GetInstance().IsStartSpecifiedProcess();
138 std::string deviceType = OHOS::system::GetDeviceType();
139 TAG_LOGI(AAFwkTag::TEST, "current deviceType is %{public}s", deviceType.c_str());
140 if (deviceType == "default") {
141 EXPECT_TRUE(isStartSpecifiedProcess == false);
142 } else if (deviceType == "phone") {
143 EXPECT_TRUE(isStartSpecifiedProcess == false);
144 } else if (deviceType == "2in1") {
145 EXPECT_TRUE(isStartSpecifiedProcess == true);
146 }
147 }
148
149 /**
150 * @tc.number: AppUtilsTest_0600
151 * @tc.desc: Test IsUseMultiRenderProcess works
152 * @tc.type: FUNC
153 */
154 HWTEST_F(AppUtilsTest, AppUtilsTest_0600, TestSize.Level2)
155 {
156 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_0600 called.");
157 bool isUseMultiRenderProcess = AAFwk::AppUtils::GetInstance().IsUseMultiRenderProcess();
158 std::string deviceType = OHOS::system::GetDeviceType();
159 TAG_LOGI(AAFwkTag::TEST, "current deviceType is %{public}s", deviceType.c_str());
160 if (deviceType == "default") {
161 EXPECT_TRUE(isUseMultiRenderProcess == true);
162 } else if (deviceType == "phone") {
163 EXPECT_TRUE(isUseMultiRenderProcess == true);
164 } else if (deviceType == "2in1") {
165 EXPECT_TRUE(isUseMultiRenderProcess == true);
166 }
167 }
168
169 /**
170 * @tc.number: AppUtilsTest_0700
171 * @tc.desc: Test IsLimitMaximumOfRenderProcess works
172 * @tc.type: FUNC
173 */
174 HWTEST_F(AppUtilsTest, AppUtilsTest_0700, TestSize.Level2)
175 {
176 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_0700 called.");
177 bool isLimitMaximumOfRenderProcess = AAFwk::AppUtils::GetInstance().IsLimitMaximumOfRenderProcess();
178 std::string deviceType = OHOS::system::GetDeviceType();
179 TAG_LOGI(AAFwkTag::TEST, "current deviceType is %{public}s", deviceType.c_str());
180 if (deviceType == "default") {
181 EXPECT_TRUE(isLimitMaximumOfRenderProcess == true);
182 } else if (deviceType == "phone") {
183 EXPECT_TRUE(isLimitMaximumOfRenderProcess == true);
184 } else if (deviceType == "2in1") {
185 EXPECT_TRUE(isLimitMaximumOfRenderProcess == false);
186 }
187 }
188
189 /**
190 * @tc.number: AppUtilsTest_0800
191 * @tc.desc: Test IsGrantPersistUriPermission works
192 * @tc.type: FUNC
193 */
194 HWTEST_F(AppUtilsTest, AppUtilsTest_0800, TestSize.Level2)
195 {
196 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_0800 called.");
197 bool isGrantPersistUriPermission = AAFwk::AppUtils::GetInstance().IsGrantPersistUriPermission();
198 std::string deviceType = OHOS::system::GetDeviceType();
199 TAG_LOGI(AAFwkTag::TEST, "current deviceType is %{public}s", deviceType.c_str());
200 if (deviceType == "default") {
201 EXPECT_TRUE(isGrantPersistUriPermission == false);
202 } else if (deviceType == "phone") {
203 EXPECT_TRUE(isGrantPersistUriPermission == false);
204 } else if (deviceType == "2in1") {
205 EXPECT_TRUE(isGrantPersistUriPermission == true);
206 }
207 }
208
209 /**
210 * @tc.number: AppUtilsTest_0900
211 * @tc.desc: Test IsStartOptionsWithAnimation works
212 * @tc.type: FUNC
213 */
214 HWTEST_F(AppUtilsTest, AppUtilsTest_0900, TestSize.Level2)
215 {
216 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_0900 called.");
217 bool isStartOptionsWithAnimation = AAFwk::AppUtils::GetInstance().IsStartOptionsWithAnimation();
218 std::string deviceType = OHOS::system::GetDeviceType();
219 TAG_LOGI(AAFwkTag::TEST, "current deviceType is %{public}s", deviceType.c_str());
220 if (deviceType == "default") {
221 EXPECT_TRUE(isStartOptionsWithAnimation == false);
222 } else if (deviceType == "phone") {
223 EXPECT_TRUE(isStartOptionsWithAnimation == false);
224 } else if (deviceType == "2in1") {
225 EXPECT_TRUE(isStartOptionsWithAnimation == true);
226 }
227 }
228
229 /**
230 * @tc.number: AppUtilsTest_1000
231 * @tc.desc: Test IsMultiProcessModel works
232 * @tc.type: FUNC
233 */
234 HWTEST_F(AppUtilsTest, AppUtilsTest_1000, TestSize.Level2)
235 {
236 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_1000 called.");
237 bool isMultiProcessModel = AAFwk::AppUtils::GetInstance().IsMultiProcessModel();
238 std::string deviceType = OHOS::system::GetDeviceType();
239 TAG_LOGI(AAFwkTag::TEST, "current deviceType is %{public}s", deviceType.c_str());
240 if (deviceType == "default") {
241 EXPECT_TRUE(isMultiProcessModel == false);
242 } else if (deviceType == "phone") {
243 EXPECT_TRUE(isMultiProcessModel == false);
244 } else if (deviceType == "2in1") {
245 EXPECT_TRUE(isMultiProcessModel == true);
246 }
247 }
248
249 /**
250 * @tc.number: AppUtilsTest_1100
251 * @tc.desc: Test IsStartOptionsWithProcessOptions works
252 * @tc.type: FUNC
253 */
254 HWTEST_F(AppUtilsTest, AppUtilsTest_1100, TestSize.Level2)
255 {
256 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_1100 called.");
257 bool isStartOptionsWithProcessOptions = AAFwk::AppUtils::GetInstance().IsStartOptionsWithProcessOptions();
258 std::string deviceType = OHOS::system::GetDeviceType();
259 TAG_LOGI(AAFwkTag::TEST, "current deviceType is %{public}s", deviceType.c_str());
260 if (deviceType == "default") {
261 EXPECT_TRUE(isStartOptionsWithProcessOptions == false);
262 } else if (deviceType == "phone") {
263 EXPECT_TRUE(isStartOptionsWithProcessOptions == false);
264 } else if (deviceType == "2in1") {
265 EXPECT_TRUE(isStartOptionsWithProcessOptions == true);
266 }
267 }
268
269 /**
270 * @tc.number: AppUtilsTest_1200
271 * @tc.desc: Test EnableMoveUIAbilityToBackgroundApi works
272 * @tc.type: FUNC
273 */
274 HWTEST_F(AppUtilsTest, AppUtilsTest_1200, TestSize.Level2)
275 {
276 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_1200 called.");
277 bool enableMoveUIAbilityToBackgroundApi = AAFwk::AppUtils::GetInstance().EnableMoveUIAbilityToBackgroundApi();
278 std::string deviceType = OHOS::system::GetDeviceType();
279 TAG_LOGI(AAFwkTag::TEST, "current deviceType is %{public}s", deviceType.c_str());
280 if (deviceType == "default") {
281 EXPECT_TRUE(enableMoveUIAbilityToBackgroundApi == true);
282 } else if (deviceType == "phone") {
283 EXPECT_TRUE(enableMoveUIAbilityToBackgroundApi == true);
284 } else if (deviceType == "2in1") {
285 EXPECT_TRUE(enableMoveUIAbilityToBackgroundApi == false);
286 }
287 }
288
289 /**
290 * @tc.number: AppUtilsTest_1300
291 * @tc.desc: Test MaxChildProcess works
292 * @tc.type: FUNC
293 */
294 HWTEST_F(AppUtilsTest, AppUtilsTest_1300, TestSize.Level2)
295 {
296 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_1300 called.");
297 auto maxChildProcess = AAFwk::AppUtils::GetInstance().MaxChildProcess();
298 std::string deviceType = OHOS::system::GetDeviceType();
299 TAG_LOGI(AAFwkTag::TEST, "current deviceType is %{public}s", deviceType.c_str());
300 if (deviceType == "phone" || deviceType == "2in1") {
301 EXPECT_TRUE(maxChildProcess != 0);
302 }
303 }
304
305 /**
306 * @tc.number: AppUtilsTest_1400
307 * @tc.desc: Test IsAllowNativeChildProcess works
308 * @tc.type: FUNC
309 */
310 HWTEST_F(AppUtilsTest, AppUtilsTest_1400, TestSize.Level2)
311 {
312 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_1400 called.");
313 auto allow = AAFwk::AppUtils::GetInstance().IsAllowNativeChildProcess("com.test.demo");
314 EXPECT_FALSE(allow);
315 }
316
317 /**
318 * @tc.number: AppUtilsTest_1500
319 * @tc.desc: Test IsSupportMultiInstance works
320 * @tc.type: FUNC
321 */
322 HWTEST_F(AppUtilsTest, AppUtilsTest_1500, TestSize.Level2)
323 {
324 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_1500 called.");
325 bool isSupportMultiInstance = AAFwk::AppUtils::GetInstance().IsSupportMultiInstance();
326 std::string deviceType = OHOS::system::GetDeviceType();
327 TAG_LOGI(AAFwkTag::TEST, "current deviceType is %{public}s", deviceType.c_str());
328 if (deviceType == "default") {
329 EXPECT_TRUE(isSupportMultiInstance == false);
330 } else if (deviceType == "phone") {
331 EXPECT_TRUE(isSupportMultiInstance == false);
332 } else if (deviceType == "2in1") {
333 EXPECT_TRUE(isSupportMultiInstance == true);
334 }
335 }
336
337 /**
338 * @tc.number: AppUtilsTest_1600
339 * @tc.desc: Test AllowChildProcessInMultiProcessFeatureApp works
340 * @tc.type: FUNC
341 */
342 HWTEST_F(AppUtilsTest, AppUtilsTest_1600, TestSize.Level2)
343 {
344 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_1600 start.");
345 auto &appUtils = AAFwk::AppUtils::GetInstance();
346 bool allow = appUtils.AllowChildProcessInMultiProcessFeatureApp();
347 EXPECT_FALSE(allow);
348
349 appUtils.allowChildProcessInMultiProcessFeatureApp_.value = true;
350 allow = appUtils.AllowChildProcessInMultiProcessFeatureApp();
351 EXPECT_TRUE(allow);
352 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_1600 end.");
353 }
354
355 /**
356 * @tc.number: AppUtilsTest_1700
357 * @tc.desc: Test MaxMultiProcessFeatureChildProcess works
358 * @tc.type: FUNC
359 */
360 HWTEST_F(AppUtilsTest, AppUtilsTest_1700, TestSize.Level2)
361 {
362 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_1700 called.");
363 auto &appUtils = AAFwk::AppUtils::GetInstance();
364
365 appUtils.maxMultiProcessFeatureChildProcess_.isLoaded = true;
366 appUtils.maxMultiProcessFeatureChildProcess_.value = 512;
367 auto maxProcess = appUtils.MaxMultiProcessFeatureChildProcess();
368 EXPECT_TRUE(maxProcess == 512);
369 }
370
371 /**
372 * @tc.number: AppUtilsTest_1800
373 * @tc.desc: Test InResidentWhiteList works
374 * @tc.desc: Test InResidentWhiteList works
375 * @tc.type: FUNC
376 */
377 HWTEST_F(AppUtilsTest, AppUtilsTest_1800, TestSize.Level2)
378 {
379 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_1800 called.");
380 auto allow = AAFwk::AppUtils::GetInstance().InResidentWhiteList("com.test.demo");
381 EXPECT_FALSE(allow);
382 }
383
384 /**
385 * @tc.number: AppUtilsTest_1900
386 * @tc.desc: Test GetResidentWhiteList works
387 * @tc.type: FUNC
388 */
389 HWTEST_F(AppUtilsTest, AppUtilsTest_1900, TestSize.Level2)
390 {
391 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_1900 called.");
392 auto residentWhiteList = AAFwk::AppUtils::GetInstance().GetResidentWhiteList();
393 bool isExist = false;
394 for (const auto &item: residentWhiteList) {
395 if (item == "com.test.demo") {
396 isExist = true;
397 }
398 }
399 EXPECT_FALSE(isExist);
400 }
401
402 /**
403 * @tc.number: AppUtilsTest_2000
404 * @tc.desc: Test IsSupportGrantUriPermission works
405 * @tc.type: FUNC
406 */
407 HWTEST_F(AppUtilsTest, AppUtilsTest_2000, TestSize.Level2)
408 {
409 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_2000 called.");
410 auto isSupport = AAFwk::AppUtils::GetInstance().IsSupportGrantUriPermission();
411 EXPECT_TRUE(isSupport);
412 }
413
414 /**
415 * @tc.number: AppUtilsTest_2100
416 * @tc.desc: Test IsSupportGrantUriPermission works
417 * @tc.type: FUNC
418 */
419 HWTEST_F(AppUtilsTest, AppUtilsTest_2100, TestSize.Level2)
420 {
421 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_2100 called.");
422 auto &appUtils = AAFwk::AppUtils::GetInstance();
423 appUtils.isGrantTempUriPermission_.isLoaded = true;
424 auto isSupport = appUtils.IsSupportGrantUriPermission();
425 EXPECT_TRUE(isSupport);
426 }
427
428 /**
429 * @tc.number: IsSupportStartAbilities_0100
430 * @tc.desc: Test IsSupportStartAbilities works
431 * @tc.type: FUNC
432 */
433 HWTEST_F(AppUtilsTest, IsSupportStartAbilities_0100, TestSize.Level2)
434 {
435 TAG_LOGI(AAFwkTag::TEST, "IsSupportStartAbilities_0100 called.");
436 auto &appUtils = AAFwk::AppUtils::GetInstance();
437 appUtils.isSupportStartAbilities_.isLoaded = false;
438 bool isSupportStartAbilities = appUtils.IsSupportStartAbilities();
439 std::string deviceType = OHOS::system::GetDeviceType();
440 TAG_LOGI(AAFwkTag::TEST, "current deviceType is %{public}s", deviceType.c_str());
441 if (deviceType == "default") {
442 EXPECT_TRUE(isSupportStartAbilities == false);
443 } else if (deviceType == "phone") {
444 EXPECT_TRUE(isSupportStartAbilities == true);
445 } else if (deviceType == "2in1") {
446 EXPECT_TRUE(isSupportStartAbilities == false);
447 } else if (deviceType == "tablet") {
448 EXPECT_TRUE(isSupportStartAbilities == true);
449 }
450 }
451
452 /**
453 * @tc.number: IsSupportStartAbilities_0200
454 * @tc.desc: Test IsSupportStartAbilities works
455 * @tc.type: FUNC
456 */
457 HWTEST_F(AppUtilsTest, IsSupportStartAbilities_0200, TestSize.Level2)
458 {
459 TAG_LOGI(AAFwkTag::TEST, "IsSupportStartAbilities_0100 called.");
460 auto &appUtils = AAFwk::AppUtils::GetInstance();
461 appUtils.isSupportStartAbilities_.isLoaded = true;
462 bool isSupportStartAbilities = appUtils.IsSupportStartAbilities();
463 std::string deviceType = OHOS::system::GetDeviceType();
464 TAG_LOGI(AAFwkTag::TEST, "current deviceType is %{public}s", deviceType.c_str());
465 if (deviceType == "default") {
466 EXPECT_TRUE(isSupportStartAbilities == false);
467 } else if (deviceType == "phone") {
468 EXPECT_TRUE(isSupportStartAbilities == true);
469 } else if (deviceType == "2in1") {
470 EXPECT_TRUE(isSupportStartAbilities == false);
471 } else if (deviceType == "tablet") {
472 EXPECT_TRUE(isSupportStartAbilities == true);
473 }
474 }
475
476 /**
477 * @tc.number: IsLauncher_0100
478 * @tc.desc: Test IsLauncher works
479 * @tc.type: FUNC
480 */
481 HWTEST_F(AppUtilsTest, IsLauncher_0100, TestSize.Level2)
482 {
483 TAG_LOGI(AAFwkTag::TEST, "IsLauncher_0100 called.");
484 std::string bundleName = "com.ohos.launcher";
485 auto &appUtils = AAFwk::AppUtils::GetInstance();
486 bool result = appUtils.IsLauncher(bundleName);
487 EXPECT_TRUE(result);
488 }
489
490 /**
491 * @tc.number: IsLauncher_0200
492 * @tc.desc: Test IsLauncher works
493 * @tc.type: FUNC
494 */
495 HWTEST_F(AppUtilsTest, IsLauncher_0200, TestSize.Level2)
496 {
497 TAG_LOGI(AAFwkTag::TEST, "IsLauncher_0200 called.");
498 std::string bundleName = "com.ohos.launcher.test";
499 auto &appUtils = AAFwk::AppUtils::GetInstance();
500 bool result = appUtils.IsLauncher(bundleName);
501 EXPECT_FALSE(result);
502 }
503
504 /**
505 * @tc.number: IsLauncher_0300
506 * @tc.desc: Test IsLauncher works
507 * @tc.type: FUNC
508 */
509 HWTEST_F(AppUtilsTest, IsLauncher_0300, TestSize.Level2)
510 {
511 TAG_LOGI(AAFwkTag::TEST, "IsLauncher_0200 called.");
512 std::string bundleName = "com.ohos.sceneboard";
513 auto &appUtils = AAFwk::AppUtils::GetInstance();
514 appUtils.isSceneBoard_ = true;
515 bool result = appUtils.IsLauncher(bundleName);
516 EXPECT_TRUE(result);
517 }
518
519 /**
520 * @tc.number: IsSupportNativeChildProcess_0100
521 * @tc.desc: Test IsSupportNativeChildProcess works
522 * @tc.type: FUNC
523 */
524 HWTEST_F(AppUtilsTest, IsSupportNativeChildProcess_0100, TestSize.Level2)
525 {
526 TAG_LOGI(AAFwkTag::TEST, "IsSupportNativeChildProcess_0100 called.");
527 auto &appUtils = AAFwk::AppUtils::GetInstance();
528 bool result = appUtils.IsSupportNativeChildProcess();
529 EXPECT_FALSE(result);
530 }
531
532 /**
533 * @tc.number: IsSupportNativeChildProcess_0200
534 * @tc.desc: Test IsSupportNativeChildProcess works
535 * @tc.type: FUNC
536 */
537 HWTEST_F(AppUtilsTest, IsSupportNativeChildProcess_0200, TestSize.Level2)
538 {
539 TAG_LOGI(AAFwkTag::TEST, "IsSupportNativeChildProcess_0200 called.");
540 auto &appUtils = AAFwk::AppUtils::GetInstance();
541 appUtils.isSupportNativeChildProcess_.isLoaded = true;
542 appUtils.isSupportNativeChildProcess_.value = true;
543 bool result = appUtils.IsSupportNativeChildProcess();
544 EXPECT_TRUE(result);
545 }
546
547 /**
548 * @tc.number: GetAncoAppIdentifiers_0100
549 * @tc.desc: Test GetAncoAppIdentifiers works
550 * @tc.type: FUNC
551 */
552 HWTEST_F(AppUtilsTest, GetAncoAppIdentifiers_0100, TestSize.Level2)
553 {
554 TAG_LOGI(AAFwkTag::TEST, "GetAncoAppIdentifiers_0100 called.");
555 auto &appUtils = AAFwk::AppUtils::GetInstance();
556 std::string result = appUtils.GetAncoAppIdentifiers();
557 EXPECT_EQ(result, "");
558 }
559
560 /**
561 * @tc.number: IsCacheAbilityEnabled_0100
562 * @tc.desc: Test IsCacheAbilityEnabled works
563 * @tc.type: FUNC
564 */
565 HWTEST_F(AppUtilsTest, IsCacheAbilityEnabled_0100, TestSize.Level2)
566 {
567 TAG_LOGI(AAFwkTag::TEST, "IsCacheAbilityEnabled_0100 called.");
568 auto &appUtils = AAFwk::AppUtils::GetInstance();
569 bool result = appUtils.IsCacheAbilityEnabled();
570 EXPECT_FALSE(result);
571 }
572
573 /**
574 * @tc.number: IsSupportAppServiceExtension_0100
575 * @tc.desc: Test IsSupportAppServiceExtension works
576 * @tc.type: FUNC
577 */
578 HWTEST_F(AppUtilsTest, IsSupportAppServiceExtension_0100, TestSize.Level2)
579 {
580 TAG_LOGI(AAFwkTag::TEST, "IsSupportAppServiceExtension_0100 called.");
581 auto &appUtils = AAFwk::AppUtils::GetInstance();
582 bool result = appUtils.IsSupportAppServiceExtension();
583 EXPECT_FALSE(result);
584 }
585
586 /**
587 * @tc.number: IsSupportAppServiceExtension_0200
588 * @tc.desc: Test IsSupportAppServiceExtension works
589 * @tc.type: FUNC
590 */
591 HWTEST_F(AppUtilsTest, IsSupportAppServiceExtension_0200, TestSize.Level2)
592 {
593 TAG_LOGI(AAFwkTag::TEST, "IsSupportAppServiceExtension_0200 called.");
594 auto &appUtils = AAFwk::AppUtils::GetInstance();
595 appUtils.isSupportAppServiceExtension_.isLoaded = true;
596 appUtils.isSupportAppServiceExtension_.value = true;
597 bool result = appUtils.IsSupportAppServiceExtension();
598 EXPECT_TRUE(result);
599 }
600
601 /**
602 * @tc.number: MaxMultiProcessFeatureChildProcess_0100
603 * @tc.desc: Test MaxMultiProcessFeatureChildProcess works
604 * @tc.type: FUNC
605 */
606 HWTEST_F(AppUtilsTest, MaxMultiProcessFeatureChildProcess_0100, TestSize.Level2)
607 {
608 TAG_LOGI(AAFwkTag::TEST, "MaxMultiProcessFeatureChildProcess_0100 called.");
609 auto &appUtils = AAFwk::AppUtils::GetInstance();
610 appUtils.maxMultiProcessFeatureChildProcess_.isLoaded = false;
611 bool result = appUtils.MaxMultiProcessFeatureChildProcess();
612 EXPECT_FALSE(result);
613 }
614
615 /**
616 * @tc.number: IsSystemReasonMessage_0100
617 * @tc.desc: Test IsSystemReasonMessage works
618 * @tc.type: FUNC
619 */
620 HWTEST_F(AppUtilsTest, IsSystemReasonMessage_0100, TestSize.Level2)
621 {
622 TAG_LOGI(AAFwkTag::TEST, "IsSystemReasonMessage_0100 called.");
623 auto &appUtils = AAFwk::AppUtils::GetInstance();
624 std::string reasonMessage = "";
625 bool result = appUtils.IsSystemReasonMessage(reasonMessage);
626 EXPECT_FALSE(result);
627 }
628
629 /**
630 * @tc.number: IsGrantPersistUriPermission_0100
631 * @tc.desc: Test IsGrantPersistUriPermission works
632 * @tc.type: FUNC
633 */
634 HWTEST_F(AppUtilsTest, IsGrantPersistUriPermission_0100, TestSize.Level2)
635 {
636 TAG_LOGI(AAFwkTag::TEST, "IsGrantPersistUriPermission_0100 called.");
637 auto &appUtils = AAFwk::AppUtils::GetInstance();
638 appUtils.isGrantPersistUriPermission_.isLoaded = false;
639 bool result = appUtils.IsGrantPersistUriPermission();
640 EXPECT_FALSE(result);
641 }
642
643 /**
644 * @tc.number: GetMigrateClientBundleName_0100
645 * @tc.desc: Test GetMigrateClientBundleName works
646 * @tc.type: FUNC
647 */
648 HWTEST_F(AppUtilsTest, GetMigrateClientBundleName_0100, TestSize.Level2)
649 {
650 TAG_LOGI(AAFwkTag::TEST, "GetMigrateClientBundleName_0100 called.");
651 auto &appUtils = AAFwk::AppUtils::GetInstance();
652 appUtils.migrateClientBundleName_.isLoaded = false;
653 std::string result = appUtils.GetMigrateClientBundleName();
654 EXPECT_EQ(result, "");
655 }
656
657 /**
658 * @tc.number: IsUseMultiRenderProcess_0100
659 * @tc.desc: Test IsUseMultiRenderProcess works
660 * @tc.type: FUNC
661 */
662 HWTEST_F(AppUtilsTest, IsUseMultiRenderProcess_0100, TestSize.Level2)
663 {
664 TAG_LOGI(AAFwkTag::TEST, "IsUseMultiRenderProcess_0100 called.");
665 auto &appUtils = AAFwk::AppUtils::GetInstance();
666 appUtils.isUseMultiRenderProcess_.isLoaded = false;
667 bool result = appUtils.IsUseMultiRenderProcess();
668 EXPECT_TRUE(result);
669 }
670
671 /**
672 * @tc.number: IsLaunchEmbededUIAbility_0100
673 * @tc.desc: Test IsLaunchEmbededUIAbility works
674 * @tc.type: FUNC
675 */
676 HWTEST_F(AppUtilsTest, IsLaunchEmbededUIAbility_0100, TestSize.Level2)
677 {
678 TAG_LOGI(AAFwkTag::TEST, "IsLaunchEmbededUIAbility_0100 called.");
679 auto &appUtils = AAFwk::AppUtils::GetInstance();
680 appUtils.isLaunchEmbededUIAbility_.isLoaded = false;
681 bool result = appUtils.IsLaunchEmbededUIAbility();
682 EXPECT_FALSE(result);
683 }
684
685 /**
686 * @tc.number: AppUtilsTest_2200
687 * @tc.desc: Test IsLauncher works
688 * @tc.type: FUNC
689 */
690 HWTEST_F(AppUtilsTest, AppUtilsTest_2200, TestSize.Level2)
691 {
692 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_2200 called.");
693 auto &appUtils = AAFwk::AppUtils::GetInstance();
694 appUtils.isSceneBoard_ = true;
695 std::string abilityName = "com.ohos.sceneboard";
696 auto isLauncher = appUtils.IsLauncher(abilityName);
697 EXPECT_TRUE(isLauncher);
698 }
699
700 /**
701 * @tc.number: AppUtilsTest_2300
702 * @tc.desc: Test IsLauncher works
703 * @tc.type: FUNC
704 */
705 HWTEST_F(AppUtilsTest, AppUtilsTest_2300, TestSize.Level2)
706 {
707 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_2300 called.");
708 auto &appUtils = AAFwk::AppUtils::GetInstance();
709 appUtils.isSceneBoard_ = false;
710 std::string abilityName = "com.ohos.launcher";
711 auto isLauncher = appUtils.IsLauncher(abilityName);
712 EXPECT_TRUE(isLauncher);
713 }
714
715 /**
716 * @tc.number: AppUtilsTest_2400
717 * @tc.desc: Test IsLauncherAbility works
718 * @tc.type: FUNC
719 */
720 HWTEST_F(AppUtilsTest, AppUtilsTest_2400, TestSize.Level2)
721 {
722 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_2400 called.");
723 auto &appUtils = AAFwk::AppUtils::GetInstance();
724 appUtils.isSceneBoard_ = true;
725 std::string abilityName = "com.ohos.sceneboard.MainAbility";
726 auto isLauncherAbility = appUtils.IsLauncherAbility(abilityName);
727 EXPECT_TRUE(isLauncherAbility);
728 }
729
730 /**
731 * @tc.number: AppUtilsTest_2500
732 * @tc.desc: Test IsLauncherAbility works
733 * @tc.type: FUNC
734 */
735 HWTEST_F(AppUtilsTest, AppUtilsTest_2500, TestSize.Level2)
736 {
737 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_2500 called.");
738 auto &appUtils = AAFwk::AppUtils::GetInstance();
739 appUtils.isSceneBoard_ = false;
740 std::string abilityName = "com.ohos.launcher.MainAbility";
741 auto isLauncherAbility = appUtils.IsLauncherAbility(abilityName);
742 EXPECT_TRUE(isLauncherAbility);
743 }
744
745 /**
746 * @tc.number: AppUtilsTest_2600
747 * @tc.desc: Test IsLaunchEmbededUIAbility works
748 * @tc.type: FUNC
749 */
750 HWTEST_F(AppUtilsTest, AppUtilsTest_2600, TestSize.Level2)
751 {
752 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_2600 called.");
753 auto &appUtils = AAFwk::AppUtils::GetInstance();
754 appUtils.isLaunchEmbededUIAbility_.isLoaded = false;
755 auto value = OHOS::system::GetBoolParameter("const.abilityms.launch_embeded_ui_ability", false);
756 auto isLaunchEmbededUIAbility = appUtils.IsLaunchEmbededUIAbility();
757 EXPECT_EQ(value, isLaunchEmbededUIAbility);
758 }
759
760 /**
761 * @tc.number: AppUtilsTest_2700
762 * @tc.desc: Test IsLaunchEmbededUIAbility works
763 * @tc.type: FUNC
764 */
765 HWTEST_F(AppUtilsTest, AppUtilsTest_2700, TestSize.Level2)
766 {
767 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_2700 called.");
768 auto &appUtils = AAFwk::AppUtils::GetInstance();
769 appUtils.isLaunchEmbededUIAbility_.isLoaded = true;
770 appUtils.isLaunchEmbededUIAbility_.value = true;
771 auto isLaunchEmbededUIAbility = appUtils.IsLaunchEmbededUIAbility();
772 EXPECT_TRUE(isLaunchEmbededUIAbility);
773 }
774
775 /**
776 * @tc.number: AppUtilsTest_2800
777 * @tc.desc: Test IsSystemReasonMessage works
778 * @tc.type: FUNC
779 */
780 HWTEST_F(AppUtilsTest, AppUtilsTest_2800, TestSize.Level2)
781 {
782 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_2800 called.");
783 auto &appUtils = AAFwk::AppUtils::GetInstance();
784 std::string reasonMessage = "ReasonMessage_SystemShare";
785 auto isSystemReasonMessage = appUtils.IsSystemReasonMessage(reasonMessage);
786 EXPECT_TRUE(isSystemReasonMessage);
787 }
788
789 /**
790 * @tc.number: AppUtilsTest_2900
791 * @tc.desc: Test IsCacheAbilityEnabled works
792 * @tc.type: FUNC
793 */
794 HWTEST_F(AppUtilsTest, AppUtilsTest_2900, TestSize.Level2)
795 {
796 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_2900 called.");
797 auto &appUtils = AAFwk::AppUtils::GetInstance();
798 auto value = OHOS::system::GetBoolParameter("persist.sys.abilityms.cache_ability_enable", false);
799 auto isCacheAbilityEnabled = appUtils.IsCacheAbilityEnabled();
800 EXPECT_EQ(value, isCacheAbilityEnabled);
801 }
802
803 /**
804 * @tc.number: AppUtilsTest_3000
805 * @tc.desc: Test IsSupportAppServiceExtension works
806 * @tc.type: FUNC
807 */
808 HWTEST_F(AppUtilsTest, AppUtilsTest_3000, TestSize.Level2)
809 {
810 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_3000 called.");
811 auto &appUtils = AAFwk::AppUtils::GetInstance();
812 appUtils.isSupportAppServiceExtension_.isLoaded = false;
813 auto value = OHOS::system::GetBoolParameter("const.abilityms.support_app_service", false);
814 auto isSupportAppServiceExtension = appUtils.IsSupportAppServiceExtension();
815 EXPECT_EQ(value, isSupportAppServiceExtension);
816 }
817
818 /**
819 * @tc.number: AppUtilsTest_3100
820 * @tc.desc: Test IsSupportAppServiceExtension works
821 * @tc.type: FUNC
822 */
823 HWTEST_F(AppUtilsTest, AppUtilsTest_3100, TestSize.Level2)
824 {
825 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_3100 called.");
826 auto &appUtils = AAFwk::AppUtils::GetInstance();
827 appUtils.isSupportAppServiceExtension_.isLoaded = true;
828 appUtils.isSupportAppServiceExtension_.value = true;
829 auto isSupportAppServiceExtension = appUtils.IsSupportAppServiceExtension();
830 EXPECT_TRUE(isSupportAppServiceExtension);
831 }
832
833 /**
834 * @tc.number: AppUtilsTest_3200
835 * @tc.desc: Test GetAncoAppIdentifiers works
836 * @tc.type: FUNC
837 */
838 HWTEST_F(AppUtilsTest, AppUtilsTest_3200, TestSize.Level2)
839 {
840 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_3200 called.");
841 auto &appUtils = AAFwk::AppUtils::GetInstance();
842 std::string value = system::GetParameter("persist.hmos_fusion_mgr.anco_identifier", "");
843 auto identifiers = appUtils.GetAncoAppIdentifiers();
844 EXPECT_EQ(value, identifiers);
845 }
846
847 /**
848 * @tc.number: AppUtilsTest_3300
849 * @tc.desc: Test GetMigrateClientBundleName works
850 * @tc.type: FUNC
851 */
852 HWTEST_F(AppUtilsTest, AppUtilsTest_3300, TestSize.Level2)
853 {
854 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_3300 called.");
855 auto &appUtils = AAFwk::AppUtils::GetInstance();
856 appUtils.migrateClientBundleName_.isLoaded = false;
857 auto value = system::GetParameter("const.sys.abilityms.migrate_client_bundle_name", "");
858 auto migrateClientBundleName = appUtils.GetMigrateClientBundleName();
859 EXPECT_EQ(value, migrateClientBundleName);
860 }
861
862 /**
863 * @tc.number: AppUtilsTest_3400
864 * @tc.desc: Test GetMigrateClientBundleName works
865 * @tc.type: FUNC
866 */
867 HWTEST_F(AppUtilsTest, AppUtilsTest_3400, TestSize.Level2)
868 {
869 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_3400 called.");
870 auto &appUtils = AAFwk::AppUtils::GetInstance();
871 appUtils.migrateClientBundleName_.isLoaded = true;
872 appUtils.migrateClientBundleName_.value = "value";
873 auto migrateClientBundleName = appUtils.GetMigrateClientBundleName();
874 EXPECT_EQ("value", migrateClientBundleName);
875 }
876
877 /**
878 * @tc.number: AppUtilsTest_3500
879 * @tc.desc: Test GetMigrateClientBundleName works
880 * @tc.type: FUNC
881 */
882 HWTEST_F(AppUtilsTest, AppUtilsTest_3500, TestSize.Level2)
883 {
884 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_3500 called.");
885 auto &appUtils = AAFwk::AppUtils::GetInstance();
886 appUtils.maxMultiProcessFeatureChildProcess_.isLoaded = false;
887 auto value = system::GetIntParameter<int32_t>("const.sys.abilityms.max_multi_process_feature_child_process", 0);
888 auto maxProcess = appUtils.MaxMultiProcessFeatureChildProcess();
889 EXPECT_EQ(value, maxProcess);
890 }
891
892 /**
893 * @tc.number: AppUtilsTest_3600
894 * @tc.desc: Test IsAllowResidentInExtremeMemory works
895 * @tc.type: FUNC
896 */
897 HWTEST_F(AppUtilsTest, AppUtilsTest_3600, TestSize.Level2)
898 {
899 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_3600 called.");
900 auto &appUtils = AAFwk::AppUtils::GetInstance();
901 appUtils.residentProcessInExtremeMemory_.value.emplace_back("bundleName", "abilityName");
902 std::string bundleName = "bundleName";
903 std::string abilityName = "abilityName";
904 auto ret = appUtils.IsAllowResidentInExtremeMemory(bundleName, abilityName);
905 EXPECT_TRUE(ret);
906 }
907
908 /**
909 * @tc.number: AppUtilsTest_3700
910 * @tc.desc: Test IsBigMemoryUnrelatedKeepAliveProc works
911 * @tc.type: FUNC
912 */
913 HWTEST_F(AppUtilsTest, AppUtilsTest_3700, TestSize.Level2)
914 {
915 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_3700 called.");
916 auto &appUtils = AAFwk::AppUtils::GetInstance();
917 appUtils.processProhibitedFromRestarting_.value.emplace_back("bundleName");
918 std::string bundleName = "bundleName";
919 auto ret = appUtils.IsBigMemoryUnrelatedKeepAliveProc(bundleName);
920 EXPECT_TRUE(ret);
921 }
922
923 /**
924 * @tc.number: AppUtilsTest_3800
925 * @tc.desc: Test IsRequireBigMemoryProcess works
926 * @tc.type: FUNC
927 */
928 HWTEST_F(AppUtilsTest, AppUtilsTest_3800, TestSize.Level2)
929 {
930 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_3800 called.");
931 auto &appUtils = AAFwk::AppUtils::GetInstance();
932 appUtils.requireBigMemoryApp_.value.emplace_back("bundleName");
933 std::string bundleName = "bundleName";
934 auto ret = appUtils.IsRequireBigMemoryProcess(bundleName);
935 EXPECT_TRUE(ret);
936 }
937
938 /**
939 * @tc.number: AppUtilsTest_3900
940 * @tc.desc: Test IsAllowStartAbilityWithoutCallerToken works
941 * @tc.type: FUNC
942 */
943 HWTEST_F(AppUtilsTest, AppUtilsTest_3900, TestSize.Level2)
944 {
945 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_3900 called.");
946 auto &appUtils = AAFwk::AppUtils::GetInstance();
947 appUtils.startAbilityWithoutCallerToken_.value.emplace_back("bundleName", "abilityName");
948 std::string bundleName = "bundleName";
949 std::string abilityName = "abilityName";
950 auto ret = appUtils.IsAllowStartAbilityWithoutCallerToken(bundleName, abilityName);
951 EXPECT_TRUE(ret);
952 }
953
954 /**
955 * @tc.number: AppUtilsTest_4000
956 * @tc.desc: Test IsSupportNativeChildProcess works
957 * @tc.type: FUNC
958 */
959 HWTEST_F(AppUtilsTest, AppUtilsTest_4000, TestSize.Level2)
960 {
961 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_4000 called.");
962 auto &appUtils = AAFwk::AppUtils::GetInstance();
963 appUtils.isSupportNativeChildProcess_.isLoaded = false;
964 auto value = system::GetBoolParameter("persist.sys.abilityms.start_native_child_process", false);
965 auto isSupportNativeChildProcess = appUtils.IsSupportNativeChildProcess();
966 EXPECT_EQ(value, isSupportNativeChildProcess);
967 }
968
969 /**
970 * @tc.number: AppUtilsTest_4100
971 * @tc.desc: Test IsSupportNativeChildProcess works
972 * @tc.type: FUNC
973 */
974 HWTEST_F(AppUtilsTest, AppUtilsTest_4100, TestSize.Level2)
975 {
976 TAG_LOGI(AAFwkTag::TEST, "AppUtilsTest_4100 called.");
977 auto &appUtils = AAFwk::AppUtils::GetInstance();
978 appUtils.isSupportNativeChildProcess_.isLoaded = true;
979 appUtils.isSupportNativeChildProcess_.value = true;
980 auto isSupportNativeChildProcess = appUtils.IsSupportNativeChildProcess();
981 EXPECT_TRUE(isSupportNativeChildProcess);
982 }
983
984 /**
985 * @tc.number: InOnNewProcessEnableList_0100
986 * @tc.desc: Test InOnNewProcessEnableList works
987 * @tc.type: FUNC
988 */
989 HWTEST_F(AppUtilsTest, InOnNewProcessEnableList_0100, TestSize.Level2)
990 {
991 TAG_LOGI(AAFwkTag::TEST, "InOnNewProcessEnableList_0100 called.");
992 std::string bundleName = "cn.wps.office.hap";
993 auto &appUtils = AAFwk::AppUtils::GetInstance();
994 bool result = appUtils.InOnNewProcessEnableList(bundleName);
995 EXPECT_FALSE(result);
996 }
997
998 /**
999 * @tc.number: InOnNewProcessEnableList_0200
1000 * @tc.desc: Test InOnNewProcessEnableList works
1001 * @tc.type: FUNC
1002 */
1003 HWTEST_F(AppUtilsTest, InOnNewProcessEnableList_0200, TestSize.Level2)
1004 {
1005 TAG_LOGI(AAFwkTag::TEST, "InOnNewProcessEnableList_0200 called.");
1006 std::string bundleName = "cn.wps.office.hap";
1007 auto &appUtils = AAFwk::AppUtils::GetInstance();
1008 appUtils.onNewProcessEnableList_.isLoaded = true;
1009 appUtils.onNewProcessEnableList_.value.emplace_back("cn.wps.office.hap");
1010 bool result = appUtils.InOnNewProcessEnableList(bundleName);
1011 EXPECT_TRUE(result);
1012 }
1013 } // namespace AbilityRuntime
1014 } // namespace OHOS
1015