1 /*
2 * Copyright (c) 2025 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 #include "test/unittest/core/gestures/gestures_common_test_ng.h"
16
17 using namespace testing;
18 using namespace testing::ext;
19
20 namespace OHOS::Ace::NG {
21 class GestureModelTestNg : public GesturesCommonTestNg {
22 public:
23 static void SetUpTestSuite();
24 static void TearDownTestSuite();
25 };
26
SetUpTestSuite()27 void GestureModelTestNg::SetUpTestSuite()
28 {
29 MockPipelineContext::SetUp();
30 }
31
TearDownTestSuite()32 void GestureModelTestNg::TearDownTestSuite()
33 {
34 MockPipelineContext::TearDown();
35 }
36
37 /**
38 * @tc.name: GestureModelTestNg001
39 * @tc.desc: test GestureModelNG::Create function
40 */
41 HWTEST_F(GestureModelTestNg, GestureModelTestNg001, TestSize.Level1) {
42
43 GestureModelNG gestureModelNG;
44 gestureModelNG.Create(-1, -1);
45
46 RefPtr<GestureProcessor> gestureProcessor;
47 gestureProcessor = NG::ViewStackProcessor::GetInstance()->GetOrCreateGestureProcessor();
48 EXPECT_EQ(gestureProcessor->priority_, GesturePriority::Low);
49 EXPECT_EQ(gestureProcessor->gestureMask_, GestureMask::Normal);
50 }
51
52 /**
53 * @tc.name: GestureModelTestNg002
54 * @tc.desc: test GestureModelNG::Create function
55 */
56 HWTEST_F(GestureModelTestNg, GestureModelTestNg002, TestSize.Level1) {
57
58 GestureModelNG gestureModelNG;
59 gestureModelNG.Create(3, 2);
60
61 RefPtr<GestureProcessor> gestureProcessor;
62 gestureProcessor = NG::ViewStackProcessor::GetInstance()->GetOrCreateGestureProcessor();
63 EXPECT_EQ(gestureProcessor->priority_, GesturePriority::Low);
64 EXPECT_EQ(gestureProcessor->gestureMask_, GestureMask::Normal);
65 }
66
67 /**
68 * @tc.name: GestureModelTestNg003
69 * @tc.desc: test SetTag function
70 */
71 HWTEST_F(GestureModelTestNg, GestureModelTestNg003, TestSize.Level1) {
72
73 GestureModelNG gestureModelNG;
74 gestureModelNG.Create(3, 2);
75 RefPtr<GestureProcessor> gestureProcessor;
76 gestureProcessor = NG::ViewStackProcessor::GetInstance()->GetOrCreateGestureProcessor();
77 gestureModelNG.SetTag("test_tag");
78 auto gesture = gestureProcessor->TopGestureNG();
79 EXPECT_EQ(gesture->GetTag(), "test_tag");
80 }
81
82 /**
83 * @tc.name: GestureModelTestNg004
84 * @tc.desc: test SetTag function
85 */
86 HWTEST_F(GestureModelTestNg, GestureModelTestNg004, TestSize.Level1) {
87
88 GestureModelNG gestureModelNG;
89 gestureModelNG.Create(3, 2);
90 RefPtr<GestureProcessor> gestureProcessor;
91 gestureProcessor = NG::ViewStackProcessor::GetInstance()->GetOrCreateGestureProcessor();
92 std::set<SourceTool> allowType;
93 allowType.insert(SourceTool::UNKNOWN);
94 gestureModelNG.SetAllowedTypes(allowType);
95 auto gesture = gestureProcessor->TopGestureNG();
96 EXPECT_EQ(gesture->GetAllowedTypes(), allowType);
97 }
98
99
100 /**
101 * @tc.name: GestureModelTestNg005
102 * @tc.desc: test Finish function
103 */
104 HWTEST_F(GestureModelTestNg, GestureModelTestNg005, TestSize.Level1) {
105 GestureModelNG gestureModelNG;
106 gestureModelNG.Create(3, 2);
107 gestureModelNG.Pop();
108
109 RefPtr<GestureProcessor> gestureProcessor;
110 gestureProcessor = NG::ViewStackProcessor::GetInstance()->GetOrCreateGestureProcessor();
111 const int nodeId = 10008;
112 auto frameNode = FrameNode::GetOrCreateFrameNode(V2::LOCATION_BUTTON_ETS_TAG, nodeId, nullptr);
113 NG::ViewStackProcessor::GetInstance()->Push(frameNode);
114 RefPtr<GestureEventHub> gestureEventHub;
115 gestureEventHub = NG::ViewStackProcessor::GetInstance()->GetMainFrameNodeGestureEventHub();
116
117 gestureModelNG.Finish();
118 EXPECT_NE(gestureEventHub, nullptr);
119 EXPECT_FALSE(gestureEventHub->IsGestureEmpty());
120 }
121
122 /**
123 * @tc.name: GestureModelTestNg006
124 * @tc.desc: test Finish function
125 */
126 HWTEST_F(GestureModelTestNg, GestureModelTestNg006, TestSize.Level1) {
127 GestureModelNG gestureModelNG;
128 gestureModelNG.Create(3, 2);
129
130 RefPtr<GestureProcessor> gestureProcessor;
131 gestureProcessor = NG::ViewStackProcessor::GetInstance()->GetOrCreateGestureProcessor();
132 const int nodeId = 10008;
133 auto frameNode = FrameNode::GetOrCreateFrameNode(V2::LOCATION_BUTTON_ETS_TAG, nodeId, nullptr);
134 NG::ViewStackProcessor::GetInstance()->Push(frameNode);
135 RefPtr<GestureEventHub> gestureEventHub;
136 gestureEventHub = NG::ViewStackProcessor::GetInstance()->GetMainFrameNodeGestureEventHub();
137
138 gestureModelNG.Finish();
139 EXPECT_NE(gestureEventHub, nullptr);
140 EXPECT_FALSE(gestureEventHub->IsGestureEmpty());
141 }
142
143 /**
144 * @tc.name: GestureModelTestNg007
145 * @tc.desc: test Finish function
146 */
147 HWTEST_F(GestureModelTestNg, GestureModelTestNg007, TestSize.Level1) {
148 GestureModelNG gestureModelNG;
149 gestureModelNG.Create(3, 2);
150
151 RefPtr<GestureProcessor> gestureProcessor;
152 gestureProcessor = NG::ViewStackProcessor::GetInstance()->GetOrCreateGestureProcessor();
153 auto tapGesture = AceType::MakeRefPtr<NG::TapGesture>(1, 1);
__anone0b80b330102(GestureEvent& info) 154 auto onActionStart = [](GestureEvent& info) { return true; };
155 tapGesture->SetOnActionId(onActionStart);
156 gestureProcessor->PushGestureNG(tapGesture);
157
158 const int nodeId = 10008;
159 auto frameNode = FrameNode::GetOrCreateFrameNode(V2::LOCATION_BUTTON_ETS_TAG, nodeId, nullptr);
160 NG::ViewStackProcessor::GetInstance()->Push(frameNode);
161 RefPtr<GestureEventHub> gestureEventHub;
162 gestureEventHub = NG::ViewStackProcessor::GetInstance()->GetMainFrameNodeGestureEventHub();
163 auto focusHub = NG::ViewStackProcessor::GetInstance()->GetOrCreateMainFrameNodeFocusHub();
164
165 gestureModelNG.Finish();
166 EXPECT_NE(gestureEventHub, nullptr);
167 EXPECT_NE(focusHub, nullptr);
168 EXPECT_FALSE(gestureEventHub->IsGestureEmpty());
169 EXPECT_NE(focusHub->GetOnClickCallback(), nullptr);
170 }
171
172
173 /**
174 * @tc.name: GestureModelTestNg008
175 * @tc.desc: test Finish function
176 */
177 HWTEST_F(GestureModelTestNg, GestureModelTestNg008, TestSize.Level1) {
178 GestureModelNG gestureModelNG;
179 gestureModelNG.Create(3, 2);
180
181 RefPtr<GestureProcessor> gestureProcessor;
182 gestureProcessor = NG::ViewStackProcessor::GetInstance()->GetOrCreateGestureProcessor();
183 auto tapGesture = AceType::MakeRefPtr<NG::TapGesture>(1, 1);
__anone0b80b330202(GestureEvent& info) 184 auto onActionStart = [](GestureEvent& info) { return true; };
185 tapGesture->SetOnActionId(onActionStart);
186
187 auto gestureGroupNG = AceType::DynamicCast<NG::GestureGroup>(gestureProcessor->TopGestureNG());
188 std::vector<RefPtr<Gesture>> gestures;
189 gestures.push_back(tapGesture);
190 GestureGroup gestureGroup = GestureGroup(GestureMode::Sequence);
191 gestureGroup.gestures_ = gestures;
192 gestureProcessor->PushGestureNG(tapGesture);
193
194 const int nodeId = 10008;
195 auto frameNode = FrameNode::GetOrCreateFrameNode(V2::LOCATION_BUTTON_ETS_TAG, nodeId, nullptr);
196 NG::ViewStackProcessor::GetInstance()->Push(frameNode);
197 RefPtr<GestureEventHub> gestureEventHub;
198 gestureEventHub = NG::ViewStackProcessor::GetInstance()->GetMainFrameNodeGestureEventHub();
199 auto focusHub = NG::ViewStackProcessor::GetInstance()->GetOrCreateMainFrameNodeFocusHub();
200
201 gestureModelNG.Finish();
202 EXPECT_NE(gestureEventHub, nullptr);
203 EXPECT_NE(focusHub, nullptr);
204 EXPECT_FALSE(gestureEventHub->IsGestureEmpty());
205 EXPECT_NE(focusHub->GetOnClickCallback(), nullptr);
206 }
207
208 /**
209 * @tc.name: GestureModelTestNg009
210 * @tc.desc: test Finish function
211 */
212 HWTEST_F(GestureModelTestNg, GestureModelTestNg009, TestSize.Level1) {
213 GestureModelNG gestureModelNG;
214 gestureModelNG.Create(3, 2);
215
216 RefPtr<GestureProcessor> gestureProcessor;
217 gestureProcessor = NG::ViewStackProcessor::GetInstance()->GetOrCreateGestureProcessor();
218 auto tapGesture = AceType::MakeRefPtr<NG::TapGesture>(1, 1);
219 tapGesture->SetOnActionId(nullptr);
220 gestureProcessor->PushGestureNG(tapGesture);
221
222 const int nodeId = 10008;
223 auto frameNode = FrameNode::GetOrCreateFrameNode(V2::LOCATION_BUTTON_ETS_TAG, nodeId, nullptr);
224 NG::ViewStackProcessor::GetInstance()->Push(frameNode);
225 RefPtr<GestureEventHub> gestureEventHub;
226 gestureEventHub = NG::ViewStackProcessor::GetInstance()->GetMainFrameNodeGestureEventHub();
227 auto focusHub = NG::ViewStackProcessor::GetInstance()->GetOrCreateMainFrameNodeFocusHub();
228
229 gestureModelNG.Finish();
230 EXPECT_NE(gestureEventHub, nullptr);
231 EXPECT_NE(focusHub, nullptr);
232 EXPECT_FALSE(gestureEventHub->IsGestureEmpty());
233 EXPECT_NE(focusHub->GetOnClickCallback(), nullptr);
234 }
235
236 /**
237 * @tc.name: GestureModelTestNg010
238 * @tc.desc: test Finish function
239 */
240 HWTEST_F(GestureModelTestNg, GestureModelTestNg010, TestSize.Level1) {
241 GestureModelNG gestureModelNG;
242 gestureModelNG.Create(3, 2);
243
244 RefPtr<GestureProcessor> gestureProcessor;
245 gestureProcessor = NG::ViewStackProcessor::GetInstance()->GetOrCreateGestureProcessor();
246 auto tapGesture = AceType::MakeRefPtr<NG::TapGesture>(1, 1);
247 tapGesture->SetOnActionId(nullptr);
248
249 auto gestureGroupNG = AceType::DynamicCast<NG::GestureGroup>(gestureProcessor->TopGestureNG());
250 std::vector<RefPtr<Gesture>> gestures;
251 gestures.push_back(tapGesture);
252 GestureGroup gestureGroup = GestureGroup(GestureMode::Sequence);
253 gestureGroup.gestures_ = gestures;
254 gestureProcessor->PushGestureNG(tapGesture);
255
256 const int nodeId = 10008;
257 auto frameNode = FrameNode::GetOrCreateFrameNode(V2::LOCATION_BUTTON_ETS_TAG, nodeId, nullptr);
258 NG::ViewStackProcessor::GetInstance()->Push(frameNode);
259 RefPtr<GestureEventHub> gestureEventHub;
260 gestureEventHub = NG::ViewStackProcessor::GetInstance()->GetMainFrameNodeGestureEventHub();
261 auto focusHub = NG::ViewStackProcessor::GetInstance()->GetOrCreateMainFrameNodeFocusHub();
262
263 gestureModelNG.Finish();
264 EXPECT_NE(gestureEventHub, nullptr);
265 EXPECT_NE(focusHub, nullptr);
266 EXPECT_FALSE(gestureEventHub->IsGestureEmpty());
267 EXPECT_NE(focusHub->GetOnClickCallback(), nullptr);
268 }
269
270
271 /**
272 * @tc.name: GestureModelTestNg011
273 * @tc.desc: test Finish function
274 */
275 HWTEST_F(GestureModelTestNg, GestureModelTestNg011, TestSize.Level1) {
276 GestureModelNG gestureModelNG;
277 gestureModelNG.Create(3, 2);
278
279 RefPtr<GestureProcessor> gestureProcessor;
280 gestureProcessor = NG::ViewStackProcessor::GetInstance()->GetOrCreateGestureProcessor();
281 auto tapGesture = AceType::MakeRefPtr<NG::TapGesture>(COUNT, FINGER_NUMBER);
__anone0b80b330302(GestureEvent& info) 282 auto onActionStart = [](GestureEvent& info) { return true; };
283 tapGesture->SetOnActionId(onActionStart);
284 gestureProcessor->PushGestureNG(tapGesture);
285
286 const int nodeId = 10008;
287 auto frameNode = FrameNode::GetOrCreateFrameNode(V2::LOCATION_BUTTON_ETS_TAG, nodeId, nullptr);
288 NG::ViewStackProcessor::GetInstance()->Push(frameNode);
289 RefPtr<GestureEventHub> gestureEventHub;
290 gestureEventHub = NG::ViewStackProcessor::GetInstance()->GetMainFrameNodeGestureEventHub();
291 auto focusHub = NG::ViewStackProcessor::GetInstance()->GetOrCreateMainFrameNodeFocusHub();
292
293 gestureModelNG.Finish();
294 EXPECT_NE(gestureEventHub, nullptr);
295 EXPECT_NE(focusHub, nullptr);
296 EXPECT_FALSE(gestureEventHub->IsGestureEmpty());
297 EXPECT_NE(focusHub->GetOnClickCallback(), nullptr);
298 }
299
300
301 /**
302 * @tc.name: GestureModelTestNg012
303 * @tc.desc: test Finish function
304 */
305 HWTEST_F(GestureModelTestNg, GestureModelTestNg012, TestSize.Level1) {
306 GestureModelNG gestureModelNG;
307 gestureModelNG.Create(3, 2);
308
309 RefPtr<GestureProcessor> gestureProcessor;
310 gestureProcessor = NG::ViewStackProcessor::GetInstance()->GetOrCreateGestureProcessor();
311 auto tapGesture = AceType::MakeRefPtr<NG::TapGesture>(COUNT, FINGER_NUMBER);
__anone0b80b330402(GestureEvent& info) 312 auto onActionStart = [](GestureEvent& info) { return true; };
313 tapGesture->SetOnActionId(onActionStart);
314
315 auto gestureGroupNG = AceType::DynamicCast<NG::GestureGroup>(gestureProcessor->TopGestureNG());
316 std::vector<RefPtr<Gesture>> gestures;
317 gestures.push_back(tapGesture);
318 GestureGroup gestureGroup = GestureGroup(GestureMode::Sequence);
319 gestureGroup.gestures_ = gestures;
320 gestureProcessor->PushGestureNG(tapGesture);
321
322 const int nodeId = 10008;
323 auto frameNode = FrameNode::GetOrCreateFrameNode(V2::LOCATION_BUTTON_ETS_TAG, nodeId, nullptr);
324 NG::ViewStackProcessor::GetInstance()->Push(frameNode);
325 RefPtr<GestureEventHub> gestureEventHub;
326 gestureEventHub = NG::ViewStackProcessor::GetInstance()->GetMainFrameNodeGestureEventHub();
327 auto focusHub = NG::ViewStackProcessor::GetInstance()->GetOrCreateMainFrameNodeFocusHub();
328
329 gestureModelNG.Finish();
330 EXPECT_NE(gestureEventHub, nullptr);
331 EXPECT_NE(focusHub, nullptr);
332 EXPECT_FALSE(gestureEventHub->IsGestureEmpty());
333 EXPECT_NE(focusHub->GetOnClickCallback(), nullptr);
334 }
335
336 /**
337 * @tc.name: GestureModelTestNg013
338 * @tc.desc: test Finish function
339 */
340 HWTEST_F(GestureModelTestNg, GestureModelTestNg013, TestSize.Level1) {
341 GestureModelNG gestureModelNG;
342 gestureModelNG.Create(3, 2);
343
344 RefPtr<GestureProcessor> gestureProcessor;
345 gestureProcessor = NG::ViewStackProcessor::GetInstance()->GetOrCreateGestureProcessor();
346 auto tapGesture = AceType::MakeRefPtr<NG::TapGesture>(COUNT, FINGER_NUMBER);
347 tapGesture->SetOnActionId(nullptr);
348 gestureProcessor->PushGestureNG(tapGesture);
349
350 const int nodeId = 10008;
351 auto frameNode = FrameNode::GetOrCreateFrameNode(V2::LOCATION_BUTTON_ETS_TAG, nodeId, nullptr);
352 NG::ViewStackProcessor::GetInstance()->Push(frameNode);
353 RefPtr<GestureEventHub> gestureEventHub;
354 gestureEventHub = NG::ViewStackProcessor::GetInstance()->GetMainFrameNodeGestureEventHub();
355 auto focusHub = NG::ViewStackProcessor::GetInstance()->GetOrCreateMainFrameNodeFocusHub();
356
357 gestureModelNG.Finish();
358 EXPECT_NE(gestureEventHub, nullptr);
359 EXPECT_NE(focusHub, nullptr);
360 EXPECT_FALSE(gestureEventHub->IsGestureEmpty());
361 EXPECT_NE(focusHub->GetOnClickCallback(), nullptr);
362 }
363
364 /**
365 * @tc.name: GestureModelTestNg014
366 * @tc.desc: test Finish function
367 */
368 HWTEST_F(GestureModelTestNg, GestureModelTestNg014, TestSize.Level1) {
369 GestureModelNG gestureModelNG;
370 gestureModelNG.Create(3, 2);
371
372 RefPtr<GestureProcessor> gestureProcessor;
373 gestureProcessor = NG::ViewStackProcessor::GetInstance()->GetOrCreateGestureProcessor();
374 auto tapGesture = AceType::MakeRefPtr<NG::TapGesture>(COUNT, FINGER_NUMBER);
375 tapGesture->SetOnActionId(nullptr);
376
377 auto gestureGroupNG = AceType::DynamicCast<NG::GestureGroup>(gestureProcessor->TopGestureNG());
378 std::vector<RefPtr<Gesture>> gestures;
379 gestures.push_back(tapGesture);
380 GestureGroup gestureGroup = GestureGroup(GestureMode::Sequence);
381 gestureGroup.gestures_ = gestures;
382 gestureProcessor->PushGestureNG(tapGesture);
383
384 const int nodeId = 10008;
385 auto frameNode = FrameNode::GetOrCreateFrameNode(V2::LOCATION_BUTTON_ETS_TAG, nodeId, nullptr);
386 NG::ViewStackProcessor::GetInstance()->Push(frameNode);
387 RefPtr<GestureEventHub> gestureEventHub;
388 gestureEventHub = NG::ViewStackProcessor::GetInstance()->GetMainFrameNodeGestureEventHub();
389 auto focusHub = NG::ViewStackProcessor::GetInstance()->GetOrCreateMainFrameNodeFocusHub();
390
391 gestureModelNG.Finish();
392 EXPECT_NE(gestureEventHub, nullptr);
393 EXPECT_NE(focusHub, nullptr);
394 EXPECT_FALSE(gestureEventHub->IsGestureEmpty());
395 EXPECT_NE(focusHub->GetOnClickCallback(), nullptr);
396 }
397
398
399 /**
400 * @tc.name: GestureModelTestNg015
401 * @tc.desc: test SetOnGestureEvent function
402 */
403 HWTEST_F(GestureModelTestNg, GestureModelTestNg015, TestSize.Level1) {
404 GestureModelNG gestureModelNG;
405 gestureModelNG.Create(3, 2);
406 RefPtr<GestureProcessor> gestureProcessor;
407 gestureProcessor = NG::ViewStackProcessor::GetInstance()->GetOrCreateGestureProcessor();
408 auto tapGesture = AceType::MakeRefPtr<NG::TapGesture>(COUNT, FINGER_NUMBER);
409 gestureProcessor->PushGestureNG(tapGesture);
410
411 int32_t doneId = 0;
__anone0b80b330502(GestureEvent& info) 412 auto testFunc = [&doneId](GestureEvent& info) { ++doneId; };
413 gestureModelNG.SetOnGestureEvent(testFunc);
414
415 GestureEvent info;
416 auto gesture = gestureProcessor->TopGestureNG();
417 EXPECT_NE(gesture, nullptr);
418 EXPECT_NE((gesture->onActionCancelId_), nullptr);
419 (*(gesture->onActionCancelId_))(info);
420 EXPECT_EQ(doneId, 1);
421 }
422
423 /**
424 * @tc.name: GestureModelTestNg016
425 * @tc.desc: test SetOnActionFunc function
426 */
427 HWTEST_F(GestureModelTestNg, GestureModelTestNg016, TestSize.Level1) {
428 GestureModelNG gestureModelNG;
429 gestureModelNG.Create(3, 2);
430 RefPtr<GestureProcessor> gestureProcessor;
431 gestureProcessor = NG::ViewStackProcessor::GetInstance()->GetOrCreateGestureProcessor();
432 auto tapGesture = AceType::MakeRefPtr<NG::TapGesture>(COUNT, FINGER_NUMBER);
433 gestureProcessor->PushGestureNG(tapGesture);
434
435 int32_t doneId = 0;
__anone0b80b330602(GestureEvent& info) 436 auto testFunc = [&doneId](GestureEvent& info) { ++doneId; };
437
438 GestureEvent info;
439 auto gesture = gestureProcessor->TopGestureNG();
440
441 gestureModelNG.SetOnActionFunc(testFunc, Ace::GestureEventAction::ACTION);
442 (*(gesture->onActionId_))(info);
443 EXPECT_EQ(doneId, 1);
444
445 gestureModelNG.SetOnActionFunc(testFunc, Ace::GestureEventAction::START);
446 (*(gesture->onActionStartId_))(info);
447 EXPECT_EQ(doneId, 2);
448
449 gestureModelNG.SetOnActionFunc(testFunc, Ace::GestureEventAction::UPDATE);
450 (*(gesture->onActionUpdateId_))(info);
451 EXPECT_EQ(doneId, 3);
452
453 gestureModelNG.SetOnActionFunc(testFunc, Ace::GestureEventAction::END);
454 (*(gesture->onActionEndId_))(info);
455 EXPECT_EQ(doneId, 4);
456
457 gestureModelNG.SetOnActionFunc(testFunc, Ace::GestureEventAction::CANCEL);
458 EXPECT_EQ(doneId, 4);
459 }
460
461 /**
462 * @tc.name: GestureModelTestNg017
463 * @tc.desc: test panGestureModelNG.Create function
464 */
465 HWTEST_F(GestureModelTestNg, GestureModelTestNg017, TestSize.Level1) {
466 RefPtr<GestureProcessor> gestureProcessor;
467 gestureProcessor = NG::ViewStackProcessor::GetInstance()->GetOrCreateGestureProcessor();
468
469 PanGestureModelNG panGestureModelNG;
470 int32_t fingersNum = DEFAULT_PAN_FINGER;
471 PanDistanceMapDimension distanceMap = { { SourceTool::UNKNOWN, DEFAULT_PAN_DISTANCE } };
472 PanDirection panDirection;
473 panDirection.type = PanDirection::VERTICAL;
474 panGestureModelNG.Create(fingersNum, panDirection, distanceMap, false);
475 auto panGestureNG = AceType::DynamicCast<NG::PanGesture>(gestureProcessor->TopGestureNG());
476 EXPECT_EQ(panGestureNG->distanceMap_, distanceMap);
477 }
478
479 /**
480 * @tc.name: GestureModelTestNg018
481 * @tc.desc: test Finish function
482 */
483 HWTEST_F(GestureModelTestNg, GestureModelTestNg018, TestSize.Level1) {
484 GestureModelNG gestureModelNG;
485 gestureModelNG.Create(3, 2);
486
487 RefPtr<GestureProcessor> gestureProcessor;
488 gestureProcessor = NG::ViewStackProcessor::GetInstance()->GetOrCreateGestureProcessor();
489 auto tapGesture1 = AceType::MakeRefPtr<NG::TapGesture>(COUNT, FINGER_NUMBER);
__anone0b80b330702(GestureEvent& info) 490 auto onActionStart1 = [](GestureEvent& info) { return true; };
491 tapGesture1->SetOnActionId(onActionStart1);
492 auto tapGesture2 = AceType::MakeRefPtr<NG::TapGesture>(1, 1);
__anone0b80b330802(GestureEvent& info) 493 auto onActionStart2 = [](GestureEvent& info) { return true; };
494 tapGesture2->SetOnActionId(onActionStart2);
495
496 auto gestureGroupNG = AceType::DynamicCast<NG::GestureGroup>(gestureProcessor->TopGestureNG());
497 std::vector<RefPtr<Gesture>> gestures;
498 gestures.push_back(tapGesture2);
499 gestures.push_back(tapGesture1);
500 GestureGroup gestureGroup = GestureGroup(GestureMode::Sequence);
501 gestureGroup.gestures_ = gestures;
502 gestureProcessor->PushGestureNG(tapGesture1);
503
504 const int nodeId = 10008;
505 auto frameNode = FrameNode::GetOrCreateFrameNode(V2::LOCATION_BUTTON_ETS_TAG, nodeId, nullptr);
506 NG::ViewStackProcessor::GetInstance()->Push(frameNode);
507 RefPtr<GestureEventHub> gestureEventHub;
508 gestureEventHub = NG::ViewStackProcessor::GetInstance()->GetMainFrameNodeGestureEventHub();
509 auto focusHub = NG::ViewStackProcessor::GetInstance()->GetOrCreateMainFrameNodeFocusHub();
510
511 gestureModelNG.Finish();
512 EXPECT_NE(gestureEventHub, nullptr);
513 EXPECT_NE(focusHub, nullptr);
514 EXPECT_FALSE(gestureEventHub->IsGestureEmpty());
515 EXPECT_NE(focusHub->GetOnClickCallback(), nullptr);
516 }
517
518 /**
519 * @tc.name: GestureModelTestNg019
520 * @tc.desc: test Finish function
521 */
522 HWTEST_F(GestureModelTestNg, GestureModelTestNg019, TestSize.Level1) {
523 GestureModelNG gestureModelNG;
524 gestureModelNG.Create(3, 2);
525
526 RefPtr<GestureProcessor> gestureProcessor;
527 gestureProcessor = NG::ViewStackProcessor::GetInstance()->GetOrCreateGestureProcessor();
528 auto tapGesture1 = AceType::MakeRefPtr<NG::TapGesture>(COUNT, FINGER_NUMBER);
__anone0b80b330902(GestureEvent& info) 529 auto onActionStart = [](GestureEvent& info) { return true; };
530 tapGesture1->SetOnActionId(onActionStart);
531 auto tapGesture2 = AceType::MakeRefPtr<NG::TapGesture>(1, 1);
532 tapGesture2->SetOnActionId(nullptr);
533
534 auto gestureGroupNG = AceType::DynamicCast<NG::GestureGroup>(gestureProcessor->TopGestureNG());
535 std::vector<RefPtr<Gesture>> gestures;
536 gestures.push_back(tapGesture2);
537 gestures.push_back(tapGesture1);
538 GestureGroup gestureGroup = GestureGroup(GestureMode::Sequence);
539 gestureGroup.gestures_ = gestures;
540 gestureProcessor->PushGestureNG(tapGesture1);
541
542 const int nodeId = 10008;
543 auto frameNode = FrameNode::GetOrCreateFrameNode(V2::LOCATION_BUTTON_ETS_TAG, nodeId, nullptr);
544 NG::ViewStackProcessor::GetInstance()->Push(frameNode);
545 RefPtr<GestureEventHub> gestureEventHub;
546 gestureEventHub = NG::ViewStackProcessor::GetInstance()->GetMainFrameNodeGestureEventHub();
547 auto focusHub = NG::ViewStackProcessor::GetInstance()->GetOrCreateMainFrameNodeFocusHub();
548
549 gestureModelNG.Finish();
550 EXPECT_NE(gestureEventHub, nullptr);
551 EXPECT_NE(focusHub, nullptr);
552 EXPECT_FALSE(gestureEventHub->IsGestureEmpty());
553 EXPECT_NE(focusHub->GetOnClickCallback(), nullptr);
554 }
555 } // namespace OHOS::Ace::NG