• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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