1 /*
2 * Copyright (c) 2022-2023 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include "gtest/gtest.h"
17 #include "test/unittest/core/event/event_manager_test_ng.h"
18 #include "test/mock/core/pipeline/mock_pipeline_context.h"
19
20 #include "core/components_ng/base/frame_node.h"
21 #include "core/components_ng/event/event_hub.h"
22 #include "core/components_ng/event/input_event.h"
23 #include "core/components_ng/pattern/pattern.h"
24 #include "core/components_v2/inspector/inspector_constants.h"
25 #include "core/event/mouse_event.h"
26
27 using namespace testing;
28 using namespace testing::ext;
29
30 namespace OHOS::Ace::NG {
31 namespace {
32 constexpr float WIDTH = 400.0f;
33 constexpr float HEIGHT = 400.0f;
34 const OffsetF COORDINATE_OFFSET(WIDTH, HEIGHT);
35 const std::string RESULT_SUCCESS_ONE = "sucess1";
36 const std::string RESULT_SUCCESS_TWO = "sucess2";
37 } // namespace
38
39 class InputEventTestNg : public testing::Test {
40 public:
41 static void SetUpTestSuite();
42 static void TearDownTestSuite();
43 void SetUp() override;
44 void TearDown() override;
45 };
46
SetUpTestSuite()47 void InputEventTestNg::SetUpTestSuite()
48 {
49 GTEST_LOG_(INFO) << "InputEventTestNg SetUpTestCase";
50 }
51
TearDownTestSuite()52 void InputEventTestNg::TearDownTestSuite()
53 {
54 GTEST_LOG_(INFO) << "InputEventTestNg TearDownTestCase";
55 }
56
SetUp()57 void InputEventTestNg::SetUp()
58 {
59 MockPipelineContext::SetUp();
60 }
61
TearDown()62 void InputEventTestNg::TearDown()
63 {
64 MockPipelineContext::TearDown();
65 }
66
67 /**
68 * @tc.name: InputEventTest001
69 * @tc.desc: test InputEvent
70 * @tc.type: FUNC
71 */
72 HWTEST_F(InputEventTestNg, InputEventTest001, TestSize.Level1)
73 {
74 auto eventHub = AceType::MakeRefPtr<EventHub>();
75 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
76 eventHub->AttachHost(frameNode);
77 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
78 inputEventHub->mouseEventActuator_ =
79 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
80 inputEventHub->hoverEventActuator_ =
81 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
__anoncfc565e30202(MouseInfo& info) 82 const OnMouseEventFunc onMouse = [](MouseInfo& info) {};
83 OnMouseEventFunc onMouse1 = onMouse;
84 inputEventHub->SetJSFrameNodeOnMouseEvent(std::move(onMouse1));
85 OnMouseEventFunc onMouse2 = onMouse;
86 inputEventHub->SetMouseEvent(std::move(onMouse2));
87
88 TouchTestResult Result;
89 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
90 inputEventHub->mouseEventActuator_->OnCollectMouseEvent(COORDINATE_OFFSET, getEventTargetImpl, Result);
91 MouseInfo mouse;
92 inputEventHub->mouseEventActuator_->mouseEventTarget_->onMouseCallback_(mouse);
93 EXPECT_NE(inputEventHub, nullptr);
94 }
95
96 /**
97 * @tc.name: InputEventTest002
98 * @tc.desc: test InputEvent
99 * @tc.type: FUNC
100 */
101 HWTEST_F(InputEventTestNg, InputEventTest002, TestSize.Level1)
102 {
103 auto eventHub = AceType::MakeRefPtr<EventHub>();
104 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
105 eventHub->AttachHost(frameNode);
106 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
107 inputEventHub->hoverEventActuator_ =
108 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
109 OnHoverFunc onHoverEventFunc;
110 OnHoverFunc onHoverEventFunc2;
111 inputEventHub->SetJSFrameNodeOnHoverEvent(std::move(onHoverEventFunc));
112 inputEventHub->SetHoverEvent(std::move(onHoverEventFunc2));
113
__anoncfc565e30302(bool, HoverInfo) 114 const OnHoverFunc onHover = [](bool, HoverInfo) {};
115 OnHoverFunc onHover1 = onHover;
116 auto onHoverEvent = AceType::MakeRefPtr<InputEvent>(std::move(onHover1));
117 inputEventHub->AddOnHoverEvent(onHoverEvent);
118 inputEventHub->AddOnHoverEvent(nullptr);
119
120 TouchTestResult hoverResult;
121 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
122 inputEventHub->hoverEventActuator_->OnCollectHoverEvent(COORDINATE_OFFSET, getEventTargetImpl, hoverResult);
123 HoverInfo hover;
124 inputEventHub->hoverEventActuator_->hoverEventTarget_->onHoverEventCallback_(true, hover);
125 EXPECT_NE(inputEventHub, nullptr);
126 }
127
128 /**
129 * @tc.name: InputEventTest003
130 * @tc.desc: test InputEvent
131 * @tc.type: FUNC
132 */
133 HWTEST_F(InputEventTestNg, InputEventTest003, TestSize.Level1)
134 {
135 auto eventHub = AceType::MakeRefPtr<EventHub>();
136 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
137 eventHub->AttachHost(frameNode);
138 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
139 inputEventHub->hoverEventActuator_ =
140 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
141 OnHoverFunc onHoverEventFunc;
142 inputEventHub->SetHoverEvent(std::move(onHoverEventFunc));
143
144 TouchTestResult hoverResult;
145 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
146 inputEventHub->hoverEventActuator_->OnCollectHoverEvent(COORDINATE_OFFSET, getEventTargetImpl, hoverResult);
147 HoverInfo hover;
148 inputEventHub->hoverEventActuator_->hoverEventTarget_->onHoverEventCallback_(true, hover);
149 EXPECT_NE(inputEventHub, nullptr);
150 }
151
152 /**
153 * @tc.name: InputEventTest004
154 * @tc.desc: test InputEvent
155 * @tc.type: FUNC
156 */
157 HWTEST_F(InputEventTestNg, InputEventTest004, TestSize.Level1)
158 {
159 auto eventHub = AceType::MakeRefPtr<EventHub>();
160 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
161 eventHub->AttachHost(frameNode);
162 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
163 inputEventHub->hoverEventActuator_ =
164 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
165 OnHoverFunc onHoverEventFunc;
166 inputEventHub->SetJSFrameNodeOnHoverEvent(std::move(onHoverEventFunc));
167
168 TouchTestResult hoverResult;
169 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
170 inputEventHub->hoverEventActuator_->OnCollectHoverEvent(COORDINATE_OFFSET, getEventTargetImpl, hoverResult);
171 HoverInfo hover;
172 inputEventHub->hoverEventActuator_->hoverEventTarget_->onHoverEventCallback_(true, hover);
173 EXPECT_NE(inputEventHub, nullptr);
174 }
175
176 /**
177 * @tc.name: InputEventTest005
178 * @tc.desc: test InputEvent
179 * @tc.type: FUNC
180 */
181 HWTEST_F(InputEventTestNg, InputEventTest005, TestSize.Level1)
182 {
183 auto eventHub = AceType::MakeRefPtr<EventHub>();
184 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
185 eventHub->AttachHost(frameNode);
186 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
187 inputEventHub->hoverEventActuator_ =
188 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
189
190 TouchTestResult hoverResult;
191 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
192 inputEventHub->hoverEventActuator_->OnCollectHoverEvent(COORDINATE_OFFSET, getEventTargetImpl, hoverResult);
193 EXPECT_NE(inputEventHub, nullptr);
194 }
195
196 /**
197 * @tc.name: InputEventTest006
198 * @tc.desc: test InputEvent
199 * @tc.type: FUNC
200 */
201 HWTEST_F(InputEventTestNg, InputEventTest006, TestSize.Level1)
202 {
203 auto eventHub = AceType::MakeRefPtr<EventHub>();
204 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
205 eventHub->AttachHost(frameNode);
206 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
207 inputEventHub->axisEventActuator_ =
208 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
209
__anoncfc565e30402(MouseInfo& info) 210 OnMouseEventFunc onAxis = [](MouseInfo& info) {};
211 auto onAxisEvent = AceType::MakeRefPtr<InputEvent>(std::move(onAxis));
212 inputEventHub->AddOnAxisEvent(onAxisEvent);
213 inputEventHub->AddOnAxisEvent(nullptr);
214 inputEventHub->axisEventActuator_->userCallback_ = onAxisEvent;
215
216 AxisTestResult Result;
217 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
218 inputEventHub->axisEventActuator_->OnCollectAxisEvent(COORDINATE_OFFSET, getEventTargetImpl, Result);
219 AxisInfo axisInfo;
220 inputEventHub->axisEventActuator_->axisEventTarget_->onAxisCallback_(axisInfo);
221 EXPECT_NE(inputEventHub, nullptr);
222 }
223
224 /**
225 * @tc.name: InputEventTest007
226 * @tc.desc: test InputEvent
227 * @tc.type: FUNC
228 */
229 HWTEST_F(InputEventTestNg, InputEventTest007, TestSize.Level1)
230 {
231 auto eventHub = AceType::MakeRefPtr<EventHub>();
232 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
233 eventHub->AttachHost(frameNode);
234 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
235 inputEventHub->axisEventActuator_ =
236 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
237
__anoncfc565e30502(MouseInfo& info) 238 OnMouseEventFunc onAxis = [](MouseInfo& info) {};
239 auto onAxisEvent = AceType::MakeRefPtr<InputEvent>(std::move(onAxis));
240 inputEventHub->axisEventActuator_->userCallback_ = onAxisEvent;
241
242 AxisTestResult Result;
243 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
244 inputEventHub->axisEventActuator_->OnCollectAxisEvent(COORDINATE_OFFSET, getEventTargetImpl, Result);
245 AxisInfo axisInfo;
246 inputEventHub->axisEventActuator_->axisEventTarget_->onAxisCallback_(axisInfo);
247 EXPECT_NE(inputEventHub, nullptr);
248 }
249
250 /**
251 * @tc.name: InputEventTest008
252 * @tc.desc: test InputEvent
253 * @tc.type: FUNC
254 */
255 HWTEST_F(InputEventTestNg, InputEventTest008, TestSize.Level1)
256 {
257 auto eventHub = AceType::MakeRefPtr<EventHub>();
258 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
259 eventHub->AttachHost(frameNode);
260 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
261 inputEventHub->axisEventActuator_ =
262 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
263
__anoncfc565e30602(MouseInfo& info) 264 OnMouseEventFunc onAxis = [](MouseInfo& info) {};
265 auto onAxisEvent = AceType::MakeRefPtr<InputEvent>(std::move(onAxis));
266 inputEventHub->AddOnAxisEvent(onAxisEvent);
267 inputEventHub->AddOnAxisEvent(nullptr);
268
269 AxisTestResult Result;
270 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
271 inputEventHub->axisEventActuator_->OnCollectAxisEvent(COORDINATE_OFFSET, getEventTargetImpl, Result);
272 AxisInfo axisInfo;
273 inputEventHub->axisEventActuator_->axisEventTarget_->onAxisCallback_(axisInfo);
274 EXPECT_NE(inputEventHub, nullptr);
275 }
276
277 /**
278 * @tc.name: InputEventTest009
279 * @tc.desc: test InputEvent
280 * @tc.type: FUNC
281 */
282 HWTEST_F(InputEventTestNg, InputEventTest009, TestSize.Level1)
283 {
284 auto eventHub = AceType::MakeRefPtr<EventHub>();
285 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
286 eventHub->AttachHost(frameNode);
287 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
288 inputEventHub->axisEventActuator_ =
289 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
290
291 AxisTestResult Result;
292 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
293 inputEventHub->axisEventActuator_->OnCollectAxisEvent(COORDINATE_OFFSET, getEventTargetImpl, Result);
294 EXPECT_NE(inputEventHub, nullptr);
295 }
296
297 /**
298 * @tc.name: OnCollectPenHoverEventTest001
299 * @tc.desc: test InputEvent
300 * @tc.type: FUNC
301 */
302 HWTEST_F(InputEventTestNg, OnCollectPenHoverEventTest001, TestSize.Level1)
303 {
304 auto eventHub = AceType::MakeRefPtr<EventHub>();
305 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
306 eventHub->AttachHost(frameNode);
307 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
308 inputEventHub->hoverEventActuator_ =
309 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
310
311 TouchTestResult hoverResult;
312 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
313 inputEventHub->hoverEventActuator_->OnCollectPenHoverEvent(
314 COORDINATE_OFFSET, getEventTargetImpl, hoverResult, frameNode);
315 EXPECT_NE(inputEventHub, nullptr);
316 }
317
318 /**
319 * @tc.name: OnCollectPenHoverEventTest002
320 * @tc.desc: test InputEvent
321 * @tc.type: FUNC
322 */
323 HWTEST_F(InputEventTestNg, OnCollectPenHoverEventTest002, TestSize.Level1)
324 {
325 auto eventHub = AceType::MakeRefPtr<EventHub>();
326 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
327 eventHub->AttachHost(frameNode);
328 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
329 auto hoverEventActuator =
330 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
331 OnHoverFunc onHoverEventFunc;
332 inputEventHub->SetJSFrameNodeOnHoverEvent(std::move(onHoverEventFunc));
333
334 TouchTestResult hoverResult;
335 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
__anoncfc565e30702(MouseInfo& info) 336 OnMouseEventFunc onHoverEventFunc1 = [](MouseInfo& info) {};
337 std::list<RefPtr<InputEvent>> inputEvents = {AceType::MakeRefPtr<InputEvent>(std::move(onHoverEventFunc1))};
338 hoverEventActuator->inputEvents_ = inputEvents;
339 hoverEventActuator->OnCollectPenHoverEvent(COORDINATE_OFFSET, getEventTargetImpl, hoverResult, frameNode);
340
__anoncfc565e30802(MouseInfo& info) 341 OnMouseEventFunc onAxis = [](MouseInfo& info) {};
342 auto onAxisEvent = AceType::MakeRefPtr<InputEvent>(std::move(onAxis));
343 hoverEventActuator->userCallback_ = onAxisEvent;
__anoncfc565e30902(MouseInfo& info) 344 OnMouseEventFunc onAxis2 = [](MouseInfo& info) {};
345 auto onAxisEvent2 = AceType::MakeRefPtr<InputEvent>(std::move(onAxis2));
346 hoverEventActuator->userJSFrameNodeCallback_ = onAxisEvent2;
347 hoverEventActuator->OnCollectPenHoverEvent(COORDINATE_OFFSET, getEventTargetImpl, hoverResult, frameNode);
348
349 HoverInfo hover;
350 hoverEventActuator->penHoverEventTarget_->onPenHoverEventCallback_(true, hover);
351 hoverEventActuator->userCallback_ = nullptr;
352 hoverEventActuator->userJSFrameNodeCallback_ = nullptr;
353 hoverEventActuator->penHoverEventTarget_->onPenHoverEventCallback_(true, hover);
354
355 hoverEventActuator->inputEvents_.pop_back();
356 hoverEventActuator->OnCollectPenHoverEvent(COORDINATE_OFFSET, getEventTargetImpl, hoverResult, frameNode);
357
358 hoverEventActuator->userJSFrameNodeCallback_ = onAxisEvent2;
359 hoverEventActuator->OnCollectPenHoverEvent(COORDINATE_OFFSET, getEventTargetImpl, hoverResult, frameNode);
360
361 EXPECT_NE(inputEventHub, nullptr);
362 }
363
364 /**
365 * @tc.name: OnCollectPenHoverMoveEvent001
366 * @tc.desc: test InputEvent
367 * @tc.type: FUNC
368 */
369 HWTEST_F(InputEventTestNg, OnCollectPenHoverMoveEvent001, TestSize.Level1)
370 {
371 auto eventHub = AceType::MakeRefPtr<EventHub>();
372 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
373 eventHub->AttachHost(frameNode);
374 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
375 inputEventHub->hoverEventActuator_ =
376 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
377
378 TouchTestResult hoverResult;
379 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
380 inputEventHub->hoverEventActuator_->
381 OnCollectPenHoverMoveEvent(COORDINATE_OFFSET, getEventTargetImpl, hoverResult, frameNode);
382 EXPECT_NE(inputEventHub, nullptr);
383 }
384
385 /**
386 * @tc.name: OnCollectPenHoverMoveEvent002
387 * @tc.desc: test InputEvent
388 * @tc.type: FUNC
389 */
390 HWTEST_F(InputEventTestNg, OnCollectPenHoverMoveEvent002, TestSize.Level1)
391 {
392 auto eventHub = AceType::MakeRefPtr<EventHub>();
393 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
394 eventHub->AttachHost(frameNode);
395 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
396 auto hoverEventActuator =
397 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
398 OnHoverFunc onHoverEventFunc;
399 inputEventHub->SetJSFrameNodeOnHoverEvent(std::move(onHoverEventFunc));
400
401 TouchTestResult hoverResult;
402 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
__anoncfc565e30a02(MouseInfo& info) 403 OnMouseEventFunc onHoverEventFunc1 = [](MouseInfo& info) {};
404 std::list<RefPtr<InputEvent>> inputEvents = {AceType::MakeRefPtr<InputEvent>(std::move(onHoverEventFunc1))};
405 hoverEventActuator->inputEvents_ = inputEvents;
406 hoverEventActuator->OnCollectPenHoverMoveEvent(COORDINATE_OFFSET, getEventTargetImpl, hoverResult, frameNode);
407 EXPECT_NE(inputEventHub, nullptr);
408 }
409
410 /**
411 * @tc.name: OnCollectPenHoverMoveEvent003
412 * @tc.desc: Test InputEvent
413 * @tc.type: FUNC
414 */
415 HWTEST_F(InputEventTestNg, OnCollectPenHoverMoveEvent003, TestSize.Level1)
416 {
417 auto eventHub = AceType::MakeRefPtr<EventHub>();
418 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
419 eventHub->AttachHost(frameNode);
420 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
421 auto hoverEventActuator =
422 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
423 TouchTestResult hoverResult;
424 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
__anoncfc565e30b02(MouseInfo& info) 425 OnMouseEventFunc onAxis = [](MouseInfo& info) {};
426 auto userEvent = AceType::MakeRefPtr<InputEvent>(std::move(onAxis));
427 hoverEventActuator->userCallback_ = userEvent;
428 inputEventHub->AddOnAxisEvent(userEvent);
429 hoverEventActuator->OnCollectPenHoverMoveEvent(COORDINATE_OFFSET, getEventTargetImpl, hoverResult, frameNode);
430 EXPECT_NE(inputEventHub, nullptr);
431 }
432
433 /**
434 * @tc.name: OnCollectPenHoverMoveEvent004
435 * @tc.desc: Test InputEvent
436 * @tc.type: FUNC
437 */
438 HWTEST_F(InputEventTestNg, OnCollectPenHoverMoveEvent004, TestSize.Level1)
439 {
440 auto eventHub = AceType::MakeRefPtr<EventHub>();
441 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
442 eventHub->AttachHost(frameNode);
443 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
444 inputEventHub->accessibilityHoverEventActuator_ =
445 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
446
447 TouchTestResult result;
448 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
449 inputEventHub->accessibilityHoverEventActuator_->OnCollectPenHoverMoveEvent(
450 COORDINATE_OFFSET, getEventTargetImpl, result, frameNode);
451 EXPECT_TRUE(result.empty());
452 }
453 /**
454 * @tc.name: OnCollectAccessibilityHoverEvent001
455 * @tc.desc: test InputEvent
456 * @tc.type: FUNC
457 */
458 HWTEST_F(InputEventTestNg, OnCollectAccessibilityHoverEvent001, TestSize.Level1)
459 {
460 auto eventHub = AceType::MakeRefPtr<EventHub>();
461 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
462 eventHub->AttachHost(frameNode);
463 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
464 inputEventHub->hoverEventActuator_ =
465 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
466
467 TouchTestResult hoverResult;
468 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
469 inputEventHub->hoverEventActuator_->
470 OnCollectAccessibilityHoverEvent(COORDINATE_OFFSET, getEventTargetImpl, hoverResult, frameNode);
471 EXPECT_NE(inputEventHub, nullptr);
472 }
473
474 /**
475 * @tc.name: OnCollectAccessibilityHoverEvent002
476 * @tc.desc: test InputEvent
477 * @tc.type: FUNC
478 */
479 HWTEST_F(InputEventTestNg, OnCollectAccessibilityHoverEvent002, TestSize.Level1)
480 {
481 auto eventHub = AceType::MakeRefPtr<EventHub>();
482 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
483 eventHub->AttachHost(frameNode);
484 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
485 auto hoverEventActuator =
486 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
487 OnHoverFunc onHoverEventFunc;
488 inputEventHub->SetJSFrameNodeOnHoverEvent(std::move(onHoverEventFunc));
489
490 TouchTestResult hoverResult;
491 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
__anoncfc565e30c02(MouseInfo& info) 492 OnMouseEventFunc onHoverEventFunc1 = [](MouseInfo& info) {};
493 std::list<RefPtr<InputEvent>> inputEvents = {AceType::MakeRefPtr<InputEvent>(std::move(onHoverEventFunc1))};
494 hoverEventActuator->inputEvents_ = inputEvents;
495 hoverEventActuator->OnCollectAccessibilityHoverEvent(COORDINATE_OFFSET, getEventTargetImpl, hoverResult, frameNode);
496 EXPECT_NE(inputEventHub, nullptr);
497 }
498
499 /**
500 * @tc.name: OnCollectAccessibilityHoverEvent003
501 * @tc.desc: Test InputEvent
502 * @tc.type: FUNC
503 */
504 HWTEST_F(InputEventTestNg, OnCollectAccessibilityHoverEvent003, TestSize.Level1)
505 {
506 auto eventHub = AceType::MakeRefPtr<EventHub>();
507 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
508 eventHub->AttachHost(frameNode);
509 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
510 auto hoverEventActuator =
511 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
512 TouchTestResult hoverResult;
513 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
__anoncfc565e30d02(MouseInfo& info) 514 OnMouseEventFunc onAxis = [](MouseInfo& info) {};
515 auto userEvent = AceType::MakeRefPtr<InputEvent>(std::move(onAxis));
516 hoverEventActuator->userCallback_ = userEvent;
517 inputEventHub->AddOnAxisEvent(userEvent);
518 hoverEventActuator->OnCollectAccessibilityHoverEvent(COORDINATE_OFFSET, getEventTargetImpl, hoverResult, frameNode);
519 EXPECT_NE(inputEventHub, nullptr);
520 }
521
522 /**
523 * @tc.name: OnCollectAccessibilityHoverEvent004
524 * @tc.desc: Test InputEvent
525 * @tc.type: FUNC
526 */
527 HWTEST_F(InputEventTestNg, OnCollectAccessibilityHoverEvent004, TestSize.Level1)
528 {
529 auto eventHub = AceType::MakeRefPtr<EventHub>();
530 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
531 eventHub->AttachHost(frameNode);
532 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
533 inputEventHub->accessibilityHoverEventActuator_ =
534 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
535
536 TouchTestResult result;
537 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
538 inputEventHub->accessibilityHoverEventActuator_->OnCollectAccessibilityHoverEvent(
539 COORDINATE_OFFSET, getEventTargetImpl, result, frameNode);
540 EXPECT_TRUE(result.empty());
541 }
542
543 /**
544 * @tc.name: OnCollectAxisEvent001
545 * @tc.desc: test InputEvent
546 * @tc.type: FUNC
547 */
548 HWTEST_F(InputEventTestNg, OnCollectAxisEvent001, TestSize.Level1)
549 {
550 auto eventHub = AceType::MakeRefPtr<EventHub>();
551 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
552 eventHub->AttachHost(frameNode);
553
554 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
555 inputEventHub->axisEventActuator_ =
556 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
__anoncfc565e30e02(MouseInfo& info) 557 OnMouseEventFunc onAxis = [](MouseInfo& info) {};
558 auto onAxisEvent = AceType::MakeRefPtr<InputEvent>(std::move(onAxis));
559 inputEventHub->axisEventActuator_->userCallback_ = onAxisEvent;
560
561 AxisTestResult Result;
562 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
563
564 inputEventHub->axisEventActuator_->OnCollectAxisEvent(COORDINATE_OFFSET, getEventTargetImpl, Result);
565 inputEventHub->axisEventActuator_->inputEvents_.emplace_back(onAxisEvent);
566
567 inputEventHub->axisEventActuator_->OnCollectAxisEvent(COORDINATE_OFFSET, getEventTargetImpl, Result);
568 inputEventHub->axisEventActuator_->userCallback_ = onAxisEvent;
569 inputEventHub->axisEventActuator_->OnCollectAxisEvent(COORDINATE_OFFSET, getEventTargetImpl, Result);
570
571 AxisInfo axisInfo;
572 inputEventHub->axisEventActuator_->axisEventTarget_->onAxisCallback_(axisInfo);
573 EXPECT_NE(inputEventHub, nullptr);
574 }
575 } // namespace OHOS::Ace::NG