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