mirror of
https://github.com/openharmony/ability_ability_runtime.git
synced 2026-08-24 22:21:36 -04:00
867e3983ae
Signed-off-by: huangshiwei <huangshiwei4@huawei.com>
1187 lines
52 KiB
C++
1187 lines
52 KiB
C++
/*
|
|
* 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 <climits>
|
|
#include <gtest/gtest.h>
|
|
|
|
#include "ability_impl_factory.h"
|
|
#include "ability_loader.h"
|
|
#include "ability_local_record.h"
|
|
#include "context_deal.h"
|
|
#include "data_ability_helper.h"
|
|
#include "ability_manager_client.h"
|
|
#include "ability_manager_interface.h"
|
|
#include "demo_ability_test.h"
|
|
#include "fa_ability_thread.h"
|
|
#include "mock_ability_manager_service.h"
|
|
#include "mock_bundle_manager.h"
|
|
#include "ohos_application.h"
|
|
#include "sys_mgr_client.h"
|
|
#include "system_ability_definition.h"
|
|
|
|
namespace OHOS {
|
|
namespace AppExecFwk {
|
|
using namespace testing::ext;
|
|
using namespace OHOS;
|
|
using namespace AAFwk;
|
|
using OHOS::AppExecFwk::ElementName;
|
|
using namespace OHOS::AppExecFwk;
|
|
/*
|
|
* Parameters:
|
|
* Action
|
|
* Entity
|
|
* Flag
|
|
* ElementName
|
|
*/
|
|
const std::string ABILITY_NAME("DemoAbility");
|
|
class AbilityBaseTest : public testing::Test {
|
|
public:
|
|
static void SetUpTestCase(void);
|
|
static void TearDownTestCase(void);
|
|
void SetUp();
|
|
void TearDown();
|
|
OHOS::sptr<OHOS::IRemoteObject> abilityObject_;
|
|
static constexpr int TEST_WAIT_TIME = 500 * 1000; // 500 ms
|
|
static const int RESULT_CODE = 1992;
|
|
};
|
|
|
|
void AbilityBaseTest::SetUpTestCase(void)
|
|
{}
|
|
|
|
void AbilityBaseTest::TearDownTestCase(void)
|
|
{}
|
|
|
|
void AbilityBaseTest::SetUp(void)
|
|
{
|
|
abilityObject_ = new MockAbilityManagerService();
|
|
auto sysMgr = OHOS::DelayedSingleton<AppExecFwk::SysMrgClient>::GetInstance();
|
|
EXPECT_TRUE(sysMgr != nullptr);
|
|
sysMgr->RegisterSystemAbility(OHOS::ABILITY_MGR_SERVICE_ID, abilityObject_);
|
|
sysMgr->RegisterSystemAbility(OHOS::BUNDLE_MGR_SERVICE_SYS_ABILITY_ID, new BundleMgrService());
|
|
}
|
|
|
|
void AbilityBaseTest::TearDown(void)
|
|
{
|
|
abilityObject_ = nullptr;
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_Ability_AbilityFwk_Start_Test_0100
|
|
* @tc.name: AbilityFwk Start
|
|
* @tc.desc: The first step of startability is the attach AMS.
|
|
*/
|
|
HWTEST_F(AbilityBaseTest, AaFwk_Ability_AbilityFwk_Start_Test_0100, Function | MediumTest | Level1)
|
|
{
|
|
std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
|
|
|
|
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
|
|
EXPECT_NE(abilityToken, nullptr);
|
|
if (abilityToken != nullptr) {
|
|
std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
|
|
abilityInfo->type = AppExecFwk::AbilityType::PAGE;
|
|
abilityInfo->name = ABILITY_NAME;
|
|
abilityInfo->isNativeAbility = true;
|
|
auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
|
|
|
|
AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
|
|
usleep(AbilityBaseTest::TEST_WAIT_TIME);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_Ability_AbilityFwk_Start_Test_0200
|
|
* @tc.name: AbilityFwk Start
|
|
* @tc.desc: When connecting AMS,the instance of application is empty.
|
|
*/
|
|
HWTEST_F(AbilityBaseTest, AaFwk_Ability_AbilityFwk_Start_Test_0200, Function | MediumTest | Level1)
|
|
{
|
|
std::shared_ptr<OHOSApplication> application = nullptr;
|
|
|
|
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
|
|
EXPECT_NE(abilityToken, nullptr);
|
|
if (abilityToken != nullptr) {
|
|
std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
|
|
abilityInfo->type = AppExecFwk::AbilityType::PAGE;
|
|
abilityInfo->name = ABILITY_NAME;
|
|
abilityInfo->isNativeAbility = true;
|
|
auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
|
|
|
|
AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
|
|
usleep(AbilityBaseTest::TEST_WAIT_TIME);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_Ability_AbilityFwk_Start_Test_0300
|
|
* @tc.name: AbilityFwk Start
|
|
* @tc.desc: When connecting AMS,the instance of abilityRecord is empty
|
|
*/
|
|
HWTEST_F(AbilityBaseTest, AaFwk_Ability_AbilityFwk_Start_Test_0300, Function | MediumTest | Level1)
|
|
{
|
|
std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
|
|
|
|
std::shared_ptr<AbilityLocalRecord> abilityRecord = nullptr;
|
|
|
|
AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
|
|
EXPECT_NE(application, nullptr);
|
|
usleep(AbilityBaseTest::TEST_WAIT_TIME);
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_Ability_AbilityFwk_Start_Test_0400
|
|
* @tc.name: AbilityFwk Start
|
|
* @tc.desc: The ability name is empty, so the ability instance cannot be created.
|
|
*/
|
|
HWTEST_F(AbilityBaseTest, AaFwk_Ability_AbilityFwk_Start_Test_0400, Function | MediumTest | Level1)
|
|
{
|
|
std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
|
|
|
|
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
|
|
EXPECT_NE(abilityToken, nullptr);
|
|
if (abilityToken != nullptr) {
|
|
std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
|
|
abilityInfo->type = AppExecFwk::AbilityType::PAGE;
|
|
auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
|
|
|
|
AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
|
|
usleep(AbilityBaseTest::TEST_WAIT_TIME);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_Ability_AbilityFwk_Start_Test_0500
|
|
* @tc.name: AbilityFwk Start
|
|
* @tc.desc: The ability type is unknown, so the AbilityImpl instance cannot be created.
|
|
*/
|
|
HWTEST_F(AbilityBaseTest, AaFwk_Ability_AbilityFwk_Start_Test_0500, Function | MediumTest | Level1)
|
|
{
|
|
std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
|
|
|
|
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
|
|
EXPECT_NE(abilityToken, nullptr);
|
|
if (abilityToken != nullptr) {
|
|
std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
|
|
abilityInfo->name = ABILITY_NAME;
|
|
abilityInfo->isNativeAbility = true;
|
|
auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
|
|
|
|
AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
|
|
usleep(AbilityBaseTest::TEST_WAIT_TIME);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_Ability_AbilityFwk_Start_Test_0600
|
|
* @tc.name: AbilityFwk Start
|
|
* @tc.desc: The interface OnSaveAbilityState()/OnRestoreAbilityState() of demoability was called.
|
|
*/
|
|
HWTEST_F(AbilityBaseTest, AaFwk_Ability_AbilityFwk_Start_Test_0600, Function | MediumTest | Level1)
|
|
{
|
|
std::shared_ptr<ContextDeal> contextDeal = std::make_shared<ContextDeal>();
|
|
std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
|
|
std::shared_ptr<ApplicationInfo> appInfo = std::make_shared<ApplicationInfo>();
|
|
std::shared_ptr<ProcessInfo> processInfo = std::make_shared<ProcessInfo>();
|
|
|
|
appInfo->codePath = "codePath";
|
|
appInfo->dataBaseDir = "dataBaseDir";
|
|
appInfo->dataDir = "dataDir";
|
|
appInfo->cacheDir = "cacheDir";
|
|
appInfo->bundleName = "bundleName";
|
|
|
|
application->SetProcessInfo(processInfo);
|
|
contextDeal->SetApplicationInfo(appInfo);
|
|
contextDeal->SetApplicationContext(application);
|
|
application->AttachBaseContext(contextDeal);
|
|
|
|
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
|
|
EXPECT_NE(abilityToken, nullptr);
|
|
if (abilityToken != nullptr) {
|
|
std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
|
|
abilityInfo->codePath = "codePath";
|
|
abilityInfo->resourcePath = "resourcePath";
|
|
|
|
abilityInfo->type = AppExecFwk::AbilityType::PAGE;
|
|
abilityInfo->name = ABILITY_NAME;
|
|
abilityInfo->isNativeAbility = true;
|
|
auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
|
|
|
|
AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
|
|
|
|
sptr<IRemoteObject> remoteObject_ =
|
|
OHOS::DelayedSingleton<AppExecFwk::SysMrgClient>::GetInstance()->GetSystemAbility(ABILITY_MGR_SERVICE_ID);
|
|
sptr<AAFwk::IAbilityManager> abms = iface_cast<AAFwk::IAbilityManager>(remoteObject_);
|
|
Want want;
|
|
sptr<IAbilityConnection> connect = nullptr;
|
|
|
|
// Just to test two interfaces OnRestoreAbilityState/OnSaveAbilityState
|
|
abms->ConnectAbility(want, connect, abilityToken);
|
|
usleep(AbilityBaseTest::TEST_WAIT_TIME);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_Ability_Lifecycle_Test_0100
|
|
* @tc.name: Ability Lifecycle
|
|
* @tc.desc: The ability life cycle will change from initial state initial to inactive by calling the interface
|
|
* OnnStart(), and then to active by calling OnActive().
|
|
*/
|
|
HWTEST_F(AbilityBaseTest, AaFwk_Ability_Lifecycle_Test_0100, Function | MediumTest | Level1)
|
|
{
|
|
std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
|
|
|
|
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
|
|
EXPECT_NE(abilityToken, nullptr);
|
|
if (abilityToken != nullptr) {
|
|
std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
|
|
abilityInfo->type = AppExecFwk::AbilityType::PAGE;
|
|
abilityInfo->name = ABILITY_NAME;
|
|
abilityInfo->isNativeAbility = true;
|
|
auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
|
|
|
|
AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
|
|
|
|
sptr<IRemoteObject> remoteObject_ =
|
|
OHOS::DelayedSingleton<AppExecFwk::SysMrgClient>::GetInstance()->GetSystemAbility(ABILITY_MGR_SERVICE_ID);
|
|
sptr<AAFwk::IAbilityManager> abms = iface_cast<AAFwk::IAbilityManager>(remoteObject_);
|
|
Want want;
|
|
abms->StartAbility(want, AbilityLifeCycleState::ABILITY_STATE_ACTIVE);
|
|
usleep(AbilityBaseTest::TEST_WAIT_TIME);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_Ability_AbilityFwk_Lifecycle_Test_0200
|
|
* @tc.name: Ability Lifecycle
|
|
* @tc.desc: The ability life cycle will change from initial state initial to inactive by calling the interface
|
|
* OnnStart(), and then to active by calling OnNewWant()+OnActive().
|
|
*/
|
|
HWTEST_F(AbilityBaseTest, AaFwk_Ability_AbilityFwk_Lifecycle_Test_0200, Function | MediumTest | Level1)
|
|
{
|
|
std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
|
|
|
|
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
|
|
EXPECT_NE(abilityToken, nullptr);
|
|
if (abilityToken != nullptr) {
|
|
std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
|
|
abilityInfo->type = AppExecFwk::AbilityType::PAGE;
|
|
abilityInfo->name = ABILITY_NAME;
|
|
abilityInfo->isNativeAbility = true;
|
|
auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
|
|
|
|
AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
|
|
|
|
sptr<IRemoteObject> remoteObject_ =
|
|
OHOS::DelayedSingleton<AppExecFwk::SysMrgClient>::GetInstance()->GetSystemAbility(ABILITY_MGR_SERVICE_ID);
|
|
sptr<AAFwk::IAbilityManager> abms = iface_cast<AAFwk::IAbilityManager>(remoteObject_);
|
|
|
|
abms->DisconnectAbility(nullptr);
|
|
usleep(AbilityBaseTest::TEST_WAIT_TIME);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_Ability_AbilityFwk_Lifecycle_Test_0300
|
|
* @tc.name: Ability Lifecycle
|
|
* @tc.desc: Ability life cycle changes: initial - > active - > background, the interface of demoability will be
|
|
called:
|
|
* OnStart()->OnActive()->OnInactive()->OnBackground().
|
|
*/
|
|
HWTEST_F(AbilityBaseTest, AaFwk_Ability_AbilityFwk_Lifecycle_Test_0300, Function | MediumTest | Level1)
|
|
{
|
|
std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
|
|
|
|
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
|
|
EXPECT_NE(abilityToken, nullptr);
|
|
if (abilityToken != nullptr) {
|
|
std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
|
|
abilityInfo->type = AppExecFwk::AbilityType::PAGE;
|
|
abilityInfo->name = ABILITY_NAME;
|
|
abilityInfo->isNativeAbility = true;
|
|
auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
|
|
|
|
AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
|
|
|
|
sptr<IRemoteObject> remoteObject_ =
|
|
OHOS::DelayedSingleton<AppExecFwk::SysMrgClient>::GetInstance()->GetSystemAbility(ABILITY_MGR_SERVICE_ID);
|
|
sptr<AAFwk::IAbilityManager> abms = iface_cast<AAFwk::IAbilityManager>(remoteObject_);
|
|
Want want;
|
|
|
|
abms->StartAbility(want, AbilityLifeCycleState::ABILITY_STATE_ACTIVE);
|
|
usleep(AbilityBaseTest::TEST_WAIT_TIME);
|
|
abms->StartAbility(want, AbilityLifeCycleState::ABILITY_STATE_BACKGROUND);
|
|
usleep(AbilityBaseTest::TEST_WAIT_TIME);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_Ability_AbilityFwk_Lifecycle_Test_0400
|
|
* @tc.name: Ability Lifecycle
|
|
* @tc.desc: Ability life cycle changes: initial - > active - > inactive, the interface of demoability will be
|
|
called:
|
|
* OnStart()->OnActive()->OnInactive().
|
|
*/
|
|
HWTEST_F(AbilityBaseTest, AaFwk_Ability_AbilityFwk_Lifecycle_Test_0400, Function | MediumTest | Level1)
|
|
{
|
|
std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
|
|
|
|
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
|
|
EXPECT_NE(abilityToken, nullptr);
|
|
if (abilityToken != nullptr) {
|
|
std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
|
|
abilityInfo->type = AppExecFwk::AbilityType::PAGE;
|
|
abilityInfo->name = ABILITY_NAME;
|
|
abilityInfo->isNativeAbility = true;
|
|
auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
|
|
|
|
AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
|
|
|
|
sptr<IRemoteObject> remoteObject_ =
|
|
OHOS::DelayedSingleton<AppExecFwk::SysMrgClient>::GetInstance()->GetSystemAbility(ABILITY_MGR_SERVICE_ID);
|
|
sptr<AAFwk::IAbilityManager> abms = iface_cast<AAFwk::IAbilityManager>(remoteObject_);
|
|
Want want;
|
|
|
|
abms->StartAbility(want, AbilityLifeCycleState::ABILITY_STATE_ACTIVE);
|
|
usleep(AbilityBaseTest::TEST_WAIT_TIME);
|
|
abms->StartAbility(want, AbilityLifeCycleState::ABILITY_STATE_INACTIVE);
|
|
usleep(AbilityBaseTest::TEST_WAIT_TIME);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_Ability_AbilityFwk_Lifecycle_Test_0500
|
|
* @tc.name: Ability Lifecycle
|
|
* @tc.desc: Ability life cycle changes: initial - > active , the interface of demoability will be called:
|
|
* OnStart()->OnActive()->OnInactive()->OnBackground()->OnForeground().
|
|
*/
|
|
HWTEST_F(AbilityBaseTest, AaFwk_Ability_AbilityFwk_Lifecycle_Test_0500, Function | MediumTest | Level1)
|
|
{
|
|
std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
|
|
|
|
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
|
|
EXPECT_NE(abilityToken, nullptr);
|
|
if (abilityToken != nullptr) {
|
|
std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
|
|
abilityInfo->type = AppExecFwk::AbilityType::PAGE;
|
|
abilityInfo->name = ABILITY_NAME;
|
|
abilityInfo->isNativeAbility = true;
|
|
auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
|
|
|
|
AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
|
|
|
|
sptr<IRemoteObject> remoteObject_ =
|
|
OHOS::DelayedSingleton<AppExecFwk::SysMrgClient>::GetInstance()->GetSystemAbility(ABILITY_MGR_SERVICE_ID);
|
|
sptr<AAFwk::IAbilityManager> abms = iface_cast<AAFwk::IAbilityManager>(remoteObject_);
|
|
Want want;
|
|
|
|
abms->StartAbility(want, AbilityLifeCycleState::ABILITY_STATE_ACTIVE);
|
|
usleep(AbilityBaseTest::TEST_WAIT_TIME);
|
|
abms->StartAbility(want, AbilityLifeCycleState::ABILITY_STATE_BACKGROUND);
|
|
usleep(AbilityBaseTest::TEST_WAIT_TIME);
|
|
abms->StartAbility(want, AbilityLifeCycleState::ABILITY_STATE_INACTIVE);
|
|
usleep(AbilityBaseTest::TEST_WAIT_TIME);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_Ability_AbilityFwk_Lifecycle_Test_0600
|
|
* @tc.name: Ability Lifecycle
|
|
* @tc.desc: Ability life cycle changes: initial - > active , the interface of demoability will be called:
|
|
* OnStart()->OnActive()->OnInactive()->OnBackground()->OnStop().
|
|
*/
|
|
HWTEST_F(AbilityBaseTest, AaFwk_Ability_AbilityFwk_Lifecycle_Test_0600, Function | MediumTest | Level1)
|
|
{
|
|
std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
|
|
|
|
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
|
|
EXPECT_NE(abilityToken, nullptr);
|
|
if (abilityToken != nullptr) {
|
|
std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
|
|
abilityInfo->type = AppExecFwk::AbilityType::PAGE;
|
|
abilityInfo->name = ABILITY_NAME;
|
|
abilityInfo->isNativeAbility = true;
|
|
auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
|
|
|
|
AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
|
|
|
|
sptr<IRemoteObject> remoteObject_ =
|
|
OHOS::DelayedSingleton<AppExecFwk::SysMrgClient>::GetInstance()->GetSystemAbility(ABILITY_MGR_SERVICE_ID);
|
|
sptr<AAFwk::IAbilityManager> abms = iface_cast<AAFwk::IAbilityManager>(remoteObject_);
|
|
Want want;
|
|
|
|
abms->StartAbility(want, AbilityLifeCycleState::ABILITY_STATE_ACTIVE);
|
|
usleep(AbilityBaseTest::TEST_WAIT_TIME);
|
|
abms->StartAbility(want, AbilityLifeCycleState::ABILITY_STATE_BACKGROUND);
|
|
usleep(AbilityBaseTest::TEST_WAIT_TIME);
|
|
abms->StartAbility(want, AbilityLifeCycleState::ABILITY_STATE_INITIAL);
|
|
usleep(AbilityBaseTest::TEST_WAIT_TIME);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_Ability_TerminateAbility_ForResult_Test_0100
|
|
* @tc.name: TerminateAbility_ForResult
|
|
* @tc.desc: 1. TerminateAbility with parameters
|
|
* 2. AMS returns parameters through sendresult
|
|
* 3. Compare the returned parameters with the passed in parameters.
|
|
*/
|
|
HWTEST_F(AbilityBaseTest, AaFwk_Ability_TerminateAbility_ForResult_Test_0100, Function | MediumTest | Level1)
|
|
{
|
|
std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
|
|
|
|
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
|
|
EXPECT_NE(abilityToken, nullptr);
|
|
if (abilityToken != nullptr) {
|
|
std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
|
|
abilityInfo->type = AppExecFwk::AbilityType::PAGE;
|
|
abilityInfo->name = ABILITY_NAME;
|
|
abilityInfo->isNativeAbility = true;
|
|
auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
|
|
|
|
AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
|
|
|
|
sptr<IRemoteObject> remoteObject_ =
|
|
OHOS::DelayedSingleton<AppExecFwk::SysMrgClient>::GetInstance()->GetSystemAbility(ABILITY_MGR_SERVICE_ID);
|
|
sptr<AAFwk::IAbilityManager> abms = iface_cast<AAFwk::IAbilityManager>(remoteObject_);
|
|
Want want;
|
|
sptr<IAbilityConnection> connect = nullptr;
|
|
|
|
abms->TerminateAbility(nullptr, RESULT_CODE, &want);
|
|
usleep(AbilityBaseTest::TEST_WAIT_TIME);
|
|
}
|
|
}
|
|
|
|
/*
|
|
* Parameters:
|
|
* Action
|
|
* Entity
|
|
* Flag
|
|
* ElementName
|
|
*/
|
|
class AbilityTerminateTest : public testing::Test {
|
|
public:
|
|
static void SetUpTestCase(void);
|
|
static void TearDownTestCase(void);
|
|
void SetUp();
|
|
void TearDown();
|
|
|
|
public:
|
|
OHOS::sptr<OHOS::IRemoteObject> abilityObject_;
|
|
static constexpr int TEST_WAIT_TIME = 500 * 1000; // 500 ms
|
|
static const int RESULT_CODE = 1992;
|
|
};
|
|
|
|
void AbilityTerminateTest::SetUpTestCase(void)
|
|
{}
|
|
|
|
void AbilityTerminateTest::TearDownTestCase(void)
|
|
{}
|
|
|
|
void AbilityTerminateTest::SetUp(void)
|
|
{
|
|
abilityObject_ = new MockAbilityManagerService();
|
|
auto sysMgr = OHOS::DelayedSingleton<AppExecFwk::SysMrgClient>::GetInstance();
|
|
EXPECT_TRUE(sysMgr != nullptr);
|
|
sysMgr->RegisterSystemAbility(OHOS::ABILITY_MGR_SERVICE_ID, abilityObject_);
|
|
}
|
|
|
|
void AbilityTerminateTest::TearDown(void)
|
|
{
|
|
abilityObject_ = nullptr;
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_Ability_Terminate_test_0100
|
|
* @tc.name: TerminateAbility
|
|
* @tc.desc: When the ability state is inactive, the call to terminateability terminates.
|
|
*/
|
|
HWTEST_F(AbilityTerminateTest, AaFwk_Ability_Terminate_test_0100, Function | MediumTest | Level1)
|
|
{
|
|
std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
|
|
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
|
|
EXPECT_NE(abilityToken, nullptr);
|
|
if (abilityToken != nullptr) {
|
|
std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
|
|
abilityInfo->type = AppExecFwk::AbilityType::PAGE;
|
|
abilityInfo->name = ABILITY_NAME;
|
|
abilityInfo->isNativeAbility = true;
|
|
auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
|
|
|
|
GTEST_LOG_(INFO) << "AaFwk_Ability_Terminate_test_001 AbilityThreadMain";
|
|
AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
|
|
|
|
Want want;
|
|
MockAbilityManagerService* mockAMS = iface_cast<MockAbilityManagerService>(abilityObject_);
|
|
mockAMS->StartAbility(want, AbilityLifeCycleState::ABILITY_STATE_INACTIVE);
|
|
usleep(AbilityTerminateTest::TEST_WAIT_TIME);
|
|
|
|
auto ability = AbilityLoader::GetInstance().GetAbilityByName(abilityInfo->name);
|
|
EXPECT_NE(ability, nullptr);
|
|
if (ability != nullptr) {
|
|
ability->SetResult(RESULT_CODE, want);
|
|
ability->TerminateAbility();
|
|
}
|
|
usleep(AbilityTerminateTest::TEST_WAIT_TIME);
|
|
}
|
|
GTEST_LOG_(INFO) << "AaFwk_Ability_Terminate_test_001 TerminateAbility";
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_Ability_Terminate_test_0200
|
|
* @tc.name: TerminateAbility
|
|
* @tc.desc: When the ability state is active, the call to terminateability terminates.
|
|
*/
|
|
HWTEST_F(AbilityTerminateTest, AaFwk_Ability_Terminate_test_0200, Function | MediumTest | Level1)
|
|
{
|
|
std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
|
|
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
|
|
EXPECT_NE(abilityToken, nullptr);
|
|
if (abilityToken != nullptr) {
|
|
std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
|
|
abilityInfo->type = AppExecFwk::AbilityType::PAGE;
|
|
abilityInfo->name = ABILITY_NAME;
|
|
abilityInfo->isNativeAbility = true;
|
|
auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
|
|
|
|
GTEST_LOG_(INFO) << "AaFwk_Ability_Terminate_test_002 AbilityThreadMain";
|
|
AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
|
|
|
|
Want want;
|
|
MockAbilityManagerService* mockAMS = iface_cast<MockAbilityManagerService>(abilityObject_);
|
|
mockAMS->StartAbility(want, AbilityLifeCycleState::ABILITY_STATE_ACTIVE);
|
|
usleep(AbilityTerminateTest::TEST_WAIT_TIME);
|
|
|
|
auto ability = AbilityLoader::GetInstance().GetAbilityByName(abilityInfo->name);
|
|
EXPECT_NE(ability, nullptr);
|
|
if (ability != nullptr) {
|
|
ability->SetResult(RESULT_CODE, want);
|
|
ability->TerminateAbility();
|
|
}
|
|
usleep(AbilityTerminateTest::TEST_WAIT_TIME);
|
|
}
|
|
GTEST_LOG_(INFO) << "AaFwk_Ability_Terminate_test_002 TerminateAbility";
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_Ability_Terminate_test_0300
|
|
* @tc.name: TerminateAbility
|
|
* @tc.desc: When the ability state is BACKGROUND, the call to terminateability terminates.
|
|
*/
|
|
HWTEST_F(AbilityTerminateTest, AaFwk_Ability_Terminate_test_0300, Function | MediumTest | Level1)
|
|
{
|
|
std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
|
|
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
|
|
EXPECT_NE(abilityToken, nullptr);
|
|
if (abilityToken != nullptr) {
|
|
std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
|
|
abilityInfo->type = AppExecFwk::AbilityType::PAGE;
|
|
abilityInfo->name = ABILITY_NAME;
|
|
abilityInfo->isNativeAbility = true;
|
|
auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
|
|
|
|
GTEST_LOG_(INFO) << "AaFwk_Ability_Terminate_test_0300 AbilityThreadMain";
|
|
AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
|
|
|
|
Want want;
|
|
MockAbilityManagerService* mockAMS = iface_cast<MockAbilityManagerService>(abilityObject_);
|
|
mockAMS->StartAbility(want, AbilityLifeCycleState::ABILITY_STATE_BACKGROUND);
|
|
usleep(AbilityTerminateTest::TEST_WAIT_TIME);
|
|
|
|
auto ability = AbilityLoader::GetInstance().GetAbilityByName(abilityInfo->name);
|
|
EXPECT_NE(ability, nullptr);
|
|
if (ability != nullptr) {
|
|
ability->SetResult(RESULT_CODE, want);
|
|
ability->TerminateAbility();
|
|
}
|
|
usleep(AbilityTerminateTest::TEST_WAIT_TIME);
|
|
}
|
|
GTEST_LOG_(INFO) << "AaFwk_Ability_Terminate_test_0300 TerminateAbility";
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_Ability_Terminate_test_0400
|
|
* @tc.name: TerminateAbility
|
|
* @tc.desc: When the ability state is ABILITY_STATE_INITIAL, the call to terminateability terminates.
|
|
*/
|
|
HWTEST_F(AbilityTerminateTest, AaFwk_Ability_Terminate_test_0400, Function | MediumTest | Level1)
|
|
{
|
|
std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
|
|
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
|
|
EXPECT_NE(abilityToken, nullptr);
|
|
if (abilityToken != nullptr) {
|
|
std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
|
|
abilityInfo->type = AppExecFwk::AbilityType::PAGE;
|
|
abilityInfo->name = ABILITY_NAME;
|
|
abilityInfo->isNativeAbility = true;
|
|
auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
|
|
|
|
GTEST_LOG_(INFO) << "AaFwk_Ability_Terminate_test_0400 AbilityThreadMain";
|
|
AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
|
|
|
|
Want want;
|
|
MockAbilityManagerService* mockAMS = iface_cast<MockAbilityManagerService>(abilityObject_);
|
|
mockAMS->StartAbility(want, AbilityLifeCycleState::ABILITY_STATE_INITIAL);
|
|
usleep(AbilityTerminateTest::TEST_WAIT_TIME);
|
|
|
|
auto ability = AbilityLoader::GetInstance().GetAbilityByName(abilityInfo->name);
|
|
EXPECT_NE(ability, nullptr);
|
|
if (ability != nullptr) {
|
|
ability->SetResult(RESULT_CODE, want);
|
|
ability->TerminateAbility();
|
|
}
|
|
usleep(AbilityTerminateTest::TEST_WAIT_TIME);
|
|
}
|
|
GTEST_LOG_(INFO) << "AaFwk_Ability_Terminate_test_0400 TerminateAbility";
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_Ability_Terminate_test_0500
|
|
* @tc.name: TerminateAbility
|
|
* @tc.desc: When the ability state is inactive, the call to terminateability terminates.
|
|
*/
|
|
HWTEST_F(AbilityTerminateTest, AaFwk_Ability_Terminate_test_0500, Function | MediumTest | Level1)
|
|
{
|
|
std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
|
|
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
|
|
EXPECT_NE(abilityToken, nullptr);
|
|
if (abilityToken != nullptr) {
|
|
std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
|
|
abilityInfo->type = AppExecFwk::AbilityType::PAGE;
|
|
abilityInfo->name = ABILITY_NAME;
|
|
abilityInfo->isNativeAbility = true;
|
|
auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
|
|
|
|
GTEST_LOG_(INFO) << "AaFwk_Ability_Terminate_test_005 AbilityThreadMain";
|
|
AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
|
|
|
|
Want want;
|
|
MockAbilityManagerService* mockAMS = iface_cast<MockAbilityManagerService>(abilityObject_);
|
|
mockAMS->StartAbility(want, AbilityLifeCycleState::ABILITY_STATE_INACTIVE);
|
|
usleep(AbilityTerminateTest::TEST_WAIT_TIME);
|
|
|
|
mockAMS->TerminateAbility(nullptr, RESULT_CODE, &want);
|
|
usleep(AbilityTerminateTest::TEST_WAIT_TIME);
|
|
}
|
|
GTEST_LOG_(INFO) << "AaFwk_Ability_Terminate_test_005 TerminateAbility";
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_Ability_Terminate_test_0600
|
|
* @tc.name: TerminateAbility
|
|
* @tc.desc: When the ability state is active, the call to terminateability terminates.
|
|
*/
|
|
HWTEST_F(AbilityTerminateTest, AaFwk_Ability_Terminate_test_0600, Function | MediumTest | Level1)
|
|
{
|
|
std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
|
|
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
|
|
EXPECT_NE(abilityToken, nullptr);
|
|
if (abilityToken != nullptr) {
|
|
std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
|
|
abilityInfo->type = AppExecFwk::AbilityType::PAGE;
|
|
abilityInfo->name = ABILITY_NAME;
|
|
abilityInfo->isNativeAbility = true;
|
|
auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
|
|
|
|
GTEST_LOG_(INFO) << "AaFwk_Ability_Terminate_test_006 AbilityThreadMain";
|
|
AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
|
|
|
|
Want want;
|
|
MockAbilityManagerService* mockAMS = iface_cast<MockAbilityManagerService>(abilityObject_);
|
|
mockAMS->StartAbility(want, AbilityLifeCycleState::ABILITY_STATE_ACTIVE);
|
|
usleep(AbilityTerminateTest::TEST_WAIT_TIME);
|
|
|
|
mockAMS->TerminateAbility(nullptr, RESULT_CODE, &want);
|
|
usleep(AbilityTerminateTest::TEST_WAIT_TIME);
|
|
}
|
|
GTEST_LOG_(INFO) << "AaFwk_Ability_Terminate_test_006 TerminateAbility";
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_Ability_Terminate_test_0700
|
|
* @tc.name: TerminateAbility
|
|
* @tc.desc: When the ability state is background, the call to terminateability terminates.
|
|
*/
|
|
HWTEST_F(AbilityTerminateTest, AaFwk_Ability_Terminate_test_0700, Function | MediumTest | Level1)
|
|
{
|
|
std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
|
|
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
|
|
EXPECT_NE(abilityToken, nullptr);
|
|
if (abilityToken != nullptr) {
|
|
std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
|
|
abilityInfo->type = AppExecFwk::AbilityType::PAGE;
|
|
abilityInfo->name = ABILITY_NAME;
|
|
abilityInfo->isNativeAbility = true;
|
|
auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
|
|
|
|
GTEST_LOG_(INFO) << "AaFwk_Ability_Terminate_test_007 AbilityThreadMain";
|
|
AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
|
|
|
|
Want want;
|
|
MockAbilityManagerService* mockAMS = iface_cast<MockAbilityManagerService>(abilityObject_);
|
|
mockAMS->StartAbility(want, AbilityLifeCycleState::ABILITY_STATE_BACKGROUND);
|
|
usleep(AbilityTerminateTest::TEST_WAIT_TIME);
|
|
|
|
mockAMS->TerminateAbility(nullptr, RESULT_CODE, &want);
|
|
usleep(AbilityTerminateTest::TEST_WAIT_TIME);
|
|
}
|
|
GTEST_LOG_(INFO) << "AaFwk_Ability_Terminate_test_007 TerminateAbility";
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_Ability_Terminate_test_0800
|
|
* @tc.name: TerminateAbility
|
|
* @tc.desc: When the ability state is initial, the call to terminateability terminates.
|
|
*/
|
|
HWTEST_F(AbilityTerminateTest, AaFwk_Ability_Terminate_test_0800, Function | MediumTest | Level1)
|
|
{
|
|
std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
|
|
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
|
|
EXPECT_NE(abilityToken, nullptr);
|
|
if (abilityToken != nullptr) {
|
|
std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
|
|
abilityInfo->type = AppExecFwk::AbilityType::PAGE;
|
|
abilityInfo->name = ABILITY_NAME;
|
|
abilityInfo->isNativeAbility = true;
|
|
auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
|
|
|
|
GTEST_LOG_(INFO) << "AaFwk_Ability_Terminate_test_008 AbilityThreadMain";
|
|
AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
|
|
|
|
Want want;
|
|
MockAbilityManagerService* mockAMS = iface_cast<MockAbilityManagerService>(abilityObject_);
|
|
mockAMS->StartAbility(want, AbilityLifeCycleState::ABILITY_STATE_INITIAL);
|
|
usleep(AbilityTerminateTest::TEST_WAIT_TIME);
|
|
|
|
mockAMS->TerminateAbility(nullptr, RESULT_CODE, &want);
|
|
usleep(AbilityTerminateTest::TEST_WAIT_TIME);
|
|
}
|
|
GTEST_LOG_(INFO) << "AaFwk_Ability_Terminate_test_008 TerminateAbility";
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_WMS_window_test_0100
|
|
* @tc.name: WMS Link
|
|
* @tc.desc: Start pageability and call GetWindow to get the window handle.
|
|
*/
|
|
HWTEST_F(AbilityTerminateTest, AaFwk_WMS_window_test_0100, Function | MediumTest | Level1)
|
|
{
|
|
std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
|
|
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
|
|
EXPECT_NE(abilityToken, nullptr);
|
|
if (abilityToken != nullptr) {
|
|
std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
|
|
abilityInfo->type = AppExecFwk::AbilityType::PAGE;
|
|
abilityInfo->name = ABILITY_NAME;
|
|
abilityInfo->isNativeAbility = true;
|
|
auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
|
|
|
|
GTEST_LOG_(INFO) << "AaFwk_WMS_window_test_001 AbilityThreadMain";
|
|
AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
|
|
|
|
Want want;
|
|
MockAbilityManagerService* mockAMS = iface_cast<MockAbilityManagerService>(abilityObject_);
|
|
GTEST_LOG_(INFO) << "AaFwk_WMS_window_test_001 StartAbility";
|
|
mockAMS->StartAbility(want, AbilityLifeCycleState::ABILITY_STATE_ACTIVE);
|
|
usleep(AbilityTerminateTest::TEST_WAIT_TIME);
|
|
mockAMS->TerminateAbility(nullptr, RESULT_CODE, &want);
|
|
usleep(AbilityTerminateTest::TEST_WAIT_TIME);
|
|
}
|
|
GTEST_LOG_(INFO) << "AaFwk_WMS_window_test_001 TerminateAbility";
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_WMS_window_test_0200
|
|
* @tc.name: WMS Link
|
|
* @tc.desc: Pageability switches to the foreground and calls Window.show.
|
|
* Pageability switches to the background and calls Window.hide.
|
|
*/
|
|
HWTEST_F(AbilityTerminateTest, AaFwk_WMS_window_test_0200, Function | MediumTest | Level1)
|
|
{
|
|
std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
|
|
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
|
|
EXPECT_NE(abilityToken, nullptr);
|
|
if (abilityToken != nullptr) {
|
|
std::shared_ptr<AbilityInfo> abilityInfo = std::make_shared<AbilityInfo>();
|
|
abilityInfo->type = AppExecFwk::AbilityType::PAGE;
|
|
abilityInfo->name = ABILITY_NAME;
|
|
abilityInfo->isNativeAbility = true;
|
|
auto abilityRecord = std::make_shared<AbilityLocalRecord>(abilityInfo, abilityToken, nullptr, 0);
|
|
|
|
GTEST_LOG_(INFO) << "AaFwk_WMS_window_test_002 AbilityThreadMain";
|
|
AbilityThread::AbilityThreadMain(application, abilityRecord, nullptr);
|
|
|
|
Want want;
|
|
MockAbilityManagerService* mockAMS = iface_cast<MockAbilityManagerService>(abilityObject_);
|
|
mockAMS->StartAbility(want, AbilityLifeCycleState::ABILITY_STATE_BACKGROUND);
|
|
GTEST_LOG_(INFO) << "AaFwk_WMS_window_test_002 BackGround";
|
|
usleep(AbilityTerminateTest::TEST_WAIT_TIME);
|
|
mockAMS->StartAbility(want, AbilityLifeCycleState::ABILITY_STATE_ACTIVE);
|
|
GTEST_LOG_(INFO) << "AaFwk_WMS_window_test_002 Active";
|
|
usleep(AbilityTerminateTest::TEST_WAIT_TIME);
|
|
|
|
mockAMS->TerminateAbility(nullptr, RESULT_CODE, &want);
|
|
}
|
|
GTEST_LOG_(INFO) << "AaFwk_WMS_window_test_002 TerminateAbility";
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_DataAbility_Launch_0100
|
|
* @tc.name: DataAbilityHelper
|
|
* @tc.desc: The AbilityManager could receive the shelder of abilitythread for dataability when the dataability
|
|
* launched.
|
|
*/
|
|
HWTEST_F(AbilityTerminateTest, AaFwk_DataAbility_Launch_0100, Function | MediumTest | Level1)
|
|
{
|
|
GTEST_LOG_(INFO) << "AaFwk_DataAbility_Launch_0100";
|
|
|
|
std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
|
|
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
|
|
EXPECT_NE(abilityToken, nullptr);
|
|
if (abilityToken != nullptr) {
|
|
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);
|
|
|
|
sptr<IRemoteObject> remoteObject_ =
|
|
OHOS::DelayedSingleton<AppExecFwk::SysMrgClient>::GetInstance()->GetSystemAbility(ABILITY_MGR_SERVICE_ID);
|
|
sptr<AAFwk::IAbilityManager> abms = iface_cast<AAFwk::IAbilityManager>(remoteObject_);
|
|
|
|
Uri uri("testuri");
|
|
EXPECT_TRUE(abms->AcquireDataAbility(uri, false, nullptr) == nullptr);
|
|
}
|
|
GTEST_LOG_(INFO) << "AaFwk_DataAbility_Launch_0100";
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_DataAbility_Start_0100
|
|
* @tc.name: DataAbilityHelper
|
|
* @tc.desc: The AbilityManager could receive the inactive state from abilitythread for dataability when the
|
|
dataability
|
|
* change its lifecycle state to inactive.
|
|
*/
|
|
HWTEST_F(AbilityTerminateTest, AaFwk_DataAbility_Start_0100, Function | MediumTest | Level1)
|
|
{
|
|
GTEST_LOG_(INFO) << "AaFwk_DataAbility_Start_0100";
|
|
|
|
std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
|
|
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
|
|
EXPECT_NE(abilityToken, nullptr);
|
|
if (abilityToken != nullptr) {
|
|
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);
|
|
|
|
sptr<IRemoteObject> remoteObject_ =
|
|
OHOS::DelayedSingleton<AppExecFwk::SysMrgClient>::GetInstance()->GetSystemAbility(ABILITY_MGR_SERVICE_ID);
|
|
sptr<AAFwk::IAbilityManager> abms = iface_cast<AAFwk::IAbilityManager>(remoteObject_);
|
|
Want want;
|
|
abms->StartAbility(want, AbilityLifeCycleState::ABILITY_STATE_INACTIVE);
|
|
|
|
usleep(AbilityBaseTest::TEST_WAIT_TIME);
|
|
}
|
|
GTEST_LOG_(INFO) << "AaFwk_DataAbility_Start_0100";
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_DataAbility_Start_0200
|
|
* @tc.name: DataAbilityHelper
|
|
* @tc.desc: The AbilityManager could not receive the initial state from abilitythread for dataability.
|
|
* And the OnStop coulde be called. When the dataability change its lifecycle state to initial.
|
|
*/
|
|
HWTEST_F(AbilityTerminateTest, AaFwk_DataAbility_Start_0200, Function | MediumTest | Level1)
|
|
{
|
|
GTEST_LOG_(INFO) << "AaFwk_DataAbility_Start_0200";
|
|
|
|
std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
|
|
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
|
|
EXPECT_NE(abilityToken, nullptr);
|
|
if (abilityToken != nullptr) {
|
|
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);
|
|
|
|
sptr<IRemoteObject> remoteObject_ =
|
|
OHOS::DelayedSingleton<AppExecFwk::SysMrgClient>::GetInstance()->GetSystemAbility(ABILITY_MGR_SERVICE_ID);
|
|
sptr<AAFwk::IAbilityManager> abms = iface_cast<AAFwk::IAbilityManager>(remoteObject_);
|
|
Want want;
|
|
abms->StartAbility(want, AbilityLifeCycleState::ABILITY_STATE_INITIAL);
|
|
|
|
usleep(AbilityBaseTest::TEST_WAIT_TIME);
|
|
}
|
|
GTEST_LOG_(INFO) << "AaFwk_DataAbility_Start_0200";
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_DataAbility_Start_0300
|
|
* @tc.name: DataAbilityHelper
|
|
* @tc.desc: The AbilityManager could not receive the active state from abilitythread for dataability.
|
|
* And the OnActive coulde be called. When the dataability change its lifecycle state to active.
|
|
*/
|
|
HWTEST_F(AbilityTerminateTest, AaFwk_DataAbility_Start_0300, Function | MediumTest | Level1)
|
|
{
|
|
GTEST_LOG_(INFO) << "AaFwk_DataAbility_Start_0300";
|
|
|
|
std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
|
|
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
|
|
EXPECT_NE(abilityToken, nullptr);
|
|
if (abilityToken != nullptr) {
|
|
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);
|
|
|
|
sptr<IRemoteObject> remoteObject_ =
|
|
OHOS::DelayedSingleton<AppExecFwk::SysMrgClient>::GetInstance()->GetSystemAbility(ABILITY_MGR_SERVICE_ID);
|
|
sptr<AAFwk::IAbilityManager> abms = iface_cast<AAFwk::IAbilityManager>(remoteObject_);
|
|
Want want;
|
|
abms->StartAbility(want, AbilityLifeCycleState::ABILITY_STATE_ACTIVE);
|
|
|
|
usleep(AbilityBaseTest::TEST_WAIT_TIME);
|
|
}
|
|
GTEST_LOG_(INFO) << "AaFwk_DataAbility_Start_0300";
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_DataAbility_Start_0400
|
|
* @tc.name: DataAbilityHelper
|
|
* @tc.desc: The AbilityManager could not receive the background state from abilitythread for dataability.
|
|
* And the OnBackground coulde be called. When the dataability change its lifecycle state to background.
|
|
*/
|
|
HWTEST_F(AbilityTerminateTest, AaFwk_DataAbility_Start_0400, Function | MediumTest | Level1)
|
|
{
|
|
GTEST_LOG_(INFO) << "AaFwk_DataAbility_Start_0400";
|
|
|
|
std::shared_ptr<OHOSApplication> application = std::make_shared<OHOSApplication>();
|
|
sptr<IRemoteObject> abilityToken = sptr<IRemoteObject>(new AbilityRuntime::FAAbilityThread());
|
|
EXPECT_NE(abilityToken, nullptr);
|
|
if (abilityToken != nullptr) {
|
|
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);
|
|
|
|
sptr<IRemoteObject> remoteObject_ =
|
|
OHOS::DelayedSingleton<AppExecFwk::SysMrgClient>::GetInstance()->GetSystemAbility(ABILITY_MGR_SERVICE_ID);
|
|
sptr<AAFwk::IAbilityManager> abms = iface_cast<AAFwk::IAbilityManager>(remoteObject_);
|
|
Want want;
|
|
abms->StartAbility(want, AbilityLifeCycleState::ABILITY_STATE_BACKGROUND);
|
|
|
|
usleep(AbilityBaseTest::TEST_WAIT_TIME);
|
|
}
|
|
GTEST_LOG_(INFO) << "AaFwk_DataAbility_Start_0400";
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_IAbilityManager_StartAbilityAsCaller_0100
|
|
* @tc.name: StartAbilityAsCaller
|
|
* @tc.desc: test StartAbilityAsCaller function
|
|
*/
|
|
HWTEST_F(AbilityTerminateTest, AaFwk_IAbilityManager_StartAbilityAsCaller_0100, Function | MediumTest | Level1)
|
|
{
|
|
GTEST_LOG_(INFO) << "AaFwk_IAbilityManager_StartAbilityAsCaller_0100";
|
|
sptr<IRemoteObject> remoteObject_ =
|
|
OHOS::DelayedSingleton<AppExecFwk::SysMrgClient>::GetInstance()->GetSystemAbility(ABILITY_MGR_SERVICE_ID);
|
|
sptr<AAFwk::IAbilityManager> abms = iface_cast<AAFwk::IAbilityManager>(remoteObject_);
|
|
EXPECT_NE(abms, nullptr);
|
|
Want want;
|
|
EXPECT_EQ(0, abms->StartAbilityAsCaller(want, nullptr, nullptr));
|
|
GTEST_LOG_(INFO) << "AaFwk_IAbilityManager_StartAbilityAsCaller_0100";
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_IAbilityManager_StartAbilityAsCaller_0200
|
|
* @tc.name: StartAbilityAsCaller
|
|
* @tc.desc: test StartAbilityAsCaller function
|
|
*/
|
|
HWTEST_F(AbilityTerminateTest, AaFwk_IAbilityManager_StartAbilityAsCaller_0200, Function | MediumTest | Level1)
|
|
{
|
|
GTEST_LOG_(INFO) << "AaFwk_IAbilityManager_StartAbilityAsCaller_0200";
|
|
sptr<IRemoteObject> remoteObject_ =
|
|
OHOS::DelayedSingleton<AppExecFwk::SysMrgClient>::GetInstance()->GetSystemAbility(ABILITY_MGR_SERVICE_ID);
|
|
sptr<AAFwk::IAbilityManager> abms = iface_cast<AAFwk::IAbilityManager>(remoteObject_);
|
|
EXPECT_NE(abms, nullptr);
|
|
Want want;
|
|
StartOptions startOptions;
|
|
EXPECT_EQ(0, abms->StartAbilityAsCaller(want, startOptions, nullptr, nullptr));
|
|
GTEST_LOG_(INFO) << "AaFwk_IAbilityManager_StartAbilityAsCaller_0200";
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_IAbilityManager_StartUIExtensionAbility_0100
|
|
* @tc.name: StartUIExtensionAbility
|
|
* @tc.desc: test StartUIExtensionAbility function
|
|
*/
|
|
HWTEST_F(AbilityTerminateTest, AaFwk_IAbilityManager_StartUIExtensionAbility_0100, Function | MediumTest | Level1)
|
|
{
|
|
GTEST_LOG_(INFO) << "AaFwk_IAbilityManager_StartUIExtensionAbility_0100";
|
|
sptr<IRemoteObject> remoteObject_ =
|
|
OHOS::DelayedSingleton<AppExecFwk::SysMrgClient>::GetInstance()->GetSystemAbility(ABILITY_MGR_SERVICE_ID);
|
|
sptr<AAFwk::IAbilityManager> abms = iface_cast<AAFwk::IAbilityManager>(remoteObject_);
|
|
EXPECT_NE(abms, nullptr);
|
|
Want want;
|
|
EXPECT_EQ(0, abms->StartAbilityAsCaller(want, nullptr, nullptr));
|
|
GTEST_LOG_(INFO) << "AaFwk_IAbilityManager_StartUIExtensionAbility_0100";
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_IAbilityManager_TerminateUIExtensionAbility_0100
|
|
* @tc.name: TerminateUIExtensionAbility
|
|
* @tc.desc: test TerminateUIExtensionAbility function
|
|
*/
|
|
HWTEST_F(AbilityTerminateTest, AaFwk_IAbilityManager_TerminateUIExtensionAbility_0100, Function | MediumTest | Level1)
|
|
{
|
|
GTEST_LOG_(INFO) << "AaFwk_IAbilityManager_TerminateUIExtensionAbility_0100";
|
|
sptr<IRemoteObject> remoteObject_ =
|
|
OHOS::DelayedSingleton<AppExecFwk::SysMrgClient>::GetInstance()->GetSystemAbility(ABILITY_MGR_SERVICE_ID);
|
|
sptr<AAFwk::IAbilityManager> abms = iface_cast<AAFwk::IAbilityManager>(remoteObject_);
|
|
EXPECT_NE(abms, nullptr);
|
|
int resultCode = 1;
|
|
EXPECT_EQ(0, abms->TerminateUIExtensionAbility(nullptr, resultCode));
|
|
GTEST_LOG_(INFO) << "AaFwk_IAbilityManager_TerminateUIExtensionAbility_0100";
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_IAbilityManager_SendResultToAbility_0100
|
|
* @tc.name: SendResultToAbility
|
|
* @tc.desc: test SendResultToAbility function
|
|
*/
|
|
HWTEST_F(AbilityTerminateTest, AaFwk_IAbilityManager_SendResultToAbility_0100, Function | MediumTest | Level1)
|
|
{
|
|
GTEST_LOG_(INFO) << "AaFwk_IAbilityManager_SendResultToAbility_0100";
|
|
sptr<IRemoteObject> remoteObject_ =
|
|
OHOS::DelayedSingleton<AppExecFwk::SysMrgClient>::GetInstance()->GetSystemAbility(ABILITY_MGR_SERVICE_ID);
|
|
sptr<AAFwk::IAbilityManager> abms = iface_cast<AAFwk::IAbilityManager>(remoteObject_);
|
|
EXPECT_NE(abms, nullptr);
|
|
int requestCode = 1;
|
|
int resultCode = 2;
|
|
Want resultWant;
|
|
EXPECT_EQ(0, abms->SendResultToAbility(requestCode, resultCode, resultWant));
|
|
GTEST_LOG_(INFO) << "AaFwk_IAbilityManager_SendResultToAbility_0100";
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_IAbilityManager_MinimizeUIExtensionAbility_0100
|
|
* @tc.name: MinimizeUIExtensionAbility
|
|
* @tc.desc: test MinimizeUIExtensionAbility function
|
|
*/
|
|
HWTEST_F(AbilityTerminateTest, AaFwk_IAbilityManager_MinimizeUIExtensionAbility_0100, Function | MediumTest | Level1)
|
|
{
|
|
GTEST_LOG_(INFO) << "AaFwk_IAbilityManager_MinimizeUIExtensionAbility_0100";
|
|
sptr<IRemoteObject> remoteObject_ =
|
|
OHOS::DelayedSingleton<AppExecFwk::SysMrgClient>::GetInstance()->GetSystemAbility(ABILITY_MGR_SERVICE_ID);
|
|
sptr<AAFwk::IAbilityManager> abms = iface_cast<AAFwk::IAbilityManager>(remoteObject_);
|
|
EXPECT_NE(abms, nullptr);
|
|
EXPECT_EQ(0, abms->MinimizeUIExtensionAbility(nullptr));
|
|
GTEST_LOG_(INFO) << "AaFwk_IAbilityManager_MinimizeUIExtensionAbility_0100";
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_IAbilityManager_CallRequestDone_0100
|
|
* @tc.name: CallRequestDone
|
|
* @tc.desc: test CallRequestDone function
|
|
*/
|
|
HWTEST_F(AbilityTerminateTest, AaFwk_IAbilityManager_CallRequestDone_0100, Function | MediumTest | Level1)
|
|
{
|
|
GTEST_LOG_(INFO) << "AaFwk_IAbilityManager_CallRequestDone_0100";
|
|
sptr<IRemoteObject> remoteObject_ =
|
|
OHOS::DelayedSingleton<AppExecFwk::SysMrgClient>::GetInstance()->GetSystemAbility(ABILITY_MGR_SERVICE_ID);
|
|
sptr<AAFwk::IAbilityManager> abms = iface_cast<AAFwk::IAbilityManager>(remoteObject_);
|
|
EXPECT_NE(abms, nullptr);
|
|
abms->CallRequestDone(nullptr, nullptr);
|
|
GTEST_LOG_(INFO) << "AaFwk_IAbilityManager_CallRequestDone_0100";
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_IAbilityManager_AddFreeInstallObserver_0100
|
|
* @tc.name: AddFreeInstallObserver
|
|
* @tc.desc: test AddFreeInstallObserver function
|
|
*/
|
|
HWTEST_F(AbilityTerminateTest, AaFwk_IAbilityManager_AddFreeInstallObserver_0100, Function | MediumTest | Level1)
|
|
{
|
|
GTEST_LOG_(INFO) << "AaFwk_IAbilityManager_AddFreeInstallObserver_0100";
|
|
sptr<IRemoteObject> remoteObject_ =
|
|
OHOS::DelayedSingleton<AppExecFwk::SysMrgClient>::GetInstance()->GetSystemAbility(ABILITY_MGR_SERVICE_ID);
|
|
sptr<AAFwk::IAbilityManager> abms = iface_cast<AAFwk::IAbilityManager>(remoteObject_);
|
|
EXPECT_NE(abms, nullptr);
|
|
EXPECT_EQ(0, abms->AddFreeInstallObserver(nullptr, nullptr));
|
|
GTEST_LOG_(INFO) << "AaFwk_IAbilityManager_AddFreeInstallObserver_0100";
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_IAbilityManager_EnableRecoverAbility_0100
|
|
* @tc.name: EnableRecoverAbility
|
|
* @tc.desc: test EnableRecoverAbility function
|
|
*/
|
|
HWTEST_F(AbilityTerminateTest, AaFwk_IAbilityManager_EnableRecoverAbility_0100, Function | MediumTest | Level1)
|
|
{
|
|
GTEST_LOG_(INFO) << "AaFwk_IAbilityManager_EnableRecoverAbility_0100";
|
|
sptr<IRemoteObject> remoteObject_ =
|
|
OHOS::DelayedSingleton<AppExecFwk::SysMrgClient>::GetInstance()->GetSystemAbility(ABILITY_MGR_SERVICE_ID);
|
|
sptr<AAFwk::IAbilityManager> abms = iface_cast<AAFwk::IAbilityManager>(remoteObject_);
|
|
EXPECT_NE(abms, nullptr);
|
|
abms->EnableRecoverAbility(nullptr);
|
|
GTEST_LOG_(INFO) << "AaFwk_IAbilityManager_EnableRecoverAbility_0100";
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_IAbilityManager_ScheduleRecoverAbility_0100
|
|
* @tc.name: ScheduleRecoverAbility
|
|
* @tc.desc: test ScheduleRecoverAbility function
|
|
*/
|
|
HWTEST_F(AbilityTerminateTest, AaFwk_IAbilityManager_ScheduleRecoverAbility_0100, Function | MediumTest | Level1)
|
|
{
|
|
GTEST_LOG_(INFO) << "AaFwk_IAbilityManager_ScheduleRecoverAbility_0100";
|
|
sptr<IRemoteObject> remoteObject_ =
|
|
OHOS::DelayedSingleton<AppExecFwk::SysMrgClient>::GetInstance()->GetSystemAbility(ABILITY_MGR_SERVICE_ID);
|
|
sptr<AAFwk::IAbilityManager> abms = iface_cast<AAFwk::IAbilityManager>(remoteObject_);
|
|
EXPECT_NE(abms, nullptr);
|
|
int32_t reason = 1;
|
|
abms->ScheduleRecoverAbility(nullptr, reason);
|
|
GTEST_LOG_(INFO) << "AaFwk_IAbilityManager_ScheduleRecoverAbility_0100";
|
|
}
|
|
|
|
/**
|
|
* @tc.number: AaFwk_IAbilityManager_VerifyPermission_0100
|
|
* @tc.name: VerifyPermission
|
|
* @tc.desc: test VerifyPermission function
|
|
*/
|
|
HWTEST_F(AbilityTerminateTest, AaFwk_IAbilityManager_VerifyPermission_0100, Function | MediumTest | Level1)
|
|
{
|
|
GTEST_LOG_(INFO) << "AaFwk_IAbilityManager_VerifyPermission_0100";
|
|
sptr<IRemoteObject> remoteObject_ =
|
|
OHOS::DelayedSingleton<AppExecFwk::SysMrgClient>::GetInstance()->GetSystemAbility(ABILITY_MGR_SERVICE_ID);
|
|
sptr<AAFwk::IAbilityManager> abms = iface_cast<AAFwk::IAbilityManager>(remoteObject_);
|
|
EXPECT_NE(abms, nullptr);
|
|
std::string permission = "<permission>";
|
|
int pid = 1;
|
|
int uid = 1;
|
|
EXPECT_EQ(0, abms->VerifyPermission(permission, pid, uid));
|
|
GTEST_LOG_(INFO) << "AaFwk_IAbilityManager_VerifyPermission_0100";
|
|
}
|
|
} // namespace AppExecFwk
|
|
} // namespace OHOS
|