1c29fa5a6Sopenharmony_ci/* 2c29fa5a6Sopenharmony_ci * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 3c29fa5a6Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4c29fa5a6Sopenharmony_ci * you may not use this file except in compliance with the License. 5c29fa5a6Sopenharmony_ci * You may obtain a copy of the License at 6c29fa5a6Sopenharmony_ci * 7c29fa5a6Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8c29fa5a6Sopenharmony_ci * 9c29fa5a6Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10c29fa5a6Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11c29fa5a6Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12c29fa5a6Sopenharmony_ci * See the License for the specific language governing permissions and 13c29fa5a6Sopenharmony_ci * limitations under the License. 14c29fa5a6Sopenharmony_ci */ 15c29fa5a6Sopenharmony_ci 16c29fa5a6Sopenharmony_ci#include <gtest/gtest.h> 17c29fa5a6Sopenharmony_ci 18c29fa5a6Sopenharmony_ci#include "anr_manager.h" 19c29fa5a6Sopenharmony_ci#include "define_multimodal.h" 20c29fa5a6Sopenharmony_ci#include "event_dispatch_handler.h" 21c29fa5a6Sopenharmony_ci#include "i_input_windows_manager.h" 22c29fa5a6Sopenharmony_ci#include "input_event_handler.h" 23c29fa5a6Sopenharmony_ci#include "pointer_event.h" 24c29fa5a6Sopenharmony_ci 25c29fa5a6Sopenharmony_cinamespace OHOS { 26c29fa5a6Sopenharmony_cinamespace MMI { 27c29fa5a6Sopenharmony_cinamespace { 28c29fa5a6Sopenharmony_ciusing namespace testing::ext; 29c29fa5a6Sopenharmony_ciconstexpr int32_t UID_ROOT { 0 }; 30c29fa5a6Sopenharmony_cistatic constexpr char PROGRAM_NAME[] = "uds_sesion_test"; 31c29fa5a6Sopenharmony_ciint32_t g_moduleType = 3; 32c29fa5a6Sopenharmony_ciint32_t g_pid = 0; 33c29fa5a6Sopenharmony_ciint32_t g_writeFd = -1; 34c29fa5a6Sopenharmony_ci} // namespace 35c29fa5a6Sopenharmony_ci 36c29fa5a6Sopenharmony_ciclass EventDispatchTest : public testing::Test { 37c29fa5a6Sopenharmony_cipublic: 38c29fa5a6Sopenharmony_ci static void SetUpTestCase(void) {} 39c29fa5a6Sopenharmony_ci static void TearDownTestCase(void) {} 40c29fa5a6Sopenharmony_ci}; 41c29fa5a6Sopenharmony_ci 42c29fa5a6Sopenharmony_ci/** 43c29fa5a6Sopenharmony_ci * @tc.name: DispatchPointerEventInner_06 44c29fa5a6Sopenharmony_ci * @tc.desc: Test the funcation DispatchKeyEvent 45c29fa5a6Sopenharmony_ci * @tc.type: FUNC 46c29fa5a6Sopenharmony_ci * @tc.require: 47c29fa5a6Sopenharmony_ci */ 48c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, DispatchPointerEventInner_06, TestSize.Level1) 49c29fa5a6Sopenharmony_ci{ 50c29fa5a6Sopenharmony_ci EventDispatchHandler handler; 51c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> point = PointerEvent::Create(); 52c29fa5a6Sopenharmony_ci ASSERT_NE(point, nullptr); 53c29fa5a6Sopenharmony_ci int32_t fd = -5; 54c29fa5a6Sopenharmony_ci auto inputEvent = InputEvent::Create(); 55c29fa5a6Sopenharmony_ci ASSERT_NE(inputEvent, nullptr); 56c29fa5a6Sopenharmony_ci inputEvent->actionTime_ = 3100; 57c29fa5a6Sopenharmony_ci handler.eventTime_ = 10; 58c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(handler.DispatchPointerEventInner(point, fd)); 59c29fa5a6Sopenharmony_ci inputEvent->actionTime_ = 200; 60c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(handler.DispatchPointerEventInner(point, fd)); 61c29fa5a6Sopenharmony_ci fd = 5; 62c29fa5a6Sopenharmony_ci bool status = true; 63c29fa5a6Sopenharmony_ci SessionPtr session = std::make_shared<UDSSession>(PROGRAM_NAME, 1, 1, 100, 100); 64c29fa5a6Sopenharmony_ci session->SetTokenType(TokenType::TOKEN_HAP); 65c29fa5a6Sopenharmony_ci session->SetAnrStatus(0, status); 66c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(handler.DispatchPointerEventInner(point, fd)); 67c29fa5a6Sopenharmony_ci status = false; 68c29fa5a6Sopenharmony_ci point->pointerAction_ = PointerEvent::POINTER_ACTION_DOWN; 69c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(handler.DispatchPointerEventInner(point, fd)); 70c29fa5a6Sopenharmony_ci point->pointerAction_ = PointerEvent::POINTER_ACTION_UP; 71c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(handler.DispatchPointerEventInner(point, fd)); 72c29fa5a6Sopenharmony_ci point->pointerAction_ = PointerEvent::POINTER_ACTION_PULL_DOWN; 73c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(handler.DispatchPointerEventInner(point, fd)); 74c29fa5a6Sopenharmony_ci point->pointerAction_ = PointerEvent::POINTER_ACTION_PULL_UP; 75c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(handler.DispatchPointerEventInner(point, fd)); 76c29fa5a6Sopenharmony_ci point->pointerAction_ = PointerEvent::POINTER_ACTION_PULL_MOVE; 77c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(handler.DispatchPointerEventInner(point, fd)); 78c29fa5a6Sopenharmony_ci point->pointerAction_ = PointerEvent::POINTER_ACTION_MOVE; 79c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(handler.DispatchPointerEventInner(point, fd)); 80c29fa5a6Sopenharmony_ci point->pointerAction_ = PointerEvent::POINTER_ACTION_PULL_OUT_WINDOW; 81c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(handler.DispatchPointerEventInner(point, fd)); 82c29fa5a6Sopenharmony_ci point->pointerAction_ = PointerEvent::POINTER_ACTION_AXIS_END; 83c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(handler.DispatchPointerEventInner(point, fd)); 84c29fa5a6Sopenharmony_ci} 85c29fa5a6Sopenharmony_ci 86c29fa5a6Sopenharmony_ci/** 87c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_DispatchKeyEvent_001 88c29fa5a6Sopenharmony_ci * @tc.desc: Test the funcation DispatchKeyEvent 89c29fa5a6Sopenharmony_ci * @tc.type: FUNC 90c29fa5a6Sopenharmony_ci * @tc.require: 91c29fa5a6Sopenharmony_ci */ 92c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_DispatchKeyEvent_001, TestSize.Level1) 93c29fa5a6Sopenharmony_ci{ 94c29fa5a6Sopenharmony_ci EventDispatchHandler handler; 95c29fa5a6Sopenharmony_ci int32_t fd = -2; 96c29fa5a6Sopenharmony_ci UDSServer udsServer; 97c29fa5a6Sopenharmony_ci std::shared_ptr<KeyEvent> key = KeyEvent::Create(); 98c29fa5a6Sopenharmony_ci ASSERT_NE(key, nullptr); 99c29fa5a6Sopenharmony_ci auto inputEvent = InputEvent::Create(); 100c29fa5a6Sopenharmony_ci ASSERT_NE(inputEvent, nullptr); 101c29fa5a6Sopenharmony_ci inputEvent->actionTime_ = 4000; 102c29fa5a6Sopenharmony_ci handler.eventTime_ = 200; 103c29fa5a6Sopenharmony_ci int32_t ret = handler.DispatchKeyEvent(fd, udsServer, key); 104c29fa5a6Sopenharmony_ci EXPECT_EQ(ret, RET_ERR); 105c29fa5a6Sopenharmony_ci inputEvent->actionTime_ = 2000; 106c29fa5a6Sopenharmony_ci ret = handler.DispatchKeyEvent(fd, udsServer, key); 107c29fa5a6Sopenharmony_ci EXPECT_EQ(ret, RET_ERR); 108c29fa5a6Sopenharmony_ci fd = 9; 109c29fa5a6Sopenharmony_ci bool status = true; 110c29fa5a6Sopenharmony_ci SessionPtr session = std::make_shared<UDSSession>(PROGRAM_NAME, 1, 1, 100, 100); 111c29fa5a6Sopenharmony_ci session->SetTokenType(TokenType::TOKEN_HAP); 112c29fa5a6Sopenharmony_ci session->SetAnrStatus(0, status); 113c29fa5a6Sopenharmony_ci ret = handler.DispatchKeyEvent(fd, udsServer, key); 114c29fa5a6Sopenharmony_ci EXPECT_EQ(ret, RET_ERR); 115c29fa5a6Sopenharmony_ci status = false; 116c29fa5a6Sopenharmony_ci StreamBuffer streamBuffer; 117c29fa5a6Sopenharmony_ci streamBuffer.rwErrorStatus_ = CircleStreamBuffer::ErrorStatus::ERROR_STATUS_READ; 118c29fa5a6Sopenharmony_ci ret = handler.DispatchKeyEvent(fd, udsServer, key); 119c29fa5a6Sopenharmony_ci EXPECT_EQ(ret, RET_ERR); 120c29fa5a6Sopenharmony_ci streamBuffer.rwErrorStatus_ = CircleStreamBuffer::ErrorStatus::ERROR_STATUS_OK; 121c29fa5a6Sopenharmony_ci udsServer.pid_ = 1; 122c29fa5a6Sopenharmony_ci ret = handler.DispatchKeyEvent(fd, udsServer, key); 123c29fa5a6Sopenharmony_ci EXPECT_EQ(ret, RET_ERR); 124c29fa5a6Sopenharmony_ci udsServer.pid_ = -1; 125c29fa5a6Sopenharmony_ci ret = handler.DispatchKeyEvent(fd, udsServer, key); 126c29fa5a6Sopenharmony_ci EXPECT_EQ(ret, RET_ERR); 127c29fa5a6Sopenharmony_ci} 128c29fa5a6Sopenharmony_ci 129c29fa5a6Sopenharmony_ci/** 130c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_DispatchKeyEventPid_01 131c29fa5a6Sopenharmony_ci * @tc.desc: Test DispatchKeyEventPid 132c29fa5a6Sopenharmony_ci * @tc.type: FUNC 133c29fa5a6Sopenharmony_ci * @tc.require: 134c29fa5a6Sopenharmony_ci */ 135c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_DispatchKeyEventPid_01, TestSize.Level1) 136c29fa5a6Sopenharmony_ci{ 137c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 138c29fa5a6Sopenharmony_ci UDSServer udsServer; 139c29fa5a6Sopenharmony_ci std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 140c29fa5a6Sopenharmony_ci ASSERT_NE(keyEvent, nullptr); 141c29fa5a6Sopenharmony_ci std::vector<std::pair<int32_t, TargetInfo>> vecTarget; 142c29fa5a6Sopenharmony_ci 143c29fa5a6Sopenharmony_ci TargetInfo target1; 144c29fa5a6Sopenharmony_ci target1.privacyMode = SecureFlag::PRIVACY_MODE; 145c29fa5a6Sopenharmony_ci target1.id = 1; 146c29fa5a6Sopenharmony_ci target1.agentWindowId = 3; 147c29fa5a6Sopenharmony_ci vecTarget.push_back(std::make_pair(1, target1)); 148c29fa5a6Sopenharmony_ci 149c29fa5a6Sopenharmony_ci TargetInfo target2; 150c29fa5a6Sopenharmony_ci target2.privacyMode = SecureFlag::PRIVACY_MODE; 151c29fa5a6Sopenharmony_ci target2.id = 2; 152c29fa5a6Sopenharmony_ci target2.agentWindowId = 5; 153c29fa5a6Sopenharmony_ci vecTarget.push_back(std::make_pair(2, target2)); 154c29fa5a6Sopenharmony_ci 155c29fa5a6Sopenharmony_ci int32_t ret = dispatch.DispatchKeyEventPid(udsServer, keyEvent); 156c29fa5a6Sopenharmony_ci EXPECT_EQ(ret, RET_OK); 157c29fa5a6Sopenharmony_ci} 158c29fa5a6Sopenharmony_ci 159c29fa5a6Sopenharmony_ci/** 160c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_DispatchKeyEventPid_02 161c29fa5a6Sopenharmony_ci * @tc.desc: Test DispatchKeyEventPid 162c29fa5a6Sopenharmony_ci * @tc.type: FUNC 163c29fa5a6Sopenharmony_ci * @tc.require: 164c29fa5a6Sopenharmony_ci */ 165c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_DispatchKeyEventPid_02, TestSize.Level1) 166c29fa5a6Sopenharmony_ci{ 167c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 168c29fa5a6Sopenharmony_ci UDSServer udsServer; 169c29fa5a6Sopenharmony_ci std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 170c29fa5a6Sopenharmony_ci ASSERT_NE(keyEvent, nullptr); 171c29fa5a6Sopenharmony_ci std::vector<std::pair<int32_t, TargetInfo>> vecTarget; 172c29fa5a6Sopenharmony_ci 173c29fa5a6Sopenharmony_ci TargetInfo target1; 174c29fa5a6Sopenharmony_ci target1.privacyMode = SecureFlag::DEFAULT_MODE; 175c29fa5a6Sopenharmony_ci target1.id = 2; 176c29fa5a6Sopenharmony_ci target1.agentWindowId = 5; 177c29fa5a6Sopenharmony_ci vecTarget.push_back(std::make_pair(1, target1)); 178c29fa5a6Sopenharmony_ci 179c29fa5a6Sopenharmony_ci TargetInfo target2; 180c29fa5a6Sopenharmony_ci target2.privacyMode = SecureFlag::DEFAULT_MODE; 181c29fa5a6Sopenharmony_ci target2.id = 3; 182c29fa5a6Sopenharmony_ci target2.agentWindowId = 6; 183c29fa5a6Sopenharmony_ci vecTarget.push_back(std::make_pair(2, target2)); 184c29fa5a6Sopenharmony_ci 185c29fa5a6Sopenharmony_ci int32_t ret = dispatch.DispatchKeyEventPid(udsServer, keyEvent); 186c29fa5a6Sopenharmony_ci EXPECT_EQ(ret, RET_OK); 187c29fa5a6Sopenharmony_ci} 188c29fa5a6Sopenharmony_ci 189c29fa5a6Sopenharmony_ci/** 190c29fa5a6Sopenharmony_ci * @tc.name: DispatchPointerEventInner_01 191c29fa5a6Sopenharmony_ci * @tc.desc: Test DispatchKeyEvent 192c29fa5a6Sopenharmony_ci * @tc.type: FUNC 193c29fa5a6Sopenharmony_ci * @tc.require: 194c29fa5a6Sopenharmony_ci */ 195c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, DispatchPointerEventInner_01, TestSize.Level1) 196c29fa5a6Sopenharmony_ci{ 197c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 198c29fa5a6Sopenharmony_ci UDSServer udsServer; 199c29fa5a6Sopenharmony_ci int32_t fd = 2; 200c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> pointerEvent = PointerEvent::Create(); 201c29fa5a6Sopenharmony_ci ASSERT_NE(pointerEvent, nullptr); 202c29fa5a6Sopenharmony_ci auto currentTime = GetSysClockTime(); 203c29fa5a6Sopenharmony_ci auto session = udsServer.GetSession(fd); 204c29fa5a6Sopenharmony_ci bool ret = ANRMgr->TriggerANR(ANR_DISPATCH, currentTime, session); 205c29fa5a6Sopenharmony_ci EXPECT_FALSE(ret); 206c29fa5a6Sopenharmony_ci pointerEvent->pointerAction_ = PointerEvent::POINTER_ACTION_DOWN; 207c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(dispatch.DispatchPointerEventInner(pointerEvent, fd)); 208c29fa5a6Sopenharmony_ci} 209c29fa5a6Sopenharmony_ci 210c29fa5a6Sopenharmony_ci/** 211c29fa5a6Sopenharmony_ci * @tc.name: DispatchPointerEventInner_02 212c29fa5a6Sopenharmony_ci * @tc.desc: Test DispatchKeyEvent 213c29fa5a6Sopenharmony_ci * @tc.type: FUNC 214c29fa5a6Sopenharmony_ci * @tc.require: 215c29fa5a6Sopenharmony_ci */ 216c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, DispatchPointerEventInner_02, TestSize.Level1) 217c29fa5a6Sopenharmony_ci{ 218c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 219c29fa5a6Sopenharmony_ci UDSServer udsServer; 220c29fa5a6Sopenharmony_ci int32_t fd = 3; 221c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> pointerEvent = PointerEvent::Create(); 222c29fa5a6Sopenharmony_ci ASSERT_NE(pointerEvent, nullptr); 223c29fa5a6Sopenharmony_ci auto currentTime = GetSysClockTime(); 224c29fa5a6Sopenharmony_ci auto session = udsServer.GetSession(fd); 225c29fa5a6Sopenharmony_ci bool ret = ANRMgr->TriggerANR(ANR_DISPATCH, currentTime, session); 226c29fa5a6Sopenharmony_ci EXPECT_FALSE(ret); 227c29fa5a6Sopenharmony_ci pointerEvent->pointerAction_ = PointerEvent::POINTER_ACTION_UP; 228c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(dispatch.DispatchPointerEventInner(pointerEvent, fd)); 229c29fa5a6Sopenharmony_ci} 230c29fa5a6Sopenharmony_ci 231c29fa5a6Sopenharmony_ci/** 232c29fa5a6Sopenharmony_ci * @tc.name: DispatchPointerEventInner_03 233c29fa5a6Sopenharmony_ci * @tc.desc: Test DispatchKeyEvent 234c29fa5a6Sopenharmony_ci * @tc.type: FUNC 235c29fa5a6Sopenharmony_ci * @tc.require: 236c29fa5a6Sopenharmony_ci */ 237c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, DispatchPointerEventInner_03, TestSize.Level1) 238c29fa5a6Sopenharmony_ci{ 239c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 240c29fa5a6Sopenharmony_ci UDSServer udsServer; 241c29fa5a6Sopenharmony_ci int32_t fd = 3; 242c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> pointerEvent = PointerEvent::Create(); 243c29fa5a6Sopenharmony_ci ASSERT_NE(pointerEvent, nullptr); 244c29fa5a6Sopenharmony_ci auto currentTime = GetSysClockTime(); 245c29fa5a6Sopenharmony_ci auto session = udsServer.GetSession(fd); 246c29fa5a6Sopenharmony_ci bool ret = ANRMgr->TriggerANR(ANR_DISPATCH, currentTime, session); 247c29fa5a6Sopenharmony_ci EXPECT_FALSE(ret); 248c29fa5a6Sopenharmony_ci pointerEvent->pointerAction_ = PointerEvent::POINTER_ACTION_PULL_DOWN; 249c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(dispatch.DispatchPointerEventInner(pointerEvent, fd)); 250c29fa5a6Sopenharmony_ci} 251c29fa5a6Sopenharmony_ci 252c29fa5a6Sopenharmony_ci/** 253c29fa5a6Sopenharmony_ci * @tc.name: DispatchPointerEventInner_04 254c29fa5a6Sopenharmony_ci * @tc.desc: Test DispatchKeyEvent 255c29fa5a6Sopenharmony_ci * @tc.type: FUNC 256c29fa5a6Sopenharmony_ci * @tc.require: 257c29fa5a6Sopenharmony_ci */ 258c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, DispatchPointerEventInner_04, TestSize.Level1) 259c29fa5a6Sopenharmony_ci{ 260c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 261c29fa5a6Sopenharmony_ci UDSServer udsServer; 262c29fa5a6Sopenharmony_ci int32_t fd = 3; 263c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> pointerEvent = PointerEvent::Create(); 264c29fa5a6Sopenharmony_ci ASSERT_NE(pointerEvent, nullptr); 265c29fa5a6Sopenharmony_ci auto currentTime = GetSysClockTime(); 266c29fa5a6Sopenharmony_ci auto session = udsServer.GetSession(fd); 267c29fa5a6Sopenharmony_ci bool ret = ANRMgr->TriggerANR(ANR_DISPATCH, currentTime, session); 268c29fa5a6Sopenharmony_ci EXPECT_FALSE(ret); 269c29fa5a6Sopenharmony_ci pointerEvent->pointerAction_ = PointerEvent::POINTER_ACTION_PULL_UP; 270c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(dispatch.DispatchPointerEventInner(pointerEvent, fd)); 271c29fa5a6Sopenharmony_ci} 272c29fa5a6Sopenharmony_ci 273c29fa5a6Sopenharmony_ci/** 274c29fa5a6Sopenharmony_ci * @tc.name: DispatchPointerEventInner_05 275c29fa5a6Sopenharmony_ci * @tc.desc: Test DispatchKeyEvent 276c29fa5a6Sopenharmony_ci * @tc.type: FUNC 277c29fa5a6Sopenharmony_ci * @tc.require: 278c29fa5a6Sopenharmony_ci */ 279c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, DispatchPointerEventInner_05, TestSize.Level1) 280c29fa5a6Sopenharmony_ci{ 281c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 282c29fa5a6Sopenharmony_ci UDSServer udsServer; 283c29fa5a6Sopenharmony_ci int32_t fd = 3; 284c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> pointerEvent = PointerEvent::Create(); 285c29fa5a6Sopenharmony_ci ASSERT_NE(pointerEvent, nullptr); 286c29fa5a6Sopenharmony_ci auto currentTime = GetSysClockTime(); 287c29fa5a6Sopenharmony_ci auto session = udsServer.GetSession(fd); 288c29fa5a6Sopenharmony_ci bool ret = ANRMgr->TriggerANR(ANR_DISPATCH, currentTime, session); 289c29fa5a6Sopenharmony_ci EXPECT_FALSE(ret); 290c29fa5a6Sopenharmony_ci pointerEvent->pointerAction_ = PointerEvent::POINTER_ACTION_MOVE; 291c29fa5a6Sopenharmony_ci 292c29fa5a6Sopenharmony_ci NetPacket pkt(MmiMessageId::INVALID); 293c29fa5a6Sopenharmony_ci EXPECT_FALSE(udsServer.SendMsg(fd, pkt)); 294c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(dispatch.DispatchPointerEventInner(pointerEvent, fd)); 295c29fa5a6Sopenharmony_ci} 296c29fa5a6Sopenharmony_ci 297c29fa5a6Sopenharmony_ci/** 298c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_DispatchKeyEvent_01 299c29fa5a6Sopenharmony_ci * @tc.desc: Test DispatchKeyEvent 300c29fa5a6Sopenharmony_ci * @tc.type: FUNC 301c29fa5a6Sopenharmony_ci * @tc.require: 302c29fa5a6Sopenharmony_ci */ 303c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_DispatchKeyEvent_01, TestSize.Level1) 304c29fa5a6Sopenharmony_ci{ 305c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 306c29fa5a6Sopenharmony_ci UDSServer udsServer; 307c29fa5a6Sopenharmony_ci int32_t fd; 308c29fa5a6Sopenharmony_ci std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 309c29fa5a6Sopenharmony_ci ASSERT_NE(keyEvent, nullptr); 310c29fa5a6Sopenharmony_ci 311c29fa5a6Sopenharmony_ci int32_t currentTime = dispatch.currentTime_; 312c29fa5a6Sopenharmony_ci int32_t eventTime = dispatch.eventTime_; 313c29fa5a6Sopenharmony_ci int32_t INTERVAL_TIME = 3000; 314c29fa5a6Sopenharmony_ci currentTime = 6000; 315c29fa5a6Sopenharmony_ci eventTime = 1000; 316c29fa5a6Sopenharmony_ci EXPECT_TRUE(currentTime - eventTime > INTERVAL_TIME); 317c29fa5a6Sopenharmony_ci fd = -1; 318c29fa5a6Sopenharmony_ci int32_t ret = dispatch.DispatchKeyEvent(fd, udsServer, keyEvent); 319c29fa5a6Sopenharmony_ci EXPECT_EQ(ret, RET_ERR); 320c29fa5a6Sopenharmony_ci} 321c29fa5a6Sopenharmony_ci 322c29fa5a6Sopenharmony_ci/** 323c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_DispatchKeyEvent_02 324c29fa5a6Sopenharmony_ci * @tc.desc: Test DispatchKeyEvent 325c29fa5a6Sopenharmony_ci * @tc.type: FUNC 326c29fa5a6Sopenharmony_ci * @tc.require: 327c29fa5a6Sopenharmony_ci */ 328c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_DispatchKeyEvent_02, TestSize.Level1) 329c29fa5a6Sopenharmony_ci{ 330c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 331c29fa5a6Sopenharmony_ci UDSServer udsServer; 332c29fa5a6Sopenharmony_ci int32_t fd; 333c29fa5a6Sopenharmony_ci std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 334c29fa5a6Sopenharmony_ci ASSERT_NE(keyEvent, nullptr); 335c29fa5a6Sopenharmony_ci 336c29fa5a6Sopenharmony_ci int32_t currentTime = dispatch.currentTime_; 337c29fa5a6Sopenharmony_ci int32_t eventTime = dispatch.eventTime_; 338c29fa5a6Sopenharmony_ci int32_t INTERVAL_TIME = 3000; 339c29fa5a6Sopenharmony_ci currentTime = 2000; 340c29fa5a6Sopenharmony_ci eventTime = 1000; 341c29fa5a6Sopenharmony_ci EXPECT_FALSE(currentTime - eventTime > INTERVAL_TIME); 342c29fa5a6Sopenharmony_ci fd = 1; 343c29fa5a6Sopenharmony_ci int32_t ret = dispatch.DispatchKeyEvent(fd, udsServer, keyEvent); 344c29fa5a6Sopenharmony_ci EXPECT_EQ(ret, RET_ERR); 345c29fa5a6Sopenharmony_ci} 346c29fa5a6Sopenharmony_ci 347c29fa5a6Sopenharmony_ci/** 348c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_DispatchKeyEvent_03 349c29fa5a6Sopenharmony_ci * @tc.desc: Test DispatchKeyEvent 350c29fa5a6Sopenharmony_ci * @tc.type: FUNC 351c29fa5a6Sopenharmony_ci * @tc.require: 352c29fa5a6Sopenharmony_ci */ 353c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_DispatchKeyEvent_03, TestSize.Level1) 354c29fa5a6Sopenharmony_ci{ 355c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 356c29fa5a6Sopenharmony_ci UDSServer udsServer; 357c29fa5a6Sopenharmony_ci int32_t fd = 2; 358c29fa5a6Sopenharmony_ci std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 359c29fa5a6Sopenharmony_ci ASSERT_NE(keyEvent, nullptr); 360c29fa5a6Sopenharmony_ci auto currentTime = GetSysClockTime(); 361c29fa5a6Sopenharmony_ci auto session = udsServer.GetSession(fd); 362c29fa5a6Sopenharmony_ci 363c29fa5a6Sopenharmony_ci bool ret1 = ANRMgr->TriggerANR(ANR_DISPATCH, currentTime, session); 364c29fa5a6Sopenharmony_ci EXPECT_FALSE(ret1); 365c29fa5a6Sopenharmony_ci int32_t ret2 = dispatch.DispatchKeyEvent(fd, udsServer, keyEvent); 366c29fa5a6Sopenharmony_ci EXPECT_EQ(ret2, RET_ERR); 367c29fa5a6Sopenharmony_ci} 368c29fa5a6Sopenharmony_ci 369c29fa5a6Sopenharmony_ci/** 370c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_DispatchKeyEvent_04 371c29fa5a6Sopenharmony_ci * @tc.desc: Test DispatchKeyEvent 372c29fa5a6Sopenharmony_ci * @tc.type: FUNC 373c29fa5a6Sopenharmony_ci * @tc.require: 374c29fa5a6Sopenharmony_ci */ 375c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_DispatchKeyEvent_04, TestSize.Level1) 376c29fa5a6Sopenharmony_ci{ 377c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 378c29fa5a6Sopenharmony_ci UDSServer udsServer; 379c29fa5a6Sopenharmony_ci int32_t fd = -1; 380c29fa5a6Sopenharmony_ci std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 381c29fa5a6Sopenharmony_ci ASSERT_NE(keyEvent, nullptr); 382c29fa5a6Sopenharmony_ci 383c29fa5a6Sopenharmony_ci int32_t currentTime = dispatch.currentTime_; 384c29fa5a6Sopenharmony_ci int32_t eventTime = dispatch.eventTime_; 385c29fa5a6Sopenharmony_ci int32_t INTERVAL_TIME = 3000; 386c29fa5a6Sopenharmony_ci currentTime = 2000; 387c29fa5a6Sopenharmony_ci eventTime = 1000; 388c29fa5a6Sopenharmony_ci EXPECT_FALSE(currentTime - eventTime > INTERVAL_TIME); 389c29fa5a6Sopenharmony_ci 390c29fa5a6Sopenharmony_ci auto currentTime1 = GetSysClockTime(); 391c29fa5a6Sopenharmony_ci auto session = udsServer.GetSession(fd); 392c29fa5a6Sopenharmony_ci bool ret1 = ANRMgr->TriggerANR(ANR_DISPATCH, currentTime1, session); 393c29fa5a6Sopenharmony_ci EXPECT_FALSE(ret1); 394c29fa5a6Sopenharmony_ci int32_t ret2 = dispatch.DispatchKeyEvent(fd, udsServer, keyEvent); 395c29fa5a6Sopenharmony_ci EXPECT_EQ(ret2, RET_ERR); 396c29fa5a6Sopenharmony_ci} 397c29fa5a6Sopenharmony_ci 398c29fa5a6Sopenharmony_ci/** 399c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_DispatchKeyEvent_05 400c29fa5a6Sopenharmony_ci * @tc.desc: Test DispatchKeyEvent 401c29fa5a6Sopenharmony_ci * @tc.type: FUNC 402c29fa5a6Sopenharmony_ci * @tc.require: 403c29fa5a6Sopenharmony_ci */ 404c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_DispatchKeyEvent_05, TestSize.Level1) 405c29fa5a6Sopenharmony_ci{ 406c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 407c29fa5a6Sopenharmony_ci UDSServer udsServer; 408c29fa5a6Sopenharmony_ci int32_t fd = 2; 409c29fa5a6Sopenharmony_ci std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 410c29fa5a6Sopenharmony_ci ASSERT_NE(keyEvent, nullptr); 411c29fa5a6Sopenharmony_ci auto currentTime = GetSysClockTime(); 412c29fa5a6Sopenharmony_ci auto session = udsServer.GetSession(fd); 413c29fa5a6Sopenharmony_ci bool ret1 = ANRMgr->TriggerANR(ANR_DISPATCH, currentTime, session); 414c29fa5a6Sopenharmony_ci EXPECT_FALSE(ret1); 415c29fa5a6Sopenharmony_ci NetPacket pkt(MmiMessageId::INVALID); 416c29fa5a6Sopenharmony_ci EXPECT_FALSE(pkt.ChkRWError()); 417c29fa5a6Sopenharmony_ci EXPECT_FALSE(udsServer.SendMsg(fd, pkt)); 418c29fa5a6Sopenharmony_ci int32_t ret2 = dispatch.DispatchKeyEvent(fd, udsServer, keyEvent); 419c29fa5a6Sopenharmony_ci EXPECT_EQ(ret2, RET_ERR); 420c29fa5a6Sopenharmony_ci} 421c29fa5a6Sopenharmony_ci 422c29fa5a6Sopenharmony_ci/** 423c29fa5a6Sopenharmony_ci * @tc.name: FilterInvalidPointerItem_01 424c29fa5a6Sopenharmony_ci * @tc.desc: Test the function FilterInvalidPointerItem 425c29fa5a6Sopenharmony_ci * @tc.type: FUNC 426c29fa5a6Sopenharmony_ci * @tc.require: 427c29fa5a6Sopenharmony_ci */ 428c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, FilterInvalidPointerItem_01, TestSize.Level1) 429c29fa5a6Sopenharmony_ci{ 430c29fa5a6Sopenharmony_ci EventDispatchHandler eventdispatchhandler; 431c29fa5a6Sopenharmony_ci int32_t fd = 1; 432c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> pointerEvent = PointerEvent::Create(); 433c29fa5a6Sopenharmony_ci ASSERT_NE(pointerEvent, nullptr); 434c29fa5a6Sopenharmony_ci 435c29fa5a6Sopenharmony_ci std::vector<int32_t> pointerIdList; 436c29fa5a6Sopenharmony_ci pointerEvent->pointerId_ = 3; 437c29fa5a6Sopenharmony_ci pointerIdList.push_back(pointerEvent->pointerId_); 438c29fa5a6Sopenharmony_ci pointerEvent->pointerId_ = 5; 439c29fa5a6Sopenharmony_ci pointerIdList.push_back(pointerEvent->pointerId_); 440c29fa5a6Sopenharmony_ci EXPECT_TRUE(pointerIdList.size() > 1); 441c29fa5a6Sopenharmony_ci 442c29fa5a6Sopenharmony_ci PointerEvent::PointerItem pointeritem; 443c29fa5a6Sopenharmony_ci pointeritem.SetWindowX(10); 444c29fa5a6Sopenharmony_ci pointeritem.SetWindowY(20); 445c29fa5a6Sopenharmony_ci pointeritem.SetTargetWindowId(2); 446c29fa5a6Sopenharmony_ci int32_t id = 1; 447c29fa5a6Sopenharmony_ci EXPECT_FALSE(pointerEvent->GetPointerItem(id, pointeritem)); 448c29fa5a6Sopenharmony_ci 449c29fa5a6Sopenharmony_ci pointeritem.targetWindowId_ = 3; 450c29fa5a6Sopenharmony_ci auto itemPid = WIN_MGR->GetWindowPid(pointeritem.targetWindowId_); 451c29fa5a6Sopenharmony_ci EXPECT_FALSE(itemPid >= 0); 452c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventdispatchhandler.FilterInvalidPointerItem(pointerEvent, fd)); 453c29fa5a6Sopenharmony_ci} 454c29fa5a6Sopenharmony_ci 455c29fa5a6Sopenharmony_ci/** 456c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_HandleTouchEvent_001 457c29fa5a6Sopenharmony_ci * @tc.desc: Test the function HandleTouchEvent 458c29fa5a6Sopenharmony_ci * @tc.type: FUNC 459c29fa5a6Sopenharmony_ci * @tc.require: 460c29fa5a6Sopenharmony_ci */ 461c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_HandleTouchEvent_001, TestSize.Level1) 462c29fa5a6Sopenharmony_ci{ 463c29fa5a6Sopenharmony_ci EventDispatchHandler eventdispatchhandler; 464c29fa5a6Sopenharmony_ci int32_t eventType = 3; 465c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> sharedPointerEvent = std::make_shared<PointerEvent>(eventType); 466c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventdispatchhandler.HandleTouchEvent(sharedPointerEvent)); 467c29fa5a6Sopenharmony_ci} 468c29fa5a6Sopenharmony_ci 469c29fa5a6Sopenharmony_ci/** 470c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_FilterInvalidPointerItem_001 471c29fa5a6Sopenharmony_ci * @tc.desc: Test the function FilterInvalidPointerItem 472c29fa5a6Sopenharmony_ci * @tc.type: FUNC 473c29fa5a6Sopenharmony_ci * @tc.require: 474c29fa5a6Sopenharmony_ci */ 475c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_FilterInvalidPointerItem_001, TestSize.Level1) 476c29fa5a6Sopenharmony_ci{ 477c29fa5a6Sopenharmony_ci EventDispatchHandler eventdispatchhandler; 478c29fa5a6Sopenharmony_ci int32_t fd = 1; 479c29fa5a6Sopenharmony_ci int32_t eventType = 3; 480c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> sharedPointerEvent = std::make_shared<PointerEvent>(eventType); 481c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventdispatchhandler.FilterInvalidPointerItem(sharedPointerEvent, fd)); 482c29fa5a6Sopenharmony_ci} 483c29fa5a6Sopenharmony_ci 484c29fa5a6Sopenharmony_ci/** 485c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_FilterInvalidPointerItem_002 486c29fa5a6Sopenharmony_ci * @tc.desc: Test the function FilterInvalidPointerItem 487c29fa5a6Sopenharmony_ci * @tc.type: FUNC 488c29fa5a6Sopenharmony_ci * @tc.require: 489c29fa5a6Sopenharmony_ci */ 490c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_FilterInvalidPointerItem_002, TestSize.Level1) 491c29fa5a6Sopenharmony_ci{ 492c29fa5a6Sopenharmony_ci EventDispatchHandler eventdispatchhandler; 493c29fa5a6Sopenharmony_ci int32_t fd = 1; 494c29fa5a6Sopenharmony_ci int32_t eventType = 3; 495c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> sharedPointerEvent = std::make_shared<PointerEvent>(eventType); 496c29fa5a6Sopenharmony_ci EXPECT_NE(sharedPointerEvent, nullptr); 497c29fa5a6Sopenharmony_ci 498c29fa5a6Sopenharmony_ci std::vector<int32_t> pointerIdList; 499c29fa5a6Sopenharmony_ci pointerIdList.push_back(1); 500c29fa5a6Sopenharmony_ci pointerIdList.push_back(2); 501c29fa5a6Sopenharmony_ci EXPECT_TRUE(pointerIdList.size() > 1); 502c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventdispatchhandler.FilterInvalidPointerItem(sharedPointerEvent, fd)); 503c29fa5a6Sopenharmony_ci} 504c29fa5a6Sopenharmony_ci 505c29fa5a6Sopenharmony_ci/** 506c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_FilterInvalidPointerItem_003 507c29fa5a6Sopenharmony_ci * @tc.desc: Test the function FilterInvalidPointerItem 508c29fa5a6Sopenharmony_ci * @tc.type: FUNC 509c29fa5a6Sopenharmony_ci * @tc.require: 510c29fa5a6Sopenharmony_ci */ 511c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_FilterInvalidPointerItem_003, TestSize.Level1) 512c29fa5a6Sopenharmony_ci{ 513c29fa5a6Sopenharmony_ci EventDispatchHandler eventdispatchhandler; 514c29fa5a6Sopenharmony_ci int32_t fd = 1; 515c29fa5a6Sopenharmony_ci int32_t eventType = 3; 516c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> sharedPointerEvent = std::make_shared<PointerEvent>(eventType); 517c29fa5a6Sopenharmony_ci EXPECT_NE(sharedPointerEvent, nullptr); 518c29fa5a6Sopenharmony_ci 519c29fa5a6Sopenharmony_ci std::vector<int32_t> pointerIdList; 520c29fa5a6Sopenharmony_ci pointerIdList.push_back(1); 521c29fa5a6Sopenharmony_ci pointerIdList.push_back(2); 522c29fa5a6Sopenharmony_ci pointerIdList.push_back(3); 523c29fa5a6Sopenharmony_ci EXPECT_TRUE(pointerIdList.size() > 1); 524c29fa5a6Sopenharmony_ci 525c29fa5a6Sopenharmony_ci int32_t itemPid = 5; 526c29fa5a6Sopenharmony_ci EXPECT_TRUE(itemPid >= 0); 527c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventdispatchhandler.FilterInvalidPointerItem(sharedPointerEvent, fd)); 528c29fa5a6Sopenharmony_ci} 529c29fa5a6Sopenharmony_ci 530c29fa5a6Sopenharmony_ci/** 531c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_HandleMultiWindowPointerEvent_001 532c29fa5a6Sopenharmony_ci * @tc.desc: Test HandleMultiWindowPointerEvent 533c29fa5a6Sopenharmony_ci * @tc.type: FUNC 534c29fa5a6Sopenharmony_ci * @tc.require: 535c29fa5a6Sopenharmony_ci */ 536c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_HandleMultiWindowPointerEvent_001, TestSize.Level1) 537c29fa5a6Sopenharmony_ci{ 538c29fa5a6Sopenharmony_ci EventDispatchHandler eventdispatchhandler; 539c29fa5a6Sopenharmony_ci int32_t eventType = 3; 540c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> point = std::make_shared<PointerEvent>(eventType); 541c29fa5a6Sopenharmony_ci EXPECT_NE(point, nullptr); 542c29fa5a6Sopenharmony_ci 543c29fa5a6Sopenharmony_ci std::vector<int32_t> windowIds; 544c29fa5a6Sopenharmony_ci windowIds.push_back(1); 545c29fa5a6Sopenharmony_ci windowIds.push_back(2); 546c29fa5a6Sopenharmony_ci windowIds.push_back(3); 547c29fa5a6Sopenharmony_ci 548c29fa5a6Sopenharmony_ci PointerEvent::PointerItem pointerItem; 549c29fa5a6Sopenharmony_ci pointerItem.SetWindowX(10); 550c29fa5a6Sopenharmony_ci pointerItem.SetWindowY(20); 551c29fa5a6Sopenharmony_ci pointerItem.SetTargetWindowId(2); 552c29fa5a6Sopenharmony_ci 553c29fa5a6Sopenharmony_ci std::optional<WindowInfo> windowInfo; 554c29fa5a6Sopenharmony_ci windowInfo = std::nullopt; 555c29fa5a6Sopenharmony_ci EXPECT_TRUE(windowInfo == std::nullopt); 556c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventdispatchhandler.HandleMultiWindowPointerEvent(point, pointerItem)); 557c29fa5a6Sopenharmony_ci} 558c29fa5a6Sopenharmony_ci 559c29fa5a6Sopenharmony_ci/** 560c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_HandleMultiWindowPointerEvent_002 561c29fa5a6Sopenharmony_ci * @tc.desc: Test HandleMultiWindowPointerEvent 562c29fa5a6Sopenharmony_ci * @tc.type: FUNC 563c29fa5a6Sopenharmony_ci * @tc.require: 564c29fa5a6Sopenharmony_ci */ 565c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_HandleMultiWindowPointerEvent_002, TestSize.Level1) 566c29fa5a6Sopenharmony_ci{ 567c29fa5a6Sopenharmony_ci EventDispatchHandler eventdispatchhandler; 568c29fa5a6Sopenharmony_ci int32_t eventType = 2; 569c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> point = std::make_shared<PointerEvent>(eventType); 570c29fa5a6Sopenharmony_ci EXPECT_NE(point, nullptr); 571c29fa5a6Sopenharmony_ci 572c29fa5a6Sopenharmony_ci std::vector<int32_t> windowIds; 573c29fa5a6Sopenharmony_ci windowIds.push_back(1); 574c29fa5a6Sopenharmony_ci windowIds.push_back(2); 575c29fa5a6Sopenharmony_ci windowIds.push_back(3); 576c29fa5a6Sopenharmony_ci 577c29fa5a6Sopenharmony_ci PointerEvent::PointerItem pointerItem; 578c29fa5a6Sopenharmony_ci pointerItem.SetWindowX(20); 579c29fa5a6Sopenharmony_ci pointerItem.SetWindowY(30); 580c29fa5a6Sopenharmony_ci pointerItem.SetTargetWindowId(3); 581c29fa5a6Sopenharmony_ci 582c29fa5a6Sopenharmony_ci std::optional<WindowInfo> windowInfo; 583c29fa5a6Sopenharmony_ci EXPECT_TRUE(windowInfo->transform.empty()); 584c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventdispatchhandler.HandleMultiWindowPointerEvent(point, pointerItem)); 585c29fa5a6Sopenharmony_ci} 586c29fa5a6Sopenharmony_ci 587c29fa5a6Sopenharmony_ci/** 588c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_HandleMultiWindowPointerEvent_003 589c29fa5a6Sopenharmony_ci * @tc.desc: Test HandleMultiWindowPointerEvent 590c29fa5a6Sopenharmony_ci * @tc.type: FUNC 591c29fa5a6Sopenharmony_ci * @tc.require: 592c29fa5a6Sopenharmony_ci */ 593c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_HandleMultiWindowPointerEvent_003, TestSize.Level1) 594c29fa5a6Sopenharmony_ci{ 595c29fa5a6Sopenharmony_ci EventDispatchHandler eventdispatchhandler; 596c29fa5a6Sopenharmony_ci int32_t eventType = 5; 597c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> point = std::make_shared<PointerEvent>(eventType); 598c29fa5a6Sopenharmony_ci EXPECT_NE(point, nullptr); 599c29fa5a6Sopenharmony_ci point->pointerAction_ = PointerEvent::POINTER_ACTION_UP; 600c29fa5a6Sopenharmony_ci 601c29fa5a6Sopenharmony_ci std::vector<int32_t> windowIds; 602c29fa5a6Sopenharmony_ci windowIds.push_back(1); 603c29fa5a6Sopenharmony_ci windowIds.push_back(2); 604c29fa5a6Sopenharmony_ci windowIds.push_back(3); 605c29fa5a6Sopenharmony_ci 606c29fa5a6Sopenharmony_ci PointerEvent::PointerItem pointerItem; 607c29fa5a6Sopenharmony_ci pointerItem.SetWindowX(30); 608c29fa5a6Sopenharmony_ci pointerItem.SetWindowY(40); 609c29fa5a6Sopenharmony_ci pointerItem.SetTargetWindowId(5); 610c29fa5a6Sopenharmony_ci 611c29fa5a6Sopenharmony_ci std::optional<WindowInfo> windowInfo; 612c29fa5a6Sopenharmony_ci windowInfo = std::nullopt; 613c29fa5a6Sopenharmony_ci int32_t windowId = 2; 614c29fa5a6Sopenharmony_ci bool ret = eventdispatchhandler.ReissueEvent(point, windowId, windowInfo); 615c29fa5a6Sopenharmony_ci EXPECT_FALSE(ret); 616c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventdispatchhandler.HandleMultiWindowPointerEvent(point, pointerItem)); 617c29fa5a6Sopenharmony_ci} 618c29fa5a6Sopenharmony_ci 619c29fa5a6Sopenharmony_ci/** 620c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_HandleMultiWindowPointerEvent_004 621c29fa5a6Sopenharmony_ci * @tc.desc: Test HandleMultiWindowPointerEvent 622c29fa5a6Sopenharmony_ci * @tc.type: FUNC 623c29fa5a6Sopenharmony_ci * @tc.require: 624c29fa5a6Sopenharmony_ci */ 625c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_HandleMultiWindowPointerEvent_004, TestSize.Level1) 626c29fa5a6Sopenharmony_ci{ 627c29fa5a6Sopenharmony_ci EventDispatchHandler eventdispatchhandler; 628c29fa5a6Sopenharmony_ci int32_t eventType = 6; 629c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> point = std::make_shared<PointerEvent>(eventType); 630c29fa5a6Sopenharmony_ci EXPECT_NE(point, nullptr); 631c29fa5a6Sopenharmony_ci point->pointerAction_ = PointerEvent::POINTER_ACTION_DOWN; 632c29fa5a6Sopenharmony_ci point->pointerId_ = 2; 633c29fa5a6Sopenharmony_ci 634c29fa5a6Sopenharmony_ci std::vector<int32_t> windowIds; 635c29fa5a6Sopenharmony_ci windowIds.push_back(1); 636c29fa5a6Sopenharmony_ci windowIds.push_back(2); 637c29fa5a6Sopenharmony_ci windowIds.push_back(3); 638c29fa5a6Sopenharmony_ci 639c29fa5a6Sopenharmony_ci PointerEvent::PointerItem pointerItem; 640c29fa5a6Sopenharmony_ci pointerItem.SetWindowX(40); 641c29fa5a6Sopenharmony_ci pointerItem.SetWindowY(50); 642c29fa5a6Sopenharmony_ci pointerItem.SetTargetWindowId(5); 643c29fa5a6Sopenharmony_ci 644c29fa5a6Sopenharmony_ci std::optional<WindowInfo> windowInfo; 645c29fa5a6Sopenharmony_ci windowInfo = std::nullopt; 646c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventdispatchhandler.HandleMultiWindowPointerEvent(point, pointerItem)); 647c29fa5a6Sopenharmony_ci} 648c29fa5a6Sopenharmony_ci 649c29fa5a6Sopenharmony_ci/** 650c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_HandleMultiWindowPointerEvent_005 651c29fa5a6Sopenharmony_ci * @tc.desc: Test HandleMultiWindowPointerEvent 652c29fa5a6Sopenharmony_ci * @tc.type: FUNC 653c29fa5a6Sopenharmony_ci * @tc.require: 654c29fa5a6Sopenharmony_ci */ 655c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_HandleMultiWindowPointerEvent_005, TestSize.Level1) 656c29fa5a6Sopenharmony_ci{ 657c29fa5a6Sopenharmony_ci EventDispatchHandler eventdispatchhandler; 658c29fa5a6Sopenharmony_ci int32_t eventType = 6; 659c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> point = std::make_shared<PointerEvent>(eventType); 660c29fa5a6Sopenharmony_ci EXPECT_NE(point, nullptr); 661c29fa5a6Sopenharmony_ci point->pointerAction_ = PointerEvent::POINTER_ACTION_PULL_UP; 662c29fa5a6Sopenharmony_ci 663c29fa5a6Sopenharmony_ci std::vector<int32_t> windowIds; 664c29fa5a6Sopenharmony_ci windowIds.push_back(1); 665c29fa5a6Sopenharmony_ci windowIds.push_back(2); 666c29fa5a6Sopenharmony_ci windowIds.push_back(3); 667c29fa5a6Sopenharmony_ci 668c29fa5a6Sopenharmony_ci PointerEvent::PointerItem pointerItem; 669c29fa5a6Sopenharmony_ci pointerItem.SetWindowX(45); 670c29fa5a6Sopenharmony_ci pointerItem.SetWindowY(55); 671c29fa5a6Sopenharmony_ci pointerItem.SetTargetWindowId(3); 672c29fa5a6Sopenharmony_ci 673c29fa5a6Sopenharmony_ci std::optional<WindowInfo> windowInfo; 674c29fa5a6Sopenharmony_ci windowInfo = std::nullopt; 675c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventdispatchhandler.HandleMultiWindowPointerEvent(point, pointerItem)); 676c29fa5a6Sopenharmony_ci} 677c29fa5a6Sopenharmony_ci 678c29fa5a6Sopenharmony_ci/** 679c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_HandleMultiWindowPointerEvent_006 680c29fa5a6Sopenharmony_ci * @tc.desc: Test HandleMultiWindowPointerEvent 681c29fa5a6Sopenharmony_ci * @tc.type: FUNC 682c29fa5a6Sopenharmony_ci * @tc.require: 683c29fa5a6Sopenharmony_ci */ 684c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_HandleMultiWindowPointerEvent_006, TestSize.Level1) 685c29fa5a6Sopenharmony_ci{ 686c29fa5a6Sopenharmony_ci EventDispatchHandler eventdispatchhandler; 687c29fa5a6Sopenharmony_ci int32_t eventType = 6; 688c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> point = std::make_shared<PointerEvent>(eventType); 689c29fa5a6Sopenharmony_ci EXPECT_NE(point, nullptr); 690c29fa5a6Sopenharmony_ci point->pointerAction_ = PointerEvent::POINTER_ACTION_CANCEL; 691c29fa5a6Sopenharmony_ci 692c29fa5a6Sopenharmony_ci std::vector<int32_t> windowIds; 693c29fa5a6Sopenharmony_ci windowIds.push_back(1); 694c29fa5a6Sopenharmony_ci windowIds.push_back(2); 695c29fa5a6Sopenharmony_ci windowIds.push_back(3); 696c29fa5a6Sopenharmony_ci 697c29fa5a6Sopenharmony_ci PointerEvent::PointerItem pointerItem; 698c29fa5a6Sopenharmony_ci pointerItem.SetWindowX(35); 699c29fa5a6Sopenharmony_ci pointerItem.SetWindowY(50); 700c29fa5a6Sopenharmony_ci pointerItem.SetTargetWindowId(2); 701c29fa5a6Sopenharmony_ci 702c29fa5a6Sopenharmony_ci std::optional<WindowInfo> windowInfo; 703c29fa5a6Sopenharmony_ci windowInfo = std::nullopt; 704c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventdispatchhandler.HandleMultiWindowPointerEvent(point, pointerItem)); 705c29fa5a6Sopenharmony_ci} 706c29fa5a6Sopenharmony_ci 707c29fa5a6Sopenharmony_ci/** 708c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_NotifyPointerEventToRS_001 709c29fa5a6Sopenharmony_ci * @tc.desc: Test the function NotifyPointerEventToRS 710c29fa5a6Sopenharmony_ci * @tc.type: FUNC 711c29fa5a6Sopenharmony_ci * @tc.require: 712c29fa5a6Sopenharmony_ci */ 713c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_NotifyPointerEventToRS_001, TestSize.Level1) 714c29fa5a6Sopenharmony_ci{ 715c29fa5a6Sopenharmony_ci EventDispatchHandler eventdispatchhandler; 716c29fa5a6Sopenharmony_ci int32_t action = 1; 717c29fa5a6Sopenharmony_ci std::string name = "ExampleProgram"; 718c29fa5a6Sopenharmony_ci uint32_t processId = 12345; 719c29fa5a6Sopenharmony_ci int32_t touchCnt = 0; 720c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventdispatchhandler.NotifyPointerEventToRS(action, name, processId, touchCnt)); 721c29fa5a6Sopenharmony_ci} 722c29fa5a6Sopenharmony_ci 723c29fa5a6Sopenharmony_ci/** 724c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_HandlePointerEventInner_001 725c29fa5a6Sopenharmony_ci * @tc.desc: Test the function HandlePointerEventInner 726c29fa5a6Sopenharmony_ci * @tc.type: FUNC 727c29fa5a6Sopenharmony_ci * @tc.require: 728c29fa5a6Sopenharmony_ci */ 729c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_HandlePointerEventInner_001, TestSize.Level1) 730c29fa5a6Sopenharmony_ci{ 731c29fa5a6Sopenharmony_ci EventDispatchHandler eventdispatchhandler; 732c29fa5a6Sopenharmony_ci int32_t eventType = 3; 733c29fa5a6Sopenharmony_ci PointerEvent* pointerEvent = new PointerEvent(eventType); 734c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> sharedPointerEvent(pointerEvent); 735c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventdispatchhandler.HandlePointerEventInner(sharedPointerEvent)); 736c29fa5a6Sopenharmony_ci} 737c29fa5a6Sopenharmony_ci 738c29fa5a6Sopenharmony_ci/** 739c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_HandlePointerEventInner_002 740c29fa5a6Sopenharmony_ci * @tc.desc: Test the function HandlePointerEventInner 741c29fa5a6Sopenharmony_ci * @tc.type: FUNC 742c29fa5a6Sopenharmony_ci * @tc.require: 743c29fa5a6Sopenharmony_ci */ 744c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_HandlePointerEventInner_002, TestSize.Level1) 745c29fa5a6Sopenharmony_ci{ 746c29fa5a6Sopenharmony_ci EventDispatchHandler eventdispatchhandler; 747c29fa5a6Sopenharmony_ci int32_t eventType = 3; 748c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> point = std::make_shared<PointerEvent>(eventType); 749c29fa5a6Sopenharmony_ci EXPECT_NE(point, nullptr); 750c29fa5a6Sopenharmony_ci std::vector<int32_t> windowIds; 751c29fa5a6Sopenharmony_ci windowIds.push_back(1); 752c29fa5a6Sopenharmony_ci windowIds.push_back(2); 753c29fa5a6Sopenharmony_ci EXPECT_FALSE(windowIds.empty()); 754c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventdispatchhandler.HandlePointerEventInner(point)); 755c29fa5a6Sopenharmony_ci} 756c29fa5a6Sopenharmony_ci 757c29fa5a6Sopenharmony_ci/** 758c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_DispatchKeyEventPid_001 759c29fa5a6Sopenharmony_ci * @tc.desc: Test the function DispatchKeyEventPid 760c29fa5a6Sopenharmony_ci * @tc.type: FUNC 761c29fa5a6Sopenharmony_ci * @tc.require: 762c29fa5a6Sopenharmony_ci */ 763c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_DispatchKeyEventPid_001, TestSize.Level1) 764c29fa5a6Sopenharmony_ci{ 765c29fa5a6Sopenharmony_ci EventDispatchHandler eventdispatchhandler; 766c29fa5a6Sopenharmony_ci UDSServer udsServer; 767c29fa5a6Sopenharmony_ci int32_t keyevent = 3; 768c29fa5a6Sopenharmony_ci KeyEvent* keyEvent = new KeyEvent(keyevent); 769c29fa5a6Sopenharmony_ci std::shared_ptr<KeyEvent> sharedKeyEvent(keyEvent); 770c29fa5a6Sopenharmony_ci int32_t ret = eventdispatchhandler.DispatchKeyEventPid(udsServer, sharedKeyEvent); 771c29fa5a6Sopenharmony_ci EXPECT_EQ(ret, -1); 772c29fa5a6Sopenharmony_ci} 773c29fa5a6Sopenharmony_ci 774c29fa5a6Sopenharmony_ci/** 775c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_AcquireEnableMark 776c29fa5a6Sopenharmony_ci * @tc.desc: Test Acquire Enable Mark 777c29fa5a6Sopenharmony_ci * @tc.type: FUNC 778c29fa5a6Sopenharmony_ci * @tc.require: 779c29fa5a6Sopenharmony_ci */ 780c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_AcquireEnableMark, TestSize.Level1) 781c29fa5a6Sopenharmony_ci{ 782c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 783c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> event = PointerEvent::Create(); 784c29fa5a6Sopenharmony_ci ASSERT_NE(event, nullptr); 785c29fa5a6Sopenharmony_ci event->SetPointerAction(PointerEvent::POINTER_ACTION_MOVE); 786c29fa5a6Sopenharmony_ci ASSERT_FALSE(dispatch.AcquireEnableMark(event)); 787c29fa5a6Sopenharmony_ci event->SetPointerAction(PointerEvent::POINTER_ACTION_DOWN); 788c29fa5a6Sopenharmony_ci ASSERT_TRUE(dispatch.AcquireEnableMark(event)); 789c29fa5a6Sopenharmony_ci} 790c29fa5a6Sopenharmony_ci 791c29fa5a6Sopenharmony_ci/** 792c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_DispatchPointerEventInner_001 793c29fa5a6Sopenharmony_ci * @tc.desc: Test Dispatch Pointer Event Inner 794c29fa5a6Sopenharmony_ci * @tc.type: FUNC 795c29fa5a6Sopenharmony_ci * @tc.require: 796c29fa5a6Sopenharmony_ci */ 797c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_DispatchPointerEventInner_001, TestSize.Level1) 798c29fa5a6Sopenharmony_ci{ 799c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 800c29fa5a6Sopenharmony_ci int32_t fd = -1; 801c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> pointerEvent = PointerEvent::Create(); 802c29fa5a6Sopenharmony_ci ASSERT_NE(pointerEvent, nullptr); 803c29fa5a6Sopenharmony_ci dispatch.eventTime_ = 1000; 804c29fa5a6Sopenharmony_ci pointerEvent->SetActionTime(5000); 805c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(dispatch.DispatchPointerEventInner(pointerEvent, fd)); 806c29fa5a6Sopenharmony_ci} 807c29fa5a6Sopenharmony_ci 808c29fa5a6Sopenharmony_ci/** 809c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_DispatchPointerEventInner_002 810c29fa5a6Sopenharmony_ci * @tc.desc: Test Dispatch Pointer Event Inner 811c29fa5a6Sopenharmony_ci * @tc.type: FUNC 812c29fa5a6Sopenharmony_ci * @tc.require: 813c29fa5a6Sopenharmony_ci */ 814c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_DispatchPointerEventInner_002, TestSize.Level1) 815c29fa5a6Sopenharmony_ci{ 816c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 817c29fa5a6Sopenharmony_ci int32_t fd = -1; 818c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> pointerEvent = PointerEvent::Create(); 819c29fa5a6Sopenharmony_ci ASSERT_NE(pointerEvent, nullptr); 820c29fa5a6Sopenharmony_ci int32_t currentTime = dispatch.currentTime_; 821c29fa5a6Sopenharmony_ci int32_t eventTime = dispatch.eventTime_; 822c29fa5a6Sopenharmony_ci int32_t INTERVAL_TIME = 3000; 823c29fa5a6Sopenharmony_ci currentTime = 6000; 824c29fa5a6Sopenharmony_ci eventTime = 1000; 825c29fa5a6Sopenharmony_ci EXPECT_TRUE(currentTime - eventTime > INTERVAL_TIME); 826c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(dispatch.DispatchPointerEventInner(pointerEvent, fd)); 827c29fa5a6Sopenharmony_ci} 828c29fa5a6Sopenharmony_ci 829c29fa5a6Sopenharmony_ci/** 830c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_DispatchPointerEventInner_003 831c29fa5a6Sopenharmony_ci * @tc.desc: Test Dispatch Pointer Event Inner 832c29fa5a6Sopenharmony_ci * @tc.type: FUNC 833c29fa5a6Sopenharmony_ci * @tc.require: 834c29fa5a6Sopenharmony_ci */ 835c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_DispatchPointerEventInner_003, TestSize.Level1) 836c29fa5a6Sopenharmony_ci{ 837c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 838c29fa5a6Sopenharmony_ci int32_t fd = 1; 839c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> point = PointerEvent::Create(); 840c29fa5a6Sopenharmony_ci ASSERT_NE(point, nullptr); 841c29fa5a6Sopenharmony_ci int32_t pointerAction; 842c29fa5a6Sopenharmony_ci pointerAction = PointerEvent::POINTER_ACTION_DOWN; 843c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(dispatch.DispatchPointerEventInner(point, fd)); 844c29fa5a6Sopenharmony_ci} 845c29fa5a6Sopenharmony_ci 846c29fa5a6Sopenharmony_ci/** 847c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_DispatchPointerEventInner_004 848c29fa5a6Sopenharmony_ci * @tc.desc: Test Dispatch Pointer Event Inner 849c29fa5a6Sopenharmony_ci * @tc.type: FUNC 850c29fa5a6Sopenharmony_ci * @tc.require: 851c29fa5a6Sopenharmony_ci */ 852c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_DispatchPointerEventInner_004, TestSize.Level1) 853c29fa5a6Sopenharmony_ci{ 854c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 855c29fa5a6Sopenharmony_ci SessionPtr sess = nullptr; 856c29fa5a6Sopenharmony_ci int32_t fd = 1; 857c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> pointerEvent = PointerEvent::Create(); 858c29fa5a6Sopenharmony_ci ASSERT_NE(pointerEvent, nullptr); 859c29fa5a6Sopenharmony_ci 860c29fa5a6Sopenharmony_ci int32_t type = 0; 861c29fa5a6Sopenharmony_ci int64_t time = 3000; 862c29fa5a6Sopenharmony_ci sess = std::make_shared<UDSSession>(PROGRAM_NAME, g_moduleType, g_writeFd, UID_ROOT, g_pid); 863c29fa5a6Sopenharmony_ci bool ret = ANRMgr->TriggerANR(type, time, sess); 864c29fa5a6Sopenharmony_ci EXPECT_FALSE(ret); 865c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(dispatch.DispatchPointerEventInner(pointerEvent, fd)); 866c29fa5a6Sopenharmony_ci} 867c29fa5a6Sopenharmony_ci 868c29fa5a6Sopenharmony_ci/** 869c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_DispatchPointerEventInner_005 870c29fa5a6Sopenharmony_ci * @tc.desc: Test Dispatch Pointer Event Inner 871c29fa5a6Sopenharmony_ci * @tc.type: FUNC 872c29fa5a6Sopenharmony_ci * @tc.require: 873c29fa5a6Sopenharmony_ci */ 874c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_DispatchPointerEventInner_005, TestSize.Level1) 875c29fa5a6Sopenharmony_ci{ 876c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 877c29fa5a6Sopenharmony_ci SessionPtr sess = nullptr; 878c29fa5a6Sopenharmony_ci int32_t fd = 1; 879c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> pointerEvent = PointerEvent::Create(); 880c29fa5a6Sopenharmony_ci ASSERT_NE(pointerEvent, nullptr); 881c29fa5a6Sopenharmony_ci 882c29fa5a6Sopenharmony_ci int32_t type = 0; 883c29fa5a6Sopenharmony_ci int64_t time = 3000; 884c29fa5a6Sopenharmony_ci sess = std::make_shared<UDSSession>(PROGRAM_NAME, g_moduleType, g_writeFd, UID_ROOT, g_pid); 885c29fa5a6Sopenharmony_ci bool ret = ANRMgr->TriggerANR(type, time, sess); 886c29fa5a6Sopenharmony_ci EXPECT_FALSE(ret); 887c29fa5a6Sopenharmony_ci 888c29fa5a6Sopenharmony_ci pointerEvent->pointerAction_ = PointerEvent::POINTER_ACTION_DOWN; 889c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(dispatch.DispatchPointerEventInner(pointerEvent, fd)); 890c29fa5a6Sopenharmony_ci} 891c29fa5a6Sopenharmony_ci 892c29fa5a6Sopenharmony_ci/** 893c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_DispatchPointerEventInner_006 894c29fa5a6Sopenharmony_ci * @tc.desc: Test Dispatch Pointer Event Inner 895c29fa5a6Sopenharmony_ci * @tc.type: FUNC 896c29fa5a6Sopenharmony_ci * @tc.require: 897c29fa5a6Sopenharmony_ci */ 898c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_DispatchPointerEventInner_006, TestSize.Level1) 899c29fa5a6Sopenharmony_ci{ 900c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 901c29fa5a6Sopenharmony_ci SessionPtr sess = nullptr; 902c29fa5a6Sopenharmony_ci int32_t fd = 2; 903c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> pointerEvent = PointerEvent::Create(); 904c29fa5a6Sopenharmony_ci ASSERT_NE(pointerEvent, nullptr); 905c29fa5a6Sopenharmony_ci 906c29fa5a6Sopenharmony_ci int32_t type = 0; 907c29fa5a6Sopenharmony_ci int64_t time = 3000; 908c29fa5a6Sopenharmony_ci sess = std::make_shared<UDSSession>(PROGRAM_NAME, g_moduleType, g_writeFd, UID_ROOT, g_pid); 909c29fa5a6Sopenharmony_ci bool ret = ANRMgr->TriggerANR(type, time, sess); 910c29fa5a6Sopenharmony_ci EXPECT_FALSE(ret); 911c29fa5a6Sopenharmony_ci 912c29fa5a6Sopenharmony_ci pointerEvent->pointerAction_ = PointerEvent::POINTER_ACTION_UP; 913c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(dispatch.DispatchPointerEventInner(pointerEvent, fd)); 914c29fa5a6Sopenharmony_ci} 915c29fa5a6Sopenharmony_ci 916c29fa5a6Sopenharmony_ci/** 917c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_DispatchPointerEventInner_007 918c29fa5a6Sopenharmony_ci * @tc.desc: Test Dispatch Pointer Event Inner 919c29fa5a6Sopenharmony_ci * @tc.type: FUNC 920c29fa5a6Sopenharmony_ci * @tc.require: 921c29fa5a6Sopenharmony_ci */ 922c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_DispatchPointerEventInner_007, TestSize.Level1) 923c29fa5a6Sopenharmony_ci{ 924c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 925c29fa5a6Sopenharmony_ci SessionPtr sess = nullptr; 926c29fa5a6Sopenharmony_ci int32_t fd = 2; 927c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> pointerEvent = PointerEvent::Create(); 928c29fa5a6Sopenharmony_ci ASSERT_NE(pointerEvent, nullptr); 929c29fa5a6Sopenharmony_ci 930c29fa5a6Sopenharmony_ci int32_t type = 0; 931c29fa5a6Sopenharmony_ci int64_t time = 3000; 932c29fa5a6Sopenharmony_ci sess = std::make_shared<UDSSession>(PROGRAM_NAME, g_moduleType, g_writeFd, UID_ROOT, g_pid); 933c29fa5a6Sopenharmony_ci bool ret = ANRMgr->TriggerANR(type, time, sess); 934c29fa5a6Sopenharmony_ci EXPECT_FALSE(ret); 935c29fa5a6Sopenharmony_ci 936c29fa5a6Sopenharmony_ci pointerEvent->pointerAction_ = PointerEvent::POINTER_ACTION_PULL_DOWN; 937c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(dispatch.DispatchPointerEventInner(pointerEvent, fd)); 938c29fa5a6Sopenharmony_ci} 939c29fa5a6Sopenharmony_ci 940c29fa5a6Sopenharmony_ci/** 941c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_DispatchPointerEventInner_008 942c29fa5a6Sopenharmony_ci * @tc.desc: Test Dispatch Pointer Event Inner 943c29fa5a6Sopenharmony_ci * @tc.type: FUNC 944c29fa5a6Sopenharmony_ci * @tc.require: 945c29fa5a6Sopenharmony_ci */ 946c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_DispatchPointerEventInner_008, TestSize.Level1) 947c29fa5a6Sopenharmony_ci{ 948c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 949c29fa5a6Sopenharmony_ci SessionPtr sess = nullptr; 950c29fa5a6Sopenharmony_ci int32_t fd = 2; 951c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> pointerEvent = PointerEvent::Create(); 952c29fa5a6Sopenharmony_ci ASSERT_NE(pointerEvent, nullptr); 953c29fa5a6Sopenharmony_ci 954c29fa5a6Sopenharmony_ci int32_t type = 0; 955c29fa5a6Sopenharmony_ci int64_t time = 3000; 956c29fa5a6Sopenharmony_ci sess = std::make_shared<UDSSession>(PROGRAM_NAME, g_moduleType, g_writeFd, UID_ROOT, g_pid); 957c29fa5a6Sopenharmony_ci bool ret = ANRMgr->TriggerANR(type, time, sess); 958c29fa5a6Sopenharmony_ci EXPECT_FALSE(ret); 959c29fa5a6Sopenharmony_ci 960c29fa5a6Sopenharmony_ci pointerEvent->pointerAction_ = PointerEvent::POINTER_ACTION_PULL_UP; 961c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(dispatch.DispatchPointerEventInner(pointerEvent, fd)); 962c29fa5a6Sopenharmony_ci} 963c29fa5a6Sopenharmony_ci 964c29fa5a6Sopenharmony_ci/** 965c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_DispatchPointerEventInner_009 966c29fa5a6Sopenharmony_ci * @tc.desc: Test Dispatch Pointer Event Inner 967c29fa5a6Sopenharmony_ci * @tc.type: FUNC 968c29fa5a6Sopenharmony_ci * @tc.require: 969c29fa5a6Sopenharmony_ci */ 970c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_DispatchPointerEventInner_009, TestSize.Level1) 971c29fa5a6Sopenharmony_ci{ 972c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 973c29fa5a6Sopenharmony_ci SessionPtr sess = nullptr; 974c29fa5a6Sopenharmony_ci int32_t fd = 2; 975c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> pointerEvent = PointerEvent::Create(); 976c29fa5a6Sopenharmony_ci ASSERT_NE(pointerEvent, nullptr); 977c29fa5a6Sopenharmony_ci 978c29fa5a6Sopenharmony_ci int32_t type = 0; 979c29fa5a6Sopenharmony_ci int64_t time = 3000; 980c29fa5a6Sopenharmony_ci sess = std::make_shared<UDSSession>(PROGRAM_NAME, g_moduleType, g_writeFd, UID_ROOT, g_pid); 981c29fa5a6Sopenharmony_ci bool ret = ANRMgr->TriggerANR(type, time, sess); 982c29fa5a6Sopenharmony_ci EXPECT_FALSE(ret); 983c29fa5a6Sopenharmony_ci 984c29fa5a6Sopenharmony_ci pointerEvent->pointerAction_ = PointerEvent::POINTER_ACTION_MOVE; 985c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(dispatch.DispatchPointerEventInner(pointerEvent, fd)); 986c29fa5a6Sopenharmony_ci} 987c29fa5a6Sopenharmony_ci 988c29fa5a6Sopenharmony_ci/** 989c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_DispatchKeyEventPid_002 990c29fa5a6Sopenharmony_ci * @tc.desc: Test Dispatch Key Event Pid 991c29fa5a6Sopenharmony_ci * @tc.type: FUNC 992c29fa5a6Sopenharmony_ci * @tc.require: 993c29fa5a6Sopenharmony_ci */ 994c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_DispatchKeyEventPid_002, TestSize.Level1) 995c29fa5a6Sopenharmony_ci{ 996c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 997c29fa5a6Sopenharmony_ci UDSServer udsServer; 998c29fa5a6Sopenharmony_ci std::shared_ptr<KeyEvent> KeyEvent = KeyEvent::Create(); 999c29fa5a6Sopenharmony_ci ASSERT_NE(KeyEvent, nullptr); 1000c29fa5a6Sopenharmony_ci dispatch.eventTime_ = 1000; 1001c29fa5a6Sopenharmony_ci KeyEvent->SetActionTime(5000); 1002c29fa5a6Sopenharmony_ci ASSERT_EQ(dispatch.DispatchKeyEventPid(udsServer, KeyEvent), RET_OK); 1003c29fa5a6Sopenharmony_ci} 1004c29fa5a6Sopenharmony_ci 1005c29fa5a6Sopenharmony_ci/** 1006c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_DispatchKeyEventPid_003 1007c29fa5a6Sopenharmony_ci * @tc.desc: Test DispatchKeyEventPid 1008c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1009c29fa5a6Sopenharmony_ci * @tc.require: 1010c29fa5a6Sopenharmony_ci */ 1011c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_DispatchKeyEventPid_003, TestSize.Level1) 1012c29fa5a6Sopenharmony_ci{ 1013c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 1014c29fa5a6Sopenharmony_ci UDSServer udsServer; 1015c29fa5a6Sopenharmony_ci std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 1016c29fa5a6Sopenharmony_ci ASSERT_NE(keyEvent, nullptr); 1017c29fa5a6Sopenharmony_ci int32_t currentTime = dispatch.currentTime_; 1018c29fa5a6Sopenharmony_ci int32_t eventTime = dispatch.eventTime_; 1019c29fa5a6Sopenharmony_ci int32_t INTERVAL_TIME = 3000; 1020c29fa5a6Sopenharmony_ci currentTime = 6000; 1021c29fa5a6Sopenharmony_ci eventTime = 1000; 1022c29fa5a6Sopenharmony_ci EXPECT_TRUE(currentTime - eventTime > INTERVAL_TIME); 1023c29fa5a6Sopenharmony_ci int32_t ret = dispatch.DispatchKeyEventPid(udsServer, keyEvent); 1024c29fa5a6Sopenharmony_ci EXPECT_EQ(ret, RET_OK); 1025c29fa5a6Sopenharmony_ci} 1026c29fa5a6Sopenharmony_ci 1027c29fa5a6Sopenharmony_ci/** 1028c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_DispatchKeyEventPid_004 1029c29fa5a6Sopenharmony_ci * @tc.desc: Test DispatchKeyEventPid 1030c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1031c29fa5a6Sopenharmony_ci * @tc.require: 1032c29fa5a6Sopenharmony_ci */ 1033c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_DispatchKeyEventPid_004, TestSize.Level1) 1034c29fa5a6Sopenharmony_ci{ 1035c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 1036c29fa5a6Sopenharmony_ci UDSServer udsServer; 1037c29fa5a6Sopenharmony_ci std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 1038c29fa5a6Sopenharmony_ci ASSERT_NE(keyEvent, nullptr); 1039c29fa5a6Sopenharmony_ci 1040c29fa5a6Sopenharmony_ci NetPacket pkt(MmiMessageId::INVALID); 1041c29fa5a6Sopenharmony_ci EXPECT_FALSE(pkt.ChkRWError()); 1042c29fa5a6Sopenharmony_ci int32_t ret = dispatch.DispatchKeyEventPid(udsServer, keyEvent); 1043c29fa5a6Sopenharmony_ci EXPECT_EQ(ret, RET_OK); 1044c29fa5a6Sopenharmony_ci} 1045c29fa5a6Sopenharmony_ci 1046c29fa5a6Sopenharmony_ci/** 1047c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_DispatchKeyEventPid_005 1048c29fa5a6Sopenharmony_ci * @tc.desc: Test DispatchKeyEventPid 1049c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1050c29fa5a6Sopenharmony_ci * @tc.require: 1051c29fa5a6Sopenharmony_ci */ 1052c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_DispatchKeyEventPid_005, TestSize.Level1) 1053c29fa5a6Sopenharmony_ci{ 1054c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 1055c29fa5a6Sopenharmony_ci UDSServer udsServer; 1056c29fa5a6Sopenharmony_ci SessionPtr sess = nullptr; 1057c29fa5a6Sopenharmony_ci std::shared_ptr<KeyEvent> KeyEvent = KeyEvent::Create(); 1058c29fa5a6Sopenharmony_ci ASSERT_NE(KeyEvent, nullptr); 1059c29fa5a6Sopenharmony_ci dispatch.eventTime_ = 1000; 1060c29fa5a6Sopenharmony_ci KeyEvent->SetActionTime(2000); 1061c29fa5a6Sopenharmony_ci 1062c29fa5a6Sopenharmony_ci int32_t type = 0; 1063c29fa5a6Sopenharmony_ci int64_t time = 2000; 1064c29fa5a6Sopenharmony_ci sess = std::make_shared<UDSSession>(PROGRAM_NAME, g_moduleType, g_writeFd, UID_ROOT, g_pid); 1065c29fa5a6Sopenharmony_ci bool ret = ANRMgr->TriggerANR(type, time, sess); 1066c29fa5a6Sopenharmony_ci EXPECT_FALSE(ret); 1067c29fa5a6Sopenharmony_ci 1068c29fa5a6Sopenharmony_ci ASSERT_EQ(dispatch.DispatchKeyEventPid(udsServer, KeyEvent), RET_OK); 1069c29fa5a6Sopenharmony_ci} 1070c29fa5a6Sopenharmony_ci 1071c29fa5a6Sopenharmony_ci/** 1072c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_ReissueEvent_001 1073c29fa5a6Sopenharmony_ci * @tc.desc: Test ReissueEvent 1074c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1075c29fa5a6Sopenharmony_ci * @tc.require: 1076c29fa5a6Sopenharmony_ci */ 1077c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_ReissueEvent_001, TestSize.Level1) 1078c29fa5a6Sopenharmony_ci{ 1079c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 1080c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> point = PointerEvent::Create(); 1081c29fa5a6Sopenharmony_ci ASSERT_NE(point, nullptr); 1082c29fa5a6Sopenharmony_ci point->pointerAction_ = PointerEvent::POINTER_ACTION_UP; 1083c29fa5a6Sopenharmony_ci int32_t windowId = 100; 1084c29fa5a6Sopenharmony_ci std::optional<WindowInfo> windowInfo = std::nullopt; 1085c29fa5a6Sopenharmony_ci bool result = dispatch.ReissueEvent(point, windowId, windowInfo); 1086c29fa5a6Sopenharmony_ci EXPECT_FALSE(result); 1087c29fa5a6Sopenharmony_ci} 1088c29fa5a6Sopenharmony_ci 1089c29fa5a6Sopenharmony_ci/** 1090c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_ReissueEvent_002 1091c29fa5a6Sopenharmony_ci * @tc.desc: Test ReissueEvent 1092c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1093c29fa5a6Sopenharmony_ci * @tc.require: 1094c29fa5a6Sopenharmony_ci */ 1095c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_ReissueEvent_002, TestSize.Level1) 1096c29fa5a6Sopenharmony_ci{ 1097c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 1098c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> point = PointerEvent::Create(); 1099c29fa5a6Sopenharmony_ci ASSERT_NE(point, nullptr); 1100c29fa5a6Sopenharmony_ci point->pointerAction_ = PointerEvent::POINTER_ACTION_DOWN; 1101c29fa5a6Sopenharmony_ci int32_t windowId = 100; 1102c29fa5a6Sopenharmony_ci std::optional<WindowInfo> windowInfo = std::nullopt; 1103c29fa5a6Sopenharmony_ci bool result = dispatch.ReissueEvent(point, windowId, windowInfo); 1104c29fa5a6Sopenharmony_ci EXPECT_FALSE(result); 1105c29fa5a6Sopenharmony_ci} 1106c29fa5a6Sopenharmony_ci 1107c29fa5a6Sopenharmony_ci/** 1108c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_ReissueEvent_003 1109c29fa5a6Sopenharmony_ci * @tc.desc: Test ReissueEvent 1110c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1111c29fa5a6Sopenharmony_ci * @tc.require: 1112c29fa5a6Sopenharmony_ci */ 1113c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_ReissueEvent_003, TestSize.Level1) 1114c29fa5a6Sopenharmony_ci{ 1115c29fa5a6Sopenharmony_ci EventDispatchHandler handler; 1116c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> point = PointerEvent::Create(); 1117c29fa5a6Sopenharmony_ci ASSERT_NE(point, nullptr); 1118c29fa5a6Sopenharmony_ci point->pointerAction_ = PointerEvent::POINTER_ACTION_UP; 1119c29fa5a6Sopenharmony_ci int32_t windowId = 1; 1120c29fa5a6Sopenharmony_ci point->pointerId_ = 1; 1121c29fa5a6Sopenharmony_ci point->SetPointerId(point->pointerId_); 1122c29fa5a6Sopenharmony_ci std::optional<WindowInfo> windowInfo = std::nullopt; 1123c29fa5a6Sopenharmony_ci std::shared_ptr<WindowInfo> windowInfo1 = std::make_shared<WindowInfo>(); 1124c29fa5a6Sopenharmony_ci windowInfo1->id = 1; 1125c29fa5a6Sopenharmony_ci handler.cancelEventList_[1].insert(windowInfo1); 1126c29fa5a6Sopenharmony_ci bool result = handler.ReissueEvent(point, windowId, windowInfo); 1127c29fa5a6Sopenharmony_ci EXPECT_TRUE(result); 1128c29fa5a6Sopenharmony_ci} 1129c29fa5a6Sopenharmony_ci 1130c29fa5a6Sopenharmony_ci/** 1131c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_ReissueEvent_004 1132c29fa5a6Sopenharmony_ci * @tc.desc: Test ReissueEvent 1133c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1134c29fa5a6Sopenharmony_ci * @tc.require: 1135c29fa5a6Sopenharmony_ci */ 1136c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_ReissueEvent_004, TestSize.Level1) 1137c29fa5a6Sopenharmony_ci{ 1138c29fa5a6Sopenharmony_ci EventDispatchHandler handler; 1139c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> point = PointerEvent::Create(); 1140c29fa5a6Sopenharmony_ci ASSERT_NE(point, nullptr); 1141c29fa5a6Sopenharmony_ci point->pointerAction_ = PointerEvent::POINTER_ACTION_DOWN; 1142c29fa5a6Sopenharmony_ci int32_t windowId = 1; 1143c29fa5a6Sopenharmony_ci point->pointerId_ = 1; 1144c29fa5a6Sopenharmony_ci point->SetPointerId(point->pointerId_); 1145c29fa5a6Sopenharmony_ci std::optional<WindowInfo> windowInfo = std::nullopt; 1146c29fa5a6Sopenharmony_ci std::shared_ptr<WindowInfo> windowInfo1 = std::make_shared<WindowInfo>(); 1147c29fa5a6Sopenharmony_ci windowInfo1->id = 1; 1148c29fa5a6Sopenharmony_ci handler.cancelEventList_[1].insert(windowInfo1); 1149c29fa5a6Sopenharmony_ci bool result = handler.ReissueEvent(point, windowId, windowInfo); 1150c29fa5a6Sopenharmony_ci EXPECT_FALSE(result); 1151c29fa5a6Sopenharmony_ci} 1152c29fa5a6Sopenharmony_ci 1153c29fa5a6Sopenharmony_ci/** 1154c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_ReissueEvent_005 1155c29fa5a6Sopenharmony_ci * @tc.desc: Test ReissueEvent 1156c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1157c29fa5a6Sopenharmony_ci * @tc.require: 1158c29fa5a6Sopenharmony_ci */ 1159c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_ReissueEvent_005, TestSize.Level1) 1160c29fa5a6Sopenharmony_ci{ 1161c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 1162c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> point = PointerEvent::Create(); 1163c29fa5a6Sopenharmony_ci ASSERT_NE(point, nullptr); 1164c29fa5a6Sopenharmony_ci point->pointerAction_ = PointerEvent::POINTER_ACTION_DOWN; 1165c29fa5a6Sopenharmony_ci int32_t windowId = 100; 1166c29fa5a6Sopenharmony_ci std::optional<WindowInfo> windowInfo = std::make_optional<WindowInfo>(); 1167c29fa5a6Sopenharmony_ci ASSERT_NE(windowInfo, std::nullopt); 1168c29fa5a6Sopenharmony_ci point->pointerId_ = 1; 1169c29fa5a6Sopenharmony_ci point->SetPointerId(point->pointerId_); 1170c29fa5a6Sopenharmony_ci std::shared_ptr<WindowInfo> windowInfo1 = std::make_shared<WindowInfo>(); 1171c29fa5a6Sopenharmony_ci windowInfo1->id = 1; 1172c29fa5a6Sopenharmony_ci dispatch.cancelEventList_[1].insert(windowInfo1); 1173c29fa5a6Sopenharmony_ci bool result = dispatch.ReissueEvent(point, windowId, windowInfo); 1174c29fa5a6Sopenharmony_ci EXPECT_TRUE(result); 1175c29fa5a6Sopenharmony_ci} 1176c29fa5a6Sopenharmony_ci 1177c29fa5a6Sopenharmony_ci/** 1178c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_ReissueEvent_006 1179c29fa5a6Sopenharmony_ci * @tc.desc: Test ReissueEvent 1180c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1181c29fa5a6Sopenharmony_ci * @tc.require: 1182c29fa5a6Sopenharmony_ci */ 1183c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_ReissueEvent_006, TestSize.Level1) 1184c29fa5a6Sopenharmony_ci{ 1185c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 1186c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> point = PointerEvent::Create(); 1187c29fa5a6Sopenharmony_ci ASSERT_NE(point, nullptr); 1188c29fa5a6Sopenharmony_ci point->pointerAction_ = PointerEvent::POINTER_ACTION_DOWN; 1189c29fa5a6Sopenharmony_ci int32_t windowId = 100; 1190c29fa5a6Sopenharmony_ci std::optional<WindowInfo> windowInfo = std::make_optional<WindowInfo>(); 1191c29fa5a6Sopenharmony_ci ASSERT_NE(windowInfo, std::nullopt); 1192c29fa5a6Sopenharmony_ci point->pointerId_ = 5; 1193c29fa5a6Sopenharmony_ci point->SetPointerId(point->pointerId_); 1194c29fa5a6Sopenharmony_ci std::shared_ptr<WindowInfo> windowInfo1 = std::make_shared<WindowInfo>(); 1195c29fa5a6Sopenharmony_ci windowInfo1->id = 1; 1196c29fa5a6Sopenharmony_ci dispatch.cancelEventList_[1].insert(windowInfo1); 1197c29fa5a6Sopenharmony_ci bool result = dispatch.ReissueEvent(point, windowId, windowInfo); 1198c29fa5a6Sopenharmony_ci EXPECT_TRUE(result); 1199c29fa5a6Sopenharmony_ci} 1200c29fa5a6Sopenharmony_ci 1201c29fa5a6Sopenharmony_ci/** 1202c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_ReissueEvent_007 1203c29fa5a6Sopenharmony_ci * @tc.desc: Test ReissueEvent 1204c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1205c29fa5a6Sopenharmony_ci * @tc.require: 1206c29fa5a6Sopenharmony_ci */ 1207c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_ReissueEvent_007, TestSize.Level1) 1208c29fa5a6Sopenharmony_ci{ 1209c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 1210c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> point = PointerEvent::Create(); 1211c29fa5a6Sopenharmony_ci ASSERT_NE(point, nullptr); 1212c29fa5a6Sopenharmony_ci point->pointerAction_ = PointerEvent::POINTER_ACTION_UP; 1213c29fa5a6Sopenharmony_ci int32_t windowId = 100; 1214c29fa5a6Sopenharmony_ci std::optional<WindowInfo> windowInfo = std::make_optional<WindowInfo>(); 1215c29fa5a6Sopenharmony_ci ASSERT_NE(windowInfo, std::nullopt); 1216c29fa5a6Sopenharmony_ci point->pointerId_ = 1; 1217c29fa5a6Sopenharmony_ci point->SetPointerId(point->pointerId_); 1218c29fa5a6Sopenharmony_ci std::shared_ptr<WindowInfo> windowInfo1 = std::make_shared<WindowInfo>(); 1219c29fa5a6Sopenharmony_ci windowInfo1->id = 1; 1220c29fa5a6Sopenharmony_ci dispatch.cancelEventList_[1].insert(windowInfo1); 1221c29fa5a6Sopenharmony_ci bool result = dispatch.ReissueEvent(point, windowId, windowInfo); 1222c29fa5a6Sopenharmony_ci EXPECT_FALSE(result); 1223c29fa5a6Sopenharmony_ci} 1224c29fa5a6Sopenharmony_ci 1225c29fa5a6Sopenharmony_ci/** 1226c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_ReissueEvent_008 1227c29fa5a6Sopenharmony_ci * @tc.desc: Test ReissueEvent 1228c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1229c29fa5a6Sopenharmony_ci * @tc.require: 1230c29fa5a6Sopenharmony_ci */ 1231c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_ReissueEvent_008, TestSize.Level1) 1232c29fa5a6Sopenharmony_ci{ 1233c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 1234c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> point = PointerEvent::Create(); 1235c29fa5a6Sopenharmony_ci ASSERT_NE(point, nullptr); 1236c29fa5a6Sopenharmony_ci point->pointerAction_ = PointerEvent::POINTER_ACTION_UP; 1237c29fa5a6Sopenharmony_ci int32_t windowId = 100; 1238c29fa5a6Sopenharmony_ci std::optional<WindowInfo> windowInfo = std::make_optional<WindowInfo>(); 1239c29fa5a6Sopenharmony_ci ASSERT_NE(windowInfo, std::nullopt); 1240c29fa5a6Sopenharmony_ci point->pointerId_ = 5; 1241c29fa5a6Sopenharmony_ci point->SetPointerId(point->pointerId_); 1242c29fa5a6Sopenharmony_ci std::shared_ptr<WindowInfo> windowInfo1 = std::make_shared<WindowInfo>(); 1243c29fa5a6Sopenharmony_ci windowInfo1->id = 1; 1244c29fa5a6Sopenharmony_ci dispatch.cancelEventList_[1].insert(windowInfo1); 1245c29fa5a6Sopenharmony_ci bool result = dispatch.ReissueEvent(point, windowId, windowInfo); 1246c29fa5a6Sopenharmony_ci EXPECT_FALSE(result); 1247c29fa5a6Sopenharmony_ci} 1248c29fa5a6Sopenharmony_ci 1249c29fa5a6Sopenharmony_ci/** 1250c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_ReissueEvent_009 1251c29fa5a6Sopenharmony_ci * @tc.desc: Test ReissueEvent 1252c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1253c29fa5a6Sopenharmony_ci * @tc.require: 1254c29fa5a6Sopenharmony_ci */ 1255c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_ReissueEvent_009, TestSize.Level1) 1256c29fa5a6Sopenharmony_ci{ 1257c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 1258c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> point = PointerEvent::Create(); 1259c29fa5a6Sopenharmony_ci ASSERT_NE(point, nullptr); 1260c29fa5a6Sopenharmony_ci point->pointerAction_ = PointerEvent::POINTER_ACTION_CANCEL; 1261c29fa5a6Sopenharmony_ci int32_t windowId = 100; 1262c29fa5a6Sopenharmony_ci std::optional<WindowInfo> windowInfo = std::make_optional<WindowInfo>(); 1263c29fa5a6Sopenharmony_ci ASSERT_NE(windowInfo, std::nullopt); 1264c29fa5a6Sopenharmony_ci point->pointerId_ = 5; 1265c29fa5a6Sopenharmony_ci point->SetPointerId(point->pointerId_); 1266c29fa5a6Sopenharmony_ci std::shared_ptr<WindowInfo> windowInfo1 = std::make_shared<WindowInfo>(); 1267c29fa5a6Sopenharmony_ci windowInfo1->id = 1; 1268c29fa5a6Sopenharmony_ci dispatch.cancelEventList_[1].insert(windowInfo1); 1269c29fa5a6Sopenharmony_ci bool result = dispatch.ReissueEvent(point, windowId, windowInfo); 1270c29fa5a6Sopenharmony_ci EXPECT_FALSE(result); 1271c29fa5a6Sopenharmony_ci} 1272c29fa5a6Sopenharmony_ci 1273c29fa5a6Sopenharmony_ci/** 1274c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_ReissueEvent_010 1275c29fa5a6Sopenharmony_ci * @tc.desc: Test ReissueEvent 1276c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1277c29fa5a6Sopenharmony_ci * @tc.require: 1278c29fa5a6Sopenharmony_ci */ 1279c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_ReissueEvent_010, TestSize.Level1) 1280c29fa5a6Sopenharmony_ci{ 1281c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 1282c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> point = PointerEvent::Create(); 1283c29fa5a6Sopenharmony_ci ASSERT_NE(point, nullptr); 1284c29fa5a6Sopenharmony_ci point->pointerAction_ = PointerEvent::POINTER_ACTION_CANCEL; 1285c29fa5a6Sopenharmony_ci int32_t windowId = 100; 1286c29fa5a6Sopenharmony_ci std::optional<WindowInfo> windowInfo = std::make_optional<WindowInfo>(); 1287c29fa5a6Sopenharmony_ci ASSERT_NE(windowInfo, std::nullopt); 1288c29fa5a6Sopenharmony_ci point->pointerId_ = 1; 1289c29fa5a6Sopenharmony_ci point->SetPointerId(point->pointerId_); 1290c29fa5a6Sopenharmony_ci std::shared_ptr<WindowInfo> windowInfo1 = std::make_shared<WindowInfo>(); 1291c29fa5a6Sopenharmony_ci windowInfo1->id = 1; 1292c29fa5a6Sopenharmony_ci dispatch.cancelEventList_[1].insert(windowInfo1); 1293c29fa5a6Sopenharmony_ci bool result = dispatch.ReissueEvent(point, windowId, windowInfo); 1294c29fa5a6Sopenharmony_ci EXPECT_FALSE(result); 1295c29fa5a6Sopenharmony_ci} 1296c29fa5a6Sopenharmony_ci 1297c29fa5a6Sopenharmony_ci/** 1298c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_ReissueEvent_011 1299c29fa5a6Sopenharmony_ci * @tc.desc: Test ReissueEvent 1300c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1301c29fa5a6Sopenharmony_ci * @tc.require: 1302c29fa5a6Sopenharmony_ci */ 1303c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_ReissueEvent_011, TestSize.Level1) 1304c29fa5a6Sopenharmony_ci{ 1305c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 1306c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> point = PointerEvent::Create(); 1307c29fa5a6Sopenharmony_ci ASSERT_NE(point, nullptr); 1308c29fa5a6Sopenharmony_ci point->pointerAction_ = PointerEvent::POINTER_ACTION_MOVE; 1309c29fa5a6Sopenharmony_ci int32_t windowId = 100; 1310c29fa5a6Sopenharmony_ci std::optional<WindowInfo> windowInfo = std::make_optional<WindowInfo>(); 1311c29fa5a6Sopenharmony_ci ASSERT_NE(windowInfo, std::nullopt); 1312c29fa5a6Sopenharmony_ci point->pointerId_ = 1; 1313c29fa5a6Sopenharmony_ci point->SetPointerId(point->pointerId_); 1314c29fa5a6Sopenharmony_ci std::shared_ptr<WindowInfo> windowInfo1 = std::make_shared<WindowInfo>(); 1315c29fa5a6Sopenharmony_ci windowInfo1->id = 1; 1316c29fa5a6Sopenharmony_ci dispatch.cancelEventList_[1].insert(windowInfo1); 1317c29fa5a6Sopenharmony_ci bool result = dispatch.ReissueEvent(point, windowId, windowInfo); 1318c29fa5a6Sopenharmony_ci EXPECT_TRUE(result); 1319c29fa5a6Sopenharmony_ci} 1320c29fa5a6Sopenharmony_ci 1321c29fa5a6Sopenharmony_ci/** 1322c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_SearchCancelList_001 1323c29fa5a6Sopenharmony_ci * @tc.desc: Test SearchCancelList 1324c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1325c29fa5a6Sopenharmony_ci * @tc.require: 1326c29fa5a6Sopenharmony_ci */ 1327c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_SearchCancelList_001, TestSize.Level1) 1328c29fa5a6Sopenharmony_ci{ 1329c29fa5a6Sopenharmony_ci EventDispatchHandler handler; 1330c29fa5a6Sopenharmony_ci int32_t pointerId = 1; 1331c29fa5a6Sopenharmony_ci int32_t windowId = 2; 1332c29fa5a6Sopenharmony_ci std::shared_ptr<WindowInfo> result = handler.SearchCancelList(pointerId, windowId); 1333c29fa5a6Sopenharmony_ci ASSERT_EQ(result, nullptr); 1334c29fa5a6Sopenharmony_ci} 1335c29fa5a6Sopenharmony_ci 1336c29fa5a6Sopenharmony_ci/** 1337c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_SearchCancelList_002 1338c29fa5a6Sopenharmony_ci * @tc.desc: Test SearchCancelList 1339c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1340c29fa5a6Sopenharmony_ci * @tc.require: 1341c29fa5a6Sopenharmony_ci */ 1342c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_SearchCancelList_002, TestSize.Level1) 1343c29fa5a6Sopenharmony_ci{ 1344c29fa5a6Sopenharmony_ci EventDispatchHandler handler; 1345c29fa5a6Sopenharmony_ci int32_t pointerId = 5; 1346c29fa5a6Sopenharmony_ci int32_t windowId = 2; 1347c29fa5a6Sopenharmony_ci std::shared_ptr<WindowInfo> windowInfo1 = std::make_shared<WindowInfo>(); 1348c29fa5a6Sopenharmony_ci windowInfo1->id = 1; 1349c29fa5a6Sopenharmony_ci handler.cancelEventList_[1].insert(windowInfo1); 1350c29fa5a6Sopenharmony_ci std::shared_ptr<WindowInfo> result = handler.SearchCancelList(pointerId, windowId); 1351c29fa5a6Sopenharmony_ci ASSERT_EQ(result, nullptr); 1352c29fa5a6Sopenharmony_ci} 1353c29fa5a6Sopenharmony_ci 1354c29fa5a6Sopenharmony_ci/** 1355c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_SearchCancelList_003 1356c29fa5a6Sopenharmony_ci * @tc.desc: Test SearchCancelList 1357c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1358c29fa5a6Sopenharmony_ci * @tc.require: 1359c29fa5a6Sopenharmony_ci */ 1360c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_SearchCancelList_003, TestSize.Level1) 1361c29fa5a6Sopenharmony_ci{ 1362c29fa5a6Sopenharmony_ci EventDispatchHandler handler; 1363c29fa5a6Sopenharmony_ci int32_t pointerId = 1; 1364c29fa5a6Sopenharmony_ci int32_t windowId = 1; 1365c29fa5a6Sopenharmony_ci std::shared_ptr<WindowInfo> windowInfo1 = std::make_shared<WindowInfo>(); 1366c29fa5a6Sopenharmony_ci windowInfo1->id = 1; 1367c29fa5a6Sopenharmony_ci handler.cancelEventList_[1].insert(windowInfo1); 1368c29fa5a6Sopenharmony_ci std::shared_ptr<WindowInfo> result = handler.SearchCancelList(pointerId, windowId); 1369c29fa5a6Sopenharmony_ci ASSERT_NE(result, nullptr); 1370c29fa5a6Sopenharmony_ci} 1371c29fa5a6Sopenharmony_ci 1372c29fa5a6Sopenharmony_ci/** 1373c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_FilterInvalidPointerItem_004 1374c29fa5a6Sopenharmony_ci * @tc.desc: Test the function FilterInvalidPointerItem 1375c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1376c29fa5a6Sopenharmony_ci * @tc.require: 1377c29fa5a6Sopenharmony_ci */ 1378c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_FilterInvalidPointerItem_004, TestSize.Level1) 1379c29fa5a6Sopenharmony_ci{ 1380c29fa5a6Sopenharmony_ci EventDispatchHandler eventdispatchhandler; 1381c29fa5a6Sopenharmony_ci int32_t fd = 1; 1382c29fa5a6Sopenharmony_ci int32_t eventType = 3; 1383c29fa5a6Sopenharmony_ci UDSServer* udsServer = new UDSServer(); 1384c29fa5a6Sopenharmony_ci InputHandler->udsServer_ = udsServer; 1385c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> sharedPointerEvent = std::make_shared<PointerEvent>(eventType); 1386c29fa5a6Sopenharmony_ci EXPECT_NE(sharedPointerEvent, nullptr); 1387c29fa5a6Sopenharmony_ci std::vector<int32_t> pointerIdList; 1388c29fa5a6Sopenharmony_ci EXPECT_FALSE(pointerIdList.size() > 1); 1389c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventdispatchhandler.FilterInvalidPointerItem(sharedPointerEvent, fd)); 1390c29fa5a6Sopenharmony_ci} 1391c29fa5a6Sopenharmony_ci 1392c29fa5a6Sopenharmony_ci/** 1393c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_FilterInvalidPointerItem_005 1394c29fa5a6Sopenharmony_ci * @tc.desc: Test the function FilterInvalidPointerItem 1395c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1396c29fa5a6Sopenharmony_ci * @tc.require: 1397c29fa5a6Sopenharmony_ci */ 1398c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_FilterInvalidPointerItem_005, TestSize.Level1) 1399c29fa5a6Sopenharmony_ci{ 1400c29fa5a6Sopenharmony_ci EventDispatchHandler eventdispatchhandler; 1401c29fa5a6Sopenharmony_ci PointerEvent::PointerItem testPointerItem; 1402c29fa5a6Sopenharmony_ci UDSServer* udsServer = new UDSServer(); 1403c29fa5a6Sopenharmony_ci InputHandler->udsServer_ = udsServer; 1404c29fa5a6Sopenharmony_ci int32_t fd = 1; 1405c29fa5a6Sopenharmony_ci int32_t eventType = 3; 1406c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> event = std::make_shared<PointerEvent>(eventType); 1407c29fa5a6Sopenharmony_ci event->pointers_.push_back(PointerEvent::PointerItem()); 1408c29fa5a6Sopenharmony_ci event->pointers_.push_back(PointerEvent::PointerItem()); 1409c29fa5a6Sopenharmony_ci std::vector<int32_t> pointerIds = event->GetPointerIds(); 1410c29fa5a6Sopenharmony_ci ASSERT_TRUE(pointerIds.size() > 1); 1411c29fa5a6Sopenharmony_ci event->AddPointerItem(testPointerItem); 1412c29fa5a6Sopenharmony_ci int32_t testPointerId = 1; 1413c29fa5a6Sopenharmony_ci testPointerItem.SetPointerId(testPointerId); 1414c29fa5a6Sopenharmony_ci event->AddPointerItem(testPointerItem); 1415c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventdispatchhandler.FilterInvalidPointerItem(event, fd)); 1416c29fa5a6Sopenharmony_ci} 1417c29fa5a6Sopenharmony_ci 1418c29fa5a6Sopenharmony_ci/** 1419c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_FilterInvalidPointerItem_006 1420c29fa5a6Sopenharmony_ci * @tc.desc: Test the function FilterInvalidPointerItem 1421c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1422c29fa5a6Sopenharmony_ci * @tc.require: 1423c29fa5a6Sopenharmony_ci */ 1424c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_FilterInvalidPointerItem_006, TestSize.Level1) 1425c29fa5a6Sopenharmony_ci{ 1426c29fa5a6Sopenharmony_ci EventDispatchHandler eventdispatchhandler; 1427c29fa5a6Sopenharmony_ci PointerEvent::PointerItem testPointerItem; 1428c29fa5a6Sopenharmony_ci UDSServer* udsServer = new UDSServer(); 1429c29fa5a6Sopenharmony_ci InputHandler->udsServer_ = udsServer; 1430c29fa5a6Sopenharmony_ci int32_t fd = 1; 1431c29fa5a6Sopenharmony_ci int32_t eventType = 3; 1432c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> event = std::make_shared<PointerEvent>(eventType); 1433c29fa5a6Sopenharmony_ci event->pointers_.push_back(PointerEvent::PointerItem()); 1434c29fa5a6Sopenharmony_ci event->pointers_.push_back(PointerEvent::PointerItem()); 1435c29fa5a6Sopenharmony_ci std::vector<int32_t> pointerIds = event->GetPointerIds(); 1436c29fa5a6Sopenharmony_ci ASSERT_TRUE(pointerIds.size() > 1); 1437c29fa5a6Sopenharmony_ci event->AddPointerItem(testPointerItem); 1438c29fa5a6Sopenharmony_ci int32_t testPointerId = 1; 1439c29fa5a6Sopenharmony_ci testPointerItem.SetPointerId(testPointerId + 1); 1440c29fa5a6Sopenharmony_ci event->AddPointerItem(testPointerItem); 1441c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventdispatchhandler.FilterInvalidPointerItem(event, fd)); 1442c29fa5a6Sopenharmony_ci} 1443c29fa5a6Sopenharmony_ci 1444c29fa5a6Sopenharmony_ci/** 1445c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_FilterInvalidPointerItem_007 1446c29fa5a6Sopenharmony_ci * @tc.desc: Test the function FilterInvalidPointerItem 1447c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1448c29fa5a6Sopenharmony_ci * @tc.require: 1449c29fa5a6Sopenharmony_ci */ 1450c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_FilterInvalidPointerItem_007, TestSize.Level1) 1451c29fa5a6Sopenharmony_ci{ 1452c29fa5a6Sopenharmony_ci EventDispatchHandler eventdispatchhandler; 1453c29fa5a6Sopenharmony_ci int32_t fd = 1; 1454c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> pointerEvent = PointerEvent::Create(); 1455c29fa5a6Sopenharmony_ci ASSERT_NE(pointerEvent, nullptr); 1456c29fa5a6Sopenharmony_ci UDSServer udsServer; 1457c29fa5a6Sopenharmony_ci InputHandler->udsServer_ = &udsServer; 1458c29fa5a6Sopenharmony_ci PointerEvent::PointerItem testPointerItem; 1459c29fa5a6Sopenharmony_ci testPointerItem.pointerId_ = -1; 1460c29fa5a6Sopenharmony_ci pointerEvent->pointers_.push_back(testPointerItem); 1461c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventdispatchhandler.FilterInvalidPointerItem(pointerEvent, fd)); 1462c29fa5a6Sopenharmony_ci testPointerItem.pressed_ = false; 1463c29fa5a6Sopenharmony_ci testPointerItem.displayX_ = 50; 1464c29fa5a6Sopenharmony_ci testPointerItem.displayY_ = 100; 1465c29fa5a6Sopenharmony_ci pointerEvent->pointers_.push_back(testPointerItem); 1466c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventdispatchhandler.FilterInvalidPointerItem(pointerEvent, fd)); 1467c29fa5a6Sopenharmony_ci} 1468c29fa5a6Sopenharmony_ci 1469c29fa5a6Sopenharmony_ci/** 1470c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_HandleMultiWindowPointerEvent_007 1471c29fa5a6Sopenharmony_ci * @tc.desc: Test the function HandleMultiWindowPointerEvent 1472c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1473c29fa5a6Sopenharmony_ci * @tc.require: 1474c29fa5a6Sopenharmony_ci */ 1475c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_HandleMultiWindowPointerEvent_007, TestSize.Level1) 1476c29fa5a6Sopenharmony_ci{ 1477c29fa5a6Sopenharmony_ci EventDispatchHandler eventdispatchhandler; 1478c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> point = PointerEvent::Create(); 1479c29fa5a6Sopenharmony_ci ASSERT_NE(point, nullptr); 1480c29fa5a6Sopenharmony_ci PointerEvent::PointerItem pointerItem; 1481c29fa5a6Sopenharmony_ci pointerItem.SetWindowX(35); 1482c29fa5a6Sopenharmony_ci pointerItem.SetWindowY(50); 1483c29fa5a6Sopenharmony_ci pointerItem.SetTargetWindowId(2); 1484c29fa5a6Sopenharmony_ci point->pointerAction_ = PointerEvent::POINTER_ACTION_DOWN; 1485c29fa5a6Sopenharmony_ci point->pointerId_ = 1; 1486c29fa5a6Sopenharmony_ci std::shared_ptr<WindowInfo> windowInfo = std::make_shared<WindowInfo>(); 1487c29fa5a6Sopenharmony_ci windowInfo->id = 5; 1488c29fa5a6Sopenharmony_ci eventdispatchhandler.cancelEventList_[1].insert(windowInfo); 1489c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventdispatchhandler.HandleMultiWindowPointerEvent(point, pointerItem)); 1490c29fa5a6Sopenharmony_ci windowInfo->id = 1; 1491c29fa5a6Sopenharmony_ci eventdispatchhandler.cancelEventList_[2].insert(windowInfo); 1492c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventdispatchhandler.HandleMultiWindowPointerEvent(point, pointerItem)); 1493c29fa5a6Sopenharmony_ci point->pointerAction_ = PointerEvent::POINTER_ACTION_MOVE; 1494c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventdispatchhandler.HandleMultiWindowPointerEvent(point, pointerItem)); 1495c29fa5a6Sopenharmony_ci point->pointerAction_ = PointerEvent::POINTER_ACTION_UP; 1496c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventdispatchhandler.HandleMultiWindowPointerEvent(point, pointerItem)); 1497c29fa5a6Sopenharmony_ci point->pointerAction_ = PointerEvent::POINTER_ACTION_PULL_UP; 1498c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventdispatchhandler.HandleMultiWindowPointerEvent(point, pointerItem)); 1499c29fa5a6Sopenharmony_ci point->pointerAction_ = PointerEvent::POINTER_ACTION_CANCEL; 1500c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventdispatchhandler.HandleMultiWindowPointerEvent(point, pointerItem)); 1501c29fa5a6Sopenharmony_ci} 1502c29fa5a6Sopenharmony_ci 1503c29fa5a6Sopenharmony_ci/** 1504c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_DispatchPointerEventInner_010 1505c29fa5a6Sopenharmony_ci * @tc.desc: Test the function DispatchPointerEventInner 1506c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1507c29fa5a6Sopenharmony_ci * @tc.require: 1508c29fa5a6Sopenharmony_ci */ 1509c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_DispatchPointerEventInner_010, TestSize.Level1) 1510c29fa5a6Sopenharmony_ci{ 1511c29fa5a6Sopenharmony_ci EventDispatchHandler eventDispatchHandler; 1512c29fa5a6Sopenharmony_ci int32_t fd = 2; 1513c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> pointerEvent = PointerEvent::Create(); 1514c29fa5a6Sopenharmony_ci ASSERT_NE(pointerEvent, nullptr); 1515c29fa5a6Sopenharmony_ci UDSServer udsServer; 1516c29fa5a6Sopenharmony_ci InputHandler->udsServer_ = &udsServer; 1517c29fa5a6Sopenharmony_ci SessionPtr session = std::make_shared<UDSSession>(PROGRAM_NAME, g_moduleType, g_writeFd, UID_ROOT, g_pid); 1518c29fa5a6Sopenharmony_ci udsServer.sessionsMap_.insert(std::make_pair(fd, session)); 1519c29fa5a6Sopenharmony_ci pointerEvent->pointerAction_ = PointerEvent::POINTER_ACTION_DOWN; 1520c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventDispatchHandler.DispatchPointerEventInner(pointerEvent, fd)); 1521c29fa5a6Sopenharmony_ci pointerEvent->pointerAction_ = PointerEvent::POINTER_ACTION_UP; 1522c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventDispatchHandler.DispatchPointerEventInner(pointerEvent, fd)); 1523c29fa5a6Sopenharmony_ci pointerEvent->pointerAction_ = PointerEvent::POINTER_ACTION_PULL_DOWN; 1524c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventDispatchHandler.DispatchPointerEventInner(pointerEvent, fd)); 1525c29fa5a6Sopenharmony_ci pointerEvent->pointerAction_ = PointerEvent::POINTER_ACTION_PULL_UP; 1526c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventDispatchHandler.DispatchPointerEventInner(pointerEvent, fd)); 1527c29fa5a6Sopenharmony_ci pointerEvent->pointerAction_ = PointerEvent::POINTER_ACTION_PULL_OUT_WINDOW; 1528c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventDispatchHandler.DispatchPointerEventInner(pointerEvent, fd)); 1529c29fa5a6Sopenharmony_ci pointerEvent->pointerAction_ = PointerEvent::POINTER_ACTION_MOVE; 1530c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventDispatchHandler.DispatchPointerEventInner(pointerEvent, fd)); 1531c29fa5a6Sopenharmony_ci fd = -2; 1532c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventDispatchHandler.DispatchPointerEventInner(pointerEvent, fd)); 1533c29fa5a6Sopenharmony_ci fd = 5; 1534c29fa5a6Sopenharmony_ci udsServer.sessionsMap_.insert(std::make_pair(5, session)); 1535c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventDispatchHandler.DispatchPointerEventInner(pointerEvent, fd)); 1536c29fa5a6Sopenharmony_ci} 1537c29fa5a6Sopenharmony_ci 1538c29fa5a6Sopenharmony_ci/** 1539c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_DispatchKeyEventPid_006 1540c29fa5a6Sopenharmony_ci * @tc.desc: Test the function DispatchKeyEventPid 1541c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1542c29fa5a6Sopenharmony_ci * @tc.require: 1543c29fa5a6Sopenharmony_ci */ 1544c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_DispatchKeyEventPid_006, TestSize.Level1) 1545c29fa5a6Sopenharmony_ci{ 1546c29fa5a6Sopenharmony_ci EventDispatchHandler eventDispatchHandler; 1547c29fa5a6Sopenharmony_ci UDSServer udsServer; 1548c29fa5a6Sopenharmony_ci std::shared_ptr<KeyEvent> KeyEvent = KeyEvent::Create(); 1549c29fa5a6Sopenharmony_ci ASSERT_NE(KeyEvent, nullptr); 1550c29fa5a6Sopenharmony_ci ASSERT_EQ(eventDispatchHandler.DispatchKeyEventPid(udsServer, KeyEvent), RET_OK); 1551c29fa5a6Sopenharmony_ci SessionPtr session = std::make_shared<UDSSession>(PROGRAM_NAME, g_moduleType, g_writeFd, UID_ROOT, g_pid); 1552c29fa5a6Sopenharmony_ci udsServer.sessionsMap_.insert(std::make_pair(-1, session)); 1553c29fa5a6Sopenharmony_ci StreamBuffer streamBuffer; 1554c29fa5a6Sopenharmony_ci streamBuffer.rwErrorStatus_ = CircleStreamBuffer::ErrorStatus::ERROR_STATUS_READ; 1555c29fa5a6Sopenharmony_ci eventDispatchHandler.DispatchKeyEventPid(udsServer, KeyEvent); 1556c29fa5a6Sopenharmony_ci streamBuffer.rwErrorStatus_ = CircleStreamBuffer::ErrorStatus::ERROR_STATUS_READ; 1557c29fa5a6Sopenharmony_ci ASSERT_EQ(eventDispatchHandler.DispatchKeyEventPid(udsServer, KeyEvent), RET_OK); 1558c29fa5a6Sopenharmony_ci} 1559c29fa5a6Sopenharmony_ci 1560c29fa5a6Sopenharmony_ci/** 1561c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_HandleMultiWindowPointerEvent_01 1562c29fa5a6Sopenharmony_ci * @tc.desc: Test HandleMultiWindowPointerEvent 1563c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1564c29fa5a6Sopenharmony_ci * @tc.require: 1565c29fa5a6Sopenharmony_ci */ 1566c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_HandleMultiWindowPointerEvent_01, TestSize.Level1) 1567c29fa5a6Sopenharmony_ci{ 1568c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 1569c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> point = PointerEvent::Create(); 1570c29fa5a6Sopenharmony_ci ASSERT_NE(point, nullptr); 1571c29fa5a6Sopenharmony_ci point->pointerAction_ = PointerEvent::POINTER_ACTION_UP; 1572c29fa5a6Sopenharmony_ci int32_t windowId = 1; 1573c29fa5a6Sopenharmony_ci point->pointerId_ = 1; 1574c29fa5a6Sopenharmony_ci point->SetPointerId(point->pointerId_); 1575c29fa5a6Sopenharmony_ci std::optional<WindowInfo> windowInfo = std::nullopt; 1576c29fa5a6Sopenharmony_ci std::shared_ptr<WindowInfo> windowInfo1 = std::make_shared<WindowInfo>(); 1577c29fa5a6Sopenharmony_ci windowInfo1->id = 1; 1578c29fa5a6Sopenharmony_ci dispatch.cancelEventList_[1].insert(windowInfo1); 1579c29fa5a6Sopenharmony_ci bool result = dispatch.ReissueEvent(point, windowId, windowInfo); 1580c29fa5a6Sopenharmony_ci EXPECT_TRUE(result); 1581c29fa5a6Sopenharmony_ci 1582c29fa5a6Sopenharmony_ci std::vector<int32_t> windowIds; 1583c29fa5a6Sopenharmony_ci windowIds.push_back(1); 1584c29fa5a6Sopenharmony_ci windowIds.push_back(2); 1585c29fa5a6Sopenharmony_ci windowIds.push_back(3); 1586c29fa5a6Sopenharmony_ci 1587c29fa5a6Sopenharmony_ci PointerEvent::PointerItem pointerItem; 1588c29fa5a6Sopenharmony_ci pointerItem.SetWindowX(10); 1589c29fa5a6Sopenharmony_ci pointerItem.SetWindowY(20); 1590c29fa5a6Sopenharmony_ci pointerItem.SetTargetWindowId(2); 1591c29fa5a6Sopenharmony_ci 1592c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(dispatch.HandleMultiWindowPointerEvent(point, pointerItem)); 1593c29fa5a6Sopenharmony_ci} 1594c29fa5a6Sopenharmony_ci 1595c29fa5a6Sopenharmony_ci/** 1596c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_HandleMultiWindowPointerEvent_02 1597c29fa5a6Sopenharmony_ci * @tc.desc: Test HandleMultiWindowPointerEvent 1598c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1599c29fa5a6Sopenharmony_ci * @tc.require: 1600c29fa5a6Sopenharmony_ci */ 1601c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_HandleMultiWindowPointerEvent_02, TestSize.Level1) 1602c29fa5a6Sopenharmony_ci{ 1603c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 1604c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> pointerEvent = PointerEvent::Create(); 1605c29fa5a6Sopenharmony_ci ASSERT_NE(pointerEvent, nullptr); 1606c29fa5a6Sopenharmony_ci pointerEvent->pointerAction_ = PointerEvent::POINTER_ACTION_UP; 1607c29fa5a6Sopenharmony_ci int32_t windowId = 10; 1608c29fa5a6Sopenharmony_ci std::optional<WindowInfo> windowInfo = std::nullopt; 1609c29fa5a6Sopenharmony_ci bool result = dispatch.ReissueEvent(pointerEvent, windowId, windowInfo); 1610c29fa5a6Sopenharmony_ci EXPECT_FALSE(result); 1611c29fa5a6Sopenharmony_ci 1612c29fa5a6Sopenharmony_ci std::vector<int32_t> windowIds; 1613c29fa5a6Sopenharmony_ci windowIds.push_back(1); 1614c29fa5a6Sopenharmony_ci windowIds.push_back(2); 1615c29fa5a6Sopenharmony_ci windowIds.push_back(3); 1616c29fa5a6Sopenharmony_ci 1617c29fa5a6Sopenharmony_ci PointerEvent::PointerItem pointerItem; 1618c29fa5a6Sopenharmony_ci pointerItem.SetWindowX(10); 1619c29fa5a6Sopenharmony_ci pointerItem.SetWindowY(20); 1620c29fa5a6Sopenharmony_ci pointerItem.SetTargetWindowId(2); 1621c29fa5a6Sopenharmony_ci 1622c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(dispatch.HandleMultiWindowPointerEvent(pointerEvent, pointerItem)); 1623c29fa5a6Sopenharmony_ci} 1624c29fa5a6Sopenharmony_ci 1625c29fa5a6Sopenharmony_ci/** 1626c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_HandleMultiWindowPointerEvent_03 1627c29fa5a6Sopenharmony_ci * @tc.desc: Test HandleMultiWindowPointerEvent 1628c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1629c29fa5a6Sopenharmony_ci * @tc.require: 1630c29fa5a6Sopenharmony_ci */ 1631c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_HandleMultiWindowPointerEvent_03, TestSize.Level1) 1632c29fa5a6Sopenharmony_ci{ 1633c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 1634c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> pointerEvent = PointerEvent::Create(); 1635c29fa5a6Sopenharmony_ci ASSERT_NE(pointerEvent, nullptr); 1636c29fa5a6Sopenharmony_ci pointerEvent->pointerAction_ = PointerEvent::POINTER_ACTION_UP; 1637c29fa5a6Sopenharmony_ci int32_t windowId = 10; 1638c29fa5a6Sopenharmony_ci std::optional<WindowInfo> windowInfo = std::nullopt; 1639c29fa5a6Sopenharmony_ci bool result = dispatch.ReissueEvent(pointerEvent, windowId, windowInfo); 1640c29fa5a6Sopenharmony_ci EXPECT_FALSE(result); 1641c29fa5a6Sopenharmony_ci 1642c29fa5a6Sopenharmony_ci std::vector<int32_t> windowIds; 1643c29fa5a6Sopenharmony_ci windowIds.push_back(1); 1644c29fa5a6Sopenharmony_ci windowIds.push_back(2); 1645c29fa5a6Sopenharmony_ci windowIds.push_back(3); 1646c29fa5a6Sopenharmony_ci 1647c29fa5a6Sopenharmony_ci PointerEvent::PointerItem pointerItem; 1648c29fa5a6Sopenharmony_ci pointerItem.SetWindowX(10); 1649c29fa5a6Sopenharmony_ci pointerItem.SetWindowY(20); 1650c29fa5a6Sopenharmony_ci pointerItem.SetTargetWindowId(2); 1651c29fa5a6Sopenharmony_ci 1652c29fa5a6Sopenharmony_ci auto fd = WIN_MGR->GetClientFd(pointerEvent, windowId); 1653c29fa5a6Sopenharmony_ci EXPECT_TRUE(fd < 0); 1654c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(dispatch.HandleMultiWindowPointerEvent(pointerEvent, pointerItem)); 1655c29fa5a6Sopenharmony_ci} 1656c29fa5a6Sopenharmony_ci 1657c29fa5a6Sopenharmony_ci/** 1658c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_DispatchPointerEventInner_01 1659c29fa5a6Sopenharmony_ci * @tc.desc: Test DispatchPointerEventInner 1660c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1661c29fa5a6Sopenharmony_ci * @tc.require: 1662c29fa5a6Sopenharmony_ci */ 1663c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_DispatchPointerEventInner_01, TestSize.Level1) 1664c29fa5a6Sopenharmony_ci{ 1665c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 1666c29fa5a6Sopenharmony_ci int32_t fd = 1; 1667c29fa5a6Sopenharmony_ci int32_t type = 2; 1668c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> pointerEvent = PointerEvent::Create(); 1669c29fa5a6Sopenharmony_ci ASSERT_NE(pointerEvent, nullptr); 1670c29fa5a6Sopenharmony_ci 1671c29fa5a6Sopenharmony_ci auto session = InputHandler->udsServer_->GetSession(fd); 1672c29fa5a6Sopenharmony_ci int64_t currentTime = GetSysClockTime(); 1673c29fa5a6Sopenharmony_ci EXPECT_FALSE(ANRMgr->TriggerANR(type, currentTime, session)); 1674c29fa5a6Sopenharmony_ci pointerEvent->pointerAction_ = PointerEvent::POINTER_ACTION_DOWN; 1675c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(dispatch.DispatchPointerEventInner(pointerEvent, fd)); 1676c29fa5a6Sopenharmony_ci} 1677c29fa5a6Sopenharmony_ci 1678c29fa5a6Sopenharmony_ci/** 1679c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_DispatchPointerEventInner_02 1680c29fa5a6Sopenharmony_ci * @tc.desc: Test DispatchPointerEventInner 1681c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1682c29fa5a6Sopenharmony_ci * @tc.require: 1683c29fa5a6Sopenharmony_ci */ 1684c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_DispatchPointerEventInner_02, TestSize.Level1) 1685c29fa5a6Sopenharmony_ci{ 1686c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 1687c29fa5a6Sopenharmony_ci int32_t fd = 1; 1688c29fa5a6Sopenharmony_ci int32_t type = 2; 1689c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> pointerEvent = PointerEvent::Create(); 1690c29fa5a6Sopenharmony_ci ASSERT_NE(pointerEvent, nullptr); 1691c29fa5a6Sopenharmony_ci 1692c29fa5a6Sopenharmony_ci auto session = InputHandler->udsServer_->GetSession(fd); 1693c29fa5a6Sopenharmony_ci int64_t currentTime = GetSysClockTime(); 1694c29fa5a6Sopenharmony_ci EXPECT_FALSE(ANRMgr->TriggerANR(type, currentTime, session)); 1695c29fa5a6Sopenharmony_ci pointerEvent->pointerAction_ = PointerEvent::POINTER_ACTION_UP; 1696c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(dispatch.DispatchPointerEventInner(pointerEvent, fd)); 1697c29fa5a6Sopenharmony_ci} 1698c29fa5a6Sopenharmony_ci 1699c29fa5a6Sopenharmony_ci/** 1700c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_DispatchPointerEventInner_03 1701c29fa5a6Sopenharmony_ci * @tc.desc: Test DispatchPointerEventInner 1702c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1703c29fa5a6Sopenharmony_ci * @tc.require: 1704c29fa5a6Sopenharmony_ci */ 1705c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_DispatchPointerEventInner_03, TestSize.Level1) 1706c29fa5a6Sopenharmony_ci{ 1707c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 1708c29fa5a6Sopenharmony_ci int32_t fd = 1; 1709c29fa5a6Sopenharmony_ci int32_t type = 2; 1710c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> pointerEvent = PointerEvent::Create(); 1711c29fa5a6Sopenharmony_ci ASSERT_NE(pointerEvent, nullptr); 1712c29fa5a6Sopenharmony_ci 1713c29fa5a6Sopenharmony_ci auto session = InputHandler->udsServer_->GetSession(fd); 1714c29fa5a6Sopenharmony_ci int64_t currentTime = GetSysClockTime(); 1715c29fa5a6Sopenharmony_ci EXPECT_FALSE(ANRMgr->TriggerANR(type, currentTime, session)); 1716c29fa5a6Sopenharmony_ci pointerEvent->pointerAction_ = PointerEvent::POINTER_ACTION_PULL_DOWN; 1717c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(dispatch.DispatchPointerEventInner(pointerEvent, fd)); 1718c29fa5a6Sopenharmony_ci} 1719c29fa5a6Sopenharmony_ci 1720c29fa5a6Sopenharmony_ci/** 1721c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_DispatchPointerEventInner_04 1722c29fa5a6Sopenharmony_ci * @tc.desc: Test DispatchPointerEventInner 1723c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1724c29fa5a6Sopenharmony_ci * @tc.require: 1725c29fa5a6Sopenharmony_ci */ 1726c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_DispatchPointerEventInner_04, TestSize.Level1) 1727c29fa5a6Sopenharmony_ci{ 1728c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 1729c29fa5a6Sopenharmony_ci int32_t fd = 1; 1730c29fa5a6Sopenharmony_ci int32_t type = 2; 1731c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> pointerEvent = PointerEvent::Create(); 1732c29fa5a6Sopenharmony_ci ASSERT_NE(pointerEvent, nullptr); 1733c29fa5a6Sopenharmony_ci 1734c29fa5a6Sopenharmony_ci auto session = InputHandler->udsServer_->GetSession(fd); 1735c29fa5a6Sopenharmony_ci int64_t currentTime = GetSysClockTime(); 1736c29fa5a6Sopenharmony_ci EXPECT_FALSE(ANRMgr->TriggerANR(type, currentTime, session)); 1737c29fa5a6Sopenharmony_ci pointerEvent->pointerAction_ = PointerEvent::POINTER_ACTION_PULL_UP; 1738c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(dispatch.DispatchPointerEventInner(pointerEvent, fd)); 1739c29fa5a6Sopenharmony_ci} 1740c29fa5a6Sopenharmony_ci 1741c29fa5a6Sopenharmony_ci/** 1742c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_DispatchPointerEventInner_05 1743c29fa5a6Sopenharmony_ci * @tc.desc: Test DispatchPointerEventInner 1744c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1745c29fa5a6Sopenharmony_ci * @tc.require: 1746c29fa5a6Sopenharmony_ci */ 1747c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_DispatchPointerEventInner_05, TestSize.Level1) 1748c29fa5a6Sopenharmony_ci{ 1749c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 1750c29fa5a6Sopenharmony_ci int32_t fd = 1; 1751c29fa5a6Sopenharmony_ci int32_t type = 2; 1752c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> pointerEvent = PointerEvent::Create(); 1753c29fa5a6Sopenharmony_ci ASSERT_NE(pointerEvent, nullptr); 1754c29fa5a6Sopenharmony_ci 1755c29fa5a6Sopenharmony_ci auto session = InputHandler->udsServer_->GetSession(fd); 1756c29fa5a6Sopenharmony_ci int64_t currentTime = GetSysClockTime(); 1757c29fa5a6Sopenharmony_ci EXPECT_FALSE(ANRMgr->TriggerANR(type, currentTime, session)); 1758c29fa5a6Sopenharmony_ci pointerEvent->pointerAction_ = PointerEvent::POINTER_ACTION_MOVE; 1759c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(dispatch.DispatchPointerEventInner(pointerEvent, fd)); 1760c29fa5a6Sopenharmony_ci} 1761c29fa5a6Sopenharmony_ci 1762c29fa5a6Sopenharmony_ci/** 1763c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_DispatchPointerEventInner_06 1764c29fa5a6Sopenharmony_ci * @tc.desc: Test DispatchPointerEventInner 1765c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1766c29fa5a6Sopenharmony_ci * @tc.require: 1767c29fa5a6Sopenharmony_ci */ 1768c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_DispatchPointerEventInner_06, TestSize.Level1) 1769c29fa5a6Sopenharmony_ci{ 1770c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 1771c29fa5a6Sopenharmony_ci int32_t fd = 1; 1772c29fa5a6Sopenharmony_ci int32_t type = 2; 1773c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> pointerEvent = PointerEvent::Create(); 1774c29fa5a6Sopenharmony_ci ASSERT_NE(pointerEvent, nullptr); 1775c29fa5a6Sopenharmony_ci 1776c29fa5a6Sopenharmony_ci auto session = InputHandler->udsServer_->GetSession(fd); 1777c29fa5a6Sopenharmony_ci int64_t currentTime = GetSysClockTime(); 1778c29fa5a6Sopenharmony_ci EXPECT_FALSE(ANRMgr->TriggerANR(type, currentTime, session)); 1779c29fa5a6Sopenharmony_ci pointerEvent->pointerAction_ = PointerEvent::POINTER_ACTION_MOVE; 1780c29fa5a6Sopenharmony_ci 1781c29fa5a6Sopenharmony_ci NetPacket pkt(MmiMessageId::ON_POINTER_EVENT); 1782c29fa5a6Sopenharmony_ci EXPECT_FALSE(InputHandler->udsServer_->SendMsg(fd, pkt)); 1783c29fa5a6Sopenharmony_ci pointerEvent->markEnabled_ = true; 1784c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(dispatch.DispatchPointerEventInner(pointerEvent, fd)); 1785c29fa5a6Sopenharmony_ci} 1786c29fa5a6Sopenharmony_ci 1787c29fa5a6Sopenharmony_ci/** 1788c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_DispatchPointerEventInner_07 1789c29fa5a6Sopenharmony_ci * @tc.desc: Test DispatchPointerEventInner 1790c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1791c29fa5a6Sopenharmony_ci * @tc.require: 1792c29fa5a6Sopenharmony_ci */ 1793c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_DispatchPointerEventInner_07, TestSize.Level1) 1794c29fa5a6Sopenharmony_ci{ 1795c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 1796c29fa5a6Sopenharmony_ci int32_t fd = 3; 1797c29fa5a6Sopenharmony_ci int32_t type = 4; 1798c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> pointerEvent = PointerEvent::Create(); 1799c29fa5a6Sopenharmony_ci ASSERT_NE(pointerEvent, nullptr); 1800c29fa5a6Sopenharmony_ci 1801c29fa5a6Sopenharmony_ci auto session = InputHandler->udsServer_->GetSession(fd); 1802c29fa5a6Sopenharmony_ci int64_t currentTime = GetSysClockTime(); 1803c29fa5a6Sopenharmony_ci EXPECT_FALSE(ANRMgr->TriggerANR(type, currentTime, session)); 1804c29fa5a6Sopenharmony_ci pointerEvent->pointerAction_ = PointerEvent::POINTER_ACTION_MOVE; 1805c29fa5a6Sopenharmony_ci 1806c29fa5a6Sopenharmony_ci NetPacket pkt(MmiMessageId::ON_POINTER_EVENT); 1807c29fa5a6Sopenharmony_ci EXPECT_FALSE(InputHandler->udsServer_->SendMsg(fd, pkt)); 1808c29fa5a6Sopenharmony_ci pointerEvent->markEnabled_ = false; 1809c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(dispatch.DispatchPointerEventInner(pointerEvent, fd)); 1810c29fa5a6Sopenharmony_ci} 1811c29fa5a6Sopenharmony_ci 1812c29fa5a6Sopenharmony_ci/** 1813c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_FilterInvalidPointerItem_01 1814c29fa5a6Sopenharmony_ci * @tc.desc: Test the function FilterInvalidPointerItem 1815c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1816c29fa5a6Sopenharmony_ci * @tc.require: 1817c29fa5a6Sopenharmony_ci */ 1818c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_FilterInvalidPointerItem_01, TestSize.Level1) 1819c29fa5a6Sopenharmony_ci{ 1820c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 1821c29fa5a6Sopenharmony_ci int32_t fd = 1; 1822c29fa5a6Sopenharmony_ci int32_t id = 2; 1823c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> pointerEvent = PointerEvent::Create(); 1824c29fa5a6Sopenharmony_ci EXPECT_NE(pointerEvent, nullptr); 1825c29fa5a6Sopenharmony_ci 1826c29fa5a6Sopenharmony_ci std::vector<int32_t> pointerIdList; 1827c29fa5a6Sopenharmony_ci pointerIdList.push_back(1); 1828c29fa5a6Sopenharmony_ci pointerIdList.push_back(2); 1829c29fa5a6Sopenharmony_ci EXPECT_TRUE(pointerIdList.size() > 1); 1830c29fa5a6Sopenharmony_ci 1831c29fa5a6Sopenharmony_ci PointerEvent::PointerItem pointerItem; 1832c29fa5a6Sopenharmony_ci pointerItem.SetWindowX(10); 1833c29fa5a6Sopenharmony_ci pointerItem.SetWindowY(20); 1834c29fa5a6Sopenharmony_ci pointerItem.SetTargetWindowId(2); 1835c29fa5a6Sopenharmony_ci 1836c29fa5a6Sopenharmony_ci EXPECT_FALSE(pointerEvent->GetPointerItem(id, pointerItem)); 1837c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(dispatch.FilterInvalidPointerItem(pointerEvent, fd)); 1838c29fa5a6Sopenharmony_ci} 1839c29fa5a6Sopenharmony_ci 1840c29fa5a6Sopenharmony_ci/** 1841c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_FilterInvalidPointerItem_02 1842c29fa5a6Sopenharmony_ci * @tc.desc: Test the function FilterInvalidPointerItem 1843c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1844c29fa5a6Sopenharmony_ci * @tc.require: 1845c29fa5a6Sopenharmony_ci */ 1846c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_FilterInvalidPointerItem_02, TestSize.Level1) 1847c29fa5a6Sopenharmony_ci{ 1848c29fa5a6Sopenharmony_ci EventDispatchHandler dispatch; 1849c29fa5a6Sopenharmony_ci int32_t fd = 1; 1850c29fa5a6Sopenharmony_ci int32_t windowId = 3; 1851c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> pointerEvent = PointerEvent::Create(); 1852c29fa5a6Sopenharmony_ci EXPECT_NE(pointerEvent, nullptr); 1853c29fa5a6Sopenharmony_ci 1854c29fa5a6Sopenharmony_ci std::vector<int32_t> pointerIdList; 1855c29fa5a6Sopenharmony_ci pointerIdList.push_back(1); 1856c29fa5a6Sopenharmony_ci pointerIdList.push_back(2); 1857c29fa5a6Sopenharmony_ci pointerIdList.push_back(3); 1858c29fa5a6Sopenharmony_ci EXPECT_TRUE(pointerIdList.size() > 1); 1859c29fa5a6Sopenharmony_ci 1860c29fa5a6Sopenharmony_ci PointerEvent::PointerItem pointerItem; 1861c29fa5a6Sopenharmony_ci pointerItem.SetWindowX(10); 1862c29fa5a6Sopenharmony_ci pointerItem.SetWindowY(20); 1863c29fa5a6Sopenharmony_ci pointerItem.SetTargetWindowId(2); 1864c29fa5a6Sopenharmony_ci 1865c29fa5a6Sopenharmony_ci auto itemPid = WIN_MGR->GetWindowPid(windowId); 1866c29fa5a6Sopenharmony_ci EXPECT_FALSE(itemPid >= 0); 1867c29fa5a6Sopenharmony_ci EXPECT_FALSE(itemPid != InputHandler->udsServer_->GetClientPid(fd)); 1868c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(dispatch.FilterInvalidPointerItem(pointerEvent, fd)); 1869c29fa5a6Sopenharmony_ci} 1870c29fa5a6Sopenharmony_ci 1871c29fa5a6Sopenharmony_ci/** 1872c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_FilterInvalidPointerItem_008 1873c29fa5a6Sopenharmony_ci * @tc.desc: Test the function FilterInvalidPointerItem 1874c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1875c29fa5a6Sopenharmony_ci * @tc.require: 1876c29fa5a6Sopenharmony_ci */ 1877c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_FilterInvalidPointerItem_008, TestSize.Level1) 1878c29fa5a6Sopenharmony_ci{ 1879c29fa5a6Sopenharmony_ci EventDispatchHandler eventdispatchhandler; 1880c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> pointerEvent = PointerEvent::Create(); 1881c29fa5a6Sopenharmony_ci ASSERT_NE(pointerEvent, nullptr); 1882c29fa5a6Sopenharmony_ci int32_t fd = 10; 1883c29fa5a6Sopenharmony_ci PointerEvent::PointerItem item1; 1884c29fa5a6Sopenharmony_ci item1.pointerId_ = 1; 1885c29fa5a6Sopenharmony_ci item1.pressed_ = true; 1886c29fa5a6Sopenharmony_ci item1.displayX_ = 10; 1887c29fa5a6Sopenharmony_ci item1.displayY_ = 20; 1888c29fa5a6Sopenharmony_ci pointerEvent->pointers_.push_back(item1); 1889c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventdispatchhandler.FilterInvalidPointerItem(pointerEvent, fd)); 1890c29fa5a6Sopenharmony_ci PointerEvent::PointerItem item2; 1891c29fa5a6Sopenharmony_ci item2.pointerId_ = 2; 1892c29fa5a6Sopenharmony_ci item2.pressed_ = false; 1893c29fa5a6Sopenharmony_ci item2.displayX_ = 20; 1894c29fa5a6Sopenharmony_ci item2.displayY_ = 30; 1895c29fa5a6Sopenharmony_ci item2.targetWindowId_ = 1; 1896c29fa5a6Sopenharmony_ci pointerEvent->pointers_.push_back(item2); 1897c29fa5a6Sopenharmony_ci UDSServer udsServer; 1898c29fa5a6Sopenharmony_ci udsServer.pid_ = 1; 1899c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventdispatchhandler.FilterInvalidPointerItem(pointerEvent, fd)); 1900c29fa5a6Sopenharmony_ci udsServer.pid_ = -1; 1901c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventdispatchhandler.FilterInvalidPointerItem(pointerEvent, fd)); 1902c29fa5a6Sopenharmony_ci} 1903c29fa5a6Sopenharmony_ci 1904c29fa5a6Sopenharmony_ci/** 1905c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_HandleMultiWindowPointerEvent_008 1906c29fa5a6Sopenharmony_ci * @tc.desc: Test the function HandleMultiWindowPointerEvent 1907c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1908c29fa5a6Sopenharmony_ci * @tc.require: 1909c29fa5a6Sopenharmony_ci */ 1910c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_HandleMultiWindowPointerEvent_008, TestSize.Level1) 1911c29fa5a6Sopenharmony_ci{ 1912c29fa5a6Sopenharmony_ci EventDispatchHandler eventdispatchhandler; 1913c29fa5a6Sopenharmony_ci std::shared_ptr<PointerEvent> point = PointerEvent::Create(); 1914c29fa5a6Sopenharmony_ci ASSERT_NE(point, nullptr); 1915c29fa5a6Sopenharmony_ci PointerEvent::PointerItem pointerItem; 1916c29fa5a6Sopenharmony_ci pointerItem.SetWindowX(1); 1917c29fa5a6Sopenharmony_ci pointerItem.SetWindowY(2); 1918c29fa5a6Sopenharmony_ci pointerItem.SetTargetWindowId(3); 1919c29fa5a6Sopenharmony_ci point->pointerAction_ = PointerEvent::POINTER_ACTION_UP; 1920c29fa5a6Sopenharmony_ci point->pointerId_ = 3; 1921c29fa5a6Sopenharmony_ci std::shared_ptr<WindowInfo> windowInfo = std::make_shared<WindowInfo>(); 1922c29fa5a6Sopenharmony_ci windowInfo->id = 3; 1923c29fa5a6Sopenharmony_ci eventdispatchhandler.cancelEventList_[1].insert(windowInfo); 1924c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventdispatchhandler.HandleMultiWindowPointerEvent(point, pointerItem)); 1925c29fa5a6Sopenharmony_ci windowInfo->id = 1; 1926c29fa5a6Sopenharmony_ci eventdispatchhandler.cancelEventList_[2].insert(windowInfo); 1927c29fa5a6Sopenharmony_ci point->pointerAction_ = PointerEvent::POINTER_ACTION_MOVE; 1928c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventdispatchhandler.HandleMultiWindowPointerEvent(point, pointerItem)); 1929c29fa5a6Sopenharmony_ci point->pointerAction_ = PointerEvent::POINTER_ACTION_CANCEL; 1930c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(eventdispatchhandler.HandleMultiWindowPointerEvent(point, pointerItem)); 1931c29fa5a6Sopenharmony_ci} 1932c29fa5a6Sopenharmony_ci 1933c29fa5a6Sopenharmony_ci/** 1934c29fa5a6Sopenharmony_ci * @tc.name: EventDispatchTest_DispatchKeyEvent_002 1935c29fa5a6Sopenharmony_ci * @tc.desc: Test the funcation DispatchKeyEvent 1936c29fa5a6Sopenharmony_ci * @tc.type: FUNC 1937c29fa5a6Sopenharmony_ci * @tc.require: 1938c29fa5a6Sopenharmony_ci */ 1939c29fa5a6Sopenharmony_ciHWTEST_F(EventDispatchTest, EventDispatchTest_DispatchKeyEvent_002, TestSize.Level1) 1940c29fa5a6Sopenharmony_ci{ 1941c29fa5a6Sopenharmony_ci EventDispatchHandler handler; 1942c29fa5a6Sopenharmony_ci int32_t fd = 1; 1943c29fa5a6Sopenharmony_ci UDSServer udsServer; 1944c29fa5a6Sopenharmony_ci std::shared_ptr<KeyEvent> key = KeyEvent::Create(); 1945c29fa5a6Sopenharmony_ci ASSERT_NE(key, nullptr); 1946c29fa5a6Sopenharmony_ci SessionPtr session = std::make_shared<UDSSession>(PROGRAM_NAME, 1, 1, 100, 100); 1947c29fa5a6Sopenharmony_ci session->tokenType_ = 0; 1948c29fa5a6Sopenharmony_ci session->isAnrProcess_.insert(std::make_pair(1, true)); 1949c29fa5a6Sopenharmony_ci int32_t ret = handler.DispatchKeyEvent(fd, udsServer, key); 1950c29fa5a6Sopenharmony_ci EXPECT_EQ(ret, RET_ERR); 1951c29fa5a6Sopenharmony_ci fd = 2; 1952c29fa5a6Sopenharmony_ci session->isAnrProcess_.insert(std::make_pair(2, false)); 1953c29fa5a6Sopenharmony_ci ret = handler.DispatchKeyEvent(fd, udsServer, key); 1954c29fa5a6Sopenharmony_ci EXPECT_EQ(ret, RET_ERR); 1955c29fa5a6Sopenharmony_ci} 1956c29fa5a6Sopenharmony_ci} // namespace MMI 1957c29fa5a6Sopenharmony_ci} // namespace OHOS 1958