1e0dac50fSopenharmony_ci/* 2e0dac50fSopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd. 3e0dac50fSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4e0dac50fSopenharmony_ci * you may not use this file except in compliance with the License. 5e0dac50fSopenharmony_ci * You may obtain a copy of the License at 6e0dac50fSopenharmony_ci * 7e0dac50fSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8e0dac50fSopenharmony_ci * 9e0dac50fSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10e0dac50fSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11e0dac50fSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12e0dac50fSopenharmony_ci * See the License for the specific language governing permissions and 13e0dac50fSopenharmony_ci * limitations under the License. 14e0dac50fSopenharmony_ci */ 15e0dac50fSopenharmony_ci 16e0dac50fSopenharmony_ci#include <gtest/gtest.h> 17e0dac50fSopenharmony_ci#include "accessibility_connection.h" 18e0dac50fSopenharmony_ci#include "wm_common.h" 19e0dac50fSopenharmony_ci#include "dm_common.h" 20e0dac50fSopenharmony_ci#include "common_test_utils.h" 21e0dac50fSopenharmony_ci 22e0dac50fSopenharmony_ciusing namespace testing; 23e0dac50fSopenharmony_ciusing namespace testing::ext; 24e0dac50fSopenharmony_ci 25e0dac50fSopenharmony_cinamespace OHOS { 26e0dac50fSopenharmony_cinamespace Rosen { 27e0dac50fSopenharmony_ciclass AccessibilityConnectionTest : public testing::Test { 28e0dac50fSopenharmony_cipublic: 29e0dac50fSopenharmony_ci static void SetUpTestCase(); 30e0dac50fSopenharmony_ci static void TearDownTestCase(); 31e0dac50fSopenharmony_ci void SetUp() override; 32e0dac50fSopenharmony_ci void TearDown() override; 33e0dac50fSopenharmony_ci sptr<AccessibilityConnection> accessibilityConnection_; 34e0dac50fSopenharmony_ci}; 35e0dac50fSopenharmony_ci 36e0dac50fSopenharmony_civoid AccessibilityConnectionTest::SetUpTestCase() 37e0dac50fSopenharmony_ci{ 38e0dac50fSopenharmony_ci} 39e0dac50fSopenharmony_ci 40e0dac50fSopenharmony_civoid AccessibilityConnectionTest::TearDownTestCase() 41e0dac50fSopenharmony_ci{ 42e0dac50fSopenharmony_ci} 43e0dac50fSopenharmony_ci 44e0dac50fSopenharmony_civoid AccessibilityConnectionTest::SetUp() 45e0dac50fSopenharmony_ci{ 46e0dac50fSopenharmony_ci sptr<WindowRoot> windowRoot_ = new WindowRoot([](Event event, const sptr<IRemoteObject>& remoteObject) {}); 47e0dac50fSopenharmony_ci accessibilityConnection_ = new AccessibilityConnection(windowRoot_); 48e0dac50fSopenharmony_ci} 49e0dac50fSopenharmony_ci 50e0dac50fSopenharmony_civoid AccessibilityConnectionTest::TearDown() 51e0dac50fSopenharmony_ci{ 52e0dac50fSopenharmony_ci} 53e0dac50fSopenharmony_ci 54e0dac50fSopenharmony_cinamespace { 55e0dac50fSopenharmony_ci/** 56e0dac50fSopenharmony_ci * @tc.name: FillAccessibilityWindowInfo01 57e0dac50fSopenharmony_ci * @tc.desc: normal function 58e0dac50fSopenharmony_ci * @tc.type: FUNC 59e0dac50fSopenharmony_ci */ 60e0dac50fSopenharmony_ciHWTEST_F(AccessibilityConnectionTest, FillAccessibilityWindowInfo01, Function | SmallTest | Level2) 61e0dac50fSopenharmony_ci{ 62e0dac50fSopenharmony_ci uint32_t focusedWindow = 1; 63e0dac50fSopenharmony_ci sptr<WindowProperty> windowProperty1 = new WindowProperty(); 64e0dac50fSopenharmony_ci windowProperty1->SetWindowId(focusedWindow); 65e0dac50fSopenharmony_ci windowProperty1->SetDecorEnable(true); 66e0dac50fSopenharmony_ci sptr<WindowNode> windowNode1 = new WindowNode(windowProperty1); 67e0dac50fSopenharmony_ci windowNode1->SetWindowProperty(windowProperty1); 68e0dac50fSopenharmony_ci sptr<WindowNode> windowNode3 = nullptr; 69e0dac50fSopenharmony_ci std::vector<sptr<WindowNode>> nodes; 70e0dac50fSopenharmony_ci nodes.emplace_back(windowNode1); 71e0dac50fSopenharmony_ci std::vector<sptr<AccessibilityWindowInfo>> infos; 72e0dac50fSopenharmony_ci accessibilityConnection_->FillAccessibilityWindowInfo(nodes, focusedWindow, infos); 73e0dac50fSopenharmony_ci ASSERT_EQ(1, infos.size()); 74e0dac50fSopenharmony_ci ASSERT_TRUE(infos[0]->isDecorEnable_); 75e0dac50fSopenharmony_ci ASSERT_TRUE(infos[0]->focused_); 76e0dac50fSopenharmony_ci} 77e0dac50fSopenharmony_ci 78e0dac50fSopenharmony_ci/** 79e0dac50fSopenharmony_ci * @tc.name: GetAccessibilityWindowInfo01 80e0dac50fSopenharmony_ci * @tc.desc: normal function 81e0dac50fSopenharmony_ci * @tc.type: FUNC 82e0dac50fSopenharmony_ci */ 83e0dac50fSopenharmony_ciHWTEST_F(AccessibilityConnectionTest, GetAccessibilityWindowInfo01, Function | SmallTest | Level2) 84e0dac50fSopenharmony_ci{ 85e0dac50fSopenharmony_ci std::vector<sptr<AccessibilityWindowInfo>> infos; 86e0dac50fSopenharmony_ci accessibilityConnection_->GetAccessibilityWindowInfo(infos); 87e0dac50fSopenharmony_ci ASSERT_EQ(0, infos.size()); 88e0dac50fSopenharmony_ci} 89e0dac50fSopenharmony_ci 90e0dac50fSopenharmony_ci/** 91e0dac50fSopenharmony_ci * @tc.name: UpdateFocusChangeEvent01 92e0dac50fSopenharmony_ci * @tc.desc: normal function 93e0dac50fSopenharmony_ci * @tc.type: FUNC 94e0dac50fSopenharmony_ci */ 95e0dac50fSopenharmony_ciHWTEST_F(AccessibilityConnectionTest, UpdateFocusChangeEvent01, Function | SmallTest | Level2) 96e0dac50fSopenharmony_ci{ 97e0dac50fSopenharmony_ci sptr<DisplayInfo> displayInfo = new DisplayInfo(); 98e0dac50fSopenharmony_ci ScreenId displayGroupId = 0; 99e0dac50fSopenharmony_ci sptr<WindowNodeContainer> container = new WindowNodeContainer(displayInfo, displayGroupId); 100e0dac50fSopenharmony_ci accessibilityConnection_->UpdateFocusChangeEvent(container); 101e0dac50fSopenharmony_ci ASSERT_EQ(1, accessibilityConnection_->focusedWindowMap_.size()); 102e0dac50fSopenharmony_ci} 103e0dac50fSopenharmony_ci 104e0dac50fSopenharmony_ci/** 105e0dac50fSopenharmony_ci * @tc.name: UpdateFocusChangeEvent02 106e0dac50fSopenharmony_ci * @tc.desc: normal function 107e0dac50fSopenharmony_ci * @tc.type: FUNC 108e0dac50fSopenharmony_ci */ 109e0dac50fSopenharmony_ciHWTEST_F(AccessibilityConnectionTest, UpdateFocusChangeEvent02, Function | SmallTest | Level2) 110e0dac50fSopenharmony_ci{ 111e0dac50fSopenharmony_ci sptr<DisplayInfo> displayInfo = new DisplayInfo(); 112e0dac50fSopenharmony_ci ScreenId displayGroupId = 0; 113e0dac50fSopenharmony_ci sptr<WindowNodeContainer> container = new WindowNodeContainer(displayInfo, displayGroupId); 114e0dac50fSopenharmony_ci uint32_t newFocusWindow = 1; 115e0dac50fSopenharmony_ci container->SetFocusWindow(newFocusWindow); 116e0dac50fSopenharmony_ci uint32_t oldFocusWindow = 1; 117e0dac50fSopenharmony_ci accessibilityConnection_->focusedWindowMap_.insert(std::make_pair(container, oldFocusWindow)); 118e0dac50fSopenharmony_ci accessibilityConnection_->UpdateFocusChangeEvent(container); 119e0dac50fSopenharmony_ci ASSERT_EQ(1, accessibilityConnection_->focusedWindowMap_.size()); 120e0dac50fSopenharmony_ci ASSERT_EQ(1, accessibilityConnection_->focusedWindowMap_[container]); 121e0dac50fSopenharmony_ci} 122e0dac50fSopenharmony_ci 123e0dac50fSopenharmony_ci/** 124e0dac50fSopenharmony_ci * @tc.name: UpdateFocusChangeEvent03 125e0dac50fSopenharmony_ci * @tc.desc: normal function 126e0dac50fSopenharmony_ci * @tc.type: FUNC 127e0dac50fSopenharmony_ci */ 128e0dac50fSopenharmony_ciHWTEST_F(AccessibilityConnectionTest, UpdateFocusChangeEvent03, Function | SmallTest | Level2) 129e0dac50fSopenharmony_ci{ 130e0dac50fSopenharmony_ci sptr<DisplayInfo> displayInfo = new DisplayInfo(); 131e0dac50fSopenharmony_ci ScreenId displayGroupId = 0; 132e0dac50fSopenharmony_ci sptr<WindowNodeContainer> container = new WindowNodeContainer(displayInfo, displayGroupId); 133e0dac50fSopenharmony_ci uint32_t newFocusWindow = 2; 134e0dac50fSopenharmony_ci container->SetFocusWindow(newFocusWindow); 135e0dac50fSopenharmony_ci uint32_t oldFocusWindow = 1; 136e0dac50fSopenharmony_ci accessibilityConnection_->focusedWindowMap_.insert(std::make_pair(container, oldFocusWindow)); 137e0dac50fSopenharmony_ci accessibilityConnection_->UpdateFocusChangeEvent(container); 138e0dac50fSopenharmony_ci ASSERT_EQ(1, accessibilityConnection_->focusedWindowMap_.size()); 139e0dac50fSopenharmony_ci ASSERT_EQ(2, accessibilityConnection_->focusedWindowMap_[container]); 140e0dac50fSopenharmony_ci} 141e0dac50fSopenharmony_ci} 142e0dac50fSopenharmony_ci} 143e0dac50fSopenharmony_ci}