* 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 <gtest/gtest.h>
#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;
public:
std::unique_ptr<AbilityContext> context_ = nullptr;
};
void AbilityContextTest::SetUpTestCase(void)
{
OHOS::sptr<OHOS::IRemoteObject> abilityObject = new (std::nothrow) MockServiceAbilityManagerService();
auto sysMgr = OHOS::DelayedSingleton<SysMrgClient>::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<AbilityContext>();
}
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<OHOSApplication> application = std::make_shared<OHOSApplication>();
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
abilityInfo->type = AppExecFwk::AbilityType::SERVICE;
abilityInfo->name = "DemoAbility";
auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
std::shared_ptr<ContextDeal> deal = std::make_shared<ContextDeal>();
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<OHOSApplication> application = std::make_shared<OHOSApplication>();
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
abilityInfo->type = AppExecFwk::AbilityType::SERVICE;
abilityInfo->name = "DemoAbility";
auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
std::shared_ptr<ContextDeal> deal = std::make_shared<ContextDeal>();
deal->SetAbilityInfo(abilityInfo);
context_->AttachBaseContext(deal);
Want want;
context_->ConnectAbility(want, nullptr);
context_->DisconnectAbility(nullptr);
EXPECT_TRUE(context_ != 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<OHOSApplication> application = std::make_shared<OHOSApplication>();
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
abilityInfo->type = AppExecFwk::AbilityType::SERVICE;
abilityInfo->name = "DemoAbility";
auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
Want want;
context_->StartAbility(want, -1);
EXPECT_TRUE(context_ != nullptr);
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<OHOSApplication> application = std::make_shared<OHOSApplication>();
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
abilityInfo->type = AppExecFwk::AbilityType::SERVICE;
abilityInfo->name = "DemoAbility";
auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
Want want;
context_->StartAbility(want, -1);
usleep(AbilityContextTest::TEST_WAIT_TIME);
std::shared_ptr<ContextDeal> deal = std::make_shared<ContextDeal>();
deal->SetAbilityInfo(abilityInfo);
context_->AttachBaseContext(deal);
context_->TerminateAbility();
EXPECT_TRUE(context_ != nullptr);
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<OHOSApplication> application = std::make_shared<OHOSApplication>();
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
abilityInfo->type = AppExecFwk::AbilityType::SERVICE;
abilityInfo->name = "DemoAbility";
auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
std::shared_ptr<ContextDeal> deal = std::make_shared<ContextDeal>();
deal->SetAbilityInfo(abilityInfo);
context_->AttachBaseContext(deal);
context_->TerminateAbility();
EXPECT_TRUE(context_ != nullptr);
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<OHOSApplication> application = std::make_shared<OHOSApplication>();
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
abilityInfo->type = AppExecFwk::AbilityType::SERVICE;
abilityInfo->name = "DemoAbility";
auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
std::shared_ptr<ContextDeal> deal = std::make_shared<ContextDeal>();
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<OHOSApplication> application = std::make_shared<OHOSApplication>();
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
abilityInfo->type = AppExecFwk::AbilityType::SERVICE;
abilityInfo->name = "DemoAbility";
auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
std::shared_ptr<ContextDeal> deal = std::make_shared<ContextDeal>();
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> abilityInfo = std::make_shared<AbilityInfo>();
std::shared_ptr<ContextDeal> deal = std::make_shared<ContextDeal>();
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<OHOSApplication> application = std::make_shared<OHOSApplication>();
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
abilityInfo->type = AppExecFwk::AbilityType::DATA;
abilityInfo->name = "DemoAbility";
auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
std::shared_ptr<ContextDeal> deal = std::make_shared<ContextDeal>();
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<OHOSApplication> application = std::make_shared<OHOSApplication>();
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
abilityInfo->type = AppExecFwk::AbilityType::DATA;
abilityInfo->name = "DemoAbility";
auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
std::shared_ptr<ContextDeal> deal = std::make_shared<ContextDeal>();
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<OHOSApplication> application = std::make_shared<OHOSApplication>();
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
abilityInfo->type = AppExecFwk::AbilityType::SERVICE;
abilityInfo->name = "DemoAbility";
auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
std::shared_ptr<ContextDeal> deal = std::make_shared<ContextDeal>();
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<OHOSApplication> application = std::make_shared<OHOSApplication>();
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
abilityInfo->type = AppExecFwk::AbilityType::SERVICE;
abilityInfo->name = "DemoAbility";
auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
std::shared_ptr<ContextDeal> deal = std::make_shared<ContextDeal>();
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<OHOSApplication> application = std::make_shared<OHOSApplication>();
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
abilityInfo->type = AppExecFwk::AbilityType::SERVICE;
abilityInfo->name = "DemoAbility";
auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
std::shared_ptr<ContextDeal> deal = std::make_shared<ContextDeal>();
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<std::string> permissions;
std::vector<int> 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<std::string> permissions;
permissions.emplace_back("a");
std::vector<int> 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<ContextDeal> 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<OHOSApplication> application = std::make_shared<OHOSApplication>();
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
std::shared_ptr<ContextDeal> deal = std::make_shared<ContextDeal>();
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);
}
}
}