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