* Copyright (C) 2022 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>
#include "accessibility_common_event.h"
#include "accessibility_ut_helper.h"
#include "accessible_ability_manager_service.h"
#include "common_event_manager.h"
#include "common_event_support.h"
#include "iservice_registry.h"
#include "mock_bundle_manager.h"
using namespace testing;
using namespace testing::ext;
using namespace OHOS::EventFwk;
namespace OHOS {
namespace Accessibility {
namespace {
constexpr int32_t USERID_1 = 1;
constexpr int32_t SLEEP_TIME = 1;
const std::string BUNDLE_NAME = "test";
}
class AccessibilityCommonEventUnitTest : public ::testing::Test {
public:
AccessibilityCommonEventUnitTest()
{}
~AccessibilityCommonEventUnitTest()
{}
static void SetUpTestCase();
static void TearDownTestCase();
void SetUp() override;
void TearDown() override;
std::shared_ptr<CommonEventManager> commonEventManagerMock_ = nullptr;
};
void AccessibilityCommonEventUnitTest::SetUpTestCase()
{
GTEST_LOG_(INFO) << "###################### AccessibilityCommonEventUnitTest Start ######################";
Singleton<AccessibleAbilityManagerService>::GetInstance().OnStart();
}
void AccessibilityCommonEventUnitTest::TearDownTestCase()
{
GTEST_LOG_(INFO) << "###################### AccessibilityCommonEventUnitTest End ######################";
Singleton<AccessibilityCommonEvent>::GetInstance().UnSubscriberEvent();
Singleton<AccessibleAbilityManagerService>::GetInstance().OnStop();
}
void AccessibilityCommonEventUnitTest::SetUp()
{
GTEST_LOG_(INFO) << "SetUp";
}
void AccessibilityCommonEventUnitTest::TearDown()
{
GTEST_LOG_(INFO) << "TearDown";
}
* @tc.number: AccessibilityCommonEvent_Unittest_HandleUserRemoved_001
* @tc.name: HandleUserRemoved
* @tc.desc: Test function HandleUserRemoved(remove fail)
*/
HWTEST_F(AccessibilityCommonEventUnitTest, AccessibilityCommonEvent_Unittest_HandleUserRemoved_001,
TestSize.Level1)
{
GTEST_LOG_(INFO) << "AccessibilityCommonEvent_Unittest_HandleUserRemoved_001 start";
CommonEventData data;
Want want;
want.SetAction(CommonEventSupport::COMMON_EVENT_USER_REMOVED);
data.SetWant(want);
data.SetCode(-1);
CommonEventManager::PublishCommonEvent(data);
sleep(SLEEP_TIME);
std::vector<int32_t> userIds;
AccessibilityAbilityHelper::GetInstance().GetUserIds(userIds);
EXPECT_EQ(0, userIds.size());
GTEST_LOG_(INFO) << "AccessibilityCommonEvent_Unittest_HandleUserRemoved_001 end";
}
* @tc.number: AccessibilityCommonEvent_Unittest_HandleUserRemoved_002
* @tc.name: HandleUserRemoved
* @tc.desc: Test function HandleUserRemoved(add/remove success)
*/
HWTEST_F(AccessibilityCommonEventUnitTest, AccessibilityCommonEvent_Unittest_HandleUserRemoved_002,
TestSize.Level1)
{
GTEST_LOG_(INFO) << "AccessibilityCommonEvent_Unittest_HandleUserRemoved_002 start";
CommonEventData data1;
Want want1;
want1.SetAction(CommonEventSupport::COMMON_EVENT_USER_ADDED);
data1.SetWant(want1);
data1.SetCode(USERID_1);
CommonEventManager::PublishCommonEvent(data1);
sleep(SLEEP_TIME);
std::vector<int32_t> userIds;
AccessibilityAbilityHelper::GetInstance().GetUserIds(userIds);
EXPECT_EQ(1, userIds.size());
CommonEventData data2;
Want want2;
want2.SetAction(CommonEventSupport::COMMON_EVENT_USER_REMOVED);
data2.SetWant(want2);
data2.SetCode(USERID_1);
CommonEventManager::PublishCommonEvent(data2);
sleep(SLEEP_TIME);
userIds.clear();
AccessibilityAbilityHelper::GetInstance().GetUserIds(userIds);
EXPECT_EQ(0, userIds.size());
GTEST_LOG_(INFO) << "AccessibilityCommonEvent_Unittest_HandleUserRemoved_002 end";
}
* @tc.number: AccessibilityCommonEvent_Unittest_HandleUserAdded_001
* @tc.name: HandleUserAdded
* @tc.desc: Test function HandleUserAdded(add fail)
*/
HWTEST_F(AccessibilityCommonEventUnitTest, AccessibilityCommonEvent_Unittest_HandleUserAdded_001,
TestSize.Level1)
{
GTEST_LOG_(INFO) << "AccessibilityCommonEvent_Unittest_HandleUserAdded_001 start";
CommonEventData data;
Want want;
want.SetAction(CommonEventSupport::COMMON_EVENT_USER_ADDED);
data.SetWant(want);
data.SetCode(-1);
CommonEventManager::PublishCommonEvent(data);
sleep(SLEEP_TIME);
std::vector<int32_t> userIds;
AccessibilityAbilityHelper::GetInstance().GetUserIds(userIds);
EXPECT_EQ(0, userIds.size());
GTEST_LOG_(INFO) << "AccessibilityCommonEvent_Unittest_HandleUserAdded_001 end";
}
* @tc.number: AccessibilityCommonEvent_Unittest_HandleUserSwitched_001
* @tc.name: HandleUserSwitched
* @tc.desc: Test function HandleUserSwitched(switch success)
*/
HWTEST_F(AccessibilityCommonEventUnitTest, AccessibilityCommonEvent_Unittest_HandleUserSwitched_001,
TestSize.Level1)
{
GTEST_LOG_(INFO) << "AccessibilityCommonEvent_Unittest_HandleUserSwitched_001 start";
CommonEventData data;
Want want;
want.SetAction(CommonEventSupport::COMMON_EVENT_USER_SWITCHED);
data.SetWant(want);
data.SetCode(USERID_1);
CommonEventManager::PublishCommonEvent(data);
sleep(SLEEP_TIME);
int32_t userId = AccessibilityAbilityHelper::GetInstance().GetCurrentUserId();
EXPECT_EQ(USERID_1, userId);
GTEST_LOG_(INFO) << "AccessibilityCommonEvent_Unittest_HandleUserSwitched_001 end";
}
* @tc.number: AccessibilityCommonEvent_Unittest_HandleUserSwitched_002
* @tc.name: HandleUserSwitched
* @tc.desc: Test function HandleUserSwitched(switch fail)
*/
HWTEST_F(AccessibilityCommonEventUnitTest, AccessibilityCommonEvent_Unittest_HandleUserSwitched_002,
TestSize.Level1)
{
GTEST_LOG_(INFO) << "AccessibilityCommonEvent_Unittest_HandleUserSwitched_002 start";
AccessibilityAbilityHelper::GetInstance().SetCurrentUserId(USERID_1);
CommonEventData data;
Want want;
want.SetAction(CommonEventSupport::COMMON_EVENT_USER_SWITCHED);
data.SetWant(want);
data.SetCode(-1);
CommonEventManager::PublishCommonEvent(data);
sleep(SLEEP_TIME);
int32_t userId = AccessibilityAbilityHelper::GetInstance().GetCurrentUserId();
EXPECT_EQ(USERID_1, userId);
GTEST_LOG_(INFO) << "AccessibilityCommonEvent_Unittest_HandleUserSwitched_002 end";
}
* @tc.number: AccessibilityCommonEvent_Unittest_HandlePackageRemoved_001
* @tc.name: HandlePackageRemoved
* @tc.desc: Test function HandlePackageRemoved(add/remove success)
*/
HWTEST_F(AccessibilityCommonEventUnitTest, AccessibilityCommonEvent_Unittest_HandlePackageRemoved_001,
TestSize.Level1)
{
GTEST_LOG_(INFO) << "AccessibilityCommonEvent_Unittest_HandlePackageRemoved_001 start";
CommonEventData data1;
Want want1;
want1.SetAction(CommonEventSupport::COMMON_EVENT_PACKAGE_ADDED);
want1.SetBundle(BUNDLE_NAME);
want1.SetParam("userId", -1);
data1.SetWant(want1);
CommonEventManager::PublishCommonEvent(data1);
sleep(SLEEP_TIME);
std::vector<std::string> packages;
AccessibilityAbilityHelper::GetInstance().GetPackages(packages);
EXPECT_EQ(1, packages.size());
CommonEventData data2;
Want want2;
want2.SetAction(CommonEventSupport::COMMON_EVENT_PACKAGE_REMOVED);
want2.SetBundle(BUNDLE_NAME);
want2.SetParam("userId", -1);
data2.SetWant(want2);
CommonEventManager::PublishCommonEvent(data2);
sleep(SLEEP_TIME);
packages.clear();
AccessibilityAbilityHelper::GetInstance().GetPackages(packages);
EXPECT_EQ(0, packages.size());
GTEST_LOG_(INFO) << "AccessibilityCommonEvent_Unittest_HandlePackageRemoved_001 end";
}
* @tc.number: AccessibilityCommonEvent_Unittest_HandlePackageChanged_001
* @tc.name: HandlePackageChanged
* @tc.desc: Test function HandlePackageChanged
*/
HWTEST_F(AccessibilityCommonEventUnitTest, AccessibilityCommonEvent_Unittest_HandlePackageChanged_001,
TestSize.Level1)
{
GTEST_LOG_(INFO) << "AccessibilityCommonEvent_Unittest_HandlePackageChanged_001 start";
CommonEventData data;
Want want;
want.SetAction(CommonEventSupport::COMMON_EVENT_PACKAGE_CHANGED);
want.SetBundle(BUNDLE_NAME);
want.SetParam("userId", -1);
data.SetWant(want);
CommonEventManager::PublishCommonEvent(data);
sleep(SLEEP_TIME);
EXPECT_TRUE(AccessibilityAbilityHelper::GetInstance().GetChangePackageFlag());
GTEST_LOG_(INFO) << "AccessibilityCommonEvent_Unittest_HandlePackageChanged_001 end";
}
}
}