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