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 constexpr int32_t DOUBLE = 2;
35 const OffsetF COORDINATE_OFFSET(WIDTH, HEIGHT);
36 const std::string RESULT_SUCCESS_ONE = "sucess1";
37 const std::string RESULT_SUCCESS_TWO = "sucess2";
38 } // namespace
39
40 class InputEventTestNg : public testing::Test {
41 public:
42 static void SetUpTestSuite();
43 static void TearDownTestSuite();
44 void SetUp() override;
45 void TearDown() override;
46 };
47
SetUpTestSuite()48 void InputEventTestNg::SetUpTestSuite()
49 {
50 GTEST_LOG_(INFO) << "InputEventTestNg SetUpTestCase";
51 }
52
TearDownTestSuite()53 void InputEventTestNg::TearDownTestSuite()
54 {
55 GTEST_LOG_(INFO) << "InputEventTestNg TearDownTestCase";
56 }
57
SetUp()58 void InputEventTestNg::SetUp()
59 {
60 MockPipelineContext::SetUp();
61 }
62
TearDown()63 void InputEventTestNg::TearDown()
64 {
65 MockPipelineContext::TearDown();
66 }
67
68 /**
69 * @tc.name: InputEventTest001
70 * @tc.desc: test InputEvent
71 * @tc.type: FUNC
72 */
73 HWTEST_F(InputEventTestNg, InputEventTest001, TestSize.Level1)
74 {
75 auto eventHub = AceType::MakeRefPtr<EventHub>();
76 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
77 eventHub->AttachHost(frameNode);
78 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
79 inputEventHub->mouseEventActuator_ =
80 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
81 inputEventHub->hoverEventActuator_ =
82 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
__anond2e4b9c50202(MouseInfo& info) 83 const OnMouseEventFunc onMouse = [](MouseInfo& info) {};
84 OnMouseEventFunc onMouse1 = onMouse;
85 inputEventHub->SetJSFrameNodeOnMouseEvent(std::move(onMouse1));
86 OnMouseEventFunc onMouse2 = onMouse;
87 inputEventHub->SetMouseEvent(std::move(onMouse2));
88
89 TouchTestResult Result;
90 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
91 inputEventHub->mouseEventActuator_->OnCollectMouseEvent(COORDINATE_OFFSET, getEventTargetImpl, Result);
92 MouseInfo mouse;
93 inputEventHub->mouseEventActuator_->mouseEventTarget_->onMouseCallback_(mouse);
94 EXPECT_NE(inputEventHub, nullptr);
95 }
96
97 /**
98 * @tc.name: InputEventTest002
99 * @tc.desc: test InputEvent
100 * @tc.type: FUNC
101 */
102 HWTEST_F(InputEventTestNg, InputEventTest002, TestSize.Level1)
103 {
104 auto eventHub = AceType::MakeRefPtr<EventHub>();
105 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
106 eventHub->AttachHost(frameNode);
107 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
108 inputEventHub->hoverEventActuator_ =
109 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
110 OnHoverFunc onHoverEventFunc;
111 OnHoverFunc onHoverEventFunc2;
112 inputEventHub->SetJSFrameNodeOnHoverEvent(std::move(onHoverEventFunc));
113 inputEventHub->SetHoverEvent(std::move(onHoverEventFunc2));
114
__anond2e4b9c50302(bool, HoverInfo) 115 const OnHoverFunc onHover = [](bool, HoverInfo) {};
116 OnHoverFunc onHover1 = onHover;
117 auto onHoverEvent = AceType::MakeRefPtr<InputEvent>(std::move(onHover1));
118 inputEventHub->AddOnHoverEvent(onHoverEvent);
119 inputEventHub->AddOnHoverEvent(nullptr);
120
121 TouchTestResult hoverResult;
122 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
123 inputEventHub->hoverEventActuator_->OnCollectHoverEvent(COORDINATE_OFFSET, getEventTargetImpl, hoverResult);
124 HoverInfo hover;
125 inputEventHub->hoverEventActuator_->hoverEventTarget_->onHoverEventCallback_(true, hover);
126 EXPECT_NE(inputEventHub, nullptr);
127 }
128
129 /**
130 * @tc.name: InputEventTest003
131 * @tc.desc: test InputEvent
132 * @tc.type: FUNC
133 */
134 HWTEST_F(InputEventTestNg, InputEventTest003, TestSize.Level1)
135 {
136 auto eventHub = AceType::MakeRefPtr<EventHub>();
137 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
138 eventHub->AttachHost(frameNode);
139 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
140 inputEventHub->hoverEventActuator_ =
141 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
142 OnHoverFunc onHoverEventFunc;
143 inputEventHub->SetHoverEvent(std::move(onHoverEventFunc));
144
145 TouchTestResult hoverResult;
146 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
147 inputEventHub->hoverEventActuator_->OnCollectHoverEvent(COORDINATE_OFFSET, getEventTargetImpl, hoverResult);
148 HoverInfo hover;
149 inputEventHub->hoverEventActuator_->hoverEventTarget_->onHoverEventCallback_(true, hover);
150 EXPECT_NE(inputEventHub, nullptr);
151 }
152
153 /**
154 * @tc.name: InputEventTest004
155 * @tc.desc: test InputEvent
156 * @tc.type: FUNC
157 */
158 HWTEST_F(InputEventTestNg, InputEventTest004, TestSize.Level1)
159 {
160 auto eventHub = AceType::MakeRefPtr<EventHub>();
161 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
162 eventHub->AttachHost(frameNode);
163 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
164 inputEventHub->hoverEventActuator_ =
165 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
166 OnHoverFunc onHoverEventFunc;
167 inputEventHub->SetJSFrameNodeOnHoverEvent(std::move(onHoverEventFunc));
168
169 TouchTestResult hoverResult;
170 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
171 inputEventHub->hoverEventActuator_->OnCollectHoverEvent(COORDINATE_OFFSET, getEventTargetImpl, hoverResult);
172 HoverInfo hover;
173 inputEventHub->hoverEventActuator_->hoverEventTarget_->onHoverEventCallback_(true, hover);
174 EXPECT_NE(inputEventHub, nullptr);
175 }
176
177 /**
178 * @tc.name: InputEventTest005
179 * @tc.desc: test InputEvent
180 * @tc.type: FUNC
181 */
182 HWTEST_F(InputEventTestNg, InputEventTest005, TestSize.Level1)
183 {
184 auto eventHub = AceType::MakeRefPtr<EventHub>();
185 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
186 eventHub->AttachHost(frameNode);
187 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
188 inputEventHub->hoverEventActuator_ =
189 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
190
191 TouchTestResult hoverResult;
192 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
193 inputEventHub->hoverEventActuator_->OnCollectHoverEvent(COORDINATE_OFFSET, getEventTargetImpl, hoverResult);
194 EXPECT_NE(inputEventHub, nullptr);
195 }
196
197 /**
198 * @tc.name: InputEventTest006
199 * @tc.desc: test InputEvent
200 * @tc.type: FUNC
201 */
202 HWTEST_F(InputEventTestNg, InputEventTest006, TestSize.Level1)
203 {
204 auto eventHub = AceType::MakeRefPtr<EventHub>();
205 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
206 eventHub->AttachHost(frameNode);
207 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
208 inputEventHub->axisEventActuator_ =
209 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
210
__anond2e4b9c50402(MouseInfo& info) 211 OnMouseEventFunc onAxis = [](MouseInfo& info) {};
212 auto onAxisEvent = AceType::MakeRefPtr<InputEvent>(std::move(onAxis));
213 inputEventHub->AddOnAxisEvent(onAxisEvent);
214 inputEventHub->AddOnAxisEvent(nullptr);
215 inputEventHub->axisEventActuator_->userCallback_ = onAxisEvent;
216
217 AxisTestResult Result;
218 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
219 inputEventHub->axisEventActuator_->OnCollectAxisEvent(COORDINATE_OFFSET, getEventTargetImpl, Result);
220 AxisInfo axisInfo;
221 inputEventHub->axisEventActuator_->axisEventTarget_->onAxisCallback_(axisInfo);
222 EXPECT_NE(inputEventHub, nullptr);
223 }
224
225 /**
226 * @tc.name: InputEventTest007
227 * @tc.desc: test InputEvent
228 * @tc.type: FUNC
229 */
230 HWTEST_F(InputEventTestNg, InputEventTest007, TestSize.Level1)
231 {
232 auto eventHub = AceType::MakeRefPtr<EventHub>();
233 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
234 eventHub->AttachHost(frameNode);
235 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
236 inputEventHub->axisEventActuator_ =
237 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
238
__anond2e4b9c50502(MouseInfo& info) 239 OnMouseEventFunc onAxis = [](MouseInfo& info) {};
240 auto onAxisEvent = AceType::MakeRefPtr<InputEvent>(std::move(onAxis));
241 inputEventHub->axisEventActuator_->userCallback_ = onAxisEvent;
242
243 AxisTestResult Result;
244 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
245 inputEventHub->axisEventActuator_->OnCollectAxisEvent(COORDINATE_OFFSET, getEventTargetImpl, Result);
246 AxisInfo axisInfo;
247 inputEventHub->axisEventActuator_->axisEventTarget_->onAxisCallback_(axisInfo);
248 EXPECT_NE(inputEventHub, nullptr);
249 }
250
251 /**
252 * @tc.name: InputEventTest008
253 * @tc.desc: test InputEvent
254 * @tc.type: FUNC
255 */
256 HWTEST_F(InputEventTestNg, InputEventTest008, TestSize.Level1)
257 {
258 auto eventHub = AceType::MakeRefPtr<EventHub>();
259 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
260 eventHub->AttachHost(frameNode);
261 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
262 inputEventHub->axisEventActuator_ =
263 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
264
__anond2e4b9c50602(MouseInfo& info) 265 OnMouseEventFunc onAxis = [](MouseInfo& info) {};
266 auto onAxisEvent = AceType::MakeRefPtr<InputEvent>(std::move(onAxis));
267 inputEventHub->AddOnAxisEvent(onAxisEvent);
268 inputEventHub->AddOnAxisEvent(nullptr);
269
270 AxisTestResult Result;
271 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
272 inputEventHub->axisEventActuator_->OnCollectAxisEvent(COORDINATE_OFFSET, getEventTargetImpl, Result);
273 AxisInfo axisInfo;
274 inputEventHub->axisEventActuator_->axisEventTarget_->onAxisCallback_(axisInfo);
275 EXPECT_NE(inputEventHub, nullptr);
276 }
277
278 /**
279 * @tc.name: InputEventTest009
280 * @tc.desc: test InputEvent
281 * @tc.type: FUNC
282 */
283 HWTEST_F(InputEventTestNg, InputEventTest009, TestSize.Level1)
284 {
285 auto eventHub = AceType::MakeRefPtr<EventHub>();
286 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
287 eventHub->AttachHost(frameNode);
288 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
289 inputEventHub->axisEventActuator_ =
290 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
291
292 AxisTestResult Result;
293 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
294 inputEventHub->axisEventActuator_->OnCollectAxisEvent(COORDINATE_OFFSET, getEventTargetImpl, Result);
295 EXPECT_NE(inputEventHub, nullptr);
296 }
297
298 /**
299 * @tc.name: InputEventTest010
300 * @tc.desc: test InputEvent
301 * @tc.type: FUNC
302 */
303 HWTEST_F(InputEventTestNg, InputEventTest010, TestSize.Level1)
304 {
305 auto eventHub = AceType::MakeRefPtr<EventHub>();
306 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
307 eventHub->AttachHost(frameNode);
308 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
309 EXPECT_NE(inputEventHub, nullptr);
310 inputEventHub->mouseEventActuator_ =
311 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
312 int32_t count = 0;
313 MouseInfo mouse;
314 TouchTestResult result;
315 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
316 inputEventHub->mouseEventActuator_->OnCollectMouseEventForTips(COORDINATE_OFFSET, getEventTargetImpl, result);
317
__anond2e4b9c50702(MouseInfo& info) 318 auto mouseTask = [&count](MouseInfo& info) { count++; };
319 auto mouseEvent1 = AceType::MakeRefPtr<InputEvent>(mouseTask);
320 mouseEvent1->SetIstips(true);
321 mouseEvent1->SetTipsFollowCursor(true);
322 inputEventHub->mouseEventActuator_->inputEvents_.clear();
323 inputEventHub->AddOnMouseEvent(std::move(mouseEvent1));
324 inputEventHub->mouseEventActuator_->OnCollectMouseEventForTips(COORDINATE_OFFSET, getEventTargetImpl, result);
325 inputEventHub->mouseEventActuator_->mouseEventTarget_->onMouseCallback_(mouse);
326 EXPECT_EQ(count, 1);
327
328 auto mouseEvent2 = AceType::MakeRefPtr<InputEvent>(mouseTask);
329 mouseEvent2->SetIstips(true);
330 inputEventHub->mouseEventActuator_->inputEvents_.clear();
331 inputEventHub->AddOnMouseEvent(std::move(mouseEvent2));
332 inputEventHub->mouseEventActuator_->OnCollectMouseEventForTips(COORDINATE_OFFSET, getEventTargetImpl, result);
333 inputEventHub->mouseEventActuator_->mouseEventTarget_->onMouseCallback_(mouse);
334 EXPECT_EQ(count, 1);
335
336 auto mouseEvent3 = AceType::MakeRefPtr<InputEvent>(mouseTask);
337 mouseEvent3->SetTipsFollowCursor(true);
338 inputEventHub->mouseEventActuator_->inputEvents_.clear();
339 inputEventHub->AddOnMouseEvent(std::move(mouseEvent3));
340 inputEventHub->mouseEventActuator_->OnCollectMouseEventForTips(COORDINATE_OFFSET, getEventTargetImpl, result);
341 inputEventHub->mouseEventActuator_->mouseEventTarget_->onMouseCallback_(mouse);
342 EXPECT_EQ(count, 1);
343
344 inputEventHub->mouseEventActuator_->inputEvents_.clear();
345 inputEventHub->AddOnMouseEvent(nullptr);
346 inputEventHub->mouseEventActuator_->OnCollectMouseEventForTips(COORDINATE_OFFSET, getEventTargetImpl, result);
347 inputEventHub->mouseEventActuator_->mouseEventTarget_->onMouseCallback_(mouse);
348 EXPECT_EQ(count, 1);
349 }
350
351 /**
352 * @tc.name: OnCollectPenHoverEventTest001
353 * @tc.desc: test InputEvent
354 * @tc.type: FUNC
355 */
356 HWTEST_F(InputEventTestNg, OnCollectPenHoverEventTest001, TestSize.Level1)
357 {
358 auto eventHub = AceType::MakeRefPtr<EventHub>();
359 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
360 eventHub->AttachHost(frameNode);
361 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
362 inputEventHub->hoverEventActuator_ =
363 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
364
365 TouchTestResult hoverResult;
366 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
367 inputEventHub->hoverEventActuator_->OnCollectPenHoverEvent(
368 COORDINATE_OFFSET, getEventTargetImpl, hoverResult, frameNode);
369 EXPECT_NE(inputEventHub, nullptr);
370 }
371
372 /**
373 * @tc.name: OnCollectPenHoverEventTest002
374 * @tc.desc: test InputEvent
375 * @tc.type: FUNC
376 */
377 HWTEST_F(InputEventTestNg, OnCollectPenHoverEventTest002, TestSize.Level1)
378 {
379 auto eventHub = AceType::MakeRefPtr<EventHub>();
380 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
381 eventHub->AttachHost(frameNode);
382 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
383 auto hoverEventActuator =
384 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
385 OnHoverFunc onHoverEventFunc;
386 inputEventHub->SetJSFrameNodeOnHoverEvent(std::move(onHoverEventFunc));
387
388 TouchTestResult hoverResult;
389 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
__anond2e4b9c50802(MouseInfo& info) 390 OnMouseEventFunc onHoverEventFunc1 = [](MouseInfo& info) {};
391 std::list<RefPtr<InputEvent>> inputEvents = {AceType::MakeRefPtr<InputEvent>(std::move(onHoverEventFunc1))};
392 hoverEventActuator->inputEvents_ = inputEvents;
393 hoverEventActuator->OnCollectPenHoverEvent(COORDINATE_OFFSET, getEventTargetImpl, hoverResult, frameNode);
394
__anond2e4b9c50902(MouseInfo& info) 395 OnMouseEventFunc onAxis = [](MouseInfo& info) {};
396 auto onAxisEvent = AceType::MakeRefPtr<InputEvent>(std::move(onAxis));
397 hoverEventActuator->userCallback_ = onAxisEvent;
__anond2e4b9c50a02(MouseInfo& info) 398 OnMouseEventFunc onAxis2 = [](MouseInfo& info) {};
399 auto onAxisEvent2 = AceType::MakeRefPtr<InputEvent>(std::move(onAxis2));
400 hoverEventActuator->userJSFrameNodeCallback_ = onAxisEvent2;
401 hoverEventActuator->OnCollectPenHoverEvent(COORDINATE_OFFSET, getEventTargetImpl, hoverResult, frameNode);
402
403 HoverInfo hover;
404 hoverEventActuator->penHoverEventTarget_->onPenHoverEventCallback_(true, hover);
405 hoverEventActuator->userCallback_ = nullptr;
406 hoverEventActuator->userJSFrameNodeCallback_ = nullptr;
407 hoverEventActuator->penHoverEventTarget_->onPenHoverEventCallback_(true, hover);
408
409 hoverEventActuator->inputEvents_.pop_back();
410 hoverEventActuator->OnCollectPenHoverEvent(COORDINATE_OFFSET, getEventTargetImpl, hoverResult, frameNode);
411
412 hoverEventActuator->userJSFrameNodeCallback_ = onAxisEvent2;
413 hoverEventActuator->OnCollectPenHoverEvent(COORDINATE_OFFSET, getEventTargetImpl, hoverResult, frameNode);
414
415 EXPECT_NE(inputEventHub, nullptr);
416 }
417
418 /**
419 * @tc.name: OnCollectPenHoverMoveEvent001
420 * @tc.desc: test InputEvent
421 * @tc.type: FUNC
422 */
423 HWTEST_F(InputEventTestNg, OnCollectPenHoverMoveEvent001, TestSize.Level1)
424 {
425 auto eventHub = AceType::MakeRefPtr<EventHub>();
426 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
427 eventHub->AttachHost(frameNode);
428 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
429 inputEventHub->hoverEventActuator_ =
430 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
431
432 TouchTestResult hoverResult;
433 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
434 inputEventHub->hoverEventActuator_->
435 OnCollectPenHoverMoveEvent(COORDINATE_OFFSET, getEventTargetImpl, hoverResult, frameNode);
436 EXPECT_NE(inputEventHub, nullptr);
437 }
438
439 /**
440 * @tc.name: OnCollectPenHoverMoveEvent002
441 * @tc.desc: test InputEvent
442 * @tc.type: FUNC
443 */
444 HWTEST_F(InputEventTestNg, OnCollectPenHoverMoveEvent002, TestSize.Level1)
445 {
446 auto eventHub = AceType::MakeRefPtr<EventHub>();
447 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
448 eventHub->AttachHost(frameNode);
449 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
450 auto hoverEventActuator =
451 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
452 OnHoverFunc onHoverEventFunc;
453 inputEventHub->SetJSFrameNodeOnHoverEvent(std::move(onHoverEventFunc));
454
455 TouchTestResult hoverResult;
456 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
__anond2e4b9c50b02(MouseInfo& info) 457 OnMouseEventFunc onHoverEventFunc1 = [](MouseInfo& info) {};
458 std::list<RefPtr<InputEvent>> inputEvents = {AceType::MakeRefPtr<InputEvent>(std::move(onHoverEventFunc1))};
459 hoverEventActuator->inputEvents_ = inputEvents;
460 hoverEventActuator->OnCollectPenHoverMoveEvent(COORDINATE_OFFSET, getEventTargetImpl, hoverResult, frameNode);
461 EXPECT_NE(inputEventHub, nullptr);
462 }
463
464 /**
465 * @tc.name: OnCollectPenHoverMoveEvent003
466 * @tc.desc: Test InputEvent
467 * @tc.type: FUNC
468 */
469 HWTEST_F(InputEventTestNg, OnCollectPenHoverMoveEvent003, TestSize.Level1)
470 {
471 auto eventHub = AceType::MakeRefPtr<EventHub>();
472 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
473 eventHub->AttachHost(frameNode);
474 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
475 auto hoverEventActuator =
476 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
477 TouchTestResult hoverResult;
478 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
__anond2e4b9c50c02(MouseInfo& info) 479 OnMouseEventFunc onAxis = [](MouseInfo& info) {};
480 auto userEvent = AceType::MakeRefPtr<InputEvent>(std::move(onAxis));
481 hoverEventActuator->userCallback_ = userEvent;
482 inputEventHub->AddOnAxisEvent(userEvent);
483 hoverEventActuator->OnCollectPenHoverMoveEvent(COORDINATE_OFFSET, getEventTargetImpl, hoverResult, frameNode);
484 EXPECT_NE(inputEventHub, nullptr);
485 }
486
487 /**
488 * @tc.name: OnCollectPenHoverMoveEvent004
489 * @tc.desc: Test InputEvent
490 * @tc.type: FUNC
491 */
492 HWTEST_F(InputEventTestNg, OnCollectPenHoverMoveEvent004, TestSize.Level1)
493 {
494 auto eventHub = AceType::MakeRefPtr<EventHub>();
495 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
496 eventHub->AttachHost(frameNode);
497 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
498 inputEventHub->accessibilityHoverEventActuator_ =
499 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
500
501 TouchTestResult result;
502 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
503 inputEventHub->accessibilityHoverEventActuator_->OnCollectPenHoverMoveEvent(
504 COORDINATE_OFFSET, getEventTargetImpl, result, frameNode);
505 EXPECT_TRUE(result.empty());
506 }
507 /**
508 * @tc.name: OnCollectAccessibilityHoverEvent001
509 * @tc.desc: test InputEvent
510 * @tc.type: FUNC
511 */
512 HWTEST_F(InputEventTestNg, OnCollectAccessibilityHoverEvent001, TestSize.Level1)
513 {
514 auto eventHub = AceType::MakeRefPtr<EventHub>();
515 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
516 eventHub->AttachHost(frameNode);
517 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
518 inputEventHub->hoverEventActuator_ =
519 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
520
521 TouchTestResult hoverResult;
522 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
523 inputEventHub->hoverEventActuator_->
524 OnCollectAccessibilityHoverEvent(COORDINATE_OFFSET, getEventTargetImpl, hoverResult, frameNode);
525 EXPECT_NE(inputEventHub, nullptr);
526 }
527
528 /**
529 * @tc.name: OnCollectAccessibilityHoverEvent002
530 * @tc.desc: test InputEvent
531 * @tc.type: FUNC
532 */
533 HWTEST_F(InputEventTestNg, OnCollectAccessibilityHoverEvent002, TestSize.Level1)
534 {
535 auto eventHub = AceType::MakeRefPtr<EventHub>();
536 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
537 eventHub->AttachHost(frameNode);
538 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
539 auto hoverEventActuator =
540 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
541 OnHoverFunc onHoverEventFunc;
542 inputEventHub->SetJSFrameNodeOnHoverEvent(std::move(onHoverEventFunc));
543
544 TouchTestResult hoverResult;
545 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
__anond2e4b9c50d02(MouseInfo& info) 546 OnMouseEventFunc onHoverEventFunc1 = [](MouseInfo& info) {};
547 std::list<RefPtr<InputEvent>> inputEvents = {AceType::MakeRefPtr<InputEvent>(std::move(onHoverEventFunc1))};
548 hoverEventActuator->inputEvents_ = inputEvents;
549 hoverEventActuator->OnCollectAccessibilityHoverEvent(COORDINATE_OFFSET, getEventTargetImpl, hoverResult, frameNode);
550 EXPECT_NE(inputEventHub, nullptr);
551 }
552
553 /**
554 * @tc.name: OnCollectAccessibilityHoverEvent003
555 * @tc.desc: Test InputEvent
556 * @tc.type: FUNC
557 */
558 HWTEST_F(InputEventTestNg, OnCollectAccessibilityHoverEvent003, TestSize.Level1)
559 {
560 auto eventHub = AceType::MakeRefPtr<EventHub>();
561 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
562 eventHub->AttachHost(frameNode);
563 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
564 auto hoverEventActuator =
565 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
566 TouchTestResult hoverResult;
567 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
__anond2e4b9c50e02(MouseInfo& info) 568 OnMouseEventFunc onAxis = [](MouseInfo& info) {};
569 auto userEvent = AceType::MakeRefPtr<InputEvent>(std::move(onAxis));
570 hoverEventActuator->userCallback_ = userEvent;
571 inputEventHub->AddOnAxisEvent(userEvent);
572 hoverEventActuator->OnCollectAccessibilityHoverEvent(COORDINATE_OFFSET, getEventTargetImpl, hoverResult, frameNode);
573 EXPECT_NE(inputEventHub, nullptr);
574 }
575
576 /**
577 * @tc.name: OnCollectAccessibilityHoverEvent004
578 * @tc.desc: Test InputEvent
579 * @tc.type: FUNC
580 */
581 HWTEST_F(InputEventTestNg, OnCollectAccessibilityHoverEvent004, TestSize.Level1)
582 {
583 auto eventHub = AceType::MakeRefPtr<EventHub>();
584 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
585 eventHub->AttachHost(frameNode);
586 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
587 inputEventHub->accessibilityHoverEventActuator_ =
588 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
589
590 TouchTestResult result;
591 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
592 inputEventHub->accessibilityHoverEventActuator_->OnCollectAccessibilityHoverEvent(
593 COORDINATE_OFFSET, getEventTargetImpl, result, frameNode);
594 EXPECT_TRUE(result.empty());
595 }
596
597 /**
598 * @tc.name: OnCollectAxisEvent001
599 * @tc.desc: test InputEvent
600 * @tc.type: FUNC
601 */
602 HWTEST_F(InputEventTestNg, OnCollectAxisEvent001, TestSize.Level1)
603 {
604 auto eventHub = AceType::MakeRefPtr<EventHub>();
605 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
606 eventHub->AttachHost(frameNode);
607
608 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
609 inputEventHub->axisEventActuator_ =
610 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
__anond2e4b9c50f02(MouseInfo& info) 611 OnMouseEventFunc onAxis = [](MouseInfo& info) {};
612 auto onAxisEvent = AceType::MakeRefPtr<InputEvent>(std::move(onAxis));
613 inputEventHub->axisEventActuator_->userCallback_ = onAxisEvent;
614
615 AxisTestResult Result;
616 auto getEventTargetImpl = eventHub->CreateGetEventTargetImpl();
617
618 inputEventHub->axisEventActuator_->OnCollectAxisEvent(COORDINATE_OFFSET, getEventTargetImpl, Result);
619 inputEventHub->axisEventActuator_->inputEvents_.emplace_back(onAxisEvent);
620
621 inputEventHub->axisEventActuator_->OnCollectAxisEvent(COORDINATE_OFFSET, getEventTargetImpl, Result);
622 inputEventHub->axisEventActuator_->userCallback_ = onAxisEvent;
623 inputEventHub->axisEventActuator_->OnCollectAxisEvent(COORDINATE_OFFSET, getEventTargetImpl, Result);
624
625 AxisInfo axisInfo;
626 inputEventHub->axisEventActuator_->axisEventTarget_->onAxisCallback_(axisInfo);
627 EXPECT_NE(inputEventHub, nullptr);
628 }
629
630 /**
631 * @tc.name: ProcessTipsMouseTestHit001
632 * @tc.desc: test ProcessTipsMouseTestHit
633 * @tc.type: FUNC
634 */
635 HWTEST_F(InputEventTestNg, ProcessTipsMouseTestHit001, TestSize.Level1)
636 {
637 auto eventHub = AceType::MakeRefPtr<EventHub>();
638 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
639 eventHub->AttachHost(frameNode);
640
641 auto inputEventHub = AceType::MakeRefPtr<InputEventHub>(AceType::WeakClaim(AceType::RawPtr(eventHub)));
642 EXPECT_NE(inputEventHub, nullptr);
643 inputEventHub->mouseEventActuator_ =
644 AceType::MakeRefPtr<InputEventActuator>(AceType::WeakClaim(AceType::RawPtr(inputEventHub)));
645
646 TouchTestResult result;
647 inputEventHub->ProcessTipsMouseTestHit(COORDINATE_OFFSET, result);
648 EXPECT_EQ(result.size(), 0);
649 }
650
651 /**
652 * @tc.name: RemoveAllTipsEvents001
653 * @tc.desc: test RemoveAllTipsEvents
654 * @tc.type: FUNC
655 */
656 HWTEST_F(InputEventTestNg, RemoveAllTipsEvents001, TestSize.Level1)
657 {
658 auto actuator = AceType::MakeRefPtr<InputEventActuator>(nullptr);
__anond2e4b9c51002(bool isHover) 659 auto hoverTask1 = [](bool isHover) {};
__anond2e4b9c51102(bool isHover) 660 auto hoverTask2 = [](bool isHover) {};
661 auto hoverEvent1 = AceType::MakeRefPtr<InputEvent>(std::move(hoverTask1));
662 auto hoverEvent2 = AceType::MakeRefPtr<InputEvent>(std::move(hoverTask2));
663 hoverEvent1->SetIstips(true);
664 hoverEvent2->SetIstips(true);
665 actuator->AddInputEvent(hoverEvent1);
666 actuator->AddInputEvent(hoverEvent2);
667 EXPECT_EQ(actuator->inputEvents_.size(), DOUBLE);
668 actuator->RemoveAllTipsEvents();
669 EXPECT_EQ(actuator->inputEvents_.size(), 0);
670 }
671 } // namespace OHOS::Ace::NG