• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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