/* * Copyright (c) 2021-2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #define private public #define protected public #include "ability_context.h" #include "ability_loader.h" #include "ability_manager_client.h" #include "context_deal.h" #include "fa_ability_thread.h" #include "mock_serviceability_manager_service.h" #include "ohos_application.h" #include "sys_mgr_client.h" #include "system_ability_definition.h" #undef protected #undef private namespace OHOS { namespace AppExecFwk { using namespace testing::ext; using namespace OHOS::AppExecFwk; using namespace OHOS; using namespace AAFwk; namespace { const std::string ACE_SERVICE_ABILITY_NAME = "AceServiceAbility"; } class AbilityContextTest : public testing::Test { public: static void SetUpTestCase(void); static void TearDownTestCase(void); void SetUp(); void TearDown(); static constexpr int TEST_WAIT_TIME = 500 * 1000; // 500 ms public: std::unique_ptr context_ = nullptr; }; void AbilityContextTest::SetUpTestCase(void) { OHOS::sptr abilityObject = new (std::nothrow) MockServiceAbilityManagerService(); auto sysMgr = OHOS::DelayedSingleton::GetInstance(); if (sysMgr == nullptr) { GTEST_LOG_(ERROR) << "fail to get ISystemAbilityManager"; return; } sysMgr->RegisterSystemAbility(OHOS::ABILITY_MGR_SERVICE_ID, abilityObject); AbilityLoader::GetInstance().RegisterAbility( ACE_SERVICE_ABILITY_NAME, []()->Ability* { return new (std::nothrow) Ability; }); } void AbilityContextTest::TearDownTestCase(void) {} void AbilityContextTest::SetUp(void) { context_ = std::make_unique(); } void AbilityContextTest::TearDown(void) {} /** * @tc.number: AaFwk_Ability_Context_ConnectAbility_0100 * @tc.name: AbilityFwk * @tc.desc: When connecting ability, AMS will inform ability to process OnStart in the life cycle, and then inform * ability to process onconnect, and the connection is successful */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_ConnectAbility_0100, Function | MediumTest | Level1) { std::shared_ptr application = std::make_shared(); sptr abilityToken = sptr(new AbilityRuntime::FAAbilityThread()); std::shared_ptr abilityInfo = std::make_shared(); abilityInfo->type = AppExecFwk::AbilityType::SERVICE; abilityInfo->name = "DemoAbility"; auto abilityRecord = std::make_shared(abilityInfo, abilityToken, nullptr, 0); AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr); std::shared_ptr deal = std::make_shared(); deal->SetAbilityInfo(abilityInfo); context_->AttachBaseContext(deal); Want want; bool ret = context_->ConnectAbility(want, nullptr); EXPECT_TRUE(ret); usleep(AbilityContextTest::TEST_WAIT_TIME); } /** * @tc.number: AaFwk_Ability_Context_DisconnectAbility_0100 * @tc.name: AbilityFwk * @tc.desc: AMS notifies the abilityondisconnect event when disconnectservice. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_DisconnectAbility_0100, Function | MediumTest | Level1) { std::shared_ptr application = std::make_shared(); sptr abilityToken = sptr(new AbilityRuntime::FAAbilityThread()); std::shared_ptr abilityInfo = std::make_shared(); abilityInfo->type = AppExecFwk::AbilityType::SERVICE; abilityInfo->name = "DemoAbility"; auto abilityRecord = std::make_shared(abilityInfo, abilityToken, nullptr, 0); AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr); std::shared_ptr deal = std::make_shared(); deal->SetAbilityInfo(abilityInfo); context_->AttachBaseContext(deal); Want want; context_->ConnectAbility(want, nullptr); context_->DisconnectAbility(nullptr); usleep(AbilityContextTest::TEST_WAIT_TIME); } /** * @tc.number: AaFwk_Ability_Context_StartAbility_0100 * @tc.name: AbilityFwk * @tc.desc: Starting ability service, AMS will inform ability to perform OnStart lifecycle conversion, and then inform * oncommand event. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_StartAbility_0100, Function | MediumTest | Level1) { std::shared_ptr application = std::make_shared(); sptr abilityToken = sptr(new AbilityRuntime::FAAbilityThread()); std::shared_ptr abilityInfo = std::make_shared(); abilityInfo->type = AppExecFwk::AbilityType::SERVICE; abilityInfo->name = "DemoAbility"; auto abilityRecord = std::make_shared(abilityInfo, abilityToken, nullptr, 0); AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr); Want want; context_->StartAbility(want, -1); usleep(AbilityContextTest::TEST_WAIT_TIME); } /** * @tc.number: AaFwk_Ability_Context_TerminateAbility_0100 * @tc.name: AbilityFwk * @tc.desc: To terminate ability service, AMS will notify ability to perform onbackground lifecycle conversion, and * then notify onstop event. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_TerminateAbility_0100, Function | MediumTest | Level1) { std::shared_ptr application = std::make_shared(); sptr abilityToken = sptr(new AbilityRuntime::FAAbilityThread()); std::shared_ptr abilityInfo = std::make_shared(); abilityInfo->type = AppExecFwk::AbilityType::SERVICE; abilityInfo->name = "DemoAbility"; auto abilityRecord = std::make_shared(abilityInfo, abilityToken, nullptr, 0); AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr); Want want; context_->StartAbility(want, -1); usleep(AbilityContextTest::TEST_WAIT_TIME); std::shared_ptr deal = std::make_shared(); deal->SetAbilityInfo(abilityInfo); context_->AttachBaseContext(deal); context_->TerminateAbility(); usleep(AbilityContextTest::TEST_WAIT_TIME); } /** * @tc.number: AaFwk_Ability_Context_TerminateAbility_0200 * @tc.name: AbilityFwk * @tc.desc: When there is no startability, calling terminateability directly will not respond to onbackground and * onstop events. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_TerminateAbility_0200, Function | MediumTest | Level1) { std::shared_ptr application = std::make_shared(); sptr abilityToken = sptr(new AbilityRuntime::FAAbilityThread()); std::shared_ptr abilityInfo = std::make_shared(); abilityInfo->type = AppExecFwk::AbilityType::SERVICE; abilityInfo->name = "DemoAbility"; auto abilityRecord = std::make_shared(abilityInfo, abilityToken, nullptr, 0); AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr); std::shared_ptr deal = std::make_shared(); deal->SetAbilityInfo(abilityInfo); context_->AttachBaseContext(deal); context_->TerminateAbility(); usleep(AbilityContextTest::TEST_WAIT_TIME); } /** * @tc.number: AaFwk_Ability_Context_StopService_0100 * @tc.name: AbilityFwk * @tc.desc: To stop ability service, AMS will notify ability to perform onbackground lifecycle conversion, and then * notify onstop event. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_StopService_0100, Function | MediumTest | Level1) { std::shared_ptr application = std::make_shared(); sptr abilityToken = sptr(new AbilityRuntime::FAAbilityThread()); std::shared_ptr abilityInfo = std::make_shared(); abilityInfo->type = AppExecFwk::AbilityType::SERVICE; abilityInfo->name = "DemoAbility"; auto abilityRecord = std::make_shared(abilityInfo, abilityToken, nullptr, 0); AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr); std::shared_ptr deal = std::make_shared(); deal->SetAbilityInfo(abilityInfo); context_->AttachBaseContext(deal); Want want; context_->StartAbility(want, -1); usleep(AbilityContextTest::TEST_WAIT_TIME); bool ret = context_->StopAbility(want); EXPECT_TRUE(ret); usleep(AbilityContextTest::TEST_WAIT_TIME); } /** * @tc.number: AaFwk_Ability_Context_StopService_0200 * @tc.name: AbilityFwk * @tc.desc: When there is no startability, calling stop ability directly will not respond to onbackground and onstop * events. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_StopService_0200, Function | MediumTest | Level1) { std::shared_ptr application = std::make_shared(); sptr abilityToken = sptr(new AbilityRuntime::FAAbilityThread()); std::shared_ptr abilityInfo = std::make_shared(); abilityInfo->type = AppExecFwk::AbilityType::SERVICE; abilityInfo->name = "DemoAbility"; auto abilityRecord = std::make_shared(abilityInfo, abilityToken, nullptr, 0); AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr); std::shared_ptr deal = std::make_shared(); deal->SetAbilityInfo(abilityInfo); context_->AttachBaseContext(deal); Want want; bool ret = context_->StopAbility(want); EXPECT_TRUE(ret); usleep(AbilityContextTest::TEST_WAIT_TIME); } /** * @tc.number: AaFwk_Ability_Context_GetCallingBundle_0100 * @tc.name: SetCallingContext and GetCallingBundle * @tc.desc: Verify that function SetCallingContext and GetCallingBundle. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetCallingBundle_0100, Function | MediumTest | Level1) { std::string deviceId = "deviceId"; std::string bundleName = "bundleName"; std::string abilityName = "abilityName"; std::string moduleName = "moduleName"; context_->SetCallingContext(deviceId, bundleName, abilityName, moduleName); EXPECT_EQ(context_->GetCallingBundle(), "bundleName"); } /** * @tc.number: AaFwk_Ability_Context_GetElementName_0100 * @tc.name: GetElementName * @tc.desc: Verify that function GetElementName. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetElementName_0100, Function | MediumTest | Level1) { std::shared_ptr abilityInfo = std::make_shared(); std::shared_ptr deal = std::make_shared(); deal->SetAbilityInfo(abilityInfo); auto result = context_->GetElementName(); EXPECT_TRUE(result == nullptr); } /** * @tc.number: AaFwk_Ability_Context_GetElementName_0200 * @tc.name: GetElementName * @tc.desc: Verify that function GetElementName. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetElementName_0200, Function | MediumTest | Level1) { auto result = context_->GetElementName(); EXPECT_TRUE(result == nullptr); } /** * @tc.number: AaFwk_Ability_Context_GetCallingAbility_0100 * @tc.name: GetCallingAbility * @tc.desc: Verify that function GetCallingAbility. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetCallingAbility_0100, Function | MediumTest | Level1) { auto result = context_->GetCallingAbility(); EXPECT_TRUE(result != nullptr); } /** * @tc.number: AaFwk_Ability_Context_ConnectAbility_0200 * @tc.name: ConnectAbility * @tc.desc: Verify that function ConnectAbility. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_ConnectAbility_0200, Function | MediumTest | Level1) { Want want; bool ret = context_->ConnectAbility(want, nullptr); EXPECT_FALSE(ret); } /** * @tc.number: AaFwk_Ability_Context_ConnectAbility_0300 * @tc.name: ConnectAbility * @tc.desc: Verify that function ConnectAbility. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_ConnectAbility_0300, Function | MediumTest | Level1) { std::shared_ptr application = std::make_shared(); sptr abilityToken = sptr(new AbilityRuntime::FAAbilityThread()); std::shared_ptr abilityInfo = std::make_shared(); abilityInfo->type = AppExecFwk::AbilityType::DATA; abilityInfo->name = "DemoAbility"; auto abilityRecord = std::make_shared(abilityInfo, abilityToken, nullptr, 0); AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr); std::shared_ptr deal = std::make_shared(); deal->SetAbilityInfo(abilityInfo); context_->AttachBaseContext(deal); Want want; bool ret = context_->ConnectAbility(want, nullptr); EXPECT_FALSE(ret); } /** * @tc.number: AaFwk_Ability_Context_StopService_0300 * @tc.name: StopAbility * @tc.desc: Verify that function StopAbility. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_StopService_0300, Function | MediumTest | Level1) { std::shared_ptr application = std::make_shared(); sptr abilityToken = sptr(new AbilityRuntime::FAAbilityThread()); std::shared_ptr abilityInfo = std::make_shared(); abilityInfo->type = AppExecFwk::AbilityType::DATA; abilityInfo->name = "DemoAbility"; auto abilityRecord = std::make_shared(abilityInfo, abilityToken, nullptr, 0); AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr); std::shared_ptr deal = std::make_shared(); deal->SetAbilityInfo(abilityInfo); context_->AttachBaseContext(deal); Want want; bool ret = context_->StopAbility(want); EXPECT_FALSE(ret); } /** * @tc.number: AaFwk_Ability_Context_GetApplicationInfo_0100 * @tc.name: GetApplicationInfo * @tc.desc: Verify that function GetApplicationInfo. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetApplicationInfo_0100, Function | MediumTest | Level1) { auto result = context_->GetApplicationInfo(); EXPECT_TRUE(result == nullptr); } /** * @tc.number: AaFwk_Ability_Context_GetDatabaseDir_0100 * @tc.name: GetDatabaseDir * @tc.desc: Verify that function GetDatabaseDir. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetDatabaseDir_0100, Function | MediumTest | Level1) { auto result = context_->GetDatabaseDir(); EXPECT_TRUE(result.empty()); } /** * @tc.number: AaFwk_Ability_Context_GetDataDir_0100 * @tc.name: GetDataDir * @tc.desc: Verify that function GetDataDir. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetDataDir_0100, Function | MediumTest | Level1) { auto result = context_->GetDataDir(); EXPECT_TRUE(result.empty()); } /** * @tc.number: AaFwk_Ability_Context_GetBundleManager_0100 * @tc.name: GetBundleManager * @tc.desc: Verify that function GetBundleManager. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetBundleManager_0100, Function | MediumTest | Level1) { auto result = context_->GetBundleManager(); EXPECT_TRUE(result == nullptr); } /** * @tc.number: AaFwk_Ability_Context_GetDir_0100 * @tc.name: GetDir * @tc.desc: Verify that function GetDir. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetDir_0100, Function | MediumTest | Level1) { std::string name = "name"; int32_t mode = 1; auto result = context_->GetDir(name, mode); EXPECT_TRUE(result.empty()); } /** * @tc.number: AaFwk_Ability_Context_GetBundleCodePath_0100 * @tc.name: GetBundleCodePath * @tc.desc: Verify that function GetBundleCodePath. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetBundleCodePath_0100, Function | MediumTest | Level1) { auto result = context_->GetBundleCodePath(); EXPECT_TRUE(result.empty()); } /** * @tc.number: AaFwk_Ability_Context_GetBundleName_0100 * @tc.name: GetBundleName * @tc.desc: Verify that function GetBundleName. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetBundleName_0100, Function | MediumTest | Level1) { auto result = context_->GetBundleName(); EXPECT_TRUE(result.empty()); } /** * @tc.number: AaFwk_Ability_Context_GetBundleResourcePath_0100 * @tc.name: GetBundleResourcePath * @tc.desc: Verify that function GetBundleResourcePath. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetBundleResourcePath_0100, Function | MediumTest | Level1) { auto result = context_->GetBundleResourcePath(); EXPECT_TRUE(result.empty()); } /** * @tc.number: AaFwk_Ability_Context_GetApplicationContext_0100 * @tc.name: GetApplicationContext * @tc.desc: Verify that function GetApplicationContext. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetApplicationContext_0100, Function | MediumTest | Level1) { auto result = context_->GetApplicationContext(); EXPECT_TRUE(result == nullptr); } /** * @tc.number: AaFwk_Ability_Context_GetContext_0100 * @tc.name: GetContext * @tc.desc: Verify that function GetContext. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetContext_0100, Function | MediumTest | Level1) { auto result = context_->GetContext(); EXPECT_TRUE(result == nullptr); } /** * @tc.number: AaFwk_Ability_Context_GetAbilityManager_0100 * @tc.name: GetAbilityManager * @tc.desc: Verify that function GetAbilityManager. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetAbilityManager_0100, Function | MediumTest | Level1) { auto result = context_->GetAbilityManager(); EXPECT_TRUE(result == nullptr); } /** * @tc.number: AaFwk_Ability_Context_GetProcessInfo_0100 * @tc.name: GetProcessInfo * @tc.desc: Verify that function GetProcessInfo. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetProcessInfo_0100, Function | MediumTest | Level1) { auto result = context_->GetProcessInfo(); EXPECT_TRUE(result == nullptr); } /** * @tc.number: AaFwk_Ability_Context_GetAppType_0100 * @tc.name: GetAppType * @tc.desc: Verify that function GetAppType. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetAppType_0100, Function | MediumTest | Level1) { auto result = context_->GetAppType(); EXPECT_TRUE(result.empty()); } /** * @tc.number: AaFwk_Ability_Context_GetAbilityInfo_0100 * @tc.name: GetAbilityInfo * @tc.desc: Verify that function GetAbilityInfo. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetAbilityInfo_0100, Function | MediumTest | Level1) { auto result = context_->GetAbilityInfo(); EXPECT_TRUE(result == nullptr); } /** * @tc.number: AaFwk_Ability_Context_GetHapModuleInfo_0100 * @tc.name: GetHapModuleInfo * @tc.desc: Verify that function GetHapModuleInfo. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetHapModuleInfo_0100, Function | MediumTest | Level1) { auto result = context_->GetHapModuleInfo(); EXPECT_TRUE(result == nullptr); } /** * @tc.number: AaFwk_Ability_Context_GetHapModuleInfo_0100 * @tc.name: GetAbilityInfoType * @tc.desc: Verify that function GetAbilityInfoType. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetAbilityInfoType_0100, Function | MediumTest | Level1) { auto result = context_->GetAbilityInfoType(); EXPECT_EQ(result, AppExecFwk::AbilityType::UNKNOWN); } /** * @tc.number: AaFwk_Ability_Context_GetAbilityInfoType_0200 * @tc.name: GetAbilityInfoType * @tc.desc: Verify that function GetAbilityInfoType. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetAbilityInfoType_0200, Function | MediumTest | Level1) { std::shared_ptr application = std::make_shared(); sptr abilityToken = sptr(new AbilityRuntime::FAAbilityThread()); std::shared_ptr abilityInfo = std::make_shared(); abilityInfo->type = AppExecFwk::AbilityType::SERVICE; abilityInfo->name = "DemoAbility"; auto abilityRecord = std::make_shared(abilityInfo, abilityToken, nullptr, 0); AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr); std::shared_ptr deal = std::make_shared(); deal->SetAbilityInfo(abilityInfo); context_->AttachBaseContext(deal); auto result = context_->GetAbilityInfoType(); EXPECT_EQ(result, AppExecFwk::AbilityType::SERVICE); } /** * @tc.number: AaFwk_Ability_Context_CreateBundleContext_0100 * @tc.name: CreateBundleContext * @tc.desc: Verify that function CreateBundleContext. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_CreateBundleContext_0100, Function | MediumTest | Level1) { std::string bundleName; int32_t flag = 1; int32_t accountId = 1; auto result = context_->CreateBundleContext(bundleName, flag, accountId); EXPECT_TRUE(result == nullptr); } /** * @tc.number: AaFwk_Ability_Context_GetResourceManager_0100 * @tc.name: GetResourceManager * @tc.desc: Verify that function GetResourceManager. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetResourceManager_0100, Function | MediumTest | Level1) { auto result = context_->GetResourceManager(); EXPECT_TRUE(result == nullptr); } /** * @tc.number: AaFwk_Ability_Context_GetResourceManager_0200 * @tc.name: GetResourceManager * @tc.desc: Verify that function GetResourceManager. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetResourceManager_0200, Function | MediumTest | Level1) { std::shared_ptr application = std::make_shared(); sptr abilityToken = sptr(new AbilityRuntime::FAAbilityThread()); std::shared_ptr abilityInfo = std::make_shared(); abilityInfo->type = AppExecFwk::AbilityType::SERVICE; abilityInfo->name = "DemoAbility"; auto abilityRecord = std::make_shared(abilityInfo, abilityToken, nullptr, 0); AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr); std::shared_ptr deal = std::make_shared(); deal->SetAbilityInfo(abilityInfo); context_->AttachBaseContext(deal); auto result = context_->GetResourceManager(); EXPECT_TRUE(result == nullptr); } /** * @tc.number: AaFwk_Ability_Context_VerifyPermission_0100 * @tc.name: VerifyPermission * @tc.desc: Verify that function VerifyPermission. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_VerifyPermission_0100, Function | MediumTest | Level1) { std::string permission; int32_t pid = 1; int32_t uid = 1; auto result = context_->VerifyPermission(permission, pid, uid); EXPECT_EQ(result, AppExecFwk::Constants::PERMISSION_NOT_GRANTED); } /** * @tc.number: AaFwk_Ability_Context_VerifyPermission_0200 * @tc.name: VerifyPermission * @tc.desc: Verify that function VerifyPermission. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_VerifyPermission_0200, Function | MediumTest | Level1) { std::string permission = "permission"; int32_t pid = 1; int32_t uid = 1; auto result = context_->VerifyPermission(permission, pid, uid); EXPECT_EQ(result, AppExecFwk::Constants::PERMISSION_NOT_GRANTED); } /** * @tc.number: AaFwk_Ability_Context_VerifyPermission_0300 * @tc.name: VerifyPermission * @tc.desc: Verify that function VerifyPermission. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_VerifyPermission_0300, Function | MediumTest | Level1) { std::shared_ptr application = std::make_shared(); sptr abilityToken = sptr(new AbilityRuntime::FAAbilityThread()); std::shared_ptr abilityInfo = std::make_shared(); abilityInfo->type = AppExecFwk::AbilityType::SERVICE; abilityInfo->name = "DemoAbility"; auto abilityRecord = std::make_shared(abilityInfo, abilityToken, nullptr, 0); AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr); std::shared_ptr deal = std::make_shared(); deal->SetAbilityInfo(abilityInfo); context_->AttachBaseContext(deal); std::string permission = "permission"; int32_t pid = 1; int32_t uid = 1; auto result = context_->VerifyPermission(permission, pid, uid); EXPECT_EQ(result, AppExecFwk::Constants::PERMISSION_NOT_GRANTED); } /** * @tc.number: AaFwk_Ability_Context_GetPermissionDes_0100 * @tc.name: GetPermissionDes * @tc.desc: Verify that function GetPermissionDes. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetPermissionDes_0100, Function | MediumTest | Level1) { std::string permissionName = "permissionName"; std::string des = "des"; context_->GetPermissionDes(permissionName, des); EXPECT_TRUE(permissionName.length() != des.length()); } /** * @tc.number: AaFwk_Ability_Context_RequestPermissionsFromUser_0100 * @tc.name: RequestPermissionsFromUser * @tc.desc: Verify that function RequestPermissionsFromUser. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_RequestPermissionsFromUser_0100, Function | MediumTest | Level1) { std::vector permissions; std::vector permissionsState; context_->RequestPermissionsFromUser(permissions, permissionsState, nullptr); EXPECT_TRUE(permissions.empty()); } /** * @tc.number: AaFwk_Ability_Context_RequestPermissionsFromUser_0200 * @tc.name: RequestPermissionsFromUser * @tc.desc: Verify that function RequestPermissionsFromUser. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_RequestPermissionsFromUser_0200, Function | MediumTest | Level1) { std::vector permissions; permissions.emplace_back("a"); std::vector permissionsState; context_->RequestPermissionsFromUser(permissions, permissionsState, nullptr); EXPECT_TRUE(!permissions.empty()); } /** * @tc.number: AaFwk_Ability_Context_GetCaller_0100 * @tc.name: GetCaller * @tc.desc: Verify that function GetCaller. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetCaller_0100, Function | MediumTest | Level1) { auto result = context_->GetCaller(); EXPECT_EQ(result.GetScheme(), ""); } /** * @tc.number: AaFwk_Ability_Context_GetExternalCacheDir_0100 * @tc.name: GetExternalCacheDir * @tc.desc: Verify that function GetExternalCacheDir. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetExternalCacheDir_0100, Function | MediumTest | Level1) { auto result = context_->GetExternalCacheDir(); EXPECT_EQ(result, ""); } /** * @tc.number: AaFwk_Ability_Context_GetExternalFilesDir_0100 * @tc.name: GetExternalFilesDir * @tc.desc: Verify that function GetExternalFilesDir. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetExternalFilesDir_0100, Function | MediumTest | Level1) { std::string type; auto result = context_->GetExternalFilesDir(type); EXPECT_EQ(result, ""); } /** * @tc.number: AaFwk_Ability_Context_GetFilesDir_0100 * @tc.name: GetFilesDir * @tc.desc: Verify that function GetFilesDir. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetFilesDir_0100, Function | MediumTest | Level1) { auto result = context_->GetFilesDir(); EXPECT_EQ(result, ""); } /** * @tc.number: AaFwk_Ability_Context_GetAbilityPackageContext_0100 * @tc.name: GetAbilityPackageContext * @tc.desc: Verify that function GetAbilityPackageContext. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetAbilityPackageContext_0100, Function | MediumTest | Level1) { auto result = context_->GetAbilityPackageContext(); EXPECT_TRUE(result == nullptr); } /** * @tc.number: AaFwk_Ability_Context_GetProcessName_0100 * @tc.name: GetProcessName * @tc.desc: Verify that function GetProcessName. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetProcessName_0100, Function | MediumTest | Level1) { auto result = context_->GetProcessName(); EXPECT_TRUE(result.empty()); } /** * @tc.number: AaFwk_Ability_Context_InitResourceManager_0100 * @tc.name: InitResourceManager * @tc.desc: Verify that function InitResourceManager. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_InitResourceManager_0100, Function | MediumTest | Level1) { BundleInfo bundleInfo; std::shared_ptr deal = nullptr; context_->InitResourceManager(bundleInfo, deal); EXPECT_TRUE(deal == nullptr); } /** * @tc.number: AaFwk_Ability_Context_GetString_0100 * @tc.name: GetString * @tc.desc: Verify that function GetString. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetString_0100, Function | MediumTest | Level1) { int32_t resId = 1; auto result = context_->GetString(resId); EXPECT_EQ(result, ""); } /** * @tc.number: AaFwk_Ability_Context_GetStringArray_0100 * @tc.name: GetStringArray * @tc.desc: Verify that function GetStringArray. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetStringArray_0100, Function | MediumTest | Level1) { int32_t resId = 1; auto result = context_->GetStringArray(resId); EXPECT_TRUE(result.empty()); } /** * @tc.number: AaFwk_Ability_Context_GetIntArray_0100 * @tc.name: GetIntArray * @tc.desc: Verify that function GetIntArray. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetIntArray_0100, Function | MediumTest | Level1) { int32_t resId = 1; auto result = context_->GetIntArray(resId); EXPECT_TRUE(result.empty()); } /** * @tc.number: AaFwk_Ability_Context_GetTheme_0100 * @tc.name: GetTheme * @tc.desc: Verify that function GetTheme. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetTheme_0100, Function | MediumTest | Level1) { auto result = context_->GetTheme(); EXPECT_TRUE(result.empty()); } /** * @tc.number: AaFwk_Ability_Context_GetPattern_0100 * @tc.name: GetPattern * @tc.desc: Verify that function GetPattern. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetPattern_0100, Function | MediumTest | Level1) { auto result = context_->GetPattern(); EXPECT_TRUE(result.empty()); } /** * @tc.number: AaFwk_Ability_Context_GetColor_0100 * @tc.name: GetColor * @tc.desc: Verify that function GetColor. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetColor_0100, Function | MediumTest | Level1) { int32_t resId = 1; auto result = context_->GetColor(resId); EXPECT_EQ(result, INVALID_RESOURCE_VALUE); } /** * @tc.number: AaFwk_Ability_Context_GetThemeId_0100 * @tc.name: GetThemeId * @tc.desc: Verify that function GetThemeId. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetThemeId_0100, Function | MediumTest | Level1) { auto result = context_->GetThemeId(); EXPECT_EQ(result, -1); } /** * @tc.number: AaFwk_Ability_Context_GetDisplayOrientation_0100 * @tc.name: GetDisplayOrientation * @tc.desc: Verify that function GetDisplayOrientation. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetDisplayOrientation_0100, Function | MediumTest | Level1) { auto result = context_->GetDisplayOrientation(); EXPECT_EQ(result, 0); } /** * @tc.number: AaFwk_Ability_Context_GetPreferencesDir_0100 * @tc.name: GetPreferencesDir * @tc.desc: Verify that function GetPreferencesDir. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetPreferencesDir_0100, Function | MediumTest | Level1) { auto result = context_->GetPreferencesDir(); EXPECT_EQ(result, ""); } /** * @tc.number: AaFwk_Ability_Context_SetColorMode_0100 * @tc.name: SetColorMode and GetColorMode * @tc.desc: Verify that function SetColorMode and GetColorMode. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_SetColorMode_0100, Function | MediumTest | Level1) { std::shared_ptr application = std::make_shared(); sptr abilityToken = sptr(new AbilityRuntime::FAAbilityThread()); std::shared_ptr abilityInfo = std::make_shared(); auto abilityRecord = std::make_shared(abilityInfo, abilityToken, nullptr, 0); AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr); std::shared_ptr deal = std::make_shared(); deal->SetAbilityInfo(abilityInfo); context_->AttachBaseContext(deal); int32_t mode = 1; context_->SetColorMode(mode); auto result = context_->GetColorMode(); EXPECT_EQ(result, 1); EXPECT_TRUE(context_->baseContext_ != nullptr); } /** * @tc.number: AaFwk_Ability_Context_GetMissionId_0100 * @tc.name: GetMissionId * @tc.desc: Verify that function GetMissionId. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_GetMissionId_0100, Function | MediumTest | Level1) { auto result = context_->GetMissionId(); EXPECT_EQ(result, -1); } /** * @tc.number: AaFwk_Ability_Context_IsUpdatingConfigurations_0100 * @tc.name: IsUpdatingConfigurations * @tc.desc: Verify that function IsUpdatingConfigurations. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_IsUpdatingConfigurations_0100, Function | MediumTest | Level1) { auto result = context_->IsUpdatingConfigurations(); EXPECT_FALSE(result); } /** * @tc.number: AaFwk_Ability_Context_PrintDrawnCompleted_0100 * @tc.name: PrintDrawnCompleted * @tc.desc: Verify that function PrintDrawnCompleted. */ HWTEST_F(AbilityContextTest, AaFwk_Ability_Context_PrintDrawnCompleted_0100, Function | MediumTest | Level1) { auto result = context_->PrintDrawnCompleted(); EXPECT_FALSE(result); } } // namespace AppExecFwk } // namespace OHOS