1 /*
2 * Copyright (c) 2021-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 #define private public
18 #define protected public
19 #include "ability_context.h"
20 #include "ability_loader.h"
21 #include "ability_manager_client.h"
22 #include "context_deal.h"
23 #include "fa_ability_thread.h"
24 #include "mock_serviceability_manager_service.h"
25 #include "ohos_application.h"
26 #include "sys_mgr_client.h"
27 #include "system_ability_definition.h"
28 #undef protected
29 #undef private
30
31 namespace OHOS {
32 namespace AppExecFwk {
33 using namespace testing::ext;
34 using namespace OHOS::AppExecFwk;
35 using namespace OHOS;
36 using namespace AAFwk;
37
38 namespace {
39 const std::string ACE_SERVICE_ABILITY_NAME = "AceServiceAbility";
40 }
41 class AbilityContextTest : public testing::Test {
42 public:
43 static void SetUpTestCase(void);
44 static void TearDownTestCase(void);
45 void SetUp();
46 void TearDown();
47 static constexpr int TEST_WAIT_TIME = 500 * 1000; // 500 ms
48 public:
49 std::unique_ptr<AbilityContext> context_ = nullptr;
50 };
51
SetUpTestCase(void)52 void AbilityContextTest::SetUpTestCase(void)
53 {
54 OHOS::sptr<OHOS::IRemoteObject> abilityObject = new (std::nothrow) MockServiceAbilityManagerService();
55
56 auto sysMgr = OHOS::DelayedSingleton<SysMrgClient>::GetInstance();
57 if (sysMgr == nullptr) {
58 GTEST_LOG_(ERROR) << "fail to get ISystemAbilityManager";
59 return;
60 }
61
62 sysMgr->RegisterSystemAbility(OHOS::ABILITY_MGR_SERVICE_ID, abilityObject);
63
64 AbilityLoader::GetInstance().RegisterAbility(
65 ACE_SERVICE_ABILITY_NAME, []()->Ability* { return new (std::nothrow) Ability; });
66 }
67
TearDownTestCase(void)68 void AbilityContextTest::TearDownTestCase(void)
69 {}
70
SetUp(void)71 void AbilityContextTest::SetUp(void)
72 {
73 context_ = std::make_unique<AbilityContext>();
74 }
75
TearDown(void)76 void AbilityContextTest::TearDown(void)
77 {}
78
79 /**
80 * @tc.number: AaFwk_Ability_Context_ConnectAbility_0100
81 * @tc.name: AbilityFwk
82 * @tc.desc: When connecting ability, AMS will inform ability to process OnStart in the life cycle, and then inform
83 * ability to process onconnect, and the connection is successful
84 */
85 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_ConnectAbility_0100, Function | MediumTest | Level1)
86 {
87 std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
88 sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
89 std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
90 abilityInfo->type = AppExecFwk::AbilityType::SERVICE;
91 abilityInfo->name = "DemoAbility";
92 auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
93
94 AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
95
96 std::shared_ptr<ContextDeal> deal = std::make_shared<ContextDeal>();
97 deal->SetAbilityInfo(abilityInfo);
98 context_->AttachBaseContext(deal);
99
100 Want want;
101 bool ret = context_->ConnectAbility(want, nullptr);
102 EXPECT_TRUE(ret);
103 usleep(AbilityContextTest::TEST_WAIT_TIME);
104 }
105
106 /**
107 * @tc.number: AaFwk_Ability_Context_DisconnectAbility_0100
108 * @tc.name: AbilityFwk
109 * @tc.desc: AMS notifies the abilityondisconnect event when disconnectservice.
110 */
111 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_DisconnectAbility_0100, Function | MediumTest | Level1)
112 {
113 std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
114 sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
115 std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
116 abilityInfo->type = AppExecFwk::AbilityType::SERVICE;
117 abilityInfo->name = "DemoAbility";
118 auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
119
120 AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
121
122 std::shared_ptr<ContextDeal> deal = std::make_shared<ContextDeal>();
123 deal->SetAbilityInfo(abilityInfo);
124 context_->AttachBaseContext(deal);
125
126 Want want;
127 context_->ConnectAbility(want, nullptr);
128 context_->DisconnectAbility(nullptr);
129 EXPECT_TRUE(context_ != nullptr);
130 usleep(AbilityContextTest::TEST_WAIT_TIME);
131 }
132
133 /**
134 * @tc.number: AaFwk_Ability_Context_StartAbility_0100
135 * @tc.name: AbilityFwk
136 * @tc.desc: Starting ability service, AMS will inform ability to perform OnStart lifecycle conversion, and then inform
137 * oncommand event.
138 */
139 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_StartAbility_0100, Function | MediumTest | Level1)
140 {
141 std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
142 sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
143 std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
144 abilityInfo->type = AppExecFwk::AbilityType::SERVICE;
145 abilityInfo->name = "DemoAbility";
146 auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
147
148 AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
149 Want want;
150 context_->StartAbility(want, -1);
151 EXPECT_TRUE(context_ != nullptr);
152 usleep(AbilityContextTest::TEST_WAIT_TIME);
153 }
154
155 /**
156 * @tc.number: AaFwk_Ability_Context_TerminateAbility_0100
157 * @tc.name: AbilityFwk
158 * @tc.desc: To terminate ability service, AMS will notify ability to perform onbackground lifecycle conversion, and
159 * then notify onstop event.
160 */
161 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_TerminateAbility_0100, Function | MediumTest | Level1)
162 {
163 std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
164 sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
165 std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
166 abilityInfo->type = AppExecFwk::AbilityType::SERVICE;
167 abilityInfo->name = "DemoAbility";
168 auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
169
170 AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
171 Want want;
172 context_->StartAbility(want, -1);
173 usleep(AbilityContextTest::TEST_WAIT_TIME);
174
175 std::shared_ptr<ContextDeal> deal = std::make_shared<ContextDeal>();
176 deal->SetAbilityInfo(abilityInfo);
177 context_->AttachBaseContext(deal);
178 context_->TerminateAbility();
179 EXPECT_TRUE(context_ != nullptr);
180 usleep(AbilityContextTest::TEST_WAIT_TIME);
181 }
182
183 /**
184 * @tc.number: AaFwk_Ability_Context_TerminateAbility_0200
185 * @tc.name: AbilityFwk
186 * @tc.desc: When there is no startability, calling terminateability directly will not respond to onbackground and
187 * onstop events.
188 */
189 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_TerminateAbility_0200, Function | MediumTest | Level1)
190 {
191 std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
192 sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
193 std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
194 abilityInfo->type = AppExecFwk::AbilityType::SERVICE;
195 abilityInfo->name = "DemoAbility";
196 auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
197
198 AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
199
200 std::shared_ptr<ContextDeal> deal = std::make_shared<ContextDeal>();
201 deal->SetAbilityInfo(abilityInfo);
202 context_->AttachBaseContext(deal);
203 context_->TerminateAbility();
204 EXPECT_TRUE(context_ != nullptr);
205 usleep(AbilityContextTest::TEST_WAIT_TIME);
206 }
207
208 /**
209 * @tc.number: AaFwk_Ability_Context_StopService_0100
210 * @tc.name: AbilityFwk
211 * @tc.desc: To stop ability service, AMS will notify ability to perform onbackground lifecycle conversion, and then
212 * notify onstop event.
213 */
214 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_StopService_0100, Function | MediumTest | Level1)
215 {
216 std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
217 sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
218 std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
219 abilityInfo->type = AppExecFwk::AbilityType::SERVICE;
220 abilityInfo->name = "DemoAbility";
221 auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
222
223 AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
224
225 std::shared_ptr<ContextDeal> deal = std::make_shared<ContextDeal>();
226 deal->SetAbilityInfo(abilityInfo);
227 context_->AttachBaseContext(deal);
228
229 Want want;
230 context_->StartAbility(want, -1);
231 usleep(AbilityContextTest::TEST_WAIT_TIME);
232 bool ret = context_->StopAbility(want);
233 EXPECT_TRUE(ret);
234 usleep(AbilityContextTest::TEST_WAIT_TIME);
235 }
236
237 /**
238 * @tc.number: AaFwk_Ability_Context_StopService_0200
239 * @tc.name: AbilityFwk
240 * @tc.desc: When there is no startability, calling stop ability directly will not respond to onbackground and onstop
241 * events.
242 */
243 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_StopService_0200, Function | MediumTest | Level1)
244 {
245 std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
246 sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
247 std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
248 abilityInfo->type = AppExecFwk::AbilityType::SERVICE;
249 abilityInfo->name = "DemoAbility";
250 auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
251
252 AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
253 std::shared_ptr<ContextDeal> deal = std::make_shared<ContextDeal>();
254 deal->SetAbilityInfo(abilityInfo);
255 context_->AttachBaseContext(deal);
256
257 Want want;
258 bool ret = context_->StopAbility(want);
259 EXPECT_TRUE(ret);
260 usleep(AbilityContextTest::TEST_WAIT_TIME);
261 }
262
263 /**
264 * @tc.number: AaFwk_Ability_Context_GetCallingBundle_0100
265 * @tc.name: SetCallingContext and GetCallingBundle
266 * @tc.desc: Verify that function SetCallingContext and GetCallingBundle.
267 */
268 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetCallingBundle_0100, Function | MediumTest | Level1)
269 {
270 std::string deviceId = "deviceId";
271 std::string bundleName = "bundleName";
272 std::string abilityName = "abilityName";
273 std::string moduleName = "moduleName";
274 context_->SetCallingContext(deviceId, bundleName, abilityName, moduleName);
275 EXPECT_EQ(context_->GetCallingBundle(), "bundleName");
276 }
277
278 /**
279 * @tc.number: AaFwk_Ability_Context_GetElementName_0100
280 * @tc.name: GetElementName
281 * @tc.desc: Verify that function GetElementName.
282 */
283 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetElementName_0100, Function | MediumTest | Level1)
284 {
285 std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
286 std::shared_ptr<ContextDeal> deal = std::make_shared<ContextDeal>();
287 deal->SetAbilityInfo(abilityInfo);
288 auto result = context_->GetElementName();
289 EXPECT_TRUE(result == nullptr);
290 }
291
292 /**
293 * @tc.number: AaFwk_Ability_Context_GetElementName_0200
294 * @tc.name: GetElementName
295 * @tc.desc: Verify that function GetElementName.
296 */
297 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetElementName_0200, Function | MediumTest | Level1)
298 {
299 auto result = context_->GetElementName();
300 EXPECT_TRUE(result == nullptr);
301 }
302
303 /**
304 * @tc.number: AaFwk_Ability_Context_GetCallingAbility_0100
305 * @tc.name: GetCallingAbility
306 * @tc.desc: Verify that function GetCallingAbility.
307 */
308 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetCallingAbility_0100, Function | MediumTest | Level1)
309 {
310 auto result = context_->GetCallingAbility();
311 EXPECT_TRUE(result != nullptr);
312 }
313
314 /**
315 * @tc.number: AaFwk_Ability_Context_ConnectAbility_0200
316 * @tc.name: ConnectAbility
317 * @tc.desc: Verify that function ConnectAbility.
318 */
319 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_ConnectAbility_0200, Function | MediumTest | Level1)
320 {
321 Want want;
322 bool ret = context_->ConnectAbility(want, nullptr);
323 EXPECT_FALSE(ret);
324 }
325
326 /**
327 * @tc.number: AaFwk_Ability_Context_ConnectAbility_0300
328 * @tc.name: ConnectAbility
329 * @tc.desc: Verify that function ConnectAbility.
330 */
331 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_ConnectAbility_0300, Function | MediumTest | Level1)
332 {
333 std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
334 sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
335 std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
336 abilityInfo->type = AppExecFwk::AbilityType::DATA;
337 abilityInfo->name = "DemoAbility";
338 auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
339 AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
340 std::shared_ptr<ContextDeal> deal = std::make_shared<ContextDeal>();
341 deal->SetAbilityInfo(abilityInfo);
342 context_->AttachBaseContext(deal);
343 Want want;
344 bool ret = context_->ConnectAbility(want, nullptr);
345 EXPECT_FALSE(ret);
346 }
347
348 /**
349 * @tc.number: AaFwk_Ability_Context_StopService_0300
350 * @tc.name: StopAbility
351 * @tc.desc: Verify that function StopAbility.
352 */
353 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_StopService_0300, Function | MediumTest | Level1)
354 {
355 std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
356 sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
357 std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
358 abilityInfo->type = AppExecFwk::AbilityType::DATA;
359 abilityInfo->name = "DemoAbility";
360 auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
361
362 AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
363 std::shared_ptr<ContextDeal> deal = std::make_shared<ContextDeal>();
364 deal->SetAbilityInfo(abilityInfo);
365 context_->AttachBaseContext(deal);
366
367 Want want;
368 bool ret = context_->StopAbility(want);
369 EXPECT_FALSE(ret);
370 }
371
372 /**
373 * @tc.number: AaFwk_Ability_Context_GetApplicationInfo_0100
374 * @tc.name: GetApplicationInfo
375 * @tc.desc: Verify that function GetApplicationInfo.
376 */
377 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetApplicationInfo_0100, Function | MediumTest | Level1)
378 {
379 auto result = context_->GetApplicationInfo();
380 EXPECT_TRUE(result == nullptr);
381 }
382
383 /**
384 * @tc.number: AaFwk_Ability_Context_GetDatabaseDir_0100
385 * @tc.name: GetDatabaseDir
386 * @tc.desc: Verify that function GetDatabaseDir.
387 */
388 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetDatabaseDir_0100, Function | MediumTest | Level1)
389 {
390 auto result = context_->GetDatabaseDir();
391 EXPECT_TRUE(result.empty());
392 }
393
394 /**
395 * @tc.number: AaFwk_Ability_Context_GetDataDir_0100
396 * @tc.name: GetDataDir
397 * @tc.desc: Verify that function GetDataDir.
398 */
399 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetDataDir_0100, Function | MediumTest | Level1)
400 {
401 auto result = context_->GetDataDir();
402 EXPECT_TRUE(result.empty());
403 }
404
405 /**
406 * @tc.number: AaFwk_Ability_Context_GetBundleManager_0100
407 * @tc.name: GetBundleManager
408 * @tc.desc: Verify that function GetBundleManager.
409 */
410 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetBundleManager_0100, Function | MediumTest | Level1)
411 {
412 auto result = context_->GetBundleManager();
413 EXPECT_TRUE(result == nullptr);
414 }
415
416 /**
417 * @tc.number: AaFwk_Ability_Context_GetDir_0100
418 * @tc.name: GetDir
419 * @tc.desc: Verify that function GetDir.
420 */
421 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetDir_0100, Function | MediumTest | Level1)
422 {
423 std::string name = "name";
424 int32_t mode = 1;
425 auto result = context_->GetDir(name, mode);
426 EXPECT_TRUE(result.empty());
427 }
428
429 /**
430 * @tc.number: AaFwk_Ability_Context_GetBundleCodePath_0100
431 * @tc.name: GetBundleCodePath
432 * @tc.desc: Verify that function GetBundleCodePath.
433 */
434 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetBundleCodePath_0100, Function | MediumTest | Level1)
435 {
436 auto result = context_->GetBundleCodePath();
437 EXPECT_TRUE(result.empty());
438 }
439
440 /**
441 * @tc.number: AaFwk_Ability_Context_GetBundleName_0100
442 * @tc.name: GetBundleName
443 * @tc.desc: Verify that function GetBundleName.
444 */
445 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetBundleName_0100, Function | MediumTest | Level1)
446 {
447 auto result = context_->GetBundleName();
448 EXPECT_TRUE(result.empty());
449 }
450
451 /**
452 * @tc.number: AaFwk_Ability_Context_GetBundleResourcePath_0100
453 * @tc.name: GetBundleResourcePath
454 * @tc.desc: Verify that function GetBundleResourcePath.
455 */
456 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetBundleResourcePath_0100, Function | MediumTest | Level1)
457 {
458 auto result = context_->GetBundleResourcePath();
459 EXPECT_TRUE(result.empty());
460 }
461
462 /**
463 * @tc.number: AaFwk_Ability_Context_GetApplicationContext_0100
464 * @tc.name: GetApplicationContext
465 * @tc.desc: Verify that function GetApplicationContext.
466 */
467 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetApplicationContext_0100, Function | MediumTest | Level1)
468 {
469 auto result = context_->GetApplicationContext();
470 EXPECT_TRUE(result == nullptr);
471 }
472
473 /**
474 * @tc.number: AaFwk_Ability_Context_GetContext_0100
475 * @tc.name: GetContext
476 * @tc.desc: Verify that function GetContext.
477 */
478 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetContext_0100, Function | MediumTest | Level1)
479 {
480 auto result = context_->GetContext();
481 EXPECT_TRUE(result == nullptr);
482 }
483
484 /**
485 * @tc.number: AaFwk_Ability_Context_GetAbilityManager_0100
486 * @tc.name: GetAbilityManager
487 * @tc.desc: Verify that function GetAbilityManager.
488 */
489 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetAbilityManager_0100, Function | MediumTest | Level1)
490 {
491 auto result = context_->GetAbilityManager();
492 EXPECT_TRUE(result == nullptr);
493 }
494
495 /**
496 * @tc.number: AaFwk_Ability_Context_GetProcessInfo_0100
497 * @tc.name: GetProcessInfo
498 * @tc.desc: Verify that function GetProcessInfo.
499 */
500 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetProcessInfo_0100, Function | MediumTest | Level1)
501 {
502 auto result = context_->GetProcessInfo();
503 EXPECT_TRUE(result == nullptr);
504 }
505
506 /**
507 * @tc.number: AaFwk_Ability_Context_GetAppType_0100
508 * @tc.name: GetAppType
509 * @tc.desc: Verify that function GetAppType.
510 */
511 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetAppType_0100, Function | MediumTest | Level1)
512 {
513 auto result = context_->GetAppType();
514 EXPECT_TRUE(result.empty());
515 }
516
517 /**
518 * @tc.number: AaFwk_Ability_Context_GetAbilityInfo_0100
519 * @tc.name: GetAbilityInfo
520 * @tc.desc: Verify that function GetAbilityInfo.
521 */
522 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetAbilityInfo_0100, Function | MediumTest | Level1)
523 {
524 auto result = context_->GetAbilityInfo();
525 EXPECT_TRUE(result == nullptr);
526 }
527
528 /**
529 * @tc.number: AaFwk_Ability_Context_GetHapModuleInfo_0100
530 * @tc.name: GetHapModuleInfo
531 * @tc.desc: Verify that function GetHapModuleInfo.
532 */
533 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetHapModuleInfo_0100, Function | MediumTest | Level1)
534 {
535 auto result = context_->GetHapModuleInfo();
536 EXPECT_TRUE(result == nullptr);
537 }
538
539 /**
540 * @tc.number: AaFwk_Ability_Context_GetHapModuleInfo_0100
541 * @tc.name: GetAbilityInfoType
542 * @tc.desc: Verify that function GetAbilityInfoType.
543 */
544 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetAbilityInfoType_0100, Function | MediumTest | Level1)
545 {
546 auto result = context_->GetAbilityInfoType();
547 EXPECT_EQ(result, AppExecFwk::AbilityType::UNKNOWN);
548 }
549
550 /**
551 * @tc.number: AaFwk_Ability_Context_GetAbilityInfoType_0200
552 * @tc.name: GetAbilityInfoType
553 * @tc.desc: Verify that function GetAbilityInfoType.
554 */
555 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetAbilityInfoType_0200, Function | MediumTest | Level1)
556 {
557 std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
558 sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
559 std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
560 abilityInfo->type = AppExecFwk::AbilityType::SERVICE;
561 abilityInfo->name = "DemoAbility";
562 auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
563
564 AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
565 std::shared_ptr<ContextDeal> deal = std::make_shared<ContextDeal>();
566 deal->SetAbilityInfo(abilityInfo);
567 context_->AttachBaseContext(deal);
568 auto result = context_->GetAbilityInfoType();
569 EXPECT_EQ(result, AppExecFwk::AbilityType::SERVICE);
570 }
571
572 /**
573 * @tc.number: AaFwk_Ability_Context_CreateBundleContext_0100
574 * @tc.name: CreateBundleContext
575 * @tc.desc: Verify that function CreateBundleContext.
576 */
577 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_CreateBundleContext_0100, Function | MediumTest | Level1)
578 {
579 std::string bundleName;
580 int32_t flag = 1;
581 int32_t accountId = 1;
582 auto result = context_->CreateBundleContext(bundleName, flag, accountId);
583 EXPECT_TRUE(result == nullptr);
584 }
585
586 /**
587 * @tc.number: AaFwk_Ability_Context_GetResourceManager_0100
588 * @tc.name: GetResourceManager
589 * @tc.desc: Verify that function GetResourceManager.
590 */
591 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetResourceManager_0100, Function | MediumTest | Level1)
592 {
593 auto result = context_->GetResourceManager();
594 EXPECT_TRUE(result == nullptr);
595 }
596
597 /**
598 * @tc.number: AaFwk_Ability_Context_GetResourceManager_0200
599 * @tc.name: GetResourceManager
600 * @tc.desc: Verify that function GetResourceManager.
601 */
602 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetResourceManager_0200, Function | MediumTest | Level1)
603 {
604 std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
605 sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
606 std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
607 abilityInfo->type = AppExecFwk::AbilityType::SERVICE;
608 abilityInfo->name = "DemoAbility";
609 auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
610 AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
611 std::shared_ptr<ContextDeal> deal = std::make_shared<ContextDeal>();
612 deal->SetAbilityInfo(abilityInfo);
613 context_->AttachBaseContext(deal);
614 auto result = context_->GetResourceManager();
615 EXPECT_TRUE(result == nullptr);
616 }
617
618 /**
619 * @tc.number: AaFwk_Ability_Context_VerifyPermission_0100
620 * @tc.name: VerifyPermission
621 * @tc.desc: Verify that function VerifyPermission.
622 */
623 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_VerifyPermission_0100, Function | MediumTest | Level1)
624 {
625 std::string permission;
626 int32_t pid = 1;
627 int32_t uid = 1;
628 auto result = context_->VerifyPermission(permission, pid, uid);
629 EXPECT_EQ(result, AppExecFwk::Constants::PERMISSION_NOT_GRANTED);
630 }
631
632 /**
633 * @tc.number: AaFwk_Ability_Context_VerifyPermission_0200
634 * @tc.name: VerifyPermission
635 * @tc.desc: Verify that function VerifyPermission.
636 */
637 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_VerifyPermission_0200, Function | MediumTest | Level1)
638 {
639 std::string permission = "permission";
640 int32_t pid = 1;
641 int32_t uid = 1;
642 auto result = context_->VerifyPermission(permission, pid, uid);
643 EXPECT_EQ(result, AppExecFwk::Constants::PERMISSION_NOT_GRANTED);
644 }
645
646 /**
647 * @tc.number: AaFwk_Ability_Context_VerifyPermission_0300
648 * @tc.name: VerifyPermission
649 * @tc.desc: Verify that function VerifyPermission.
650 */
651 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_VerifyPermission_0300, Function | MediumTest | Level1)
652 {
653 std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
654 sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
655 std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
656 abilityInfo->type = AppExecFwk::AbilityType::SERVICE;
657 abilityInfo->name = "DemoAbility";
658 auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
659 AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
660 std::shared_ptr<ContextDeal> deal = std::make_shared<ContextDeal>();
661 deal->SetAbilityInfo(abilityInfo);
662 context_->AttachBaseContext(deal);
663 std::string permission = "permission";
664 int32_t pid = 1;
665 int32_t uid = 1;
666 auto result = context_->VerifyPermission(permission, pid, uid);
667 EXPECT_EQ(result, AppExecFwk::Constants::PERMISSION_NOT_GRANTED);
668 }
669
670 /**
671 * @tc.number: AaFwk_Ability_Context_GetPermissionDes_0100
672 * @tc.name: GetPermissionDes
673 * @tc.desc: Verify that function GetPermissionDes.
674 */
675 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetPermissionDes_0100, Function | MediumTest | Level1)
676 {
677 std::string permissionName = "permissionName";
678 std::string des = "des";
679 context_->GetPermissionDes(permissionName, des);
680 EXPECT_TRUE(permissionName.length() != des.length());
681 }
682
683 /**
684 * @tc.number: AaFwk_Ability_Context_RequestPermissionsFromUser_0100
685 * @tc.name: RequestPermissionsFromUser
686 * @tc.desc: Verify that function RequestPermissionsFromUser.
687 */
688 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_RequestPermissionsFromUser_0100, Function | MediumTest | Level1)
689 {
690 std::vector<std::string> permissions;
691 std::vector<int> permissionsState;
692 context_->RequestPermissionsFromUser(permissions, permissionsState, nullptr);
693 EXPECT_TRUE(permissions.empty());
694 }
695
696 /**
697 * @tc.number: AaFwk_Ability_Context_RequestPermissionsFromUser_0200
698 * @tc.name: RequestPermissionsFromUser
699 * @tc.desc: Verify that function RequestPermissionsFromUser.
700 */
701 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_RequestPermissionsFromUser_0200, Function | MediumTest | Level1)
702 {
703 std::vector<std::string> permissions;
704 permissions.emplace_back("a");
705 std::vector<int> permissionsState;
706 context_->RequestPermissionsFromUser(permissions, permissionsState, nullptr);
707 EXPECT_TRUE(!permissions.empty());
708 }
709
710 /**
711 * @tc.number: AaFwk_Ability_Context_GetCaller_0100
712 * @tc.name: GetCaller
713 * @tc.desc: Verify that function GetCaller.
714 */
715 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetCaller_0100, Function | MediumTest | Level1)
716 {
717 auto result = context_->GetCaller();
718 EXPECT_EQ(result.GetScheme(), "");
719 }
720
721 /**
722 * @tc.number: AaFwk_Ability_Context_GetExternalCacheDir_0100
723 * @tc.name: GetExternalCacheDir
724 * @tc.desc: Verify that function GetExternalCacheDir.
725 */
726 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetExternalCacheDir_0100, Function | MediumTest | Level1)
727 {
728 auto result = context_->GetExternalCacheDir();
729 EXPECT_EQ(result, "");
730 }
731
732 /**
733 * @tc.number: AaFwk_Ability_Context_GetExternalFilesDir_0100
734 * @tc.name: GetExternalFilesDir
735 * @tc.desc: Verify that function GetExternalFilesDir.
736 */
737 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetExternalFilesDir_0100, Function | MediumTest | Level1)
738 {
739 std::string type;
740 auto result = context_->GetExternalFilesDir(type);
741 EXPECT_EQ(result, "");
742 }
743
744 /**
745 * @tc.number: AaFwk_Ability_Context_GetFilesDir_0100
746 * @tc.name: GetFilesDir
747 * @tc.desc: Verify that function GetFilesDir.
748 */
749 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetFilesDir_0100, Function | MediumTest | Level1)
750 {
751 auto result = context_->GetFilesDir();
752 EXPECT_EQ(result, "");
753 }
754
755 /**
756 * @tc.number: AaFwk_Ability_Context_GetAbilityPackageContext_0100
757 * @tc.name: GetAbilityPackageContext
758 * @tc.desc: Verify that function GetAbilityPackageContext.
759 */
760 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetAbilityPackageContext_0100, Function | MediumTest | Level1)
761 {
762 auto result = context_->GetAbilityPackageContext();
763 EXPECT_TRUE(result == nullptr);
764 }
765
766 /**
767 * @tc.number: AaFwk_Ability_Context_GetProcessName_0100
768 * @tc.name: GetProcessName
769 * @tc.desc: Verify that function GetProcessName.
770 */
771 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetProcessName_0100, Function | MediumTest | Level1)
772 {
773 auto result = context_->GetProcessName();
774 EXPECT_TRUE(result.empty());
775 }
776
777 /**
778 * @tc.number: AaFwk_Ability_Context_InitResourceManager_0100
779 * @tc.name: InitResourceManager
780 * @tc.desc: Verify that function InitResourceManager.
781 */
782 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_InitResourceManager_0100, Function | MediumTest | Level1)
783 {
784 BundleInfo bundleInfo;
785 std::shared_ptr<ContextDeal> deal = nullptr;
786 context_->InitResourceManager(bundleInfo, deal);
787 EXPECT_TRUE(deal == nullptr);
788 }
789
790 /**
791 * @tc.number: AaFwk_Ability_Context_GetString_0100
792 * @tc.name: GetString
793 * @tc.desc: Verify that function GetString.
794 */
795 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetString_0100, Function | MediumTest | Level1)
796 {
797 int32_t resId = 1;
798 auto result = context_->GetString(resId);
799 EXPECT_EQ(result, "");
800 }
801
802 /**
803 * @tc.number: AaFwk_Ability_Context_GetStringArray_0100
804 * @tc.name: GetStringArray
805 * @tc.desc: Verify that function GetStringArray.
806 */
807 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetStringArray_0100, Function | MediumTest | Level1)
808 {
809 int32_t resId = 1;
810 auto result = context_->GetStringArray(resId);
811 EXPECT_TRUE(result.empty());
812 }
813
814 /**
815 * @tc.number: AaFwk_Ability_Context_GetIntArray_0100
816 * @tc.name: GetIntArray
817 * @tc.desc: Verify that function GetIntArray.
818 */
819 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetIntArray_0100, Function | MediumTest | Level1)
820 {
821 int32_t resId = 1;
822 auto result = context_->GetIntArray(resId);
823 EXPECT_TRUE(result.empty());
824 }
825
826 /**
827 * @tc.number: AaFwk_Ability_Context_GetTheme_0100
828 * @tc.name: GetTheme
829 * @tc.desc: Verify that function GetTheme.
830 */
831 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetTheme_0100, Function | MediumTest | Level1)
832 {
833 auto result = context_->GetTheme();
834 EXPECT_TRUE(result.empty());
835 }
836
837 /**
838 * @tc.number: AaFwk_Ability_Context_GetPattern_0100
839 * @tc.name: GetPattern
840 * @tc.desc: Verify that function GetPattern.
841 */
842 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetPattern_0100, Function | MediumTest | Level1)
843 {
844 auto result = context_->GetPattern();
845 EXPECT_TRUE(result.empty());
846 }
847
848 /**
849 * @tc.number: AaFwk_Ability_Context_GetColor_0100
850 * @tc.name: GetColor
851 * @tc.desc: Verify that function GetColor.
852 */
853 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetColor_0100, Function | MediumTest | Level1)
854 {
855 int32_t resId = 1;
856 auto result = context_->GetColor(resId);
857 EXPECT_EQ(result, INVALID_RESOURCE_VALUE);
858 }
859
860 /**
861 * @tc.number: AaFwk_Ability_Context_GetThemeId_0100
862 * @tc.name: GetThemeId
863 * @tc.desc: Verify that function GetThemeId.
864 */
865 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetThemeId_0100, Function | MediumTest | Level1)
866 {
867 auto result = context_->GetThemeId();
868 EXPECT_EQ(result, -1);
869 }
870
871 /**
872 * @tc.number: AaFwk_Ability_Context_GetDisplayOrientation_0100
873 * @tc.name: GetDisplayOrientation
874 * @tc.desc: Verify that function GetDisplayOrientation.
875 */
876 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetDisplayOrientation_0100, Function | MediumTest | Level1)
877 {
878 auto result = context_->GetDisplayOrientation();
879 EXPECT_EQ(result, 0);
880 }
881
882 /**
883 * @tc.number: AaFwk_Ability_Context_GetPreferencesDir_0100
884 * @tc.name: GetPreferencesDir
885 * @tc.desc: Verify that function GetPreferencesDir.
886 */
887 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetPreferencesDir_0100, Function | MediumTest | Level1)
888 {
889 auto result = context_->GetPreferencesDir();
890 EXPECT_EQ(result, "");
891 }
892
893 /**
894 * @tc.number: AaFwk_Ability_Context_SetColorMode_0100
895 * @tc.name: SetColorMode and GetColorMode
896 * @tc.desc: Verify that function SetColorMode and GetColorMode.
897 */
898 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_SetColorMode_0100, Function | MediumTest | Level1)
899 {
900 std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
901 sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
902 std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
903 auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
904 AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
905 std::shared_ptr<ContextDeal> deal = std::make_shared<ContextDeal>();
906 deal->SetAbilityInfo(abilityInfo);
907 context_->AttachBaseContext(deal);
908 int32_t mode = 1;
909 context_->SetColorMode(mode);
910 auto result = context_->GetColorMode();
911 EXPECT_EQ(result, 1);
912 EXPECT_TRUE(context_->baseContext_ != nullptr);
913 }
914
915 /**
916 * @tc.number: AaFwk_Ability_Context_GetMissionId_0100
917 * @tc.name: GetMissionId
918 * @tc.desc: Verify that function GetMissionId.
919 */
920 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetMissionId_0100, Function | MediumTest | Level1)
921 {
922 auto result = context_->GetMissionId();
923 EXPECT_EQ(result, -1);
924 }
925
926 /**
927 * @tc.number: AaFwk_Ability_Context_IsUpdatingConfigurations_0100
928 * @tc.name: IsUpdatingConfigurations
929 * @tc.desc: Verify that function IsUpdatingConfigurations.
930 */
931 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_IsUpdatingConfigurations_0100, Function | MediumTest | Level1)
932 {
933 auto result = context_->IsUpdatingConfigurations();
934 EXPECT_FALSE(result);
935 }
936
937 /**
938 * @tc.number: AaFwk_Ability_Context_PrintDrawnCompleted_0100
939 * @tc.name: PrintDrawnCompleted
940 * @tc.desc: Verify that function PrintDrawnCompleted.
941 */
942 HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_PrintDrawnCompleted_0100, Function | MediumTest | Level1)
943 {
944 auto result = context_->PrintDrawnCompleted();
945 EXPECT_FALSE(result);
946 }
947 } // namespace AppExecFwk
948 } // namespace OHOS
949