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 "test/unittest/core/event/gesture_event_hub_test_ng.h"
17
18 using namespace testing;
19 using namespace testing::ext;
20
21 namespace OHOS::Ace::NG {
SetUpTestSuite()22 void GestureEventHubTestNg::SetUpTestSuite()
23 {
24 MockPipelineContext::SetUp();
25 MOCK_DRAG_WINDOW = DragWindow::CreateDragWindow("", 0, 0, 0, 0);
26 GTEST_LOG_(INFO) << "GestureEventHubTestNg SetUpTestCase";
27 MOCK_TASK_EXECUTOR = AceType::MakeRefPtr<MockTaskExecutor>();
28 }
29
TearDownTestSuite()30 void GestureEventHubTestNg::TearDownTestSuite()
31 {
32 MockPipelineContext::TearDown();
33 MOCK_DRAG_WINDOW = nullptr;
34 GTEST_LOG_(INFO) << "GestureEventHubTestNg TearDownTestCase";
35 }
36
37 /**
38 * @tc.name: GestureEventHubTest001
39 * @tc.desc: Create GestureEventHub and call GetFrameNode
40 * @tc.type: FUNC
41 */
42 HWTEST_F(GestureEventHubTestNg, GestureEventHubTest001, TestSize.Level1)
43 {
44 /**
45 * @tc.steps: step1. Create GestureEventHub.
46 * @tc.expected: eventHub is not null.
47 */
48 auto eventHub = AceType::MakeRefPtr<EventHub>();
49 EXPECT_TRUE(eventHub);
50 auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
51 eventHub->AttachHost(frameNode);
52 auto gestureEventHub = AceType::MakeRefPtr<GestureEventHub>(eventHub);
53 EXPECT_TRUE(gestureEventHub);
54
55 /**
56 * @tc.steps: step2. Test GetFrameNode
57 * case: eventHub is valid
58 * @tc.expected: frameNodeOfEvent is not null.
59 */
60 auto frameNodeOfEvent = gestureEventHub->GetFrameNode();
61 EXPECT_TRUE(frameNodeOfEvent);
62
63 /**
64 * @tc.steps: step2. Test GetFrameNode
65 * case: eventHub is invalid
66 * @tc.expected: frameNodeOfEvent is null.
67 */
68 eventHub = nullptr;
69 frameNode = nullptr;
70 frameNodeOfEvent = gestureEventHub->GetFrameNode();
71 EXPECT_FALSE(frameNodeOfEvent);
72 }
73
74 /**
75 * @tc.name: GestureEventHubTest002
76 * @tc.desc: Test ProcessTouchTestHit part1
77 * @tc.type: FUNC
78 */
79 HWTEST_F(GestureEventHubTestNg, GestureEventHubTest002, TestSize.Level1)
80 {
81 /**
82 * @tc.steps: step1. Create GestureEventHub.
83 * @tc.expected: gestureEventHub is not null.
84 */
85 auto eventHub = AceType::MakeRefPtr<EventHub>();
86 EXPECT_TRUE(eventHub);
87 auto gestureEventHub = AceType::MakeRefPtr<GestureEventHub>(eventHub);
88 EXPECT_TRUE(gestureEventHub);
89
90 /**
91 * @tc.steps: step2. Test ProcessTouchTestHit
92 * case: eventHub is null && actuators such as scrollableActuator_ & touchEventActuator_ are all null
93 * @tc.expected: ProcessTouchTestHit return false, innerTargets & finalResult is empty
94 */
95 eventHub = nullptr;
96 TouchRestrict touchRestrict;
97 TouchTestResult innerTargets;
98 TouchTestResult finalResult;
99 ResponseLinkResult responseLinkResult;
100 auto flag = gestureEventHub->ProcessTouchTestHit(
101 COORDINATE_OFFSET, touchRestrict, innerTargets, finalResult, TOUCH_ID, PointF(), nullptr, responseLinkResult);
102 EXPECT_FALSE(flag);
103 auto sizeOfInnerTargets = static_cast<int32_t>(innerTargets.size());
104 auto sizeOfFinalResult = static_cast<int32_t>(finalResult.size());
105 EXPECT_EQ(sizeOfInnerTargets, 0);
106 EXPECT_EQ(sizeOfFinalResult, 0);
107
108 /**
109 * @tc.steps: step3. construct touchEventActuator_
110 * then set it to gestureEventHub
111 */
112 // reconstruct a gestureEventHub
113 eventHub = AceType::MakeRefPtr<EventHub>();
114 EXPECT_TRUE(eventHub);
115 auto framenode = FrameNode::CreateFrameNode("test", 1, AceType::MakeRefPtr<Pattern>(), false);
116 EXPECT_NE(framenode, nullptr);
117 eventHub->host_ = AceType::WeakClaim(AceType::RawPtr(framenode));
118 gestureEventHub = AceType::MakeRefPtr<GestureEventHub>(eventHub);
119 EXPECT_TRUE(gestureEventHub);
120 // set touchEventActuator_
__anon9b9e2c480102(TouchEventInfo& info) 121 auto touchCallback = [](TouchEventInfo& info) {};
122 auto touchEvent = AceType::MakeRefPtr<TouchEventImpl>(std::move(touchCallback));
123 gestureEventHub->AddTouchEvent(touchEvent);
124
125 /**
126 * @tc.steps: step4. Test ProcessTouchTestHit
127 * case: eventHub is not null && touchEventActuator_ is not null
128 * @tc.expected: ProcessTouchTestHit return false, innerTargets & finalResult have one element
129 */
130 flag = gestureEventHub->ProcessTouchTestHit(
131 COORDINATE_OFFSET, touchRestrict, innerTargets, finalResult, TOUCH_ID, PointF(), nullptr, responseLinkResult);
132 EXPECT_FALSE(flag);
133 sizeOfInnerTargets = static_cast<int32_t>(innerTargets.size());
134 sizeOfFinalResult = static_cast<int32_t>(finalResult.size());
135 EXPECT_EQ(sizeOfInnerTargets, 1);
136 EXPECT_EQ(sizeOfFinalResult, 1);
137 }
138
139 /**
140 * @tc.name: GestureEventHubTest003
141 * @tc.desc: Test ProcessTouchTestHit part2
142 * @tc.type: FUNC
143 */
144 HWTEST_F(GestureEventHubTestNg, GestureEventHubTest003, TestSize.Level1)
145 {
146 /**
147 * @tc.steps: step1. Create GestureEventHub.
148 * @tc.expected: gestureEventHub is not null.
149 */
150 auto eventHub = AceType::MakeRefPtr<EventHub>();
151 EXPECT_TRUE(eventHub);
152 auto gestureEventHub = AceType::MakeRefPtr<GestureEventHub>(eventHub);
153 EXPECT_TRUE(gestureEventHub);
154
155 /**
156 * @tc.steps: step2. construct scrollableActuator_ and other actuators
157 * then set them to gestureEventHub
158 */
159
160 // set touchEventActuator_
__anon9b9e2c480202(TouchEventInfo& info) 161 auto touchCallback = [](TouchEventInfo& info) {};
162 auto touchEvent = AceType::MakeRefPtr<TouchEventImpl>(std::move(touchCallback));
163 gestureEventHub->AddTouchEvent(touchEvent);
164
165 // set scrollableActuator_
166 auto scrollableEvent = AceType::MakeRefPtr<ScrollableEvent>(AXIS_VERTICAL);
167 gestureEventHub->AddScrollableEvent(scrollableEvent);
168
169 // set clickEventActuator_
__anon9b9e2c480302(GestureEvent& info) 170 auto clickCallback = [](GestureEvent& info) {};
171 auto clickEvent = AceType::MakeRefPtr<ClickEvent>(std::move(clickCallback));
172 gestureEventHub->AddClickEvent(clickEvent);
173
174 // set panEventActuator_
__anon9b9e2c480402(GestureEvent& info) 175 auto panActionStart = [](GestureEvent& info) {};
__anon9b9e2c480502(GestureEvent& info) 176 auto panActionUpdate = [](GestureEvent& info) {};
__anon9b9e2c480602(GestureEvent& info) 177 auto panActionEnd = [](GestureEvent& info) {};
__anon9b9e2c480702() 178 auto panActionCancel = []() {};
179 auto panEvent = AceType::MakeRefPtr<PanEvent>(
180 std::move(panActionStart), std::move(panActionUpdate), std::move(panActionEnd), std::move(panActionCancel));
181 gestureEventHub->AddPanEvent(panEvent, PAN_DIRECTION_ALL, FINGERS, DISTANCE);
182
183 // set longPressEventActuator_
__anon9b9e2c480802(GestureEvent& info) 184 auto longPressCallback = [](GestureEvent& info) {};
185 auto longPressEvent = AceType::MakeRefPtr<LongPressEvent>(longPressCallback);
186 gestureEventHub->SetLongPressEvent(longPressEvent);
187
188 // set dragEventActuator_
__anon9b9e2c480902(GestureEvent& info) 189 auto dragActionStart = [](GestureEvent& info) {};
__anon9b9e2c480a02(GestureEvent& info) 190 auto dragActionUpdate = [](GestureEvent& info) {};
__anon9b9e2c480b02(GestureEvent& info) 191 auto dragActionEnd = [](GestureEvent& info) {};
__anon9b9e2c480c02() 192 auto dragActionCancel = []() {};
193 auto dragEvent = AceType::MakeRefPtr<DragEvent>(
194 std::move(dragActionStart), std::move(dragActionUpdate), std::move(dragActionEnd), std::move(dragActionCancel));
195 gestureEventHub->SetCustomDragEvent(dragEvent, PAN_DIRECTION_ALL, FINGERS, DISTANCE);
196 }
197
198 /**
199 * @tc.name: GestureEventHubTest004
200 * @tc.desc: Test AddClickEvent, SetUserOnClick, ActClick & SetFocusClickEvent
201 * @tc.type: FUNC
202 */
203 HWTEST_F(GestureEventHubTestNg, GestureEventHubTest004, TestSize.Level1)
204 {
205 /**
206 * @tc.steps: step1. Create GestureEventHub.
207 * @tc.expected: gestureEventHub is not null.
208 */
209 auto eventHub = AceType::MakeRefPtr<EventHub>();
210 EXPECT_TRUE(eventHub);
211 auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
212 eventHub->AttachHost(frameNode);
213 auto gestureEventHub = AceType::MakeRefPtr<GestureEventHub>(eventHub);
214 EXPECT_TRUE(gestureEventHub);
215
216 /**
217 * @tc.steps: step2. call ActClick
218 * case: clickEventActuator_ is null
219 * @tc.expected: flag is false
220 */
221 auto flag = gestureEventHub->ActClick();
222 EXPECT_FALSE(flag);
223
224 /**
225 * @tc.steps: step3. call ActClick
226 * case: clickEventActuator_ is null, clickRecognizer fingers is 2, count is 1
227 * @tc.expected: flag is false
228 */
229 auto clickRecognizer = AceType::MakeRefPtr<ClickRecognizer>(DOUBLE_FINGERS, 1);
230 gestureEventHub->gestureHierarchy_.emplace_back(clickRecognizer);
231 EXPECT_FALSE(gestureEventHub->ActClick());
232 gestureEventHub->gestureHierarchy_.clear();
233
234 /**
235 * @tc.steps: step4. call ActClick
236 * case: clickEventActuator_ is null, clickRecognizer fingers is 1, count is 1
237 * @tc.expected: flag is true
238 */
239 clickRecognizer = AceType::MakeRefPtr<ClickRecognizer>(1, 1);
__anon9b9e2c480d02(GestureEvent& info) 240 clickRecognizer->SetOnAction([](GestureEvent& info) {});
241 gestureEventHub->gestureHierarchy_.emplace_back(clickRecognizer);
242 EXPECT_TRUE(gestureEventHub->ActClick());
243 gestureEventHub->gestureHierarchy_.clear();
244
245 /**
246 * @tc.steps: step5. construct two clickCallback
247 * one is for SetUserOnClick, the other is for AddClickEvent
248 */
249 std::string msg1;
__anon9b9e2c480e02(GestureEvent& ) 250 auto clickCallback = [&msg1](GestureEvent& /* info */) { msg1 = CHECK_TAG_1; };
251 gestureEventHub->SetUserOnClick(clickCallback);
252 std::string msg2;
__anon9b9e2c480f02(GestureEvent& ) 253 auto clickCallback2 = [&msg2](GestureEvent& /* info */) { msg2 = CHECK_TAG_2; };
254 auto clickEvent = AceType::MakeRefPtr<ClickEvent>(std::move(clickCallback2));
255 gestureEventHub->AddClickEvent(clickEvent);
256
257 /**
258 * @tc.steps: step6. call ActClick
259 * case: clickEventActuator_ is not null
260 * @tc.expected: flag is true & clickCallback & clickCallback2 has be called
261 */
262 flag = gestureEventHub->ActClick();
263 EXPECT_TRUE(flag);
264 EXPECT_EQ(msg1, CHECK_TAG_1);
265 EXPECT_EQ(msg2, CHECK_TAG_2);
266
267 /**
268 * @tc.steps: step7. call eventHub's GetOrCreateFocusHub
269 * @tc.expected: return is not null
270 */
271 auto focusHub = eventHub->GetOrCreateFocusHub();
272 EXPECT_TRUE(focusHub);
273
274 /**
275 * @tc.steps: step8. call SetFocusClickEvent
276 * @tc.expected: no fatal error occur
277 */
278 msg1 = "";
__anon9b9e2c481002(GestureEvent& ) 279 auto clickCallback3 = [&msg1](GestureEvent& /* info */) { msg1 = CHECK_TAG_1; };
280 gestureEventHub->SetFocusClickEvent(clickCallback3);
281 }
282
283 /**
284 * @tc.name: GestureEventHubTest005
285 * @tc.desc: Test ActLongClick
286 * @tc.type: FUNC
287 */
288 HWTEST_F(GestureEventHubTestNg, GestureEventHubTest005, TestSize.Level1)
289 {
290 /**
291 * @tc.steps: step1. Create GestureEventHub.
292 * @tc.expected: gestureEventHub is not null.
293 */
294 auto eventHub = AceType::MakeRefPtr<EventHub>();
295 EXPECT_TRUE(eventHub);
296 auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
297 eventHub->AttachHost(frameNode);
298 auto gestureEventHub = AceType::MakeRefPtr<GestureEventHub>(eventHub);
299 EXPECT_TRUE(gestureEventHub);
300
301 /**
302 * @tc.steps: step2. call ActLongClick
303 * case: longPressEventActuator_ is null
304 * @tc.expected: flag is false
305 */
306 auto flag = gestureEventHub->ActLongClick();
307 EXPECT_FALSE(flag);
308
309 /**
310 * @tc.steps: step3. call ActLongClick
311 * case: longPressEventActuator_ is null, longPressRecognizer fingers is 2
312 * @tc.expected: flag is false
313 */
314 auto longPressRecognizer = AceType::MakeRefPtr<LongPressRecognizer>(1, DOUBLE_FINGERS, false);
315 gestureEventHub->gestureHierarchy_.emplace_back(longPressRecognizer);
316 EXPECT_FALSE(gestureEventHub->ActLongClick());
317 gestureEventHub->gestureHierarchy_.clear();
318
319 /**
320 * @tc.steps: step4. call ActLongClick
321 * case: longPressEventActuator_ is null, longPressRecognizer fingers is 1
322 * @tc.expected: flag is true
323 */
324 longPressRecognizer = AceType::MakeRefPtr<LongPressRecognizer>(1, 1, false);
__anon9b9e2c481102(GestureEvent& info) 325 longPressRecognizer->SetOnAction([](GestureEvent& info) {});
326 gestureEventHub->gestureHierarchy_.emplace_back(longPressRecognizer);
327 EXPECT_TRUE(gestureEventHub->ActLongClick());
328 gestureEventHub->gestureHierarchy_.clear();
329
330 /**
331 * @tc.steps: step5. construct a longPressCallback
332 */
333 std::string msg1;
__anon9b9e2c481202(GestureEvent& ) 334 auto longPressCallback = [&msg1](GestureEvent& /* info */) { msg1 = CHECK_TAG_1; };
335 auto longPressEvent = AceType::MakeRefPtr<LongPressEvent>(longPressCallback);
336 gestureEventHub->SetLongPressEvent(longPressEvent);
337
338 /**
339 * @tc.steps: step6. call ActLongClick
340 * case: longPressEventActuator_ is not null
341 * @tc.expected: flag is true & longPressCallback will be called
342 */
343 flag = gestureEventHub->ActLongClick();
344 EXPECT_TRUE(flag);
345 EXPECT_EQ(msg1, CHECK_TAG_1);
346
347 /**
348 * @tc.steps: step7. call eventHub's GetOrCreateFocusHub
349 * @tc.expected: return is not null
350 */
351 auto focusHub = eventHub->GetOrCreateFocusHub();
352 EXPECT_TRUE(focusHub);
353
354 /**
355 * @tc.steps: step8. call SetFocusClickEvent
356 * @tc.expected: no fatal error occur
357 */
358 msg1 = "";
__anon9b9e2c481302(GestureEvent& ) 359 auto clickCallback3 = [&msg1](GestureEvent& /* info */) { msg1 = CHECK_TAG_1; };
360 gestureEventHub->SetFocusClickEvent(clickCallback3);
361 }
362
363 /**
364 * @tc.name: GestureEventHubTest006
365 * @tc.desc: Test CombineIntoExclusiveRecognizer
366 * @tc.type: FUNC
367 */
368 HWTEST_F(GestureEventHubTestNg, GestureEventHubTest006, TestSize.Level1)
369 {
370 /**
371 * @tc.steps: step1. Create GestureEventHub.
372 * @tc.expected: gestureEventHub is not null.
373 */
374 auto eventHub = AceType::MakeRefPtr<EventHub>();
375 EXPECT_TRUE(eventHub);
376 auto gestureEventHub = AceType::MakeRefPtr<GestureEventHub>(eventHub);
377 EXPECT_TRUE(gestureEventHub);
378
379 /**
380 * @tc.steps: step2. call CombineIntoExclusiveRecognizer
381 * case: result is empty
382 * @tc.expected: result is empty
383 */
384 TouchTestResult result;
385 gestureEventHub->CombineIntoExclusiveRecognizer(GLOBAL_POINT, LOCAL_POINT, result, TOUCH_ID);
386 auto size = static_cast<int32_t>(result.size());
387 EXPECT_EQ(size, 0);
388
389 /**
390 * @tc.steps: step3. insert element to result
391 * @tc.expected: result'size is 3
392 */
393
394 // new TouchEventActuator
395 auto touchEventActuator = AceType::MakeRefPtr<TouchEventActuator>();
396
397 // new LongPressRecognizer (extends NGGestureRecognizer)
398 auto longPressRecognizer = AceType::MakeRefPtr<LongPressRecognizer>(false, false);
399
400 // new ClickRecognizer (extends NGGestureRecognizer)
401 auto clickRecognizer = AceType::MakeRefPtr<ClickRecognizer>();
402
403 result.emplace_back(touchEventActuator);
404 result.emplace_back(longPressRecognizer);
405 result.emplace_back(clickRecognizer);
406 size = static_cast<int32_t>(result.size());
407 EXPECT_EQ(size, 3);
408
409 /**
410 * @tc.steps: step4. call CombineIntoExclusiveRecognizer
411 * case: recognizers'size > 1
412 * @tc.expected: result'size is 2. One is touchEventActuator, the other is a exclusiveRecognizer created by
413 * longPressRecognizer and clickRecognizer
414 */
415 gestureEventHub->CombineIntoExclusiveRecognizer(GLOBAL_POINT, LOCAL_POINT, result, TOUCH_ID);
416 size = static_cast<int32_t>(result.size());
417 EXPECT_EQ(size, 2);
418
419 /**
420 * @tc.steps: step5. call CombineIntoExclusiveRecognizer
421 * case: recognizers'size = 1
422 * @tc.expected: result2'size is 2. One is touchEventActuator, the other is longPressRecognizer
423 */
424 TouchTestResult result2;
425 result2.emplace_back(touchEventActuator);
426 result2.emplace_back(longPressRecognizer);
427 gestureEventHub->CombineIntoExclusiveRecognizer(GLOBAL_POINT, LOCAL_POINT, result2, TOUCH_ID);
428 size = static_cast<int32_t>(result2.size());
429 EXPECT_EQ(size, 2);
430 }
431
432 /**
433 * @tc.name: GestureEventHubTest007
434 * @tc.desc: Test InitDragDropEvent
435 * @tc.type: FUNC
436 */
437 HWTEST_F(GestureEventHubTestNg, GestureEventHubTest007, TestSize.Level1)
438 {
439 /**
440 * @tc.steps: step1. Create GestureEventHub.
441 * @tc.expected: gestureEventHub is not null.
442 */
443 auto eventHub = AceType::MakeRefPtr<EventHub>();
444 EXPECT_TRUE(eventHub);
445 auto gestureEventHub = AceType::MakeRefPtr<GestureEventHub>(eventHub);
446 EXPECT_TRUE(gestureEventHub);
447
448 /**
449 * @tc.steps: step2. Call InitDragDropEvent.
450 * @tc.expected: dragEventActuator_ is not null.
451 */
452 gestureEventHub->InitDragDropEvent();
453 EXPECT_TRUE(gestureEventHub->dragEventActuator_);
454 }
455
456 /**
457 * @tc.name: GestureEventHubTest008
458 * @tc.desc: Test Functions related with drag
459 * @tc.type: FUNC
460 */
461 HWTEST_F(GestureEventHubTestNg, GestureEventHubTest008, TestSize.Level1)
462 {
463 /**
464 * @tc.steps: step1. Create GestureEventHub.
465 * @tc.expected: gestureEventHub is not null.
466 */
467 auto eventHub = AceType::MakeRefPtr<EventHub>();
468 EXPECT_TRUE(eventHub);
469 auto gestureEventHub = AceType::MakeRefPtr<GestureEventHub>(eventHub);
470 EXPECT_TRUE(gestureEventHub);
471
472 /**
473 * @tc.steps: step2. call HandleOnDragStart
474 * case: eventHub->HasOnDragStart() is null
475 * @tc.expected: dragDropProxy_ is null.
476 */
477 GestureEvent info;
478 gestureEventHub->HandleOnDragStart(info);
479 EXPECT_FALSE(gestureEventHub->dragDropProxy_);
480
481 /**
482 * @tc.steps: step3. set OnDragStart for eventHub
483 * after that eventHub->HasOnDragStart() is not null
484 * case: dragDropInfo.customNode is not null
485 */
486 RefPtr<UINode> customNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
487 auto onDragStart = [&customNode](
__anon9b9e2c481402( const RefPtr<OHOS::Ace::DragEvent>& , const std::string& ) 488 const RefPtr<OHOS::Ace::DragEvent>& /* dragEvent */, const std::string& /* param */) {
489 DragDropInfo dragDropInfo;
490 dragDropInfo.customNode = customNode;
491 return dragDropInfo;
492 };
493 eventHub->SetOnDragStart(std::move(onDragStart));
494
495 /**
496 * @tc.steps: step4. call HandleOnDragStart
497 * case: dragDropInfo.customNode is not null
498 * @tc.expected: dragDropProxy_ is not null.
499 */
500 gestureEventHub->HandleOnDragStart(info);
501 EXPECT_FALSE(gestureEventHub->dragDropProxy_);
502
503 /**
504 * @tc.steps: step5. set OnDragStart for eventHub2
505 * after that eventHub->HasOnDragStart() is not null
506 * case: dragDropInfo.pixelMap is not null
507 */
508 void* voidPtr = static_cast<void*>(new char[0]);
509 RefPtr<PixelMap> pixelMap = PixelMap::CreatePixelMap(voidPtr);
510 auto onDragStart2 = [&pixelMap](
__anon9b9e2c481502( const RefPtr<OHOS::Ace::DragEvent>& , const std::string& ) 511 const RefPtr<OHOS::Ace::DragEvent>& /* dragEvent */, const std::string& /* param */) {
512 DragDropInfo dragDropInfo;
513 dragDropInfo.pixelMap = pixelMap;
514 return dragDropInfo;
515 };
516 auto eventHub2 = AceType::MakeRefPtr<EventHub>();
517 EXPECT_TRUE(eventHub2);
518 eventHub2->SetOnDragStart(std::move(onDragStart2));
519 auto gestureEventHub2 = AceType::MakeRefPtr<GestureEventHub>(eventHub2);
520 EXPECT_TRUE(gestureEventHub2);
521
522 /**
523 * @tc.steps: step6. call HandleOnDragStart
524 * case: dragDropInfo.pixelMap is not null
525 * @tc.expected: dragDropProxy_ is not null.
526 */
527 gestureEventHub2->HandleOnDragStart(info);
528 EXPECT_FALSE(gestureEventHub2->dragDropProxy_);
529
530 /**
531 * @tc.steps: step7. call HandleOnDragStart again
532 * case: dragDropProxy_ need to reset
533 * @tc.expected: dragDropProxy_ is not null.
534 */
535 gestureEventHub2->HandleOnDragStart(info);
536 EXPECT_FALSE(gestureEventHub2->dragDropProxy_);
537
538 /**
539 * @tc.steps: step8. call HandleOnDragUpdate
540 * @tc.expected: dragDropProxy_ is not null.
541 */
542 gestureEventHub2->HandleOnDragUpdate(info);
543 EXPECT_FALSE(gestureEventHub2->dragDropProxy_);
544
545 /**
546 * @tc.steps: step9. call HandleOnDragCancel
547 * @tc.expected: dragDropProxy_ is null.
548 */
549 gestureEventHub2->HandleOnDragCancel();
550 EXPECT_FALSE(gestureEventHub2->dragDropProxy_);
551
552 /**
553 * @tc.steps: step10. call HandleOnDragEnd
554 * case: eventHub->HasOnDrop() is false
555 * @tc.expected: dragDropProxy_ is null.
556 */
557 gestureEventHub->HandleOnDragEnd(info);
558 EXPECT_FALSE(gestureEventHub->dragDropProxy_);
559
560 /**
561 * @tc.steps: step10. call HandleOnDragEnd
562 * case: eventHub->HasOnDrop() is true
563 * @tc.expected: dragDropProxy_ is null
564 * onDrop has been called, msg1 = CHECK_TAG_1
565 */
566 std::string msg1;
__anon9b9e2c481602(const RefPtr<OHOS::Ace::DragEvent>& , const std::string& ) 567 auto onDrop = [&msg1](const RefPtr<OHOS::Ace::DragEvent>& /* dragEvent */, const std::string& /* param */) {
568 msg1 = CHECK_TAG_1;
569 };
570 eventHub->SetOnDrop(std::move(onDrop));
571 gestureEventHub->HandleOnDragStart(info);
572 gestureEventHub->HandleOnDragEnd(info);
573 EXPECT_FALSE(gestureEventHub->dragDropProxy_);
574 EXPECT_EQ(msg1, "");
575 }
576
577 /**
578 * @tc.name: GestureEventHubTest009
579 * @tc.desc: Test ModifyDone & UpdateGestureHierarchy
580 * @tc.type: FUNC
581 */
582 HWTEST_F(GestureEventHubTestNg, GestureEventHubTest009, TestSize.Level1)
583 {
584 /**
585 * @tc.steps: step1. Create GestureEventHub.
586 * @tc.expected: gestureEventHub is not null.
587 */
588 auto eventHub = AceType::MakeRefPtr<EventHub>();
589 EXPECT_TRUE(eventHub);
590 auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
591 eventHub->AttachHost(frameNode);
592 auto gestureEventHub = AceType::MakeRefPtr<GestureEventHub>(eventHub);
593 EXPECT_TRUE(gestureEventHub);
594
595 /**
596 * @tc.steps: step2. call OnModifyDone
597 * case: recreateGesture_ is true & gestures_.size() == gestureHierarchy_.size() == 0
598 * @tc.expected: recreateGesture_ = false
599 */
600 gestureEventHub->OnModifyDone();
601 EXPECT_FALSE(gestureEventHub->recreateGesture_);
602
603 /**
604 * @tc.steps: step3. call OnModifyDone
605 * case: recreateGesture_ is false
606 * @tc.expected: recreateGesture_ = false
607 */
608 gestureEventHub->OnModifyDone();
609 EXPECT_FALSE(gestureEventHub->recreateGesture_);
610
611 /**
612 * @tc.steps: step4. call OnModifyDone
613 * case: recreateGesture_ is true & gestures_.size() != gestureHierarchy_.size()
614 * @tc.expected: recreateGesture_ = false
615 * gestures_ has cleared & gestureHierarchy_ has one element
616 */
617 gestureEventHub->recreateGesture_ = true;
618 auto longPressGesture = AceType::MakeRefPtr<LongPressGesture>(FINGERS, false, 1);
619 gestureEventHub->gestures_.emplace_back(longPressGesture);
620 gestureEventHub->OnModifyDone();
621 EXPECT_FALSE(gestureEventHub->recreateGesture_);
622 auto sizeGestures = static_cast<int32_t>(gestureEventHub->gestures_.size());
623 auto sizeGestureHierarchy = static_cast<int32_t>(gestureEventHub->gestureHierarchy_.size());
624 EXPECT_EQ(sizeGestures, 0);
625 EXPECT_EQ(sizeGestureHierarchy, 1);
626 }
627
628 /**
629 * @tc.name: GestureEventHubTest010
630 * @tc.desc: Test ProcessTouchTestHierarchy
631 * @tc.type: FUNC
632 */
633 HWTEST_F(GestureEventHubTestNg, GestureEventHubTest010, TestSize.Level1)
634 {
635 /**
636 * @tc.steps: step1. Create GestureEventHub.
637 * @tc.expected: gestureEventHub is not null.
638 */
639 auto eventHub = AceType::MakeRefPtr<EventHub>();
640 EXPECT_TRUE(eventHub);
641 auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
642 eventHub->AttachHost(frameNode);
643 auto gestureEventHub = AceType::MakeRefPtr<GestureEventHub>(eventHub);
644 EXPECT_TRUE(gestureEventHub);
645
646 /**
647 * @tc.steps: step2. call ProcessTouchTestHierarchy
648 * case: innerRecognizers & gestureHierarchy_ is empty, current is null
649 * @tc.expected: finalResult is empty
650 */
651 TouchRestrict touchRestrict;
652 std::list<RefPtr<NGGestureRecognizer>> innerTargets;
653 TouchTestResult finalResult;
654 ResponseLinkResult responseLinkResult;
655
656 std::vector<RefPtr<NGGestureRecognizer>> vc;
657 vc.push_back(AceType::MakeRefPtr<ClickRecognizer>());
658 auto exclusiveRecognizer = AceType::MakeRefPtr<ExclusiveRecognizer>(vc);
659 std::vector<RefPtr<NGGestureRecognizer>> parallelVc;
660 parallelVc.push_back(AceType::MakeRefPtr<ClickRecognizer>());
661 auto parallelRecognizer = AceType::MakeRefPtr<ParallelRecognizer>(parallelVc);
662
663 gestureEventHub->externalExclusiveRecognizer_.push_back(exclusiveRecognizer);
664 gestureEventHub->externalParallelRecognizer_.push_back(parallelRecognizer);
665 EXPECT_EQ(static_cast<int32_t>(gestureEventHub->externalExclusiveRecognizer_.size()), 1);
666 EXPECT_EQ(static_cast<int32_t>(gestureEventHub->externalParallelRecognizer_.size()), 1);
667
668 gestureEventHub->ProcessTouchTestHierarchy(
669 COORDINATE_OFFSET, touchRestrict, innerTargets, finalResult, TOUCH_ID, nullptr, responseLinkResult);
670 EXPECT_TRUE(finalResult.empty());
671
672 /**
673 * @tc.steps: step3. call ProcessTouchTestHierarchy several
674 * case: innerRecognizers & gestureHierarchy_ is not all empty
675 * @tc.expected: finalResult's size has increased by 1 per call
676 */
677 auto clickRecognizer = AceType::MakeRefPtr<ClickRecognizer>(FINGERS, 1); // priority == GesturePriority::Low
678 innerTargets.emplace_back(clickRecognizer);
679
680 gestureEventHub->gestureHierarchy_.emplace_back(nullptr);
681 auto clickRecognizer2 = AceType::MakeRefPtr<ClickRecognizer>(FINGERS, 1);
682 clickRecognizer2->SetPriorityMask(GestureMask::IgnoreInternal); // current will assigned to this
683 auto clickRecognizer3 = AceType::MakeRefPtr<ClickRecognizer>(FINGERS, 1); // priority == GesturePriority::High
684 clickRecognizer3->SetPriority(GesturePriority::High);
685 auto clickRecognizer4 = AceType::MakeRefPtr<ClickRecognizer>(FINGERS, 1); // priority == GesturePriority::Parallel
686 clickRecognizer4->SetPriority(GesturePriority::Parallel);
687 auto clickRecognizer5 = AceType::MakeRefPtr<ClickRecognizer>(FINGERS, 1); // priority == GesturePriority::Parallel
688 clickRecognizer5->SetPriority(GesturePriority::Parallel);
689
690 gestureEventHub->gestureHierarchy_.emplace_back(clickRecognizer);
691 gestureEventHub->gestureHierarchy_.emplace_back(clickRecognizer4);
692 gestureEventHub->gestureHierarchy_.emplace_back(clickRecognizer2);
693 gestureEventHub->gestureHierarchy_.emplace_back(clickRecognizer3);
694 gestureEventHub->gestureHierarchy_.emplace_back(clickRecognizer5);
695
696 gestureEventHub->ProcessTouchTestHierarchy(
697 COORDINATE_OFFSET, touchRestrict, innerTargets, finalResult, TOUCH_ID, nullptr, responseLinkResult);
698 auto sizeOfFinalResult = static_cast<int32_t>(finalResult.size());
699 EXPECT_EQ(sizeOfFinalResult, 1);
700
701 auto clickRecognizer6 = AceType::MakeRefPtr<ClickRecognizer>(FINGERS, 1); // priority == GesturePriority::Low
702 std::list<RefPtr<NGGestureRecognizer>> innerTargets2;
703 innerTargets2.emplace_back(clickRecognizer);
704 innerTargets2.emplace_back(clickRecognizer6);
705 gestureEventHub->ProcessTouchTestHierarchy(
706 COORDINATE_OFFSET, touchRestrict, innerTargets2, finalResult, TOUCH_ID, nullptr, responseLinkResult);
707 sizeOfFinalResult = static_cast<int32_t>(finalResult.size());
708 EXPECT_EQ(sizeOfFinalResult, 2);
709
710 std::list<RefPtr<NGGestureRecognizer>> innerTargets3;
711 innerTargets3.emplace_back(clickRecognizer);
712 innerTargets3.emplace_back(clickRecognizer6);
713 gestureEventHub->ProcessTouchTestHierarchy(
714 COORDINATE_OFFSET, touchRestrict, innerTargets3, finalResult, TOUCH_ID, nullptr, responseLinkResult);
715 sizeOfFinalResult = static_cast<int32_t>(finalResult.size());
716 EXPECT_EQ(sizeOfFinalResult, 3);
717
718 std::list<RefPtr<NGGestureRecognizer>> innerTargets4;
719 gestureEventHub->gestureHierarchy_.clear();
720 gestureEventHub->gestureHierarchy_.emplace_back(clickRecognizer4);
721 gestureEventHub->ProcessTouchTestHierarchy(
722 COORDINATE_OFFSET, touchRestrict, innerTargets4, finalResult, TOUCH_ID, nullptr, responseLinkResult);
723 sizeOfFinalResult = static_cast<int32_t>(finalResult.size());
724 EXPECT_EQ(sizeOfFinalResult, 4);
725
726 std::list<RefPtr<NGGestureRecognizer>> innerTargets5;
727 gestureEventHub->gestureHierarchy_.clear();
728 gestureEventHub->gestureHierarchy_.emplace_back(clickRecognizer);
729 gestureEventHub->ProcessTouchTestHierarchy(
730 COORDINATE_OFFSET, touchRestrict, innerTargets5, finalResult, TOUCH_ID, nullptr, responseLinkResult);
731 sizeOfFinalResult = static_cast<int32_t>(finalResult.size());
732 EXPECT_EQ(sizeOfFinalResult, 5);
733 }
734
735 /**
736 * @tc.name: GestureEventHubTest011
737 * @tc.desc: Test IsAccessibilityClickable and IsAccessibiityLongClickable
738 * @tc.type: FUNC
739 */
740 HWTEST_F(GestureEventHubTestNg, GestureEventHubTest011, TestSize.Level1)
741 {
742 /**
743 * @tc.steps: step1. Create GestureEventHub.
744 * @tc.expected: gestureEventHub is not null.
745 */
746 auto eventHub = AceType::MakeRefPtr<EventHub>();
747 ASSERT_NE(eventHub, nullptr);
748 auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
749 ASSERT_NE(frameNode, nullptr);
750 eventHub->AttachHost(frameNode);
751 auto gestureEventHub = AceType::MakeRefPtr<GestureEventHub>(eventHub);
752 ASSERT_NE(gestureEventHub, nullptr);
753
754 /**
755 * @tc.steps: step2. gestureHierarchy_ has ClickRecognizer, the number of fingers is two or click count is two
756 * @tc.expected: IsAccessibilityClickable is false
757 */
758 EXPECT_FALSE(gestureEventHub->IsAccessibilityClickable());
759
760 auto clickRecognizer = AceType::MakeRefPtr<ClickRecognizer>(DOUBLE_FINGERS, 1);
761 gestureEventHub->gestureHierarchy_.emplace_back(clickRecognizer);
762 EXPECT_FALSE(gestureEventHub->IsAccessibilityClickable());
763 gestureEventHub->gestureHierarchy_.clear();
764 clickRecognizer = AceType::MakeRefPtr<ClickRecognizer>(1, CLICK_COUNTS);
765 gestureEventHub->gestureHierarchy_.emplace_back(clickRecognizer);
766 EXPECT_FALSE(gestureEventHub->IsAccessibilityClickable());
767 gestureEventHub->gestureHierarchy_.clear();
768
769 /**
770 * @tc.steps: step3. gestureHierarchy_ has ClickRecognizer, the number of fingers is one
771 * @tc.expected: IsAccessibilityClickable is true
772 */
773 clickRecognizer = AceType::MakeRefPtr<ClickRecognizer>(FINGERS, 1);
774 gestureEventHub->gestureHierarchy_.emplace_back(clickRecognizer);
775 EXPECT_TRUE(gestureEventHub->IsAccessibilityClickable());
776 gestureEventHub->gestureHierarchy_.clear();
777
778 /**
779 * @tc.steps: step4. call AddClickEvent
780 * @tc.expected: IsAccessibilityClickable is true
781 */
__anon9b9e2c481702(GestureEvent& info) 782 auto clickCallback = [](GestureEvent& info) {};
783 auto clickEvent = AceType::MakeRefPtr<ClickEvent>(std::move(clickCallback));
784 gestureEventHub->AddClickEvent(clickEvent);
785 EXPECT_TRUE(gestureEventHub->IsAccessibilityClickable());
786
787 /**
788 * @tc.steps: step5. gestureHierarchy_ has LongPressRecognizer, the number of fingers is two
789 * @tc.expected: IsAccessibilityLongClickable is false
790 */
791 EXPECT_FALSE(gestureEventHub->IsAccessibilityLongClickable());
792
793 auto longPressRecognizer = AceType::MakeRefPtr<LongPressRecognizer>(1, DOUBLE_FINGERS, false);
794 gestureEventHub->gestureHierarchy_.emplace_back(longPressRecognizer);
795 EXPECT_FALSE(gestureEventHub->IsAccessibilityLongClickable());
796 gestureEventHub->gestureHierarchy_.clear();
797
798 /**
799 * @tc.steps: step6. gestureHierarchy_ has LongPressRecognizer, the number of fingers is one
800 * @tc.expected: IsAccessibilityLongClickable is false
801 */
802 longPressRecognizer = AceType::MakeRefPtr<LongPressRecognizer>(1, 1, false);
803 gestureEventHub->gestureHierarchy_.emplace_back(longPressRecognizer);
804 EXPECT_TRUE(gestureEventHub->IsAccessibilityLongClickable());
805 gestureEventHub->gestureHierarchy_.clear();
806
807 /**
808 * @tc.steps: step7. call SetLongPressEvent
809 * @tc.expected: IsAccessibilityLongClickable is true
810 */
__anon9b9e2c481802(GestureEvent& info) 811 auto longPressCallback = [](GestureEvent& info) {};
812 auto longPressEvent = AceType::MakeRefPtr<LongPressEvent>(longPressCallback);
813 gestureEventHub->SetLongPressEvent(longPressEvent);
814 EXPECT_TRUE(gestureEventHub->IsAccessibilityLongClickable());
815 }
816
817 /**
818 * @tc.name: GestureEventHubTest012
819 * @tc.desc: Test UpdateGestureHierarchy
820 * @tc.type: FUNC
821 */
822 HWTEST_F(GestureEventHubTestNg, GestureEventHubTest012, TestSize.Level1)
823 {
824 /**
825 * @tc.steps: step1. Create GestureEventHub.
826 * @tc.expected: gestureEventHub is not null.
827 */
828 auto eventHub = AceType::MakeRefPtr<EventHub>();
829 ASSERT_NE(eventHub, nullptr);
830 auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
831 ASSERT_NE(frameNode, nullptr);
832 eventHub->AttachHost(frameNode);
833 auto gestureEventHub = AceType::MakeRefPtr<GestureEventHub>(eventHub);
834 ASSERT_NE(gestureEventHub, nullptr);
835
836 /**
837 * @tc.steps: step2. call OnModifyDone
838 * @tc.expected: gestureHierarchy_ has two elements
839 */
840 gestureEventHub->recreateGesture_ = true;
841 auto tapGesture = AceType::MakeRefPtr<TapGesture>(FINGERS, 1);
842 gestureEventHub->gestures_.emplace_back(tapGesture);
843 auto longPressGesture = AceType::MakeRefPtr<LongPressGesture>(FINGERS, false, 1);
844 gestureEventHub->gestures_.emplace_back(longPressGesture);
845 auto onAccessibilityEvent = gestureEventHub->GetOnAccessibilityEventFunc();
846 ASSERT_NE(onAccessibilityEvent, nullptr);
847 onAccessibilityEvent(AccessibilityEventType::CLICK);
848 gestureEventHub->OnModifyDone();
849
850 auto sizeGestureHierarchy = static_cast<int32_t>(gestureEventHub->gestureHierarchy_.size());
851 EXPECT_EQ(sizeGestureHierarchy, GESTURES_COUNTS);
852 }
853
854 /**
855 * @tc.name: GestureEventHubTest013
856 * @tc.desc: Test ProcessTouchTestHit
857 * @tc.type: FUNC
858 */
859 HWTEST_F(GestureEventHubTestNg, GestureEventHubTest013, TestSize.Level1)
860 {
861 /**
862 * @tc.steps: step1. Create GestureEventHub.
863 * @tc.expected: gestureEventHub is not null.
864 */
865 auto frameNode = FrameNode::CreateFrameNode("myButton", 100, AceType::MakeRefPtr<Pattern>());
866 auto guestureEventHub = frameNode->GetOrCreateGestureEventHub();
867 ASSERT_NE(guestureEventHub, nullptr);
868 OffsetF coordinateOffset;
869 TouchRestrict touchRestrict;
870 TouchTestResult innerTargets;
871 TouchTestResult finalResult;
872 ResponseLinkResult responseLinkResult;
873 PointF localPoint;
874
875 PanDirection panDirection;
876 /**
877 * @tc.steps: step2. call ProcessTouchTestHit
878 * @tc.expected: result is true
879 */
880 guestureEventHub->scrollableActuator_ =
881 AceType::MakeRefPtr<ScrollableActuator>(AceType::WeakClaim(AceType::RawPtr(guestureEventHub)));
882 guestureEventHub->touchEventActuator_ = AceType::MakeRefPtr<TouchEventActuator>();
883 guestureEventHub->clickEventActuator_ =
884 AceType::MakeRefPtr<ClickEventActuator>(AceType::WeakClaim(AceType::RawPtr(guestureEventHub)));
885 guestureEventHub->panEventActuator_ = AceType::MakeRefPtr<PanEventActuator>(
886 AceType::WeakClaim(AceType::RawPtr(guestureEventHub)), panDirection, 1, 50.0f);
887 guestureEventHub->longPressEventActuator_ =
888 AceType::MakeRefPtr<LongPressEventActuator>(AceType::WeakClaim(AceType::RawPtr(guestureEventHub)));
889 guestureEventHub->dragEventActuator_ = AceType::MakeRefPtr<DragEventActuator>(
890 AceType::WeakClaim(AceType::RawPtr(guestureEventHub)), panDirection, 1, 50.0f);
891 auto result = guestureEventHub->ProcessTouchTestHit(
892 coordinateOffset, touchRestrict, innerTargets, finalResult, 2, localPoint, nullptr, responseLinkResult);
893 EXPECT_FALSE(result);
894 }
895
896 /**
897 * @tc.name: GestureEventHubTest014
898 * @tc.desc: Test IsAllowedDrag
899 * @tc.type: FUNC
900 */
901 HWTEST_F(GestureEventHubTestNg, GestureEventHubTest014, TestSize.Level1)
902 {
903 /**
904 * @tc.steps: step1. Create GestureEventHub.
905 * @tc.expected: gestureEventHub is not null.
906 */
907 auto frameNode = FrameNode::CreateFrameNode("myButton", 101, AceType::MakeRefPtr<Pattern>());
908 auto guestureEventHub = frameNode->GetOrCreateGestureEventHub();
909 ASSERT_NE(guestureEventHub, nullptr);
910
911 auto eventHub = guestureEventHub->eventHub_.Upgrade();
912
913 auto event = guestureEventHub->eventHub_.Upgrade();
914 event->host_ = AceType::WeakClaim(AceType::RawPtr(frameNode));
915 auto result = guestureEventHub->IsAllowedDrag(eventHub);
916 ASSERT_FALSE(result);
917 /**
918 * @tc.steps: step2. call IsAllowedDrag
919 * @tc.expected: result is correct
920 */
921 frameNode->userSet_ = true;
922 result = guestureEventHub->IsAllowedDrag(eventHub);
923 ASSERT_FALSE(result);
924
925 frameNode->userSet_ = false;
__anon9b9e2c481902(const RefPtr<OHOS::Ace::DragEvent>&, const std::string&) 926 auto func = [](const RefPtr<OHOS::Ace::DragEvent>&, const std::string&) { return DragDropInfo(); };
927 eventHub->onDragStart_ = func;
928 result = guestureEventHub->IsAllowedDrag(eventHub);
929 ASSERT_TRUE(result);
930
931 guestureEventHub->HandleOnDragStart(GestureEvent());
932
933 frameNode->draggable_ = true;
934 result = guestureEventHub->IsAllowedDrag(eventHub);
935 ASSERT_TRUE(result);
936
937 frameNode->draggable_ = true;
938 eventHub->onDragStart_ = nullptr;
939 result = guestureEventHub->IsAllowedDrag(eventHub);
940 ASSERT_FALSE(result);
941 }
942
943 /**
944 * @tc.name: GestureEventHubTest015
945 * @tc.desc: Test StartDragTaskForWeb HandleNotallowDrag
946 * @tc.type: FUNC
947 */
948 HWTEST_F(GestureEventHubTestNg, GestureEventHubTest015, TestSize.Level1)
949 {
950 /**
951 * @tc.steps: step1. Create GestureEventHub.
952 * @tc.expected: gestureEventHub is not null.
953 */
954 auto frameNode = FrameNode::CreateFrameNode("myButton", 102, AceType::MakeRefPtr<Pattern>());
955 auto guestureEventHub = frameNode->GetOrCreateGestureEventHub();
956 ASSERT_NE(guestureEventHub, nullptr);
957
958 auto event = guestureEventHub->eventHub_.Upgrade();
959 event->host_ = AceType::WeakClaim(AceType::RawPtr(frameNode));
960
961 guestureEventHub->StartDragTaskForWeb();
962
963 guestureEventHub->isReceivedDragGestureInfo_ = true;
964 guestureEventHub->StartDragTaskForWeb();
965 ASSERT_FALSE(guestureEventHub->isReceivedDragGestureInfo_);
966
967 guestureEventHub->HandleNotallowDrag(GestureEvent());
968
969 frameNode = FrameNode::CreateFrameNode("Web", 102, AceType::MakeRefPtr<Pattern>());
970 guestureEventHub = frameNode->GetOrCreateGestureEventHub();
971 event = guestureEventHub->eventHub_.Upgrade();
972 event->host_ = AceType::WeakClaim(AceType::RawPtr(frameNode));
973
974 frameNode->userSet_ = false;
__anon9b9e2c481a02(const RefPtr<OHOS::Ace::DragEvent>&, const std::string&) 975 auto func = [](const RefPtr<OHOS::Ace::DragEvent>&, const std::string&) { return DragDropInfo(); };
976 event->onDragStart_ = func;
977 guestureEventHub->HandleOnDragStart(GestureEvent());
978
979 guestureEventHub->HandleNotallowDrag(GestureEvent());
980 ASSERT_TRUE(guestureEventHub->isReceivedDragGestureInfo_);
981 }
982
983 /**
984 * @tc.name: GestureEventHubTest016
985 * @tc.desc: Test BindMenu
986 * @tc.type: FUNC
987 */
988 HWTEST_F(GestureEventHubTestNg, GestureEventHubTest016, TestSize.Level1)
989 {
990 /**
991 * @tc.steps: step1. Create GestureEventHub.
992 * @tc.expected: gestureEventHub is not null.
993 */
994 auto frameNode = FrameNode::CreateFrameNode("myButton", 102, AceType::MakeRefPtr<Pattern>());
995 auto guestureEventHub = frameNode->GetOrCreateGestureEventHub();
996 ASSERT_NE(guestureEventHub, nullptr);
997
998 auto eventHub = guestureEventHub->eventHub_.Upgrade();
999 eventHub->host_ = AceType::WeakClaim(AceType::RawPtr(frameNode));
1000
1001 auto pipline = PipelineContext::GetCurrentContext();
__anon9b9e2c481b02(GestureEvent& info) 1002 auto func = [](GestureEvent& info) {};
1003 guestureEventHub->BindMenu(func);
1004
__anon9b9e2c481c02(GestureEvent& info) 1005 guestureEventHub->showMenu_ = AceType::MakeRefPtr<ClickEvent>([](GestureEvent& info) {});
1006 guestureEventHub->BindMenu(func);
1007
1008 guestureEventHub->clickEventActuator_ = nullptr;
1009 guestureEventHub->ClearUserOnClick();
1010 guestureEventHub->ClearUserOnTouch();
1011
1012 guestureEventHub->clickEventActuator_ =
1013 AceType::MakeRefPtr<ClickEventActuator>(AceType::WeakClaim(AceType::RawPtr(guestureEventHub)));
1014 guestureEventHub->touchEventActuator_ = AceType::MakeRefPtr<TouchEventActuator>();
1015 guestureEventHub->ClearUserOnClick();
1016 guestureEventHub->ClearUserOnTouch();
1017 ASSERT_FALSE(guestureEventHub->clickEventActuator_->userCallback_);
1018 }
1019
1020 /**
1021 * @tc.name: GestureEventHubTest017
1022 * @tc.desc: Test ProcessTouchTestHit
1023 * @tc.type: FUNC
1024 */
1025 HWTEST_F(GestureEventHubTestNg, GestureEventHubTest017, TestSize.Level1)
1026 {
1027 /**
1028 * @tc.steps: step1. Create GestureEventHub.
1029 * @tc.expected: gestureEventHub is not null.
1030 */
1031 auto frameNode = FrameNode::CreateFrameNode("myButton", 100, AceType::MakeRefPtr<Pattern>());
1032 auto guestureEventHub = frameNode->GetOrCreateGestureEventHub();
1033 ASSERT_NE(guestureEventHub, nullptr);
1034 OffsetF coordinateOffset;
1035 TouchRestrict touchRestrict;
1036 TouchTestResult innerTargets;
1037 TouchTestResult finalResult;
1038 ResponseLinkResult responseLinkResult;
1039 PointF localPoint;
1040
1041 PanDirection panDirection;
1042 guestureEventHub->panEventActuator_ = AceType::MakeRefPtr<PanEventActuator>(
1043 AceType::WeakClaim(AceType::RawPtr(guestureEventHub)), panDirection, 1, 50.0f);
1044 /**
1045 * @tc.steps: step2. call ProcessTouchTestHit , recognizer is not instance of recognizer group
1046 * @tc.expected: result is false
1047 */
1048 guestureEventHub->longPressEventActuator_ =
1049 AceType::MakeRefPtr<LongPressEventActuator>(AceType::WeakClaim(AceType::RawPtr(guestureEventHub)));
1050 guestureEventHub->dragEventActuator_ = nullptr;
1051
1052 auto result = guestureEventHub->ProcessTouchTestHit(
1053 coordinateOffset, touchRestrict, innerTargets, finalResult, 2, localPoint, nullptr, responseLinkResult);
1054 EXPECT_FALSE(result);
1055 /**
1056 * @tc.steps: step3. call ProcessTouchTestHit , recognizer is instance of recognizer group.
1057 * @tc.expected: result is false
1058 */
__anon9b9e2c481d02(GestureEvent& info) 1059 GestureEventFunc callback = [](GestureEvent& info) {};
1060 auto longPressEvent = AceType::MakeRefPtr<LongPressEvent>(std::move(callback));
1061 guestureEventHub->longPressEventActuator_->SetLongPressEvent(longPressEvent);
1062
1063 guestureEventHub->dragEventActuator_ = AceType::MakeRefPtr<DragEventActuator>(
1064 AceType::WeakClaim(AceType::RawPtr(guestureEventHub)), panDirection, 1, 50.0f);
1065
__anon9b9e2c481e02(GestureEvent& info) 1066 auto dragActionStart = [](GestureEvent& info) {};
__anon9b9e2c481f02(GestureEvent& info) 1067 auto dragActionUpdate = [](GestureEvent& info) {};
__anon9b9e2c482002(GestureEvent& info) 1068 auto dragActionEnd = [](GestureEvent& info) {};
__anon9b9e2c482102() 1069 auto dragActionCancel = []() {};
1070 auto dragEvent = AceType::MakeRefPtr<DragEvent>(
1071 std::move(dragActionStart), std::move(dragActionUpdate), std::move(dragActionEnd), std::move(dragActionCancel));
1072 guestureEventHub->dragEventActuator_->userCallback_ = dragEvent;
1073 guestureEventHub->userParallelClickEventActuator_ =
1074 AceType::MakeRefPtr<ClickEventActuator>(AceType::WeakClaim(AceType::RawPtr(guestureEventHub)));
1075 result = guestureEventHub->ProcessTouchTestHit(
1076 coordinateOffset, touchRestrict, innerTargets, finalResult, 2, localPoint, nullptr, responseLinkResult);
1077 EXPECT_FALSE(result);
1078 }
1079
1080 /**
1081 * @tc.name: GestureEventHubTest018
1082 * @tc.desc: Test HandleOnDragStart
1083 * @tc.type: FUNC
1084 */
1085 HWTEST_F(GestureEventHubTestNg, GestureEventHubTest018, TestSize.Level1)
1086 {
1087 /**
1088 * @tc.steps: step1. create GestureEventHub.
1089 * @tc.expected: gestureEventHub is not null.
1090 */
1091 auto eventHub = AceType::MakeRefPtr<EventHub>();
1092 EXPECT_TRUE(eventHub);
1093 auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1094 eventHub->AttachHost(frameNode);
1095 auto gestureEventHub = AceType::MakeRefPtr<GestureEventHub>(eventHub);
1096 EXPECT_TRUE(gestureEventHub);
1097
1098 /**
1099 * @tc.steps: step2. update the input parameter attributes.
1100 */
1101 RefPtr<UINode> customNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1102 auto onDragStart = [&customNode](
__anon9b9e2c482202( const RefPtr<OHOS::Ace::DragEvent>& , const std::string& ) 1103 const RefPtr<OHOS::Ace::DragEvent>& /* dragEvent */, const std::string& /* param */) {
1104 DragDropInfo dragDropInfo;
1105 dragDropInfo.customNode = customNode;
1106 return dragDropInfo;
1107 };
1108 eventHub->SetOnDragStart(std::move(onDragStart));
1109
1110 auto retFlag = gestureEventHub->IsAllowedDrag(eventHub);
1111 EXPECT_TRUE(retFlag);
1112
1113 auto eventManager = AceType::MakeRefPtr<EventManager>();
1114 EXPECT_TRUE(eventManager);
1115 eventManager->SetLastMoveBeforeUp(true);
1116
1117 auto pipeline = PipelineContext::GetCurrentContext();
1118 pipeline->SetEventManager(eventManager);
1119
1120 GestureEvent gestureEvent;
1121 gestureEvent.SetInputEventType(InputEventType::MOUSE_BUTTON);
1122 gestureEventHub->HandleOnDragStart(gestureEvent);
1123 EXPECT_TRUE(pipeline->GetEventManager());
1124 eventManager->SetLastMoveBeforeUp(false);
1125 gestureEvent.SetInputEventType(InputEventType::TOUCH_SCREEN);
1126
1127 /**
1128 * @tc.steps: step3. call HandleOnDragStart with SourceType::MOUSE_BUTTON and InputEventType::TOUCH_SCREEN.
1129 * @tc.expected: eventManager->IsLastMoveBeforeUp() the return value is false.
1130 */
1131 gestureEventHub->HandleOnDragStart(gestureEvent);
1132 EXPECT_FALSE(eventManager->IsLastMoveBeforeUp());
1133 }
1134
1135 /**
1136 * @tc.name: GestureEventHubTest0181
1137 * @tc.desc: Test HandleOnDragStart
1138 * @tc.type: FUNC
1139 */
1140 HWTEST_F(GestureEventHubTestNg, GestureEventHubTest0181, TestSize.Level1)
1141 {
1142 /**
1143 * @tc.steps: step1. create GestureEventHub.
1144 * @tc.expected: gestureEventHub is not null.
1145 */
1146 auto eventHub = AceType::MakeRefPtr<EventHub>();
1147 EXPECT_TRUE(eventHub);
1148 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::WEB_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
1149
1150 /**
1151 * @tc.steps: step2. update the input parameter attributes.
1152 */
1153 RefPtr<UINode> customNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1154 DragDropInfo dragDropInfo;
1155 dragDropInfo.customNode = customNode;
1156 frameNode->SetDragPreview(dragDropInfo);
1157
1158 eventHub->AttachHost(frameNode);
1159 auto gestureEventHub = AceType::MakeRefPtr<GestureEventHub>(eventHub);
1160 EXPECT_TRUE(gestureEventHub);
1161
1162 auto onDragStart = [&customNode](
__anon9b9e2c482302( const RefPtr<OHOS::Ace::DragEvent>& , const std::string& ) 1163 const RefPtr<OHOS::Ace::DragEvent>& /* dragEvent */, const std::string& /* param */) {
1164 DragDropInfo dragDropInfo;
1165 dragDropInfo.customNode = customNode;
1166 return dragDropInfo;
1167 };
1168 eventHub->SetOnDragStart(std::move(onDragStart));
1169
1170 auto eventManager = AceType::MakeRefPtr<EventManager>();
1171 EXPECT_TRUE(eventManager);
1172
1173 auto pipeline = PipelineContext::GetCurrentContext();
1174 pipeline->SetEventManager(eventManager);
1175 eventManager->SetLastMoveBeforeUp(false);
1176
1177 /**
1178 * @tc.steps: step3. call HandleOnDragStart with SourceType::MOUSE and InputEventType::TOUCH_SCREEN.
1179 * @tc.expected: eventManager->IsLastMoveBeforeUp() the return value is false.
1180 */
1181 GestureEvent gestureEvent;
1182 gestureEvent.SetSourceDevice(SourceType::MOUSE);
1183 gestureEvent.SetInputEventType(InputEventType::TOUCH_SCREEN);
1184 gestureEventHub->HandleOnDragStart(gestureEvent);
1185 EXPECT_FALSE(eventManager->IsLastMoveBeforeUp());
1186 }
1187
1188 /**
1189 * @tc.name: GestureEventHubTest0183
1190 * @tc.desc: Test HandleOnDragStart
1191 * @tc.type: FUNC
1192 */
1193 HWTEST_F(GestureEventHubTestNg, GestureEventHubTest0183, TestSize.Level1)
1194 {
1195 /**
1196 * @tc.steps: step1. Create GestureEventHub.
1197 * @tc.expected: gestureEventHub is not null.
1198 */
1199 auto eventHub = AceType::MakeRefPtr<EventHub>();
1200 EXPECT_TRUE(eventHub);
1201 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXTINPUT_ETS_TAG, -1, AceType::MakeRefPtr<TextPattern>());
1202
1203 /**
1204 * @tc.steps: step2. update the input parameter attributes.
1205 */
1206 void* voidPtr = static_cast<void*>(new char[0]);
1207 RefPtr<PixelMap> pixelMap = PixelMap::CreatePixelMap(voidPtr);
1208 RefPtr<UINode> customNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1209 DragDropInfo dragDropInfo;
1210 dragDropInfo.customNode = customNode;
1211 dragDropInfo.pixelMap = pixelMap;
1212 frameNode->SetDragPreview(dragDropInfo);
1213
1214 auto hostPattern = frameNode->GetPattern<TextDragBase>();
1215 EXPECT_TRUE(hostPattern);
1216
1217 eventHub->AttachHost(frameNode);
1218 auto gestureEventHub = AceType::MakeRefPtr<GestureEventHub>(eventHub);
1219 EXPECT_TRUE(gestureEventHub);
1220
1221 auto onDragStart = [&customNode](
__anon9b9e2c482402( const RefPtr<OHOS::Ace::DragEvent>& , const std::string& ) 1222 const RefPtr<OHOS::Ace::DragEvent>& /* dragEvent */, const std::string& /* param */) {
1223 DragDropInfo dragDropInfo;
1224 dragDropInfo.customNode = customNode;
1225 return dragDropInfo;
1226 };
1227 eventHub->SetOnDragStart(std::move(onDragStart));
1228
1229 auto eventManager = AceType::MakeRefPtr<EventManager>();
1230 EXPECT_TRUE(eventManager);
1231
1232 auto pipeline = PipelineContext::GetCurrentContext();
1233 pipeline->SetEventManager(eventManager);
1234 eventManager->SetLastMoveBeforeUp(false);
1235
1236 /**
1237 * @tc.steps: step3. call HandleOnDragStart with SourceType::NONE and InputEventType::TOUCH_SCREEN.
1238 * @tc.expected: eventManager->IsLastMoveBeforeUp() the return value is false.
1239 */
1240 GestureEvent gestureEvent;
1241 gestureEvent.SetSourceDevice(SourceType::NONE);
1242 gestureEvent.SetInputEventType(InputEventType::TOUCH_SCREEN);
1243 gestureEventHub->HandleOnDragStart(gestureEvent);
1244 EXPECT_FALSE(eventManager->IsLastMoveBeforeUp());
1245 }
1246
1247 /**
1248 * @tc.name: GestureEventHubTest0184
1249 * @tc.desc: Test HandleOnDragStart
1250 * @tc.type: FUNC
1251 */
1252 HWTEST_F(GestureEventHubTestNg, GestureEventHubTest0184, TestSize.Level1)
1253 {
1254 /**
1255 * @tc.steps: step1. create GestureEventHub.
1256 * @tc.expected: gestureEventHub is not null.
1257 */
1258 auto eventHub = AceType::MakeRefPtr<EventHub>();
1259 EXPECT_TRUE(eventHub);
1260 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::SEARCH_Field_ETS_TAG, -1, AceType::MakeRefPtr<TextPattern>());
1261
1262 /**
1263 * @tc.steps: step2. update the input parameter attributes.
1264 */
1265 DragDropInfo dragDropInfo;
1266 dragDropInfo.customNode = nullptr;
1267 dragDropInfo.pixelMap = nullptr;
1268 frameNode->SetDragPreview(dragDropInfo);
1269
1270 auto hostPattern = frameNode->GetPattern<TextDragBase>();
1271 EXPECT_TRUE(hostPattern);
1272
1273 eventHub->AttachHost(frameNode);
1274 auto gestureEventHub = AceType::MakeRefPtr<GestureEventHub>(eventHub);
1275 EXPECT_TRUE(gestureEventHub);
1276
1277 RefPtr<UINode> customNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1278 auto onDragStart = [&customNode](
__anon9b9e2c482502( const RefPtr<OHOS::Ace::DragEvent>& , const std::string& ) 1279 const RefPtr<OHOS::Ace::DragEvent>& /* dragEvent */, const std::string& /* param */) {
1280 DragDropInfo dragDropInfo;
1281 dragDropInfo.customNode = customNode;
1282 return dragDropInfo;
1283 };
1284 eventHub->SetOnDragStart(std::move(onDragStart));
1285
1286 auto eventManager = AceType::MakeRefPtr<EventManager>();
1287 EXPECT_TRUE(eventManager);
1288 auto pipeline = PipelineContext::GetCurrentContext();
1289 pipeline->SetEventManager(eventManager);
1290 eventManager->SetLastMoveBeforeUp(false);
1291
1292 /**
1293 * @tc.steps: step3. call HandleOnDragStart with SourceType::MOUSE and InputEventType::TOUCH_SCREEN.
1294 * @tc.expected: eventManager->IsLastMoveBeforeUp() the return value is false.
1295 */
1296 GestureEvent gestureEvent;
1297 gestureEvent.SetSourceDevice(SourceType::MOUSE);
1298 gestureEvent.SetInputEventType(InputEventType::TOUCH_SCREEN);
1299 gestureEventHub->HandleOnDragStart(gestureEvent);
1300 EXPECT_FALSE(eventManager->IsLastMoveBeforeUp());
1301 }
1302
1303 /**
1304 * @tc.name: GestureEventHubTest0185
1305 * @tc.desc: Test HandleOnDragStart
1306 * @tc.type: FUNC
1307 */
1308 HWTEST_F(GestureEventHubTestNg, GestureEventHubTest0185, TestSize.Level1)
1309 {
1310 /**
1311 * @tc.steps: step1. Create GestureEventHub.
1312 * @tc.expected: gestureEventHub is not null.
1313 */
1314 auto eventHub = AceType::MakeRefPtr<EventHub>();
1315 EXPECT_TRUE(eventHub);
1316 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXT_ETS_TAG, -1, AceType::MakeRefPtr<TextPattern>());
1317
1318 /**
1319 * @tc.steps: step2. Build PixelMap and UINode, and update the properties of DragDropInfo.
1320 */
1321 void* voidPtr = static_cast<void*>(new char[0]);
1322 RefPtr<PixelMap> pixelMap = PixelMap::CreatePixelMap(voidPtr);
1323 RefPtr<UINode> customNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1324 DragDropInfo dragDropInfo;
1325 dragDropInfo.customNode = customNode;
1326 dragDropInfo.pixelMap = pixelMap;
1327 frameNode->SetDragPreview(dragDropInfo);
1328
1329 auto hostPattern = frameNode->GetPattern<TextDragBase>();
1330 EXPECT_TRUE(hostPattern);
1331
1332 eventHub->AttachHost(frameNode);
1333 auto gestureEventHub = AceType::MakeRefPtr<GestureEventHub>(eventHub);
1334 EXPECT_TRUE(gestureEventHub);
1335
1336 auto onDragStart = [&customNode](
__anon9b9e2c482602( const RefPtr<OHOS::Ace::DragEvent>& , const std::string& ) 1337 const RefPtr<OHOS::Ace::DragEvent>& /* dragEvent */, const std::string& /* param */) {
1338 DragDropInfo dragDropInfo;
1339 dragDropInfo.customNode = customNode;
1340 return dragDropInfo;
1341 };
1342 eventHub->SetOnDragStart(std::move(onDragStart));
1343
1344 auto eventManager = AceType::MakeRefPtr<EventManager>();
1345 EXPECT_TRUE(eventManager);
1346 auto pipeline = PipelineContext::GetCurrentContext();
1347 pipeline->SetEventManager(eventManager);
1348 eventManager->SetLastMoveBeforeUp(false);
1349
1350 /**
1351 * @tc.steps: step3. call HandleOnDragStart with SourceType::NONE and InputEventType::TOUCH_SCREEN.
1352 * @tc.expected: eventManager->IsLastMoveBeforeUp() the return value is false.
1353 */
1354 GestureEvent gestureEvent;
1355 gestureEvent.SetSourceDevice(SourceType::NONE);
1356 gestureEvent.SetInputEventType(InputEventType::TOUCH_SCREEN);
1357 gestureEventHub->HandleOnDragStart(gestureEvent);
1358 EXPECT_FALSE(eventManager->IsLastMoveBeforeUp());
1359 }
1360
1361 /**
1362 * @tc.name: GestureEventHubTest019
1363 * @tc.desc: Test KeyBoardShortCutClick
1364 * @tc.type: FUNC
1365 */
1366 HWTEST_F(GestureEventHubTestNg, GestureEventHubTest019, TestSize.Level1)
1367 {
1368 /**
1369 * @tc.steps: step1. Create GestureEventHub.
1370 * @tc.expected: gestureEventHub is not null.
1371 */
1372 auto eventHub = AceType::MakeRefPtr<EventHub>();
1373 EXPECT_TRUE(eventHub);
1374 auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1375 eventHub->AttachHost(frameNode);
1376 auto gestureEventHub = AceType::MakeRefPtr<GestureEventHub>(eventHub);
1377 EXPECT_TRUE(gestureEventHub);
1378
1379 /**
1380 * @tc.steps: step2. construct a clickEventActuator and update gestureEventHub attributes.
1381 */
1382 auto clickEventActuator = AceType::MakeRefPtr<ClickEventActuator>(WeakPtr<NG::GestureEventHub>(gestureEventHub));
1383 gestureEventHub->clickEventActuator_ = clickEventActuator;
1384
1385 /**
1386 * @tc.steps: step3. call KeyBoardShortCutClick with event and frameNode.
1387 * @tc.expected: retFlag is false.
1388 */
1389 KeyEvent event;
1390 bool retFlag = gestureEventHub->KeyBoardShortCutClick(event, WeakPtr<NG::FrameNode>(frameNode));
1391 EXPECT_TRUE(retFlag);
1392 }
1393
1394 /**
1395 * @tc.name: GestureEventHubTest020
1396 * @tc.desc: taskScheduler of Test StartDragTaskForWeb were true branches
1397 * @tc.type: FUNC
1398 */
1399 HWTEST_F(GestureEventHubTestNg, GestureEventHubTest020, TestSize.Level1)
1400 {
1401 /**
1402 * @tc.steps: step1. Create GestureEventHub.
1403 * @tc.expected: gestureEventHub is not null.
1404 */
1405 auto frameNode = FrameNode::CreateFrameNode("myButton", 102, AceType::MakeRefPtr<Pattern>());
1406 auto guestureEventHub = frameNode->GetOrCreateGestureEventHub();
1407 ASSERT_NE(guestureEventHub, nullptr);
1408
1409 /**
1410 * @tc.steps: step2. updates event and pipeline attributes.
1411 */
1412 auto event = guestureEventHub->eventHub_.Upgrade();
1413 event->host_ = AceType::WeakClaim(AceType::RawPtr(frameNode));
1414
1415 auto pipeline = PipelineContext::GetCurrentContext();
1416 EXPECT_TRUE(pipeline);
1417
1418 /**
1419 * @tc.steps: step3. call StartDragTaskForWeb.
1420 * @tc.expected: taskScheduler is true.
1421 */
1422 guestureEventHub->isReceivedDragGestureInfo_ = true;
1423 guestureEventHub->StartDragTaskForWeb();
1424 auto taskScheduler = pipeline->GetTaskExecutor();
1425 EXPECT_FALSE(taskScheduler);
1426 }
1427
1428 /**
1429 * @tc.name: GestureEventHubTest021
1430 * @tc.desc: Test StartLongPressActionForWeb
1431 * @tc.type: FUNC
1432 */
1433 HWTEST_F(GestureEventHubTestNg, GestureEventHubTest021, TestSize.Level1)
1434 {
1435 /**
1436 * @tc.steps: step1. Create GestureEventHub.
1437 * @tc.expected: gestureEventHub is not null.
1438 */
1439 auto eventHub = AceType::MakeRefPtr<EventHub>();
1440 EXPECT_TRUE(eventHub);
1441 auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1442 eventHub->AttachHost(frameNode);
1443 auto gestureEventHub = AceType::MakeRefPtr<GestureEventHub>(eventHub);
1444 EXPECT_TRUE(gestureEventHub);
1445
1446 /**
1447 * @tc.steps: step2. construct a PipelineContext and update pipeline attributes.
1448 */
1449 auto pipeline = PipelineContext::GetCurrentContext();
1450 EXPECT_TRUE(pipeline);
1451
1452 /**
1453 * @tc.steps: step3. call StartLongPressActionForWeb.
1454 * @tc.expected: taskScheduler is false.
1455 */
1456 gestureEventHub->StartLongPressActionForWeb();
1457 auto taskScheduler = pipeline->GetTaskExecutor();
1458 EXPECT_FALSE(taskScheduler);
1459 }
1460
1461 /**
1462 * @tc.name: GestureEventHubTest022
1463 * @tc.desc: Test HandleOnDragUpdate
1464 * @tc.type: FUNC
1465 */
1466 HWTEST_F(GestureEventHubTestNg, GestureEventHubTest022, TestSize.Level1)
1467 {
1468 /**
1469 * @tc.steps: step1. Create GestureEventHub.
1470 * @tc.expected: gestureEventHub is not null.
1471 */
1472 auto eventHub = AceType::MakeRefPtr<EventHub>();
1473 EXPECT_TRUE(eventHub);
1474 auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1475 eventHub->AttachHost(frameNode);
1476 auto gestureEventHub = AceType::MakeRefPtr<GestureEventHub>(eventHub);
1477 EXPECT_TRUE(gestureEventHub);
1478
1479 /**
1480 * @tc.steps: step2. construct a dragDropProxy and update gestureEventHub attributes.
1481 */
1482 constexpr int64_t PROXY_ID_NOT_FIT = 101;
1483 auto dragDropProxy = AceType::MakeRefPtr<DragDropProxy>(PROXY_ID_NOT_FIT);
1484 gestureEventHub->dragDropProxy_ = dragDropProxy;
1485
1486 /**
1487 * @tc.steps: step3. call HandleOnDragUpdate with GestureEvent.
1488 * @tc.expected: gestureEventHub->dragDropProxy_ is true.
1489 */
1490 GestureEvent info;
1491 gestureEventHub->HandleOnDragUpdate(info);
1492 EXPECT_TRUE(gestureEventHub->dragDropProxy_);
1493
1494 /**
1495 * @tc.steps: step4. call HandleOnDragUpdate with GestureEvent.
1496 * @tc.expected: gestureEventHub->IsDragged() the return value is false.
1497 */
1498 auto pipeline = PipelineContext::GetCurrentContext();
1499 auto dragDropManager = pipeline->GetDragDropManager();
1500 dragDropManager->SetIsDragged(false);
1501 gestureEventHub->HandleOnDragUpdate(info);
1502 EXPECT_FALSE(dragDropManager->IsDragged());
1503 }
1504
1505 /**
1506 * @tc.name: GestureEventHubTest024
1507 * @tc.desc: Test HandleOnDragEnd
1508 * @tc.type: FUNC
1509 */
1510 HWTEST_F(GestureEventHubTestNg, GestureEventHubTest024, TestSize.Level1)
1511 {
1512 /**
1513 * @tc.steps: step1. Create GestureEventHub.
1514 * @tc.expected: gestureEventHub is not null.
1515 */
1516 auto eventHub = AceType::MakeRefPtr<EventHub>();
1517 EXPECT_TRUE(eventHub);
1518 auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1519 eventHub->AttachHost(frameNode);
1520
1521 /**
1522 * @tc.steps: step2. construct a func and update eventHub attributes.
1523 */
__anon9b9e2c482702(const RefPtr<OHOS::Ace::DragEvent>&, const std::string&) 1524 auto func = [](const RefPtr<OHOS::Ace::DragEvent>&, const std::string&) { return DragDropInfo(); };
1525 eventHub->SetOnDrop(func);
1526 eventHub->customerOnDrop_ = func;
1527
1528 auto gestureEventHub = AceType::MakeRefPtr<GestureEventHub>(eventHub);
1529 EXPECT_TRUE(gestureEventHub);
1530
1531 auto pipeline = PipelineContext::GetCurrentContext();
1532 pipeline->SetMinPlatformVersion(12);
1533
1534 /**
1535 * @tc.steps: step3. call HandleOnDragEnd with GestureEvent.
1536 * @tc.expected: The return value of gestureEventHub->GetFrameNode() is true.
1537 */
1538 GestureEvent info;
1539 gestureEventHub->HandleOnDragEnd(info);
1540 EXPECT_TRUE(gestureEventHub->GetFrameNode());
1541
1542 constexpr int64_t PROXY_ID_NOT_FIT = 101;
1543 auto dragDropProxy = AceType::MakeRefPtr<DragDropProxy>(PROXY_ID_NOT_FIT);
1544 gestureEventHub->dragDropProxy_ = dragDropProxy;
1545 pipeline->SetMinPlatformVersion(9);
1546
1547 /**
1548 * @tc.steps: step4. call HandleOnDragEnd with GestureEvent.
1549 * @tc.expected: The return value of gestureEventHub->dragDropProxy_ is false.
1550 */
1551 gestureEventHub->HandleOnDragEnd(info);
1552 EXPECT_FALSE(gestureEventHub->dragDropProxy_);
1553 }
1554
1555 /**
1556 * @tc.name: GestureEventHubTest025
1557 * @tc.desc: Test HandleOnDragEnd
1558 * @tc.type: FUNC
1559 */
1560 HWTEST_F(GestureEventHubTestNg, GestureEventHubTest025, TestSize.Level1)
1561 {
1562 /**
1563 * @tc.steps: step1. Create GestureEventHub.
1564 * @tc.expected: gestureEventHub is not null.
1565 */
1566 auto eventHub = AceType::MakeRefPtr<EventHub>();
1567 EXPECT_TRUE(eventHub);
1568 auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::WEB_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
1569 eventHub->AttachHost(frameNode);
1570
1571 /**
1572 * @tc.steps: step2. construct a func and update eventHub attributes.
1573 */
__anon9b9e2c482802(const RefPtr<OHOS::Ace::DragEvent>&, const std::string&) 1574 auto func = [](const RefPtr<OHOS::Ace::DragEvent>&, const std::string&) { return DragDropInfo(); };
1575 eventHub->SetOnDrop(func);
1576 eventHub->customerOnDrop_ = func;
1577
1578 auto gestureEventHub = AceType::MakeRefPtr<GestureEventHub>(eventHub);
1579 EXPECT_TRUE(gestureEventHub);
1580
1581 auto pipeline = PipelineContext::GetCurrentContext();
1582 pipeline->SetMinPlatformVersion(9);
1583
1584 constexpr int64_t PROXY_ID_NOT_FIT = 101;
1585 auto dragDropProxy = AceType::MakeRefPtr<DragDropProxy>(PROXY_ID_NOT_FIT);
1586 gestureEventHub->dragDropProxy_ = dragDropProxy;
1587
1588 /**
1589 * @tc.steps: step3. call HandleOnDragEnd with GestureEvent.
1590 * @tc.expected: gestureEventHub->dragDropProxy_ is null.
1591 */
1592 GestureEvent info;
1593 gestureEventHub->HandleOnDragEnd(info);
1594 EXPECT_FALSE(gestureEventHub->dragDropProxy_);
1595
1596 eventHub->onDrop_ = nullptr;
1597 eventHub->customerOnDrop_ = nullptr;
1598 gestureEventHub = AceType::MakeRefPtr<GestureEventHub>(eventHub);
1599
1600 /**
1601 * @tc.steps: step4. call HandleOnDragEnd with GestureEvent.
1602 * @tc.expected: The return value of eventHub->HasOnDrop() is false.
1603 */
1604 gestureEventHub->HandleOnDragEnd(info);
1605 EXPECT_FALSE(eventHub->HasOnDrop());
1606 }
1607
1608 /**
1609 * @tc.name: GestureEventHubTest026
1610 * @tc.desc: Test HandleOnDragCancel
1611 * @tc.type: FUNC
1612 */
1613 HWTEST_F(GestureEventHubTestNg, GestureEventHubTest026, TestSize.Level1)
1614 {
1615 /**
1616 * @tc.steps: step1. Create GestureEventHub.
1617 * @tc.expected: gestureEventHub is not null.
1618 */
1619 auto eventHub = AceType::MakeRefPtr<EventHub>();
1620 EXPECT_TRUE(eventHub);
1621 auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1622 eventHub->AttachHost(frameNode);
1623 auto gestureEventHub = AceType::MakeRefPtr<GestureEventHub>(eventHub);
1624 EXPECT_TRUE(gestureEventHub);
1625
1626 /**
1627 * @tc.steps: step2. construct a dragDropProxy and update gestureEventHub attribute.
1628 */
1629 constexpr int64_t PROXY_ID_NOT_FIT = 101;
1630 auto dragDropProxy = AceType::MakeRefPtr<DragDropProxy>(PROXY_ID_NOT_FIT);
1631 gestureEventHub->dragDropProxy_ = dragDropProxy;
1632
1633 /**
1634 * @tc.steps: step3. call HandleOnDragCancel.
1635 * @tc.expected: gestureEventHub->dragDropProxy_ is null.
1636 */
1637 gestureEventHub->HandleOnDragCancel();
1638 EXPECT_FALSE(gestureEventHub->dragDropProxy_);
1639 }
1640
1641 /**
1642 * @tc.name: GestureEventHubTest027
1643 * @tc.desc: Test SetOnGestureJudgeBegin and SetOnGestureJudgeNativeBegin
1644 * @tc.type: FUNC
1645 */
1646 HWTEST_F(GestureEventHubTestNg, GestureEventHubTest027, TestSize.Level1)
1647 {
1648 /**
1649 * @tc.steps: step1. Create GestureEventHub.
1650 * @tc.expected: gestureEventHub is not null.
1651 */
1652 auto eventHub = AceType::MakeRefPtr<EventHub>();
1653 EXPECT_TRUE(eventHub);
1654 auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1655 eventHub->AttachHost(frameNode);
1656 auto gestureEventHub = AceType::MakeRefPtr<GestureEventHub>(eventHub);
1657 EXPECT_TRUE(gestureEventHub);
1658
1659 /**
1660 * @tc.steps: step2. construct a gestureJudgeFunc.
1661 */
1662 auto gestureJudgeFunc = [](const RefPtr<GestureInfo>& gestureInfo,
__anon9b9e2c482902(const RefPtr<GestureInfo>& gestureInfo, const std::shared_ptr<BaseGestureEvent>&) 1663 const std::shared_ptr<BaseGestureEvent>&) -> GestureJudgeResult {
1664 return GestureJudgeResult(1);
1665 };
1666
1667 /**
1668 * @tc.steps: step3. call SetOnGestureJudgeBegin with gestureJudgeFunc.
1669 * @tc.expected: gestureEventHub->gestureJudgeFunc_ is not null.
1670 */
1671 gestureEventHub->SetOnGestureJudgeBegin(gestureJudgeFunc);
1672 EXPECT_TRUE(gestureEventHub->gestureJudgeFunc_);
1673
1674 /**
1675 * @tc.steps: step4. call SetOnGestureJudgeNativeBegin with gestureJudgeFunc.
1676 * @tc.expected: gestureEventHub->gestureJudgeNativeFunc_ is not null.
1677 */
1678 gestureEventHub->SetOnGestureJudgeNativeBegin(gestureJudgeFunc);
1679 EXPECT_TRUE(gestureEventHub->gestureJudgeNativeFunc_);
1680 }
1681
1682 /**
1683 * @tc.name: GestureEventHubTest028
1684 * @tc.desc: Test IsAccessibilityClickable and IsAccessibilityLongClickable
1685 * @tc.type: FUNC
1686 */
1687 HWTEST_F(GestureEventHubTestNg, GestureEventHubTest028, TestSize.Level1)
1688 {
1689 /**
1690 * @tc.steps: step1. Create GestureEventHub.
1691 * @tc.expected: gestureEventHub is not null.
1692 */
1693 auto eventHub = AceType::MakeRefPtr<EventHub>();
1694 EXPECT_TRUE(eventHub);
1695 auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1696 eventHub->AttachHost(frameNode);
1697 auto gestureEventHub = AceType::MakeRefPtr<GestureEventHub>(eventHub);
1698 EXPECT_TRUE(gestureEventHub);
1699
1700 /**
1701 * @tc.steps: step2. Updated properties for gestureEventHub.
1702 */
1703 auto clickRecognizer = AceType::MakeRefPtr<ClickRecognizer>(DOUBLE_FINGERS, FINGERS);
1704 gestureEventHub->gestureHierarchy_.emplace_back(clickRecognizer);
1705
1706 /**
1707 * @tc.steps: step3. call IsAccessibilityClickable.
1708 * @tc.expected: retFlag is false.
1709 */
1710 bool retFlag = gestureEventHub->IsAccessibilityClickable();
1711 EXPECT_FALSE(retFlag);
1712
1713 /**
1714 * @tc.steps: step3. call IsAccessibilityLongClickable.
1715 * @tc.expected: retFlag is false.
1716 */
1717 retFlag = gestureEventHub->IsAccessibilityLongClickable();
1718 EXPECT_FALSE(retFlag);
1719 }
1720
1721 /**
1722 * @tc.name: GestureEventHubTest029
1723 * @tc.desc: Test GetHitTestModeStr
1724 * @tc.type: FUNC
1725 */
1726 HWTEST_F(GestureEventHubTestNg, GestureEventHubTest029, TestSize.Level1)
1727 {
1728 /**
1729 * @tc.steps: step1. Create GestureEventHub.
1730 * @tc.expected: gestureEventHub is not null.
1731 */
1732 auto eventHub = AceType::MakeRefPtr<EventHub>();
1733 EXPECT_TRUE(eventHub);
1734 auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1735 eventHub->AttachHost(frameNode);
1736 auto gestureEventHub = AceType::MakeRefPtr<GestureEventHub>(eventHub);
1737 EXPECT_TRUE(gestureEventHub);
1738
1739 /**
1740 * @tc.steps: step2. call GetHitTestModeStr with hitTestMode_ == -1.
1741 * @tc.expected: retStr is equal to "HitTestMode.Default".
1742 */
1743 gestureEventHub->SetHitTestMode(HitTestMode(-1));
1744 std::string retStr = gestureEventHub->GetHitTestModeStr();
1745 EXPECT_EQ(retStr, "HitTestMode.Default");
1746
1747 /**
1748 * @tc.steps: step3. call GetHitTestModeStr with hitTestMode_ == 4.
1749 * @tc.expected: retStr is equal to "HitTestMode.Default".
1750 */
1751 gestureEventHub->SetHitTestMode(HitTestMode(4));
1752 retStr = gestureEventHub->GetHitTestModeStr();
1753 EXPECT_EQ(retStr, "HitTestMode.Default");
1754 }
1755
1756 /**
1757 * @tc.name: GestureEventHubTest030
1758 * @tc.desc: Test ActClick
1759 * @tc.type: FUNC
1760 */
1761 HWTEST_F(GestureEventHubTestNg, GestureEventHubTest030, TestSize.Level1)
1762 {
1763 /**
1764 * @tc.steps: step1. Create GestureEventHub.
1765 * @tc.expected: gestureEventHub is not null.
1766 */
1767 auto eventHub = AceType::MakeRefPtr<EventHub>();
1768 EXPECT_TRUE(eventHub);
1769 auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1770 eventHub->AttachHost(frameNode);
1771 auto gestureEventHub = AceType::MakeRefPtr<GestureEventHub>(eventHub);
1772 EXPECT_TRUE(gestureEventHub);
1773
1774 /**
1775 * @tc.steps: step2. Updated properties for gestureEventHub.
1776 */
1777 auto clickRecognizer = AceType::MakeRefPtr<ClickRecognizer>(DOUBLE_FINGERS, CLICK_COUNTS);
1778 gestureEventHub->gestureHierarchy_.emplace_back(clickRecognizer);
1779
1780 /**
1781 * @tc.steps: step3. call ActClick.
1782 * @tc.expected: retFlag is false.
1783 */
1784 bool retFlag = gestureEventHub->ActClick();
1785 EXPECT_FALSE(retFlag);
1786 }
1787
1788 /**
1789 * @tc.name: GestureEventHubTest031
1790 * @tc.desc: Test UpdateGestureHierarchy
1791 * @tc.type: FUNC
1792 */
1793 HWTEST_F(GestureEventHubTestNg, GestureEventHubTest031, TestSize.Level1)
1794 {
1795 /**
1796 * @tc.steps: step1. Create GestureEventHub.
1797 * @tc.expected: gestureEventHub is not null.
1798 */
1799 auto eventHub = AceType::MakeRefPtr<EventHub>();
1800 ASSERT_NE(eventHub, nullptr);
1801 auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1802 ASSERT_NE(frameNode, nullptr);
1803 eventHub->AttachHost(frameNode);
1804 auto gestureEventHub = AceType::MakeRefPtr<GestureEventHub>(eventHub);
1805 ASSERT_NE(gestureEventHub, nullptr);
1806
1807 /**
1808 * @tc.steps: step2. Updated properties for gestureEventHub.
1809 */
1810 gestureEventHub->recreateGesture_ = true;
1811 auto tapGesture = AceType::MakeRefPtr<TapGesture>(FINGERS, 1);
1812 gestureEventHub->gestures_.emplace_back(tapGesture);
1813 auto longPressRecognizer = AceType::MakeRefPtr<LongPressRecognizer>(1, 1, false);
1814 gestureEventHub->gestureHierarchy_.emplace_back(longPressRecognizer);
1815 gestureEventHub->UpdateGestureHierarchy();
1816
1817 /**
1818 * @tc.steps: step3. call UpdateGestureHierarchy.
1819 * @tc.expected: gestureHierarchy_ has one elements.
1820 */
1821 auto sizeGestureHierarchy = static_cast<int32_t>(gestureEventHub->gestureHierarchy_.size());
1822 EXPECT_EQ(sizeGestureHierarchy, 1);
1823 }
1824
1825 /**
1826 * @tc.name: ResetDragActionForWeb001
1827 * @tc.desc: Test ResetDragActionForWeb
1828 * @tc.type: FUNC
1829 */
1830 HWTEST_F(GestureEventHubTestNg, ResetDragActionForWeb001, TestSize.Level1)
1831 {
1832 auto frameNode = FrameNode::CreateFrameNode("myButton", 102, AceType::MakeRefPtr<Pattern>());
1833 auto guestureEventHub = frameNode->GetOrCreateGestureEventHub();
1834 ASSERT_NE(guestureEventHub, nullptr);
1835 guestureEventHub->ResetDragActionForWeb();
1836 ASSERT_EQ(guestureEventHub->isReceivedDragGestureInfo_, false);
1837 }
1838
1839 /**
1840 * @tc.name: ResetDragActionForWeb001
1841 * @tc.desc: Test ResetDragActionForWeb
1842 * @tc.type: FUNC
1843 */
1844 HWTEST_F(GestureEventHubTestNg, OnDragStart001, TestSize.Level1)
1845 {
1846 auto frameNode = FrameNode::CreateFrameNode("myButton", 101, AceType::MakeRefPtr<Pattern>());
1847 auto guestureEventHub = frameNode->GetOrCreateGestureEventHub();
1848 ASSERT_NE(guestureEventHub, nullptr);
1849 auto eventHub = guestureEventHub->eventHub_.Upgrade();
1850 GestureEvent info;
1851 auto pipline = PipelineContext::GetCurrentContext();
1852 auto EventHub = AceType::MakeRefPtr<GestureEventHub>(eventHub);
1853 EXPECT_TRUE(EventHub);
1854 auto frameNodeOfEvent = EventHub->GetFrameNode();
1855 EXPECT_TRUE(frameNodeOfEvent);
1856 RefPtr<OHOS::Ace::DragEvent> event = AceType::MakeRefPtr<OHOS::Ace::DragEvent>();
1857 RefPtr<UINode> customNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1858 DragDropInfo dragDropInfo;
1859 dragDropInfo.customNode = customNode;
1860 event->SetResult(DragRet::DRAG_FAIL);
1861 guestureEventHub->OnDragStart(info, pipline, frameNode, dragDropInfo, event);
1862 event->SetResult(DragRet::DRAG_CANCEL);
1863 guestureEventHub->OnDragStart(info, pipline, frameNode, dragDropInfo, event);
1864 EXPECT_TRUE(EventHub->dragDropProxy_ == false);
1865 }
1866
1867 /**
1868 * @tc.name: SetMouseDragGatherPixelMaps001
1869 * @tc.desc: Test SetMouseDragGatherPixelMaps
1870 * @tc.type: FUNC
1871 */
1872 HWTEST_F(GestureEventHubTestNg, SetMouseDragGatherPixelMaps001, TestSize.Level1)
1873 {
1874 auto frameNode = FrameNode::CreateFrameNode("myButton", 101, AceType::MakeRefPtr<Pattern>());
1875 auto guestureEventHub = frameNode->GetOrCreateGestureEventHub();
1876 ASSERT_NE(guestureEventHub, nullptr);
1877 auto eventHub = guestureEventHub->eventHub_.Upgrade();
1878 guestureEventHub->SetMouseDragGatherPixelMaps();
1879 guestureEventHub->SetNotMouseDragGatherPixelMaps();
1880 ASSERT_NE(PipelineContext::GetCurrentContext(), nullptr);
1881 }
1882
1883 /**
1884 * @tc.name: IsTextCategoryComponent001
1885 * @tc.desc: Test IsTextCategoryComponent
1886 * @tc.type: FUNC
1887 */
1888 HWTEST_F(GestureEventHubTestNg, IsTextCategoryComponent001, TestSize.Level1)
1889 {
1890 auto frameNode = FrameNode::CreateFrameNode("myButton", 101, AceType::MakeRefPtr<Pattern>());
1891 auto guestureEventHub = frameNode->GetOrCreateGestureEventHub();
1892 string frameTag = V2::TEXTAREA_ETS_TAG;
1893 bool result = guestureEventHub->IsTextCategoryComponent(frameTag);
1894 ASSERT_TRUE(result);
1895 frameTag = V2::TEXT_ETS_TAG;
1896 result = guestureEventHub->IsTextCategoryComponent(frameTag);
1897 ASSERT_TRUE(result);
1898 frameTag = V2::TEXTINPUT_ETS_TAG;
1899 result = guestureEventHub->IsTextCategoryComponent(frameTag);
1900 ASSERT_TRUE(result);
1901 frameTag = V2::SEARCH_Field_ETS_TAG;
1902 result = guestureEventHub->IsTextCategoryComponent(frameTag);
1903 ASSERT_TRUE(result);
1904 frameTag = V2::RICH_EDITOR_ETS_TAG;
1905 result = guestureEventHub->IsTextCategoryComponent(frameTag);
1906 ASSERT_TRUE(result);
1907 frameTag = "";
1908 result = guestureEventHub->IsTextCategoryComponent(frameTag);
1909 ASSERT_FALSE(result);
1910 }
1911
1912 /**
1913 * @tc.name: SetResponseRegion001
1914 * @tc.desc: Test SetResponseRegion
1915 * @tc.type: FUNC
1916 */
1917 HWTEST_F(GestureEventHubTestNg, SetResponseRegion001, TestSize.Level1)
1918 {
1919 auto frameNode = FrameNode::CreateFrameNode("myButton", 101, AceType::MakeRefPtr<Pattern>());
1920 auto guestureEventHub = frameNode->GetOrCreateGestureEventHub();
1921 std::vector<DimensionRect> responseRegion;
1922 guestureEventHub->SetResponseRegion(responseRegion);
1923 responseRegion.push_back(DimensionRect());
1924 int32_t callbackInfo = 0;
__anon9b9e2c482a02(const std::vector<DimensionRect>& ) 1925 guestureEventHub->SetResponseRegionFunc([&callbackInfo](const std::vector<DimensionRect>& /*reponseRegion*/) {
1926 callbackInfo = 1;
1927 });
1928 guestureEventHub->SetResponseRegion(responseRegion);
1929 ASSERT_TRUE(guestureEventHub->isResponseRegion_);
1930 }
1931
1932 /**
1933 * @tc.name: RemoveLastResponseRect001
1934 * @tc.desc: Test RemoveLastResponseRect
1935 * @tc.type: FUNC
1936 */
1937 HWTEST_F(GestureEventHubTestNg, RemoveLastResponseRect001, TestSize.Level1)
1938 {
1939 auto frameNode = FrameNode::CreateFrameNode("myButton", 101, AceType::MakeRefPtr<Pattern>());
1940 auto guestureEventHub = frameNode->GetOrCreateGestureEventHub();
1941 std::vector<DimensionRect> responseRegion;
1942 guestureEventHub->RemoveLastResponseRect();
1943 responseRegion.push_back(DimensionRect());
1944 responseRegion.push_back(DimensionRect());
1945 guestureEventHub->SetResponseRegion(responseRegion);
1946 guestureEventHub->RemoveLastResponseRect();
1947 int32_t callbackInfo = 0;
__anon9b9e2c482b02(const std::vector<DimensionRect>& ) 1948 guestureEventHub->SetResponseRegionFunc([&callbackInfo](const std::vector<DimensionRect>& /*reponseRegion*/) {
1949 callbackInfo = 1;
1950 });
1951 guestureEventHub->RemoveLastResponseRect();
1952 ASSERT_FALSE(guestureEventHub->isResponseRegion_);
1953 }
1954
1955 /**
1956 * @tc.name: SetJSFrameNodeOnTouchEvent001
1957 * @tc.desc: Test SetJSFrameNodeOnTouchEvent
1958 * @tc.type: FUNC
1959 */
1960 HWTEST_F(GestureEventHubTestNg, SetJSFrameNodeOnTouchEvent001, TestSize.Level1)
1961 {
1962 auto frameNode = FrameNode::CreateFrameNode("myButton", 101, AceType::MakeRefPtr<Pattern>());
1963 auto guestureEventHub = frameNode->GetOrCreateGestureEventHub();
1964 guestureEventHub->touchEventActuator_ = nullptr;
__anon9b9e2c482c02(TouchEventInfo& info) 1965 TouchEventFunc touchEventFunc = [](TouchEventInfo& info) {};
1966 guestureEventHub->SetJSFrameNodeOnTouchEvent(std::move(touchEventFunc));
1967 ASSERT_NE(guestureEventHub->touchEventActuator_, nullptr);
1968 }
1969 } // namespace OHOS::Ace::NG
1970