• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022-2023 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include <optional>
17 #include <vector>
18 
19 #include "gtest/gtest.h"
20 
21 #define private public
22 #define protected public
23 
24 #include "base/memory/ace_type.h"
25 #include "base/memory/referenced.h"
26 #include "core/components_ng/base/view_stack_processor.h"
27 #include "core/components_ng/event/gesture_event_hub.h"
28 #include "core/components_ng/gestures/gesture_group.h"
29 #include "core/components_ng/gestures/gesture_referee.h"
30 #include "core/components_ng/gestures/long_press_gesture.h"
31 #include "core/components_ng/gestures/pan_gesture.h"
32 #include "core/components_ng/gestures/pinch_gesture.h"
33 #include "core/components_ng/gestures/recognizers/click_recognizer.h"
34 #include "core/components_ng/gestures/recognizers/exclusive_recognizer.h"
35 #include "core/components_ng/gestures/recognizers/gesture_recognizer.h"
36 #include "core/components_ng/gestures/recognizers/long_press_recognizer.h"
37 #include "core/components_ng/gestures/recognizers/multi_fingers_recognizer.h"
38 #include "core/components_ng/gestures/recognizers/pinch_recognizer.h"
39 #include "core/components_ng/gestures/recognizers/rotation_recognizer.h"
40 #include "core/components_ng/gestures/recognizers/swipe_recognizer.h"
41 #include "core/components_ng/gestures/rotation_gesture.h"
42 #include "core/components_ng/gestures/swipe_gesture.h"
43 #include "core/components_ng/gestures/tap_gesture.h"
44 #include "core/components_ng/layout/layout_property.h"
45 #include "core/components_ng/pattern/gesture/gesture_model_ng.h"
46 #include "core/components_ng/test/mock/render/mock_media_player.h"
47 #include "core/event/axis_event.h"
48 #include "core/event/key_event.h"
49 #include "core/pipeline_ng/test/mock/mock_pipeline_base.h"
50 
51 using namespace testing;
52 using namespace testing::ext;
53 
54 namespace OHOS::Ace::NG {
55 namespace {
56 constexpr int32_t FINGER_NUMBER = 5;
57 constexpr int32_t FINGER_NUMBER_OVER_MAX = 11;
58 constexpr int32_t SINGLE_FINGER_NUMBER = 1;
59 constexpr int32_t COUNT = 2;
60 constexpr int32_t TAPPED_COUNT = 1;
61 constexpr int32_t LONG_PRESS_DURATION = 3000;
62 constexpr double PINCH_GESTURE_DISTANCE = 100.0;
63 constexpr double ROTATION_GESTURE_ANGLE = 1.0;
64 constexpr double CLICK_MULTI_TAP_SLOP = 110.0;
65 constexpr double PI = 360.0;
66 constexpr double COMMON_VALUE_RANGE_CASE = 101.0;
67 constexpr double SPECIAL_VALUE_RANGE_CASE1 = 181.0;
68 constexpr double SPECIAL_VALUE_RANGE_CASE2 = -181.0;
69 constexpr double SWIPE_SPEED = 10.0;
70 constexpr double VERTICAL_ANGLE = 90.0;
71 constexpr double HORIZONTAL_ANGLE = 180.0;
72 constexpr int32_t DEFAULT_PAN_FINGER = 1;
73 constexpr Dimension DEFAULT_PAN_DISTANCE = 5.0_vp;
74 constexpr int32_t DEFAULT_SLIDE_FINGER = DEFAULT_PAN_FINGER;
75 constexpr double DEFAULT_SLIDE_SPEED = 100.0;
76 constexpr double PAN_DISTANCE = 1.0;
77 } // namespace
78 
79 class GesturesTestNg : public testing::Test {
80 public:
SetUpTestSuite()81     static void SetUpTestSuite()
82     {
83         MockPipelineBase::SetUp();
84     }
TearDownTestSuite()85     static void TearDownTestSuite()
86     {
87         MockPipelineBase::TearDown();
88     }
89 };
90 
91 /**
92  * @tc.name: GestureRecognizerTest001
93  * @tc.desc: Test ClickRecognizer function: OnAccepted OnRejected
94  * @tc.type: FUNC
95  */
96 HWTEST_F(GesturesTestNg, ClickRecognizerTest001, TestSize.Level1)
97 {
98     /**
99      * @tc.steps: step1. create ClickRecognizer.
100      */
101     ClickRecognizer clickRecognizer = ClickRecognizer(FINGER_NUMBER, COUNT);
102 
103     /**
104      * @tc.steps: step2. call OnAccepted function and compare result.
105      * @tc.steps: case1: onClick and remoteMessage is no
106      * @tc.expected: step2. result equals.
107      */
108     ClickCallback onClick;
109     clickRecognizer.onClick_ = onClick;
110     ClickCallback remoteMessage;
111     clickRecognizer.remoteMessage_ = remoteMessage;
112 
113     clickRecognizer.OnAccepted();
114     EXPECT_EQ(clickRecognizer.refereeState_, RefereeState::SUCCEED);
115 
116     /**
117      * @tc.steps: step2. call OnAccepted function and compare result.
118      * @tc.steps: case2: onClick and remoteMessage is yes, touchPoints is empty
119      * @tc.expected: step2. result equals.
120      */
__anona2ace5f30202(ClickInfo) 121     onClick = [](ClickInfo) {};
122     clickRecognizer.onClick_ = onClick;
123     clickRecognizer.touchPoints_.clear();
__anona2ace5f30302(ClickInfo) 124     remoteMessage = [](ClickInfo) {};
125     clickRecognizer.remoteMessage_ = remoteMessage;
126 
127     clickRecognizer.OnAccepted();
128     EXPECT_EQ(clickRecognizer.refereeState_, RefereeState::SUCCEED);
129 
130     /**
131      * @tc.steps: step2. call OnAccepted function and compare result.
132      * @tc.steps: case3: onClick and remoteMessage is yes, touchPoints is not empty
133      * @tc.expected: step2. result equals.
134      */
__anona2ace5f30402(ClickInfo) 135     onClick = [](ClickInfo) {};
136     clickRecognizer.onClick_ = onClick;
137     clickRecognizer.touchPoints_.clear();
__anona2ace5f30502(ClickInfo) 138     remoteMessage = [](ClickInfo) {};
139     clickRecognizer.remoteMessage_ = remoteMessage;
140     TouchEvent touchEvent;
141     clickRecognizer.touchPoints_[0] = touchEvent;
142 
143     clickRecognizer.OnAccepted();
144     EXPECT_EQ(clickRecognizer.refereeState_, RefereeState::SUCCEED);
145 
146     /**
147      * @tc.steps: step2. call OnAccepted function and compare result.
148      * @tc.steps: case4: onClick and remoteMessage is yes, touchPoints has tiltX and tiltY
149      * @tc.expected: step2. result equals.
150      */
__anona2ace5f30602(ClickInfo) 151     onClick = [](ClickInfo) {};
152     clickRecognizer.onClick_ = onClick;
153     clickRecognizer.touchPoints_.clear();
__anona2ace5f30702(ClickInfo) 154     remoteMessage = [](ClickInfo) {};
155     clickRecognizer.remoteMessage_ = remoteMessage;
156     touchEvent.tiltX = 0;
157     touchEvent.tiltY = 0;
158     clickRecognizer.touchPoints_[0] = touchEvent;
159 
160     clickRecognizer.OnAccepted();
161     EXPECT_EQ(clickRecognizer.refereeState_, RefereeState::SUCCEED);
162 
163     /**
164      * @tc.steps: step3. call OnRejected function and compare result.
165      * @tc.expected: step3. result equals.
166      */
167     clickRecognizer.OnRejected();
168     EXPECT_EQ(clickRecognizer.refereeState_, RefereeState::FAIL);
169 }
170 
171 /**
172  * @tc.name: GestureRecognizerTest002
173  * @tc.desc: Test ClickRecognizer function: HandleTouchMoveEvent
174  * @tc.type: FUNC
175  */
176 HWTEST_F(GesturesTestNg, ClickRecognizerTest002, TestSize.Level1)
177 {
178     /**
179      * @tc.steps: step1. create ClickRecognizer.
180      */
181     ClickRecognizer clickRecognizer = ClickRecognizer(FINGER_NUMBER, COUNT);
182 
183     /**
184      * @tc.steps: step2. call HandleTouchMoveEvent function and compare result.
185      * @tc.steps: case2: refereeState is SUCCESS,return
186      * @tc.expected: step2. result equals.
187      */
188     TouchEvent touchEvent;
189     clickRecognizer.refereeState_ = RefereeState::SUCCEED;
190     clickRecognizer.HandleTouchMoveEvent(touchEvent);
191     EXPECT_EQ(clickRecognizer.touchPoints_.size(), 0);
192 
193     /**
194      * @tc.steps: step2. call HandleTouchMoveEvent function and compare result.
195      * @tc.steps: case1: normal case
196      * @tc.expected: step2. result equals.
197      */
198     clickRecognizer.fingers_ = FINGER_NUMBER_OVER_MAX;
199     clickRecognizer.touchPoints_.clear();
200     clickRecognizer.touchPoints_[touchEvent.id] = touchEvent;
201     clickRecognizer.HandleTouchMoveEvent(touchEvent);
202     EXPECT_EQ(clickRecognizer.disposal_, GestureDisposal::NONE);
203 }
204 
205 /**
206  * @tc.name: GestureRecognizerTest003
207  * @tc.desc: Test ClickRecognizer function: ComputeFocusPoint
208  * @tc.type: FUNC
209  */
210 HWTEST_F(GesturesTestNg, ClickRecognizerTest003, TestSize.Level1)
211 {
212     /**
213      * @tc.steps: step1. create ClickRecognizer.
214      */
215     ClickRecognizer clickRecognizer = ClickRecognizer(FINGER_NUMBER, COUNT);
216 
217     /**
218      * @tc.steps: step2. call ComputeFocusPoint function and compare result.
219      * @tc.expected: step2. result equals.
220      */
221     TouchEvent touchEvent;
222     clickRecognizer.touchPoints_.clear();
223     clickRecognizer.touchPoints_[touchEvent.id] = touchEvent;
224     auto focusPoint = clickRecognizer.ComputeFocusPoint();
225     EXPECT_EQ(focusPoint.GetX(), 0);
226     EXPECT_EQ(focusPoint.GetY(), 0);
227 }
228 
229 /**
230  * @tc.name: GestureRecognizerTest004
231  * @tc.desc: Test ClickRecognizer function: ExceedSlop
232  * @tc.type: FUNC
233  */
234 HWTEST_F(GesturesTestNg, ClickRecognizerTest004, TestSize.Level1)
235 {
236     /**
237      * @tc.steps: step1. create ClickRecognizer.
238      */
239     ClickRecognizer clickRecognizer = ClickRecognizer(FINGER_NUMBER, COUNT);
240 
241     /**
242      * @tc.steps: step2. call ComputeFocusPoint function and compare result.
243      * @tc.steps: case1: not enter
244      * @tc.expected: step2. result equals.
245      */
246     TouchEvent touchEvent;
247     clickRecognizer.touchPoints_.clear();
248     clickRecognizer.touchPoints_[touchEvent.id] = touchEvent;
249     auto result = clickRecognizer.ExceedSlop();
250     EXPECT_EQ(result, false);
251 
252     /**
253      * @tc.steps: step2. call ComputeFocusPoint function and compare result.
254      * @tc.steps: case2: tappedCount_ > 0 && tappedCount_ < count_, distance >= TAP_SLOP
255      * @tc.expected: step2. result equals.
256      */
257     touchEvent.x = CLICK_MULTI_TAP_SLOP;
258     touchEvent.y = CLICK_MULTI_TAP_SLOP;
259     clickRecognizer.touchPoints_[touchEvent.id] = touchEvent;
260     clickRecognizer.tappedCount_ = TAPPED_COUNT;
261     clickRecognizer.count_ = COUNT;
262     result = clickRecognizer.ExceedSlop();
263     EXPECT_EQ(result, true);
264 
265     /**
266      * @tc.steps: step2. call ComputeFocusPoint function and compare result.
267      * @tc.steps: case3: tappedCount_ > 0 && tappedCount_ < count_, distance < TAP_SLOP
268      * @tc.expected: step2. result equals.
269      */
270     touchEvent.x = 0;
271     touchEvent.y = 0;
272     clickRecognizer.touchPoints_[touchEvent.id] = touchEvent;
273     clickRecognizer.tappedCount_ = TAPPED_COUNT;
274     clickRecognizer.count_ = COUNT;
275     result = clickRecognizer.ExceedSlop();
276     EXPECT_EQ(result, false);
277 
278     /**
279      * @tc.steps: step2. call ComputeFocusPoint function and compare result.
280      * @tc.steps: case4: tappedCount_ = count_ = 0
281      * @tc.expected: step2. result equals.
282      */
283     clickRecognizer.tappedCount_ = 0;
284     clickRecognizer.count_ = 0;
285     result = clickRecognizer.ExceedSlop();
286     EXPECT_EQ(result, false);
287 }
288 
289 /**
290  * @tc.name: GestureRecognizerTest005
291  * @tc.desc: Test ClickRecognizer function: ReconcileFrom
292  * @tc.type: FUNC
293  */
294 HWTEST_F(GesturesTestNg, ClickRecognizerTest005, TestSize.Level1)
295 {
296     /**
297      * @tc.steps: step1. create ClickRecognizer.
298      */
299     ClickRecognizer clickRecognizer = ClickRecognizer(FINGER_NUMBER, COUNT);
300     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
301 
302     /**
303      * @tc.steps: step2. call ReconcileFrom function and compare result.
304      * @tc.steps: case1: normal case
305      * @tc.expected: step2. result equals.
306      */
307     TouchEvent touchEvent;
308     clickRecognizer.touchPoints_.clear();
309     clickRecognizer.touchPoints_[touchEvent.id] = touchEvent;
310     auto result = clickRecognizer.ReconcileFrom(clickRecognizerPtr);
311     EXPECT_EQ(result, true);
312 
313     /**
314      * @tc.steps: step2. call ReconcileFrom function and compare result.
315      * @tc.steps: case2: recognizerPtr is nullptr
316      * @tc.expected: step2. result equals.
317      */
318     result = clickRecognizer.ReconcileFrom(nullptr);
319     EXPECT_EQ(result, false);
320 
321     /**
322      * @tc.steps: step2. call ReconcileFrom function and compare result.
323      * @tc.steps: case3: recognizerPtr count != count
324      * @tc.expected: step2. result equals.
325      */
326     clickRecognizerPtr->count_ = 1;
327     clickRecognizer.count_ = 0;
328     result = clickRecognizer.ReconcileFrom(clickRecognizerPtr);
329     EXPECT_EQ(result, false);
330 
331     /**
332      * @tc.steps: step2. call ReconcileFrom function and compare result.
333      * @tc.steps: case4: recognizerPtr count same, fingers not same
334      * @tc.expected: step2. result equals.
335      */
336     clickRecognizerPtr->count_ = clickRecognizer.count_;
337     clickRecognizerPtr->fingers_ = clickRecognizer.fingers_ + 1;
338     result = clickRecognizer.ReconcileFrom(clickRecognizerPtr);
339     EXPECT_EQ(result, false);
340 
341     /**
342      * @tc.steps: step2. call ReconcileFrom function and compare result.
343      * @tc.steps: case5: recognizerPtr count same, fingers same, priorityMask not same
344      * @tc.expected: step2. result equals.
345      */
346     clickRecognizerPtr->count_ = clickRecognizer.count_;
347     clickRecognizerPtr->fingers_ = clickRecognizer.fingers_;
348     clickRecognizer.priorityMask_ = GestureMask::End;
349     result = clickRecognizer.ReconcileFrom(clickRecognizerPtr);
350     EXPECT_EQ(result, false);
351 }
352 
353 /**
354  * @tc.name: GestureRecognizerTest006
355  * @tc.desc: Test ClickRecognizer function: HandleTouchDownEvent
356  * @tc.type: FUNC
357  */
358 HWTEST_F(GesturesTestNg, ClickRecognizerTest006, TestSize.Level1)
359 {
360     /**
361      * @tc.steps: step1. create ClickRecognizer.
362      */
363     ClickRecognizer clickRecognizer = ClickRecognizer(FINGER_NUMBER, COUNT);
364 
365     /**
366      * @tc.steps: step2. call HandleTouchDownEvent function and compare result.
367      * @tc.steps: case1: refereeState is SUCCESS,return
368      * @tc.expected: step2. result equals.
369      */
370     TouchEvent touchEvent;
371     clickRecognizer.refereeState_ = RefereeState::SUCCEED;
372     clickRecognizer.HandleTouchDownEvent(touchEvent);
373     EXPECT_EQ(clickRecognizer.touchPoints_.size(), 0);
374 
375     /**
376      * @tc.steps: step2. call HandleTouchDownEvent function and compare result.
377      * @tc.steps: case2: refereeState is PENDING, tappedCount_ = 1, fingers > PointsNum
378      * @tc.expected: step2. result equals.
379      */
380     clickRecognizer.refereeState_ = RefereeState::PENDING;
381     clickRecognizer.fingers_ = FINGER_NUMBER;
382     clickRecognizer.tappedCount_ = 1;
383     clickRecognizer.currentTouchPointsNum_ = 0;
384     clickRecognizer.HandleTouchDownEvent(touchEvent);
385     EXPECT_EQ(clickRecognizer.currentTouchPointsNum_, 1);
386     EXPECT_EQ(clickRecognizer.touchPoints_[touchEvent.id].id, touchEvent.id);
387 
388     /**
389      * @tc.steps: step2. call HandleTouchDownEvent function and compare result.
390      * @tc.steps: case3: refereeState is PENDING, tappedCount_ = 1, fingers = 1
391      * @tc.expected: step2. result equals.
392      */
393     clickRecognizer.refereeState_ = RefereeState::PENDING;
394     clickRecognizer.fingers_ = 1;
395     clickRecognizer.tappedCount_ = 1;
396     clickRecognizer.currentTouchPointsNum_ = 0;
397     clickRecognizer.HandleTouchDownEvent(touchEvent);
398     EXPECT_EQ(clickRecognizer.equalsToFingers_, true);
399 }
400 
401 /**
402  * @tc.name: GestureRecognizerTest011
403  * @tc.desc: Test ClickRecognizer function: HandleTouchUpEvent
404  * @tc.type: FUNC
405  */
406 HWTEST_F(GesturesTestNg, GestureRecognizerTest011, TestSize.Level1)
407 {
408     /**
409      * @tc.steps: step1. create ClickRecognizer.
410      */
411     ClickRecognizer clickRecognizer = ClickRecognizer(FINGER_NUMBER, COUNT);
412 
413     /**
414      * @tc.steps: step2. call HandleTouchUpEvent function and compare result.
415      * @tc.steps: case1: refereeState is SUCCESS,return
416      * @tc.expected: step2. result equals.
417      */
418     TouchEvent touchEvent;
419     clickRecognizer.currentTouchPointsNum_ = 0;
420     clickRecognizer.refereeState_ = RefereeState::SUCCEED;
421     clickRecognizer.currentFingers_ = FINGER_NUMBER;
422     clickRecognizer.HandleTouchUpEvent(touchEvent);
423     EXPECT_EQ(clickRecognizer.touchPoints_.size(), 0);
424 
425     /**
426      * @tc.steps: step2. call HandleTouchUpEvent function and compare result.
427      * @tc.steps: case2: equalsToFingers = true, currentTouchPointsNum = 1, tap != count
428      * @tc.expected: step2. result equals.
429      */
430     clickRecognizer.currentTouchPointsNum_ = 1;
431     clickRecognizer.equalsToFingers_ = true;
432     clickRecognizer.useCatchMode_ = false;
433     clickRecognizer.refereeState_ = RefereeState::PENDING;
434     clickRecognizer.currentFingers_ = FINGER_NUMBER;
435     clickRecognizer.HandleTouchUpEvent(touchEvent);
436     EXPECT_EQ(clickRecognizer.touchPoints_[touchEvent.id].id, touchEvent.id);
437 
438     /**
439      * @tc.steps: step2. call HandleTouchUpEvent function and compare result.
440      * @tc.steps: case3: equalsToFingers = true, currentTouchPointsNum = 1,
441      * @tc.steps: tap == count, useCatchMode_ = false
442      * @tc.expected: step2. result equals.
443      */
444     clickRecognizer.currentTouchPointsNum_ = 1;
445     clickRecognizer.equalsToFingers_ = true;
446     clickRecognizer.useCatchMode_ = false;
447     clickRecognizer.tappedCount_ = 0;
448     clickRecognizer.count_ = 0;
449     clickRecognizer.currentFingers_ = FINGER_NUMBER;
450     clickRecognizer.HandleTouchUpEvent(touchEvent);
451     EXPECT_EQ(clickRecognizer.touchPoints_[touchEvent.id].id, touchEvent.id);
452 
453     /**
454      * @tc.steps: step2. call HandleTouchUpEvent function and compare result.
455      * @tc.steps: case3: equalsToFingers = true, currentTouchPointsNum = fingers,
456      * @tc.expected: step2. result equals.
457      */
458     clickRecognizer.currentTouchPointsNum_ = FINGER_NUMBER;
459     clickRecognizer.fingers_ = FINGER_NUMBER;
460     clickRecognizer.equalsToFingers_ = true;
461     clickRecognizer.currentFingers_ = FINGER_NUMBER;
462     clickRecognizer.HandleTouchUpEvent(touchEvent);
463     EXPECT_EQ(clickRecognizer.equalsToFingers_, true);
464 
465     /**
466      * @tc.steps: step2. call HandleTouchUpEvent function and compare result.
467      * @tc.steps: case4: equalsToFingers = false, currentTouchPointsNum = 1,
468      * @tc.expected: step2. result equals.
469      */
470     clickRecognizer.currentTouchPointsNum_ = 1;
471     clickRecognizer.equalsToFingers_ = false;
472     clickRecognizer.currentFingers_ = FINGER_NUMBER;
473     clickRecognizer.HandleTouchUpEvent(touchEvent);
474     EXPECT_EQ(clickRecognizer.equalsToFingers_, false);
475 
476     /**
477      * @tc.steps: step2. call HandleTouchUpEvent function and compare result.
478      * @tc.steps: case5: equalsToFingers = false, currentTouchPointsNum = 0,
479      * @tc.expected: step2. result equals.
480      */
481     clickRecognizer.currentTouchPointsNum_ = 0;
482     clickRecognizer.equalsToFingers_ = false;
483     clickRecognizer.currentFingers_ = FINGER_NUMBER;
484     clickRecognizer.HandleTouchUpEvent(touchEvent);
485     EXPECT_EQ(clickRecognizer.equalsToFingers_, false);
486 
487     /**
488      * @tc.steps: step2. call HandleTouchUpEvent function and compare result.
489      * @tc.steps: case6: equalsToFingers = true, currentTouchPointsNum = 1,
490      * @tc.steps: tap == count, useCatchMode_ = false
491      * @tc.expected: step2. result equals.
492      */
493     clickRecognizer.currentTouchPointsNum_ = 1;
494     clickRecognizer.equalsToFingers_ = true;
495     clickRecognizer.useCatchMode_ = false;
496     clickRecognizer.tappedCount_ = -1;
497     clickRecognizer.count_ = 0;
498     clickRecognizer.currentFingers_ = FINGER_NUMBER;
499     clickRecognizer.HandleTouchUpEvent(touchEvent);
500     EXPECT_EQ(clickRecognizer.touchPoints_[touchEvent.id].id, touchEvent.id);
501 }
502 
503 /**
504  * @tc.name: ClickRecognizerHandleTouchUpEventTest101
505  * @tc.desc: Test ClickRecognizer function: HandleTouchUpEvent
506  * @tc.type: FUNC
507  */
508 HWTEST_F(GesturesTestNg, ClickRecognizerHandleTouchUpEventTest001, TestSize.Level1)
509 {
510     /**
511      * @tc.steps: step1. create ClickRecognizer.
512      */
513     ClickRecognizer clickRecognizer = ClickRecognizer(FINGER_NUMBER, COUNT);
514 
515     /**
516      * @tc.steps: step2. call HandleTouchUpEvent function and compare result.
517      * @tc.steps: case1: refereeState is SUCCESS,return
518      * @tc.expected: step2. result equals.
519      */
520     TouchEvent touchEvent;
521     clickRecognizer.currentTouchPointsNum_ = 0;
522     clickRecognizer.refereeState_ = RefereeState::SUCCEED;
523     clickRecognizer.currentTouchPointsNum_ = clickRecognizer.fingers_;
524     clickRecognizer.HandleTouchUpEvent(touchEvent);
525     EXPECT_EQ(clickRecognizer.touchPoints_.size(), 0);
526 
527     /**
528      * @tc.steps: step2. call HandleTouchUpEvent function and compare result.
529      * @tc.steps: case2: equalsToFingers = true, currentTouchPointsNum = 1, tap != count
530      * @tc.expected: step2. result equals.
531      */
532     clickRecognizer.currentTouchPointsNum_ = 1;
533     clickRecognizer.equalsToFingers_ = true;
534     clickRecognizer.useCatchMode_ = false;
535     clickRecognizer.refereeState_ = RefereeState::PENDING;
536     clickRecognizer.currentTouchPointsNum_ = clickRecognizer.fingers_;
537     clickRecognizer.HandleTouchUpEvent(touchEvent);
538     EXPECT_TRUE(clickRecognizer.equalsToFingers_);
539 
540     /**
541      * @tc.steps: step2. call HandleTouchUpEvent function and compare result.
542      * @tc.steps: case3: equalsToFingers = true, currentTouchPointsNum = 1,
543      * @tc.steps: tap == count, useCatchMode_ = false
544      * @tc.expected: step2. result equals.
545      */
546     clickRecognizer.currentTouchPointsNum_ = 1;
547     clickRecognizer.equalsToFingers_ = true;
548     clickRecognizer.useCatchMode_ = false;
549     clickRecognizer.tappedCount_ = 0;
550     clickRecognizer.count_ = 0;
551     clickRecognizer.currentTouchPointsNum_ = clickRecognizer.fingers_;
552     clickRecognizer.HandleTouchUpEvent(touchEvent);
553     EXPECT_TRUE(clickRecognizer.equalsToFingers_);
554 
555     /**
556      * @tc.steps: step2. call HandleTouchUpEvent function and compare result.
557      * @tc.steps: case3: equalsToFingers = true, currentTouchPointsNum = fingers,
558      * @tc.expected: step2. result equals.
559      */
560     clickRecognizer.currentTouchPointsNum_ = FINGER_NUMBER;
561     clickRecognizer.fingers_ = FINGER_NUMBER;
562     clickRecognizer.equalsToFingers_ = true;
563     clickRecognizer.currentTouchPointsNum_ = clickRecognizer.fingers_;
564     clickRecognizer.HandleTouchUpEvent(touchEvent);
565     EXPECT_EQ(clickRecognizer.equalsToFingers_, true);
566 
567     /**
568      * @tc.steps: step2. call HandleTouchUpEvent function and compare result.
569      * @tc.steps: case4: equalsToFingers = false, currentTouchPointsNum = 1,
570      * @tc.expected: step2. result equals.
571      */
572     clickRecognizer.currentTouchPointsNum_ = 1;
573     clickRecognizer.equalsToFingers_ = false;
574     clickRecognizer.currentTouchPointsNum_ = clickRecognizer.fingers_;
575     clickRecognizer.HandleTouchUpEvent(touchEvent);
576     EXPECT_EQ(clickRecognizer.equalsToFingers_, false);
577 
578     /**
579      * @tc.steps: step2. call HandleTouchUpEvent function and compare result.
580      * @tc.steps: case5: equalsToFingers = false, currentTouchPointsNum = 0,
581      * @tc.expected: step2. result equals.
582      */
583     clickRecognizer.currentTouchPointsNum_ = 0;
584     clickRecognizer.equalsToFingers_ = false;
585     clickRecognizer.currentTouchPointsNum_ = clickRecognizer.fingers_;
586     clickRecognizer.HandleTouchUpEvent(touchEvent);
587     EXPECT_EQ(clickRecognizer.equalsToFingers_, false);
588 
589     /**
590      * @tc.steps: step2. call HandleTouchUpEvent function and compare result.
591      * @tc.steps: case6: equalsToFingers = true, currentTouchPointsNum = 1,
592      * @tc.steps: tap == count, useCatchMode_ = false
593      * @tc.expected: step2. result equals.
594      */
595     clickRecognizer.currentTouchPointsNum_ = 1;
596     clickRecognizer.equalsToFingers_ = true;
597     clickRecognizer.useCatchMode_ = false;
598     clickRecognizer.tappedCount_ = -1;
599     clickRecognizer.count_ = 0;
600     clickRecognizer.currentTouchPointsNum_ = clickRecognizer.fingers_;
601     clickRecognizer.HandleTouchUpEvent(touchEvent);
602     EXPECT_EQ(clickRecognizer.equalsToFingers_, true);
603 }
604 
605 /**
606  * @tc.name: ClickRecognizerHandleTouchUpEventTest102
607  * @tc.desc: Test ClickRecognizer function: HandleTouchUpEvent
608  * @tc.type: FUNC
609  */
610 HWTEST_F(GesturesTestNg, ClickRecognizerHandleTouchUpEventTest002, TestSize.Level1)
611 {
612     /**
613      * @tc.steps: step1. create ClickRecognizer.
614      */
615     ClickRecognizer clickRecognizer = ClickRecognizer(FINGER_NUMBER, COUNT);
616 
617     /**
618      * @tc.steps: step2. call HandleTouchUpEvent function and compare result.
619      * @tc.steps: case1: refereeState is SUCCESS,return
620      * @tc.expected: step2. result equals.
621      */
622     TouchEvent touchEvent;
623     clickRecognizer.currentTouchPointsNum_ = 0;
624     clickRecognizer.refereeState_ = RefereeState::SUCCEED;
625     clickRecognizer.currentFingers_ = FINGER_NUMBER;
626     clickRecognizer.currentTouchPointsNum_ = clickRecognizer.fingers_;
627     clickRecognizer.HandleTouchUpEvent(touchEvent);
628 
629     clickRecognizer.currentTouchPointsNum_ = 1;
630     clickRecognizer.equalsToFingers_ = true;
631     clickRecognizer.useCatchMode_ = false;
632     clickRecognizer.refereeState_ = RefereeState::PENDING;
633     clickRecognizer.currentFingers_ = FINGER_NUMBER;
634     clickRecognizer.currentTouchPointsNum_ = clickRecognizer.fingers_;
635     clickRecognizer.HandleTouchUpEvent(touchEvent);
636 
637     clickRecognizer.currentTouchPointsNum_ = 1;
638     clickRecognizer.equalsToFingers_ = true;
639     clickRecognizer.useCatchMode_ = false;
640     clickRecognizer.tappedCount_ = 0;
641     clickRecognizer.count_ = 0;
642     clickRecognizer.currentFingers_ = FINGER_NUMBER;
643     clickRecognizer.currentTouchPointsNum_ = clickRecognizer.fingers_;
644     clickRecognizer.HandleTouchUpEvent(touchEvent);
645     EXPECT_EQ(clickRecognizer.touchPoints_[touchEvent.id].id, touchEvent.id);
646 
647     /**
648      * @tc.steps: step2. call HandleTouchUpEvent function and compare result.
649      * @tc.steps: case3: equalsToFingers = true, currentTouchPointsNum = fingers,
650      * @tc.expected: step2. result equals.
651      */
652     clickRecognizer.currentTouchPointsNum_ = FINGER_NUMBER;
653     clickRecognizer.fingers_ = FINGER_NUMBER;
654     clickRecognizer.equalsToFingers_ = true;
655     clickRecognizer.currentFingers_ = FINGER_NUMBER;
656     clickRecognizer.currentTouchPointsNum_ = clickRecognizer.fingers_;
657 
658     clickRecognizer.currentTouchPointsNum_ = 1;
659     clickRecognizer.equalsToFingers_ = false;
660     clickRecognizer.currentFingers_ = FINGER_NUMBER;
661     clickRecognizer.currentTouchPointsNum_ = clickRecognizer.fingers_;
662 
663     clickRecognizer.currentTouchPointsNum_ = 0;
664     clickRecognizer.equalsToFingers_ = false;
665     clickRecognizer.currentFingers_ = FINGER_NUMBER;
666     clickRecognizer.currentTouchPointsNum_ = clickRecognizer.fingers_;
667     clickRecognizer.HandleTouchUpEvent(touchEvent);
668     EXPECT_EQ(clickRecognizer.equalsToFingers_, false);
669 
670     /**
671      * @tc.steps: step2. call HandleTouchUpEvent function and compare result.
672      * @tc.steps: case6: equalsToFingers = true, currentTouchPointsNum = 1,
673      * @tc.steps: tap == count, useCatchMode_ = false
674      * @tc.expected: step2. result equals.
675      */
676     clickRecognizer.currentTouchPointsNum_ = 1;
677     clickRecognizer.equalsToFingers_ = true;
678     clickRecognizer.useCatchMode_ = false;
679     clickRecognizer.tappedCount_ = -1;
680     clickRecognizer.count_ = 0;
681     clickRecognizer.currentFingers_ = FINGER_NUMBER;
682     clickRecognizer.currentTouchPointsNum_ = clickRecognizer.fingers_;
683     clickRecognizer.HandleTouchUpEvent(touchEvent);
684     EXPECT_EQ(clickRecognizer.touchPoints_[touchEvent.id].id, touchEvent.id);
685 }
686 
687 /**
688  * @tc.name: ExclusiveRecognizerHandleRejectDisposalTest002
689  * @tc.desc: Test ExclusiveRecognizer HandleRejectDisposal function
690  */
691 HWTEST_F(GesturesTestNg, ExclusiveRecognizerHandleRejectDisposalTest002, TestSize.Level1)
692 {
693     /**
694      * @tc.steps: step1. create GestureScope and clickRecognizer.
695      */
696     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
697 
698     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
699     RefPtr<ExclusiveRecognizer> exclusiveRecognizerPtr = AceType::MakeRefPtr<ExclusiveRecognizer>(recognizers);
700 
701     /**
702      * @tc.steps: step2. call Adjudicate function and compare result
703      * @tc.steps: case1: refereeState is FAIL
704      * @tc.steps: expected equal
705      */
706     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED_BLOCKED;
707     exclusiveRecognizerPtr->HandleRejectDisposal(clickRecognizerPtr);
708     EXPECT_EQ(exclusiveRecognizerPtr->recognizers_.size(), 0);
709 }
710 
711 /**
712  * @tc.name: ExclusiveRecognizerHandleRejectDisposalTest003
713  * @tc.desc: Test ExclusiveRecognizer HandleRejectDisposal function
714  */
715 HWTEST_F(GesturesTestNg, ExclusiveRecognizerHandleRejectDisposalTest003, TestSize.Level1)
716 {
717     /**
718      * @tc.steps: step1. create GestureScope and clickRecognizer.
719      */
720     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
721 
722     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
723     RefPtr<ExclusiveRecognizer> exclusiveRecognizerPtr = AceType::MakeRefPtr<ExclusiveRecognizer>(recognizers);
724 
725     /**
726      * @tc.steps: step2. call Adjudicate function and compare result
727      * @tc.steps: case1: refereeState is FAIL
728      * @tc.steps: expected equal
729      */
730     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
731     exclusiveRecognizerPtr->HandleRejectDisposal(clickRecognizerPtr);
732     EXPECT_EQ(exclusiveRecognizerPtr->recognizers_.size(), 0);
733 }
734 
735 /**
736  * @tc.name: ExclusiveRecognizerHandleRejectDisposalTest005
737  * @tc.desc: Test ExclusiveRecognizer HandleRejectDisposal function
738  */
739 HWTEST_F(GesturesTestNg, ExclusiveRecognizerHandleRejectDisposalTest005, TestSize.Level1)
740 {
741     /**
742      * @tc.steps: step1. create GestureScope and clickRecognizer.
743      */
744     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
745 
746     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
747     RefPtr<ExclusiveRecognizer> exclusiveRecognizerPtr = AceType::MakeRefPtr<ExclusiveRecognizer>(recognizers);
748 
749     /**
750      * @tc.steps: step2. call Adjudicate function and compare result
751      * @tc.steps: case1: refereeState is FAIL
752      * @tc.steps: expected equal
753      */
754     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
755     exclusiveRecognizerPtr->refereeState_ = RefereeState::SUCCEED_BLOCKED;
756     exclusiveRecognizerPtr->HandleRejectDisposal(clickRecognizerPtr);
757     EXPECT_EQ(exclusiveRecognizerPtr->recognizers_.size(), 0);
758 }
759 
760 /**
761  * @tc.name: ExclusiveRecognizerHandleRejectDisposalTest006
762  * @tc.desc: Test ExclusiveRecognizer HandleRejectDisposal function
763  */
764 HWTEST_F(GesturesTestNg, ExclusiveRecognizerHandleRejectDisposalTest006, TestSize.Level1)
765 {
766     /**
767      * @tc.steps: step1. create GestureScope and clickRecognizer.
768      */
769     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
770 
771     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
772     RefPtr<ExclusiveRecognizer> exclusiveRecognizerPtr = AceType::MakeRefPtr<ExclusiveRecognizer>(recognizers);
773 
774     /**
775      * @tc.steps: step2. call Adjudicate function and compare result
776      * @tc.steps: case1: refereeState is FAIL
777      * @tc.steps: expected equal
778      */
779     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
780     exclusiveRecognizerPtr->refereeState_ = RefereeState::PENDING;
781     exclusiveRecognizerPtr->HandleRejectDisposal(clickRecognizerPtr);
782     EXPECT_EQ(exclusiveRecognizerPtr->recognizers_.size(), 0);
783 }
784 
785 /**
786  * @tc.name: ExclusiveRecognizerHandlePendingDisposalTest001
787  * @tc.desc: Test ExclusiveRecognizer HandlePendingDisposal function
788  */
789 HWTEST_F(GesturesTestNg, ExclusiveRecognizerHandlePendingDisposalTest001, TestSize.Level1)
790 {
791     /**
792      * @tc.steps: step1. create GestureScope and clickRecognizer.
793      */
794     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
795 
796     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
797     RefPtr<ClickRecognizer> clickRecognizerPtr2 = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
798     clickRecognizerPtr2->refereeState_ = RefereeState::PENDING;
799     recognizers.insert(recognizers.end(), clickRecognizerPtr2);
800     RefPtr<ExclusiveRecognizer> exclusiveRecognizerPtr = AceType::MakeRefPtr<ExclusiveRecognizer>(recognizers);
801 
802     /**
803      * @tc.steps: step2. call Adjudicate function and compare result
804      * @tc.steps: case1: refereeState is FAIL
805      * @tc.steps: expected equal
806      */
807     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED_BLOCKED;
808     exclusiveRecognizerPtr->refereeState_ = RefereeState::SUCCEED_BLOCKED;
809     exclusiveRecognizerPtr->HandlePendingDisposal(clickRecognizerPtr);
810     EXPECT_EQ(exclusiveRecognizerPtr->recognizers_.size(), 1);
811 }
812 
813 /**
814  * @tc.name: ExclusiveRecognizerHandleAcceptDisposalTest001
815  * @tc.desc: Test ExclusiveRecognizer HandleAcceptDisposal function
816  */
817 HWTEST_F(GesturesTestNg, ExclusiveRecognizerHandleAcceptDisposalTest001, TestSize.Level1)
818 {
819     /**
820      * @tc.steps: step1. create GestureScope and clickRecognizer.
821      */
822     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
823 
824     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
825     RefPtr<ClickRecognizer> clickRecognizerPtr2 = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
826     clickRecognizerPtr2->refereeState_ = RefereeState::PENDING;
827     recognizers.insert(recognizers.end(), clickRecognizerPtr2);
828     RefPtr<ExclusiveRecognizer> exclusiveRecognizerPtr = AceType::MakeRefPtr<ExclusiveRecognizer>(recognizers);
829 
830     /**
831      * @tc.steps: step2. call Adjudicate function and compare result
832      * @tc.steps: case1: refereeState is FAIL
833      * @tc.steps: expected equal
834      */
835     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED_BLOCKED;
836     exclusiveRecognizerPtr->refereeState_ = RefereeState::SUCCEED_BLOCKED;
837     exclusiveRecognizerPtr->HandleAcceptDisposal(clickRecognizerPtr);
838     EXPECT_EQ(exclusiveRecognizerPtr->recognizers_.size(), 1);
839 }
840 
841 /**
842  * @tc.name: ExclusiveRecognizerHandlePendingDisposalTest002
843  * @tc.desc: Test ExclusiveRecognizer HandlePendingDisposal function
844  */
845 HWTEST_F(GesturesTestNg, ExclusiveRecognizerHandlePendingDisposalTest002, TestSize.Level1)
846 {
847     /**
848      * @tc.steps: step1. create GestureScope and clickRecognizer.
849      */
850     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
851 
852     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
853     RefPtr<ClickRecognizer> clickRecognizerPtr2 = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
854     clickRecognizerPtr2->refereeState_ = RefereeState::SUCCEED_BLOCKED;
855     recognizers.insert(recognizers.end(), clickRecognizerPtr2);
856     RefPtr<ExclusiveRecognizer> exclusiveRecognizerPtr = AceType::MakeRefPtr<ExclusiveRecognizer>(recognizers);
857 
858     /**
859      * @tc.steps: step2. call Adjudicate function and compare result
860      * @tc.steps: case1: refereeState is FAIL
861      * @tc.steps: expected equal
862      */
863     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED_BLOCKED;
864     exclusiveRecognizerPtr->refereeState_ = RefereeState::SUCCEED_BLOCKED;
865     exclusiveRecognizerPtr->HandlePendingDisposal(clickRecognizerPtr);
866     EXPECT_EQ(exclusiveRecognizerPtr->recognizers_.size(), 1);
867 }
868 
869 /**
870  * @tc.name: ExclusiveRecognizerHandleAcceptDisposalTest002
871  * @tc.desc: Test ExclusiveRecognizer HandleAcceptDisposal function
872  */
873 HWTEST_F(GesturesTestNg, ExclusiveRecognizerHandleAcceptDisposalTest002, TestSize.Level1)
874 {
875     /**
876      * @tc.steps: step1. create GestureScope and clickRecognizer.
877      */
878     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
879 
880     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
881     RefPtr<ClickRecognizer> clickRecognizerPtr2 = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
882     clickRecognizerPtr2->refereeState_ = RefereeState::SUCCEED_BLOCKED;
883     recognizers.insert(recognizers.end(), clickRecognizerPtr2);
884     RefPtr<ExclusiveRecognizer> exclusiveRecognizerPtr = AceType::MakeRefPtr<ExclusiveRecognizer>(recognizers);
885 
886     /**
887      * @tc.steps: step2. call Adjudicate function and compare result
888      * @tc.steps: case1: refereeState is FAIL
889      * @tc.steps: expected equal
890      */
891     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED_BLOCKED;
892     exclusiveRecognizerPtr->refereeState_ = RefereeState::SUCCEED_BLOCKED;
893     exclusiveRecognizerPtr->HandleAcceptDisposal(clickRecognizerPtr);
894     EXPECT_EQ(exclusiveRecognizerPtr->recognizers_.size(), 1);
895 }
896 
897 /**
898  * @tc.name: ExclusiveRecognizerHandleRejectDisposalTest008
899  * @tc.desc: Test ExclusiveRecognizer HandleRejectDisposal function
900  */
901 HWTEST_F(GesturesTestNg, ExclusiveRecognizerHandleRejectDisposalTest008, TestSize.Level1)
902 {
903     /**
904      * @tc.steps: step1. create GestureScope and clickRecognizer.
905      */
906     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
907 
908     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
909     RefPtr<ClickRecognizer> clickRecognizerPtr2 = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
910     clickRecognizerPtr2->refereeState_ = RefereeState::PENDING_BLOCKED;
911     recognizers.insert(recognizers.end(), clickRecognizerPtr2);
912     RefPtr<ExclusiveRecognizer> exclusiveRecognizerPtr = AceType::MakeRefPtr<ExclusiveRecognizer>(recognizers);
913 
914     /**
915      * @tc.steps: step2. call Adjudicate function and compare result
916      * @tc.steps: case1: refereeState is FAIL
917      * @tc.steps: expected equal
918      */
919     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
920     exclusiveRecognizerPtr->refereeState_ = RefereeState::PENDING;
921     exclusiveRecognizerPtr->HandleRejectDisposal(clickRecognizerPtr);
922     EXPECT_EQ(exclusiveRecognizerPtr->recognizers_.size(), 1);
923 
924     /**
925      * @tc.steps: step2. call Adjudicate function and compare result
926      * @tc.steps: case1: refereeState is FAIL
927      * @tc.steps: expected equal
928      */
929     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
930     exclusiveRecognizerPtr->refereeState_ = RefereeState::PENDING;
931     clickRecognizerPtr2->refereeState_ = RefereeState::SUCCEED_BLOCKED;
932     exclusiveRecognizerPtr->HandleRejectDisposal(clickRecognizerPtr);
933     EXPECT_EQ(exclusiveRecognizerPtr->recognizers_.size(), 1);
934 }
935 
936 /**
937  * @tc.name: ParallelRecognizerOnRejectedTest001
938  * @tc.desc: Test ParallelRecognizer function: OnAccepted OnRejected OnPending OnBlock
939  * @tc.type: FUNC
940  */
941 HWTEST_F(GesturesTestNg, ParallelRecognizerOnRejectedTest001, TestSize.Level1)
942 {
943     /**
944      * @tc.steps: step1. create ParallelRecognizer.
945      */
946     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
947     RefPtr<ClickRecognizer> clickRecognizerPtr2 = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
948     clickRecognizerPtr2->refereeState_ = RefereeState::PENDING_BLOCKED;
949     recognizers.insert(recognizers.end(), clickRecognizerPtr2);
950     ParallelRecognizer parallelRecognizer = ParallelRecognizer(recognizers);
951 
952     /**
953      * @tc.steps: step2. call OnRejected function and compare result.
954      * @tc.expected: step2. result equals.
955      */
956     parallelRecognizer.OnRejected();
957     EXPECT_EQ(parallelRecognizer.refereeState_, RefereeState::FAIL);
958 
959     /**
960      * @tc.steps: step2. call OnRejected function and compare result.
961      * @tc.expected: step2. result equals.
962      */
963     parallelRecognizer.OnRejected();
964     clickRecognizerPtr2->refereeState_ = RefereeState::FAIL;
965     EXPECT_EQ(parallelRecognizer.refereeState_, RefereeState::FAIL);
966 }
967 
968 /**
969  * @tc.name: ParallelRecognizerOnRejectedTest002
970  * @tc.desc: Test ParallelRecognizer function: OnAccepted OnRejected OnPending OnBlock
971  * @tc.type: FUNC
972  */
973 HWTEST_F(GesturesTestNg, ParallelRecognizerOnRejectedTest002, TestSize.Level1)
974 {
975     /**
976      * @tc.steps: step1. create ParallelRecognizer.
977      */
978     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
979     RefPtr<ClickRecognizer> clickRecognizerPtr2 = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
980     clickRecognizerPtr2->refereeState_ = RefereeState::PENDING_BLOCKED;
981 
982 
983     std::vector<RefPtr<NGGestureRecognizer>> recognizers2 = {};
984     RefPtr<ExclusiveRecognizer> exclusiveRecognizerPtr = AceType::MakeRefPtr<ExclusiveRecognizer>(recognizers2);
985     exclusiveRecognizerPtr->refereeState_ = RefereeState::PENDING_BLOCKED;
986     recognizers.insert(recognizers.end(), exclusiveRecognizerPtr);
987     ParallelRecognizer parallelRecognizer = ParallelRecognizer(recognizers);
988 
989     /**
990      * @tc.steps: step2. call OnRejected function and compare result.
991      * @tc.expected: step2. result equals.
992      */
993     parallelRecognizer.OnRejected();
994     EXPECT_EQ(parallelRecognizer.refereeState_, RefereeState::FAIL);
995 
996     /**
997      * @tc.steps: step2. call OnRejected function and compare result.
998      * @tc.expected: step2. result equals.
999      */
1000     parallelRecognizer.OnRejected();
1001     exclusiveRecognizerPtr->refereeState_ = RefereeState::FAIL;
1002     EXPECT_EQ(parallelRecognizer.refereeState_, RefereeState::FAIL);
1003 }
1004 
1005 /**
1006  * @tc.name: SequencedRecognizerBatchAdjudicateTest001
1007  * @tc.desc: Test SequencedRecognizer function: BatchAdjudicate, and GestureDisposal
1008  * @tc.type: FUNC
1009  */
1010 HWTEST_F(GesturesTestNg, SequencedRecognizerBatchAdjudicateTest001, TestSize.Level1)
1011 {
1012     /**
1013      * @tc.steps: step1. create SequencedRecognizer.
1014      */
1015     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
1016     SequencedRecognizer sequencedRecognizer = SequencedRecognizer(recognizers);
1017     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
1018 
1019     /**
1020      * @tc.steps: step2. call GestureDisposal function and compare result.
1021      * @tc.steps: case1: disposal: ACCEPT, refereeState: SUCCEED
1022      * @tc.expected: step2. result equals.
1023      */
1024     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
1025     sequencedRecognizer.refereeState_ = RefereeState::PENDING;
1026     sequencedRecognizer.currentIndex_ = -9;
1027     sequencedRecognizer.BatchAdjudicate(clickRecognizerPtr, GestureDisposal::ACCEPT);
1028     EXPECT_NE(clickRecognizerPtr->refereeState_, RefereeState::PENDING);
1029 
1030     /**
1031      * @tc.steps: step2. call GestureDisposal function and compare result.
1032      * @tc.steps: case2: disposal: ACCEPT, refereeState: PENDING, currentIndex = 0
1033      * @tc.expected: step2. result equals.
1034      */
1035     sequencedRecognizer.refereeState_ = RefereeState::PENDING;
1036     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
1037     sequencedRecognizer.currentIndex_ = -10;
1038     sequencedRecognizer.BatchAdjudicate(clickRecognizerPtr, GestureDisposal::ACCEPT);
1039     EXPECT_NE(clickRecognizerPtr->refereeState_, RefereeState::PENDING);
1040 
1041     /**
1042      * @tc.steps: step2. call GestureDisposal function and compare result.
1043      * @tc.steps: case3: disposal: REJECT, refereeState: FAIL
1044      * @tc.expected: step2. result equals.
1045      */
1046     sequencedRecognizer.refereeState_ = RefereeState::FAIL;
1047     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
1048     sequencedRecognizer.currentIndex_ = -9;
1049     sequencedRecognizer.BatchAdjudicate(clickRecognizerPtr, GestureDisposal::REJECT);
1050     EXPECT_NE(clickRecognizerPtr->refereeState_, RefereeState::PENDING);
1051 
1052     /**
1053      * @tc.steps: step2. call GestureDisposal function and compare result.
1054      * @tc.steps: case4: disposal: REJECT, refereeState: SUCCESS, refereeState_ = FAIL
1055      * @tc.expected: step2. result equals.
1056      */
1057     sequencedRecognizer.refereeState_ = RefereeState::FAIL;
1058     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
1059     sequencedRecognizer.currentIndex_ = -10;
1060     sequencedRecognizer.BatchAdjudicate(clickRecognizerPtr, GestureDisposal::REJECT);
1061     EXPECT_NE(clickRecognizerPtr->refereeState_, RefereeState::PENDING);
1062 }
1063 
1064 /**
1065  * @tc.name: GestureRecognizerHandleTouchMoveEventTest001
1066  * @tc.desc: Test ClickRecognizer function: HandleTouchMoveEvent
1067  * @tc.type: FUNC
1068  */
1069 HWTEST_F(GesturesTestNg, GestureRecognizerHandleTouchMoveEventTest001, TestSize.Level1)
1070 {
1071     /**
1072      * @tc.steps: step1. create ClickRecognizer.
1073      */
1074     ClickRecognizer clickRecognizer = ClickRecognizer(FINGER_NUMBER, COUNT);
1075 
1076     /**
1077      * @tc.steps: step2. call HandleTouchUpEvent function and compare result.
1078      * @tc.steps: case1: refereeState is SUCCESS,return
1079      * @tc.expected: step2. result equals.
1080      */
1081     TouchEvent touchEvent;
1082     clickRecognizer.currentTouchPointsNum_ = 0;
1083     clickRecognizer.refereeState_ = RefereeState::SUCCEED;
1084     clickRecognizer.currentFingers_ = FINGER_NUMBER;
1085     clickRecognizer.HandleTouchMoveEvent(touchEvent);
1086     EXPECT_EQ(clickRecognizer.touchPoints_.size(), 0);
1087 }
1088 
1089 /**
1090  * @tc.name: GestureRecognizerHandleOverdueDeadlineTest001
1091  * @tc.desc: Test ClickRecognizer function: HandleOverdueDeadline
1092  * @tc.type: FUNC
1093  */
1094 HWTEST_F(GesturesTestNg, GestureRecognizerHandleOverdueDeadlineTest001, TestSize.Level1)
1095 {
1096     /**
1097      * @tc.steps: step1. create ClickRecognizer.
1098      */
1099     ClickRecognizer clickRecognizer = ClickRecognizer(FINGER_NUMBER, COUNT);
1100 
1101     /**
1102      * @tc.steps: step2. call HandleTouchUpEvent function and compare result.
1103      * @tc.steps: case1: refereeState is SUCCESS,return
1104      * @tc.expected: step2. result equals.
1105      */
1106     TouchEvent touchEvent;
1107     clickRecognizer.currentTouchPointsNum_ = FINGER_NUMBER;
1108     clickRecognizer.refereeState_ = RefereeState::SUCCEED;
1109     clickRecognizer.currentFingers_ = FINGER_NUMBER;
1110     clickRecognizer.tappedCount_ = FINGER_NUMBER;
1111     clickRecognizer.count_ = FINGER_NUMBER;
1112     clickRecognizer.HandleOverdueDeadline();
1113     EXPECT_EQ(clickRecognizer.touchPoints_.size(), 0);
1114 }
1115 
1116 /**
1117  * @tc.name: GestureRecognizerTest008
1118  * @tc.desc: Test ClickRecognizer function: HandleTouchCancelEvent
1119  * @tc.type: FUNC
1120  */
1121 HWTEST_F(GesturesTestNg, ClickRecognizerTest008, TestSize.Level1)
1122 {
1123     /**
1124      * @tc.steps: step1. create ClickRecognizer.
1125      */
1126     ClickRecognizer clickRecognizer = ClickRecognizer(FINGER_NUMBER, COUNT);
1127 
1128     /**
1129      * @tc.steps: step2. call HandleTouchUpEvent function and compare result.
1130      * @tc.steps: case1: refereeState is SUCCESS,return
1131      * @tc.expected: step2. result equals.
1132      */
1133     TouchEvent touchEvent;
1134     clickRecognizer.currentTouchPointsNum_ = 0;
1135     clickRecognizer.refereeState_ = RefereeState::SUCCEED;
1136     clickRecognizer.HandleTouchCancelEvent(touchEvent);
1137     EXPECT_EQ(clickRecognizer.touchPoints_.size(), 0);
1138 
1139     clickRecognizer.refereeState_ = RefereeState::FAIL;
1140 }
1141 
1142 /**
1143  * @tc.name: GestureRecognizerTest009
1144  * @tc.desc: Test ClickRecognizer function: SendCallbackMsg
1145  * @tc.type: FUNC
1146  */
1147 HWTEST_F(GesturesTestNg, ClickRecognizerTest009, TestSize.Level1)
1148 {
1149     /**
1150      * @tc.steps: step1. create ClickRecognizer.
1151      */
1152     ClickRecognizer clickRecognizer = ClickRecognizer(FINGER_NUMBER, COUNT);
1153 
1154     /**
1155      * @tc.steps: step2. call SendCallbackMsg function and compare result.
1156      * @tc.steps: case1: onAction is no, *onAction is no
1157      * @tc.expected: step2. result equals.
1158      */
1159     std::unique_ptr<GestureEventFunc> onAction;
1160     clickRecognizer.SendCallbackMsg(onAction);
1161     EXPECT_EQ(clickRecognizer.touchPoints_.size(), 0);
1162 
1163     /**
1164      * @tc.steps: step2. call SendCallbackMsg function and compare result.
1165      * @tc.steps: case2: onAction is yes, *onAction is no
1166      * @tc.expected: step2. result equals.
1167      */
1168     onAction = std::make_unique<GestureEventFunc>();
1169     clickRecognizer.SendCallbackMsg(onAction);
1170     EXPECT_EQ(clickRecognizer.touchPoints_.size(), 0);
1171 
1172     /**
1173      * @tc.steps: step2. call SendCallbackMsg function and compare result.
1174      * @tc.steps: case3: onAction is yes, *onAction is yes, touchEvent is empty
1175      * @tc.expected: step2. result equals.
1176      */
__anona2ace5f30802(GestureEvent) 1177     onAction = std::make_unique<GestureEventFunc>([](GestureEvent) {});
1178     clickRecognizer.SendCallbackMsg(onAction);
1179     EXPECT_EQ(clickRecognizer.touchPoints_.size(), 0);
1180 
1181     /**
1182      * @tc.steps: step2. call SendCallbackMsg function and compare result.
1183      * @tc.steps: case4: touchEvent is not empty, have no X and Y
1184      * @tc.expected: step2. result equals.
1185      */
1186     TouchEvent touchEvent;
1187     clickRecognizer.touchPoints_[touchEvent.id] = touchEvent;
1188     clickRecognizer.SendCallbackMsg(onAction);
1189     EXPECT_EQ(clickRecognizer.touchPoints_.size(), 1);
1190 
1191     /**
1192      * @tc.steps: step2. call SendCallbackMsg function and compare result.
1193      * @tc.steps: case4: touchEvent is not empty, have no X and Y
1194      * @tc.expected: step2. result equals.
1195      */
1196     touchEvent.tiltX = 0.0f;
1197     touchEvent.tiltY = 0.0f;
1198     clickRecognizer.touchPoints_[touchEvent.id] = touchEvent;
1199     clickRecognizer.SendCallbackMsg(onAction);
1200     EXPECT_EQ(clickRecognizer.touchPoints_.size(), 1);
1201 }
1202 
1203 /**
1204  * @tc.name: GestureRecognizerTest010
1205  * @tc.desc: Test ClickRecognizer function: HandleTouchDownEvent
1206  * @tc.type: FUNC
1207  */
1208 HWTEST_F(GesturesTestNg, ClickRecognizerTest010, TestSize.Level1)
1209 {
1210     /**
1211      * @tc.steps: step1. create ClickRecognizer.
1212      */
1213     ClickRecognizer clickRecognizer = ClickRecognizer(FINGER_NUMBER, COUNT);
1214     TouchEvent touchEvent;
1215 
1216     /**
1217      * @tc.steps: step2. call HandleTouchDownEvent function and compare result.
1218      * @tc.steps: case1: event.sourceType == TOUCH
1219      * @tc.expected: step2. result equals.
1220      */
1221     clickRecognizer.refereeState_ = RefereeState::PENDING;
1222     clickRecognizer.fingers_ = FINGER_NUMBER;
1223     clickRecognizer.tappedCount_ = 1;
1224     clickRecognizer.currentTouchPointsNum_ = 0;
1225     touchEvent.sourceType = SourceType::TOUCH;
1226     clickRecognizer.HandleTouchDownEvent(touchEvent);
1227     EXPECT_EQ(clickRecognizer.currentTouchPointsNum_, 1);
1228     EXPECT_EQ(clickRecognizer.touchPoints_[touchEvent.id].id, touchEvent.id);
1229 
1230     /**
1231      * @tc.steps: step2. call HandleTouchDownEvent function and compare result.
1232      * @tc.steps: case2: event.sourceType == MOUSE
1233      * @tc.expected: step2. result equals.
1234      */
1235     touchEvent.sourceType = SourceType::MOUSE;
1236     clickRecognizer.HandleTouchDownEvent(touchEvent);
1237     EXPECT_EQ(clickRecognizer.touchPoints_[touchEvent.id].id, touchEvent.id);
1238 
1239     /**
1240      * @tc.steps: step2. call HandleTouchDownEvent function and compare result.
1241      * @tc.steps: case3: event.sourceType == TOUCH_PAD
1242      * @tc.expected: step2. result equals.
1243      */
1244     touchEvent.sourceType = SourceType::TOUCH_PAD;
1245     clickRecognizer.HandleTouchDownEvent(touchEvent);
1246     EXPECT_EQ(clickRecognizer.touchPoints_[touchEvent.id].id, touchEvent.id);
1247 
1248     /**
1249      * @tc.steps: step2. call HandleTouchDownEvent function and compare result.
1250      * @tc.step4: case3: event.sourceType == OTHER
1251      * @tc.expected: step2. result equals.
1252      */
1253     touchEvent.sourceType = SourceType::KEYBOARD;
1254     clickRecognizer.HandleTouchDownEvent(touchEvent);
1255     EXPECT_EQ(clickRecognizer.touchPoints_[touchEvent.id].id, touchEvent.id);
1256 }
1257 
1258 /**
1259  * @tc.name: ExclusiveRecognizerTest001
1260  * @tc.desc: Test ExclusiveRecognizer function: OnAccepted OnRejected OnPending OnBlocked
1261  * @tc.type: FUNC
1262  */
1263 HWTEST_F(GesturesTestNg, ExclusiveRecognizerTest001, TestSize.Level1)
1264 {
1265     /**
1266      * @tc.steps: step1. create ExclusiveRecognizer.
1267      */
1268     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
1269     ExclusiveRecognizer exclusiveRecognizer = ExclusiveRecognizer(recognizers);
1270     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
1271     RefPtr<ClickRecognizer> clickRecognizerPtrNotSame = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
1272 
1273     /**
1274      * @tc.steps: step2. call OnAccepted function and compare result.
1275      * @tc.steps: case1: no active, no recognizers
1276      * @tc.expected: step2. result equals.
1277      */
1278     exclusiveRecognizer.OnAccepted();
1279     EXPECT_EQ(exclusiveRecognizer.refereeState_, RefereeState::SUCCEED);
1280 
1281     /**
1282      * @tc.steps: step2. call OnAccepted function and compare result.
1283      * @tc.steps: case2: has active, recognizers has nullptr
1284      * @tc.expected: step2. result equals.
1285      */
1286     exclusiveRecognizer.activeRecognizer_ = clickRecognizerPtr;
1287     exclusiveRecognizer.recognizers_.push_back(nullptr);
1288     exclusiveRecognizer.OnAccepted();
1289     EXPECT_EQ(exclusiveRecognizer.refereeState_, RefereeState::SUCCEED);
1290 
1291     /**
1292      * @tc.steps: step2. call OnAccepted function and compare result.
1293      * @tc.steps: case3: has active, recognizers has ptr not same
1294      * @tc.expected: step2. result equals.
1295      */
1296     exclusiveRecognizer.activeRecognizer_ = clickRecognizerPtr;
1297     exclusiveRecognizer.recognizers_.clear();
1298     exclusiveRecognizer.recognizers_.push_back(clickRecognizerPtrNotSame);
1299     exclusiveRecognizer.OnAccepted();
1300     EXPECT_EQ(exclusiveRecognizer.refereeState_, RefereeState::SUCCEED);
1301 
1302     /**
1303      * @tc.steps: step2. call OnAccepted function and compare result.
1304      * @tc.steps: case4: has active, recognizers has ptr same
1305      * @tc.expected: step2. result equals.
1306      */
1307     exclusiveRecognizer.activeRecognizer_ = clickRecognizerPtr;
1308     exclusiveRecognizer.recognizers_.clear();
1309     exclusiveRecognizer.recognizers_.push_back(clickRecognizerPtr);
1310     exclusiveRecognizer.OnAccepted();
1311     EXPECT_EQ(exclusiveRecognizer.refereeState_, RefereeState::SUCCEED);
1312 
1313     /**
1314      * @tc.steps: step3. call OnRejected function and compare result.
1315      * @tc.steps: case1: no recognizers
1316      * @tc.expected: step3. result equals.
1317      */
1318     exclusiveRecognizer.recognizers_.clear();
1319     exclusiveRecognizer.OnRejected();
1320     EXPECT_EQ(exclusiveRecognizer.refereeState_, RefereeState::SUCCEED);
1321 
1322     /**
1323      * @tc.steps: step3. call OnRejected function and compare result.
1324      * @tc.steps: case2: recognizers has nullptr
1325      * @tc.expected: step3. result equals.
1326      */
1327     exclusiveRecognizer.recognizers_.clear();
1328     exclusiveRecognizer.recognizers_.push_back(nullptr);
1329     exclusiveRecognizer.OnRejected();
1330     EXPECT_EQ(exclusiveRecognizer.refereeState_, RefereeState::SUCCEED);
1331 
1332     /**
1333      * @tc.steps: step3. call OnRejected function and compare result.
1334      * @tc.steps: case3: recognizers has ptr, referee is not FAIL
1335      * @tc.expected: step3. result equals.
1336      */
1337     exclusiveRecognizer.recognizers_.clear();
1338     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED;
1339     exclusiveRecognizer.recognizers_.push_back(clickRecognizerPtr);
1340     exclusiveRecognizer.OnRejected();
1341     EXPECT_EQ(exclusiveRecognizer.refereeState_, RefereeState::SUCCEED);
1342 
1343     /**
1344      * @tc.steps: step3. call OnRejected function and compare result.
1345      * @tc.steps: case4: recognizers has ptr, referee is FAIL
1346      * @tc.expected: step3. result equals.
1347      */
1348     exclusiveRecognizer.recognizers_.clear();
1349     clickRecognizerPtr->refereeState_ = RefereeState::FAIL;
1350     exclusiveRecognizer.recognizers_.push_back(clickRecognizerPtr);
1351     exclusiveRecognizer.OnRejected();
1352     EXPECT_EQ(exclusiveRecognizer.refereeState_, RefereeState::SUCCEED);
1353 }
1354 
1355 /**
1356  * @tc.name: ExclusiveRecognizerTest002
1357  * @tc.desc: Test ExclusiveRecognizer function: HandleEvent OnResetStatus
1358  * @tc.type: FUNC
1359  */
1360 HWTEST_F(GesturesTestNg, ExclusiveRecognizerTest002, TestSize.Level1)
1361 {
1362     /**
1363      * @tc.steps: step1. create ExclusiveRecognizer.
1364      */
1365     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
1366     ExclusiveRecognizer exclusiveRecognizer = ExclusiveRecognizer(recognizers);
1367 
1368     /**
1369      * @tc.steps: step2. create touchEvent and call HandleEvent function and compare result.
1370      * @tc.steps: case1: active is nullptr, recognizers is empty
1371      * @tc.expected: step2. result equals.
1372      */
1373     bool result = false;
1374     TouchEvent touchEvent;
1375     touchEvent.type = TouchType::MOVE;
1376     result = exclusiveRecognizer.HandleEvent(touchEvent);
1377     EXPECT_EQ(result, true);
1378     touchEvent.type = TouchType::DOWN;
1379     result = exclusiveRecognizer.HandleEvent(touchEvent);
1380     EXPECT_EQ(result, true);
1381     touchEvent.type = TouchType::UP;
1382     result = exclusiveRecognizer.HandleEvent(touchEvent);
1383     EXPECT_EQ(result, true);
1384     touchEvent.type = TouchType::CANCEL;
1385     result = exclusiveRecognizer.HandleEvent(touchEvent);
1386     EXPECT_EQ(result, true);
1387     touchEvent.type = TouchType::UNKNOWN;
1388     result = exclusiveRecognizer.HandleEvent(touchEvent);
1389     EXPECT_EQ(result, true);
1390 
1391     /**
1392      * @tc.steps: step2. create touchEvent and call HandleEvent function and compare result.
1393      * @tc.steps: case2: active is not nullptr, checkTouchId is false
1394      * @tc.expected: step2. result equals.
1395      */
1396     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
1397     exclusiveRecognizer.activeRecognizer_ = clickRecognizerPtr;
1398     touchEvent.type = TouchType::DOWN;
1399     result = exclusiveRecognizer.HandleEvent(touchEvent);
1400     EXPECT_EQ(result, true);
1401 
1402     /**
1403      * @tc.steps: step2. create touchEvent and call HandleEvent function and compare result.
1404      * @tc.steps: case3: active is not nullptr, checkTouchId is true
1405      * @tc.expected: step2. result equals.
1406      */
1407     clickRecognizerPtr->touchPoints_[touchEvent.id] = touchEvent;
1408     exclusiveRecognizer.activeRecognizer_ = clickRecognizerPtr;
1409     result = exclusiveRecognizer.HandleEvent(touchEvent);
1410     EXPECT_EQ(result, true);
1411 
1412     /**
1413      * @tc.steps: step2. create touchEvent and call HandleEvent function and compare result.
1414      * @tc.steps: case4: active is nullptr, recognizers have nullptr
1415      * @tc.expected: step2. result equals.
1416      */
1417     exclusiveRecognizer.activeRecognizer_ = nullptr;
1418     exclusiveRecognizer.recognizers_.clear();
1419     exclusiveRecognizer.recognizers_.push_back(nullptr);
1420     result = exclusiveRecognizer.HandleEvent(touchEvent);
1421     EXPECT_EQ(result, true);
1422 
1423     /**
1424      * @tc.steps: step2. create touchEvent and call HandleEvent function and compare result.
1425      * @tc.steps: case5: active is nullptr, recognizers have ptr, ptr not check
1426      * @tc.expected: step2. result equals.
1427      */
1428     clickRecognizerPtr->touchPoints_.clear();
1429     exclusiveRecognizer.recognizers_.clear();
1430     exclusiveRecognizer.recognizers_.push_back(clickRecognizerPtr);
1431     result = exclusiveRecognizer.HandleEvent(touchEvent);
1432     EXPECT_EQ(result, true);
1433 
1434     /**
1435      * @tc.steps: step2. create touchEvent and call HandleEvent function and compare result.
1436      * @tc.steps: case6: active is nullptr, recognizers have ptr, ptr check
1437      * @tc.expected: step2. result equals.
1438      */
1439     clickRecognizerPtr->touchPoints_.clear();
1440     clickRecognizerPtr->touchPoints_[touchEvent.id] = touchEvent;
1441     exclusiveRecognizer.recognizers_.clear();
1442     exclusiveRecognizer.recognizers_.push_back(clickRecognizerPtr);
1443     result = exclusiveRecognizer.HandleEvent(touchEvent);
1444     EXPECT_EQ(result, true);
1445 }
1446 
1447 /**
1448  * @tc.name: ExclusiveRecognizerTest003
1449  * @tc.desc: Test ExclusiveRecognizer function: CheckNeedBlocked
1450  * @tc.type: FUNC
1451  */
1452 HWTEST_F(GesturesTestNg, ExclusiveRecognizerTest003, TestSize.Level1)
1453 {
1454     /**
1455      * @tc.steps: step1. create ExclusiveRecognizer.
1456      */
1457     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
1458     ExclusiveRecognizer exclusiveRecognizer = ExclusiveRecognizer(recognizers);
1459 
1460     /**
1461      * @tc.steps: step2. call CheckNeedBlocked function and compare result.
1462      * @tc.steps: case1: recognizers is empty
1463      * @tc.expected: step2. result equals.
1464      */
1465     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
1466     auto result = exclusiveRecognizer.CheckNeedBlocked(clickRecognizerPtr);
1467     EXPECT_EQ(result, false);
1468 
1469     /**
1470      * @tc.steps: step2. call CheckNeedBlocked function and compare result.
1471      * @tc.steps: case2: recognizers is not empty, child == recognizer
1472      * @tc.expected: step2. result equals.
1473      */
1474     exclusiveRecognizer.recognizers_.clear();
1475     exclusiveRecognizer.recognizers_.push_back(clickRecognizerPtr);
1476     result = exclusiveRecognizer.CheckNeedBlocked(clickRecognizerPtr);
1477     EXPECT_EQ(result, false);
1478 
1479     /**
1480      * @tc.steps: step2. call CheckNeedBlocked function and compare result.
1481      * @tc.steps: case3: recognizers is not empty, child is nullptr
1482      * @tc.expected: step2. result equals.
1483      */
1484     exclusiveRecognizer.recognizers_.clear();
1485     exclusiveRecognizer.recognizers_.push_back(nullptr);
1486     result = exclusiveRecognizer.CheckNeedBlocked(clickRecognizerPtr);
1487     EXPECT_EQ(result, false);
1488 
1489     /**
1490      * @tc.steps: step2. call CheckNeedBlocked function and compare result.
1491      * @tc.steps: case3: recognizers is not empty, child is ptr, refeeState not PENDING
1492      * @tc.expected: step2. result equals.
1493      */
1494     RefPtr<ClickRecognizer> clickRecognizerPtrNotSame = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
1495     clickRecognizerPtrNotSame->refereeState_ = RefereeState::SUCCEED;
1496     exclusiveRecognizer.recognizers_.clear();
1497     exclusiveRecognizer.recognizers_.push_back(clickRecognizerPtrNotSame);
1498     result = exclusiveRecognizer.CheckNeedBlocked(clickRecognizerPtr);
1499     EXPECT_EQ(result, false);
1500 
1501     /**
1502      * @tc.steps: step2. call CheckNeedBlocked function and compare result.
1503      * @tc.steps: case4: recognizers is not empty, child is ptr, refeeState PENDING
1504      * @tc.expected: step2. result equals.
1505      */
1506     clickRecognizerPtrNotSame->refereeState_ = RefereeState::PENDING;
1507     exclusiveRecognizer.recognizers_.clear();
1508     exclusiveRecognizer.recognizers_.push_back(clickRecognizerPtrNotSame);
1509     result = exclusiveRecognizer.CheckNeedBlocked(clickRecognizerPtr);
1510     EXPECT_EQ(result, true);
1511 }
1512 
1513 /**
1514  * @tc.name: ExclusiveRecognizerTest004
1515  * @tc.desc: Test ExclusiveRecognizer function: UnBlockGesture
1516  * @tc.type: FUNC
1517  */
1518 HWTEST_F(GesturesTestNg, ExclusiveRecognizerTest004, TestSize.Level1)
1519 {
1520     /**
1521      * @tc.steps: step1. create ExclusiveRecognizer.
1522      */
1523     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
1524     ExclusiveRecognizer exclusiveRecognizer = ExclusiveRecognizer(recognizers);
1525 
1526     /**
1527      * @tc.steps: step2. call UnBlockGesture function and compare result.
1528      * @tc.expected: step2. result equals.
1529      */
1530     auto result = exclusiveRecognizer.UnBlockGesture();
1531     EXPECT_EQ(result, nullptr);
1532 
1533     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
1534     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED_BLOCKED;
1535     exclusiveRecognizer.recognizers_.push_back(clickRecognizerPtr);
1536     result = exclusiveRecognizer.UnBlockGesture();
1537     EXPECT_EQ(result, true);
1538 }
1539 
1540 /**
1541  * @tc.name: ExclusiveRecognizerTest005
1542  * @tc.desc: Test ExclusiveRecognizer function: BatchAdjudicate, and GestureDisposal
1543  * @tc.type: FUNC
1544  */
1545 HWTEST_F(GesturesTestNg, ExclusiveRecognizerTest005, TestSize.Level1)
1546 {
1547     /**
1548      * @tc.steps: step1. create ExclusiveRecognizer.
1549      */
1550     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
1551     ExclusiveRecognizer exclusiveRecognizer = ExclusiveRecognizer(recognizers);
1552     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
1553 
1554     /**
1555      * @tc.steps: step2. call GestureDisposal function and compare result.
1556      * @tc.steps: case1: refereeState_ is SUCCESS, return
1557      * @tc.expected: step2. result equals.
1558      */
1559     exclusiveRecognizer.refereeState_ = RefereeState::SUCCEED;
1560     exclusiveRecognizer.BatchAdjudicate(clickRecognizerPtr, GestureDisposal::ACCEPT);
1561     EXPECT_EQ(exclusiveRecognizer.activeRecognizer_, nullptr);
1562 
1563     /**
1564      * @tc.steps: step2. call GestureDisposal function and compare result.
1565      * @tc.steps: case2: GestureDisposal::ACCEPT, recognizer is SUCCESS
1566      * @tc.expected: step2. result equals.
1567      */
1568     exclusiveRecognizer.refereeState_ = RefereeState::PENDING;
1569     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED;
1570     exclusiveRecognizer.BatchAdjudicate(clickRecognizerPtr, GestureDisposal::ACCEPT);
1571     EXPECT_EQ(exclusiveRecognizer.activeRecognizer_, nullptr);
1572 
1573     /**
1574      * @tc.steps: step2. call GestureDisposal function and compare result.
1575      * @tc.steps: case3: GestureDisposal::PENDING, recognizer is PENDING
1576      * @tc.expected: step2. result equals.
1577      */
1578     exclusiveRecognizer.refereeState_ = RefereeState::PENDING;
1579     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
1580     exclusiveRecognizer.BatchAdjudicate(clickRecognizerPtr, GestureDisposal::PENDING);
1581     EXPECT_EQ(exclusiveRecognizer.activeRecognizer_, nullptr);
1582 
1583     /**
1584      * @tc.steps: step2. call GestureDisposal function and compare result.
1585      * @tc.steps: case4: GestureDisposal::REJECT, recognizer is FAIL
1586      * @tc.expected: step2. result equals.
1587      */
1588     exclusiveRecognizer.refereeState_ = RefereeState::PENDING;
1589     clickRecognizerPtr->refereeState_ = RefereeState::FAIL;
1590     exclusiveRecognizer.BatchAdjudicate(clickRecognizerPtr, GestureDisposal::NONE);
1591     EXPECT_EQ(exclusiveRecognizer.activeRecognizer_, nullptr);
1592 
1593     /**
1594      * @tc.steps: step2. call GestureDisposal function and compare result.
1595      * @tc.steps: case4: GestureDisposal::REJECT, recognizer is FAIL
1596      * @tc.expected: step2. result equals.
1597      */
1598     exclusiveRecognizer.refereeState_ = RefereeState::PENDING;
1599     clickRecognizerPtr->refereeState_ = RefereeState::FAIL;
1600     exclusiveRecognizer.BatchAdjudicate(clickRecognizerPtr, GestureDisposal::REJECT);
1601     EXPECT_EQ(exclusiveRecognizer.activeRecognizer_, nullptr);
1602 }
1603 
1604 /**
1605  * @tc.name: ExclusiveRecognizerTest006
1606  * @tc.desc: Test ExclusiveRecognizer function: ReconcileFrom
1607  * @tc.type: FUNC
1608  */
1609 HWTEST_F(GesturesTestNg, ExclusiveRecognizerTest006, TestSize.Level1)
1610 {
1611     /**
1612      * @tc.steps: step1. create ClickRecognizer.
1613      */
1614     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
1615     ExclusiveRecognizer exclusiveRecognizer = ExclusiveRecognizer(recognizers);
1616     RefPtr<ExclusiveRecognizer> exclusiveRecognizerPtr = AceType::MakeRefPtr<ExclusiveRecognizer>(recognizers);
1617 
1618     /**
1619      * @tc.steps: step2. call ReconcileFrom function and compare result.
1620      * @tc.steps: case1: normal case
1621      * @tc.expected: step2. result equals.
1622      */
1623     auto result = exclusiveRecognizer.ReconcileFrom(exclusiveRecognizerPtr);
1624     EXPECT_EQ(result, true);
1625 
1626     /**
1627      * @tc.steps: step2. call ReconcileFrom function and compare result.
1628      * @tc.steps: case2: recognizerPtr is nullptr
1629      * @tc.expected: step2. result equals.
1630      */
1631     result = exclusiveRecognizer.ReconcileFrom(nullptr);
1632     EXPECT_EQ(result, false);
1633 
1634     /**
1635      * @tc.steps: step2. call ReconcileFrom function and compare result.
1636      * @tc.steps: case3: recognizerPtr size not same
1637      * @tc.expected: step2. result equals.
1638      */
1639     exclusiveRecognizer.recognizers_.push_back(nullptr);
1640     result = exclusiveRecognizer.ReconcileFrom(exclusiveRecognizerPtr);
1641     EXPECT_EQ(result, false);
1642 
1643     /**
1644      * @tc.steps: step2. call ReconcileFrom function and compare result.
1645      * @tc.steps: case4: recognizerPtr size not same, priorityMask not same
1646      * @tc.expected: step2. result equals.
1647      */
1648     exclusiveRecognizer.priorityMask_ = GestureMask::End;
1649     result = exclusiveRecognizer.ReconcileFrom(exclusiveRecognizerPtr);
1650     EXPECT_EQ(result, false);
1651 
1652     /**
1653      * @tc.steps: step2. call ReconcileFrom function and compare result.
1654      * @tc.steps: case5: recognizerPtr size same, priorityMask not same
1655      * @tc.expected: step2. result equals.
1656      */
1657     exclusiveRecognizer.recognizers_.clear();
1658     exclusiveRecognizerPtr->recognizers_.clear();
1659     result = exclusiveRecognizer.ReconcileFrom(exclusiveRecognizerPtr);
1660     EXPECT_EQ(result, false);
1661 
1662     /**
1663      * @tc.steps: step2. call ReconcileFrom function and compare result.
1664      * @tc.steps: case6: recognizerPtr same, child is nullptr
1665      * @tc.expected: step2. result equals.
1666      */
1667     exclusiveRecognizer.priorityMask_ = exclusiveRecognizerPtr->priorityMask_;
1668     exclusiveRecognizer.recognizers_.clear();
1669     exclusiveRecognizer.recognizers_.push_back(nullptr);
1670     exclusiveRecognizerPtr->recognizers_.clear();
1671     exclusiveRecognizerPtr->recognizers_.push_back(nullptr);
1672     result = exclusiveRecognizer.ReconcileFrom(exclusiveRecognizerPtr);
1673     EXPECT_EQ(result, false);
1674 
1675     /**
1676      * @tc.steps: step2. call ReconcileFrom function and compare result.
1677      * @tc.steps: case6: recognizerPtr same, child is nullptr
1678      * @tc.expected: step2. result equals.
1679      */
1680     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
1681     exclusiveRecognizer.priorityMask_ = exclusiveRecognizerPtr->priorityMask_;
1682     exclusiveRecognizer.recognizers_.clear();
1683     exclusiveRecognizer.recognizers_.push_back(clickRecognizerPtr);
1684     exclusiveRecognizerPtr->recognizers_.clear();
1685     exclusiveRecognizerPtr->recognizers_.push_back(clickRecognizerPtr);
1686     result = exclusiveRecognizer.ReconcileFrom(exclusiveRecognizerPtr);
1687     EXPECT_EQ(result, true);
1688 
1689     /**
1690      * @tc.steps: step2. call ReconcileFrom function and compare result.
1691      * @tc.steps: case6: recognizerPtr same, child is nullptr
1692      * @tc.expected: step2. result equals.
1693      */
1694     RefPtr<ClickRecognizer> clickRecognizerPtrNotSame =
1695         AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER - 1, COUNT - 1);
1696     exclusiveRecognizer.priorityMask_ = exclusiveRecognizerPtr->priorityMask_;
1697     exclusiveRecognizer.recognizers_.clear();
1698     exclusiveRecognizer.recognizers_.push_back(clickRecognizerPtr);
1699     exclusiveRecognizerPtr->recognizers_.clear();
1700     exclusiveRecognizerPtr->recognizers_.push_back(clickRecognizerPtrNotSame);
1701     result = exclusiveRecognizer.ReconcileFrom(exclusiveRecognizerPtr);
1702     EXPECT_EQ(result, false);
1703 }
1704 
1705 /**
1706  * @tc.name: ExclusiveRecognizerTest007
1707  * @tc.desc: Test ExclusiveRecognizer function: OnPending OnBlocked
1708  * @tc.type: FUNC
1709  */
1710 HWTEST_F(GesturesTestNg, ExclusiveRecognizerTest007, TestSize.Level1)
1711 {
1712     /**
1713      * @tc.steps: step1. create ExclusiveRecognizer.
1714      */
1715     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
1716     ExclusiveRecognizer exclusiveRecognizer = ExclusiveRecognizer(recognizers);
1717     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
1718     RefPtr<ClickRecognizer> clickRecognizerPtrNotSame = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
1719 
1720     /**
1721      * @tc.steps: step3. call OnRejected function and compare result.
1722      * @tc.steps: case4: recognizers has ptr, referee is FAIL
1723      * @tc.expected: step3. result equals.
1724      */
1725     exclusiveRecognizer.recognizers_.clear();
1726     clickRecognizerPtr->refereeState_ = RefereeState::FAIL;
1727     exclusiveRecognizer.recognizers_.push_back(clickRecognizerPtr);
1728     exclusiveRecognizer.OnRejected();
1729     EXPECT_EQ(exclusiveRecognizer.refereeState_, RefereeState::FAIL);
1730 
1731     /**
1732      * @tc.steps: step4. call OnPending function and compare result.
1733      * @tc.steps: case1: no active
1734      * @tc.expected: step4. result equals.
1735      */
1736     exclusiveRecognizer.activeRecognizer_ = nullptr;
1737     exclusiveRecognizer.OnPending();
1738     EXPECT_EQ(exclusiveRecognizer.refereeState_, RefereeState::PENDING);
1739 
1740     /**
1741      * @tc.steps: step4. call OnPending function and compare result.
1742      * @tc.steps: case2: has active
1743      * @tc.expected: step4. result equals.
1744      */
1745     exclusiveRecognizer.activeRecognizer_ = clickRecognizerPtr;
1746     exclusiveRecognizer.OnPending();
1747     EXPECT_EQ(exclusiveRecognizer.refereeState_, RefereeState::PENDING);
1748 
1749     /**
1750      * @tc.steps: step5. call OnBlocked function and compare result.
1751      * @tc.steps: case1: ACCEPT, no active
1752      * @tc.expected: step5. result equals.
1753      */
1754     exclusiveRecognizer.disposal_ = GestureDisposal::ACCEPT;
1755     exclusiveRecognizer.activeRecognizer_ = nullptr;
1756     exclusiveRecognizer.OnBlocked();
1757     EXPECT_EQ(exclusiveRecognizer.refereeState_, RefereeState::SUCCEED_BLOCKED);
1758 
1759     /**
1760      * @tc.steps: step5. call OnBlocked function and compare result.
1761      * @tc.steps: case2: ACCEPT, active
1762      * @tc.expected: step5. result equals.
1763      */
1764     exclusiveRecognizer.disposal_ = GestureDisposal::ACCEPT;
1765     exclusiveRecognizer.activeRecognizer_ = clickRecognizerPtr;
1766     exclusiveRecognizer.OnBlocked();
1767     EXPECT_EQ(exclusiveRecognizer.refereeState_, RefereeState::SUCCEED_BLOCKED);
1768 
1769     /**
1770      * @tc.steps: step5. call OnBlocked function and compare result.
1771      * @tc.steps: case3: PENDING, no active
1772      * @tc.expected: step5. result equals.
1773      */
1774     exclusiveRecognizer.disposal_ = GestureDisposal::PENDING;
1775     exclusiveRecognizer.activeRecognizer_ = nullptr;
1776     exclusiveRecognizer.OnBlocked();
1777     EXPECT_EQ(exclusiveRecognizer.refereeState_, RefereeState::PENDING_BLOCKED);
1778 
1779     /**
1780      * @tc.steps: step5. call OnBlocked function and compare result.
1781      * @tc.steps: case3: PENDING, active
1782      * @tc.expected: step5. result equals.
1783      */
1784     exclusiveRecognizer.disposal_ = GestureDisposal::REJECT;
1785     exclusiveRecognizer.activeRecognizer_ = clickRecognizerPtr;
1786     exclusiveRecognizer.OnBlocked();
1787     EXPECT_EQ(exclusiveRecognizer.refereeState_, RefereeState::PENDING_BLOCKED);
1788 
1789     /**
1790      * @tc.steps: step5. call OnBlocked function and compare result.
1791      * @tc.steps: case3: PENDING, active
1792      * @tc.expected: step5. result equals.
1793      */
1794     exclusiveRecognizer.disposal_ = GestureDisposal::PENDING;
1795     exclusiveRecognizer.activeRecognizer_ = clickRecognizerPtr;
1796     exclusiveRecognizer.OnBlocked();
1797     EXPECT_EQ(exclusiveRecognizer.refereeState_, RefereeState::PENDING_BLOCKED);
1798 }
1799 
1800 /**
1801  * @tc.name: ExclusiveRecognizerTest008
1802  * @tc.desc: Test ExclusiveRecognizer function: HandleEvent OnResetStatus
1803  * @tc.type: FUNC
1804  */
1805 HWTEST_F(GesturesTestNg, ExclusiveRecognizerTest008, TestSize.Level1)
1806 {
1807     /**
1808      * @tc.steps: step1. create ExclusiveRecognizer.
1809      */
1810     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
1811     ExclusiveRecognizer exclusiveRecognizer = ExclusiveRecognizer(recognizers);
1812     bool result = false;
1813     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
1814 
1815     /**
1816      * @tc.steps: step3. create axisEvent and call HandleEvent function and compare result.
1817      * @tc.steps: case1: active is nullptr, recognizers is empty
1818      * @tc.expected: step3. result equals.
1819      */
1820     AxisEvent axisEvent;
1821     axisEvent.action = AxisAction::BEGIN;
1822     result = exclusiveRecognizer.HandleEvent(axisEvent);
1823     EXPECT_EQ(result, true);
1824     axisEvent.action = AxisAction::UPDATE;
1825     result = exclusiveRecognizer.HandleEvent(axisEvent);
1826     EXPECT_EQ(result, true);
1827     axisEvent.action = AxisAction::END;
1828     result = exclusiveRecognizer.HandleEvent(axisEvent);
1829     EXPECT_EQ(result, true);
1830     axisEvent.action = AxisAction::NONE;
1831     result = exclusiveRecognizer.HandleEvent(axisEvent);
1832     EXPECT_EQ(result, true);
1833 
1834     /**
1835      * @tc.steps: step3. create axisEvent and call HandleEvent function and compare result.
1836      * @tc.steps: case2: active is ptr
1837      * @tc.expected: step3. result equals.
1838      */
1839     exclusiveRecognizer.activeRecognizer_ = clickRecognizerPtr;
1840     result = exclusiveRecognizer.HandleEvent(axisEvent);
1841     EXPECT_EQ(result, true);
1842 
1843     /**
1844      * @tc.steps: step3. create axisEvent and call HandleEvent function and compare result.
1845      * @tc.steps: case3: active is nullptr, recognizers have nullptr
1846      * @tc.expected: step3. result equals.
1847      */
1848     exclusiveRecognizer.activeRecognizer_ = nullptr;
1849     exclusiveRecognizer.recognizers_.clear();
1850     exclusiveRecognizer.recognizers_.push_back(nullptr);
1851     result = exclusiveRecognizer.HandleEvent(axisEvent);
1852     EXPECT_EQ(result, true);
1853 
1854     /**
1855      * @tc.steps: step3. create axisEvent and call HandleEvent function and compare result.
1856      * @tc.steps: case4: active is nullptr, recognizers have ptr
1857      * @tc.expected: step3. result equals.
1858      */
1859     exclusiveRecognizer.activeRecognizer_ = nullptr;
1860     exclusiveRecognizer.recognizers_.clear();
1861     exclusiveRecognizer.recognizers_.push_back(clickRecognizerPtr);
1862     result = exclusiveRecognizer.HandleEvent(axisEvent);
1863     EXPECT_EQ(result, true);
1864 
1865     /**
1866      * @tc.steps: step4. call OnResetStatus function and compare result.
1867      * @tc.expected: step4. result equals.
1868      */
1869     exclusiveRecognizer.OnResetStatus();
1870     EXPECT_EQ(exclusiveRecognizer.activeRecognizer_, nullptr);
1871     axisEvent.action = AxisAction::CANCEL;
1872     result = exclusiveRecognizer.HandleEvent(axisEvent);
1873     EXPECT_EQ(result, true);
1874 }
1875 
1876 /**
1877  * @tc.name: GestureRecognizerTest001
1878  * @tc.desc: Test GestureRecognizer function: HandleEvent
1879  * @tc.type: FUNC
1880  */
1881 HWTEST_F(GesturesTestNg, GestureRecognizerTest001, TestSize.Level1)
1882 {
1883     /**
1884      * @tc.steps: step1. create GestureRecognizer.
1885      */
1886     ClickRecognizer clickRecognizer = ClickRecognizer(FINGER_NUMBER, COUNT);
1887     clickRecognizer.refereeState_ = RefereeState::SUCCEED;
1888     TouchEvent touchEvent;
1889 
1890     /**
1891      * @tc.steps: step2. call TouchEvent function and compare result.
1892      * @tc.expected: step2. result equals.
1893      */
1894     touchEvent.type = TouchType::MOVE;
1895     clickRecognizer.HandleEvent(touchEvent);
1896     EXPECT_EQ(clickRecognizer.refereeState_, RefereeState::SUCCEED);
1897 
1898     touchEvent.type = TouchType::DOWN;
1899     clickRecognizer.HandleEvent(touchEvent);
1900     EXPECT_EQ(clickRecognizer.refereeState_, RefereeState::SUCCEED);
1901 
1902     touchEvent.type = TouchType::UP;
1903     clickRecognizer.HandleEvent(touchEvent);
1904     EXPECT_EQ(clickRecognizer.refereeState_, RefereeState::SUCCEED);
1905 
1906     touchEvent.type = TouchType::CANCEL;
1907     clickRecognizer.HandleEvent(touchEvent);
1908     EXPECT_EQ(clickRecognizer.refereeState_, RefereeState::SUCCEED);
1909 
1910     touchEvent.type = TouchType::UNKNOWN;
1911     clickRecognizer.HandleEvent(touchEvent);
1912     EXPECT_EQ(clickRecognizer.refereeState_, RefereeState::SUCCEED);
1913 
1914     /**
1915      * @tc.steps: step2. call AxisEvent function and compare result.
1916      * @tc.expected: step2. result equals.
1917      */
1918     AxisEvent axisEvent;
1919     axisEvent.action = AxisAction::BEGIN;
1920     clickRecognizer.HandleEvent(axisEvent);
1921     EXPECT_EQ(clickRecognizer.refereeState_, RefereeState::SUCCEED);
1922 
1923     axisEvent.action = AxisAction::UPDATE;
1924     clickRecognizer.HandleEvent(axisEvent);
1925     EXPECT_EQ(clickRecognizer.refereeState_, RefereeState::SUCCEED);
1926 
1927     axisEvent.action = AxisAction::END;
1928     clickRecognizer.HandleEvent(axisEvent);
1929     EXPECT_EQ(clickRecognizer.refereeState_, RefereeState::SUCCEED);
1930 
1931     axisEvent.action = AxisAction::NONE;
1932     clickRecognizer.HandleEvent(axisEvent);
1933     EXPECT_EQ(clickRecognizer.refereeState_, RefereeState::SUCCEED);
1934 }
1935 
1936 /**
1937  * @tc.name: LongPressRecognizerTest001
1938  * @tc.desc: Test LongPressRecognizer function: OnAccepted OnRejected
1939  * @tc.type: FUNC
1940  */
1941 HWTEST_F(GesturesTestNg, LongPressRecognizerTest001, TestSize.Level1)
1942 {
1943     /**
1944      * @tc.steps: step1. create LongPressRecognizer.
1945      */
1946     LongPressRecognizer longPressRecognizer = LongPressRecognizer(LONG_PRESS_DURATION, FINGER_NUMBER, false);
1947     OnLongPress onLongPress;
1948     TouchEvent touchEvent;
1949 
1950     /**
1951      * @tc.steps: step2. call OnAccepted function and compare result.
1952      * @tc.steps: case1: !onLongPress, !empty, repeat
1953      * @tc.expected: step2. result equals.
1954      */
1955     longPressRecognizer.touchPoints_[touchEvent.id] = touchEvent;
1956     longPressRecognizer.repeat_ = true;
1957     longPressRecognizer.OnAccepted();
1958     EXPECT_EQ(longPressRecognizer.refereeState_, RefereeState::SUCCEED);
1959 
1960     /**
1961      * @tc.steps: step2. call OnAccepted function and compare result.
1962      * @tc.steps: case2: !onLongPress, empty, !repeat
1963      * @tc.expected: step2. result equals.
1964      */
1965     longPressRecognizer.touchPoints_.clear();
1966     longPressRecognizer.repeat_ = false;
1967     longPressRecognizer.OnAccepted();
1968     EXPECT_EQ(longPressRecognizer.refereeState_, RefereeState::SUCCEED);
1969 
1970     /**
1971      * @tc.steps: step2. call OnAccepted function and compare result.
1972      * @tc.steps: case3: onLongPress, empty, !repeat
1973      * @tc.expected: step2. result equals.
1974      */
__anona2ace5f30902(LongPressInfo) 1975     onLongPress = [](LongPressInfo) {};
1976     longPressRecognizer.onLongPress_ = onLongPress;
1977     longPressRecognizer.touchPoints_.clear();
1978     longPressRecognizer.repeat_ = false;
1979     longPressRecognizer.OnAccepted();
1980     EXPECT_EQ(longPressRecognizer.refereeState_, RefereeState::SUCCEED);
1981 
1982     /**
1983      * @tc.steps: step2. call OnAccepted function and compare result.
1984      * @tc.steps: case4: onLongPress, !empty, !repeat
1985      * @tc.expected: step2. result equals.
1986      */
1987     longPressRecognizer.touchPoints_.clear();
1988     longPressRecognizer.touchPoints_[touchEvent.id] = touchEvent;
1989     longPressRecognizer.repeat_ = false;
1990     longPressRecognizer.OnAccepted();
1991     EXPECT_EQ(longPressRecognizer.refereeState_, RefereeState::SUCCEED);
1992 
1993     /**
1994      * @tc.steps: step3. call OnRejected function and compare result.
1995      * @tc.expected: step3. result equals.
1996      */
1997     longPressRecognizer.OnRejected();
1998     EXPECT_EQ(longPressRecognizer.refereeState_, RefereeState::FAIL);
1999 }
2000 
2001 /**
2002  * @tc.name: LongPressRecognizerTest002
2003  * @tc.desc: Test LongPressRecognizer function: HandleTouchMoveEvent
2004  * @tc.type: FUNC
2005  */
2006 HWTEST_F(GesturesTestNg, LongPressRecognizerTest002, TestSize.Level1)
2007 {
2008     /**
2009      * @tc.steps: step1. create LongPressRecognizer.
2010      */
2011     LongPressRecognizer longPressRecognizer = LongPressRecognizer(LONG_PRESS_DURATION, FINGER_NUMBER, false);
2012 
2013     /**
2014      * @tc.steps: step2. call HandleTouchUpEvent function and compare result.
2015      * @tc.steps: case1: referee is not SUCCEED
2016      * @tc.expected: step2. result equals.
2017      */
2018     TouchEvent touchEvent;
2019     longPressRecognizer.touchPoints_[touchEvent.id] = touchEvent;
2020     longPressRecognizer.HandleTouchMoveEvent(touchEvent);
2021     EXPECT_EQ(longPressRecognizer.time_, touchEvent.time);
2022 
2023     /**
2024      * @tc.steps: step2. call HandleTouchUpEvent function and compare result.
2025      * @tc.steps: case2: referee is SUCCEED
2026      * @tc.expected: step2. result equals.
2027      */
2028     longPressRecognizer.refereeState_ = RefereeState::SUCCEED;
2029     longPressRecognizer.HandleTouchMoveEvent(touchEvent);
2030     EXPECT_EQ(longPressRecognizer.time_, touchEvent.time);
2031 
2032     /**
2033      * @tc.steps: step2. call HandleTouchUpEvent function and compare result.
2034      * @tc.steps: case2: referee is SUCCEED
2035      * @tc.expected: step2. result equals.
2036      */
2037     longPressRecognizer.currentFingers_ = longPressRecognizer.fingers_;
2038     longPressRecognizer.refereeState_ = RefereeState::SUCCEED;
2039     longPressRecognizer.HandleTouchMoveEvent(touchEvent);
2040     EXPECT_EQ(longPressRecognizer.time_, touchEvent.time);
2041 }
2042 
2043 /**
2044  * @tc.name: LongPressRecognizerTest003
2045  * @tc.desc: Test LongPressRecognizer function: HandleTouchDownEvent
2046  * @tc.type: FUNC
2047  */
2048 HWTEST_F(GesturesTestNg, LongPressRecognizerTest003, TestSize.Level1)
2049 {
2050     /**
2051      * @tc.steps: step1. create LongPressRecognizer.
2052      */
2053     LongPressRecognizer longPressRecognizer = LongPressRecognizer(LONG_PRESS_DURATION, FINGER_NUMBER, false);
2054 
2055     /**
2056      * @tc.steps: step2. call HandleTouchUpEvent function and compare result.
2057      * @tc.steps: case1: pointsCount == fingers, useCatchMode_ is true
2058      * @tc.expected: step2. result equals.
2059      */
2060     TouchEvent touchEvent;
2061     longPressRecognizer.HandleTouchDownEvent(touchEvent);
2062     EXPECT_EQ(longPressRecognizer.touchPoints_.size(), 1);
2063 
2064     /**
2065      * @tc.steps: step2. call HandleTouchUpEvent function and compare result.
2066      * @tc.steps: case2: pointsCount == fingers, useCatchMode_ is true
2067      * @tc.expected: step2. result equals.
2068      */
2069     touchEvent.sourceType = SourceType::MOUSE;
2070     longPressRecognizer.isForDrag_ = true;
2071     longPressRecognizer.touchPoints_[touchEvent.id] = touchEvent;
2072     longPressRecognizer.fingers_ = 1;
2073     longPressRecognizer.useCatchMode_ = true;
2074     longPressRecognizer.HandleTouchDownEvent(touchEvent);
2075     EXPECT_EQ(longPressRecognizer.globalPoint_.GetX(), touchEvent.x);
2076     EXPECT_EQ(longPressRecognizer.globalPoint_.GetY(), touchEvent.y);
2077     EXPECT_EQ(longPressRecognizer.refereeState_, RefereeState::DETECTING);
2078 
2079     /**
2080      * @tc.steps: step2. call HandleTouchUpEvent function and compare result.
2081      * @tc.steps: case3: pointsCount == fingers, useCatchMode_ is false
2082      * @tc.expected: step2. result equals.
2083      */
2084     longPressRecognizer.useCatchMode_ = false;
2085     longPressRecognizer.HandleTouchDownEvent(touchEvent);
2086     EXPECT_EQ(longPressRecognizer.refereeState_, RefereeState::DETECTING);
2087 
2088     /**
2089      * @tc.steps: step2. call HandleTouchUpEvent function and compare result.
2090      * @tc.steps: case4: referee is SUCCEED
2091      * @tc.expected: step2. result equals.
2092      */
2093     longPressRecognizer.refereeState_ = RefereeState::SUCCEED;
2094     longPressRecognizer.HandleTouchDownEvent(touchEvent);
2095     EXPECT_EQ(longPressRecognizer.touchPoints_.size(), 1);
2096 
2097     /**
2098      * @tc.steps: step2. call HandleTouchUpEvent function and compare result.
2099      * @tc.steps: case5: change SourceType to KEYBOARD
2100      * @tc.expected: step2. result equals.
2101      */
2102     longPressRecognizer.refereeState_ = RefereeState::PENDING;
2103     touchEvent.sourceType = SourceType::KEYBOARD;
2104     longPressRecognizer.HandleTouchDownEvent(touchEvent);
2105     EXPECT_EQ(longPressRecognizer.touchPoints_.size(), 1);
2106 
2107     /**
2108      * @tc.steps: step2. call HandleTouchUpEvent function and compare result.
2109      * @tc.steps: case6: change isForDrag
2110      * @tc.expected: step2. result equals.
2111      */
2112     longPressRecognizer.isForDrag_ = !longPressRecognizer.isForDrag_;
2113     longPressRecognizer.HandleTouchDownEvent(touchEvent);
2114     EXPECT_EQ(longPressRecognizer.touchPoints_.size(), 1);
2115 
2116     /**
2117      * @tc.steps: step2. call HandleTouchUpEvent function and compare result.
2118      * @tc.steps: case7: change isDisableMouseLeft_
2119      * @tc.expected: step2. result equals.
2120      */
2121     longPressRecognizer.isDisableMouseLeft_ = !longPressRecognizer.isDisableMouseLeft_;
2122     longPressRecognizer.HandleTouchDownEvent(touchEvent);
2123     EXPECT_EQ(longPressRecognizer.touchPoints_.size(), 1);
2124 }
2125 
2126 /**
2127  * @tc.name: LongPressRecognizerTest004
2128  * @tc.desc: Test LongPressRecognizer function: HandleTouchCancelEvent UpEvent
2129  * @tc.type: FUNC
2130  */
2131 HWTEST_F(GesturesTestNg, LongPressRecognizerTest004, TestSize.Level1)
2132 {
2133     /**
2134      * @tc.steps: step1. create LongPressRecognizer.
2135      */
2136     LongPressRecognizer longPressRecognizer = LongPressRecognizer(LONG_PRESS_DURATION, FINGER_NUMBER, false);
2137 
2138     /**
2139      * @tc.steps: step2. call HandleTouchUpEvent function and compare result.
2140      * @tc.steps: refereeState == RefereeState::SUCCEED
2141      * @tc.expected: step2. result equals.
2142      */
2143     TouchEvent touchEvent;
2144     longPressRecognizer.refereeState_ = RefereeState::SUCCEED;
2145     longPressRecognizer.HandleTouchUpEvent(touchEvent);
2146     longPressRecognizer.HandleTouchCancelEvent(touchEvent);
2147     EXPECT_EQ(longPressRecognizer.touchPoints_.size(), 0);
2148 
2149     /**
2150      * @tc.steps: step2. call HandleTouchUpEvent function and compare result.
2151      * @tc.steps: refereeState == RefereeState::SUCCEED
2152      * @tc.expected: step2. result equals.
2153      */
2154     longPressRecognizer.refereeState_ = RefereeState::SUCCEED;
2155     longPressRecognizer.currentFingers_ = longPressRecognizer.fingers_;
2156     longPressRecognizer.HandleTouchUpEvent(touchEvent);
2157     longPressRecognizer.HandleTouchCancelEvent(touchEvent);
2158     EXPECT_EQ(longPressRecognizer.touchPoints_.size(), 0);
2159 }
2160 
2161 /**
2162  * @tc.name: LongPressRecognizerDoRepeatTest001
2163  * @tc.desc: Test LongPressRecognizer function: DoRepeat
2164  * @tc.type: FUNC
2165  */
2166 HWTEST_F(GesturesTestNg, LongPressRecognizerDoRepeatTest001, TestSize.Level1)
2167 {
2168     /**
2169      * @tc.steps: step1. create LongPressRecognizer.
2170      */
2171     LongPressRecognizer longPressRecognizer = LongPressRecognizer(LONG_PRESS_DURATION, FINGER_NUMBER, false);
2172 
2173     /**
2174      * @tc.steps: step2. call DoRepeat
2175      * @tc.steps: refereeState == RefereeState::SUCCEED
2176      * @tc.expected: step2. result equals.
2177      */
2178     TouchEvent touchEvent;
2179     longPressRecognizer.refereeState_ = RefereeState::SUCCEED;
2180     longPressRecognizer.fingers_ = 0;
2181     longPressRecognizer.DoRepeat();
2182     longPressRecognizer.HandleTouchCancelEvent(touchEvent);
2183     EXPECT_EQ(longPressRecognizer.touchPoints_.size(), 0);
2184 
2185     /**
2186      * @tc.steps: step2. call DoRepeat
2187      * @tc.steps: refereeState == RefereeState::SUCCEED
2188      * @tc.expected: step2. result equals.
2189      */
2190     longPressRecognizer.refereeState_ = RefereeState::DETECTING;
2191     longPressRecognizer.currentFingers_ = longPressRecognizer.fingers_;
2192     longPressRecognizer.fingers_ = 0;
2193     longPressRecognizer.DoRepeat();
2194     EXPECT_EQ(longPressRecognizer.touchPoints_.size(), 0);
2195 }
2196 
2197 /**
2198  * @tc.name: LongPressRecognizerTest005
2199  * @tc.desc: Test LongPressRecognizer function: SendCallbackMsg
2200  * @tc.type: FUNC
2201  */
2202 HWTEST_F(GesturesTestNg, LongPressRecognizerTest005, TestSize.Level1)
2203 {
2204     /**
2205      * @tc.steps: step1. create LongPressRecognizer.
2206      */
2207     LongPressRecognizer longPressRecognizer = LongPressRecognizer(LONG_PRESS_DURATION, FINGER_NUMBER, false);
2208     bool isRepeat = false;
2209 
2210     /**
2211      * @tc.steps: step2. call SendCallbackMsg function and compare result.
2212      * @tc.steps: case1: onAction is no, *onAction is no
2213      * @tc.expected: step2. result equals.
2214      */
2215     std::unique_ptr<GestureEventFunc> onAction;
2216     longPressRecognizer.SendCallbackMsg(onAction, isRepeat);
2217     EXPECT_EQ(longPressRecognizer.touchPoints_.size(), 0);
2218 
2219     /**
2220      * @tc.steps: step2. call SendCallbackMsg function and compare result.
2221      * @tc.steps: case2: onAction is yes, *onAction is no
2222      * @tc.expected: step2. result equals.
2223      */
2224     onAction = std::make_unique<GestureEventFunc>();
2225     longPressRecognizer.SendCallbackMsg(onAction, isRepeat);
2226     EXPECT_EQ(longPressRecognizer.touchPoints_.size(), 0);
2227 
2228     /**
2229      * @tc.steps: step2. call SendCallbackMsg function and compare result.
2230      * @tc.steps: case3: onAction is yes, *onAction is yes, touchEvent is empty
2231      * @tc.expected: step2. result equals.
2232      */
__anona2ace5f30a02(GestureEvent) 2233     onAction = std::make_unique<GestureEventFunc>([](GestureEvent) {});
2234     longPressRecognizer.SendCallbackMsg(onAction, isRepeat);
2235     EXPECT_EQ(longPressRecognizer.touchPoints_.size(), 0);
2236 
2237     /**
2238      * @tc.steps: step2. call SendCallbackMsg function and compare result.
2239      * @tc.steps: case4: touchEvent is not empty, have no X and Y
2240      * @tc.expected: step2. result equals.
2241      */
2242     TouchEvent touchEvent;
2243     longPressRecognizer.touchPoints_[touchEvent.id] = touchEvent;
2244     longPressRecognizer.SendCallbackMsg(onAction, isRepeat);
2245     EXPECT_EQ(longPressRecognizer.touchPoints_.size(), 1);
2246 
2247     /**
2248      * @tc.steps: step2. call SendCallbackMsg function and compare result.
2249      * @tc.steps: case4: touchEvent is not empty, have no X and Y
2250      * @tc.expected: step2. result equals.
2251      */
2252     touchEvent.tiltX = 0.0f;
2253     touchEvent.tiltY = 0.0f;
2254     longPressRecognizer.touchPoints_[touchEvent.id] = touchEvent;
2255     longPressRecognizer.SendCallbackMsg(onAction, isRepeat);
2256     EXPECT_EQ(longPressRecognizer.touchPoints_.size(), 1);
2257 }
2258 
2259 /**
2260  * @tc.name: LongPressRecognizerTest006
2261  * @tc.desc: Test LongPressRecognizer function: ReconcileFrom
2262  * @tc.type: FUNC
2263  */
2264 HWTEST_F(GesturesTestNg, LongPressRecognizerTest006, TestSize.Level1)
2265 {
2266     /**
2267      * @tc.steps: step1. create LongPressRecognizer.
2268      */
2269     LongPressRecognizer longPressRecognizer = LongPressRecognizer(LONG_PRESS_DURATION, FINGER_NUMBER, false);
2270     RefPtr<LongPressRecognizer> longPressRecognizerPtr =
2271         AceType::MakeRefPtr<LongPressRecognizer>(LONG_PRESS_DURATION, FINGER_NUMBER, false);
2272 
2273     /**
2274      * @tc.steps: step2. call ReconcileFrom function and compare result.
2275      * @tc.steps: case1: normal case
2276      * @tc.expected: step2. result equals.
2277      */
2278     auto result = longPressRecognizer.ReconcileFrom(longPressRecognizerPtr);
2279     EXPECT_EQ(result, true);
2280 
2281     /**
2282      * @tc.steps: step2. call ReconcileFrom function and compare result.
2283      * @tc.steps: case2: recognizerPtr is nullptr
2284      * @tc.expected: step2. result equals.
2285      */
2286     result = longPressRecognizer.ReconcileFrom(nullptr);
2287     EXPECT_EQ(result, false);
2288 
2289     /**
2290      * @tc.steps: step2. call ReconcileFrom function and compare result.
2291      * @tc.steps: case3: recognizerPtr, duration not same
2292      * @tc.expected: step2. result equals.
2293      */
2294     longPressRecognizer.duration_ = 0;
2295     result = longPressRecognizer.ReconcileFrom(longPressRecognizerPtr);
2296     EXPECT_EQ(result, false);
2297 
2298     /**
2299      * @tc.steps: step2. call ReconcileFrom function and compare result.
2300      * @tc.steps: case4: recognizerPtr, duration same, fingers not same
2301      * @tc.expected: step2. result equals.
2302      */
2303     longPressRecognizer.duration_ = longPressRecognizerPtr->duration_;
2304     longPressRecognizer.fingers_ = longPressRecognizerPtr->fingers_ + 1;
2305     result = longPressRecognizer.ReconcileFrom(longPressRecognizerPtr);
2306     EXPECT_EQ(result, false);
2307 
2308     /**
2309      * @tc.steps: step2. call ReconcileFrom function and compare result.
2310      * @tc.steps: case5: recognizerPtr, fingers same, repeat not same
2311      * @tc.expected: step2. result equals.
2312      */
2313     longPressRecognizer.fingers_ = longPressRecognizerPtr->fingers_;
2314     longPressRecognizer.repeat_ = !longPressRecognizerPtr->repeat_;
2315     result = longPressRecognizer.ReconcileFrom(longPressRecognizerPtr);
2316     EXPECT_EQ(result, false);
2317 
2318     /**
2319      * @tc.steps: step2. call ReconcileFrom function and compare result.
2320      * @tc.steps: case5: recognizerPtr, repeat same, priorityMask not same
2321      * @tc.expected: step2. result equals.
2322      */
2323     longPressRecognizer.repeat_ = longPressRecognizerPtr->repeat_;
2324     longPressRecognizer.priorityMask_ = GestureMask::End;
2325     result = longPressRecognizer.ReconcileFrom(longPressRecognizerPtr);
2326     EXPECT_EQ(result, false);
2327 }
2328 
2329 /**
2330  * @tc.name: LongPressRecognizerTestGetLongPressActionFunc001
2331  * @tc.desc: Test LongPressRecognizer function: GetLongPressActionFunc
2332  * @tc.type: FUNC
2333  */
2334 HWTEST_F(GesturesTestNg, LongPressRecognizerTestGetLongPressActionFunc001, TestSize.Level1)
2335 {
2336     /**
2337      * @tc.steps: step1. create LongPressRecognizer.
2338      */
2339     LongPressRecognizer longPressRecognizer = LongPressRecognizer(LONG_PRESS_DURATION, FINGER_NUMBER, false);
2340     bool isCatchMode = false;
2341 
2342     /**
2343      * @tc.steps: step2. call GetLongPressActionFunc function and compare result.
2344      * @tc.steps: case1: normal case
2345      * @tc.expected: step2. result equals.
2346      */
2347     longPressRecognizer.refereeState_ = RefereeState::SUCCEED;
2348     longPressRecognizer.HandleOverdueDeadline(isCatchMode);
2349     longPressRecognizer.DoRepeat();
2350     EXPECT_EQ(longPressRecognizer.refereeState_, RefereeState::SUCCEED);
2351     auto result = longPressRecognizer.GetLongPressActionFunc();
2352 }
2353 
2354 /**
2355  * @tc.name: LongPressRecognizerTestGetLongPressActionFunc003
2356  * @tc.desc: Test LongPressRecognizer function: GetLongPressActionFunc
2357  * @tc.type: FUNC
2358  */
2359 HWTEST_F(GesturesTestNg, LongPressRecognizerTestGetLongPressActionFunc003, TestSize.Level1)
2360 {
2361     /**
2362      * @tc.steps: step1. create LongPressRecognizer.
2363      */
2364     LongPressRecognizer longPressRecognizer = LongPressRecognizer(LONG_PRESS_DURATION, FINGER_NUMBER, false);
2365     bool isCatchMode = false;
2366 
2367     /**
2368      * @tc.steps: step2. call GetLongPressActionFunc function and compare result.
2369      * @tc.steps: case1: normal case
2370      * @tc.expected: step2. result equals.
2371      */
2372     longPressRecognizer.refereeState_ = RefereeState::SUCCEED;
2373     longPressRecognizer.HandleOverdueDeadline(isCatchMode);
2374     longPressRecognizer.DoRepeat();
2375     GestureEventFunc click;
2376     GestureEvent info;
2377     click = longPressRecognizer.GetLongPressActionFunc();
2378     click(info);
2379     EXPECT_EQ(longPressRecognizer.refereeState_, RefereeState::SUCCEED);
2380 }
2381 
2382 /**
2383  * @tc.name: LongPressRecognizerTestGetLongPressActionFunc004
2384  * @tc.desc: Test LongPressRecognizer function: GetLongPressActionFunc
2385  * @tc.type: FUNC
2386  */
2387 HWTEST_F(GesturesTestNg, LongPressRecognizerTestGetLongPressActionFunc004, TestSize.Level1)
2388 {
2389     /**
2390      * @tc.steps: step1. create LongPressRecognizer.
2391      */
2392     LongPressRecognizer longPressRecognizer = LongPressRecognizer(LONG_PRESS_DURATION, FINGER_NUMBER, false);
2393     bool isCatchMode = false;
2394 
2395     /**
2396      * @tc.steps: step2. call GetLongPressActionFunc function and compare result.
2397      * @tc.steps: case1: normal case
2398      * @tc.expected: step2. result equals.
2399      */
2400     longPressRecognizer.refereeState_ = RefereeState::SUCCEED;
2401     longPressRecognizer.HandleOverdueDeadline(isCatchMode);
2402     longPressRecognizer.DoRepeat();
2403     GestureEventFunc click;
2404     GestureEvent info;
__anona2ace5f30b02(GestureEvent& info) 2405     auto onActionStart = [](GestureEvent& info) { return true; };
__anona2ace5f30c02(GestureEvent& info) 2406     auto onActionUpdate = [](GestureEvent& info) { return true; };
__anona2ace5f30d02(GestureEvent& info) 2407     auto onActionEnd = [](GestureEvent& info) { return true; };
2408     longPressRecognizer.SetOnActionUpdate(onActionUpdate);
2409     longPressRecognizer.SetOnAction(onActionStart);
2410     longPressRecognizer.SetOnActionEnd(onActionEnd);
2411     click = longPressRecognizer.GetLongPressActionFunc();
2412     click(info);
2413     EXPECT_EQ(longPressRecognizer.refereeState_, RefereeState::SUCCEED);
2414 }
2415 
2416 /**
2417  * @tc.name: LongPressRecognizerTestGetLongPressActionFunc002
2418  * @tc.desc: Test LongPressRecognizer function: GetLongPressActionFunc
2419  * @tc.type: FUNC
2420  */
2421 HWTEST_F(GesturesTestNg, LongPressRecognizerTestGetLongPressActionFunc002, TestSize.Level1)
2422 {
2423     /**
2424      * @tc.steps: step1. create LongPressRecognizer.
2425      */
2426     LongPressRecognizer longPressRecognizer = LongPressRecognizer(LONG_PRESS_DURATION, FINGER_NUMBER, false);
2427     bool isCatchMode = false;
2428 
2429     /**
2430      * @tc.steps: step2. call GetLongPressActionFunc function and compare result.
2431      * @tc.steps: case1: normal case
2432      * @tc.expected: step2. result equals.
2433      */
2434     longPressRecognizer.refereeState_ = RefereeState::SUCCEED;
2435     longPressRecognizer.fingers_ = SINGLE_FINGER_NUMBER;
2436     longPressRecognizer.HandleOverdueDeadline(isCatchMode);
2437     longPressRecognizer.DoRepeat();
2438     auto result = longPressRecognizer.GetLongPressActionFunc();
2439     EXPECT_EQ(longPressRecognizer.refereeState_, RefereeState::SUCCEED);
2440 
2441     /**
2442      * @tc.steps: step2. call GetLongPressActionFunc function and compare result.
2443      * @tc.steps: case1: normal case
2444      * @tc.expected: step2. result equals.
2445      */
2446     longPressRecognizer.refereeState_ = RefereeState::DETECTING;
2447     longPressRecognizer.fingers_ = SINGLE_FINGER_NUMBER;
2448     longPressRecognizer.HandleOverdueDeadline(isCatchMode);
2449     longPressRecognizer.DoRepeat();
2450     result = longPressRecognizer.GetLongPressActionFunc();
2451     EXPECT_NE(longPressRecognizer.refereeState_, RefereeState::DETECTING);
2452 }
2453 
2454 /**
2455  * @tc.name: LongPressRecognizerConvertPxToVpTest001
2456  * @tc.desc: Test LongPressRecognizer function: ConvertPxToVp
2457  * @tc.type: FUNC
2458  */
2459 HWTEST_F(GesturesTestNg, LongPressRecognizerConvertPxToVpTest001, TestSize.Level1)
2460 {
2461     /**
2462      * @tc.steps: step1. create LongPressRecognizer.
2463      */
2464     LongPressRecognizer longPressRecognizer = LongPressRecognizer(LONG_PRESS_DURATION, FINGER_NUMBER, false);
2465 
2466     /**
2467      * @tc.steps: step2. call ConvertPxToVp function and compare result.
2468      * @tc.steps: case1: normal case
2469      * @tc.expected: step2. result equals.
2470      */
2471     double result = longPressRecognizer.ConvertPxToVp(0.0);
2472     EXPECT_EQ(result, 0.0);
2473 }
2474 
2475 /**
2476  * @tc.name: LongPressRecognizerTest007
2477  * @tc.desc: Test LongPressRecognizer function: HandleOverdueDeadline  DoRepeat
2478  * @tc.type: FUNC
2479  */
2480 HWTEST_F(GesturesTestNg, LongPressRecognizerTest007, TestSize.Level1)
2481 {
2482     /**
2483      * @tc.steps: step1. create LongPressRecognizer.
2484      */
2485     LongPressRecognizer longPressRecognizer = LongPressRecognizer(LONG_PRESS_DURATION, FINGER_NUMBER, false);
2486     bool isCatchMode = false;
2487 
2488     /**
2489      * @tc.steps: step2. call HandleOverdueDeadline function and compare result.
2490      * @tc.steps: case1: refereeState is SUCCESS, return
2491      * @tc.expected: step2. result equals.
2492      */
2493     longPressRecognizer.refereeState_ = RefereeState::SUCCEED;
2494     longPressRecognizer.HandleOverdueDeadline(isCatchMode);
2495     longPressRecognizer.DoRepeat();
2496     EXPECT_EQ(longPressRecognizer.refereeState_, RefereeState::SUCCEED);
2497 
2498     /**
2499      * @tc.steps: step2. call HandleOverdueDeadline function and compare result.
2500      * @tc.steps: case1: refereeState is DETECTING, isCatchMode is false
2501      * @tc.expected: step2. result equals.
2502      */
2503     longPressRecognizer.refereeState_ = RefereeState::DETECTING;
2504     longPressRecognizer.HandleOverdueDeadline(isCatchMode);
2505     longPressRecognizer.DoRepeat();
2506     EXPECT_EQ(longPressRecognizer.refereeState_, RefereeState::SUCCEED);
2507 }
2508 
2509 /**
2510  * @tc.name: PanRecognizerTest001
2511  * @tc.desc: Test PanRecognizer function: OnAccepted OnRejected
2512  * @tc.type: FUNC
2513  */
2514 HWTEST_F(GesturesTestNg, PanRecognizerTest001, TestSize.Level1)
2515 {
2516     /**
2517      * @tc.steps: step1. create PanRecognizer.
2518      */
2519     RefPtr<PanGestureOption> panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
2520     PanRecognizer panRecognizer = PanRecognizer(panGestureOption);
2521 
2522     /**
2523      * @tc.steps: step2. call OnAccepted function and compare result.
2524      * @tc.expected: step2. result equals.
2525      */
2526     panRecognizer.OnAccepted();
2527     EXPECT_EQ(panRecognizer.refereeState_, RefereeState::SUCCEED);
2528 
2529     /**
2530      * @tc.steps: step3. call OnRejected function and compare result.
2531      * @tc.expected: step3. result equals.
2532      */
2533     panRecognizer.OnRejected();
2534     EXPECT_EQ(panRecognizer.refereeState_, RefereeState::SUCCEED);
2535 }
2536 
2537 /**
2538  * @tc.name: PanRecognizerPanRecognizerTest001
2539  * @tc.desc: Test PanRecognizer function PanRecognizer
2540  * @tc.type: FUNC
2541  */
2542 HWTEST_F(GesturesTestNg, PanRecognizerPanRecognizerTest001, TestSize.Level1)
2543 {
2544     PanDirection panDirection;
2545     panDirection.type = PanDirection::VERTICAL;
2546     PanRecognizer panRecognizer = PanRecognizer(FINGER_NUMBER_OVER_MAX, panDirection, 0.0);
2547     EXPECT_NE(panRecognizer.refereeState_, RefereeState::FAIL);
2548     panDirection.type = PanDirection::NONE;
2549     PanRecognizer panRecognizer1 = PanRecognizer(FINGER_NUMBER_OVER_MAX, panDirection, 0.0);
2550     EXPECT_NE(panRecognizer1.refereeState_, RefereeState::FAIL);
2551     panDirection.type = PanDirection::LEFT;
2552     PanRecognizer panRecognizer2 = PanRecognizer(FINGER_NUMBER, panDirection, 0.0);
2553     EXPECT_NE(panRecognizer2.refereeState_, RefereeState::FAIL);
2554     panDirection.type = PanDirection::RIGHT;
2555     PanRecognizer panRecognizer3 = PanRecognizer(FINGER_NUMBER, panDirection, 0.0);
2556     EXPECT_NE(panRecognizer3.refereeState_, RefereeState::FAIL);
2557     panDirection.type = PanDirection::HORIZONTAL;
2558     PanRecognizer panRecognizer4 = PanRecognizer(FINGER_NUMBER, panDirection, 0.0);
2559     EXPECT_NE(panRecognizer4.refereeState_, RefereeState::FAIL);
2560     panDirection.type = PanDirection::UP;
2561     PanRecognizer panRecognizer5 = PanRecognizer(0, panDirection, 0.0);
2562     EXPECT_NE(panRecognizer5.refereeState_, RefereeState::FAIL);
2563     panDirection.type = PanDirection::DOWN;
2564     PanRecognizer panRecognizer6 = PanRecognizer(0, panDirection, 0.0);
2565     EXPECT_NE(panRecognizer6.refereeState_, RefereeState::FAIL);
2566     panDirection.type = PanDirection::VERTICAL;
2567     PanRecognizer panRecognizer7 = PanRecognizer(0, panDirection, 0.0);
2568     EXPECT_NE(panRecognizer7.refereeState_, RefereeState::FAIL);
2569     panDirection.type = PanDirection::ALL;
2570     PanRecognizer panRecognizer8 = PanRecognizer(0, panDirection, 0.0);
2571     EXPECT_NE(panRecognizer8.refereeState_, RefereeState::FAIL);
2572 }
2573 
2574 /**
2575  * @tc.name: PanRecognizerPanRecognizerTest002
2576  * @tc.desc: Test PanRecognizer function PanRecognizer
2577  * @tc.type: FUNC
2578  */
2579 HWTEST_F(GesturesTestNg, PanRecognizerPanRecognizerTest002, TestSize.Level1)
2580 {
2581     /**
2582      * @tc.steps: step1. create PanRecognizer.
2583      */
2584     RefPtr<PanGestureOption> panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
2585     PanDirection panDirection;
2586     panGestureOption->fingers_ = FINGER_NUMBER_OVER_MAX;
2587     panDirection.type = PanDirection::VERTICAL;
2588     panGestureOption->SetDirection(panDirection);
2589     PanRecognizer panRecognizer = PanRecognizer(panGestureOption);
2590     EXPECT_NE(panRecognizer.refereeState_, RefereeState::SUCCEED);
2591     panGestureOption->fingers_ = FINGER_NUMBER;
2592     panDirection.type = PanDirection::NONE;
2593     panGestureOption->SetDirection(panDirection);
2594     PanRecognizer panRecognizer1 = PanRecognizer(panGestureOption);
2595     EXPECT_NE(panRecognizer1.refereeState_, RefereeState::SUCCEED);
2596     panGestureOption->fingers_ = FINGER_NUMBER_OVER_MAX;
2597     panDirection.type = PanDirection::LEFT;
2598     panGestureOption->SetDirection(panDirection);
2599     PanRecognizer panRecognizer2 = PanRecognizer(panGestureOption);
2600     EXPECT_NE(panRecognizer2.refereeState_, RefereeState::SUCCEED);
2601     panGestureOption->fingers_ = FINGER_NUMBER;
2602     panDirection.type = PanDirection::RIGHT;
2603     panGestureOption->SetDirection(panDirection);
2604     PanRecognizer panRecognizer3 = PanRecognizer(panGestureOption);
2605     EXPECT_NE(panRecognizer3.refereeState_, RefereeState::SUCCEED);
2606     panGestureOption->fingers_ = FINGER_NUMBER_OVER_MAX;
2607     panDirection.type = PanDirection::HORIZONTAL;
2608     panGestureOption->SetDirection(panDirection);
2609     PanRecognizer panRecognizer4 = PanRecognizer(panGestureOption);
2610     EXPECT_NE(panRecognizer4.refereeState_, RefereeState::SUCCEED);
2611     panGestureOption->fingers_ = 0;
2612     panDirection.type = PanDirection::UP;
2613     panGestureOption->SetDirection(panDirection);
2614     PanRecognizer panRecognizer5 = PanRecognizer(panGestureOption);
2615     EXPECT_NE(panRecognizer5.refereeState_, RefereeState::SUCCEED);
2616     panGestureOption->fingers_ = 0;
2617     panDirection.type = PanDirection::DOWN;
2618     panGestureOption->SetDirection(panDirection);
2619     PanRecognizer panRecognizer6 = PanRecognizer(panGestureOption);
2620     EXPECT_NE(panRecognizer6.refereeState_, RefereeState::SUCCEED);
2621     panGestureOption->fingers_ = 0;
2622     panDirection.type = PanDirection::DOWN;
2623     panGestureOption->SetDirection(panDirection);
2624     PanRecognizer panRecognizer7 = PanRecognizer(panGestureOption);
2625     EXPECT_NE(panRecognizer7.refereeState_, RefereeState::SUCCEED);
2626     panGestureOption->fingers_ = 0;
2627     panDirection.type = PanDirection::ALL;
2628     panGestureOption->SetDirection(panDirection);
2629     PanRecognizer panRecognizer8 = PanRecognizer(panGestureOption);
2630     EXPECT_NE(panRecognizer8.refereeState_, RefereeState::SUCCEED);
2631 }
2632 
2633 /**
2634  * @tc.name: PanRecognizerTest002
2635  * @tc.desc: Test PanRecognizer function: HandleTouchDownEvent
2636  * @tc.type: FUNC
2637  */
2638 HWTEST_F(GesturesTestNg, PanRecognizerTest002, TestSize.Level1)
2639 {
2640     /**
2641      * @tc.steps: step1. create PanRecognizer.
2642      */
2643     RefPtr<PanGestureOption> panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
2644     PanRecognizer panRecognizer = PanRecognizer(panGestureOption);
2645 
2646     /**
2647      * @tc.steps: step2. call HandleTouchDown function and compare result.
2648      * @tc.steps: case1: call TouchEvent, refereeState is SUCCEED, return
2649      * @tc.expected: step2. result equals.
2650      */
2651     TouchEvent touchEvent;
2652     panRecognizer.refereeState_ = RefereeState::SUCCEED;
2653     panRecognizer.HandleTouchDownEvent(touchEvent);
2654     EXPECT_EQ(panRecognizer.touchPoints_.size(), 1);
2655 
2656     /**
2657      * @tc.steps: step2. call HandleTouchDown function and compare result.
2658      * @tc.steps: case2: call TouchEvent, normal case
2659      * @tc.expected: step2. result equals.
2660      */
2661     panRecognizer.refereeState_ = RefereeState::PENDING;
2662     panRecognizer.HandleTouchDownEvent(touchEvent);
2663     EXPECT_EQ(panRecognizer.deviceId_, touchEvent.deviceId);
2664     EXPECT_EQ(panRecognizer.deviceType_, touchEvent.sourceType);
2665     EXPECT_EQ(panRecognizer.inputEventType_, InputEventType::TOUCH_SCREEN);
2666 
2667     /**
2668      * @tc.steps: step2. call HandleTouchDown function and compare result.
2669      * @tc.steps: case3: call TouchEvent, set fingerNum != fingers_
2670      * @tc.expected: step2. result equals.
2671      */
2672     panRecognizer.fingers_ = FINGER_NUMBER;
2673     panRecognizer.HandleTouchDownEvent(touchEvent);
2674     EXPECT_EQ(panRecognizer.refereeState_, RefereeState::DETECTING);
2675 
2676     /**
2677      * @tc.steps: step2. call HandleTouchDown function and compare result.
2678      * @tc.steps: case4: call TouchEvent, set fingerNum = fingers_
2679      * @tc.expected: step2. result equals.
2680      */
2681     panRecognizer.fingers_ = 1;
2682     panRecognizer.HandleTouchDownEvent(touchEvent);
2683     EXPECT_EQ(panRecognizer.refereeState_, RefereeState::DETECTING);
2684 
2685     /**
2686      * @tc.steps: step2. call HandleTouchDown function and compare result.
2687      * @tc.steps: case4: call AxisEvent, refereeState is SUCCEED, return
2688      * @tc.expected: step2. result equals.
2689      */
2690     AxisEvent axisEvent;
2691     panRecognizer.refereeState_ = RefereeState::SUCCEED;
2692     panRecognizer.touchPoints_.clear();
2693     panRecognizer.HandleTouchDownEvent(axisEvent);
2694     EXPECT_EQ(panRecognizer.touchPoints_.size(), 1);
2695 
2696     /**
2697      * @tc.steps: step2. call HandleTouchDown function and compare result.
2698      * @tc.steps: case5: call AxisEvent, refereeState is PENDING, normal case
2699      * @tc.expected: step2. result equals.
2700      */
2701     panRecognizer.refereeState_ = RefereeState::PENDING;
2702     panRecognizer.HandleTouchDownEvent(axisEvent);
2703     EXPECT_EQ(panRecognizer.deviceId_, axisEvent.deviceId);
2704     EXPECT_EQ(panRecognizer.deviceType_, axisEvent.sourceType);
2705     EXPECT_EQ(panRecognizer.inputEventType_, InputEventType::AXIS);
2706     EXPECT_EQ(panRecognizer.refereeState_, RefereeState::DETECTING);
2707 }
2708 
2709 /**
2710  * @tc.name: PanRecognizerHandleTouchDownEventTest001
2711  * @tc.desc: Test PanRecognizer function: HandleTouchDownEvent
2712  * @tc.type: FUNC
2713  */
2714 HWTEST_F(GesturesTestNg, PanRecognizerHandleTouchDownEventTest001, TestSize.Level1)
2715 {
2716     /**
2717      * @tc.steps: step1. create PanRecognizer.
2718      */
2719     RefPtr<PanGestureOption> panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
2720     PanRecognizer panRecognizer = PanRecognizer(panGestureOption);
2721 
2722     /**
2723      * @tc.steps: step2. call HandleTouchDown function and compare result.
2724      * @tc.steps: case1: call TouchEvent, refereeState is SUCCEED, return
2725      * @tc.expected: step2. result equals.
2726      */
2727     TouchEvent touchEvent;
2728     touchEvent.sourceType = SourceType::MOUSE;
2729     panRecognizer.fingers_ = 1;
2730     panRecognizer.refereeState_ = RefereeState::SUCCEED;
2731     panRecognizer.HandleTouchDownEvent(touchEvent);
2732     EXPECT_EQ(panRecognizer.touchPoints_.size(), 1);
2733 
2734     /**
2735      * @tc.steps: step2. call HandleTouchDown function and compare result.
2736      * @tc.steps: case2: call TouchEvent, normal case
2737      * @tc.expected: step2. result equals.
2738      */
2739     panRecognizer.refereeState_ = RefereeState::PENDING;
2740     panRecognizer.HandleTouchDownEvent(touchEvent);
2741     EXPECT_EQ(panRecognizer.deviceId_, touchEvent.deviceId);
2742     EXPECT_EQ(panRecognizer.deviceType_, touchEvent.sourceType);
2743 
2744     /**
2745      * @tc.steps: step2. call HandleTouchDown function and compare result.
2746      * @tc.steps: case3: call TouchEvent, set fingerNum != fingers_
2747      * @tc.expected: step2. result equals.
2748      */
2749     panRecognizer.fingers_ = FINGER_NUMBER;
2750     panRecognizer.HandleTouchDownEvent(touchEvent);
2751     EXPECT_EQ(panRecognizer.refereeState_, RefereeState::DETECTING);
2752 
2753     /**
2754      * @tc.steps: step2. call HandleTouchDown function and compare result.
2755      * @tc.steps: case4: call TouchEvent, set fingerNum = fingers_
2756      * @tc.expected: step2. result equals.
2757      */
2758     panRecognizer.fingers_ = 1;
2759     panRecognizer.HandleTouchDownEvent(touchEvent);
2760     EXPECT_EQ(panRecognizer.refereeState_, RefereeState::DETECTING);
2761 
2762     /**
2763      * @tc.steps: step2. call HandleTouchDown function and compare result.
2764      * @tc.steps: case4: call AxisEvent, refereeState is SUCCEED, return
2765      * @tc.expected: step2. result equals.
2766      */
2767     AxisEvent axisEvent;
2768     panRecognizer.refereeState_ = RefereeState::SUCCEED;
2769     panRecognizer.touchPoints_.clear();
2770     panRecognizer.HandleTouchDownEvent(axisEvent);
2771     EXPECT_EQ(panRecognizer.touchPoints_.size(), 1);
2772 
2773     /**
2774      * @tc.steps: step2. call HandleTouchDown function and compare result.
2775      * @tc.steps: case5: call AxisEvent, refereeState is PENDING, normal case
2776      * @tc.expected: step2. result equals.
2777      */
2778     panRecognizer.refereeState_ = RefereeState::PENDING;
2779     panRecognizer.HandleTouchDownEvent(axisEvent);
2780     EXPECT_EQ(panRecognizer.deviceId_, axisEvent.deviceId);
2781     EXPECT_EQ(panRecognizer.deviceType_, axisEvent.sourceType);
2782     EXPECT_EQ(panRecognizer.inputEventType_, InputEventType::AXIS);
2783     EXPECT_EQ(panRecognizer.refereeState_, RefereeState::DETECTING);
2784 }
2785 
2786 /**
2787  * @tc.name: PanRecognizerTest003
2788  * @tc.desc: Test PanRecognizer function: HandleTouchUpEvent
2789  * @tc.type: FUNC
2790  */
2791 HWTEST_F(GesturesTestNg, PanRecognizerTest003, TestSize.Level1)
2792 {
2793     /**
2794      * @tc.steps: step1. create PanRecognizer.
2795      */
2796     RefPtr<PanGestureOption> panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
2797     PanRecognizer panRecognizer = PanRecognizer(panGestureOption);
2798 
2799     /**
2800      * @tc.steps: step2. call HandleTouchUp function and compare result.
2801      * @tc.steps: case1: refereeState is SUCCEED
2802      * @tc.expected: step2. result equals.
2803      */
2804     TouchEvent touchEvent;
2805     panRecognizer.refereeState_ = RefereeState::SUCCEED;
2806     panRecognizer.HandleTouchUpEvent(touchEvent);
2807     EXPECT_EQ(panRecognizer.globalPoint_.GetX(), touchEvent.x);
2808     EXPECT_EQ(panRecognizer.globalPoint_.GetY(), touchEvent.y);
2809     EXPECT_EQ(panRecognizer.lastTouchEvent_.id, touchEvent.id);
2810 
2811     /**
2812      * @tc.steps: step2. call HandleTouchUp function and compare result.
2813      * @tc.steps: case2: refereeState is SUCCEED, size > 1
2814      * @tc.expected: step2. result equals.
2815      */
2816     panRecognizer.touchPoints_[0] = touchEvent;
2817     panRecognizer.touchPoints_[1] = touchEvent;
2818     panRecognizer.HandleTouchUpEvent(touchEvent);
2819     EXPECT_EQ(panRecognizer.globalPoint_.GetX(), touchEvent.x);
2820     EXPECT_EQ(panRecognizer.globalPoint_.GetY(), touchEvent.y);
2821     EXPECT_EQ(panRecognizer.lastTouchEvent_.id, touchEvent.id);
2822 
2823     /**
2824      * @tc.steps: step2. call HandleTouchUp function and compare result.
2825      * @tc.steps: case3: refereeState is FAIL
2826      * @tc.expected: step2. result equals.
2827      */
2828     panRecognizer.refereeState_ = RefereeState::FAIL;
2829     EXPECT_EQ(panRecognizer.globalPoint_.GetX(), touchEvent.x);
2830     EXPECT_EQ(panRecognizer.globalPoint_.GetY(), touchEvent.y);
2831     EXPECT_EQ(panRecognizer.lastTouchEvent_.id, touchEvent.id);
2832 
2833     /**
2834      * @tc.steps: step3. call HandleTouchUp function and compare result.
2835      * @tc.steps: case1: refereeState is SUCCEED
2836      * @tc.expected: step2. result equals.
2837      */
2838     AxisEvent axisEvent;
2839     panRecognizer.refereeState_ = RefereeState::SUCCEED;
2840     panRecognizer.HandleTouchUpEvent(axisEvent);
2841     EXPECT_EQ(panRecognizer.globalPoint_.GetX(), axisEvent.x);
2842     EXPECT_EQ(panRecognizer.globalPoint_.GetY(), axisEvent.y);
2843 
2844     /**
2845      * @tc.steps: step3. call HandleTouchUp function and compare result.
2846      * @tc.steps: case2: refereeState is FAIL
2847      * @tc.expected: step2. result equals.
2848      */
2849     panRecognizer.refereeState_ = RefereeState::FAIL;
2850     panRecognizer.HandleTouchUpEvent(axisEvent);
2851     EXPECT_EQ(panRecognizer.globalPoint_.GetX(), axisEvent.x);
2852     EXPECT_EQ(panRecognizer.globalPoint_.GetY(), axisEvent.y);
2853 }
2854 
2855 /**
2856  * @tc.name: PanRecognizerHandleTouchUpEventTest001
2857  * @tc.desc: Test PanRecognizer function: HandleTouchUpEvent
2858  * @tc.type: FUNC
2859  */
2860 HWTEST_F(GesturesTestNg, PanRecognizerHandleTouchUpEventTest001, TestSize.Level1)
2861 {
2862     /**
2863      * @tc.steps: step1. create PanRecognizer.
2864      */
2865     RefPtr<PanGestureOption> panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
2866     PanRecognizer panRecognizer = PanRecognizer(panGestureOption);
2867 
2868     /**
2869      * @tc.steps: step2. call HandleTouchUp function and compare result.
2870      * @tc.steps: case1: refereeState is SUCCEED
2871      * @tc.expected: step2. result equals.
2872      */
2873     TouchEvent touchEvent;
2874     panRecognizer.refereeState_ = RefereeState::SUCCEED;
2875     panRecognizer.currentFingers_ = panRecognizer.fingers_;
2876     panRecognizer.HandleTouchUpEvent(touchEvent);
2877     EXPECT_EQ(panRecognizer.globalPoint_.GetX(), touchEvent.x);
2878     EXPECT_EQ(panRecognizer.globalPoint_.GetY(), touchEvent.y);
2879     EXPECT_EQ(panRecognizer.lastTouchEvent_.id, touchEvent.id);
2880 
2881     /**
2882      * @tc.steps: step2. call HandleTouchUp function and compare result.
2883      * @tc.steps: case2: refereeState is SUCCEED, size > 1
2884      * @tc.expected: step2. result equals.
2885      */
2886     panRecognizer.touchPoints_[0] = touchEvent;
2887     panRecognizer.touchPoints_[1] = touchEvent;
2888     panRecognizer.currentFingers_ = panRecognizer.fingers_;
2889     panRecognizer.refereeState_ = RefereeState::FAIL;
2890     panRecognizer.HandleTouchUpEvent(touchEvent);
2891     EXPECT_EQ(panRecognizer.globalPoint_.GetX(), touchEvent.x);
2892     EXPECT_EQ(panRecognizer.globalPoint_.GetY(), touchEvent.y);
2893     EXPECT_EQ(panRecognizer.lastTouchEvent_.id, touchEvent.id);
2894 }
2895 
2896 /**
2897  * @tc.name: PanRecognizerHandleTouchMoveEventTest001
2898  * @tc.desc: Test PanRecognizer function: HandleTouchMoveEvent
2899  * @tc.type: FUNC
2900  */
2901 HWTEST_F(GesturesTestNg, PanRecognizerHandleTouchMoveEventTest001, TestSize.Level1)
2902 {
2903     /**
2904      * @tc.steps: step1. create PanRecognizer.
2905      */
2906     RefPtr<PanGestureOption> panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
2907     PanRecognizer panRecognizer = PanRecognizer(panGestureOption);
2908 
2909     /**
2910      * @tc.steps: step2. call HandleTouchUp function and compare result.
2911      * @tc.steps: case1: direction.type is VERTICAL
2912      * @tc.expected: step2. result equals.
2913      */
2914     TouchEvent touchEvent;
2915     panRecognizer.refereeState_ = RefereeState::SUCCEED;
2916     panRecognizer.touchPoints_[touchEvent.id] = touchEvent;
2917     panRecognizer.direction_.type = PanDirection::VERTICAL;
2918     panRecognizer.isFlushTouchEventsEnd_ = true;
2919     panRecognizer.currentFingers_ = panRecognizer.fingers_;
2920     panRecognizer.HandleTouchMoveEvent(touchEvent);
2921     EXPECT_EQ(panRecognizer.globalPoint_.GetX(), touchEvent.x);
2922     EXPECT_EQ(panRecognizer.globalPoint_.GetY(), touchEvent.y);
2923     EXPECT_EQ(panRecognizer.delta_.GetX(), 0);
2924     EXPECT_EQ(panRecognizer.delta_.GetY(), 0);
2925     EXPECT_EQ(panRecognizer.averageDistance_.GetX(), 0);
2926 
2927     /**
2928      * @tc.steps: step2. call HandleTouchUp function and compare result.
2929      * @tc.steps: case2: direction.type is HORIZONTAL
2930      * @tc.expected: step2. result equals.
2931      */
2932     panRecognizer.direction_.type = PanDirection::HORIZONTAL;
2933     panRecognizer.currentFingers_ = panRecognizer.fingers_;
2934     panRecognizer.HandleTouchMoveEvent(touchEvent);
2935     EXPECT_EQ(panRecognizer.averageDistance_.GetY(), 0);
2936 
2937     /**
2938      * @tc.steps: step2. call HandleTouchUp function and compare result.
2939      * @tc.steps: case3: isFlushTouchEventsEnd_ is false
2940      * @tc.expected: step2. result equals.
2941      */
2942     AxisEvent axisEvent;
2943     panRecognizer.refereeState_ = RefereeState::SUCCEED;
2944     panRecognizer.touchPoints_.clear();
2945     panRecognizer.HandleTouchDownEvent(axisEvent);
2946     EXPECT_EQ(panRecognizer.touchPoints_.size(), 1);
2947 
2948     /**
2949      * @tc.steps: step2. call HandleTouchUp function and compare result.
2950      * @tc.steps: case3: isFlushTouchEventsEnd_ is true
2951      * @tc.expected: step2. result equals.
2952      */
2953     panRecognizer.isFlushTouchEventsEnd_ = true;
2954     panRecognizer.currentFingers_ = panRecognizer.fingers_;
2955     panRecognizer.HandleTouchMoveEvent(touchEvent);
2956     EXPECT_EQ(panRecognizer.averageDistance_.GetY(), 0);
2957 }
2958 
2959 /**
2960  * @tc.name: PanRecognizerTest004
2961  * @tc.desc: Test PanRecognizer function: HandleTouchMoveEvent
2962  * @tc.type: FUNC
2963  */
2964 HWTEST_F(GesturesTestNg, PanRecognizerTest004, TestSize.Level1)
2965 {
2966     /**
2967      * @tc.steps: step1. create PanRecognizer.
2968      */
2969     RefPtr<PanGestureOption> panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
2970     PanRecognizer panRecognizer = PanRecognizer(panGestureOption);
2971 
2972     /**
2973      * @tc.steps: step2. call HandleTouchUp function and compare result.
2974      * @tc.steps: case1: direction.type is VERTICAL
2975      * @tc.expected: step2. result equals.
2976      */
2977     TouchEvent touchEvent;
2978     panRecognizer.refereeState_ = RefereeState::SUCCEED;
2979     panRecognizer.touchPoints_[touchEvent.id] = touchEvent;
2980     panRecognizer.direction_.type = PanDirection::VERTICAL;
2981     panRecognizer.isFlushTouchEventsEnd_ = true;
2982     panRecognizer.HandleTouchMoveEvent(touchEvent);
2983     EXPECT_EQ(panRecognizer.globalPoint_.GetX(), touchEvent.x);
2984     EXPECT_EQ(panRecognizer.globalPoint_.GetY(), touchEvent.y);
2985     EXPECT_EQ(panRecognizer.delta_.GetX(), 0);
2986     EXPECT_EQ(panRecognizer.delta_.GetY(), 0);
2987     EXPECT_EQ(panRecognizer.averageDistance_.GetX(), 0);
2988 
2989     /**
2990      * @tc.steps: step2. call HandleTouchUp function and compare result.
2991      * @tc.steps: case2: direction.type is HORIZONTAL
2992      * @tc.expected: step2. result equals.
2993      */
2994     panRecognizer.direction_.type = PanDirection::HORIZONTAL;
2995     panRecognizer.HandleTouchMoveEvent(touchEvent);
2996     EXPECT_EQ(panRecognizer.averageDistance_.GetY(), 0);
2997 
2998     /**
2999      * @tc.steps: step2. call HandleTouchUp function and compare result.
3000      * @tc.steps: case3: isFlushTouchEventsEnd_ is false
3001      * @tc.expected: step2. result equals.
3002      */
3003     panRecognizer.isFlushTouchEventsEnd_ = false;
3004     panRecognizer.HandleTouchMoveEvent(touchEvent);
3005     EXPECT_EQ(panRecognizer.averageDistance_.GetY(), 0);
3006 }
3007 
3008 /**
3009  * @tc.name: PanRecognizerTest005
3010  * @tc.desc: Test PanRecognizer function: OnFlushTouchEvents begin end
3011  * @tc.type: FUNC
3012  */
3013 HWTEST_F(GesturesTestNg, PanRecognizerTest005, TestSize.Level1)
3014 {
3015     /**
3016      * @tc.steps: step1. create PanRecognizer.
3017      */
3018     RefPtr<PanGestureOption> panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
3019     PanRecognizer panRecognizer = PanRecognizer(panGestureOption);
3020 
3021     /**
3022      * @tc.steps: step2. call HandleTouchUp function and compare result.
3023      * @tc.expected: step2. result equals.
3024      */
3025     panRecognizer.OnFlushTouchEventsBegin();
3026     EXPECT_EQ(panRecognizer.isFlushTouchEventsEnd_, false);
3027     panRecognizer.OnFlushTouchEventsEnd();
3028     EXPECT_EQ(panRecognizer.isFlushTouchEventsEnd_, true);
3029 }
3030 
3031 /**
3032  * @tc.name: PanRecognizerTest006
3033  * @tc.desc: Test PanRecognizer function: IsPanGestureAccept
3034  * @tc.type: FUNC
3035  */
3036 HWTEST_F(GesturesTestNg, PanRecognizerTest006, TestSize.Level1)
3037 {
3038     /**
3039      * @tc.steps: step1. create PanRecognizer.
3040      */
3041     RefPtr<PanGestureOption> panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
3042     PanRecognizer panRecognizer = PanRecognizer(panGestureOption);
3043 
3044     /**
3045      * @tc.steps: step2. case1: PanDirection::ALL, fabs(offset) >= distance_.
3046      * @tc.expected: step2. return ACCEPT.
3047      */
3048     PanRecognizer::GestureAcceptResult result;
3049     panRecognizer.direction_.type = PanDirection::ALL;
3050     panRecognizer.distance_ = 0;
3051     result = panRecognizer.IsPanGestureAccept();
3052     EXPECT_EQ(result, PanRecognizer::GestureAcceptResult::ACCEPT);
3053 
3054     /**
3055      * @tc.steps: step2. case2: PanDirection::ALL, fabs(offset) < distance_.
3056      * @tc.expected: step2. return DETECTING.
3057      */
3058     panRecognizer.direction_.type = PanDirection::ALL;
3059     panRecognizer.distance_ = 1;
3060     result = panRecognizer.IsPanGestureAccept();
3061     EXPECT_EQ(result, PanRecognizer::GestureAcceptResult::DETECTING);
3062 
3063     /**
3064      * @tc.steps: step2. case3: GetX > GetY, GetX < distance, PanDirection::HORIZONTAL.
3065      * @tc.expected: step2. return DETECTING.
3066      */
3067     panRecognizer.direction_.type = PanDirection::HORIZONTAL;
3068     panRecognizer.averageDistance_ = Offset(0, -1);
3069     panRecognizer.distance_ = 1;
3070     result = panRecognizer.IsPanGestureAccept();
3071     EXPECT_EQ(result, PanRecognizer::GestureAcceptResult::DETECTING);
3072 
3073     /**
3074      * @tc.steps: step2. case4: GetX > GetY, GetX > 0, GetX > distance_, PanDirection::LEFT.
3075      * @tc.expected: step2. return REJECT.
3076      */
3077     panRecognizer.direction_.type = PanDirection::LEFT;
3078     panRecognizer.averageDistance_ = Offset(1, 0);
3079     panRecognizer.distance_ = 0;
3080     result = panRecognizer.IsPanGestureAccept();
3081     EXPECT_EQ(result, PanRecognizer::GestureAcceptResult::REJECT);
3082 
3083     /**
3084      * @tc.steps: step2. case5: GetX > GetY, GetX > 0, GetX > distance_, PanDirection::VERTICAL.
3085      * @tc.expected: step2. return REJECT.
3086      */
3087     panRecognizer.direction_.type = PanDirection::VERTICAL;
3088     panRecognizer.averageDistance_ = Offset(1, 0);
3089     panRecognizer.distance_ = 0;
3090     result = panRecognizer.IsPanGestureAccept();
3091     EXPECT_EQ(result, PanRecognizer::GestureAcceptResult::DETECTING);
3092 
3093     /**
3094      * @tc.steps: step2. case6: GetX > GetY, GetX = distance_ = 0, PanDirection::VERTICAL.
3095      * @tc.expected: step2. return ACCEPT.
3096      */
3097     panRecognizer.direction_.type = PanDirection::VERTICAL;
3098     panRecognizer.averageDistance_ = Offset(0, -1);
3099     panRecognizer.distance_ = 0;
3100     result = panRecognizer.IsPanGestureAccept();
3101     EXPECT_EQ(result, PanRecognizer::GestureAcceptResult::ACCEPT);
3102 }
3103 
3104 /**
3105  * @tc.name: PanRecognizerTest007
3106  * @tc.desc: Test PanRecognizer function: IsPanGestureAccept
3107  * @tc.type: FUNC
3108  */
3109 HWTEST_F(GesturesTestNg, PanRecognizerTest007, TestSize.Level1)
3110 {
3111     /**
3112      * @tc.steps: step1. create PanRecognizer.
3113      */
3114     RefPtr<PanGestureOption> panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
3115     PanRecognizer panRecognizer = PanRecognizer(panGestureOption);
3116 
3117     /**
3118      * @tc.steps: step2. case7: GetX <= GetY, GetY < distance_, PanDirection::VERTICAL.
3119      * @tc.expected: step2. return DETECTING.
3120      */
3121     PanRecognizer::GestureAcceptResult result;
3122     panRecognizer.direction_.type = PanDirection::VERTICAL;
3123     panRecognizer.averageDistance_ = Offset(-1, 0);
3124     panRecognizer.distance_ = 1;
3125     result = panRecognizer.IsPanGestureAccept();
3126     EXPECT_EQ(result, PanRecognizer::GestureAcceptResult::DETECTING);
3127 
3128     /**
3129      * @tc.steps: step2. case8: GetX <= GetY, GetY > distance_, GetY < 0, PanDirection::DOWN.
3130      * @tc.expected: step2. return ACCEPT.
3131      */
3132     panRecognizer.direction_.type = PanDirection::DOWN;
3133     panRecognizer.averageDistance_ = Offset(-1, 1);
3134     panRecognizer.touchPointsDistance_[0] = Offset(-1, 1);
3135     panRecognizer.distance_ = 0;
3136     result = panRecognizer.IsPanGestureAccept();
3137     EXPECT_EQ(result, PanRecognizer::GestureAcceptResult::ACCEPT);
3138 
3139     /**
3140      * @tc.steps: step2. case9: GetX <= GetY, GetY > distance_, GetY > 0, PanDirection::UP.
3141      * @tc.expected: step2. return REJECT.
3142      */
3143     panRecognizer.direction_.type = PanDirection::UP;
3144     panRecognizer.averageDistance_ = Offset(-1, 1);
3145     panRecognizer.distance_ = 0;
3146     result = panRecognizer.IsPanGestureAccept();
3147     EXPECT_EQ(result, PanRecognizer::GestureAcceptResult::REJECT);
3148 
3149     /**
3150      * @tc.steps: step2. case10: GetX <= GetY, GetY = distance_ = 0, PanDirection::UP.
3151      * @tc.expected: step2. return DETECTING.
3152      */
3153     panRecognizer.direction_.type = PanDirection::UP;
3154     panRecognizer.averageDistance_ = Offset(-1, 0);
3155     panRecognizer.distance_ = 0;
3156     result = panRecognizer.IsPanGestureAccept();
3157     EXPECT_EQ(result, PanRecognizer::GestureAcceptResult::DETECTING);
3158 }
3159 
3160 /**
3161  * @tc.name: PanRecognizerTest008
3162  * @tc.desc: Test PanRecognizer function: HandleTouchCancelEvent
3163  * @tc.type: FUNC
3164  */
3165 HWTEST_F(GesturesTestNg, PanRecognizerTest008, TestSize.Level1)
3166 {
3167     /**
3168      * @tc.steps: step1. create PanRecognizer.
3169      */
3170     RefPtr<PanGestureOption> panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
3171     PanRecognizer panRecognizer = PanRecognizer(panGestureOption);
3172 
3173     /**
3174      * @tc.steps: step2. call HandleTouchCancel function and compare result.
3175      * @tc.steps: case1: Touch, refereeState is SUCCEED
3176      * @tc.expected: step2. result equals.
3177      */
3178     TouchEvent touchEvent;
3179     panRecognizer.refereeState_ = RefereeState::SUCCEED;
3180     panRecognizer.HandleTouchCancelEvent(touchEvent);
3181     EXPECT_EQ(panRecognizer.touchPoints_.size(), 0);
3182 
3183     /**
3184      * @tc.steps: step2. call HandleTouchCancel function and compare result.
3185      * @tc.steps: case2: Touch, refereeState is FAIL
3186      * @tc.expected: step2. result equals.
3187      */
3188     panRecognizer.refereeState_ = RefereeState::FAIL;
3189     panRecognizer.HandleTouchCancelEvent(touchEvent);
3190     EXPECT_EQ(panRecognizer.touchPoints_.size(), 0);
3191 
3192     /**
3193      * @tc.steps: step3. call HandleTouchCancel function and compare result.
3194      * @tc.steps: case1: Axis, refereeState is SUCCEED
3195      * @tc.expected: step2. result equals.
3196      */
3197     AxisEvent axisEvent;
3198     panRecognizer.refereeState_ = RefereeState::SUCCEED;
3199     panRecognizer.HandleTouchCancelEvent(axisEvent);
3200     EXPECT_EQ(panRecognizer.touchPoints_.size(), 0);
3201 
3202     /**
3203      * @tc.steps: step3. call HandleTouchCancel function and compare result.
3204      * @tc.steps: case2: Axis, refereeState is FAIL
3205      * @tc.expected: step2. result equals.
3206      */
3207     panRecognizer.refereeState_ = RefereeState::FAIL;
3208     panRecognizer.HandleTouchCancelEvent(axisEvent);
3209     EXPECT_EQ(panRecognizer.touchPoints_.size(), 0);
3210 }
3211 
3212 /**
3213  * @tc.name: PanRecognizerTest009
3214  * @tc.desc: Test PanRecognizer function: SendCallbackMsg
3215  * @tc.type: FUNC
3216  */
3217 HWTEST_F(GesturesTestNg, PanRecognizerTest009, TestSize.Level1)
3218 {
3219     /**
3220      * @tc.steps: step1. create PanRecognizer.
3221      */
3222     RefPtr<PanGestureOption> panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
3223     PanRecognizer panRecognizer = PanRecognizer(panGestureOption);
3224 
3225     /**
3226      * @tc.steps: step2. call SendCallbackMsg function and compare result.
3227      * @tc.steps: case1: onAction is no, *onAction is no
3228      * @tc.expected: step2. result equals.
3229      */
3230     std::unique_ptr<GestureEventFunc> onAction;
3231     panRecognizer.SendCallbackMsg(onAction);
3232     EXPECT_EQ(panRecognizer.touchPoints_.size(), 0);
3233 
3234     /**
3235      * @tc.steps: step2. call SendCallbackMsg function and compare result.
3236      * @tc.steps: case2: onAction is yes, *onAction is no
3237      * @tc.expected: step2. result equals.
3238      */
3239     onAction = std::make_unique<GestureEventFunc>();
3240     panRecognizer.SendCallbackMsg(onAction);
3241     EXPECT_EQ(panRecognizer.touchPoints_.size(), 0);
3242 
3243     /**
3244      * @tc.steps: step2. call SendCallbackMsg function and compare result.
3245      * @tc.steps: case3: onAction is yes, *onAction is yes, touchEvent is empty, type is AXIS
3246      * @tc.expected: step2. result equals.
3247      */
__anona2ace5f30e02(GestureEvent) 3248     onAction = std::make_unique<GestureEventFunc>([](GestureEvent) {});
3249     panRecognizer.inputEventType_ = InputEventType::AXIS;
3250     panRecognizer.SendCallbackMsg(onAction);
3251     EXPECT_EQ(panRecognizer.touchPoints_.size(), 0);
3252 
3253     /**
3254      * @tc.steps: step2. call SendCallbackMsg function and compare result.
3255      * @tc.steps: case4: touchEvent is not empty, have no X and Y, type is not AXIS
3256      * @tc.expected: step2. result equals.
3257      */
3258     TouchEvent touchEvent;
3259     panRecognizer.lastTouchEvent_ = touchEvent;
3260     panRecognizer.SendCallbackMsg(onAction);
3261     EXPECT_EQ(panRecognizer.touchPoints_.size(), 0);
3262 
3263     /**
3264      * @tc.steps: step2. call SendCallbackMsg function and compare result.
3265      * @tc.steps: case4: touchEvent is not empty, have no X and Y
3266      * @tc.expected: step2. result equals.
3267      */
3268     touchEvent.tiltX = 0.0f;
3269     touchEvent.tiltY = 0.0f;
3270     panRecognizer.lastTouchEvent_ = touchEvent;
3271     panRecognizer.SendCallbackMsg(onAction);
3272     EXPECT_EQ(panRecognizer.touchPoints_.size(), 0);
3273 }
3274 
3275 /**
3276  * @tc.name: PanRecognizerSendCallbackMsgTest002
3277  * @tc.desc: Test PanRecognizer function: SendCallbackMsg
3278  * @tc.type: FUNC
3279  */
3280 HWTEST_F(GesturesTestNg, PanRecognizerSendCallbackMsgTest002, TestSize.Level1)
3281 {
3282     /**
3283      * @tc.steps: step1. create PanRecognizer.
3284      */
3285     RefPtr<PanGestureOption> panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
3286     PanRecognizer panRecognizer = PanRecognizer(panGestureOption);
3287 
3288     /**
3289      * @tc.steps: step2. SendCallbackMsg
3290      * @tc.expected: step2. result equals.
3291      */
3292     TouchEvent touchEvent;
3293     panRecognizer.refereeState_ = RefereeState::SUCCEED;
3294     panRecognizer.HandleTouchDownEvent(touchEvent);
3295     EXPECT_EQ(panRecognizer.touchPoints_.size(), 1);
3296     std::unique_ptr<GestureEventFunc> onAction;
3297     panRecognizer.SendCallbackMsg(onAction);
3298     EXPECT_EQ(panRecognizer.touchPoints_.size(), 1);
3299 }
3300 
3301 /**
3302  * @tc.name: PanRecognizerSendCallbackMsgTest001
3303  * @tc.desc: Test PanRecognizer function: SendCallbackMsg
3304  * @tc.type: FUNC
3305  */
3306 HWTEST_F(GesturesTestNg, PanRecognizerSendCallbackMsgTest001, TestSize.Level1)
3307 {
3308     /**
3309      * @tc.steps: step1. create PanRecognizer.
3310      */
3311     RefPtr<PanGestureOption> panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
3312     PanRecognizer panRecognizer = PanRecognizer(panGestureOption);
3313 
3314     /**
3315      * @tc.steps: step2. call SendCallbackMsg function and compare result.
3316      * @tc.steps: case1: onAction is no, *onAction is no
3317      * @tc.expected: step2. result equals.
3318      */
3319     std::unique_ptr<GestureEventFunc> onAction = std::make_unique<GestureEventFunc>();
3320     panRecognizer.inputEventType_ = InputEventType::TOUCH_SCREEN;
3321     panRecognizer.SendCallbackMsg(onAction);
3322     EXPECT_EQ(panRecognizer.touchPoints_.size(), 0);
3323 }
3324 
3325 /**
3326  * @tc.name: PanRecognizerTest010
3327  * @tc.desc: Test PanRecognizer function: ReconcileFrom
3328  * @tc.type: FUNC
3329  */
3330 HWTEST_F(GesturesTestNg, PanRecognizerTest010, TestSize.Level1)
3331 {
3332     /**
3333      * @tc.steps: step1. create PanRecognizer.
3334      */
3335     RefPtr<PanGestureOption> panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
3336     PanRecognizer panRecognizer = PanRecognizer(panGestureOption);
3337     RefPtr<PanRecognizer> panRecognizerPtr = AceType::MakeRefPtr<PanRecognizer>(panGestureOption);
3338 
3339     /**
3340      * @tc.steps: step2. call ReconcileFrom function
3341      * @tc.steps: case1: recognizer is nullptr
3342      * @tc.expected: step2. result equals.
3343      */
3344     auto result = panRecognizer.ReconcileFrom(nullptr);
3345     EXPECT_EQ(result, false);
3346 
3347     /**
3348      * @tc.steps: step2. call ReconcileFrom function
3349      * @tc.steps: case2: recognizer is normal
3350      * @tc.expected: step2. result equals.
3351      */
3352     result = panRecognizer.ReconcileFrom(panRecognizerPtr);
3353     EXPECT_EQ(result, true);
3354 
3355     /**
3356      * @tc.steps: step2. call ReconcileFrom function
3357      * @tc.steps: case3: fingers not same
3358      * @tc.expected: step2. result equals.
3359      */
3360     panRecognizer.fingers_ = panRecognizerPtr->fingers_ + 1;
3361     result = panRecognizer.ReconcileFrom(panRecognizerPtr);
3362     EXPECT_EQ(result, false);
3363 
3364     /**
3365      * @tc.steps: step2. call ReconcileFrom function
3366      * @tc.steps: case4: fingers not same, priority not same
3367      * @tc.expected: step2. result equals.
3368      */
3369     panRecognizer.priorityMask_ = GestureMask::End;
3370     result = panRecognizer.ReconcileFrom(panRecognizerPtr);
3371     EXPECT_EQ(result, false);
3372 
3373     /**
3374      * @tc.steps: step2. call ReconcileFrom function
3375      * @tc.steps: case4: fingers same, priority not same
3376      * @tc.expected: step2. result equals.
3377      */
3378     panRecognizer.fingers_ = panRecognizerPtr->fingers_;
3379     result = panRecognizer.ReconcileFrom(panRecognizerPtr);
3380     EXPECT_EQ(result, false);
3381 }
3382 
3383 /**
3384  * @tc.name: PanRecognizerTest011
3385  * @tc.desc: Test PanRecognizer function: SetDirection
3386  * @tc.type: FUNC
3387  */
3388 HWTEST_F(GesturesTestNg, PanRecognizerTest011, TestSize.Level1)
3389 {
3390     /**
3391      * @tc.steps: step1. create PanRecognizer.
3392      */
3393     RefPtr<PanGestureOption> panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
3394     PanRecognizer panRecognizer = PanRecognizer(panGestureOption);
3395     PanDirection panDirection;
3396 
3397     /**
3398      * @tc.steps: step2. call SetDirection function
3399      * @tc.steps: case1: panDirection is VERTICAL
3400      * @tc.expected: step2. result equals.
3401      */
3402     panDirection.type = PanDirection::VERTICAL;
3403     panRecognizer.SetDirection(panDirection);
3404     EXPECT_EQ(panRecognizer.velocityTracker_.mainAxis_, Axis::VERTICAL);
3405 
3406     /**
3407      * @tc.steps: step2. call SetDirection function
3408      * @tc.steps: case2: panDirection is HORIZONTAL
3409      * @tc.expected: step2. result equals.
3410      */
3411     panDirection.type = PanDirection::HORIZONTAL;
3412     panRecognizer.SetDirection(panDirection);
3413     EXPECT_EQ(panRecognizer.velocityTracker_.mainAxis_, Axis::HORIZONTAL);
3414 
3415     /**
3416      * @tc.steps: step2. call SetDirection function
3417      * @tc.steps: case2: panDirection is HORIZONTAL
3418      * @tc.expected: step2. result equals.
3419      */
3420     panDirection.type = PanDirection::ALL;
3421     panRecognizer.SetDirection(panDirection);
3422     EXPECT_EQ(panRecognizer.velocityTracker_.mainAxis_, Axis::HORIZONTAL);
3423 }
3424 
3425 /**
3426  * @tc.name: PanRecognizerTest012
3427  * @tc.desc: Test PanRecognizer function: ChangeFingers
3428  * @tc.type: FUNC
3429  */
3430 HWTEST_F(GesturesTestNg, PanRecognizerTest012, TestSize.Level1)
3431 {
3432     /**
3433      * @tc.steps: step1. create PanRecognizer.
3434      */
3435     RefPtr<PanGestureOption> panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
3436     PanRecognizer panRecognizer = PanRecognizer(panGestureOption);
3437 
3438     /**
3439      * @tc.steps: step2. call ChangeFingers function
3440      * @tc.steps: case1: fingers not same
3441      * @tc.expected: step2. result equals.
3442      */
3443     panRecognizer.fingers_ = 0;
3444     panRecognizer.ChangeFingers(1);
3445     EXPECT_EQ(panRecognizer.newFingers_, 1);
3446 
3447     /**
3448      * @tc.steps: step2. call ChangeFingers function
3449      * @tc.steps: case1: fingers not same
3450      * @tc.expected: step2. result equals.
3451      */
3452     panRecognizer.fingers_ = 1;
3453     panRecognizer.ChangeFingers(1);
3454     EXPECT_EQ(panRecognizer.newFingers_, 1);
3455 }
3456 
3457 /**
3458  * @tc.name: PanRecognizerTest013
3459  * @tc.desc: Test PanRecognizer function: ChangeDirection
3460  * @tc.type: FUNC
3461  */
3462 HWTEST_F(GesturesTestNg, PanRecognizerTest013, TestSize.Level1)
3463 {
3464     /**
3465      * @tc.steps: step1. create PanRecognizer.
3466      */
3467     RefPtr<PanGestureOption> panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
3468     PanRecognizer panRecognizer = PanRecognizer(panGestureOption);
3469 
3470     /**
3471      * @tc.steps: step2. call ChangeDirection function
3472      * @tc.steps: case1: type not same
3473      * @tc.expected: step2. result equals.
3474      */
3475     PanDirection panDirection;
3476     panDirection.type = PanDirection::VERTICAL;
3477     panRecognizer.direction_.type = PanDirection::HORIZONTAL;
3478     panRecognizer.ChangeDirection(panDirection);
3479     EXPECT_EQ(panRecognizer.direction_.type, PanDirection::VERTICAL);
3480     EXPECT_EQ(panRecognizer.newDirection_.type, PanDirection::VERTICAL);
3481 
3482     /**
3483      * @tc.steps: step2. call ChangeDirection function
3484      * @tc.steps: case2: type same
3485      * @tc.expected: step2. result equals.
3486      */
3487     panDirection.type = PanDirection::VERTICAL;
3488     panRecognizer.direction_.type = PanDirection::VERTICAL;
3489     panRecognizer.ChangeDirection(panDirection);
3490     EXPECT_EQ(panRecognizer.direction_.type, PanDirection::VERTICAL);
3491     EXPECT_EQ(panRecognizer.newDirection_.type, PanDirection::VERTICAL);
3492 }
3493 
3494 /**
3495  * @tc.name: PanRecognizerTest014
3496  * @tc.desc: Test PanRecognizer function: ChangeDistance
3497  * @tc.type: FUNC
3498  */
3499 HWTEST_F(GesturesTestNg, PanRecognizerTest014, TestSize.Level1)
3500 {
3501     /**
3502      * @tc.steps: step1. create PanRecognizer.
3503      */
3504     RefPtr<PanGestureOption> panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
3505     PanRecognizer panRecognizer = PanRecognizer(panGestureOption);
3506 
3507     /**
3508      * @tc.steps: step2. call ChangeDistance function
3509      * @tc.steps: case1: distance not same, refereeState is READY
3510      * @tc.expected: step2. result equals.
3511      */
3512     panRecognizer.distance_ = 0;
3513     panRecognizer.ChangeDistance(1);
3514     panRecognizer.refereeState_ = RefereeState::READY;
3515     EXPECT_EQ(panRecognizer.distance_, 1);
3516     EXPECT_EQ(panRecognizer.newDistance_, 1);
3517 
3518     /**
3519      * @tc.steps: step2. call ChangeDistance function
3520      * @tc.steps: case2: distance not same, refereeState is DETECTING
3521      * @tc.expected: step2. result equals.
3522      */
3523     panRecognizer.distance_ = 0;
3524     panRecognizer.ChangeDistance(1);
3525     panRecognizer.refereeState_ = RefereeState::DETECTING;
3526     EXPECT_EQ(panRecognizer.distance_, 1);
3527     EXPECT_EQ(panRecognizer.newDistance_, 1);
3528 
3529     /**
3530      * @tc.steps: step2. call ChangeDistance function
3531      * @tc.steps: case3: distance not same, refereeState is FAIL
3532      * @tc.expected: step2. result equals.
3533      */
3534     panRecognizer.distance_ = 0;
3535     panRecognizer.ChangeDistance(1);
3536     panRecognizer.refereeState_ = RefereeState::FAIL;
3537     EXPECT_EQ(panRecognizer.distance_, 1);
3538     EXPECT_EQ(panRecognizer.newDistance_, 1);
3539 
3540     /**
3541      * @tc.steps: step2. call ChangeDistance function
3542      * @tc.steps: case4: distance same
3543      * @tc.expected: step2. result equals.
3544      */
3545     panRecognizer.distance_ = 0;
3546     panRecognizer.ChangeDistance(0);
3547     panRecognizer.refereeState_ = RefereeState::FAIL;
3548     EXPECT_EQ(panRecognizer.distance_, 0);
3549     EXPECT_EQ(panRecognizer.newDistance_, 1);
3550 }
3551 
3552 /**
3553  * @tc.name: PanRecognizerChangeDistanceTest001
3554  * @tc.desc: Test PanRecognizer function: ChangeDistance
3555  * @tc.type: FUNC
3556  */
3557 HWTEST_F(GesturesTestNg, PanRecognizerChangeDistanceTest001, TestSize.Level1)
3558 {
3559     /**
3560      * @tc.steps: step1. create PanRecognizer.
3561      */
3562     RefPtr<PanGestureOption> panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
3563     PanRecognizer panRecognizer = PanRecognizer(panGestureOption);
3564 
3565     /**
3566      * @tc.steps: step2. call ChangeDistance function
3567      * @tc.steps: case1: distance not same, refereeState is READY
3568      * @tc.expected: step2. result equals.
3569      */
3570     panRecognizer.distance_ = 0;
3571     panRecognizer.refereeState_ = RefereeState::READY;
3572     panRecognizer.ChangeDistance(1);
3573     EXPECT_EQ(panRecognizer.distance_, 1);
3574     EXPECT_EQ(panRecognizer.newDistance_, 1);
3575 
3576     /**
3577      * @tc.steps: step2. call ChangeDistance function
3578      * @tc.steps: case2: distance not same, refereeState is DETECTING
3579      * @tc.expected: step2. result equals.
3580      */
3581     panRecognizer.distance_ = 0;
3582     panRecognizer.refereeState_ = RefereeState::DETECTING;
3583     panRecognizer.ChangeDistance(1);
3584     EXPECT_EQ(panRecognizer.distance_, 1);
3585     EXPECT_EQ(panRecognizer.newDistance_, 1);
3586 
3587     /**
3588      * @tc.steps: step2. call ChangeDistance function
3589      * @tc.steps: case3: distance not same, refereeState is FAIL
3590      * @tc.expected: step2. result equals.
3591      */
3592     panRecognizer.distance_ = 0;
3593     panRecognizer.refereeState_ = RefereeState::FAIL;
3594     panRecognizer.ChangeDistance(1);
3595     EXPECT_EQ(panRecognizer.newDistance_, 1);
3596 
3597     /**
3598      * @tc.steps: step2. call ChangeDistance function
3599      * @tc.steps: case4: distance same
3600      * @tc.expected: step2. result equals.
3601      */
3602     panRecognizer.distance_ = 0;
3603     panRecognizer.refereeState_ = RefereeState::FAIL;
3604     panRecognizer.ChangeDistance(1);
3605     EXPECT_EQ(panRecognizer.distance_, 0);
3606     EXPECT_EQ(panRecognizer.newDistance_, 1);
3607 }
3608 
3609 /**
3610  * @tc.name: PanRecognizerTest015
3611  * @tc.desc: Test PanRecognizer function: GetMainAxisDelta
3612  * @tc.type: FUNC
3613  */
3614 HWTEST_F(GesturesTestNg, PanRecognizerTest015, TestSize.Level1)
3615 {
3616     /**
3617      * @tc.steps: step1. create PanRecognizer.
3618      */
3619     RefPtr<PanGestureOption> panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
3620     PanRecognizer panRecognizer = PanRecognizer(panGestureOption);
3621 
3622     /**
3623      * @tc.steps: step2. call ChangeDistance function
3624      * @tc.steps: case1: directionType is ALL
3625      * @tc.expected: step2. result equals.
3626      */
3627     PanDirection panDirection;
3628     panRecognizer.direction_ = panDirection;
3629     panRecognizer.direction_.type = PanDirection::ALL;
3630     auto result = panRecognizer.GetMainAxisDelta();
3631     EXPECT_EQ(result, 0);
3632 
3633     /**
3634      * @tc.steps: step2. call ChangeDistance function
3635      * @tc.steps: case2: directionType is HORIZONTAL
3636      * @tc.expected: step2. result equals.
3637      */
3638     panRecognizer.direction_.type = PanDirection::HORIZONTAL;
3639     result = panRecognizer.GetMainAxisDelta();
3640     EXPECT_EQ(result, 0);
3641 
3642     /**
3643      * @tc.steps: step2. call ChangeDistance function
3644      * @tc.steps: case3: directionType is VERTICAL
3645      * @tc.expected: step2. result equals.
3646      */
3647     panRecognizer.direction_.type = PanDirection::VERTICAL;
3648     result = panRecognizer.GetMainAxisDelta();
3649     EXPECT_EQ(result, 0);
3650 
3651     /**
3652      * @tc.steps: step2. call ChangeDistance function
3653      * @tc.steps: case4: directionType is LEFT
3654      * @tc.expected: step2. result equals.
3655      */
3656     panRecognizer.direction_.type = PanDirection::LEFT;
3657     result = panRecognizer.GetMainAxisDelta();
3658     EXPECT_EQ(result, 0);
3659 }
3660 
3661 /**
3662  * @tc.name: PanRecognizerTest016
3663  * @tc.desc: Test PanRecognizer function: PanRecognizer
3664  * @tc.type: FUNC
3665  */
3666 HWTEST_F(GesturesTestNg, PanRecognizerTest016, TestSize.Level1)
3667 {
3668     /**
3669      * @tc.steps: step1. create PanRecognizer.
3670      */
3671     RefPtr<PanGestureOption> panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
3672 
3673     /**
3674      * @tc.steps: step2. call PanRecognizer function
3675      * @tc.steps: case1: 0 <= direction.type <= 15
3676      * @tc.expected: step2. result equals.
3677      */
3678     PanRecognizer panRecognizer1 = PanRecognizer(panGestureOption);
3679     EXPECT_EQ(panRecognizer1.direction_.type, PanDirection::ALL);
3680 
3681     /**
3682      * @tc.steps: step2. call PanRecognizer function
3683      * @tc.steps: case1: 0 > direction.type
3684      * @tc.expected: step2. result equals.
3685      */
3686     panGestureOption->direction_.type = -1;
3687     PanRecognizer panRecognizer2 = PanRecognizer(panGestureOption);
3688     EXPECT_EQ(panRecognizer2.direction_.type, PanDirection::ALL);
3689 
3690     /**
3691      * @tc.steps: step2. call PanRecognizer function
3692      * @tc.steps: case1: 0 > direction.type
3693      * @tc.expected: step2. result equals.
3694      */
3695     panGestureOption->direction_.type = PanDirection::ALL + 1;
3696     PanRecognizer panRecognizer3 = PanRecognizer(panGestureOption);
3697     EXPECT_EQ(panRecognizer3.direction_.type, PanDirection::ALL);
3698 }
3699 
3700 /**
3701  * @tc.name: PanRecognizerTest017
3702  * @tc.desc: Test PanRecognizer function: HandleTouchMoveEvent(AxisEvent)
3703  * @tc.type: FUNC
3704  */
3705 HWTEST_F(GesturesTestNg, PanRecognizerTest017, TestSize.Level1)
3706 {
3707     /**
3708      * @tc.steps: step1. create PanRecognizer.
3709      */
3710     RefPtr<PanGestureOption> panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
3711     PanRecognizer panRecognizer = PanRecognizer(panGestureOption);
3712     AxisEvent axisEvent;
3713 
3714     /**
3715      * @tc.steps: step2. call HandleTouchMove function and compare result.
3716      * @tc.steps: case1: fingers_ is 0, return
3717      * @tc.expected: step2. result equals.
3718      */
3719     panRecognizer.fingers_ = 0;
3720     panRecognizer.HandleTouchMoveEvent(axisEvent);
3721     EXPECT_EQ(panRecognizer.touchPoints_.size(), 0);
3722 
3723     /**
3724      * @tc.steps: step2. call HandleTouchMove function and compare result.
3725      * @tc.steps: case2: fingers_ is 1, direction is VERTICAL, refereeState is SUCCEED
3726      * @tc.expected: step2. result equals.
3727      */
3728     panRecognizer.fingers_ = 1;
3729     panRecognizer.direction_.type = PanDirection::VERTICAL;
3730     panRecognizer.refereeState_ = RefereeState::SUCCEED;
3731     panRecognizer.HandleTouchMoveEvent(axisEvent);
3732     EXPECT_EQ(panRecognizer.touchPoints_.size(), 0);
3733     EXPECT_EQ(panRecognizer.delta_.GetX(), 0);
3734     EXPECT_EQ(panRecognizer.delta_.GetY(), 0);
3735 
3736     /**
3737      * @tc.steps: step2. call HandleTouchMove function and compare result.
3738      * @tc.steps: case3: fingers_ is 1, direction is HORIZONTAL, refereeState is SUCCEED
3739      * @tc.steps: case3: event.horizontalAxis = 0
3740      * @tc.expected: step2. result equals.
3741      */
3742     panRecognizer.direction_.type = PanDirection::HORIZONTAL;
3743     panRecognizer.refereeState_ = RefereeState::SUCCEED;
3744     axisEvent.horizontalAxis = 0;
3745     panRecognizer.HandleTouchMoveEvent(axisEvent);
3746     EXPECT_EQ(panRecognizer.touchPoints_.size(), 0);
3747     EXPECT_EQ(panRecognizer.delta_.GetX(), 0);
3748     EXPECT_EQ(panRecognizer.delta_.GetY(), 0);
3749 
3750     /**
3751      * @tc.steps: step2. call HandleTouchMove function and compare result.
3752      * @tc.steps: case3: fingers_ is 1, direction is HORIZONTAL, refereeState is PENDING
3753      * @tc.steps: case3: event.horizontalAxis != 0
3754      * @tc.expected: step2. result equals.
3755      */
3756     panRecognizer.direction_.type = PanDirection::HORIZONTAL;
3757     panRecognizer.refereeState_ = RefereeState::PENDING;
3758     axisEvent.horizontalAxis = 1;
3759     panRecognizer.HandleTouchMoveEvent(axisEvent);
3760     EXPECT_EQ(panRecognizer.touchPoints_.size(), 0);
3761 }
3762 
3763 /**
3764  * @tc.name: ParallelRecognizerTest001
3765  * @tc.desc: Test ParallelRecognizer function: OnAccepted OnRejected OnPending OnBlock
3766  * @tc.type: FUNC
3767  */
3768 HWTEST_F(GesturesTestNg, ParallelRecognizerTest001, TestSize.Level1)
3769 {
3770     /**
3771      * @tc.steps: step1. create ParallelRecognizer.
3772      */
3773     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
3774     ParallelRecognizer parallelRecognizer = ParallelRecognizer(recognizers);
3775     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
3776 
3777     /**
3778      * @tc.steps: step2. call OnAccepted function and compare result.
3779      * @tc.steps: case1: recognizer is nullptr
3780      * @tc.expected: step2. result equals.
3781      */
3782     parallelRecognizer.currentBatchRecognizer_ = nullptr;
3783     parallelRecognizer.OnAccepted();
3784     EXPECT_EQ(parallelRecognizer.refereeState_, RefereeState::SUCCEED);
3785 
3786     /**
3787      * @tc.steps: step2. call OnAccepted function and compare result.
3788      * @tc.steps: case2: recognizer is not nullptr
3789      * @tc.expected: step2. result equals.
3790      */
3791     parallelRecognizer.currentBatchRecognizer_ = clickRecognizerPtr;
3792     parallelRecognizer.OnAccepted();
3793     EXPECT_EQ(parallelRecognizer.refereeState_, RefereeState::SUCCEED);
3794 
3795     /**
3796      * @tc.steps: step3. call OnRejected function and compare result.
3797      * @tc.expected: step3. result equals.
3798      */
3799     parallelRecognizer.OnRejected();
3800     EXPECT_EQ(parallelRecognizer.refereeState_, RefereeState::FAIL);
3801 
3802     /**
3803      * @tc.steps: step4. call OnPending function and compare result.
3804      * @tc.steps: case1: recognizer is nullptr
3805      * @tc.expected: step4. result equals.
3806      */
3807     parallelRecognizer.currentBatchRecognizer_ = nullptr;
3808     parallelRecognizer.OnPending();
3809     EXPECT_EQ(parallelRecognizer.refereeState_, RefereeState::PENDING);
3810 
3811     /**
3812      * @tc.steps: step4. call OnPending function and compare result.
3813      * @tc.steps: case2: recognizer is not nullptr
3814      * @tc.expected: step4. result equals.
3815      */
3816     parallelRecognizer.currentBatchRecognizer_ = clickRecognizerPtr;
3817     parallelRecognizer.OnPending();
3818     EXPECT_EQ(parallelRecognizer.refereeState_, RefereeState::PENDING);
3819 
3820     /**
3821      * @tc.steps: step5. call OnBlocked function and compare result.
3822      * @tc.steps: case1: disposal is ACCEPT, current is nullptr
3823      * @tc.expected: step5. result equals.
3824      */
3825     parallelRecognizer.currentBatchRecognizer_ = nullptr;
3826     parallelRecognizer.disposal_ = GestureDisposal::ACCEPT;
3827     parallelRecognizer.OnBlocked();
3828     EXPECT_EQ(parallelRecognizer.refereeState_, RefereeState::SUCCEED_BLOCKED);
3829 
3830     /**
3831      * @tc.steps: step5. call OnBlocked function and compare result.
3832      * @tc.steps: case2: disposal is ACCEPT, current is not nullptr
3833      * @tc.expected: step5. result equals.
3834      */
3835     parallelRecognizer.currentBatchRecognizer_ = clickRecognizerPtr;
3836     parallelRecognizer.disposal_ = GestureDisposal::ACCEPT;
3837     parallelRecognizer.OnBlocked();
3838     EXPECT_EQ(parallelRecognizer.refereeState_, RefereeState::SUCCEED_BLOCKED);
3839 
3840     /**
3841      * @tc.steps: step5. call OnBlocked function and compare result.
3842      * @tc.steps: case3: disposal is PENDING, current is nullptr
3843      * @tc.expected: step5. result equals.
3844      */
3845     parallelRecognizer.currentBatchRecognizer_ = nullptr;
3846     parallelRecognizer.disposal_ = GestureDisposal::PENDING;
3847     parallelRecognizer.OnBlocked();
3848     EXPECT_EQ(parallelRecognizer.refereeState_, RefereeState::PENDING_BLOCKED);
3849 
3850     /**
3851      * @tc.steps: step5. call OnBlocked function and compare result.
3852      * @tc.steps: case4: disposal is PENDING, current is not nullptr
3853      * @tc.expected: step5. result equals.
3854      */
3855     parallelRecognizer.currentBatchRecognizer_ = clickRecognizerPtr;
3856     parallelRecognizer.disposal_ = GestureDisposal::NONE;
3857     parallelRecognizer.OnBlocked();
3858     EXPECT_EQ(parallelRecognizer.refereeState_, RefereeState::PENDING_BLOCKED);
3859 
3860     /**
3861      * @tc.steps: step5. call OnBlocked function and compare result.
3862      * @tc.steps: case4: disposal is PENDING, current is not nullptr
3863      * @tc.expected: step5. result equals.
3864      */
3865     parallelRecognizer.currentBatchRecognizer_ = clickRecognizerPtr;
3866     parallelRecognizer.disposal_ = GestureDisposal::PENDING;
3867     parallelRecognizer.OnBlocked();
3868     EXPECT_EQ(parallelRecognizer.refereeState_, RefereeState::PENDING_BLOCKED);
3869 }
3870 
3871 /**
3872  * @tc.name: ParallelRecognizerTest002
3873  * @tc.desc: Test ParallelRecognizer function: HandleEvent
3874  * @tc.type: FUNC
3875  */
3876 HWTEST_F(GesturesTestNg, ParallelRecognizerTest002, TestSize.Level1)
3877 {
3878     /**
3879      * @tc.steps: step1. create ParallelRecognizer.
3880      */
3881     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
3882     ParallelRecognizer parallelRecognizer = ParallelRecognizer(recognizers);
3883     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
3884 
3885     /**
3886      * @tc.steps: step2. call HandleEvent function and compare result.
3887      * @tc.steps: case1: refereeState is READY, recognizers is empty
3888      * @tc.expected: step2. result equals.
3889      */
3890     parallelRecognizer.refereeState_ = RefereeState::READY;
3891     TouchEvent touchEvent;
3892     auto result = parallelRecognizer.HandleEvent(touchEvent);
3893     EXPECT_EQ(parallelRecognizer.refereeState_, RefereeState::DETECTING);
3894     EXPECT_EQ(result, true);
3895 
3896     /**
3897      * @tc.steps: step2. call HandleEvent function and compare result.
3898      * @tc.steps: case2: refereeState is PENDING, recognizers have nullptr
3899      * @tc.expected: step2. result equals.
3900      */
3901     parallelRecognizer.refereeState_ = RefereeState::PENDING;
3902     parallelRecognizer.recognizers_.clear();
3903     parallelRecognizer.recognizers_.push_back(nullptr);
3904     result = parallelRecognizer.HandleEvent(touchEvent);
3905     EXPECT_EQ(parallelRecognizer.refereeState_, RefereeState::PENDING);
3906     EXPECT_EQ(result, true);
3907 
3908     /**
3909      * @tc.steps: step2. call HandleEvent function and compare result.
3910      * @tc.steps: case3: refereeState is PENDING, recognizers have ptr, not check
3911      * @tc.expected: step2. result equals.
3912      */
3913     parallelRecognizer.refereeState_ = RefereeState::PENDING;
3914     parallelRecognizer.recognizers_.clear();
3915     parallelRecognizer.recognizers_.push_back(clickRecognizerPtr);
3916     result = parallelRecognizer.HandleEvent(touchEvent);
3917     EXPECT_EQ(parallelRecognizer.refereeState_, RefereeState::PENDING);
3918     EXPECT_EQ(result, true);
3919 
3920     /**
3921      * @tc.steps: step2. call HandleEvent function and compare result.
3922      * @tc.steps: case4: refereeState is PENDING, recognizers have ptr, check
3923      * @tc.expected: step2. result equals.
3924      */
3925     clickRecognizerPtr->touchPoints_[touchEvent.id] = touchEvent;
3926     parallelRecognizer.refereeState_ = RefereeState::PENDING;
3927     parallelRecognizer.recognizers_.clear();
3928     parallelRecognizer.recognizers_.push_back(clickRecognizerPtr);
3929     result = parallelRecognizer.HandleEvent(touchEvent);
3930     EXPECT_EQ(parallelRecognizer.refereeState_, RefereeState::PENDING);
3931     EXPECT_EQ(result, true);
3932 }
3933 
3934 /**
3935  * @tc.name: ParallelRecognizerHandleEventTest001
3936  * @tc.desc: Test ParallelRecognizer function: HandleEvent
3937  * @tc.type: FUNC
3938  */
3939 HWTEST_F(GesturesTestNg, ParallelRecognizerHandleEventTest001, TestSize.Level1)
3940 {
3941     /**
3942      * @tc.steps: step1. create ParallelRecognizer.
3943      */
3944     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
3945     ParallelRecognizer parallelRecognizer = ParallelRecognizer(recognizers);
3946     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
3947 
3948     /**
3949      * @tc.steps: step2. call HandleEvent function and compare result.
3950      * @tc.steps: case1: refereeState is READY, recognizers is empty
3951      * @tc.expected: step2. result equals.
3952      */
3953     parallelRecognizer.refereeState_ = RefereeState::READY;
3954     TouchEvent touchEvent;
3955     AxisEvent axisEvent;
3956     auto result = parallelRecognizer.HandleEvent(axisEvent);
3957     EXPECT_EQ(parallelRecognizer.refereeState_, RefereeState::DETECTING);
3958     EXPECT_EQ(result, true);
3959 
3960     /**
3961      * @tc.steps: step2. call HandleEvent function and compare result.
3962      * @tc.steps: case2: refereeState is PENDING, recognizers have nullptr
3963      * @tc.expected: step2. result equals.
3964      */
3965     parallelRecognizer.refereeState_ = RefereeState::PENDING;
3966     parallelRecognizer.recognizers_.clear();
3967     parallelRecognizer.recognizers_.push_back(nullptr);
3968     result = parallelRecognizer.HandleEvent(axisEvent);
3969     EXPECT_EQ(parallelRecognizer.refereeState_, RefereeState::PENDING);
3970     EXPECT_EQ(result, true);
3971 
3972     /**
3973      * @tc.steps: step2. call HandleEvent function and compare result.
3974      * @tc.steps: case3: refereeState is PENDING, recognizers have ptr, not check
3975      * @tc.expected: step2. result equals.
3976      */
3977     parallelRecognizer.refereeState_ = RefereeState::PENDING;
3978     parallelRecognizer.recognizers_.clear();
3979     parallelRecognizer.recognizers_.push_back(clickRecognizerPtr);
3980     result = parallelRecognizer.HandleEvent(axisEvent);
3981     EXPECT_EQ(parallelRecognizer.refereeState_, RefereeState::PENDING);
3982     EXPECT_EQ(result, true);
3983 
3984     /**
3985      * @tc.steps: step2. call HandleEvent function and compare result.
3986      * @tc.steps: case4: refereeState is PENDING, recognizers have ptr, check
3987      * @tc.expected: step2. result equals.
3988      */
3989     clickRecognizerPtr->touchPoints_[touchEvent.id] = touchEvent;
3990     parallelRecognizer.refereeState_ = RefereeState::PENDING;
3991     parallelRecognizer.recognizers_.clear();
3992     parallelRecognizer.recognizers_.push_back(clickRecognizerPtr);
3993     result = parallelRecognizer.HandleEvent(axisEvent);
3994     EXPECT_EQ(parallelRecognizer.refereeState_, RefereeState::PENDING);
3995     EXPECT_EQ(result, true);
3996 }
3997 
3998 /**
3999  * @tc.name: ParallelRecognizerTest003
4000  * @tc.desc: Test ParallelRecognizer function: BatchAdjudicate
4001  * @tc.type: FUNC
4002  */
4003 HWTEST_F(GesturesTestNg, ParallelRecognizerTest003, TestSize.Level1)
4004 {
4005     /**
4006      * @tc.steps: step1. create ParallelRecognizer.
4007      */
4008     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
4009     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
4010     ParallelRecognizer parallelRecognizer = ParallelRecognizer(recognizers);
4011 
4012     /**
4013      * @tc.steps: step2. call HandleEvent function and compare result.
4014      * @tc.steps: case1: disposal is ACCEPT, refereeState is SUCCEED
4015      * @tc.expected: step2. expect return
4016      */
4017     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED;
4018     parallelRecognizer.BatchAdjudicate(clickRecognizerPtr, GestureDisposal::ACCEPT);
4019     EXPECT_EQ(clickRecognizerPtr->refereeState_, RefereeState::SUCCEED);
4020 
4021     /**
4022      * @tc.steps: step2. call HandleEvent function and compare result.
4023      * @tc.steps: case2: disposal is ACCEPT, refereeState is PENDING, refereeState_ is SUCCEED
4024      * @tc.expected: step2. expect SUCCESS
4025      */
4026     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
4027     parallelRecognizer.refereeState_ = RefereeState::SUCCEED;
4028     parallelRecognizer.BatchAdjudicate(clickRecognizerPtr, GestureDisposal::ACCEPT);
4029     EXPECT_EQ(clickRecognizerPtr->refereeState_, RefereeState::SUCCEED);
4030 
4031     /**
4032      * @tc.steps: step2. call HandleEvent function and compare result.
4033      * @tc.steps: case3: disposal is ACCEPT, refereeState is PENDING, refereeState_ is PENDING_BLOCKED
4034      * @tc.expected: step2. expect PENDING
4035      */
4036     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
4037     parallelRecognizer.refereeState_ = RefereeState::PENDING_BLOCKED;
4038     parallelRecognizer.BatchAdjudicate(clickRecognizerPtr, GestureDisposal::ACCEPT);
4039     EXPECT_EQ(clickRecognizerPtr->refereeState_, RefereeState::PENDING);
4040 
4041     /**
4042      * @tc.steps: step2. call HandleEvent function and compare result.
4043      * @tc.steps: case4: disposal is REJECT, refereeState is FAIL
4044      * @tc.expected: step2. expect FAIL
4045      */
4046     clickRecognizerPtr->refereeState_ = RefereeState::FAIL;
4047     parallelRecognizer.refereeState_ = RefereeState::FAIL;
4048     parallelRecognizer.BatchAdjudicate(clickRecognizerPtr, GestureDisposal::REJECT);
4049     EXPECT_EQ(clickRecognizerPtr->refereeState_, RefereeState::FAIL);
4050 
4051     /**
4052      * @tc.steps: step2. call HandleEvent function and compare result.
4053      * @tc.steps: case5: disposal is PENDING, refereeState is PENDING, refereeState_ is PENDING
4054      * @tc.expected: step2. expect PENDING
4055      */
4056     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
4057     parallelRecognizer.refereeState_ = RefereeState::PENDING;
4058     parallelRecognizer.BatchAdjudicate(clickRecognizerPtr, GestureDisposal::PENDING);
4059     EXPECT_EQ(clickRecognizerPtr->refereeState_, RefereeState::PENDING);
4060 
4061     /**
4062      * @tc.steps: step2. call HandleEvent function and compare result.
4063      * @tc.steps: case6: disposal is PENDING, refereeState is READY, refereeState_ is PENDING
4064      * @tc.expected: step2. expect PENDING
4065      */
4066     clickRecognizerPtr->refereeState_ = RefereeState::READY;
4067     parallelRecognizer.refereeState_ = RefereeState::PENDING;
4068     parallelRecognizer.BatchAdjudicate(clickRecognizerPtr, GestureDisposal::PENDING);
4069     EXPECT_EQ(clickRecognizerPtr->refereeState_, RefereeState::PENDING);
4070 
4071     /**
4072      * @tc.steps: step2. call HandleEvent function and compare result.
4073      * @tc.steps: case7: disposal is PENDING, refereeState is READY, refereeState_ is PENDING_BLOCKED
4074      * @tc.expected: step2. expect PENDING_CLOCKED
4075      */
4076     clickRecognizerPtr->refereeState_ = RefereeState::READY;
4077     parallelRecognizer.refereeState_ = RefereeState::PENDING_BLOCKED;
4078     parallelRecognizer.BatchAdjudicate(clickRecognizerPtr, GestureDisposal::PENDING);
4079     EXPECT_EQ(clickRecognizerPtr->refereeState_, RefereeState::READY);
4080 }
4081 
4082 /**
4083  * @tc.name: ParallelRecognizerBatchAdjudicateTest001
4084  * @tc.desc: Test ParallelRecognizer function: BatchAdjudicate
4085  * @tc.type: FUNC
4086  */
4087 HWTEST_F(GesturesTestNg, ParallelRecognizerBatchAdjudicateTest001, TestSize.Level1)
4088 {
4089     /**
4090      * @tc.steps: step1. create ParallelRecognizer.
4091      */
4092     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
4093     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
4094     ParallelRecognizer parallelRecognizer = ParallelRecognizer(recognizers);
4095 
4096     /**
4097      * @tc.steps: step2. call HandleEvent function and compare result.
4098      * @tc.steps: case1: disposal is ACCEPT, refereeState is SUCCEED
4099      * @tc.expected: step2. expect return
4100      */
4101     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED;
4102     parallelRecognizer.BatchAdjudicate(clickRecognizerPtr, GestureDisposal::ACCEPT);
4103     EXPECT_EQ(clickRecognizerPtr->refereeState_, RefereeState::SUCCEED);
4104 
4105     /**
4106      * @tc.steps: step2. call HandleEvent function and compare result.
4107      * @tc.steps: case2: disposal is ACCEPT, refereeState is PENDING, refereeState_ is SUCCEED
4108      * @tc.expected: step2. expect SUCCESS
4109      */
4110     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
4111     parallelRecognizer.refereeState_ = RefereeState::SUCCEED_BLOCKED;
4112     parallelRecognizer.BatchAdjudicate(clickRecognizerPtr, GestureDisposal::ACCEPT);
4113     EXPECT_EQ(clickRecognizerPtr->refereeState_, RefereeState::PENDING);
4114 
4115     /**
4116      * @tc.steps: step2. call HandleEvent function and compare result.
4117      * @tc.steps: case3: disposal is ACCEPT, refereeState is PENDING, refereeState_ is PENDING_BLOCKED
4118      * @tc.expected: step2. expect PENDING
4119      */
4120     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
4121     parallelRecognizer.refereeState_ = RefereeState::SUCCEED_BLOCKED;
4122     parallelRecognizer.BatchAdjudicate(clickRecognizerPtr, GestureDisposal::ACCEPT);
4123     EXPECT_EQ(clickRecognizerPtr->refereeState_, RefereeState::PENDING);
4124 
4125     /**
4126      * @tc.steps: step2. call HandleEvent function and compare result.
4127      * @tc.steps: case4: disposal is REJECT, refereeState is FAIL
4128      * @tc.expected: step2. expect FAIL
4129      */
4130     clickRecognizerPtr->refereeState_ = RefereeState::FAIL;
4131     parallelRecognizer.refereeState_ = RefereeState::FAIL;
4132     parallelRecognizer.BatchAdjudicate(clickRecognizerPtr, GestureDisposal::REJECT);
4133     EXPECT_EQ(clickRecognizerPtr->refereeState_, RefereeState::FAIL);
4134 
4135     /**
4136      * @tc.steps: step2. call HandleEvent function and compare result.
4137      * @tc.steps: case5: disposal is PENDING, refereeState is PENDING, refereeState_ is PENDING
4138      * @tc.expected: step2. expect PENDING
4139      */
4140     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
4141     parallelRecognizer.refereeState_ = RefereeState::SUCCEED_BLOCKED;
4142     parallelRecognizer.BatchAdjudicate(clickRecognizerPtr, GestureDisposal::PENDING);
4143     EXPECT_EQ(clickRecognizerPtr->refereeState_, RefereeState::PENDING);
4144 
4145     /**
4146      * @tc.steps: step2. call HandleEvent function and compare result.
4147      * @tc.steps: case6: disposal is PENDING, refereeState is READY, refereeState_ is PENDING
4148      * @tc.expected: step2. expect PENDING
4149      */
4150     clickRecognizerPtr->refereeState_ = RefereeState::READY;
4151     parallelRecognizer.refereeState_ = RefereeState::PENDING;
4152     parallelRecognizer.BatchAdjudicate(clickRecognizerPtr, GestureDisposal::PENDING);
4153     EXPECT_EQ(clickRecognizerPtr->refereeState_, RefereeState::PENDING);
4154 
4155     /**
4156      * @tc.steps: step2. call HandleEvent function and compare result.
4157      * @tc.steps: case7: disposal is PENDING, refereeState is READY, refereeState_ is PENDING_BLOCKED
4158      * @tc.expected: step2. expect PENDING_CLOCKED
4159      */
4160     clickRecognizerPtr->refereeState_ = RefereeState::READY;
4161     parallelRecognizer.refereeState_ = RefereeState::PENDING_BLOCKED;
4162     parallelRecognizer.BatchAdjudicate(clickRecognizerPtr, GestureDisposal::PENDING);
4163     EXPECT_EQ(clickRecognizerPtr->refereeState_, RefereeState::READY);
4164 }
4165 
4166 /**
4167  * @tc.name: ParallelRecognizerTest004
4168  * @tc.desc: Test ParallelRecognizer function: ReconcileFrom
4169  * @tc.type: FUNC
4170  */
4171 HWTEST_F(GesturesTestNg, ParallelRecognizerTest004, TestSize.Level1)
4172 {
4173     /**
4174      * @tc.steps: step1. create ParallelRecognizer.
4175      */
4176     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
4177     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
4178     ParallelRecognizer parallelRecognizer = ParallelRecognizer(recognizers);
4179     RefPtr<ParallelRecognizer> parallelRecognizerPtr = AceType::MakeRefPtr<ParallelRecognizer>(recognizers);
4180     bool result = false;
4181 
4182     /**
4183      * @tc.steps: step2. call ReconcileFrom function and compare result.
4184      * @tc.steps: case1: normal case
4185      * @tc.expected: step2. result equals.
4186      */
4187     result = parallelRecognizer.ReconcileFrom(parallelRecognizerPtr);
4188     EXPECT_EQ(result, true);
4189 
4190     /**
4191      * @tc.steps: step2. call ReconcileFrom function and compare result.
4192      * @tc.steps: case2: recognizerPtr is nullptr
4193      * @tc.expected: step2. result equals.
4194      */
4195     result = parallelRecognizer.ReconcileFrom(nullptr);
4196     EXPECT_EQ(result, false);
4197 
4198     /**
4199      * @tc.steps: step2. call ReconcileFrom function and compare result.
4200      * @tc.steps: case3: recognizers_ = {nullptr};
4201      * @tc.expected: step2. result equals.
4202      */
4203     parallelRecognizer.recognizers_ = { nullptr };
4204     result = parallelRecognizer.ReconcileFrom(parallelRecognizerPtr);
4205     EXPECT_EQ(result, false);
4206 
4207     /**
4208      * @tc.steps: step2. call ReconcileFrom function and compare result.
4209      * @tc.steps: case4: recognizers_ = {};
4210      * @tc.expected: step2. result equals.
4211      */
4212     parallelRecognizer.recognizers_ = {};
4213     result = parallelRecognizer.ReconcileFrom(parallelRecognizerPtr);
4214     EXPECT_EQ(result, true);
4215 
4216     /**
4217      * @tc.steps: step2. call ReconcileFrom function and compare result.
4218      * @tc.steps: case5: curr->priorityMask_ != priorityMask_
4219      * @tc.expected: step2. result equals.
4220      */
4221     parallelRecognizer.priorityMask_ = GestureMask::Normal;
4222     parallelRecognizerPtr->priorityMask_ = GestureMask::Begin;
4223     result = parallelRecognizer.ReconcileFrom(parallelRecognizerPtr);
4224     EXPECT_EQ(result, false);
4225 
4226     /**
4227      * @tc.steps: step2. call ReconcileFrom function and compare result.
4228      * @tc.steps: case6: size and Mask is same, child is nullptr
4229      * @tc.expected: step2. result equals.
4230      */
4231     parallelRecognizer.priorityMask_ = parallelRecognizerPtr->priorityMask_;
4232     parallelRecognizer.recognizers_.clear();
4233     parallelRecognizerPtr->recognizers_.clear();
4234     parallelRecognizer.recognizers_.push_back(nullptr);
4235     parallelRecognizerPtr->recognizers_.push_back(nullptr);
4236     result = parallelRecognizer.ReconcileFrom(parallelRecognizerPtr);
4237     EXPECT_EQ(result, false);
4238 
4239     /**
4240      * @tc.steps: step2. call ReconcileFrom function and compare result.
4241      * @tc.steps: case7: size and Mask is same, child is ptr
4242      * @tc.expected: step2. result equals.
4243      */
4244     parallelRecognizer.recognizers_.clear();
4245     parallelRecognizerPtr->recognizers_.clear();
4246     parallelRecognizer.recognizers_.push_back(clickRecognizerPtr);
4247     parallelRecognizerPtr->recognizers_.push_back(clickRecognizerPtr);
4248     result = parallelRecognizer.ReconcileFrom(parallelRecognizerPtr);
4249     EXPECT_EQ(result, true);
4250 
4251     /**
4252      * @tc.steps: step2. call ReconcileFrom function and compare result.
4253      * @tc.steps: case8: size and Mask is same, child is ptr and nullptr
4254      * @tc.expected: step2. result equals.
4255      */
4256     parallelRecognizer.recognizers_.clear();
4257     parallelRecognizerPtr->recognizers_.clear();
4258     parallelRecognizer.recognizers_.push_back(clickRecognizerPtr);
4259     parallelRecognizerPtr->recognizers_.push_back(nullptr);
4260     result = parallelRecognizer.ReconcileFrom(parallelRecognizerPtr);
4261     EXPECT_EQ(result, false);
4262 }
4263 
4264 /**
4265  * @tc.name: PinchRecognizerTest001
4266  * @tc.desc: Test PinchRecognizer function: OnAccepted OnRejected
4267  * @tc.type: FUNC
4268  */
4269 HWTEST_F(GesturesTestNg, PinchRecognizerTest001, TestSize.Level1)
4270 {
4271     /**
4272      * @tc.steps: step1. create PinchRecognizer.
4273      */
4274     PinchRecognizer pinchRecognizer = PinchRecognizer(FINGER_NUMBER, PINCH_GESTURE_DISTANCE);
4275 
4276     /**
4277      * @tc.steps: step2. call OnAccepted function and compare result.
4278      * @tc.expected: step2. result equals.
4279      */
4280     pinchRecognizer.OnAccepted();
4281     EXPECT_EQ(pinchRecognizer.refereeState_, RefereeState::SUCCEED);
4282 
4283     /**
4284      * @tc.steps: step3. call OnRejected function and compare result.
4285      * @tc.expected: step3. result equals.
4286      */
4287     pinchRecognizer.OnRejected();
4288     EXPECT_EQ(pinchRecognizer.refereeState_, RefereeState::FAIL);
4289 }
4290 
4291 /**
4292  * @tc.name: PinchRecognizerTest002
4293  * @tc.desc: Test PinchRecognizer function: HandleTouchDownEvent
4294  * @tc.type: FUNC
4295  */
4296 HWTEST_F(GesturesTestNg, PinchRecognizerTest002, TestSize.Level1)
4297 {
4298     /**
4299      * @tc.steps: step1. create PinchRecognizer.
4300      */
4301     PinchRecognizer pinchRecognizer = PinchRecognizer(SINGLE_FINGER_NUMBER, PINCH_GESTURE_DISTANCE);
4302 
4303     /**
4304      * @tc.steps: step2. call HandleTouchDownEvent function and compare result.
4305      * @tc.steps: case1: input is TouchEvent. refereeState_ is SUCCESS.
4306      * @tc.expected: step2. result equals.
4307      */
4308     TouchEvent touchEvent;
4309     pinchRecognizer.refereeState_ = RefereeState::SUCCEED;
4310     pinchRecognizer.HandleTouchDownEvent(touchEvent);
4311     EXPECT_EQ(static_cast<int32_t>(pinchRecognizer.touchPoints_.size()), 0);
4312 
4313     /**
4314      * @tc.steps: step2. call HandleTouchDownEvent function and compare result.
4315      * @tc.steps: case2: input is TouchEvent. refereeState_ is PENDING.
4316      * @tc.expected: step2. result equals.
4317      */
4318     pinchRecognizer.refereeState_ = RefereeState::PENDING;
4319     pinchRecognizer.HandleTouchDownEvent(touchEvent);
4320     EXPECT_EQ(pinchRecognizer.touchPoints_[touchEvent.id].id, touchEvent.id);
4321 
4322     /**
4323      * @tc.steps: step2. call HandleTouchDownEvent function and compare result.
4324      * @tc.steps: case3: input is TouchEvent. refereeState_ is PENDING. fingers_ > size
4325      * @tc.expected: step2. result equals.
4326      */
4327     pinchRecognizer.refereeState_ = RefereeState::PENDING;
4328     pinchRecognizer.fingers_ = FINGER_NUMBER;
4329     pinchRecognizer.HandleTouchDownEvent(touchEvent);
4330     EXPECT_EQ(pinchRecognizer.touchPoints_[touchEvent.id].id, touchEvent.id);
4331     EXPECT_EQ(static_cast<int32_t>(pinchRecognizer.touchPoints_.size()), 1);
4332     EXPECT_EQ(pinchRecognizer.refereeState_, RefereeState::PENDING);
4333 }
4334 
4335 /**
4336  * @tc.name: PinchRecognizerHandleTouchDownEventTest001
4337  * @tc.desc: Test PinchRecognizer function: HandleTouchDownEvent
4338  * @tc.type: FUNC
4339  */
4340 HWTEST_F(GesturesTestNg, PinchRecognizerHandleTouchDownEventTest001, TestSize.Level1)
4341 {
4342     /**
4343      * @tc.steps: step1. create PinchRecognizer.
4344      */
4345     PinchRecognizer pinchRecognizer = PinchRecognizer(SINGLE_FINGER_NUMBER, PINCH_GESTURE_DISTANCE);
4346 
4347     /**
4348      * @tc.steps: step2. call HandleTouchDownEvent function and compare result.
4349      * @tc.steps: case1: input is TouchEvent. refereeState_ is SUCCESS.
4350      * @tc.expected: step2. result equals.
4351      */
4352     TouchEvent touchEvent;
4353     pinchRecognizer.refereeState_ = RefereeState::SUCCEED;
4354     pinchRecognizer.fingers_ = 0;
4355     pinchRecognizer.HandleTouchDownEvent(touchEvent);
4356     EXPECT_EQ(static_cast<int32_t>(pinchRecognizer.touchPoints_.size()), 0);
4357 
4358     /**
4359      * @tc.steps: step2. call HandleTouchDownEvent function and compare result.
4360      * @tc.steps: case2: input is TouchEvent. refereeState_ is PENDING.
4361      * @tc.expected: step2. result equals.
4362      */
4363     pinchRecognizer.refereeState_ = RefereeState::PENDING;
4364     pinchRecognizer.fingers_ = 0;
4365     pinchRecognizer.HandleTouchDownEvent(touchEvent);
4366     EXPECT_EQ(pinchRecognizer.touchPoints_[touchEvent.id].id, touchEvent.id);
4367 
4368     /**
4369      * @tc.steps: step2. call HandleTouchDownEvent function and compare result.
4370      * @tc.steps: case3: input is TouchEvent. refereeState_ is PENDING. fingers_ > size
4371      * @tc.expected: step2. result equals.
4372      */
4373     pinchRecognizer.refereeState_ = RefereeState::PENDING;
4374     pinchRecognizer.fingers_ = 0;
4375     pinchRecognizer.HandleTouchDownEvent(touchEvent);
4376     EXPECT_EQ(pinchRecognizer.touchPoints_[touchEvent.id].id, touchEvent.id);
4377     EXPECT_EQ(static_cast<int32_t>(pinchRecognizer.touchPoints_.size()), 1);
4378     EXPECT_NE(pinchRecognizer.refereeState_, RefereeState::PENDING);
4379 }
4380 
4381 /**
4382  * @tc.name: PinchRecognizerTest003
4383  * @tc.desc: Test PinchRecognizer function: HandleMove HandleUp HandleCancel
4384  * @tc.type: FUNC
4385  */
4386 HWTEST_F(GesturesTestNg, PinchRecognizerTest003, TestSize.Level1)
4387 {
4388     /**
4389      * @tc.steps: step1. create PinchRecognizer.
4390      */
4391     PinchRecognizer pinchRecognizer = PinchRecognizer(SINGLE_FINGER_NUMBER, PINCH_GESTURE_DISTANCE);
4392 
4393     /**
4394      * @tc.steps: step2. call HandleTouchMoveEvent function and compare result.
4395      * @tc.steps: case1: input is TouchEvent
4396      * @tc.expected: step2. result equals.
4397      */
4398     TouchEvent touchEvent;
4399     pinchRecognizer.refereeState_ = RefereeState::SUCCEED;
4400     pinchRecognizer.HandleTouchMoveEvent(touchEvent);
4401     pinchRecognizer.HandleTouchUpEvent(touchEvent);
4402     pinchRecognizer.HandleTouchCancelEvent(touchEvent);
4403     EXPECT_EQ(pinchRecognizer.touchPoints_[touchEvent.id].id, touchEvent.id);
4404     EXPECT_EQ(pinchRecognizer.lastTouchEvent_.id, touchEvent.id);
4405 
4406     /**
4407      * @tc.steps: step2. call HandleTouchMoveEvent function and compare result.
4408      * @tc.steps: case2: input is AxisEvent
4409      * @tc.expected: step2. result equals.
4410      */
4411     AxisEvent axisEvent;
4412     pinchRecognizer.refereeState_ = RefereeState::SUCCEED;
4413     pinchRecognizer.HandleTouchMoveEvent(axisEvent);
4414     EXPECT_EQ(pinchRecognizer.touchPoints_[touchEvent.id].id, touchEvent.id);
4415     EXPECT_EQ(pinchRecognizer.lastTouchEvent_.id, touchEvent.id);
4416 
4417     /**
4418      * @tc.steps: step2. call HandleTouchMoveEvent function and compare result.
4419      * @tc.steps: case3: input is TouchEvent, isFlushTouchEventsEnd_
4420      * @tc.expected: step2. result equals.
4421      */
4422     pinchRecognizer.refereeState_ = RefereeState::SUCCEED;
4423     pinchRecognizer.isFlushTouchEventsEnd_ = true;
4424     pinchRecognizer.HandleTouchMoveEvent(touchEvent);
4425     EXPECT_EQ(pinchRecognizer.touchPoints_[touchEvent.id].id, touchEvent.id);
4426     EXPECT_EQ(pinchRecognizer.lastTouchEvent_.id, touchEvent.id);
4427 
4428     /**
4429      * @tc.steps: step2. call HandleTouchUpEvent function and compare result.
4430      * @tc.steps: case4: input is TouchEvent, refereeState is FAIL
4431      * @tc.expected: step2. result equals.
4432      */
4433     pinchRecognizer.refereeState_ = RefereeState::FAIL;
4434     pinchRecognizer.HandleTouchUpEvent(touchEvent);
4435     EXPECT_EQ(pinchRecognizer.touchPoints_[touchEvent.id].id, touchEvent.id);
4436     EXPECT_EQ(pinchRecognizer.lastTouchEvent_.id, touchEvent.id);
4437 
4438     /**
4439      * @tc.steps: step2. call HandleTouchMoveEvent function and compare result.
4440      * @tc.steps: case5: input is AxisEvent
4441      * @tc.expected: step2. result equals.
4442      */
4443     pinchRecognizer.refereeState_ = RefereeState::FAIL;
4444     pinchRecognizer.HandleTouchMoveEvent(axisEvent);
4445     EXPECT_EQ(pinchRecognizer.touchPoints_[touchEvent.id].id, touchEvent.id);
4446     EXPECT_EQ(pinchRecognizer.lastTouchEvent_.id, touchEvent.id);
4447 
4448     /**
4449      * @tc.steps: step2. call HandleTouchCancelEvent function and compare result.
4450      * @tc.steps: case6: input is TouchEvent, refereeState is FAIL
4451      * @tc.expected: step2. result equals.
4452      */
4453     pinchRecognizer.refereeState_ = RefereeState::FAIL;
4454     pinchRecognizer.HandleTouchCancelEvent(touchEvent);
4455     EXPECT_EQ(pinchRecognizer.touchPoints_[touchEvent.id].id, touchEvent.id);
4456     EXPECT_EQ(pinchRecognizer.lastTouchEvent_.id, touchEvent.id);
4457 }
4458 
4459 /**
4460  * @tc.name: PinchRecognizerTest004
4461  * @tc.desc: Test PinchRecognizer function: OnFlushTouchEvent begin end
4462  * @tc.type: FUNC
4463  */
4464 HWTEST_F(GesturesTestNg, PinchRecognizerTest004, TestSize.Level1)
4465 {
4466     /**
4467      * @tc.steps: step1. create PinchRecognizer.
4468      */
4469     PinchRecognizer pinchRecognizer = PinchRecognizer(SINGLE_FINGER_NUMBER, PINCH_GESTURE_DISTANCE);
4470 
4471     /**
4472      * @tc.steps: step2. call OnFlushTouchEvent function and compare result.
4473      * @tc.expected: step2. result equals.
4474      */
4475     pinchRecognizer.OnFlushTouchEventsBegin();
4476     EXPECT_EQ(pinchRecognizer.isFlushTouchEventsEnd_, false);
4477     pinchRecognizer.OnFlushTouchEventsEnd();
4478     EXPECT_EQ(pinchRecognizer.isFlushTouchEventsEnd_, true);
4479 }
4480 
4481 /**
4482  * @tc.name: PinchRecognizerTest005
4483  * @tc.desc: Test PinchRecognizer function: ComputeAverageDeviation
4484  * @tc.type: FUNC
4485  */
4486 HWTEST_F(GesturesTestNg, PinchRecognizerTest005, TestSize.Level1)
4487 {
4488     /**
4489      * @tc.steps: step1. create PinchRecognizer.
4490      */
4491     PinchRecognizer pinchRecognizer = PinchRecognizer(SINGLE_FINGER_NUMBER, PINCH_GESTURE_DISTANCE);
4492 
4493     /**
4494      * @tc.steps: step2. call ComputeAverageDeviation function and compare result.
4495      * @tc.expected: step2. result equals.
4496      */
4497     TouchEvent touchEvent;
4498     pinchRecognizer.touchPoints_[touchEvent.id] = touchEvent;
4499     auto result = pinchRecognizer.ComputeAverageDeviation();
4500     EXPECT_EQ(result, 0);
4501 }
4502 
4503 /**
4504  * @tc.name: PinchRecognizerComputePinchCenterTest001
4505  * @tc.desc: Test PinchRecognizer function: ComputePinchCenter
4506  * @tc.type: FUNC
4507  */
4508 HWTEST_F(GesturesTestNg, PinchRecognizerComputePinchCenterTest001, TestSize.Level1)
4509 {
4510     /**
4511      * @tc.steps: step1. create PinchRecognizer.
4512      */
4513     PinchRecognizer pinchRecognizer = PinchRecognizer(SINGLE_FINGER_NUMBER, PINCH_GESTURE_DISTANCE);
4514 
4515     /**
4516      * @tc.steps: step2. call ComputePinchCenter function and compare result.
4517      * @tc.expected: step2. result equals.
4518      */
4519     TouchEvent touchEvent;
4520     pinchRecognizer.touchPoints_[touchEvent.id] = touchEvent;
4521     auto result = pinchRecognizer.ComputePinchCenter();
4522     pinchRecognizer.OnFlushTouchEventsEnd();
4523     EXPECT_EQ(pinchRecognizer.isFlushTouchEventsEnd_, true);
4524 }
4525 
4526 /**
4527  * @tc.name: PinchRecognizerTest006
4528  * @tc.desc: Test PinchRecognizer function: SendCallbackMsg
4529  * @tc.type: FUNC
4530  */
4531 HWTEST_F(GesturesTestNg, PinchRecognizerTest006, TestSize.Level1)
4532 {
4533     /**
4534      * @tc.steps: step1. create PinchRecognizer.
4535      */
4536     PinchRecognizer pinchRecognizer = PinchRecognizer(SINGLE_FINGER_NUMBER, PINCH_GESTURE_DISTANCE);
4537 
4538     /**
4539      * @tc.steps: step2. call SendCallbackMsg function and compare result.
4540      * @tc.steps: case1: onAction is no, *onAction is no
4541      * @tc.expected: step2. result equals.
4542      */
4543     std::unique_ptr<GestureEventFunc> onAction;
4544     pinchRecognizer.SendCallbackMsg(onAction);
4545     EXPECT_EQ(pinchRecognizer.touchPoints_.size(), 0);
4546 
4547     /**
4548      * @tc.steps: step2. call SendCallbackMsg function and compare result.
4549      * @tc.steps: case2: onAction is yes, *onAction is no
4550      * @tc.expected: step2. result equals.
4551      */
4552     onAction = std::make_unique<GestureEventFunc>();
4553     pinchRecognizer.SendCallbackMsg(onAction);
4554     EXPECT_EQ(pinchRecognizer.touchPoints_.size(), 0);
4555 
4556     /**
4557      * @tc.steps: step2. call SendCallbackMsg function and compare result.
4558      * @tc.steps: case3: onAction is yes, *onAction is yes, touchEvent is empty
4559      * @tc.expected: step2. result equals.
4560      */
__anona2ace5f30f02(GestureEvent) 4561     onAction = std::make_unique<GestureEventFunc>([](GestureEvent) {});
4562     pinchRecognizer.SendCallbackMsg(onAction);
4563     EXPECT_EQ(pinchRecognizer.touchPoints_.size(), 0);
4564 
4565     /**
4566      * @tc.steps: step2. call SendCallbackMsg function and compare result.
4567      * @tc.steps: case4: touchEvent is not empty, have no X and Y
4568      * @tc.expected: step2. result equals.
4569      */
4570     TouchEvent touchEvent;
4571     pinchRecognizer.lastTouchEvent_ = touchEvent;
4572     pinchRecognizer.SendCallbackMsg(onAction);
4573     EXPECT_EQ(pinchRecognizer.touchPoints_.size(), 0);
4574 
4575     /**
4576      * @tc.steps: step2. call SendCallbackMsg function and compare result.
4577      * @tc.steps: case4: touchEvent is not empty, have no X and Y
4578      * @tc.expected: step2. result equals.
4579      */
4580     touchEvent.tiltX = 0.0f;
4581     touchEvent.tiltY = 0.0f;
4582     pinchRecognizer.lastTouchEvent_ = touchEvent;
4583     pinchRecognizer.SendCallbackMsg(onAction);
4584     EXPECT_EQ(pinchRecognizer.touchPoints_.size(), 0);
4585 }
4586 
4587 /**
4588  * @tc.name: PinchRecognizerTest007
4589  * @tc.desc: Test PinchRecognizer function: ReconcileFrom
4590  * @tc.type: FUNC
4591  */
4592 HWTEST_F(GesturesTestNg, PinchRecognizerTest007, TestSize.Level1)
4593 {
4594     /**
4595      * @tc.steps: step1. create PinchRecognizer.
4596      */
4597     PinchRecognizer pinchRecognizer = PinchRecognizer(SINGLE_FINGER_NUMBER, PINCH_GESTURE_DISTANCE);
4598     RefPtr<PinchRecognizer> pinchRecognizerPtr =
4599         AceType::MakeRefPtr<PinchRecognizer>(SINGLE_FINGER_NUMBER, PINCH_GESTURE_DISTANCE);
4600     bool result = false;
4601 
4602     /**
4603      * @tc.steps: step2. call ReconcileFrom function and compare result.
4604      * @tc.steps: case1: normal case
4605      * @tc.expected: step2. result equals.
4606      */
4607     result = pinchRecognizer.ReconcileFrom(pinchRecognizerPtr);
4608     EXPECT_EQ(result, true);
4609 
4610     /**
4611      * @tc.steps: step2. call ReconcileFrom function and compare result.
4612      * @tc.steps: case2: recognizerPtr is nullptr
4613      * @tc.expected: step2. result equals.
4614      */
4615     result = pinchRecognizer.ReconcileFrom(nullptr);
4616     EXPECT_EQ(result, false);
4617 
4618     /**
4619      * @tc.steps: step2. call ReconcileFrom function and compare result.
4620      * @tc.steps: case3: fingers_ != curr->fingers_;
4621      * @tc.expected: step2. result equals.
4622      */
4623     pinchRecognizer.fingers_ = 1;
4624     pinchRecognizerPtr->fingers_ = 0;
4625     result = pinchRecognizer.ReconcileFrom(pinchRecognizerPtr);
4626     EXPECT_EQ(result, false);
4627 
4628     /**
4629      * @tc.steps: step2. call ReconcileFrom function and compare result.
4630      * @tc.steps: case4: fingers_ same, distance not same
4631      * @tc.expected: step2. result equals.
4632      */
4633     pinchRecognizer.fingers_ = pinchRecognizerPtr->fingers_;
4634     pinchRecognizer.distance_ = pinchRecognizerPtr->distance_ + 1;
4635     result = pinchRecognizer.ReconcileFrom(pinchRecognizerPtr);
4636     EXPECT_EQ(result, false);
4637 
4638     /**
4639      * @tc.steps: step2. call ReconcileFrom function and compare result.
4640      * @tc.steps: case5: fingers_ same, distance same, priorityMask not same
4641      * @tc.expected: step2. result equals.
4642      */
4643     pinchRecognizer.fingers_ = pinchRecognizerPtr->fingers_;
4644     pinchRecognizer.distance_ = pinchRecognizerPtr->distance_;
4645     pinchRecognizer.priorityMask_ = GestureMask::End;
4646     result = pinchRecognizer.ReconcileFrom(pinchRecognizerPtr);
4647     EXPECT_EQ(result, false);
4648 }
4649 
4650 /**
4651  * @tc.name: RecognizerGroupTest001
4652  * @tc.desc: Test RecognizerGroup function: OnBeginGestureReferee
4653  * @tc.type: FUNC
4654  */
4655 HWTEST_F(GesturesTestNg, RecognizerGroupTest001, TestSize.Level1)
4656 {
4657     /**
4658      * @tc.steps: step1. create RecognizerGroup
4659      */
4660     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
4661     ExclusiveRecognizer exclusiveRecognizer = ExclusiveRecognizer(recognizers);
4662     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
4663 
4664     /**
4665      * @tc.steps: step2. call OnBeginGestureReferee function and compare result.
4666      * @tc.steps: case1: needUpdateChild is false
4667      * @tc.expected: step2. result equals.
4668      */
4669     exclusiveRecognizer.recognizers_.clear();
4670     exclusiveRecognizer.OnBeginGestureReferee(0, false);
4671     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 0);
4672 
4673     /**
4674      * @tc.steps: step2. call OnBeginGestureReferee function and compare result.
4675      * @tc.steps: case2: needUpdateChild is true, recognizers is empty
4676      * @tc.expected: step2. result equals.
4677      */
4678     exclusiveRecognizer.recognizers_.clear();
4679     exclusiveRecognizer.OnBeginGestureReferee(0, true);
4680     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 0);
4681 
4682     /**
4683      * @tc.steps: step2. call OnBeginGestureReferee function and compare result.
4684      * @tc.steps: case3: needUpdateChild is true, recognizers has nullptr
4685      * @tc.expected: step2. result equals.
4686      */
4687     exclusiveRecognizer.recognizers_.clear();
4688     exclusiveRecognizer.recognizers_.push_back(nullptr);
4689     exclusiveRecognizer.OnBeginGestureReferee(0, true);
4690     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 1);
4691 
4692     /**
4693      * @tc.steps: step2. call OnBeginGestureReferee function and compare result.
4694      * @tc.steps: case4: needUpdateChild is true, recognizers has ptr
4695      * @tc.expected: step2. result equals.
4696      */
4697     exclusiveRecognizer.recognizers_.clear();
4698     exclusiveRecognizer.recognizers_.push_back(clickRecognizerPtr);
4699     exclusiveRecognizer.OnBeginGestureReferee(0, true);
4700     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 1);
4701 }
4702 
4703 /**
4704  * @tc.name: RecognizerGroupTest002
4705  * @tc.desc: Test RecognizerGroup function: OnFinishGestureReferee
4706  * @tc.type: FUNC
4707  */
4708 HWTEST_F(GesturesTestNg, RecognizerGroupTest002, TestSize.Level1)
4709 {
4710     /**
4711      * @tc.steps: step1. create RecognizerGroup
4712      */
4713     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
4714     ExclusiveRecognizer exclusiveRecognizer = ExclusiveRecognizer(recognizers);
4715     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
4716 
4717     /**
4718      * @tc.steps: step2. call OnFinishGestureReferee function and compare result.
4719      * @tc.steps: case1: recognizers_ is empty
4720      * @tc.expected: step2. result equals.
4721      */
4722     exclusiveRecognizer.recognizers_.clear();
4723     exclusiveRecognizer.OnFinishGestureReferee(0);
4724     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 0);
4725 
4726     /**
4727      * @tc.steps: step2. call OnFinishGestureReferee function and compare result.
4728      * @tc.steps: case2: recognizers has nullptr
4729      * @tc.expected: step2. result equals.
4730      */
4731     exclusiveRecognizer.recognizers_.clear();
4732     exclusiveRecognizer.recognizers_.push_back(nullptr);
4733     exclusiveRecognizer.OnFinishGestureReferee(0);
4734     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 0);
4735 
4736     /**
4737      * @tc.steps: step2. call OnFinishGestureReferee function and compare result.
4738      * @tc.steps: case3: recognizers has ptr
4739      * @tc.expected: step2. result equals.
4740      */
4741     exclusiveRecognizer.recognizers_.clear();
4742     exclusiveRecognizer.recognizers_.push_back(clickRecognizerPtr);
4743     exclusiveRecognizer.OnFinishGestureReferee(0);
4744     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 0);
4745 }
4746 
4747 /**
4748  * @tc.name: ClickRecognizerClickRecognizerTest101
4749  * @tc.desc: Test ClickRecognizer function: ClickRecognizer
4750  * @tc.type: FUNC
4751  */
4752 HWTEST_F(GesturesTestNg, ClickRecognizerClickRecognizerTest001, TestSize.Level1)
4753 {
4754     /**
4755      * @tc.steps: step1. create ClickRecognizer
4756      */
4757     RefPtr<ClickRecognizer> clickRecognizerPtr1 = AceType::MakeRefPtr<ClickRecognizer>(0, COUNT);
4758     EXPECT_EQ(clickRecognizerPtr1->fingers_, 1);
4759 
4760     /**
4761      * @tc.steps: step1. create ClickRecognizer
4762      */
4763     RefPtr<ClickRecognizer> clickRecognizerPtr2 = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER_OVER_MAX, COUNT);
4764     EXPECT_EQ(clickRecognizerPtr2->fingers_, 1);
4765 
4766     /**
4767      * @tc.steps: step1. create ClickRecognizer
4768      */
4769     RefPtr<ClickRecognizer> clickRecognizerPtr3 = AceType::MakeRefPtr<ClickRecognizer>(10, COUNT);
4770     EXPECT_EQ(clickRecognizerPtr3->fingers_, 10);
4771 
4772     /**
4773      * @tc.steps: step1. create ClickRecognizer
4774      */
4775     RefPtr<ClickRecognizer> clickRecognizerPtr4 = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
4776     EXPECT_EQ(clickRecognizerPtr4->fingers_, FINGER_NUMBER);
4777 }
4778 
4779 /**
4780  * @tc.name: RecognizerGroupCheckStatesTest001
4781  * @tc.desc: Test RecognizerGroup function: CheckStates
4782  * @tc.type: FUNC
4783  */
4784 HWTEST_F(GesturesTestNg, RecognizerGroupCheckStatesTest001, TestSize.Level1)
4785 {
4786     /**
4787      * @tc.steps: step1. create RecognizerGroup
4788      */
4789     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
4790     ExclusiveRecognizer exclusiveRecognizer = ExclusiveRecognizer(recognizers);
4791     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
4792 
4793     /**
4794      * @tc.steps: step2. call CheckStates function and compare result.
4795      * @tc.steps: case1: recognizers_ is empty
4796      * @tc.expected: step2. result equals.
4797      */
4798     exclusiveRecognizer.recognizers_.clear();
4799     exclusiveRecognizer.CheckStates(0);
4800     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 0);
4801 
4802     /**
4803      * @tc.steps: step2. call CheckStates function and compare result.
4804      * @tc.steps: case2: recognizers has nullptr
4805      * @tc.expected: step2. result equals.
4806      */
4807     exclusiveRecognizer.recognizers_.clear();
4808     exclusiveRecognizer.CheckStates(0);
4809     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 0);
4810 
4811     /**
4812      * @tc.steps: step2. call CheckStates function and compare result.
4813      * @tc.steps: case3: recognizers has ptr
4814      * @tc.expected: step2. result equals.
4815      */
4816     exclusiveRecognizer.recognizers_.clear();
4817     exclusiveRecognizer.recognizers_.push_back(clickRecognizerPtr);
4818     exclusiveRecognizer.CheckStates(0);
4819     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 1);
4820 }
4821 
4822 /**
4823  * @tc.name: RecognizerGroupCheckStatesTest002
4824  * @tc.desc: Test RecognizerGroup function: CheckStates
4825  * @tc.type: FUNC
4826  */
4827 HWTEST_F(GesturesTestNg, RecognizerGroupCheckStatesTest002, TestSize.Level1)
4828 {
4829     /**
4830      * @tc.steps: step1. create RecognizerGroup
4831      */
4832     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
4833     ExclusiveRecognizer exclusiveRecognizer = ExclusiveRecognizer(recognizers);
4834     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
4835     TouchEvent touchEventStart;
4836     touchEventStart.id = 0;
4837     clickRecognizerPtr->touchPoints_[0] = touchEventStart;
4838     TouchEvent touchEventEnd;
4839     touchEventEnd.id = 1;
4840     clickRecognizerPtr->touchPoints_[1] = touchEventEnd;
4841 
4842     std::vector<RefPtr<NGGestureRecognizer>> recognizers2 = {};
4843     RefPtr<ExclusiveRecognizer> exclusiveRecognizerPtr = AceType::MakeRefPtr<ExclusiveRecognizer>(recognizers2);
4844     exclusiveRecognizerPtr->touchPoints_[0] = touchEventStart;
4845     exclusiveRecognizerPtr->touchPoints_[1] = touchEventEnd;
4846 
4847     /**
4848      * @tc.steps: step2. call CheckStates function and compare result.
4849      * @tc.steps: case1: recognizers_ is empty
4850      * @tc.expected: step2. result equals.
4851      */
4852     exclusiveRecognizer.recognizers_.clear();
4853     exclusiveRecognizer.CheckStates(0);
4854     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 0);
4855 
4856     /**
4857      * @tc.steps: step2. call CheckStates function and compare result.
4858      * @tc.steps: case2: recognizers has nullptr
4859      * @tc.expected: step2. result equals.
4860      */
4861     exclusiveRecognizer.recognizers_.clear();
4862     exclusiveRecognizer.CheckStates(0);
4863     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 0);
4864 
4865     /**
4866      * @tc.steps: step2. call CheckStates function and compare result.
4867      * @tc.steps: case3: recognizers has ptr
4868      * @tc.expected: step2. result equals.
4869      */
4870     exclusiveRecognizer.recognizers_.clear();
4871     exclusiveRecognizer.recognizers_.push_back(clickRecognizerPtr);
4872     exclusiveRecognizer.CheckStates(0);
4873     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 1);
4874 
4875     /**
4876      * @tc.steps: step2. call CheckStates function and compare result.
4877      * @tc.steps: case3: recognizers has ptr
4878      * @tc.expected: step2. result equals.
4879      */
4880     exclusiveRecognizer.recognizers_.clear();
4881     exclusiveRecognizer.recognizers_.push_back(exclusiveRecognizerPtr);
4882     exclusiveRecognizer.CheckStates(0);
4883     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 1);
4884 }
4885 
4886 /**
4887  * @tc.name: RecognizerGroupCheckStatesTest003
4888  * @tc.desc: Test RecognizerGroup function: CheckStates
4889  * @tc.type: FUNC
4890  */
4891 HWTEST_F(GesturesTestNg, RecognizerGroupCheckStatesTest003, TestSize.Level1)
4892 {
4893     /**
4894      * @tc.steps: step1. create RecognizerGroup
4895      */
4896     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
4897     ExclusiveRecognizer exclusiveRecognizer = ExclusiveRecognizer(recognizers);
4898     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
4899     TouchEvent touchEventStart;
4900     touchEventStart.id = 0;
4901     clickRecognizerPtr->touchPoints_[0] = touchEventStart;
4902     TouchEvent touchEventEnd;
4903     touchEventEnd.id = 1;
4904     clickRecognizerPtr->touchPoints_[1] = touchEventEnd;
4905 
4906     /**
4907      * @tc.steps: step2. call CheckStates function and compare result.
4908      * @tc.steps: case1: recognizers_ is empty
4909      * @tc.expected: step2. result equals.
4910      */
4911     exclusiveRecognizer.recognizers_.clear();
4912     exclusiveRecognizer.CheckStates(0);
4913     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 0);
4914 
4915     /**
4916      * @tc.steps: step2. call CheckStates function and compare result.
4917      * @tc.steps: case2: recognizers has nullptr
4918      * @tc.expected: step2. result equals.
4919      */
4920     exclusiveRecognizer.recognizers_.clear();
4921     exclusiveRecognizer.CheckStates(0);
4922     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 0);
4923 
4924     /**
4925      * @tc.steps: step2. call CheckStates function and compare result.
4926      * @tc.steps: case3: recognizers has ptr
4927      * @tc.expected: step2. result equals.
4928      */
4929     exclusiveRecognizer.recognizers_.clear();
4930     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED_BLOCKED;
4931     exclusiveRecognizer.recognizers_.push_back(clickRecognizerPtr);
4932     exclusiveRecognizer.CheckStates(0);
4933     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 1);
4934 
4935     /**
4936      * @tc.steps: step2. call CheckStates function and compare result.
4937      * @tc.steps: case3: recognizers has ptr
4938      * @tc.expected: step2. result equals.
4939      */
4940     exclusiveRecognizer.recognizers_.clear();
4941     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED;
4942     exclusiveRecognizer.recognizers_.push_back(clickRecognizerPtr);
4943     exclusiveRecognizer.CheckStates(0);
4944     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 1);
4945 
4946     /**
4947      * @tc.steps: step2. call CheckStates function and compare result.
4948      * @tc.steps: case3: recognizers has ptr
4949      * @tc.expected: step2. result equals.
4950      */
4951     exclusiveRecognizer.recognizers_.clear();
4952     clickRecognizerPtr->refereeState_ = RefereeState::FAIL;
4953     exclusiveRecognizer.recognizers_.push_back(clickRecognizerPtr);
4954     exclusiveRecognizer.CheckStates(0);
4955     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 1);
4956 
4957     /**
4958      * @tc.steps: step2. call CheckStates function and compare result.
4959      * @tc.steps: case3: recognizers has ptr
4960      * @tc.expected: step2. result equals.
4961      */
4962     exclusiveRecognizer.recognizers_.clear();
4963     clickRecognizerPtr->refereeState_ = RefereeState::READY;
4964     exclusiveRecognizer.recognizers_.push_back(clickRecognizerPtr);
4965     exclusiveRecognizer.CheckStates(0);
4966     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 1);
4967 
4968     /**
4969      * @tc.steps: step2. call CheckStates function and compare result.
4970      * @tc.steps: case3: recognizers has ptr
4971      * @tc.expected: step2. result equals.
4972      */
4973     exclusiveRecognizer.recognizers_.clear();
4974     clickRecognizerPtr->refereeState_ = RefereeState::DETECTING;
4975     exclusiveRecognizer.recognizers_.push_back(clickRecognizerPtr);
4976     exclusiveRecognizer.CheckStates(0);
4977     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 1);
4978 }
4979 
4980 /**
4981  * @tc.name: RecognizerGroupCheckStatesTest005
4982  * @tc.desc: Test RecognizerGroup function: CheckStates
4983  * @tc.type: FUNC
4984  */
4985 HWTEST_F(GesturesTestNg, RecognizerGroupCheckStatesTest005, TestSize.Level1)
4986 {
4987     /**
4988      * @tc.steps: step1. create RecognizerGroup
4989      */
4990     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
4991     ExclusiveRecognizer exclusiveRecognizer = ExclusiveRecognizer(recognizers);
4992     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
4993     TouchEvent touchEventStart;
4994     touchEventStart.id = 0;
4995     clickRecognizerPtr->touchPoints_[0] = touchEventStart;
4996     TouchEvent touchEventEnd;
4997     touchEventEnd.id = 1;
4998     clickRecognizerPtr->touchPoints_[1] = touchEventEnd;
4999 
5000     std::vector<RefPtr<NGGestureRecognizer>> recognizers2 = {};
5001     RefPtr<ExclusiveRecognizer> exclusiveRecognizerPtr = AceType::MakeRefPtr<ExclusiveRecognizer>(recognizers2);
5002     exclusiveRecognizerPtr->touchPoints_[0] = touchEventStart;
5003     exclusiveRecognizerPtr->touchPoints_[1] = touchEventEnd;
5004 
5005     RefPtr<ClickRecognizer> clickRecognizerPtr2 = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
5006     touchEventStart.id = 0;
5007     clickRecognizerPtr2->touchPoints_[0] = touchEventStart;
5008     touchEventEnd.id = 1;
5009     clickRecognizerPtr2->touchPoints_[1] = touchEventEnd;
5010     clickRecognizerPtr2->refereeState_ = RefereeState::DETECTING;
5011     exclusiveRecognizerPtr->recognizers_.push_back(clickRecognizerPtr2);
5012 
5013     /**
5014      * @tc.steps: step2. call CheckStates function and compare result.
5015      * @tc.steps: case1: recognizers_ is empty
5016      * @tc.expected: step2. result equals.
5017      */
5018     exclusiveRecognizer.recognizers_.clear();
5019     exclusiveRecognizer.CheckStates(0);
5020     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 0);
5021 
5022     /**
5023      * @tc.steps: step2. call CheckStates function and compare result.
5024      * @tc.steps: case2: recognizers has nullptr
5025      * @tc.expected: step2. result equals.
5026      */
5027     exclusiveRecognizer.recognizers_.clear();
5028     exclusiveRecognizer.CheckStates(0);
5029     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 0);
5030 
5031     /**
5032      * @tc.steps: step2. call CheckStates function and compare result.
5033      * @tc.steps: case3: recognizers has ptr
5034      * @tc.expected: step2. result equals.
5035      */
5036     exclusiveRecognizer.recognizers_.clear();
5037     exclusiveRecognizer.recognizers_.push_back(clickRecognizerPtr);
5038     exclusiveRecognizer.CheckStates(0);
5039     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 1);
5040 
5041     /**
5042      * @tc.steps: step2. call CheckStates function and compare result.
5043      * @tc.steps: case3: recognizers has ptr
5044      * @tc.expected: step2. result equals.
5045      */
5046     exclusiveRecognizer.recognizers_.clear();
5047     exclusiveRecognizer.recognizers_.push_back(exclusiveRecognizerPtr);
5048     exclusiveRecognizer.CheckStates(0);
5049     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 1);
5050 }
5051 
5052 /**
5053  * @tc.name: RecognizerGroupOnResetStatusTest001
5054  * @tc.desc: Test RecognizerGroup function: OnResetStatus
5055  * @tc.type: FUNC
5056  */
5057 HWTEST_F(GesturesTestNg, RecognizerGroupOnResetStatusTest001, TestSize.Level1)
5058 {
5059     /**
5060      * @tc.steps: step1. create RecognizerGroup
5061      */
5062     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
5063     ExclusiveRecognizer exclusiveRecognizer = ExclusiveRecognizer(recognizers);
5064     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
5065 
5066     /**
5067      * @tc.steps: step2. call OnResetStatus function and compare result.
5068      * @tc.steps: case1: recognizers_ is empty
5069      * @tc.expected: step2. result equals.
5070      */
5071     exclusiveRecognizer.recognizers_.clear();
5072     exclusiveRecognizer.remainChildOnResetStatus_ = true;
5073     exclusiveRecognizer.OnResetStatus();
5074     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 0);
5075 
5076     /**
5077      * @tc.steps: step2. call OnResetStatus function and compare result.
5078      * @tc.steps: case2: recognizers has nullptr
5079      * @tc.expected: step2. result equals.
5080      */
5081     exclusiveRecognizer.recognizers_.clear();
5082     exclusiveRecognizer.recognizers_.push_back(nullptr);
5083     exclusiveRecognizer.remainChildOnResetStatus_ = false;
5084     exclusiveRecognizer.OnResetStatus();
5085     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 0);
5086 
5087     /**
5088      * @tc.steps: step2. call OnResetStatus function and compare result.
5089      * @tc.steps: case3: recognizers has ptr
5090      * @tc.expected: step2. result equals.
5091      */
5092     exclusiveRecognizer.recognizers_.clear();
5093     exclusiveRecognizer.recognizers_.push_back(clickRecognizerPtr);
5094     exclusiveRecognizer.remainChildOnResetStatus_ = false;
5095     exclusiveRecognizer.OnResetStatus();
5096     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 0);
5097 }
5098 
5099 /**
5100  * @tc.name: RecognizerGroupTest003
5101  * @tc.desc: Test RecognizerGroup function: AddChildren
5102  * @tc.type: FUNC
5103  */
5104 HWTEST_F(GesturesTestNg, RecognizerGroupTest003, TestSize.Level1)
5105 {
5106     /**
5107      * @tc.steps: step1. create RecognizerGroup
5108      */
5109     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
5110     ExclusiveRecognizer exclusiveRecognizer = ExclusiveRecognizer(recognizers);
5111     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
5112     std::list<RefPtr<NGGestureRecognizer>> recognizersInput = {};
5113 
5114     /**
5115      * @tc.steps: step2. call OnFinishGestureReferee function and compare result.
5116      * @tc.steps: case1: recognizers is empty
5117      * @tc.expected: step2. result equals.
5118      */
5119     exclusiveRecognizer.AddChildren(recognizersInput);
5120     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 0);
5121 
5122     /**
5123      * @tc.steps: step2. call OnFinishGestureReferee function and compare result.
5124      * @tc.steps: case2: recognizers is not empty
5125      * @tc.expected: step2. result equals.
5126      */
5127     recognizersInput = { nullptr, clickRecognizerPtr, clickRecognizerPtr };
5128     exclusiveRecognizer.AddChildren(recognizersInput);
5129     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 1);
5130 }
5131 
5132 /**
5133  * @tc.name: RecognizerGroupTest004
5134  * @tc.desc: Test RecognizerGroup function: Existed
5135  * @tc.type: FUNC
5136  */
5137 HWTEST_F(GesturesTestNg, RecognizerGroupTest004, TestSize.Level1)
5138 {
5139     /**
5140      * @tc.steps: step1. create RecognizerGroup
5141      */
5142     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
5143     ExclusiveRecognizer exclusiveRecognizer = ExclusiveRecognizer(recognizers);
5144     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
5145 
5146     /**
5147      * @tc.steps: step2. call Existed function and compare result.
5148      * @tc.steps: case1: recognizers is empty
5149      * @tc.expected: step2. result equals.
5150      */
5151     exclusiveRecognizer.Existed(clickRecognizerPtr);
5152     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 0);
5153 
5154     /**
5155      * @tc.steps: step2. call Existed function and compare result.
5156      * @tc.steps: case2: recognizers is empty
5157      * @tc.expected: step2. result equals.
5158      */
5159     exclusiveRecognizer.recognizers_.push_back(clickRecognizerPtr);
5160     exclusiveRecognizer.Existed(clickRecognizerPtr);
5161     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 1);
5162 }
5163 
5164 /**
5165  * @tc.name: RecognizerGroupTest005
5166  * @tc.desc: Test RecognizerGroup function: OnFlushTouchEventsBegin End Reset
5167  * @tc.type: FUNC
5168  */
5169 HWTEST_F(GesturesTestNg, RecognizerGroupTest005, TestSize.Level1)
5170 {
5171     /**
5172      * @tc.steps: step1. create RecognizerGroup
5173      */
5174     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
5175     ExclusiveRecognizer exclusiveRecognizer = ExclusiveRecognizer(recognizers);
5176     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
5177 
5178     /**
5179      * @tc.steps: step2. call function and compare result.
5180      * @tc.steps: case1: recognizers is empty
5181      * @tc.expected: step2. result equals.
5182      */
5183     exclusiveRecognizer.OnFlushTouchEventsBegin();
5184     exclusiveRecognizer.OnFlushTouchEventsEnd();
5185     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 0);
5186 
5187     /**
5188      * @tc.steps: step2. call function and compare result.
5189      * @tc.steps: case2: recognizers has nullptr
5190      * @tc.expected: step2. result equals.
5191      */
5192     exclusiveRecognizer.recognizers_.push_back(nullptr);
5193     exclusiveRecognizer.OnFlushTouchEventsBegin();
5194     exclusiveRecognizer.OnFlushTouchEventsEnd();
5195     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 1);
5196 
5197     /**
5198      * @tc.steps: step2. call function and compare result.
5199      * @tc.steps: case3: recognizers has ptr
5200      * @tc.expected: step2. result equals.
5201      */
5202     exclusiveRecognizer.recognizers_.clear();
5203     exclusiveRecognizer.recognizers_.push_back(clickRecognizerPtr);
5204     exclusiveRecognizer.OnFlushTouchEventsBegin();
5205     exclusiveRecognizer.OnFlushTouchEventsEnd();
5206     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 1);
5207 
5208     /**
5209      * @tc.steps: step2. call function and compare result.
5210      * @tc.steps: case4: recognizers has ptr
5211      * @tc.expected: step2. result equals.
5212      */
5213     exclusiveRecognizer.remainChildOnResetStatus_ = true;
5214     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 1);
5215 }
5216 
5217 /**
5218  * @tc.name: RecognizerGroupTest006
5219  * @tc.desc: Test RecognizerGroup function: GetGroupRecognizer
5220  * @tc.type: FUNC
5221  */
5222 HWTEST_F(GesturesTestNg, RecognizerGroupTest006, TestSize.Level1)
5223 {
5224     /**
5225      * @tc.steps: step1. create RecognizerGroup
5226      */
5227     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
5228     ExclusiveRecognizer exclusiveRecognizer = ExclusiveRecognizer(recognizers);
5229 
5230     /**
5231      * @tc.steps: step2. call function and compare result.
5232      * @tc.steps: case1: recognizers is empty
5233      * @tc.expected: step2. result equals.
5234      */
5235     exclusiveRecognizer.OnFlushTouchEventsBegin();
5236     exclusiveRecognizer.OnFlushTouchEventsEnd();
5237     exclusiveRecognizer.GetGroupRecognizer();
5238     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 0);
5239 }
5240 
5241 /**
5242  * @tc.name: RecognizerGroupTest007
5243  * @tc.desc: Test RecognizerGroup function: ForceReject
5244  * @tc.type: FUNC
5245  */
5246 HWTEST_F(GesturesTestNg, RecognizerGroupTest007, TestSize.Level1)
5247 {
5248     /**
5249      * @tc.steps: step1. create RecognizerGroup
5250      */
5251     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
5252     ExclusiveRecognizer exclusiveRecognizer = ExclusiveRecognizer(recognizers);
5253     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
5254 
5255     /**
5256      * @tc.steps: step2. call function and compare result.
5257      * @tc.steps: case1: recognizers is empty
5258      * @tc.expected: step2. result equals.
5259      */
5260     exclusiveRecognizer.recognizers_.clear();
5261     exclusiveRecognizer.OnFlushTouchEventsBegin();
5262     exclusiveRecognizer.OnFlushTouchEventsEnd();
5263     exclusiveRecognizer.ForceReject();
5264     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 0);
5265 
5266     /**
5267      * @tc.steps: step2. call function and compare result.
5268      * @tc.steps: case1: recognizers is empty
5269      * @tc.expected: step2. result equals.
5270      */
5271     exclusiveRecognizer.recognizers_.clear();
5272     exclusiveRecognizer.recognizers_.push_back(clickRecognizerPtr);
5273     exclusiveRecognizer.OnFlushTouchEventsBegin();
5274     exclusiveRecognizer.OnFlushTouchEventsEnd();
5275     exclusiveRecognizer.ForceReject();
5276     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 1);
5277 }
5278 
5279 /**
5280  * @tc.name: RecognizerGroupForceRejectTest001
5281  * @tc.desc: Test RecognizerGroup function: ForceReject
5282  * @tc.type: FUNC
5283  */
5284 HWTEST_F(GesturesTestNg, RecognizerGroupForceRejectTest001, TestSize.Level1)
5285 {
5286     /**
5287      * @tc.steps: step1. create RecognizerGroup
5288      */
5289     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
5290     ExclusiveRecognizer exclusiveRecognizer = ExclusiveRecognizer(recognizers);
5291     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
5292     std::vector<RefPtr<NGGestureRecognizer>> recognizers2 = {};
5293     RefPtr<ExclusiveRecognizer> exclusiveRecognizerPtr = AceType::MakeRefPtr<ExclusiveRecognizer>(recognizers2);
5294 
5295     /**
5296      * @tc.steps: step2. call function and compare result.
5297      * @tc.steps: case1: recognizers is empty
5298      * @tc.expected: step2. result equals.
5299      */
5300     exclusiveRecognizer.recognizers_.clear();
5301     exclusiveRecognizer.recognizers_.push_back(exclusiveRecognizerPtr);
5302     exclusiveRecognizer.OnFlushTouchEventsBegin();
5303     exclusiveRecognizer.OnFlushTouchEventsEnd();
5304     exclusiveRecognizer.ForceReject();
5305     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 1);
5306 
5307     /**
5308      * @tc.steps: step2. call function and compare result.
5309      * @tc.steps: case1: recognizers is empty
5310      * @tc.expected: step2. result equals.
5311      */
5312     exclusiveRecognizer.recognizers_.clear();
5313     clickRecognizerPtr->refereeState_ = RefereeState::DETECTING;
5314     exclusiveRecognizer.recognizers_.push_back(clickRecognizerPtr);
5315     exclusiveRecognizer.OnFlushTouchEventsBegin();
5316     exclusiveRecognizer.OnFlushTouchEventsEnd();
5317     exclusiveRecognizer.ForceReject();
5318     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 1);
5319 
5320     /**
5321      * @tc.steps: step2. call function and compare result.
5322      * @tc.steps: case1: recognizers is empty
5323      * @tc.expected: step2. result equals.
5324      */
5325     exclusiveRecognizer.recognizers_.clear();
5326     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED_BLOCKED;
5327     exclusiveRecognizer.recognizers_.push_back(clickRecognizerPtr);
5328     exclusiveRecognizer.OnFlushTouchEventsBegin();
5329     exclusiveRecognizer.OnFlushTouchEventsEnd();
5330     exclusiveRecognizer.ForceReject();
5331     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 1);
5332 
5333     /**
5334      * @tc.steps: step2. call function and compare result.
5335      * @tc.steps: case1: recognizers is empty
5336      * @tc.expected: step2. result equals.
5337      */
5338     exclusiveRecognizer.recognizers_.clear();
5339     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED;
5340     exclusiveRecognizer.recognizers_.push_back(clickRecognizerPtr);
5341     exclusiveRecognizer.OnFlushTouchEventsBegin();
5342     exclusiveRecognizer.OnFlushTouchEventsEnd();
5343     exclusiveRecognizer.ForceReject();
5344     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 1);
5345 
5346 
5347     /**
5348      * @tc.steps: step2. call function and compare result.
5349      * @tc.steps: case1: recognizers is empty
5350      * @tc.expected: step2. result equals.
5351      */
5352     exclusiveRecognizer.recognizers_.clear();
5353     clickRecognizerPtr->refereeState_ = RefereeState::FAIL;
5354     exclusiveRecognizer.recognizers_.push_back(clickRecognizerPtr);
5355     exclusiveRecognizer.OnFlushTouchEventsBegin();
5356     exclusiveRecognizer.OnFlushTouchEventsEnd();
5357     exclusiveRecognizer.ForceReject();
5358     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 1);
5359 }
5360 
5361 /**
5362  * @tc.name: RecognizerGroupTest008
5363  * @tc.desc: Test RecognizerGroup function: CheckAllFailed
5364  * @tc.type: FUNC
5365  */
5366 HWTEST_F(GesturesTestNg, RecognizerGroupTest008, TestSize.Level1)
5367 {
5368     /**
5369      * @tc.steps: step1. create RecognizerGroup
5370      */
5371     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
5372     ExclusiveRecognizer exclusiveRecognizer = ExclusiveRecognizer(recognizers);
5373 
5374     /**
5375      * @tc.steps: step2. call function and compare result.
5376      * @tc.steps: case1: recognizers is empty
5377      * @tc.expected: step2. result equals.
5378      */
5379     exclusiveRecognizer.OnFlushTouchEventsBegin();
5380     exclusiveRecognizer.OnFlushTouchEventsEnd();
5381     bool result = exclusiveRecognizer.CheckAllFailed();
5382     EXPECT_EQ(exclusiveRecognizer.recognizers_.size(), 0);
5383     EXPECT_TRUE(result);
5384 }
5385 
5386 /**
5387  * @tc.name: RotationRecognizerTest001
5388  * @tc.desc: Test RotationRecognizer function: OnAccepted OnRejected
5389  * @tc.type: FUNC
5390  */
5391 HWTEST_F(GesturesTestNg, RotationRecognizerTest001, TestSize.Level1)
5392 {
5393     /**
5394      * @tc.steps: step1. create RotationRecognizer.
5395      */
5396     RotationRecognizer rotationRecognizer = RotationRecognizer(SINGLE_FINGER_NUMBER, ROTATION_GESTURE_ANGLE);
5397 
5398     /**
5399      * @tc.steps: step2. call OnAccepted function and compare result.
5400      * @tc.expected: step2. result equals.
5401      */
5402     rotationRecognizer.OnAccepted();
5403     EXPECT_EQ(rotationRecognizer.refereeState_, RefereeState::SUCCEED);
5404 
5405     /**
5406      * @tc.steps: step3. call OnRejected function and compare result.
5407      * @tc.expected: step3. result equals.
5408      */
5409     rotationRecognizer.OnRejected();
5410     EXPECT_EQ(rotationRecognizer.refereeState_, RefereeState::FAIL);
5411 }
5412 
5413 /**
5414  * @tc.name: RotationRecognizerTest002
5415  * @tc.desc: Test RotationRecognizer function: TouchDown TouchUp TouchMove
5416  * @tc.type: FUNC
5417  */
5418 HWTEST_F(GesturesTestNg, RotationRecognizerTest002, TestSize.Level1)
5419 {
5420     /**
5421      * @tc.steps: step1. create RotationRecognizer.
5422      */
5423     RotationRecognizer rotationRecognizer = RotationRecognizer(SINGLE_FINGER_NUMBER, ROTATION_GESTURE_ANGLE);
5424 
5425     /**
5426      * @tc.steps: step2. call HandleTouchDownEvent function and compare result.
5427      * @tc.steps: case1: touchPoints.size == fingers
5428      * @tc.expected: step2. result equals.
5429      */
5430     TouchEvent touchEvent;
5431     rotationRecognizer.HandleTouchDownEvent(touchEvent);
5432     EXPECT_EQ(rotationRecognizer.touchPoints_[touchEvent.id].id, touchEvent.id);
5433 
5434     /**
5435      * @tc.steps: step2. call HandleTouchDownEvent function and compare result.
5436      * @tc.steps: case2: touchPoints.size < fingers
5437      * @tc.expected: step2. result equals.
5438      */
5439     rotationRecognizer.fingers_ = FINGER_NUMBER;
5440     rotationRecognizer.refereeState_ = RefereeState::SUCCEED;
5441     rotationRecognizer.HandleTouchDownEvent(touchEvent);
5442     rotationRecognizer.HandleTouchUpEvent(touchEvent);
5443     rotationRecognizer.HandleTouchMoveEvent(touchEvent);
5444     rotationRecognizer.HandleTouchCancelEvent(touchEvent);
5445     EXPECT_EQ(rotationRecognizer.refereeState_, RefereeState::SUCCEED);
5446     EXPECT_EQ(rotationRecognizer.resultAngle_, 0);
5447 
5448     /**
5449      * @tc.steps: step2. call HandleTouchDownEvent function and compare result.
5450      * @tc.steps: case3: touchPoints.size < fingers
5451      * @tc.expected: step2. result equals.
5452      */
5453     rotationRecognizer.fingers_ = FINGER_NUMBER;
5454     rotationRecognizer.refereeState_ = RefereeState::FAIL;
5455     rotationRecognizer.HandleTouchDownEvent(touchEvent);
5456     rotationRecognizer.HandleTouchUpEvent(touchEvent);
5457     rotationRecognizer.HandleTouchMoveEvent(touchEvent);
5458     rotationRecognizer.HandleTouchCancelEvent(touchEvent);
5459     EXPECT_EQ(rotationRecognizer.refereeState_, RefereeState::FAIL);
5460     EXPECT_EQ(rotationRecognizer.resultAngle_, 0);
5461 }
5462 
5463 /**
5464  * @tc.name: RotationRecognizerHandleTouchDownEventTest001
5465  * @tc.desc: Test RotationRecognizer function: TouchDown TouchUp TouchMove
5466  * @tc.type: FUNC
5467  */
5468 HWTEST_F(GesturesTestNg, RotationRecognizerHandleTouchDownEventTest001, TestSize.Level1)
5469 {
5470     /**
5471      * @tc.steps: step1. create RotationRecognizer.
5472      */
5473     RotationRecognizer rotationRecognizer = RotationRecognizer(SINGLE_FINGER_NUMBER, ROTATION_GESTURE_ANGLE);
5474 
5475     /**
5476      * @tc.steps: step2. call HandleTouchDownEvent function and compare result.
5477      * @tc.steps: case1: touchPoints.size == fingers
5478      * @tc.expected: step2. result equals.
5479      */
5480     TouchEvent touchEvent;
5481     rotationRecognizer.fingers_ = FINGER_NUMBER_OVER_MAX;
5482     rotationRecognizer.HandleTouchDownEvent(touchEvent);
5483     EXPECT_EQ(rotationRecognizer.touchPoints_[touchEvent.id].id, touchEvent.id);
5484 
5485     /**
5486      * @tc.steps: step2. call HandleTouchDownEvent function and compare result.
5487      * @tc.steps: case2: touchPoints.size < fingers
5488      * @tc.expected: step2. result equals.
5489      */
5490     rotationRecognizer.refereeState_ = RefereeState::SUCCEED;
5491     rotationRecognizer.fingers_ = FINGER_NUMBER_OVER_MAX;
5492     rotationRecognizer.HandleTouchDownEvent(touchEvent);
5493     rotationRecognizer.HandleTouchUpEvent(touchEvent);
5494     rotationRecognizer.HandleTouchMoveEvent(touchEvent);
5495     rotationRecognizer.HandleTouchCancelEvent(touchEvent);
5496     EXPECT_EQ(rotationRecognizer.refereeState_, RefereeState::SUCCEED);
5497     EXPECT_EQ(rotationRecognizer.resultAngle_, 0);
5498 
5499     /**
5500      * @tc.steps: step2. call HandleTouchDownEvent function and compare result.
5501      * @tc.steps: case3: touchPoints.size < fingers
5502      * @tc.expected: step2. result equals.
5503      */
5504     rotationRecognizer.refereeState_ = RefereeState::FAIL;
5505     rotationRecognizer.fingers_ = FINGER_NUMBER_OVER_MAX;
5506     rotationRecognizer.HandleTouchDownEvent(touchEvent);
5507     rotationRecognizer.HandleTouchUpEvent(touchEvent);
5508     rotationRecognizer.HandleTouchMoveEvent(touchEvent);
5509     rotationRecognizer.HandleTouchCancelEvent(touchEvent);
5510     EXPECT_EQ(rotationRecognizer.refereeState_, RefereeState::FAIL);
5511     EXPECT_EQ(rotationRecognizer.resultAngle_, 0);
5512 }
5513 
5514 /**
5515  * @tc.name: RotationRecognizerHandleTouchDownEventTest002
5516  * @tc.desc: Test RotationRecognizer function: HandleTouchDownEvent
5517  * @tc.type: FUNC
5518  */
5519 HWTEST_F(GesturesTestNg, RotationRecognizerHandleTouchDownEventTest002, TestSize.Level1)
5520 {
5521     /**
5522      * @tc.steps: step1. create RotationRecognizer.
5523      */
5524     RotationRecognizer rotationRecognizer = RotationRecognizer(SINGLE_FINGER_NUMBER, ROTATION_GESTURE_ANGLE);
5525 
5526     /**
5527      * @tc.steps: step2. call HandleTouchDownEvent function and compare result.
5528      * @tc.steps: case1: touchPoints.size == fingers
5529      * @tc.expected: step2. result equals.
5530      */
5531     TouchEvent touchEvent;
5532     rotationRecognizer.fingers_ = 0;
5533     rotationRecognizer.HandleTouchDownEvent(touchEvent);
5534     EXPECT_EQ(rotationRecognizer.touchPoints_[touchEvent.id].id, touchEvent.id);
5535 
5536     /**
5537      * @tc.steps: step2. call HandleTouchDownEvent function and compare result.
5538      * @tc.steps: case2: touchPoints.size < fingers
5539      * @tc.expected: step2. result equals.
5540      */
5541     rotationRecognizer.refereeState_ = RefereeState::SUCCEED;
5542     rotationRecognizer.fingers_ = 0;
5543     rotationRecognizer.HandleTouchDownEvent(touchEvent);
5544     EXPECT_EQ(rotationRecognizer.resultAngle_, 0);
5545 
5546     /**
5547      * @tc.steps: step2. call HandleTouchDownEvent function and compare result.
5548      * @tc.steps: case3: touchPoints.size < fingers
5549      * @tc.expected: step2. result equals.
5550      */
5551     rotationRecognizer.refereeState_ = RefereeState::FAIL;
5552     rotationRecognizer.fingers_ = 0;
5553     rotationRecognizer.HandleTouchDownEvent(touchEvent);
5554     EXPECT_EQ(rotationRecognizer.resultAngle_, 0);
5555 }
5556 
5557 /**
5558  * @tc.name: RotationRecognizerHandleTouchUpEventTest001
5559  * @tc.desc: Test RotationRecognizer function: HandleTouchUpEvent
5560  * @tc.type: FUNC
5561  */
5562 HWTEST_F(GesturesTestNg, RotationRecognizerHandleTouchUpEventTest001, TestSize.Level1)
5563 {
5564     /**
5565      * @tc.steps: step1. create RotationRecognizer.
5566      */
5567     RotationRecognizer rotationRecognizer = RotationRecognizer(SINGLE_FINGER_NUMBER, ROTATION_GESTURE_ANGLE);
5568 
5569     /**
5570      * @tc.steps: step2. call HandleTouchDownEvent function and compare result.
5571      * @tc.steps: case1: touchPoints.size == fingers
5572      * @tc.expected: step2. result equals.
5573      */
5574     TouchEvent touchEvent;
5575 
5576     /**
5577      * @tc.steps: step2. call HandleTouchDownEvent function and compare result.
5578      * @tc.steps: case2: touchPoints.size < fingers
5579      * @tc.expected: step2. result equals.
5580      */
5581     rotationRecognizer.fingers_ = FINGER_NUMBER;
5582     rotationRecognizer.refereeState_ = RefereeState::SUCCEED;
5583     rotationRecognizer.currentFingers_ = rotationRecognizer.fingers_;
5584     rotationRecognizer.HandleTouchUpEvent(touchEvent);
5585     EXPECT_EQ(rotationRecognizer.refereeState_, RefereeState::SUCCEED);
5586     EXPECT_EQ(rotationRecognizer.resultAngle_, 0);
5587 
5588     /**
5589      * @tc.steps: step2. call HandleTouchDownEvent function and compare result.
5590      * @tc.steps: case3: touchPoints.size < fingers
5591      * @tc.expected: step2. result equals.
5592      */
5593     rotationRecognizer.fingers_ = FINGER_NUMBER;
5594     rotationRecognizer.refereeState_ = RefereeState::FAIL;
5595     rotationRecognizer.currentFingers_ = rotationRecognizer.fingers_;
5596     rotationRecognizer.HandleTouchUpEvent(touchEvent);
5597     EXPECT_EQ(rotationRecognizer.refereeState_, RefereeState::FAIL);
5598     EXPECT_EQ(rotationRecognizer.resultAngle_, 0);
5599 }
5600 
5601 /**
5602  * @tc.name: RotationRecognizerHandleTouchMoveEventTest001
5603  * @tc.desc: Test RotationRecognizer function: HandleTouchMoveEvent
5604  * @tc.type: FUNC
5605  */
5606 HWTEST_F(GesturesTestNg, RotationRecognizerHandleTouchMoveEventTest001, TestSize.Level1)
5607 {
5608     /**
5609      * @tc.steps: step1. create RotationRecognizer.
5610      */
5611     RotationRecognizer rotationRecognizer = RotationRecognizer(SINGLE_FINGER_NUMBER, ROTATION_GESTURE_ANGLE);
5612 
5613     /**
5614      * @tc.steps: step2. call HandleTouchDownEvent function and compare result.
5615      * @tc.steps: case1: touchPoints.size == fingers
5616      * @tc.expected: step2. result equals.
5617      */
5618     TouchEvent touchEvent;
5619 
5620     /**
5621      * @tc.steps: step2. call HandleTouchDownEvent function and compare result.
5622      * @tc.steps: case2: touchPoints.size < fingers
5623      * @tc.expected: step2. result equals.
5624      */
5625     rotationRecognizer.fingers_ = FINGER_NUMBER;
5626     rotationRecognizer.refereeState_ = RefereeState::SUCCEED;
5627     rotationRecognizer.currentFingers_ = rotationRecognizer.fingers_;
5628     rotationRecognizer.HandleTouchMoveEvent(touchEvent);
5629     EXPECT_EQ(rotationRecognizer.refereeState_, RefereeState::SUCCEED);
5630     EXPECT_EQ(rotationRecognizer.resultAngle_, 0);
5631 
5632     /**
5633      * @tc.steps: step2. call HandleTouchDownEvent function and compare result.
5634      * @tc.steps: case3: touchPoints.size < fingers
5635      * @tc.expected: step2. result equals.
5636      */
5637     rotationRecognizer.fingers_ = FINGER_NUMBER;
5638     rotationRecognizer.refereeState_ = RefereeState::FAIL;
5639     rotationRecognizer.currentFingers_ = rotationRecognizer.fingers_;
5640     rotationRecognizer.HandleTouchMoveEvent(touchEvent);
5641     EXPECT_EQ(rotationRecognizer.refereeState_, RefereeState::FAIL);
5642     EXPECT_EQ(rotationRecognizer.resultAngle_, 0);
5643 }
5644 
5645 /**
5646  * @tc.name: RotationRecognizerHandleTouchMoveEventTest002
5647  * @tc.desc: Test RotationRecognizer function: HandleTouchMoveEvent
5648  * @tc.type: FUNC
5649  */
5650 HWTEST_F(GesturesTestNg, RotationRecognizerHandleTouchMoveEventTest002, TestSize.Level1)
5651 {
5652     /**
5653      * @tc.steps: step1. create RotationRecognizer.
5654      */
5655     RotationRecognizer rotationRecognizer = RotationRecognizer(SINGLE_FINGER_NUMBER, ROTATION_GESTURE_ANGLE);
5656 
5657     /**
5658      * @tc.steps: step2. call HandleTouchDownEvent function and compare result.
5659      * @tc.steps: case1: touchPoints.size == fingers
5660      * @tc.expected: step2. result equals.
5661      */
5662     TouchEvent touchEvent;
5663 
5664     /**
5665      * @tc.steps: step2. call HandleTouchDownEvent function and compare result.
5666      * @tc.steps: case2: touchPoints.size < fingers
5667      * @tc.expected: step2. result equals.
5668      */
5669     rotationRecognizer.fingers_ = FINGER_NUMBER_OVER_MAX;
5670     rotationRecognizer.refereeState_ = RefereeState::SUCCEED;
5671     rotationRecognizer.currentFingers_ = rotationRecognizer.fingers_;
5672     rotationRecognizer.HandleTouchMoveEvent(touchEvent);
5673     EXPECT_EQ(rotationRecognizer.refereeState_, RefereeState::SUCCEED);
5674     EXPECT_EQ(rotationRecognizer.resultAngle_, 0);
5675 
5676     /**
5677      * @tc.steps: step2. call HandleTouchDownEvent function and compare result.
5678      * @tc.steps: case3: touchPoints.size < fingers
5679      * @tc.expected: step2. result equals.
5680      */
5681     rotationRecognizer.fingers_ = 0;
5682     rotationRecognizer.refereeState_ = RefereeState::FAIL;
5683     rotationRecognizer.currentFingers_ = rotationRecognizer.fingers_;
5684     rotationRecognizer.HandleTouchMoveEvent(touchEvent);
5685     EXPECT_EQ(rotationRecognizer.refereeState_, RefereeState::FAIL);
5686     EXPECT_EQ(rotationRecognizer.resultAngle_, 0);
5687 }
5688 
5689 /**
5690  * @tc.name: RotationRecognizerHandleTouchMoveEventTest003
5691  * @tc.desc: Test RotationRecognizer function: HandleTouchMoveEvent
5692  * @tc.type: FUNC
5693  */
5694 HWTEST_F(GesturesTestNg, RotationRecognizerHandleTouchMoveEventTest003, TestSize.Level1)
5695 {
5696     /**
5697      * @tc.steps: step1. create RotationRecognizer.
5698      */
5699     RotationRecognizer rotationRecognizer = RotationRecognizer(SINGLE_FINGER_NUMBER, ROTATION_GESTURE_ANGLE);
5700 
5701     /**
5702      * @tc.steps: step2. call HandleTouchDownEvent function and compare result.
5703      * @tc.steps: case1: touchPoints.size == fingers
5704      * @tc.expected: step2. result equals.
5705      */
5706     TouchEvent touchEvent;
5707 
5708     /**
5709      * @tc.steps: step2. call HandleTouchDownEvent function and compare result.
5710      * @tc.steps: case2: touchPoints.size < fingers
5711      * @tc.expected: step2. result equals.
5712      */
5713     rotationRecognizer.fingers_ = FINGER_NUMBER_OVER_MAX;
5714     rotationRecognizer.refereeState_ = RefereeState::SUCCEED;
5715     rotationRecognizer.currentFingers_ = rotationRecognizer.fingers_;
5716     rotationRecognizer.HandleTouchMoveEvent(touchEvent);
5717     EXPECT_EQ(rotationRecognizer.refereeState_, RefereeState::SUCCEED);
5718     EXPECT_EQ(rotationRecognizer.resultAngle_, 0);
5719 
5720     /**
5721      * @tc.steps: step2. call HandleTouchDownEvent function and compare result.
5722      * @tc.steps: case3: touchPoints.size < fingers
5723      * @tc.expected: step2. result equals.
5724      */
5725     rotationRecognizer.fingers_ = 0;
5726     rotationRecognizer.refereeState_ = RefereeState::SUCCEED;
5727     rotationRecognizer.currentFingers_ = rotationRecognizer.fingers_;
5728     rotationRecognizer.HandleTouchMoveEvent(touchEvent);
5729     EXPECT_EQ(rotationRecognizer.refereeState_, RefereeState::SUCCEED);
5730     EXPECT_EQ(rotationRecognizer.resultAngle_, 0);
5731 }
5732 
5733 /**
5734  * @tc.name: RotationRecognizerTest003
5735  * @tc.desc: Test RotationRecognizer function: ChangeValueRange
5736  * @tc.type: FUNC
5737  */
5738 HWTEST_F(GesturesTestNg, RotationRecognizerTest003, TestSize.Level1)
5739 {
5740     /**
5741      * @tc.steps: step1. create RotationRecognizer.
5742      */
5743     RotationRecognizer rotationRecognizer = RotationRecognizer(SINGLE_FINGER_NUMBER, ROTATION_GESTURE_ANGLE);
5744 
5745     /**
5746      * @tc.steps: step2. call ChangeValueRange function and compare result.
5747      * @tc.expected: step2. result equals.
5748      */
5749     auto result = rotationRecognizer.ChangeValueRange(COMMON_VALUE_RANGE_CASE);
5750     EXPECT_EQ(result, COMMON_VALUE_RANGE_CASE);
5751 
5752     result = rotationRecognizer.ChangeValueRange(SPECIAL_VALUE_RANGE_CASE1);
5753     EXPECT_EQ(result, SPECIAL_VALUE_RANGE_CASE1 - PI);
5754 
5755     result = rotationRecognizer.ChangeValueRange(SPECIAL_VALUE_RANGE_CASE2);
5756     EXPECT_EQ(result, SPECIAL_VALUE_RANGE_CASE2 + PI);
5757 }
5758 
5759 /**
5760  * @tc.name: RotationRecognizerTest004
5761  * @tc.desc: Test RotationRecognizer function: ComputeAngle
5762  * @tc.type: FUNC
5763  */
5764 HWTEST_F(GesturesTestNg, RotationRecognizerTest004, TestSize.Level1)
5765 {
5766     /**
5767      * @tc.steps: step1. create RotationRecognizer.
5768      */
5769     RotationRecognizer rotationRecognizer = RotationRecognizer(SINGLE_FINGER_NUMBER, ROTATION_GESTURE_ANGLE);
5770 
5771     /**
5772      * @tc.steps: step2. call ComputeAngle function and compare result.
5773      * @tc.expected: step2. result equals.
5774      */
5775     TouchEvent touchEventStart;
5776     touchEventStart.id = 0;
5777     rotationRecognizer.touchPoints_[0] = touchEventStart;
5778     TouchEvent touchEventEnd;
5779     touchEventEnd.id = 1;
5780     rotationRecognizer.touchPoints_[1] = touchEventEnd;
5781     auto result = rotationRecognizer.ComputeAngle();
5782     EXPECT_EQ(result, 0);
5783 }
5784 
5785 /**
5786  * @tc.name: RotationRecognizerTest005
5787  * @tc.desc: Test RotationRecognizer function: OnResetStatus
5788  * @tc.type: FUNC
5789  */
5790 HWTEST_F(GesturesTestNg, RotationRecognizerTest005, TestSize.Level1)
5791 {
5792     /**
5793      * @tc.steps: step1. create RotationRecognizer.
5794      */
5795     RotationRecognizer rotationRecognizer = RotationRecognizer(SINGLE_FINGER_NUMBER, ROTATION_GESTURE_ANGLE);
5796 
5797     /**
5798      * @tc.steps: step2. call OnResetStatus function and compare result.
5799      * @tc.expected: step2. result equals.
5800      */
5801     rotationRecognizer.OnResetStatus();
5802     EXPECT_EQ(rotationRecognizer.initialAngle_, 0.0);
5803     EXPECT_EQ(rotationRecognizer.currentAngle_, 0.0);
5804     EXPECT_EQ(rotationRecognizer.resultAngle_, 0.0);
5805 }
5806 
5807 /**
5808  * @tc.name: RotationRecognizerTest006
5809  * @tc.desc: Test RotationRecognizer function: SendCallbackMsg
5810  * @tc.type: FUNC
5811  */
5812 HWTEST_F(GesturesTestNg, RotationRecognizerTest006, TestSize.Level1)
5813 {
5814     /**
5815      * @tc.steps: step1. create RotationRecognizer.
5816      */
5817     RotationRecognizer rotationRecognizer = RotationRecognizer(SINGLE_FINGER_NUMBER, ROTATION_GESTURE_ANGLE);
5818 
5819     /**
5820      * @tc.steps: step2. call SendCallbackMsg function and compare result.
5821      * @tc.steps: case1: onAction is no, *onAction is no
5822      * @tc.expected: step2. result equals.
5823      */
5824     std::unique_ptr<GestureEventFunc> onAction;
5825     rotationRecognizer.SendCallbackMsg(onAction);
5826     EXPECT_EQ(rotationRecognizer.touchPoints_.size(), 0);
5827 
5828     /**
5829      * @tc.steps: step2. call SendCallbackMsg function and compare result.
5830      * @tc.steps: case2: onAction is yes, *onAction is no
5831      * @tc.expected: step2. result equals.
5832      */
5833     onAction = std::make_unique<GestureEventFunc>();
5834     rotationRecognizer.SendCallbackMsg(onAction);
5835     EXPECT_EQ(rotationRecognizer.touchPoints_.size(), 0);
5836 
5837     /**
5838      * @tc.steps: step2. call SendCallbackMsg function and compare result.
5839      * @tc.steps: case3: onAction is yes, *onAction is yes, touchEvent is empty
5840      * @tc.expected: step2. result equals.
5841      */
__anona2ace5f31002(GestureEvent) 5842     onAction = std::make_unique<GestureEventFunc>([](GestureEvent) {});
5843     rotationRecognizer.SendCallbackMsg(onAction);
5844     EXPECT_EQ(rotationRecognizer.touchPoints_.size(), 0);
5845 
5846     /**
5847      * @tc.steps: step2. call SendCallbackMsg function and compare result.
5848      * @tc.steps: case4: touchEvent is not empty, have no X and Y
5849      * @tc.expected: step2. result equals.
5850      */
5851     TouchEvent touchEvent;
5852     rotationRecognizer.touchPoints_[touchEvent.id] = touchEvent;
5853     rotationRecognizer.SendCallbackMsg(onAction);
5854     EXPECT_EQ(rotationRecognizer.touchPoints_.size(), 1);
5855 
5856     /**
5857      * @tc.steps: step2. call SendCallbackMsg function and compare result.
5858      * @tc.steps: case4: touchEvent is not empty, have no X and Y
5859      * @tc.expected: step2. result equals.
5860      */
5861     touchEvent.tiltX = 0.0f;
5862     touchEvent.tiltY = 0.0f;
5863     rotationRecognizer.touchPoints_[touchEvent.id] = touchEvent;
5864     rotationRecognizer.SendCallbackMsg(onAction);
5865     EXPECT_EQ(rotationRecognizer.touchPoints_.size(), 1);
5866 }
5867 
5868 /**
5869  * @tc.name: RotationRecognizerTest007
5870  * @tc.desc: Test RotationRecognizer function: ReconcileFrom
5871  * @tc.type: FUNC
5872  */
5873 HWTEST_F(GesturesTestNg, RotationRecognizerTest007, TestSize.Level1)
5874 {
5875     /**
5876      * @tc.steps: step1. create ClickRecognizer.
5877      */
5878     RotationRecognizer rotationRecognizer = RotationRecognizer(SINGLE_FINGER_NUMBER, ROTATION_GESTURE_ANGLE);
5879     RefPtr<RotationRecognizer> rotationRecognizerPtr =
5880         AceType::MakeRefPtr<RotationRecognizer>(SINGLE_FINGER_NUMBER, ROTATION_GESTURE_ANGLE);
5881     bool result = false;
5882 
5883     /**
5884      * @tc.steps: step2. call ReconcileFrom function and compare result.
5885      * @tc.steps: case1: recognizerPtr is nullptr
5886      * @tc.expected: step2. result equals.
5887      */
5888     result = rotationRecognizer.ReconcileFrom(nullptr);
5889     EXPECT_EQ(result, false);
5890 
5891     /**
5892      * @tc.steps: step2. call ReconcileFrom function and compare result.
5893      * @tc.steps: case2: recognizerPtr is normal, curr->fingers != fingers
5894      * @tc.expected: step2. result equals.
5895      */
5896     rotationRecognizer.fingers_ = rotationRecognizerPtr->fingers_ + 1;
5897     result = rotationRecognizer.ReconcileFrom(rotationRecognizerPtr);
5898     EXPECT_EQ(result, false);
5899 
5900     /**
5901      * @tc.steps: step2. call ReconcileFrom function and compare result.
5902      * @tc.steps: case2: recognizerPtr is normal, curr->angle != angle
5903      * @tc.expected: step2. result equals.
5904      */
5905     rotationRecognizer.fingers_ = rotationRecognizerPtr->fingers_;
5906     rotationRecognizer.angle_ = rotationRecognizerPtr->angle_ + 1;
5907     result = rotationRecognizer.ReconcileFrom(rotationRecognizerPtr);
5908     EXPECT_EQ(result, false);
5909 
5910     /**
5911      * @tc.steps: step2. call ReconcileFrom function and compare result.
5912      * @tc.steps: case2: recognizerPtr is normal, curr->priorityMask != priorityMask
5913      * @tc.expected: step2. result equals.
5914      */
5915     rotationRecognizer.fingers_ = rotationRecognizerPtr->fingers_;
5916     rotationRecognizer.angle_ = rotationRecognizerPtr->angle_;
5917     rotationRecognizer.priorityMask_ = GestureMask::Begin;
5918     result = rotationRecognizer.ReconcileFrom(rotationRecognizerPtr);
5919     EXPECT_EQ(result, false);
5920 
5921     /**
5922      * @tc.steps: step2. call ReconcileFrom function and compare result.
5923      * @tc.steps: case2: recognizerPtr is normal
5924      * @tc.expected: step2. result equals.
5925      */
5926     rotationRecognizer.fingers_ = rotationRecognizerPtr->fingers_;
5927     rotationRecognizer.angle_ = rotationRecognizerPtr->angle_;
5928     rotationRecognizer.priorityMask_ = rotationRecognizerPtr->priorityMask_;
5929     result = rotationRecognizer.ReconcileFrom(rotationRecognizerPtr);
5930     EXPECT_EQ(result, true);
5931 }
5932 
5933 /**
5934  * @tc.name: SequencedRecognizerTest001
5935  * @tc.desc: Test SequencedRecognizer function: OnAccepted
5936  * @tc.type: FUNC
5937  */
5938 HWTEST_F(GesturesTestNg, SequencedRecognizerTest001, TestSize.Level1)
5939 {
5940     /**
5941      * @tc.steps: step1. create SequencedRecognizer.
5942      */
5943     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
5944     SequencedRecognizer sequencedRecognizer = SequencedRecognizer(recognizers);
5945 
5946     /**
5947      * @tc.steps: step2. call OnAccepted function and compare result.
5948      * @tc.steps: case1: recognizers_ is empty
5949      * @tc.expected: step2. result equals.
5950      */
5951     sequencedRecognizer.OnAccepted();
5952     EXPECT_EQ(sequencedRecognizer.refereeState_, RefereeState::SUCCEED);
5953 
5954     /**
5955      * @tc.steps: step2. call OnAccepted function and compare result.
5956      * @tc.steps: case2: recognizers_ is not empty, have nullptr
5957      * @tc.expected: step2. result equals.
5958      */
5959     sequencedRecognizer.recognizers_.push_back(nullptr);
5960     sequencedRecognizer.OnAccepted();
5961     EXPECT_EQ(sequencedRecognizer.refereeState_, RefereeState::SUCCEED);
5962 
5963     /**
5964      * @tc.steps: step2. call OnAccepted function and compare result.
5965      * @tc.steps: case3: recognizers_ is not empty, have click ptr
5966      * @tc.expected: step2. result equals.
5967      */
5968     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
5969     sequencedRecognizer.recognizers_.clear();
5970     sequencedRecognizer.recognizers_.push_back(clickRecognizerPtr);
5971     sequencedRecognizer.OnAccepted();
5972     EXPECT_EQ(sequencedRecognizer.refereeState_, RefereeState::SUCCEED);
5973     EXPECT_EQ(clickRecognizerPtr->refereeState_, RefereeState::SUCCEED);
5974 }
5975 
5976 /**
5977  * @tc.name: SequencedRecognizerTest002
5978  * @tc.desc: Test SequencedRecognizer function: OnRejected
5979  * @tc.type: FUNC
5980  */
5981 HWTEST_F(GesturesTestNg, SequencedRecognizerTest002, TestSize.Level1)
5982 {
5983     /**
5984      * @tc.steps: step1. create SequencedRecognizer.
5985      */
5986     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
5987     SequencedRecognizer sequencedRecognizer = SequencedRecognizer(recognizers);
5988 
5989     /**
5990      * @tc.steps: step2. call OnRejected function and compare result.
5991      * @tc.steps: case1: recognizers_ is empty
5992      * @tc.expected: step2. result equals.
5993      */
5994     sequencedRecognizer.OnRejected();
5995     EXPECT_EQ(sequencedRecognizer.refereeState_, RefereeState::FAIL);
5996 
5997     /**
5998      * @tc.steps: step2. call OnRejected function and compare result.
5999      * @tc.steps: case2: recognizers_ is not empty, have nullptr
6000      * @tc.expected: step2. result equals.
6001      */
6002     sequencedRecognizer.currentIndex_ = -1;
6003     sequencedRecognizer.recognizers_.push_back(nullptr);
6004     sequencedRecognizer.OnRejected();
6005     EXPECT_EQ(sequencedRecognizer.refereeState_, RefereeState::FAIL);
6006 
6007     /**
6008      * @tc.steps: step2. call OnAccepted function and compare result.
6009      * @tc.steps: case3: recognizers_ is not empty, have click ptr
6010      * @tc.expected: step2. result equals.
6011      */
6012     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
6013     sequencedRecognizer.currentIndex_ = 0;
6014     sequencedRecognizer.recognizers_.clear();
6015     sequencedRecognizer.recognizers_.push_back(clickRecognizerPtr);
6016     sequencedRecognizer.OnRejected();
6017     EXPECT_EQ(sequencedRecognizer.refereeState_, RefereeState::FAIL);
6018     EXPECT_EQ(clickRecognizerPtr->refereeState_, RefereeState::FAIL);
6019 }
6020 
6021 /**
6022  * @tc.name: SequencedRecognizerTest003
6023  * @tc.desc: Test SequencedRecognizer function: OnPending
6024  * @tc.type: FUNC
6025  */
6026 HWTEST_F(GesturesTestNg, SequencedRecognizerTest003, TestSize.Level1)
6027 {
6028     /**
6029      * @tc.steps: step1. create SequencedRecognizer.
6030      */
6031     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
6032     SequencedRecognizer sequencedRecognizer = SequencedRecognizer(recognizers);
6033 
6034     /**
6035      * @tc.steps: step2. call OnPending function and compare result.
6036      * @tc.steps: case1: recognizers_ is empty
6037      * @tc.expected: step2. result equals.
6038      */
6039     sequencedRecognizer.OnPending();
6040     EXPECT_EQ(sequencedRecognizer.refereeState_, RefereeState::PENDING);
6041 
6042     /**
6043      * @tc.steps: step2. call OnPending function and compare result.
6044      * @tc.steps: case2: recognizers_ is not empty, have nullptr
6045      * @tc.expected: step2. result equals.
6046      */
6047     sequencedRecognizer.recognizers_.push_back(nullptr);
6048     sequencedRecognizer.OnPending();
6049     EXPECT_EQ(sequencedRecognizer.refereeState_, RefereeState::PENDING);
6050 
6051     /**
6052      * @tc.steps: step2. call OnPending function and compare result.
6053      * @tc.steps: case3: recognizers_ is not empty, have click ptr, ACCEPT
6054      * @tc.expected: step2. result equals.
6055      */
6056     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
6057     clickRecognizerPtr->disposal_ = GestureDisposal::ACCEPT;
6058     sequencedRecognizer.recognizers_.clear();
6059     sequencedRecognizer.recognizers_.push_back(clickRecognizerPtr);
6060     sequencedRecognizer.OnPending();
6061     EXPECT_EQ(sequencedRecognizer.refereeState_, RefereeState::PENDING);
6062     EXPECT_EQ(clickRecognizerPtr->refereeState_, RefereeState::SUCCEED);
6063 
6064     /**
6065      * @tc.steps: step2. call OnPending function and compare result.
6066      * @tc.steps: case4: recognizers_ is not empty, have click ptr, PENDING
6067      * @tc.expected: step2. result equals.
6068      */
6069     clickRecognizerPtr->disposal_ = GestureDisposal::PENDING;
6070     sequencedRecognizer.recognizers_.clear();
6071     sequencedRecognizer.recognizers_.push_back(clickRecognizerPtr);
6072     sequencedRecognizer.OnPending();
6073     EXPECT_EQ(sequencedRecognizer.refereeState_, RefereeState::PENDING);
6074     EXPECT_EQ(clickRecognizerPtr->refereeState_, RefereeState::PENDING);
6075 }
6076 
6077 /**
6078  * @tc.name: SequencedRecognizerTest004
6079  * @tc.desc: Test SequencedRecognizer function: OnBlocked
6080  * @tc.type: FUNC
6081  */
6082 HWTEST_F(GesturesTestNg, SequencedRecognizerTest004, TestSize.Level1)
6083 {
6084     /**
6085      * @tc.steps: step1. create SequencedRecognizer.
6086      */
6087     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
6088     SequencedRecognizer sequencedRecognizer = SequencedRecognizer(recognizers);
6089 
6090     /**
6091      * @tc.steps: step2. call OnBlocked function and compare result.
6092      * @tc.steps: case1: recognizers_ is empty
6093      * @tc.expected: step2. result equals.
6094      */
6095     sequencedRecognizer.OnBlocked();
6096     EXPECT_EQ(sequencedRecognizer.refereeState_, RefereeState::READY);
6097 
6098     /**
6099      * @tc.steps: step2. call OnBlocked function and compare result.
6100      * @tc.steps: case2: recognizers_ is not empty, have nullptr
6101      * @tc.expected: step2. result equals.
6102      */
6103     sequencedRecognizer.recognizers_.push_back(nullptr);
6104     sequencedRecognizer.OnBlocked();
6105     EXPECT_EQ(sequencedRecognizer.refereeState_, RefereeState::READY);
6106 
6107     /**
6108      * @tc.steps: step2. call OnBlocked function and compare result.
6109      * @tc.steps: case3: recognizers_ is not empty, disposal is ACCEPT
6110      * @tc.expected: step2. result equals.
6111      */
6112     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
6113     sequencedRecognizer.disposal_ = GestureDisposal::ACCEPT;
6114     sequencedRecognizer.recognizers_.clear();
6115     sequencedRecognizer.recognizers_.push_back(clickRecognizerPtr);
6116     sequencedRecognizer.OnBlocked();
6117     EXPECT_EQ(sequencedRecognizer.refereeState_, RefereeState::SUCCEED_BLOCKED);
6118 
6119     /**
6120      * @tc.steps: step2. call OnBlocked function and compare result.
6121      * @tc.steps: case4: recognizers_ is not empty, disposal is PENDING
6122      * @tc.expected: step2. result equals.
6123      */
6124     sequencedRecognizer.disposal_ = GestureDisposal::PENDING;
6125     sequencedRecognizer.OnBlocked();
6126     EXPECT_EQ(sequencedRecognizer.refereeState_, RefereeState::PENDING_BLOCKED);
6127 
6128     /**
6129      * @tc.steps: step2. call OnBlocked function and compare result.
6130      * @tc.steps: case5: recognizers_ is not empty nullptr, disposal is ACCEPT
6131      * @tc.expected: step2. result equals.
6132      */
6133     sequencedRecognizer.disposal_ = GestureDisposal::ACCEPT;
6134     sequencedRecognizer.recognizers_.clear();
6135     sequencedRecognizer.recognizers_.push_back(nullptr);
6136     sequencedRecognizer.OnBlocked();
6137     EXPECT_EQ(sequencedRecognizer.refereeState_, RefereeState::SUCCEED_BLOCKED);
6138 
6139     /**
6140      * @tc.steps: step2. call OnBlocked function and compare result.
6141      * @tc.steps: case6: recognizers_ is not empty nullptr, disposal is PENDING
6142      * @tc.expected: step2. result equals.
6143      */
6144     sequencedRecognizer.disposal_ = GestureDisposal::PENDING;
6145     sequencedRecognizer.OnBlocked();
6146     EXPECT_EQ(sequencedRecognizer.refereeState_, RefereeState::PENDING_BLOCKED);
6147 }
6148 
6149 /**
6150  * @tc.name: SequencedRecognizerTest005
6151  * @tc.desc: Test SequencedRecognizer function: HandleEvent
6152  * @tc.type: FUNC
6153  */
6154 HWTEST_F(GesturesTestNg, SequencedRecognizerTest005, TestSize.Level1)
6155 {
6156     /**
6157      * @tc.steps: step1. create SequencedRecognizer.
6158      */
6159     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
6160     SequencedRecognizer sequencedRecognizer = SequencedRecognizer(recognizers);
6161     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
6162     sequencedRecognizer.recognizers_.clear();
6163     sequencedRecognizer.recognizers_.push_back(clickRecognizerPtr);
6164     sequencedRecognizer.recognizers_.push_back(clickRecognizerPtr);
6165     bool result = false;
6166     TouchEvent touchEvent;
6167 
6168     /**
6169      * @tc.steps: step2. call HandleEvent function and compare result.
6170      * @tc.steps: case1: currentIndex = 0
6171      * @tc.expected: step2. result equals.
6172      */
6173     result = sequencedRecognizer.HandleEvent(touchEvent);
6174     EXPECT_EQ(result, true);
6175 
6176     /**
6177     //  * @tc.steps: step2. call HandleEvent function and compare result.
6178     //  * @tc.steps: case2: currentIndex = 1, prevState = SUCCESS
6179     //  * @tc.expected: step2. result equals.
6180     //  */
6181     sequencedRecognizer.currentIndex_ = 1;
6182     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED;
6183     result = sequencedRecognizer.HandleEvent(touchEvent);
6184     EXPECT_EQ(result, true);
6185 
6186     /**
6187      * @tc.steps: step2. call HandleEvent function and compare result.
6188      * @tc.steps: case3: currentIndex = 1, prevState = READY
6189      * @tc.expected: step2. result equals.
6190      */
6191     sequencedRecognizer.currentIndex_ = 1;
6192     clickRecognizerPtr->refereeState_ = RefereeState::READY;
6193     result = sequencedRecognizer.HandleEvent(touchEvent);
6194     EXPECT_EQ(result, true);
6195 }
6196 
6197 /**
6198  * @tc.name: SequencedRecognizerTest006
6199  * @tc.desc: Test SequencedRecognizer function: HandleEvent
6200  * @tc.type: FUNC
6201  */
6202 HWTEST_F(GesturesTestNg, SequencedRecognizerTest006, TestSize.Level1)
6203 {
6204     /**
6205      * @tc.steps: step1. create SequencedRecognizer.
6206      */
6207     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
6208     SequencedRecognizer sequencedRecognizer = SequencedRecognizer(recognizers);
6209     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
6210     sequencedRecognizer.recognizers_.clear();
6211     sequencedRecognizer.recognizers_.push_back(clickRecognizerPtr);
6212     bool result = false;
6213     TouchEvent touchEvent;
6214 
6215     /**
6216      * @tc.steps: step2. call HandleEvent function and compare result.
6217      * @tc.steps: case4: point.type = DOWN, size = 1
6218      * @tc.expected: step2. result equals.
6219      */
6220     touchEvent.type = TouchType::DOWN;
6221     result = sequencedRecognizer.HandleEvent(touchEvent);
6222     EXPECT_EQ(result, true);
6223 
6224     /**
6225      * @tc.steps: step2. call HandleEvent function and compare result.
6226      * @tc.steps: case5: point.type = MOVE
6227      * @tc.expected: step2. result equals.
6228      */
6229     touchEvent.type = TouchType::MOVE;
6230     result = sequencedRecognizer.HandleEvent(touchEvent);
6231     EXPECT_EQ(result, true);
6232 
6233     /**
6234      * @tc.steps: step2. call HandleEvent function and compare result.
6235      * @tc.steps: case6: point.type = UP
6236      * @tc.expected: step2. result equals.
6237      */
6238     touchEvent.type = TouchType::UP;
6239     result = sequencedRecognizer.HandleEvent(touchEvent);
6240     EXPECT_EQ(result, true);
6241 
6242     /**
6243      * @tc.steps: step2. call HandleEvent function and compare result.
6244      * @tc.steps: case7: point.type = CANCEL
6245      * @tc.expected: step2. result equals.
6246      */
6247     touchEvent.type = TouchType::CANCEL;
6248     result = sequencedRecognizer.HandleEvent(touchEvent);
6249     EXPECT_EQ(result, true);
6250 }
6251 
6252 /**
6253  * @tc.name: SequencedRecognizerTest007
6254  * @tc.desc: Test SequencedRecognizer function: HandleEvent
6255  * @tc.type: FUNC
6256  */
6257 HWTEST_F(GesturesTestNg, SequencedRecognizerTest007, TestSize.Level1)
6258 {
6259     /**
6260      * @tc.steps: step1. create SequencedRecognizer.
6261      */
6262     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
6263     SequencedRecognizer sequencedRecognizer = SequencedRecognizer(recognizers);
6264     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
6265     sequencedRecognizer.recognizers_.clear();
6266     sequencedRecognizer.recognizers_.push_back(clickRecognizerPtr);
6267     bool result = false;
6268     TouchEvent touchEvent;
6269 
6270     /**
6271      * @tc.steps: step2. call HandleEvent function and compare result.
6272      * @tc.steps: case8: point.type = UNKOWN
6273      * @tc.expected: step2. result equals.
6274      */
6275     touchEvent.type = TouchType::UNKNOWN;
6276     result = sequencedRecognizer.HandleEvent(touchEvent);
6277     EXPECT_EQ(result, true);
6278 
6279     /**
6280      * @tc.steps: step2. call HandleEvent function and compare result.
6281      * @tc.steps: case9: point.type = UP and refereeState = PENDING
6282      * @tc.expected: step2. result equals.
6283      */
6284     touchEvent.type = TouchType::UP;
6285     sequencedRecognizer.refereeState_ = RefereeState::PENDING;
6286     result = sequencedRecognizer.HandleEvent(touchEvent);
6287     EXPECT_EQ(result, true);
6288 
6289     /**
6290      * @tc.steps: step2. call HandleEvent function and compare result.
6291      * @tc.steps: case10: point.type != UP and refereeState = PENDING
6292      * @tc.expected: step2. result equals.
6293      */
6294     touchEvent.type = TouchType::DOWN;
6295     sequencedRecognizer.refereeState_ = RefereeState::PENDING;
6296     result = sequencedRecognizer.HandleEvent(touchEvent);
6297     EXPECT_EQ(result, true);
6298 
6299     /**
6300      * @tc.steps: step2. call HandleEvent function and compare result.
6301      * @tc.steps: case11: point.type = DOWN, size > 1
6302      * @tc.expected: step2. result equals.
6303      */
6304     touchEvent.type = TouchType::DOWN;
6305     sequencedRecognizer.touchPoints_[0] = touchEvent;
6306     sequencedRecognizer.touchPoints_[1] = touchEvent;
6307     result = sequencedRecognizer.HandleEvent(touchEvent);
6308     EXPECT_EQ(result, true);
6309 }
6310 
6311 /**
6312  * @tc.name: SequencedRecognizerTest008
6313  * @tc.desc: Test SequencedRecognizer function: BatchAdjudicate, and GestureDisposal
6314  * @tc.type: FUNC
6315  */
6316 HWTEST_F(GesturesTestNg, SequencedRecognizerTest008, TestSize.Level1)
6317 {
6318     /**
6319      * @tc.steps: step1. create SequencedRecognizer.
6320      */
6321     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
6322     SequencedRecognizer sequencedRecognizer = SequencedRecognizer(recognizers);
6323     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
6324 
6325     /**
6326      * @tc.steps: step2. call GestureDisposal function and compare result.
6327      * @tc.steps: case1: disposal: ACCEPT, refereeState: SUCCEED
6328      * @tc.expected: step2. result equals.
6329      */
6330     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED;
6331     sequencedRecognizer.BatchAdjudicate(clickRecognizerPtr, GestureDisposal::ACCEPT);
6332     EXPECT_EQ(clickRecognizerPtr->refereeState_, RefereeState::SUCCEED);
6333 
6334     /**
6335      * @tc.steps: step2. call GestureDisposal function and compare result.
6336      * @tc.steps: case2: disposal: ACCEPT, refereeState: PENDING, currentIndex = 0
6337      * @tc.expected: step2. result equals.
6338      */
6339     sequencedRecognizer.currentIndex_ = 0;
6340     sequencedRecognizer.refereeState_ = RefereeState::PENDING;
6341     sequencedRecognizer.BatchAdjudicate(clickRecognizerPtr, GestureDisposal::ACCEPT);
6342     EXPECT_EQ(clickRecognizerPtr->refereeState_, RefereeState::SUCCEED);
6343 
6344     /**
6345      * @tc.steps: step2. call GestureDisposal function and compare result.
6346      * @tc.steps: case3: disposal: REJECT, refereeState: FAIL
6347      * @tc.expected: step2. result equals.
6348      */
6349     clickRecognizerPtr->refereeState_ = RefereeState::FAIL;
6350     sequencedRecognizer.BatchAdjudicate(clickRecognizerPtr, GestureDisposal::REJECT);
6351     EXPECT_EQ(clickRecognizerPtr->refereeState_, RefereeState::FAIL);
6352 
6353     /**
6354      * @tc.steps: step2. call GestureDisposal function and compare result.
6355      * @tc.steps: case4: disposal: REJECT, refereeState: SUCCESS, refereeState_ = FAIL
6356      * @tc.expected: step2. result equals.
6357      */
6358     sequencedRecognizer.refereeState_ = RefereeState::FAIL;
6359     clickRecognizerPtr->refereeState_ = RefereeState::FAIL;
6360     sequencedRecognizer.BatchAdjudicate(clickRecognizerPtr, GestureDisposal::REJECT);
6361     EXPECT_EQ(clickRecognizerPtr->refereeState_, RefereeState::FAIL);
6362 
6363     /**
6364      * @tc.steps: step2. call GestureDisposal function and compare result.
6365      * @tc.steps: case5: disposal: PENDING, refereeState: PENDING
6366      * @tc.expected: step2. result equals.
6367      */
6368     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
6369     sequencedRecognizer.BatchAdjudicate(clickRecognizerPtr, GestureDisposal::PENDING);
6370     EXPECT_EQ(clickRecognizerPtr->refereeState_, RefereeState::PENDING);
6371 
6372     /**
6373      * @tc.steps: step2. call GestureDisposal function and compare result.
6374      * @tc.steps: case5: disposal: PENDING, refereeState: SUCCESS, refereeState_: PENDING
6375      * @tc.expected: step2. result equals.
6376      */
6377     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED;
6378     sequencedRecognizer.refereeState_ = RefereeState::PENDING;
6379     sequencedRecognizer.BatchAdjudicate(clickRecognizerPtr, GestureDisposal::PENDING);
6380     EXPECT_EQ(clickRecognizerPtr->refereeState_, RefereeState::PENDING);
6381 }
6382 
6383 /**
6384  * @tc.name: SequencedRecognizerHandleOverdueDeadlineTest001
6385  * @tc.desc: Test SequencedRecognizer function: HandleOverdueDeadline
6386  * @tc.type: FUNC
6387  */
6388 HWTEST_F(GesturesTestNg, SequencedRecognizerHandleOverdueDeadlineTest001, TestSize.Level1)
6389 {
6390     /**
6391      * @tc.steps: step1. create SequencedRecognizer.
6392      */
6393     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
6394     SequencedRecognizer sequencedRecognizer = SequencedRecognizer(recognizers);
6395     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
6396 
6397     /**
6398      * @tc.steps: step2. call UpdateCurrentIndex function and compare result.
6399      * @tc.steps: case1: currentIndex != size - 1
6400      * @tc.expected: step2. result equals.
6401      */
6402     sequencedRecognizer.currentIndex_ = 0;
6403     sequencedRecognizer.refereeState_ = RefereeState::SUCCEED;
6404     sequencedRecognizer.HandleOverdueDeadline();
6405     EXPECT_EQ(sequencedRecognizer.currentIndex_, 0);
6406 }
6407 
6408 /**
6409  * @tc.name: SequencedRecognizerTest009
6410  * @tc.desc: Test SequencedRecognizer function: UpdateCurrentIndex
6411  * @tc.type: FUNC
6412  */
6413 HWTEST_F(GesturesTestNg, SequencedRecognizerTest009, TestSize.Level1)
6414 {
6415     /**
6416      * @tc.steps: step1. create SequencedRecognizer.
6417      */
6418     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
6419     SequencedRecognizer sequencedRecognizer = SequencedRecognizer(recognizers);
6420     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
6421 
6422     /**
6423      * @tc.steps: step2. call UpdateCurrentIndex function and compare result.
6424      * @tc.steps: case1: currentIndex == size - 1
6425      * @tc.expected: step2. result equals.
6426      */
6427     sequencedRecognizer.currentIndex_ = -1;
6428     sequencedRecognizer.UpdateCurrentIndex();
6429     EXPECT_EQ(sequencedRecognizer.currentIndex_, -1);
6430 
6431     /**
6432      * @tc.steps: step2. call UpdateCurrentIndex function and compare result.
6433      * @tc.steps: case1: currentIndex != size - 1
6434      * @tc.expected: step2. result equals.
6435      */
6436     sequencedRecognizer.currentIndex_ = 0;
6437     sequencedRecognizer.UpdateCurrentIndex();
6438     EXPECT_EQ(sequencedRecognizer.currentIndex_, 1);
6439 }
6440 
6441 /**
6442  * @tc.name: SequencedRecognizerTest010
6443  * @tc.desc: Test SequencedRecognizer function: ReconcileFrom
6444  * @tc.type: FUNC
6445  */
6446 HWTEST_F(GesturesTestNg, SequencedRecognizerTest010, TestSize.Level1)
6447 {
6448     /**
6449      * @tc.steps: step1. create SwipeRecognizer.
6450      */
6451     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
6452     SequencedRecognizer sequencedRecognizer = SequencedRecognizer(recognizers);
6453     RefPtr<SequencedRecognizer> sequencedRecognizerPtr = AceType::MakeRefPtr<SequencedRecognizer>(recognizers);
6454     bool result = false;
6455 
6456     /**
6457      * @tc.steps: step2. call ReconcileFrom function
6458      * @tc.steps: case1: recognizer is nullptr
6459      * @tc.expected: step2. result equals.
6460      */
6461     result = sequencedRecognizer.ReconcileFrom(nullptr);
6462     EXPECT_EQ(result, false);
6463 
6464     /**
6465      * @tc.steps: step2. call ReconcileFrom function
6466      * @tc.steps: case2: size not same, priorityMask not same
6467      * @tc.expected: step2. result equals.
6468      */
6469     sequencedRecognizer.recognizers_.clear();
6470     sequencedRecognizer.recognizers_.push_back(nullptr);
6471     sequencedRecognizer.priorityMask_ = GestureMask::Begin;
6472     result = sequencedRecognizer.ReconcileFrom(sequencedRecognizerPtr);
6473     EXPECT_EQ(result, false);
6474 
6475     /**
6476      * @tc.steps: step2. call ReconcileFrom function
6477      * @tc.steps: case3: size not same, priorityMask same
6478      * @tc.expected: step2. result equals.
6479      */
6480     sequencedRecognizer.recognizers_.clear();
6481     sequencedRecognizer.recognizers_.push_back(nullptr);
6482     sequencedRecognizer.priorityMask_ = GestureMask::Normal;
6483     result = sequencedRecognizer.ReconcileFrom(sequencedRecognizerPtr);
6484     EXPECT_EQ(result, false);
6485 
6486     /**
6487      * @tc.steps: step2. call ReconcileFrom function
6488      * @tc.steps: case4: size same, priorityMask not same
6489      * @tc.expected: step2. result equals.
6490      */
6491     sequencedRecognizer.recognizers_.clear();
6492     sequencedRecognizer.priorityMask_ = GestureMask::Begin;
6493     result = sequencedRecognizer.ReconcileFrom(sequencedRecognizerPtr);
6494     EXPECT_EQ(result, false);
6495 
6496     /**
6497      * @tc.steps: step2. call ReconcileFrom function
6498      * @tc.steps: case4: size same, priorityMask same, child is nullptr
6499      * @tc.expected: step2. result equals.
6500      */
6501     sequencedRecognizer.recognizers_.clear();
6502     sequencedRecognizer.recognizers_.push_back(nullptr);
6503     sequencedRecognizerPtr->recognizers_.clear();
6504     sequencedRecognizerPtr->recognizers_.push_back(nullptr);
6505     sequencedRecognizer.priorityMask_ = GestureMask::Normal;
6506     result = sequencedRecognizer.ReconcileFrom(sequencedRecognizerPtr);
6507     EXPECT_EQ(result, false);
6508 
6509     /**
6510      * @tc.steps: step2. call ReconcileFrom function
6511      * @tc.steps: case4: size same, priorityMask same, child is ptr
6512      * @tc.expected: step2. result equals.
6513      */
6514     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
6515     sequencedRecognizer.recognizers_.clear();
6516     sequencedRecognizer.recognizers_.push_back(clickRecognizerPtr);
6517     sequencedRecognizerPtr->recognizers_.clear();
6518     sequencedRecognizerPtr->recognizers_.push_back(clickRecognizerPtr);
6519     sequencedRecognizer.priorityMask_ = GestureMask::Normal;
6520     result = sequencedRecognizer.ReconcileFrom(sequencedRecognizerPtr);
6521     EXPECT_EQ(result, true);
6522 
6523     /**
6524      * @tc.steps: step2. call ReconcileFrom function
6525      * @tc.steps: case4: size same, priorityMask same, child is ptr and nullptr
6526      * @tc.expected: step2. result equals.
6527      */
6528     sequencedRecognizer.recognizers_.clear();
6529     sequencedRecognizer.recognizers_.push_back(clickRecognizerPtr);
6530     sequencedRecognizerPtr->recognizers_.clear();
6531     sequencedRecognizerPtr->recognizers_.push_back(nullptr);
6532     sequencedRecognizer.priorityMask_ = GestureMask::Normal;
6533     result = sequencedRecognizer.ReconcileFrom(sequencedRecognizerPtr);
6534     EXPECT_EQ(result, false);
6535 }
6536 
6537 /**
6538  * @tc.name: SwipeRecognizerTest001
6539  * @tc.desc: Test SwipeRecognizer function: OnAccepted OnRejected
6540  * @tc.type: FUNC
6541  */
6542 HWTEST_F(GesturesTestNg, SwipeRecognizerTest001, TestSize.Level1)
6543 {
6544     /**
6545      * @tc.steps: step1. create SwipeRecognizer.
6546      */
6547     SwipeDirection swipeDirection;
6548     SwipeRecognizer swipeRecognizer = SwipeRecognizer(SINGLE_FINGER_NUMBER, swipeDirection, SWIPE_SPEED);
6549 
6550     /**
6551      * @tc.steps: step2. call OnAccepted function and compare result.
6552      * @tc.expected: step2. result equals.
6553      */
6554     swipeRecognizer.OnAccepted();
6555     EXPECT_EQ(swipeRecognizer.refereeState_, RefereeState::SUCCEED);
6556 
6557     /**
6558      * @tc.steps: step3. call OnRejected function and compare result.
6559      * @tc.expected: step3. result equals.
6560      */
6561     swipeRecognizer.OnRejected();
6562     EXPECT_EQ(swipeRecognizer.refereeState_, RefereeState::FAIL);
6563 }
6564 
6565 /**
6566  * @tc.name: SwipeRecognizerTest002
6567  * @tc.desc: Test SwipeRecognizer function: HandleTouchDown
6568  * @tc.type: FUNC
6569  */
6570 HWTEST_F(GesturesTestNg, SwipeRecognizerTest002, TestSize.Level1)
6571 {
6572     /**
6573      * @tc.steps: step1. create SwipeRecognizer.
6574      */
6575     SwipeDirection swipeDirection;
6576     SwipeRecognizer swipeRecognizer = SwipeRecognizer(SINGLE_FINGER_NUMBER, swipeDirection, SWIPE_SPEED);
6577 
6578     /**
6579      * @tc.steps: step2. call HandleTouchDown function
6580      * @tc.expected: step2. result equals.
6581      */
6582     TouchEvent touchEvent;
6583     swipeRecognizer.fingers_ = 1;
6584     swipeRecognizer.HandleTouchDownEvent(touchEvent);
6585     EXPECT_EQ(swipeRecognizer.lastTouchEvent_.id, touchEvent.id);
6586     EXPECT_EQ(swipeRecognizer.refereeState_, RefereeState::DETECTING);
6587 
6588     AxisEvent axisEvent;
6589     swipeRecognizer.HandleTouchDownEvent(axisEvent);
6590     EXPECT_EQ(swipeRecognizer.axisVerticalTotal_, 0.0);
6591     EXPECT_EQ(swipeRecognizer.axisHorizontalTotal_, 0.0);
6592     EXPECT_EQ(swipeRecognizer.refereeState_, RefereeState::DETECTING);
6593 }
6594 
6595 /**
6596  * @tc.name: SwipeRecognizerTest003
6597  * @tc.desc: Test SwipeRecognizer function: HandleTouchUp
6598  * @tc.type: FUNC
6599  */
6600 HWTEST_F(GesturesTestNg, SwipeRecognizerTest003, TestSize.Level1)
6601 {
6602     /**
6603      * @tc.steps: step1. create SwipeRecognizer.
6604      */
6605     SwipeDirection swipeDirection;
6606     SwipeRecognizer swipeRecognizer = SwipeRecognizer(SINGLE_FINGER_NUMBER, swipeDirection, SWIPE_SPEED);
6607 
6608     /**
6609      * @tc.steps: step2. call HandleTouchUp function
6610      * @tc.expected: step2. result equals.
6611      */
6612     TouchEvent touchEvent;
6613     swipeRecognizer.refereeState_ = RefereeState::FAIL;
6614     swipeRecognizer.downEvents_[touchEvent.id] = touchEvent;
6615     swipeRecognizer.HandleTouchUpEvent(touchEvent);
6616     EXPECT_EQ(swipeRecognizer.globalPoint_.GetX(), touchEvent.x);
6617     EXPECT_EQ(swipeRecognizer.globalPoint_.GetY(), touchEvent.y);
6618     EXPECT_EQ(swipeRecognizer.lastTouchEvent_.id, touchEvent.id);
6619 
6620     AxisEvent axisEvent;
6621     swipeRecognizer.refereeState_ = RefereeState::FAIL;
6622     swipeRecognizer.HandleTouchUpEvent(touchEvent);
6623     EXPECT_EQ(swipeRecognizer.globalPoint_.GetX(), axisEvent.x);
6624     EXPECT_EQ(swipeRecognizer.globalPoint_.GetY(), axisEvent.y);
6625 }
6626 
6627 /**
6628  * @tc.name: SwipeRecognizerHandleTouchUpEventTest001
6629  * @tc.desc: Test SwipeRecognizer function: HandleTouchUpEvent
6630  * @tc.type: FUNC
6631  */
6632 HWTEST_F(GesturesTestNg, SwipeRecognizerHandleTouchUpEventTest001, TestSize.Level1)
6633 {
6634     /**
6635      * @tc.steps: step1. create SwipeRecognizer.
6636      */
6637     SwipeDirection swipeDirection;
6638     SwipeRecognizer swipeRecognizer = SwipeRecognizer(SINGLE_FINGER_NUMBER, swipeDirection, SWIPE_SPEED);
6639 
6640     /**
6641      * @tc.steps: step2. call HandleTouchUpEvent function
6642      * @tc.expected: step2. result equals.
6643      */
6644     TouchEvent touchEvent;
6645     swipeRecognizer.refereeState_ = RefereeState::FAIL;
6646     swipeRecognizer.downEvents_[touchEvent.id] = touchEvent;
6647     swipeRecognizer.currentFingers_ = swipeRecognizer.fingers_;
6648     swipeRecognizer.HandleTouchUpEvent(touchEvent);
6649     EXPECT_EQ(swipeRecognizer.globalPoint_.GetX(), touchEvent.x);
6650     EXPECT_EQ(swipeRecognizer.globalPoint_.GetY(), touchEvent.y);
6651     EXPECT_EQ(swipeRecognizer.lastTouchEvent_.id, touchEvent.id);
6652 
6653     swipeRecognizer.refereeState_ = RefereeState::FAIL;
6654     swipeRecognizer.downEvents_[touchEvent.id] = touchEvent;
6655     swipeRecognizer.currentFingers_ = swipeRecognizer.fingers_;
6656     swipeRecognizer.HandleTouchUpEvent(touchEvent);
6657     EXPECT_EQ(swipeRecognizer.globalPoint_.GetX(), touchEvent.x);
6658     EXPECT_EQ(swipeRecognizer.globalPoint_.GetY(), touchEvent.y);
6659     EXPECT_EQ(swipeRecognizer.lastTouchEvent_.id, touchEvent.id);
6660 }
6661 
6662 /**
6663  * @tc.name: SwipeRecognizerHandleTouchUpEventTest002
6664  * @tc.desc: Test SwipeRecognizer function: HandleTouchUp
6665  * @tc.type: FUNC
6666  */
6667 HWTEST_F(GesturesTestNg, SwipeRecognizerHandleTouchUpEventTest002, TestSize.Level1)
6668 {
6669     /**
6670      * @tc.steps: step1. create SwipeRecognizer.
6671      */
6672     SwipeDirection swipeDirection;
6673     SwipeRecognizer swipeRecognizer = SwipeRecognizer(SINGLE_FINGER_NUMBER, swipeDirection, SWIPE_SPEED);
6674 
6675     /**
6676      * @tc.steps: step2. call HandleTouchUp function
6677      * @tc.expected: step2. result equals.
6678      */
6679     AxisEvent axisEvent;
6680     swipeRecognizer.refereeState_ = RefereeState::FAIL;
6681     swipeRecognizer.HandleTouchUpEvent(axisEvent);
6682     EXPECT_EQ(swipeRecognizer.globalPoint_.GetX(), axisEvent.x);
6683     EXPECT_EQ(swipeRecognizer.globalPoint_.GetY(), axisEvent.y);
6684 
6685     swipeRecognizer.refereeState_ = RefereeState::FAIL;
6686     swipeRecognizer.HandleTouchUpEvent(axisEvent);
6687     EXPECT_EQ(swipeRecognizer.globalPoint_.GetX(), axisEvent.x);
6688     EXPECT_EQ(swipeRecognizer.globalPoint_.GetY(), axisEvent.y);
6689 }
6690 
6691 /**
6692  * @tc.name: SwipeRecognizerHandleTouchCancelEventTest001
6693  * @tc.desc: Test SwipeRecognizer function: HandleTouchCancelEvent
6694  * @tc.type: FUNC
6695  */
6696 HWTEST_F(GesturesTestNg, SwipeRecognizerHandleTouchCancelEventTest001, TestSize.Level1)
6697 {
6698     /**
6699      * @tc.steps: step1. create SwipeRecognizer.
6700      */
6701     SwipeDirection swipeDirection;
6702     SwipeRecognizer swipeRecognizer = SwipeRecognizer(SINGLE_FINGER_NUMBER, swipeDirection, SWIPE_SPEED);
6703 
6704     /**
6705      * @tc.steps: step2. call HandleTouchUp function
6706      * @tc.expected: step2. result equals.
6707      */
6708     AxisEvent axisEvent;
6709     swipeRecognizer.refereeState_ = RefereeState::FAIL;
6710     swipeRecognizer.HandleTouchCancelEvent(axisEvent);
6711     EXPECT_EQ(swipeRecognizer.globalPoint_.GetX(), axisEvent.x);
6712     EXPECT_EQ(swipeRecognizer.globalPoint_.GetY(), axisEvent.y);
6713 }
6714 
6715 /**
6716  * @tc.name: SwipeRecognizerSendCallbackMsgTest001
6717  * @tc.desc: Test SwipeRecognizer function: SendCallbackMsg
6718  * @tc.type: FUNC
6719  */
6720 HWTEST_F(GesturesTestNg, SwipeRecognizerSendCallbackMsgTest001, TestSize.Level1)
6721 {
6722     /**
6723      * @tc.steps: step1. create SwipeRecognizer.
6724      */
6725     SwipeDirection swipeDirection;
6726     SwipeRecognizer swipeRecognizer = SwipeRecognizer(SINGLE_FINGER_NUMBER, swipeDirection, SWIPE_SPEED);
6727 
6728     /**
6729      * @tc.steps: step2. call SendCallbackMsg function and compare result.
6730      * @tc.steps: case1: onAction is no, *onAction is no
6731      * @tc.expected: step2. result equals.
6732      */
6733     std::unique_ptr<GestureEventFunc> onAction;
6734     swipeRecognizer.SendCallbackMsg(onAction);
6735     EXPECT_EQ(swipeRecognizer.touchPoints_.size(), 0);
6736 
6737     /**
6738      * @tc.steps: step2. call SendCallbackMsg function and compare result.
6739      * @tc.steps: case2: onAction is yes, *onAction is no
6740      * @tc.expected: step2. result equals.
6741      */
6742     onAction = std::make_unique<GestureEventFunc>();
6743     swipeRecognizer.SendCallbackMsg(onAction);
6744     EXPECT_EQ(swipeRecognizer.touchPoints_.size(), 0);
6745 
6746     /**
6747      * @tc.steps: step2. call SendCallbackMsg function and compare result.
6748      * @tc.steps: case3: onAction is yes, *onAction is yes, touchEvent is empty
6749      * @tc.expected: step2. result equals.
6750      */
__anona2ace5f31102(GestureEvent) 6751     onAction = std::make_unique<GestureEventFunc>([](GestureEvent) {});
6752     swipeRecognizer.SendCallbackMsg(onAction);
6753     EXPECT_EQ(swipeRecognizer.touchPoints_.size(), 0);
6754 
6755     /**
6756      * @tc.steps: step2. call SendCallbackMsg function and compare result.
6757      * @tc.steps: case4: touchEvent is not empty, have no X and Y
6758      * @tc.expected: step2. result equals.
6759      */
6760     TouchEvent touchEvent;
6761     swipeRecognizer.touchPoints_[touchEvent.id] = touchEvent;
6762     swipeRecognizer.SendCallbackMsg(onAction);
6763     EXPECT_EQ(swipeRecognizer.touchPoints_.size(), 1);
6764 
6765     /**
6766      * @tc.steps: step2. call SendCallbackMsg function and compare result.
6767      * @tc.steps: case4: touchEvent is not empty, have no X and Y
6768      * @tc.expected: step2. result equals.
6769      */
6770     touchEvent.tiltX = 0.0f;
6771     touchEvent.tiltY = 0.0f;
6772     swipeRecognizer.touchPoints_[touchEvent.id] = touchEvent;
6773     swipeRecognizer.SendCallbackMsg(onAction);
6774     EXPECT_EQ(swipeRecognizer.touchPoints_.size(), 1);
6775 }
6776 
6777 /**
6778  * @tc.name: SwipeRecognizerSendCallbackMsgTest002
6779  * @tc.desc: Test SwipeRecognizer function: SendCallbackMsg
6780  * @tc.type: FUNC
6781  */
6782 HWTEST_F(GesturesTestNg, SwipeRecognizerSendCallbackMsgTest002, TestSize.Level1)
6783 {
6784     /**
6785      * @tc.steps: step1. create SwipeRecognizer.
6786      */
6787     SwipeDirection swipeDirection;
6788     SwipeRecognizer swipeRecognizer = SwipeRecognizer(SINGLE_FINGER_NUMBER, swipeDirection, SWIPE_SPEED);
6789     std::unique_ptr<GestureEventFunc> onAction;
6790 
6791     /**
6792      * @tc.steps: step2. call SendCallbackMsg function and compare result.
6793      * @tc.steps: case3: onAction is yes, *onAction is yes, touchEvent is empty
6794      * @tc.expected: step2. result equals.
6795      */
__anona2ace5f31202(GestureEvent) 6796     onAction = std::make_unique<GestureEventFunc>([](GestureEvent) {});
6797     swipeRecognizer.deviceType_ = SourceType::MOUSE;
6798     swipeRecognizer.SendCallbackMsg(onAction);
6799     EXPECT_EQ(swipeRecognizer.touchPoints_.size(), 0);
6800 
6801     /**
6802      * @tc.steps: step2. call SendCallbackMsg function and compare result.
6803      * @tc.steps: case4: touchEvent is not empty, have no X and Y
6804      * @tc.expected: step2. result equals.
6805      */
6806     TouchEvent touchEvent;
6807     DimensionRect area;
6808     DimensionOffset origin;
6809     EventTarget target = {"", "", area, origin};
6810     swipeRecognizer.recognizerTarget_ = std::make_optional(target);
6811     swipeRecognizer.prevAngle_ = std::make_optional(VERTICAL_ANGLE);
6812     swipeRecognizer.touchPoints_[touchEvent.id] = touchEvent;
6813     swipeRecognizer.SendCallbackMsg(onAction);
6814     EXPECT_EQ(swipeRecognizer.touchPoints_.size(), 1);
6815 
6816     /**
6817      * @tc.steps: step2. call SendCallbackMsg function and compare result.
6818      * @tc.steps: case4: touchEvent is not empty, have no X and Y
6819      * @tc.expected: step2. result equals.
6820      */
6821     touchEvent.tiltX = 0.0f;
6822     touchEvent.tiltY = 0.0f;
6823     TouchEvent touchEvent1;
6824     swipeRecognizer.deviceType_ = SourceType::MOUSE;
6825     swipeRecognizer.lastTouchEvent_ = touchEvent1;
6826     swipeRecognizer.lastTouchEvent_.tiltX = std::make_optional(0.0f);
6827     swipeRecognizer.lastTouchEvent_.tiltY = std::make_optional(0.0f);
6828     swipeRecognizer.touchPoints_[touchEvent.id] = touchEvent;
6829     swipeRecognizer.SendCallbackMsg(onAction);
6830     EXPECT_EQ(swipeRecognizer.touchPoints_.size(), 1);
6831 }
6832 
6833 /**
6834  * @tc.name: PanRecognizerSendCallbackMsgTest003
6835  * @tc.desc: Test PanRecognizer function: SendCallbackMsg
6836  * @tc.type: FUNC
6837  */
6838 HWTEST_F(GesturesTestNg, PanRecognizerSendCallbackMsgTest003, TestSize.Level1)
6839 {
6840     /**
6841      * @tc.steps: step1. create PanRecognizer.
6842      */
6843     RefPtr<PanGestureOption> panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
6844     PanRecognizer panRecognizer = PanRecognizer(panGestureOption);
6845     std::unique_ptr<GestureEventFunc> onAction;
6846 
6847     /**
6848      * @tc.steps: step2. call SendCallbackMsg function and compare result.
6849      * @tc.steps: case3: onAction is yes, *onAction is yes, touchEvent is empty, type is AXIS
6850      * @tc.expected: step2. result equals.
6851      */
__anona2ace5f31302(GestureEvent) 6852     onAction = std::make_unique<GestureEventFunc>([](GestureEvent) {});
6853     panRecognizer.inputEventType_ = InputEventType::AXIS;
6854     DimensionRect area;
6855     DimensionOffset origin;
6856     EventTarget target = {"", "", area, origin};
6857     panRecognizer.recognizerTarget_ = std::make_optional(target);
6858     panRecognizer.SendCallbackMsg(onAction);
6859     EXPECT_EQ(panRecognizer.touchPoints_.size(), 0);
6860 
6861     /**
6862      * @tc.steps: step2. call SendCallbackMsg function and compare result.
6863      * @tc.steps: case4: touchEvent is not empty, have no X and Y, type is not AXIS
6864      * @tc.expected: step2. result equals.
6865      */
6866     TouchEvent touchEvent;
6867     panRecognizer.lastTouchEvent_ = touchEvent;
6868     panRecognizer.inputEventType_ = InputEventType::AXIS;
6869     panRecognizer.SendCallbackMsg(onAction);
6870     EXPECT_EQ(panRecognizer.touchPoints_.size(), 0);
6871 
6872     /**
6873      * @tc.steps: step2. call SendCallbackMsg function and compare result.
6874      * @tc.steps: case4: touchEvent is not empty, have no X and Y
6875      * @tc.expected: step2. result equals.
6876      */
6877     touchEvent.tiltX = 0.0f;
6878     touchEvent.tiltY = 0.0f;
6879     panRecognizer.lastTouchEvent_ = touchEvent;
6880     panRecognizer.touchPoints_[touchEvent.id] = touchEvent;
6881     panRecognizer.inputEventType_ = InputEventType::AXIS;
6882     panRecognizer.SendCallbackMsg(onAction);
6883     EXPECT_EQ(panRecognizer.touchPoints_.size(), 1);
6884 }
6885 
6886 /**
6887  * @tc.name: ClickRecognizerSendCallbackMsgTest001
6888  * @tc.desc: Test ClickRecognizer function: SendCallbackMsg
6889  * @tc.type: FUNC
6890  */
6891 HWTEST_F(GesturesTestNg, ClickRecognizerSendCallbackMsgTest001, TestSize.Level1)
6892 {
6893     /**
6894      * @tc.steps: step1. Create clickRecognizer.
6895      */
6896     ClickRecognizer clickRecognizer = ClickRecognizer(SINGLE_FINGER_NUMBER, TAPPED_COUNT);
6897     std::unique_ptr<GestureEventFunc> onAction;
6898 
6899     /**
6900      * @tc.steps: step2. call SendCallbackMsg function and compare result.
6901      * @tc.steps: case3: onAction is yes, *onAction is yes, touchEvent is empty, type is AXIS
6902      * @tc.expected: step2. result equals.
6903      */
__anona2ace5f31402(GestureEvent) 6904     onAction = std::make_unique<GestureEventFunc>([](GestureEvent) {});
6905     DimensionRect area;
6906     DimensionOffset origin;
6907     EventTarget target = {"", "", area, origin};
6908     clickRecognizer.recognizerTarget_ = std::make_optional(target);
6909     clickRecognizer.SendCallbackMsg(onAction);
6910     EXPECT_EQ(clickRecognizer.touchPoints_.size(), 0);
6911 }
6912 
6913 /**
6914  * @tc.name: ClickRecognizerHandleTouchMoveEventTest002
6915  * @tc.desc: Test ClickRecognizer function: HandleTouchMoveEvent
6916  * @tc.type: FUNC
6917  */
6918 HWTEST_F(GesturesTestNg, ClickRecognizerHandleTouchMoveEventTest002, TestSize.Level1)
6919 {
6920     /**
6921      * @tc.steps: step1. create ClickRecognizer.
6922      */
6923     ClickRecognizer clickRecognizer = ClickRecognizer(FINGER_NUMBER, COUNT);
6924 
6925     /**
6926      * @tc.steps: step2. call HandleTouchMoveEvent function and compare result.
6927      * @tc.steps: case2: refereeState is SUCCESS,return
6928      * @tc.expected: step2. result equals.
6929      */
6930     TouchEvent touchEvent;
6931     clickRecognizer.refereeState_ = RefereeState::PENDING;
6932     clickRecognizer.currentFingers_ = clickRecognizer.fingers_;
6933     clickRecognizer.HandleTouchMoveEvent(touchEvent);
6934     EXPECT_EQ(clickRecognizer.touchPoints_.size(), 1);
6935 }
6936 
6937 /**
6938  * @tc.name: LongPressRecognizerSendCallbackMsgTest001
6939  * @tc.desc: Test LongPressRecognizer function: SendCallbackMsg
6940  * @tc.type: FUNC
6941  */
6942 HWTEST_F(GesturesTestNg, LongPressRecognizerSendCallbackMsgTest001, TestSize.Level1)
6943 {
6944     /**
6945      * @tc.steps: step1. Create longPressRecognizer.
6946      */
6947     LongPressRecognizer longPressRecognizer = LongPressRecognizer(LONG_PRESS_DURATION, FINGER_NUMBER, false);
6948     std::unique_ptr<GestureEventFunc> onAction;
6949 
6950     /**
6951      * @tc.steps: step2. call SendCallbackMsg function and compare result.
6952      * @tc.steps: case3: onAction is yes, *onAction is yes, touchEvent is empty, type is AXIS
6953      * @tc.expected: step2. result equals.
6954      */
__anona2ace5f31502(GestureEvent) 6955     onAction = std::make_unique<GestureEventFunc>([](GestureEvent) {});
6956     DimensionRect area;
6957     DimensionOffset origin;
6958     EventTarget target = {"", "", area, origin};
6959     longPressRecognizer.recognizerTarget_ = std::make_optional(target);
6960     longPressRecognizer.SendCallbackMsg(onAction, true);
6961     EXPECT_EQ(longPressRecognizer.touchPoints_.size(), 0);
6962 }
6963 
6964 /**
6965  * @tc.name: PinchRecognizerSendCallbackMsgTest001
6966  * @tc.desc: Test PinchRecognizer function: SendCallbackMsg
6967  * @tc.type: FUNC
6968  */
6969 HWTEST_F(GesturesTestNg, PinchRecognizerSendCallbackMsgTest001, TestSize.Level1)
6970 {
6971     /**
6972      * @tc.steps: step1. create PinchRecognizer.
6973      */
6974     PinchRecognizer pinchRecognizer = PinchRecognizer(SINGLE_FINGER_NUMBER, -1);
6975     std::unique_ptr<GestureEventFunc> onAction;
6976 
6977     /**
6978      * @tc.steps: step2. call SendCallbackMsg function and compare result.
6979      * @tc.steps: case3: onAction is yes, *onAction is yes, touchEvent is empty, type is AXIS
6980      * @tc.expected: step2. result equals.
6981      */
__anona2ace5f31602(GestureEvent) 6982     onAction = std::make_unique<GestureEventFunc>([](GestureEvent) {});
6983     DimensionRect area;
6984     DimensionOffset origin;
6985     EventTarget target = {"", "", area, origin};
6986     pinchRecognizer.recognizerTarget_ = std::make_optional(target);
6987     pinchRecognizer.SendCallbackMsg(onAction);
6988     EXPECT_EQ(pinchRecognizer.touchPoints_.size(), 0);
6989 }
6990 
6991 /**
6992  * @tc.name: RotationRecognizerSendCallbackMsgTest001
6993  * @tc.desc: Test RotationRecognizer function: SendCallbackMsg
6994  * @tc.type: FUNC
6995  */
6996 HWTEST_F(GesturesTestNg, RotationRecognizerSendCallbackMsgTest001, TestSize.Level1)
6997 {
6998     /**
6999      * @tc.steps: step1. create RotationRecognizer.
7000      */
7001     RotationRecognizer rotationRecognizer = RotationRecognizer(SINGLE_FINGER_NUMBER, ROTATION_GESTURE_ANGLE);
7002     std::unique_ptr<GestureEventFunc> onAction;
7003 
7004     /**
7005      * @tc.steps: step2. call SendCallbackMsg function and compare result.
7006      * @tc.steps: case3: onAction is yes, *onAction is yes, touchEvent is empty, type is AXIS
7007      * @tc.expected: step2. result equals.
7008      */
__anona2ace5f31702(GestureEvent) 7009     onAction = std::make_unique<GestureEventFunc>([](GestureEvent) {});
7010     DimensionRect area;
7011     DimensionOffset origin;
7012     EventTarget target = {"", "", area, origin};
7013     rotationRecognizer.recognizerTarget_ = std::make_optional(target);
7014     rotationRecognizer.SendCallbackMsg(onAction);
7015     EXPECT_EQ(rotationRecognizer.touchPoints_.size(), 0);
7016 }
7017 
7018 /**
7019  * @tc.name: PinchRecognizerHandleTouchMoveEventTest102
7020  * @tc.desc: Test PinchRecognizer function: HandleTouchMoveEvent
7021  * @tc.type: FUNC
7022  */
7023 HWTEST_F(GesturesTestNg, PinchRecognizerHandleTouchMoveEventTest102, TestSize.Level1)
7024 {
7025     /**
7026      * @tc.steps: step1. create PinchRecognizer.
7027      */
7028     PinchRecognizer pinchRecognizer = PinchRecognizer(SINGLE_FINGER_NUMBER, PINCH_GESTURE_DISTANCE);
7029     AxisEvent axisEvent;
7030     axisEvent.pinchAxisScale = 0.0;
7031 
7032     /**
7033      * @tc.steps: step2. call HandleTouchMoveEvent function and compare result.
7034      * @tc.steps: case1: input is TouchEvent
7035      * @tc.expected: step2. result equals.
7036      */
7037     TouchEvent touchEvent;
7038     pinchRecognizer.refereeState_ = RefereeState::SUCCEED;
7039     pinchRecognizer.HandleTouchMoveEvent(touchEvent);
7040     pinchRecognizer.HandleTouchUpEvent(touchEvent);
7041     pinchRecognizer.HandleTouchCancelEvent(axisEvent);
7042     EXPECT_EQ(pinchRecognizer.touchPoints_[touchEvent.id].id, touchEvent.id);
7043     EXPECT_EQ(pinchRecognizer.lastTouchEvent_.id, touchEvent.id);
7044 
7045     /**
7046      * @tc.steps: step2. call HandleTouchMoveEvent function and compare result.
7047      * @tc.steps: case2: input is AxisEvent
7048      * @tc.expected: step2. result equals.
7049      */
7050     pinchRecognizer.refereeState_ = RefereeState::SUCCEED;
7051     pinchRecognizer.HandleTouchMoveEvent(axisEvent);
7052     EXPECT_EQ(pinchRecognizer.touchPoints_[touchEvent.id].id, touchEvent.id);
7053     EXPECT_EQ(pinchRecognizer.lastTouchEvent_.id, touchEvent.id);
7054 
7055     /**
7056      * @tc.steps: step2. call HandleTouchMoveEvent function and compare result.
7057      * @tc.steps: case3: input is TouchEvent, isFlushTouchEventsEnd_
7058      * @tc.expected: step2. result equals.
7059      */
7060     pinchRecognizer.refereeState_ = RefereeState::SUCCEED;
7061     pinchRecognizer.isFlushTouchEventsEnd_ = true;
7062     pinchRecognizer.HandleTouchMoveEvent(touchEvent);
7063     EXPECT_EQ(pinchRecognizer.touchPoints_[touchEvent.id].id, touchEvent.id);
7064     EXPECT_EQ(pinchRecognizer.lastTouchEvent_.id, touchEvent.id);
7065 
7066     /**
7067      * @tc.steps: step2. call HandleTouchUpEvent function and compare result.
7068      * @tc.steps: case4: input is TouchEvent, refereeState is FAIL
7069      * @tc.expected: step2. result equals.
7070      */
7071     pinchRecognizer.refereeState_ = RefereeState::FAIL;
7072     pinchRecognizer.HandleTouchMoveEvent(touchEvent);
7073     EXPECT_EQ(pinchRecognizer.touchPoints_[touchEvent.id].id, touchEvent.id);
7074     EXPECT_EQ(pinchRecognizer.lastTouchEvent_.id, touchEvent.id);
7075 
7076     /**
7077      * @tc.steps: step2. call HandleTouchMoveEvent function and compare result.
7078      * @tc.steps: case5: input is AxisEvent
7079      * @tc.expected: step2. result equals.
7080      */
7081     pinchRecognizer.refereeState_ = RefereeState::FAIL;
7082     pinchRecognizer.HandleTouchMoveEvent(axisEvent);
7083     EXPECT_EQ(pinchRecognizer.touchPoints_[touchEvent.id].id, touchEvent.id);
7084     EXPECT_EQ(pinchRecognizer.lastTouchEvent_.id, touchEvent.id);
7085 }
7086 
7087 /**
7088  * @tc.name: SwipeRecognizerHandleTouchMoveEventTest001
7089  * @tc.desc: Test SwipeRecognizer function: HandleTouchMove
7090  * @tc.type: FUNC
7091  */
7092 HWTEST_F(GesturesTestNg, SwipeRecognizerHandleTouchMoveEventTest001, TestSize.Level1)
7093 {
7094     /**
7095      * @tc.steps: step1. create SwipeRecognizer.
7096      */
7097     SwipeDirection swipeDirection;
7098     SwipeRecognizer swipeRecognizer = SwipeRecognizer(SINGLE_FINGER_NUMBER, swipeDirection, SWIPE_SPEED);
7099 
7100     /**
7101      * @tc.steps: step2. call HandleTouchMove function
7102      * @tc.expected: step2. result equals.
7103      */
7104     AxisEvent axisEvent;
7105     swipeRecognizer.refereeState_ = RefereeState::FAIL;
7106     swipeRecognizer.currentFingers_ = swipeRecognizer.fingers_;
7107     swipeRecognizer.HandleTouchMoveEvent(axisEvent);
7108     EXPECT_EQ(swipeRecognizer.axisVerticalTotal_, 0);
7109     EXPECT_EQ(swipeRecognizer.axisHorizontalTotal_, 0);
7110 }
7111 
7112 /**
7113  * @tc.name: SwipeRecognizerTest004
7114  * @tc.desc: Test SwipeRecognizer function: HandleTouchMove
7115  * @tc.type: FUNC
7116  */
7117 HWTEST_F(GesturesTestNg, SwipeRecognizerTest004, TestSize.Level1)
7118 {
7119     /**
7120      * @tc.steps: step1. create SwipeRecognizer.
7121      */
7122     SwipeDirection swipeDirection;
7123     SwipeRecognizer swipeRecognizer = SwipeRecognizer(SINGLE_FINGER_NUMBER, swipeDirection, SWIPE_SPEED);
7124 
7125     /**
7126      * @tc.steps: step2. call HandleTouchMove function
7127      * @tc.expected: step2. result equals.
7128      */
7129     TouchEvent touchEvent;
7130     touchEvent.x = 0;
7131     touchEvent.y = 1;
7132     swipeRecognizer.refereeState_ = RefereeState::FAIL;
7133     swipeRecognizer.downEvents_[touchEvent.id] = touchEvent;
7134     swipeRecognizer.HandleTouchMoveEvent(touchEvent);
7135     EXPECT_EQ(swipeRecognizer.globalPoint_.GetX(), 0);
7136     EXPECT_EQ(swipeRecognizer.globalPoint_.GetY(), 0);
7137     EXPECT_EQ(swipeRecognizer.lastTouchEvent_.id, touchEvent.id);
7138 
7139     swipeRecognizer.refereeState_ = RefereeState::DETECTING;
7140     swipeRecognizer.downEvents_[touchEvent.id] = touchEvent;
7141     swipeRecognizer.HandleTouchMoveEvent(touchEvent);
7142     EXPECT_EQ(swipeRecognizer.globalPoint_.GetX(), touchEvent.x);
7143     EXPECT_EQ(swipeRecognizer.globalPoint_.GetY(), 0);
7144     EXPECT_EQ(swipeRecognizer.lastTouchEvent_.id, touchEvent.id);
7145 
7146     AxisEvent axisEvent;
7147     swipeRecognizer.refereeState_ = RefereeState::DETECTING;
7148     swipeRecognizer.HandleTouchMoveEvent(axisEvent);
7149     EXPECT_EQ(swipeRecognizer.globalPoint_.GetX(), axisEvent.x);
7150     EXPECT_EQ(swipeRecognizer.globalPoint_.GetY(), axisEvent.y);
7151     EXPECT_EQ(swipeRecognizer.axisVerticalTotal_, 0);
7152     EXPECT_EQ(swipeRecognizer.axisHorizontalTotal_, 0);
7153 }
7154 
7155 /**
7156  * @tc.name: SwipeRecognizerTest005
7157  * @tc.desc: Test SwipeRecognizer function: CheckAngle
7158  * @tc.type: FUNC
7159  */
7160 HWTEST_F(GesturesTestNg, SwipeRecognizerTest005, TestSize.Level1)
7161 {
7162     /**
7163      * @tc.steps: step1. create SwipeRecognizer.
7164      */
7165     SwipeDirection swipeDirection;
7166     SwipeRecognizer swipeRecognizer = SwipeRecognizer(SINGLE_FINGER_NUMBER, swipeDirection, SWIPE_SPEED);
7167 
7168     /**
7169      * @tc.steps: step2. call CheckAngle function
7170      * @tc.steps: case1: prevAngle has value, prevAngle - angle > 45
7171      * @tc.expected: step2. result equals.
7172      */
7173     swipeRecognizer.prevAngle_ = std::make_optional(VERTICAL_ANGLE);
7174     auto result = swipeRecognizer.CheckAngle(0);
7175     EXPECT_EQ(result, false);
7176 
7177     /**
7178      * @tc.steps: step2. call CheckAngle function
7179      * @tc.steps: case2: prevAngle has value, prevAngle - angle < 45
7180      * @tc.expected: step2. result equals.
7181      */
7182     swipeRecognizer.prevAngle_ = std::make_optional(VERTICAL_ANGLE);
7183     result = swipeRecognizer.CheckAngle(VERTICAL_ANGLE);
7184     EXPECT_EQ(result, true);
7185 
7186     /**
7187      * @tc.steps: step2. call CheckAngle function
7188      * @tc.steps: case2: prevAngle has no value, direction is HORIZONTAL, angle > 45
7189      * @tc.expected: step2. result equals.
7190      */
7191     swipeRecognizer.prevAngle_ = std::optional<double>();
7192     swipeRecognizer.direction_.type = SwipeDirection::HORIZONTAL;
7193     result = swipeRecognizer.CheckAngle(VERTICAL_ANGLE);
7194     EXPECT_EQ(result, false);
7195 
7196     /**
7197      * @tc.steps: step2. call CheckAngle function
7198      * @tc.steps: case3: prevAngle has no value, direction is HORIZONTAL, angle < 45
7199      * @tc.expected: step2. result equals.
7200      */
7201     swipeRecognizer.prevAngle_ = std::optional<double>();
7202     swipeRecognizer.direction_.type = SwipeDirection::HORIZONTAL;
7203     result = swipeRecognizer.CheckAngle(0);
7204     EXPECT_EQ(result, true);
7205 
7206     /**
7207      * @tc.steps: step2. call CheckAngle function
7208      * @tc.steps: case4: prevAngle has no value, direction is VERTICAL, angle > 135
7209      * @tc.expected: step2. result equals.
7210      */
7211     swipeRecognizer.prevAngle_ = std::make_optional(VERTICAL_ANGLE);
7212     swipeRecognizer.direction_.type = SwipeDirection::VERTICAL;
7213     result = swipeRecognizer.CheckAngle(HORIZONTAL_ANGLE);
7214     EXPECT_EQ(result, false);
7215 
7216     /**
7217      * @tc.steps: step2. call CheckAngle function
7218      * @tc.steps: case5: prevAngle has no value, direction is VERTICAL, angle < 135
7219      * @tc.expected: step2. result equals.
7220      */
7221     swipeRecognizer.prevAngle_ = std::make_optional(VERTICAL_ANGLE);
7222     swipeRecognizer.direction_.type = SwipeDirection::VERTICAL;
7223     result = swipeRecognizer.CheckAngle(VERTICAL_ANGLE);
7224     EXPECT_EQ(result, true);
7225 }
7226 
7227 /**
7228  * @tc.name: SwipeRecognizerHandleTouchMoveEventTest002
7229  * @tc.desc: Test SwipeRecognizer function: HandleTouchMove
7230  * @tc.type: FUNC
7231  */
7232 HWTEST_F(GesturesTestNg, SwipeRecognizerHandleTouchMoveEventTest002, TestSize.Level1)
7233 {
7234     /**
7235      * @tc.steps: step1. create SwipeRecognizer.
7236      */
7237     SwipeDirection swipeDirection;
7238     SwipeRecognizer swipeRecognizer = SwipeRecognizer(SINGLE_FINGER_NUMBER, swipeDirection, SWIPE_SPEED);
7239 
7240     /**
7241      * @tc.steps: step2. call HandleTouchMove function
7242      * @tc.expected: step2. result equals.
7243      */
7244     TouchEvent touchEvent;
7245     touchEvent.x = 0;
7246     touchEvent.y = 1;
7247     swipeRecognizer.refereeState_ = RefereeState::FAIL;
7248     swipeRecognizer.downEvents_[touchEvent.id] = touchEvent;
7249     swipeRecognizer.currentFingers_ = swipeRecognizer.fingers_;
7250     swipeRecognizer.HandleTouchMoveEvent(touchEvent);
7251     EXPECT_EQ(swipeRecognizer.globalPoint_.GetX(), 0);
7252     EXPECT_EQ(swipeRecognizer.globalPoint_.GetY(), 0);
7253     EXPECT_EQ(swipeRecognizer.lastTouchEvent_.id, touchEvent.id);
7254 
7255     swipeRecognizer.refereeState_ = RefereeState::DETECTING;
7256     swipeRecognizer.downEvents_[touchEvent.id] = touchEvent;
7257     swipeRecognizer.currentFingers_ = swipeRecognizer.fingers_;
7258     swipeRecognizer.HandleTouchMoveEvent(touchEvent);
7259     EXPECT_EQ(swipeRecognizer.lastTouchEvent_.id, touchEvent.id);
7260 
7261     AxisEvent axisEvent;
7262     swipeRecognizer.refereeState_ = RefereeState::FAIL;
7263     swipeRecognizer.currentFingers_ = swipeRecognizer.fingers_;
7264     swipeRecognizer.HandleTouchMoveEvent(axisEvent);
7265     EXPECT_EQ(swipeRecognizer.axisVerticalTotal_, 0);
7266     EXPECT_EQ(swipeRecognizer.axisHorizontalTotal_, 0);
7267 }
7268 
7269 /**
7270  * @tc.name: SwipeRecognizerHandleTouchMoveEventTest003
7271  * @tc.desc: Test SwipeRecognizer function: HandleTouchMove
7272  * @tc.type: FUNC
7273  */
7274 HWTEST_F(GesturesTestNg, SwipeRecognizerHandleTouchMoveEventTest003, TestSize.Level1)
7275 {
7276     /**
7277      * @tc.steps: step1. create SwipeRecognizer.
7278      */
7279     SwipeDirection swipeDirection;
7280     SwipeRecognizer swipeRecognizer = SwipeRecognizer(SINGLE_FINGER_NUMBER, swipeDirection, SWIPE_SPEED);
7281 
7282     /**
7283      * @tc.steps: step2. call HandleTouchMove function
7284      * @tc.expected: step2. result equals.
7285      */
7286     TouchEvent touchEvent;
7287     touchEvent.x = 0;
7288     touchEvent.y = -1;
7289     swipeRecognizer.refereeState_ = RefereeState::FAIL;
7290     swipeRecognizer.downEvents_[touchEvent.id] = touchEvent;
7291     swipeRecognizer.currentFingers_ = swipeRecognizer.fingers_;
7292     swipeRecognizer.HandleTouchMoveEvent(touchEvent);
7293     EXPECT_EQ(swipeRecognizer.globalPoint_.GetX(), 0);
7294     EXPECT_EQ(swipeRecognizer.globalPoint_.GetY(), 0);
7295     EXPECT_EQ(swipeRecognizer.lastTouchEvent_.id, touchEvent.id);
7296 
7297     swipeRecognizer.refereeState_ = RefereeState::DETECTING;
7298     swipeRecognizer.downEvents_[touchEvent.id] = touchEvent;
7299     swipeRecognizer.currentFingers_ = swipeRecognizer.fingers_;
7300     swipeRecognizer.HandleTouchMoveEvent(touchEvent);
7301     EXPECT_EQ(swipeRecognizer.lastTouchEvent_.id, touchEvent.id);
7302 
7303     AxisEvent axisEvent;
7304     swipeRecognizer.refereeState_ = RefereeState::FAIL;
7305     swipeRecognizer.currentFingers_ = swipeRecognizer.fingers_;
7306     swipeRecognizer.HandleTouchMoveEvent(axisEvent);
7307     EXPECT_EQ(swipeRecognizer.axisVerticalTotal_, 0);
7308     EXPECT_EQ(swipeRecognizer.axisHorizontalTotal_, 0);
7309 }
7310 
7311 /**
7312  * @tc.name: SwipeRecognizerHandleTouchMoveEventTest004
7313  * @tc.desc: Test SwipeRecognizer function: HandleTouchMove
7314  * @tc.type: FUNC
7315  */
7316 HWTEST_F(GesturesTestNg, SwipeRecognizerHandleTouchMoveEventTest004, TestSize.Level1)
7317 {
7318     /**
7319      * @tc.steps: step1. create SwipeRecognizer.
7320      */
7321     SwipeDirection swipeDirection;
7322     SwipeRecognizer swipeRecognizer = SwipeRecognizer(SINGLE_FINGER_NUMBER, swipeDirection, SWIPE_SPEED);
7323 
7324     /**
7325      * @tc.steps: step2. call HandleTouchMove function
7326      * @tc.expected: step2. result equals.
7327      */
7328     TouchEvent touchEvent;
7329     touchEvent.x = -1;
7330     touchEvent.y = -1;
7331     swipeRecognizer.refereeState_ = RefereeState::FAIL;
7332     swipeRecognizer.downEvents_[touchEvent.id] = touchEvent;
7333     swipeRecognizer.currentFingers_ = swipeRecognizer.fingers_;
7334     swipeRecognizer.HandleTouchMoveEvent(touchEvent);
7335     EXPECT_EQ(swipeRecognizer.lastTouchEvent_.id, touchEvent.id);
7336 
7337     swipeRecognizer.refereeState_ = RefereeState::DETECTING;
7338     swipeRecognizer.downEvents_[touchEvent.id] = touchEvent;
7339     swipeRecognizer.currentFingers_ = swipeRecognizer.fingers_;
7340     swipeRecognizer.HandleTouchMoveEvent(touchEvent);
7341     EXPECT_EQ(swipeRecognizer.lastTouchEvent_.id, touchEvent.id);
7342 
7343     AxisEvent axisEvent;
7344     swipeRecognizer.refereeState_ = RefereeState::FAIL;
7345     swipeRecognizer.currentFingers_ = swipeRecognizer.fingers_;
7346     swipeRecognizer.HandleTouchMoveEvent(axisEvent);
7347     EXPECT_EQ(swipeRecognizer.axisVerticalTotal_, 0);
7348     EXPECT_EQ(swipeRecognizer.axisHorizontalTotal_, 0);
7349 }
7350 
7351 /**
7352  * @tc.name: SwipeRecognizerTest006
7353  * @tc.desc: Test SwipeRecognizer function: OnResetStatus
7354  * @tc.type: FUNC
7355  */
7356 HWTEST_F(GesturesTestNg, SwipeRecognizerTest006, TestSize.Level1)
7357 {
7358     /**
7359      * @tc.steps: step1. create SwipeRecognizer.
7360      */
7361     SwipeDirection swipeDirection;
7362     SwipeRecognizer swipeRecognizer = SwipeRecognizer(SINGLE_FINGER_NUMBER, swipeDirection, SWIPE_SPEED);
7363 
7364     /**
7365      * @tc.steps: step2. call OnResetStatus function
7366      * @tc.expected: step2. result equals.
7367      */
7368     swipeRecognizer.OnResetStatus();
7369     EXPECT_EQ(swipeRecognizer.axisHorizontalTotal_, 0.0);
7370     EXPECT_EQ(swipeRecognizer.axisVerticalTotal_, 0.0);
7371     EXPECT_EQ(swipeRecognizer.resultSpeed_, 0.0);
7372     EXPECT_EQ(swipeRecognizer.globalPoint_.GetX(), 0.0);
7373     EXPECT_EQ(swipeRecognizer.globalPoint_.GetY(), 0.0);
7374 }
7375 
7376 /**
7377  * @tc.name: SwipeRecognizerTest007
7378  * @tc.desc: Test SwipeRecognizer function: ReconcileFrom
7379  * @tc.type: FUNC
7380  */
7381 HWTEST_F(GesturesTestNg, SwipeRecognizerTest007, TestSize.Level1)
7382 {
7383     /**
7384      * @tc.steps: step1. create SwipeRecognizer.
7385      */
7386     SwipeDirection swipeDirection;
7387     SwipeRecognizer swipeRecognizer = SwipeRecognizer(SINGLE_FINGER_NUMBER, swipeDirection, SWIPE_SPEED);
7388     RefPtr<SwipeRecognizer> swipeRecognizerPtr =
7389         AceType::MakeRefPtr<SwipeRecognizer>(SINGLE_FINGER_NUMBER, swipeDirection, SWIPE_SPEED);
7390 
7391     /**
7392      * @tc.steps: step2. call ReconcileFrom function
7393      * @tc.steps: case1: input is nullptr
7394      * @tc.expected: step2. result equals.
7395      */
7396     auto result = swipeRecognizer.ReconcileFrom(nullptr);
7397     EXPECT_EQ(result, false);
7398 
7399     /**
7400      * @tc.steps: step2. call ReconcileFrom function
7401      * @tc.steps: case2: input is same
7402      * @tc.expected: step2. result equals.
7403      */
7404     result = swipeRecognizer.ReconcileFrom(swipeRecognizerPtr);
7405     EXPECT_EQ(result, true);
7406 
7407     /**
7408      * @tc.steps: step2. call ReconcileFrom function
7409      * @tc.steps: case3: curr->fingers != fingers
7410      * @tc.expected: step2. result equals.
7411      */
7412     swipeRecognizer.fingers_ = swipeRecognizerPtr->fingers_ + 1;
7413     result = swipeRecognizer.ReconcileFrom(swipeRecognizerPtr);
7414     EXPECT_EQ(result, false);
7415 
7416     /**
7417      * @tc.steps: step2. call ReconcileFrom function
7418      * @tc.steps: case4: curr->fingers = fingers, direction type not same
7419      * @tc.expected: step2. result equals.
7420      */
7421     swipeRecognizer.fingers_ = swipeRecognizerPtr->fingers_;
7422     swipeRecognizer.direction_.type = SwipeDirection::HORIZONTAL;
7423     result = swipeRecognizer.ReconcileFrom(swipeRecognizerPtr);
7424     EXPECT_EQ(result, false);
7425 
7426     /**
7427      * @tc.steps: step2. call ReconcileFrom function
7428      * @tc.steps: case5:direction type is same, speed is not same
7429      * @tc.expected: step2. result equals.
7430      */
7431     swipeRecognizer.fingers_ = swipeRecognizerPtr->fingers_;
7432     swipeRecognizer.direction_.type = swipeRecognizerPtr->direction_.type;
7433     swipeRecognizer.speed_ = 1;
7434     result = swipeRecognizer.ReconcileFrom(swipeRecognizerPtr);
7435     EXPECT_EQ(result, false);
7436 }
7437 
7438 /**
7439  * @tc.name: SwipeRecognizerTest008
7440  * @tc.desc: Test SwipeRecognizer function: HandleTouchCancelEvent
7441  * @tc.type: FUNC
7442  */
7443 HWTEST_F(GesturesTestNg, SwipeRecognizerTest008, TestSize.Level1)
7444 {
7445     /**
7446      * @tc.steps: step1. create SwipeRecognizer.
7447      */
7448     SwipeDirection swipeDirection;
7449     SwipeRecognizer swipeRecognizer = SwipeRecognizer(SINGLE_FINGER_NUMBER, swipeDirection, SWIPE_SPEED);
7450 
7451     /**
7452      * @tc.steps: step2. call HandleTouchCancelEvent function
7453      * @tc.expected: step2. result equals.
7454      */
7455     swipeRecognizer.refereeState_ = RefereeState::SUCCEED;
7456     TouchEvent touchEvent;
7457     swipeRecognizer.HandleTouchCancelEvent(touchEvent);
7458     EXPECT_EQ(swipeRecognizer.refereeState_, RefereeState::SUCCEED);
7459 }
7460 
7461 /**
7462  * @tc.name: SwipeRecognizerTest009
7463  * @tc.desc: Test SwipeRecognizer function: SendCallbackMsg
7464  * @tc.type: FUNC
7465  */
7466 HWTEST_F(GesturesTestNg, SwipeRecognizerTest009, TestSize.Level1)
7467 {
7468     /**
7469      * @tc.steps: step1. create SwipeRecognizer.
7470      */
7471     SwipeDirection swipeDirection;
7472     SwipeRecognizer swipeRecognizer = SwipeRecognizer(SINGLE_FINGER_NUMBER, swipeDirection, SWIPE_SPEED);
7473 
7474     /**
7475      * @tc.steps: step2. call SendCallbackMsg function and compare result.
7476      * @tc.steps: case1: callback is null
7477      * @tc.expected: step2. result equals.
7478      */
7479     swipeRecognizer.SendCallbackMsg(nullptr);
7480     EXPECT_EQ(swipeRecognizer.touchPoints_.size(), 0);
7481 
7482     /**
7483      * @tc.steps: step2. call SendCallbackMsg function and compare result.
7484      * @tc.steps: case2: callback is ptr, have no tiltX and tileY
7485      * @tc.expected: step2. result equals.
7486      */
7487     std::unique_ptr<GestureEventFunc> onAction;
7488     TouchEvent touchEvent1;
7489     swipeRecognizer.deviceType_ = SourceType::MOUSE;
7490     swipeRecognizer.lastTouchEvent_ = touchEvent1;
7491     swipeRecognizer.SendCallbackMsg(onAction);
7492     EXPECT_EQ(swipeRecognizer.touchPoints_.size(), 0);
7493 
7494     /**
7495      * @tc.steps: step2. call SendCallbackMsg function and compare result.
7496      * @tc.steps: case3: callback is ptr, have tiltX and no tileY
7497      * @tc.expected: step2. result equals.
7498      */
7499     TouchEvent touchEvent2;
7500     touchEvent2.tiltX = 0;
7501     swipeRecognizer.deviceType_ = SourceType::TOUCH;
7502     swipeRecognizer.lastTouchEvent_ = touchEvent2;
7503     swipeRecognizer.SendCallbackMsg(onAction);
7504     EXPECT_EQ(swipeRecognizer.touchPoints_.size(), 0);
7505 
7506     /**
7507      * @tc.steps: step2. call SendCallbackMsg function and compare result.
7508      * @tc.steps: case4: callback is ptr, have tiltX and tileY
7509      * @tc.expected: step2. result equals.
7510      */
7511     TouchEvent touchEvent3;
7512     touchEvent3.tiltX = 0;
7513     touchEvent3.tiltY = 0;
7514     swipeRecognizer.deviceType_ = SourceType::TOUCH;
7515     swipeRecognizer.lastTouchEvent_ = touchEvent3;
7516     swipeRecognizer.prevAngle_ = std::make_optional(0);
7517     swipeRecognizer.SendCallbackMsg(onAction);
7518     EXPECT_EQ(swipeRecognizer.touchPoints_.size(), 0);
7519 }
7520 
7521 /**
7522  * @tc.name: GestureGroupTest001
7523  * @tc.desc: Test GestureGroup CreateRecognizer function
7524  */
7525 HWTEST_F(GesturesTestNg, GestureGroupTest001, TestSize.Level1)
7526 {
7527     /**
7528      * @tc.steps: step1. create GestureGroup.
7529      */
7530     GestureGroupModelNG gestureGroupModelNG;
7531     gestureGroupModelNG.Create(0);
7532 
7533     RefPtr<GestureProcessor> gestureProcessor;
7534     gestureProcessor = NG::ViewStackProcessor::GetInstance()->GetOrCreateGestureProcessor();
7535     auto gestureGroupNG = AceType::DynamicCast<NG::GestureGroup>(gestureProcessor->TopGestureNG());
7536     EXPECT_EQ(gestureGroupNG->mode_, GestureMode::Sequence);
7537 
7538     GestureGroup gestureGroup = GestureGroup(GestureMode::Sequence);
7539 
7540     /**
7541      * @tc.steps: step2. call CreateRecognizer function and compare result
7542      * @tc.steps: case1: GestureMode::Begin
7543      */
7544     gestureGroup.priority_ = GesturePriority::Low;
7545     gestureGroup.gestureMask_ = GestureMask::Normal;
7546     gestureGroup.mode_ = GestureMode::Begin;
7547     auto groupRecognizer = gestureGroup.CreateRecognizer();
7548     EXPECT_EQ(groupRecognizer, nullptr);
7549 
7550     /**
7551      * @tc.steps: step2. call CreateRecognizer function and compare result
7552      * @tc.steps: case2: GestureMode::Sequence
7553      */
7554     gestureGroup.priority_ = GesturePriority::Low;
7555     gestureGroup.gestureMask_ = GestureMask::Normal;
7556     gestureGroup.mode_ = GestureMode::Sequence;
7557     groupRecognizer = gestureGroup.CreateRecognizer();
7558     EXPECT_NE(groupRecognizer, nullptr);
7559     EXPECT_EQ(groupRecognizer->GetPriority(), GesturePriority::Low);
7560     EXPECT_EQ(groupRecognizer->GetPriorityMask(), GestureMask::Normal);
7561 
7562     /**
7563      * @tc.steps: step2. call CreateRecognizer function and compare result
7564      * @tc.steps: case3: GestureMode::Parallel
7565      */
7566     gestureGroup.priority_ = GesturePriority::Low;
7567     gestureGroup.gestureMask_ = GestureMask::Normal;
7568     gestureGroup.mode_ = GestureMode::Parallel;
7569     groupRecognizer = gestureGroup.CreateRecognizer();
7570     EXPECT_NE(groupRecognizer, nullptr);
7571     EXPECT_EQ(groupRecognizer->GetPriority(), GesturePriority::Low);
7572     EXPECT_EQ(groupRecognizer->GetPriorityMask(), GestureMask::Normal);
7573 
7574     /**
7575      * @tc.steps: step2. call CreateRecognizer function and compare result
7576      * @tc.steps: case4: GestureMode::Exclusive
7577      */
7578     gestureGroup.priority_ = GesturePriority::Low;
7579     gestureGroup.gestureMask_ = GestureMask::Normal;
7580     gestureGroup.mode_ = GestureMode::Exclusive;
7581     groupRecognizer = gestureGroup.CreateRecognizer();
7582     EXPECT_NE(groupRecognizer, nullptr);
7583     EXPECT_EQ(groupRecognizer->GetPriority(), GesturePriority::Low);
7584     EXPECT_EQ(groupRecognizer->GetPriorityMask(), GestureMask::Normal);
7585 
7586     /**
7587      * @tc.steps: step2. call CreateRecognizer function and compare result
7588      * @tc.steps: case5: GestureMode::End
7589      */
7590     gestureGroup.priority_ = GesturePriority::Low;
7591     gestureGroup.gestureMask_ = GestureMask::Normal;
7592     gestureGroup.mode_ = GestureMode::End;
7593     groupRecognizer = gestureGroup.CreateRecognizer();
7594     EXPECT_EQ(groupRecognizer, nullptr);
7595 
7596     /**
7597      * @tc.steps: step2. call CreateRecognizer function and compare result
7598      * @tc.steps: case6: GestureMode::Sequence, have onActionCancelId_
7599      */
7600     gestureGroup.priority_ = GesturePriority::Low;
7601     gestureGroup.gestureMask_ = GestureMask::Normal;
7602     gestureGroup.mode_ = GestureMode::Sequence;
7603     std::unique_ptr<GestureEventNoParameter> onActionCancelId;
7604     gestureGroup.onActionCancelId_ = std::move(onActionCancelId);
7605     groupRecognizer = gestureGroup.CreateRecognizer();
7606     EXPECT_NE(groupRecognizer, nullptr);
7607 }
7608 
7609 /**
7610  * @tc.name: GestureGroupGestureGroupTest003
7611  * @tc.desc: Test GestureGroup GestureGroup
7612  */
7613 HWTEST_F(GesturesTestNg, GestureGroupGestureGroupTest003, TestSize.Level1)
7614 {
7615     /**
7616      * @tc.steps: step1. create GestureGroup.
7617      */
7618     GestureGroupModelNG gestureGroupModelNG;
7619     gestureGroupModelNG.Create(0);
7620 
7621     RefPtr<GestureProcessor> gestureProcessor;
7622     gestureProcessor = NG::ViewStackProcessor::GetInstance()->GetOrCreateGestureProcessor();
7623     auto gestureGroupNG = AceType::DynamicCast<NG::GestureGroup>(gestureProcessor->TopGestureNG());
7624     std::vector<RefPtr<Gesture>> gestures;
7625     RefPtr<LongPressGesture> LongPressGesturePtr = AceType::MakeRefPtr<LongPressGesture>(FINGER_NUMBER,
7626         false, LONG_PRESS_DURATION, false, false);
7627     gestures.push_back(LongPressGesturePtr);
7628 
7629     GestureGroup gestureGroup = GestureGroup(GestureMode::Sequence);
7630     gestureGroup.gestures_ = gestures;
7631 
7632     /**
7633      * @tc.steps: step2. call CreateRecognizer function and compare result
7634      * @tc.steps: case1: GestureMode::Begin
7635      */
7636     gestureGroup.priority_ = GesturePriority::Low;
7637     gestureGroup.gestureMask_ = GestureMask::Normal;
7638     gestureGroup.mode_ = GestureMode::Begin;
7639     auto groupRecognizer = gestureGroup.CreateRecognizer();
7640     EXPECT_EQ(groupRecognizer, nullptr);
7641 
7642     /**
7643      * @tc.steps: step2. call CreateRecognizer function and compare result
7644      * @tc.steps: case2: GestureMode::Sequence
7645      */
7646     gestureGroup.priority_ = GesturePriority::Low;
7647     gestureGroup.gestureMask_ = GestureMask::Normal;
7648     gestureGroup.mode_ = GestureMode::Sequence;
7649     groupRecognizer = gestureGroup.CreateRecognizer();
7650     EXPECT_EQ(groupRecognizer->GetPriorityMask(), GestureMask::Normal);
7651 
7652     /**
7653      * @tc.steps: step2. call CreateRecognizer function and compare result
7654      * @tc.steps: case3: GestureMode::Parallel
7655      */
7656     gestureGroup.priority_ = GesturePriority::Low;
7657     gestureGroup.gestureMask_ = GestureMask::Normal;
7658     gestureGroup.mode_ = GestureMode::Parallel;
7659     groupRecognizer = gestureGroup.CreateRecognizer();
7660     EXPECT_EQ(groupRecognizer->GetPriorityMask(), GestureMask::Normal);
7661 
7662     /**
7663      * @tc.steps: step2. call CreateRecognizer function and compare result
7664      * @tc.steps: case4: GestureMode::Exclusive
7665      */
7666     gestureGroup.priority_ = GesturePriority::Low;
7667     gestureGroup.gestureMask_ = GestureMask::Normal;
7668     gestureGroup.mode_ = GestureMode::Exclusive;
7669     groupRecognizer = gestureGroup.CreateRecognizer();
7670     EXPECT_EQ(groupRecognizer->GetPriorityMask(), GestureMask::Normal);
7671 
7672     /**
7673      * @tc.steps: step2. call CreateRecognizer function and compare result
7674      * @tc.steps: case5: GestureMode::End
7675      */
7676     gestureGroup.priority_ = GesturePriority::Low;
7677     gestureGroup.gestureMask_ = GestureMask::Normal;
7678     gestureGroup.mode_ = GestureMode::End;
7679     groupRecognizer = gestureGroup.CreateRecognizer();
7680     EXPECT_EQ(groupRecognizer, nullptr);
7681 
7682     /**
7683      * @tc.steps: step2. call CreateRecognizer function and compare result
7684      * @tc.steps: case6: GestureMode::Sequence, have onActionCancelId_
7685      */
7686     gestureGroup.priority_ = GesturePriority::Low;
7687     gestureGroup.gestureMask_ = GestureMask::Normal;
7688     gestureGroup.mode_ = GestureMode::Sequence;
7689     std::unique_ptr<GestureEventNoParameter> onActionCancelId;
7690     gestureGroup.onActionCancelId_ = std::move(onActionCancelId);
7691     groupRecognizer = gestureGroup.CreateRecognizer();
7692     EXPECT_NE(groupRecognizer, nullptr);
7693 }
7694 
7695 /**
7696  * @tc.name: GestureGroupCreateRecognizerTest001
7697  * @tc.desc: Test GestureGroup CreateRecognizer function
7698  */
7699 HWTEST_F(GesturesTestNg, GestureGroupCreateRecognizerTest001, TestSize.Level1)
7700 {
7701     /**
7702      * @tc.steps: step1. create GestureGroup.
7703      */
7704     GestureGroupModelNG gestureGroupModelNG;
7705     gestureGroupModelNG.Create(0);
7706 
7707     RefPtr<GestureProcessor> gestureProcessor;
7708     gestureProcessor = NG::ViewStackProcessor::GetInstance()->GetOrCreateGestureProcessor();
7709     auto gestureGroupNG = AceType::DynamicCast<NG::GestureGroup>(gestureProcessor->TopGestureNG());
7710     EXPECT_EQ(gestureGroupNG->mode_, GestureMode::Sequence);
7711 
7712     GestureGroup gestureGroup = GestureGroup(GestureMode::Sequence);
7713 
7714     /**
7715      * @tc.steps: step2. call CreateRecognizer function and compare result
7716      * @tc.steps: case1: GestureMode::Begin
7717      */
7718     gestureGroup.priority_ = GesturePriority::Low;
7719     gestureGroup.gestureMask_ = GestureMask::Normal;
7720     gestureGroup.mode_ = GestureMode::Begin;
7721     auto groupRecognizer = gestureGroup.CreateRecognizer();
7722     EXPECT_EQ(groupRecognizer, nullptr);
7723 
7724     /**
7725      * @tc.steps: step2. call CreateRecognizer function and compare result
7726      * @tc.steps: case2: GestureMode::Sequence
7727      */
7728     gestureGroup.priority_ = GesturePriority::Low;
7729     gestureGroup.gestureMask_ = GestureMask::Normal;
7730     gestureGroup.mode_ = GestureMode::Sequence;
__anona2ace5f31802() 7731     auto onActionCancel = []() { return true; };
7732     gestureGroup.SetOnActionCancelId(onActionCancel);
7733     groupRecognizer = gestureGroup.CreateRecognizer();
7734     EXPECT_NE(groupRecognizer, nullptr);
7735     EXPECT_EQ(groupRecognizer->GetPriority(), GesturePriority::Low);
7736     EXPECT_EQ(groupRecognizer->GetPriorityMask(), GestureMask::Normal);
7737 }
7738 
7739 /**
7740  * @tc.name: GestureRefereeTest001
7741  * @tc.desc: Test GestureReferee Existed function
7742  */
7743 HWTEST_F(GesturesTestNg, GestureRefereeTest001, TestSize.Level1)
7744 {
7745     /**
7746      * @tc.steps: step1. create GestureScope and clickRecognizer.
7747      */
7748     GestureScope gestureScope = GestureScope(0);
7749     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
7750     gestureScope.recognizers_.insert(gestureScope.recognizers_.end(), clickRecognizerPtr);
7751 
7752     /**
7753      * @tc.steps: step2. call Existed function and compare result
7754      * @tc.steps: case1: input is ptr, have input
7755      * @tc.steps: expected equal
7756      */
7757     auto result = gestureScope.Existed(clickRecognizerPtr);
7758     EXPECT_EQ(result, true);
7759 
7760     /**
7761      * @tc.steps: step2. call Existed function and compare result
7762      * @tc.steps: case2: input is nullptr
7763      * @tc.steps: expected equal
7764      */
7765     result = gestureScope.Existed(nullptr);
7766     EXPECT_EQ(result, false);
7767 
7768     /**
7769      * @tc.steps: step2. call Existed function and compare result
7770      * @tc.steps: case3: recognizers is empty
7771      * @tc.steps: expected equal
7772      */
7773     gestureScope.recognizers_.clear();
7774     result = gestureScope.Existed(clickRecognizerPtr);
7775     EXPECT_EQ(result, false);
7776 }
7777 
7778 /**
7779  * @tc.name: GestureRefereeTest002
7780  * @tc.desc: Test GestureReferee CheckNeedBlocked function
7781  */
7782 HWTEST_F(GesturesTestNg, GestureRefereeTest002, TestSize.Level1)
7783 {
7784     /**
7785      * @tc.steps: step1. create GestureScope and clickRecognizer.
7786      */
7787     GestureScope gestureScope = GestureScope(0);
7788     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
7789     gestureScope.recognizers_.insert(gestureScope.recognizers_.end(), clickRecognizerPtr);
7790 
7791     /**
7792      * @tc.steps: step2. call Existed function and compare result
7793      * @tc.steps: case1: member == input
7794      * @tc.steps: expected equal
7795      */
7796     auto result = gestureScope.CheckNeedBlocked(clickRecognizerPtr);
7797     EXPECT_EQ(result, false);
7798 
7799     /**
7800      * @tc.steps: step2. call Existed function and compare result
7801      * @tc.steps: case1: member != input, refereeState is PENDING
7802      * @tc.steps: expected equal
7803      */
7804     RefPtr<ClickRecognizer> clickRecognizerPtrNotInsert = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
7805     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
7806     result = gestureScope.CheckNeedBlocked(clickRecognizerPtrNotInsert);
7807     EXPECT_EQ(result, true);
7808 
7809     /**
7810      * @tc.steps: step2. call Existed function and compare result
7811      * @tc.steps: case3: recognizers is empty
7812      * @tc.steps: expected equal
7813      */
7814     gestureScope.recognizers_.clear();
7815     result = gestureScope.CheckNeedBlocked(clickRecognizerPtr);
7816     EXPECT_EQ(result, false);
7817 }
7818 
7819 /**
7820  * @tc.name: GestureRefereeCheckNeedBlockedTest001
7821  * @tc.desc: Test GestureReferee CheckNeedBlocked function
7822  */
7823 HWTEST_F(GesturesTestNg, GestureRefereeCheckNeedBlockedTest001, TestSize.Level1)
7824 {
7825     /**
7826      * @tc.steps: step1. create GestureScope and clickRecognizer.
7827      */
7828     GestureScope gestureScope = GestureScope(0);
7829     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
7830     gestureScope.recognizers_.insert(gestureScope.recognizers_.end(), clickRecognizerPtr);
7831 
7832     /**
7833      * @tc.steps: step2. call Existed function and compare result
7834      * @tc.steps: case1: member == input
7835      * @tc.steps: expected equal
7836      */
7837     auto result = gestureScope.CheckNeedBlocked(clickRecognizerPtr);
7838     EXPECT_FALSE(result);
7839 
7840     /**
7841      * @tc.steps: step2. call Existed function and compare result
7842      * @tc.steps: case1: member != input, refereeState is PENDING
7843      * @tc.steps: expected equal
7844      */
7845     RefPtr<ClickRecognizer> clickRecognizerPtrNotInsert = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
7846     clickRecognizerPtr->refereeState_ = RefereeState::PENDING_BLOCKED;
7847     result = gestureScope.CheckNeedBlocked(clickRecognizerPtrNotInsert);
7848     EXPECT_FALSE(result);
7849 
7850     /**
7851      * @tc.steps: step2. call Existed function and compare result
7852      * @tc.steps: case3: recognizers is empty
7853      * @tc.steps: expected equal
7854      */
7855     gestureScope.recognizers_.clear();
7856     result = gestureScope.CheckNeedBlocked(clickRecognizerPtr);
7857     EXPECT_FALSE(result);
7858 }
7859 
7860 /**
7861  * @tc.name: GestureRefereeOnAcceptGestureTest001
7862  * @tc.desc: Test GestureReferee OnAcceptGesture function
7863  */
7864 HWTEST_F(GesturesTestNg, GestureRefereeOnAcceptGestureTest001, TestSize.Level1)
7865 {
7866     /**
7867      * @tc.steps: step1. create GestureScope and clickRecognizer.
7868      */
7869     GestureScope gestureScope = GestureScope(0);
7870     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
7871     gestureScope.recognizers_.insert(gestureScope.recognizers_.end(), clickRecognizerPtr);
7872 
7873     /**
7874      * @tc.steps: step2. call OnAcceptGesture function and compare result
7875      * @tc.steps: case1: gesture == recognizer
7876      * @tc.steps: expected equal
7877      */
__anona2ace5f31902(size_t info) 7878     auto onActionStart = [](size_t info) { return; };
7879     gestureScope.queryStateFunc_ = onActionStart;
7880     gestureScope.OnAcceptGesture(clickRecognizerPtr);
7881     EXPECT_EQ(gestureScope.hasGestureAccepted_, true);
7882 
7883     /**
7884      * @tc.steps: step2. call OnAcceptGesture function and compare result
7885      * @tc.steps: case2: gesture != recognizer
7886      * @tc.steps: expected equal
7887      */
7888     RefPtr<ClickRecognizer> clickRecognizerPtrNotInsert = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
7889     gestureScope.OnAcceptGesture(clickRecognizerPtrNotInsert);
7890     EXPECT_EQ(gestureScope.hasGestureAccepted_, true);
7891 
7892     /**
7893      * @tc.steps: step2. call OnAcceptGesture function and compare result
7894      * @tc.steps: case3: recognizers is empty
7895      * @tc.steps: expected equal
7896      */
7897     gestureScope.recognizers_.clear();
7898     gestureScope.OnAcceptGesture(clickRecognizerPtr);
7899     EXPECT_EQ(gestureScope.hasGestureAccepted_, true);
7900 
7901     /**
7902      * @tc.steps: step2. call OnAcceptGesture function and compare result
7903      * @tc.steps: case4: recognizers have nullptr
7904      * @tc.steps: expected equal
7905      */
7906     gestureScope.recognizers_.insert(gestureScope.recognizers_.end(), nullptr);
7907     gestureScope.OnAcceptGesture(clickRecognizerPtr);
7908     EXPECT_EQ(gestureScope.hasGestureAccepted_, true);
7909 }
7910 
7911 /**
7912  * @tc.name: GestureRefereeTest003
7913  * @tc.desc: Test GestureReferee OnAcceptGesture function
7914  */
7915 HWTEST_F(GesturesTestNg, GestureRefereeTest003, TestSize.Level1)
7916 {
7917     /**
7918      * @tc.steps: step1. create GestureScope and clickRecognizer.
7919      */
7920     GestureScope gestureScope = GestureScope(0);
7921     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
7922     gestureScope.recognizers_.insert(gestureScope.recognizers_.end(), clickRecognizerPtr);
7923 
7924     /**
7925      * @tc.steps: step2. call OnAcceptGesture function and compare result
7926      * @tc.steps: case1: gesture == recognizer
7927      * @tc.steps: expected equal
7928      */
7929     gestureScope.OnAcceptGesture(clickRecognizerPtr);
7930     EXPECT_EQ(gestureScope.hasGestureAccepted_, true);
7931 
7932     /**
7933      * @tc.steps: step2. call OnAcceptGesture function and compare result
7934      * @tc.steps: case2: gesture != recognizer
7935      * @tc.steps: expected equal
7936      */
7937     RefPtr<ClickRecognizer> clickRecognizerPtrNotInsert = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
7938     gestureScope.OnAcceptGesture(clickRecognizerPtrNotInsert);
7939     EXPECT_EQ(gestureScope.hasGestureAccepted_, true);
7940 
7941     /**
7942      * @tc.steps: step2. call OnAcceptGesture function and compare result
7943      * @tc.steps: case3: recognizers is empty
7944      * @tc.steps: expected equal
7945      */
7946     gestureScope.recognizers_.clear();
7947     gestureScope.OnAcceptGesture(clickRecognizerPtr);
7948     EXPECT_EQ(gestureScope.hasGestureAccepted_, true);
7949 
7950     /**
7951      * @tc.steps: step2. call OnAcceptGesture function and compare result
7952      * @tc.steps: case4: recognizers have nullptr
7953      * @tc.steps: expected equal
7954      */
7955     gestureScope.recognizers_.insert(gestureScope.recognizers_.end(), nullptr);
7956     gestureScope.OnAcceptGesture(clickRecognizerPtr);
7957     EXPECT_EQ(gestureScope.hasGestureAccepted_, true);
7958 }
7959 
7960 /**
7961  * @tc.name: GestureRefereeTest004
7962  * @tc.desc: Test GestureReferee OnBlockGesture function
7963  */
7964 HWTEST_F(GesturesTestNg, GestureRefereeTest004, TestSize.Level1)
7965 {
7966     /**
7967      * @tc.steps: step1. create GestureScope and clickRecognizer.
7968      */
7969     GestureScope gestureScope = GestureScope(0);
7970     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
7971     gestureScope.recognizers_.insert(gestureScope.recognizers_.end(), clickRecognizerPtr);
7972 
7973     /**
7974      * @tc.steps: step2. call UnBlockGesture function and compare result
7975      * @tc.steps: expected equal
7976      */
7977     auto result = gestureScope.UnBlockGesture();
7978     EXPECT_EQ(result, nullptr);
7979 
7980     clickRecognizerPtr->refereeState_ = RefereeState::PENDING_BLOCKED;
7981     result = gestureScope.UnBlockGesture();
7982     EXPECT_EQ(result, clickRecognizerPtr);
7983 }
7984 
7985 /**
7986  * @tc.name: GestureRefereeTest005
7987  * @tc.desc: Test GestureReferee IsPending function
7988  */
7989 HWTEST_F(GesturesTestNg, GestureRefereeTest005, TestSize.Level1)
7990 {
7991     /**
7992      * @tc.steps: step1. create GestureScope and clickRecognizer.
7993      */
7994     GestureScope gestureScope = GestureScope(0);
7995     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
7996     gestureScope.recognizers_.insert(gestureScope.recognizers_.end(), clickRecognizerPtr);
7997 
7998     /**
7999      * @tc.steps: step2. call IsPending function and compare result
8000      * @tc.steps: expected equal
8001      */
8002     auto result = gestureScope.IsPending(0);
8003     EXPECT_EQ(result, false);
8004 
8005     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
8006     result = gestureScope.IsPending(0);
8007     EXPECT_EQ(result, true);
8008 }
8009 
8010 /**
8011  * @tc.name: GestureRefereeIsPendingTest001
8012  * @tc.desc: Test GestureReferee IsPending function
8013  */
8014 HWTEST_F(GesturesTestNg, GestureRefereeIsPendingTest001, TestSize.Level1)
8015 {
8016     /**
8017      * @tc.steps: step1. create GestureScope and clickRecognizer.
8018      */
8019     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
8020     RefPtr<ExclusiveRecognizer> exclusiveRecognizerPtr = AceType::MakeRefPtr<ExclusiveRecognizer>(recognizers);
8021     GestureScope gestureScope = GestureScope(0);
8022     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
8023     gestureScope.recognizers_.insert(gestureScope.recognizers_.end(), clickRecognizerPtr);
8024     gestureScope.recognizers_.insert(gestureScope.recognizers_.end(), exclusiveRecognizerPtr);
8025     gestureScope.recognizers_.push_back(nullptr);
8026 
8027     gestureScope.AddMember(clickRecognizerPtr);
8028     gestureScope.AddMember(exclusiveRecognizerPtr);
8029 
8030     /**
8031      * @tc.steps: step2. call IsPending function and compare result
8032      * @tc.steps: expected equal
8033      */
8034     auto result = gestureScope.IsPending(0);
8035     EXPECT_EQ(result, false);
8036 
8037     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
8038     result = gestureScope.IsPending(0);
8039     EXPECT_EQ(result, true);
8040 }
8041 
8042 /**
8043  * @tc.name: GestureRefereeTest006
8044  * @tc.desc: Test GestureReferee AddGestureToScope function
8045  */
8046 HWTEST_F(GesturesTestNg, GestureRefereeTest006, TestSize.Level1)
8047 {
8048     /**
8049      * @tc.steps: step1. create GestureReferee.
8050      */
8051     GestureReferee gestureReferee;
8052 
8053     /**
8054      * @tc.steps: step2. call AddGestureToScope function and compare result
8055      * @tc.steps: case1: cannot find touchId
8056      * @tc.steps: expected equal
8057      */
8058     TouchTestResult touchTestResult;
8059     gestureReferee.AddGestureToScope(0, touchTestResult);
8060     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 1);
8061 
8062     /**
8063      * @tc.steps: step2. call AddGestureToScope function and compare result
8064      * @tc.steps: case2: can find touchId, result is empty
8065      * @tc.steps: expected equal
8066      */
8067     gestureReferee.gestureScopes_.clear();
8068     gestureReferee.gestureScopes_[0] = AceType::MakeRefPtr<GestureScope>(0);
8069     gestureReferee.AddGestureToScope(0, touchTestResult);
8070     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 1);
8071 
8072     /**
8073      * @tc.steps: step2. call AddGestureToScope function and compare result
8074      * @tc.steps: case3: can find touchId, result have nullptr
8075      * @tc.steps: expected equal
8076      */
8077     touchTestResult.insert(touchTestResult.end(), nullptr);
8078     gestureReferee.AddGestureToScope(0, touchTestResult);
8079     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 1);
8080 
8081     /**
8082      * @tc.steps: step2. call AddGestureToScope function and compare result
8083      * @tc.steps: case4: can find touchId, result have ptr
8084      * @tc.steps: expected equal
8085      */
8086     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
8087     touchTestResult.clear();
8088     touchTestResult.insert(touchTestResult.end(), clickRecognizerPtr);
8089     gestureReferee.AddGestureToScope(0, touchTestResult);
8090     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 1);
8091 }
8092 
8093 /**
8094  * @tc.name: GestureRefereeTest007
8095  * @tc.desc: Test GestureReferee CleanGestureScope function
8096  */
8097 HWTEST_F(GesturesTestNg, GestureRefereeTest007, TestSize.Level1)
8098 {
8099     /**
8100      * @tc.steps: step1. create GestureReferee.
8101      */
8102     GestureReferee gestureReferee;
8103 
8104     /**
8105      * @tc.steps: step2. call CleanGestureScope function and compare result
8106      * @tc.steps: case1: gestureScope is empty
8107      * @tc.steps: expected equal
8108      */
8109     gestureReferee.CleanGestureScope(0);
8110     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 0);
8111 
8112     /**
8113      * @tc.steps: step2. call CleanGestureScope function and compare result
8114      * @tc.steps: case2: gestureScope is not empty, scope is not PENDING
8115      * @tc.steps: expected equal
8116      */
8117     RefPtr<GestureScope> gestureScope = AceType::MakeRefPtr<GestureScope>(0);
8118     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
8119     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED;
8120     gestureScope->recognizers_.insert(gestureScope->recognizers_.end(), clickRecognizerPtr);
8121     gestureReferee.gestureScopes_[0] = gestureScope;
8122     gestureReferee.CleanGestureScope(0);
8123     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 0);
8124 
8125     /**
8126      * @tc.steps: step2. call CleanGestureScope function and compare result
8127      * @tc.steps: case3: gestureScope is not empty, scope is PENDING
8128      * @tc.steps: expected equal
8129      */
8130     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
8131     gestureScope->recognizers_.clear();
8132     gestureScope->recognizers_.insert(gestureScope->recognizers_.end(), clickRecognizerPtr);
8133     gestureReferee.gestureScopes_[0] = gestureScope;
8134     gestureReferee.CleanGestureScope(0);
8135     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 1);
8136 }
8137 
8138 /**
8139  * @tc.name: GestureRefereeTest008
8140  * @tc.desc: Test GestureReferee AddMember function
8141  */
8142 HWTEST_F(GesturesTestNg, GestureRefereeTest008, TestSize.Level1)
8143 {
8144     /**
8145      * @tc.steps: step1. create GestureScope and clickRecognizer.
8146      */
8147     GestureScope gestureScope = GestureScope(0);
8148     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
8149     gestureScope.recognizers_.insert(gestureScope.recognizers_.end(), clickRecognizerPtr);
8150 
8151     /**
8152      * @tc.steps: step2. call AddMember function and compare result
8153      * @tc.steps: case1: is existed
8154      * @tc.steps: expected equal
8155      */
8156     gestureScope.AddMember(clickRecognizerPtr);
8157     EXPECT_EQ(gestureScope.recognizers_.size(), 1);
8158 
8159     /**
8160      * @tc.steps: step2. call AddMember function and compare result
8161      * @tc.steps: expected equal
8162      */
8163     gestureScope.recognizers_.clear();
8164     gestureScope.AddMember(clickRecognizerPtr);
8165     EXPECT_EQ(gestureScope.recognizers_.size(), 1);
8166 }
8167 
8168 /**
8169  * @tc.name: GestureRefereeTest009
8170  * @tc.desc: Test GestureReferee Close function
8171  */
8172 HWTEST_F(GesturesTestNg, GestureRefereeTest009, TestSize.Level1)
8173 {
8174     /**
8175      * @tc.steps: step1. create GestureScope and clickRecognizer.
8176      */
8177     GestureScope gestureScope = GestureScope(0);
8178     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
8179     gestureScope.recognizers_.insert(gestureScope.recognizers_.end(), clickRecognizerPtr);
8180 
8181     /**
8182      * @tc.steps: step2. call Close function and compare result
8183      * @tc.steps: case1: have ptr
8184      * @tc.steps: expected equal
8185      */
8186     gestureScope.Close();
8187     EXPECT_EQ(gestureScope.recognizers_.size(), 1);
8188 
8189     /**
8190      * @tc.steps: step2. call OnAcceptGesture function and compare result
8191      * @tc.steps: case2: recognizers_ is empty
8192      * @tc.steps: expected equal
8193      */
8194     gestureScope.recognizers_.clear();
8195     gestureScope.Close();
8196     EXPECT_EQ(gestureScope.recognizers_.size(), 0);
8197 
8198     /**
8199      * @tc.steps: step2. call OnAcceptGesture function and compare result
8200      * @tc.steps: case3: recognizers_ have nullptr
8201      * @tc.steps: expected equal
8202      */
8203     gestureScope.recognizers_.insert(gestureScope.recognizers_.end(), nullptr);
8204     gestureScope.Close();
8205     EXPECT_EQ(gestureScope.recognizers_.size(), 1);
8206 }
8207 
8208 /**
8209  * @tc.name: GestureRefereeTest010
8210  * @tc.desc: Test GestureReferee Adjudicate function
8211  */
8212 HWTEST_F(GesturesTestNg, GestureRefereeTest010, TestSize.Level1)
8213 {
8214     /**
8215      * @tc.steps: step1. create GestureScope and clickRecognizer.
8216      */
8217     GestureReferee gestureReferee;
8218     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
8219 
8220     /**
8221      * @tc.steps: step2. call Adjudicate function and compare result
8222      * @tc.steps: case1: disposal is ACCEPT
8223      * @tc.steps: expected equal
8224      */
8225     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED;
8226     gestureReferee.Adjudicate(clickRecognizerPtr, GestureDisposal::ACCEPT);
8227     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 0);
8228 
8229     /**
8230      * @tc.steps: step2. call Adjudicate function and compare result
8231      * @tc.steps: case2: disposal is PENDING
8232      * @tc.steps: expected equal
8233      */
8234     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED;
8235     gestureReferee.Adjudicate(clickRecognizerPtr, GestureDisposal::PENDING);
8236     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 0);
8237 
8238     /**
8239      * @tc.steps: step2. call Adjudicate function and compare result
8240      * @tc.steps: case3: disposal is REJECT
8241      * @tc.steps: expected equal
8242      */
8243     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED;
8244     gestureReferee.Adjudicate(clickRecognizerPtr, GestureDisposal::REJECT);
8245     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 0);
8246 
8247     /**
8248      * @tc.steps: step2. call Adjudicate function and compare result
8249      * @tc.steps: case4: disposal is NONE
8250      * @tc.steps: expected equal
8251      */
8252     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED;
8253     gestureReferee.Adjudicate(clickRecognizerPtr, GestureDisposal::NONE);
8254     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 0);
8255 }
8256 
8257 /**
8258  * @tc.name: GestureRefereeTest011
8259  * @tc.desc: Test GestureReferee HandleAcceptDisposal function
8260  */
8261 HWTEST_F(GesturesTestNg, GestureRefereeTest011, TestSize.Level1)
8262 {
8263     /**
8264      * @tc.steps: step1. create GestureScope and clickRecognizer.
8265      */
8266     GestureReferee gestureReferee;
8267     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
8268 
8269     /**
8270      * @tc.steps: step2. call Adjudicate function and compare result
8271      * @tc.steps: case1: refereeState is SUCCEED
8272      * @tc.steps: expected equal
8273      */
8274     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED;
8275     gestureReferee.HandleAcceptDisposal(clickRecognizerPtr);
8276     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 0);
8277 
8278     /**
8279      * @tc.steps: step2. call Adjudicate function and compare result
8280      * @tc.steps: case2: refereeState is PENDING, gestureScopes_ is empty
8281      * @tc.steps: expected equal
8282      */
8283     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
8284     gestureReferee.HandleAcceptDisposal(clickRecognizerPtr);
8285     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 0);
8286 
8287     /**
8288      * @tc.steps: step2. call Adjudicate function and compare result
8289      * @tc.steps: case3: refereeState is PENDING, gestureScopes_ is not empty
8290      * @tc.steps: expected equal
8291      */
8292     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
8293     RefPtr<GestureScope> gestureScope = AceType::MakeRefPtr<GestureScope>(0);
8294     gestureScope->recognizers_.insert(gestureScope->recognizers_.end(), clickRecognizerPtr);
8295     gestureReferee.gestureScopes_[0] = gestureScope;
8296     gestureReferee.HandleAcceptDisposal(clickRecognizerPtr);
8297     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 1);
8298 
8299     /**
8300      * @tc.steps: step2. call Adjudicate function and compare result
8301      * @tc.steps: case4: refereeState is PENDING, gestureScopes_ is not empty, isDelay
8302      * @tc.steps: expected equal
8303      */
8304     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
8305     gestureScope->isDelay_ = true;
8306     gestureReferee.gestureScopes_[0] = gestureScope;
8307     gestureReferee.HandleAcceptDisposal(clickRecognizerPtr);
8308     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 0);
8309 
8310     /**
8311      * @tc.steps: step2. call Adjudicate function and compare result
8312      * @tc.steps: case5: refereeState is PENDING, gestureScopes_ is not empty, !isDelay
8313      * @tc.steps: expected equal
8314      */
8315     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
8316     gestureScope->isDelay_ = false;
8317     gestureReferee.gestureScopes_[0] = gestureScope;
8318     gestureReferee.HandleAcceptDisposal(clickRecognizerPtr);
8319     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 1);
8320 
8321     /**
8322      * @tc.steps: step2. call Adjudicate function and compare result
8323      * @tc.steps: case6: refereeState is FAIL
8324      * @tc.steps: expected equal
8325      */
8326     clickRecognizerPtr->refereeState_ = RefereeState::FAIL;
8327     gestureReferee.HandleAcceptDisposal(clickRecognizerPtr);
8328     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 1);
8329 }
8330 
8331 /**
8332  * @tc.name: GestureRefereeHandleRejectDisposalTest001
8333  * @tc.desc: Test GestureReferee HandleRejectDisposal function
8334  */
8335 HWTEST_F(GesturesTestNg, GestureRefereeHandleRejectDisposalTest001, TestSize.Level1)
8336 {
8337     /**
8338      * @tc.steps: step1. create GestureScope and clickRecognizer.
8339      */
8340     GestureReferee gestureReferee;
8341     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
8342     RefPtr<ClickRecognizer> clickRecognizerPtr2 = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
8343     clickRecognizerPtr2->refereeState_ = RefereeState::PENDING;
8344 
8345     /**
8346      * @tc.steps: step2. call Adjudicate function and compare result
8347      * @tc.steps: case1: refereeState is FAIL
8348      * @tc.steps: expected equal
8349      */
8350     clickRecognizerPtr->refereeState_ = RefereeState::PENDING_BLOCKED;
8351     gestureReferee.HandleRejectDisposal(clickRecognizerPtr);
8352     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 0);
8353 
8354     /**
8355      * @tc.steps: step2. call Adjudicate function and compare result
8356      * @tc.steps: case2: refereeState is PENDING, gestureScopes_ is empty
8357      * @tc.steps: expected equal
8358      */
8359     clickRecognizerPtr->refereeState_ = RefereeState::PENDING_BLOCKED;
8360     gestureReferee.HandleRejectDisposal(clickRecognizerPtr);
8361     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 0);
8362 
8363     /**
8364      * @tc.steps: step2. call Adjudicate function and compare result
8365      * @tc.steps: case3: refereeState is PENDING, gestureScopes_ is not empty
8366      * @tc.steps: expected equal
8367      */
8368     clickRecognizerPtr->refereeState_ = RefereeState::PENDING_BLOCKED;
8369     RefPtr<GestureScope> gestureScope = AceType::MakeRefPtr<GestureScope>(0);
8370     gestureScope->recognizers_.insert(gestureScope->recognizers_.end(), clickRecognizerPtr);
8371     gestureReferee.gestureScopes_[0] = gestureScope;
8372     gestureScope->AddMember(clickRecognizerPtr);
8373     gestureReferee.HandleRejectDisposal(clickRecognizerPtr2);
8374     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 1);
8375 
8376     /**
8377      * @tc.steps: step2. call Adjudicate function and compare result
8378      * @tc.steps: case4: refereeState is PENDING_BLOCKED, gestureScopes_ is not empty
8379      * @tc.steps: expected equal
8380      */
8381     clickRecognizerPtr->refereeState_ = RefereeState::PENDING_BLOCKED;
8382     gestureScope->recognizers_.clear();
8383     gestureScope->recognizers_.insert(gestureScope->recognizers_.end(), clickRecognizerPtr);
8384     gestureReferee.gestureScopes_[0] = gestureScope;
8385     gestureScope->AddMember(clickRecognizerPtr);
8386     gestureReferee.HandleRejectDisposal(clickRecognizerPtr2);
8387     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 1);
8388 
8389     /**
8390      * @tc.steps: step2. call Adjudicate function and compare result
8391      * @tc.steps: case5: refereeState is SUCCEED_BLOCKED, gestureScopes_ is not empty
8392      * @tc.steps: expected equal
8393      */
8394     clickRecognizerPtr->refereeState_ = RefereeState::PENDING_BLOCKED;
8395     gestureScope->recognizers_.clear();
8396     gestureScope->recognizers_.insert(gestureScope->recognizers_.end(), clickRecognizerPtr);
8397     gestureReferee.gestureScopes_[0] = gestureScope;
8398     gestureScope->AddMember(clickRecognizerPtr);
8399     gestureReferee.HandleRejectDisposal(clickRecognizerPtr2);
8400     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 1);
8401 
8402     /**
8403      * @tc.steps: step2. call Adjudicate function and compare result
8404      * @tc.steps: case6: refereeState is PENDING, gestureScopes_ is not empty, isDelay
8405      * @tc.steps: expected equal
8406      */
8407     clickRecognizerPtr->refereeState_ = RefereeState::PENDING_BLOCKED;
8408     gestureScope->recognizers_.clear();
8409     gestureScope->recognizers_.insert(gestureScope->recognizers_.end(), clickRecognizerPtr);
8410     gestureScope->isDelay_ = true;
8411     gestureReferee.gestureScopes_[0] = gestureScope;
8412     gestureScope->AddMember(clickRecognizerPtr);
8413     gestureReferee.HandleRejectDisposal(clickRecognizerPtr2);
8414     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 1);
8415 
8416     /**
8417      * @tc.steps: step2. call Adjudicate function and compare result
8418      * @tc.steps: case7: refereeState is PENDING, gestureScopes_ is not empty, isDelay
8419      * @tc.steps: expected equal
8420      */
8421     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED_BLOCKED;
8422     gestureScope->recognizers_.clear();
8423     gestureScope->recognizers_.insert(gestureScope->recognizers_.end(), clickRecognizerPtr);
8424     gestureScope->isDelay_ = false;
8425     gestureReferee.gestureScopes_[0] = gestureScope;
8426     gestureScope->AddMember(clickRecognizerPtr);
8427     gestureReferee.HandleRejectDisposal(clickRecognizerPtr2);
8428     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 1);
8429 }
8430 
8431 /**
8432  * @tc.name: GestureRefereeHandleRejectDisposalTest002
8433  * @tc.desc: Test GestureReferee HandleRejectDisposal function
8434  */
8435 HWTEST_F(GesturesTestNg, GestureRefereeHandleRejectDisposalTest002, TestSize.Level1)
8436 {
8437     /**
8438      * @tc.steps: step1. create GestureScope and clickRecognizer.
8439      */
8440     GestureReferee gestureReferee;
8441     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
8442     RefPtr<ClickRecognizer> clickRecognizerPtr2 = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
8443     clickRecognizerPtr2->refereeState_ = RefereeState::PENDING;
8444 
8445     /**
8446      * @tc.steps: step2. call Adjudicate function and compare result
8447      * @tc.steps: case1: refereeState is FAIL
8448      * @tc.steps: expected equal
8449      */
8450     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED_BLOCKED;
8451     gestureReferee.HandleRejectDisposal(clickRecognizerPtr);
8452     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 0);
8453 
8454     /**
8455      * @tc.steps: step2. call Adjudicate function and compare result
8456      * @tc.steps: case2: refereeState is PENDING, gestureScopes_ is empty
8457      * @tc.steps: expected equal
8458      */
8459     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED_BLOCKED;
8460     gestureReferee.HandleRejectDisposal(clickRecognizerPtr);
8461     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 0);
8462 
8463     /**
8464      * @tc.steps: step2. call Adjudicate function and compare result
8465      * @tc.steps: case3: refereeState is PENDING, gestureScopes_ is not empty
8466      * @tc.steps: expected equal
8467      */
8468     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED_BLOCKED;
8469     RefPtr<GestureScope> gestureScope = AceType::MakeRefPtr<GestureScope>(0);
8470     gestureScope->recognizers_.insert(gestureScope->recognizers_.end(), clickRecognizerPtr);
8471     gestureReferee.gestureScopes_[0] = gestureScope;
8472     gestureScope->AddMember(clickRecognizerPtr);
8473     gestureReferee.HandleRejectDisposal(clickRecognizerPtr2);
8474     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 1);
8475 
8476     /**
8477      * @tc.steps: step2. call Adjudicate function and compare result
8478      * @tc.steps: case4: refereeState is PENDING_BLOCKED, gestureScopes_ is not empty
8479      * @tc.steps: expected equal
8480      */
8481     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED_BLOCKED;
8482     gestureScope->recognizers_.clear();
8483     gestureScope->recognizers_.insert(gestureScope->recognizers_.end(), clickRecognizerPtr);
8484     gestureReferee.gestureScopes_[0] = gestureScope;
8485     gestureScope->AddMember(clickRecognizerPtr);
8486     gestureReferee.HandleRejectDisposal(clickRecognizerPtr2);
8487     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 1);
8488 
8489     /**
8490      * @tc.steps: step2. call Adjudicate function and compare result
8491      * @tc.steps: case5: refereeState is SUCCEED_BLOCKED, gestureScopes_ is not empty
8492      * @tc.steps: expected equal
8493      */
8494     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED_BLOCKED;
8495     gestureScope->recognizers_.clear();
8496     gestureScope->recognizers_.insert(gestureScope->recognizers_.end(), clickRecognizerPtr);
8497     gestureReferee.gestureScopes_[0] = gestureScope;
8498     gestureScope->AddMember(clickRecognizerPtr);
8499     gestureReferee.HandleRejectDisposal(clickRecognizerPtr2);
8500     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 1);
8501 
8502     /**
8503      * @tc.steps: step2. call Adjudicate function and compare result
8504      * @tc.steps: case6: refereeState is PENDING, gestureScopes_ is not empty, isDelay
8505      * @tc.steps: expected equal
8506      */
8507     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED_BLOCKED;
8508     gestureScope->recognizers_.clear();
8509     gestureScope->recognizers_.insert(gestureScope->recognizers_.end(), clickRecognizerPtr);
8510     gestureScope->isDelay_ = true;
8511     gestureReferee.gestureScopes_[0] = gestureScope;
8512     gestureScope->AddMember(clickRecognizerPtr);
8513     gestureReferee.HandleRejectDisposal(clickRecognizerPtr2);
8514     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 1);
8515 
8516     /**
8517      * @tc.steps: step2. call Adjudicate function and compare result
8518      * @tc.steps: case7: refereeState is PENDING, gestureScopes_ is not empty, isDelay
8519      * @tc.steps: expected equal
8520      */
8521     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED_BLOCKED;
8522     gestureScope->recognizers_.clear();
8523     gestureScope->recognizers_.insert(gestureScope->recognizers_.end(), clickRecognizerPtr);
8524     gestureScope->isDelay_ = false;
8525     gestureReferee.gestureScopes_[0] = gestureScope;
8526     gestureScope->AddMember(clickRecognizerPtr);
8527     gestureReferee.HandleRejectDisposal(clickRecognizerPtr2);
8528     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 1);
8529 }
8530 
8531 /**
8532  * @tc.name: GestureRefereeHandlePendingDisposalTest012
8533  * @tc.desc: Test GestureReferee HandlePendingDisposal function
8534  */
8535 HWTEST_F(GesturesTestNg, GestureRefereeHandlePendingDisposalTest012, TestSize.Level1)
8536 {
8537     /**
8538      * @tc.steps: step1. create GestureScope and clickRecognizer.
8539      */
8540     GestureReferee gestureReferee;
8541     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
8542     RefPtr<ClickRecognizer> clickRecognizerPtr2 = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
8543 
8544     /**
8545      * @tc.steps: step2. call Adjudicate function and compare result
8546      * @tc.steps: case1: refereeState is PENDING
8547      * @tc.steps: expected equal
8548      */
8549     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
8550     gestureReferee.HandlePendingDisposal(clickRecognizerPtr);
8551     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 0);
8552 
8553     /**
8554      * @tc.steps: step2. call Adjudicate function and compare result
8555      * @tc.steps: case2: refereeState is SUCCEED, gestureScopes_ is empty
8556      * @tc.steps: expected equal
8557      */
8558     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED;
8559     gestureReferee.HandlePendingDisposal(clickRecognizerPtr);
8560     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 0);
8561 
8562     /**
8563      * @tc.steps: step2. call Adjudicate function and compare result
8564      * @tc.steps: case3: refereeState is SUCCEED, gestureScopes_ is not empty
8565      * @tc.steps: expected equal
8566      */
8567     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
8568     RefPtr<GestureScope> gestureScope = AceType::MakeRefPtr<GestureScope>(0);
8569     gestureScope->recognizers_.insert(gestureScope->recognizers_.end(), clickRecognizerPtr);
8570     gestureReferee.gestureScopes_[0] = gestureScope;
8571     gestureReferee.HandlePendingDisposal(clickRecognizerPtr2);
8572     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 1);
8573 }
8574 
8575 /**
8576  * @tc.name: GestureRefereeTestHandleAcceptDisposal005
8577  * @tc.desc: Test GestureReferee HandleAcceptDisposal function
8578  */
8579 HWTEST_F(GesturesTestNg, GestureRefereeTestHandleAcceptDisposal005, TestSize.Level1)
8580 {
8581     /**
8582      * @tc.steps: step1. create GestureScope and clickRecognizer.
8583      */
8584     GestureReferee gestureReferee;
8585     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
8586     RefPtr<ClickRecognizer> clickRecognizerPtr2 = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
8587 
8588     /**
8589      * @tc.steps: step2. call Adjudicate function and compare result
8590      * @tc.steps: case1: refereeState is PENDING
8591      * @tc.steps: expected equal
8592      */
8593     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
8594     gestureReferee.HandleAcceptDisposal(clickRecognizerPtr2);
8595     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 0);
8596 
8597     /**
8598      * @tc.steps: step2. call Adjudicate function and compare result
8599      * @tc.steps: case2: refereeState is SUCCEED, gestureScopes_ is empty
8600      * @tc.steps: expected equal
8601      */
8602     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED;
8603     gestureReferee.HandleAcceptDisposal(clickRecognizerPtr2);
8604     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 0);
8605 
8606     /**
8607      * @tc.steps: step2. call Adjudicate function and compare result
8608      * @tc.steps: case3: refereeState is SUCCEED, gestureScopes_ is not empty
8609      * @tc.steps: expected equal
8610      */
8611     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
8612     RefPtr<GestureScope> gestureScope = AceType::MakeRefPtr<GestureScope>(0);
8613     gestureScope->recognizers_.clear();
8614     gestureScope->recognizers_.insert(gestureScope->recognizers_.end(), clickRecognizerPtr);
8615     gestureScope->AddMember(clickRecognizerPtr);
8616     gestureReferee.gestureScopes_[0] = gestureScope;
8617     gestureReferee.HandleAcceptDisposal(clickRecognizerPtr2);
8618     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 1);
8619 }
8620 
8621 /**
8622  * @tc.name: GestureRefereeHandleAcceptDisposalTest006
8623  * @tc.desc: Test GestureReferee HandleAcceptDisposal function
8624  */
8625 HWTEST_F(GesturesTestNg, GestureRefereeHandleAcceptDisposalTest006, TestSize.Level1)
8626 {
8627     /**
8628      * @tc.steps: step1. create GestureScope and clickRecognizer.
8629      */
8630     GestureReferee gestureReferee;
8631     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
8632     RefPtr<ClickRecognizer> clickRecognizerPtr2 = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
8633 
8634     /**
8635      * @tc.steps: step2. call Adjudicate function and compare result
8636      * @tc.steps: case1: refereeState is PENDING
8637      * @tc.steps: expected equal
8638      */
8639     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
8640     gestureReferee.HandleAcceptDisposal(clickRecognizerPtr);
8641     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 0);
8642 
8643     /**
8644      * @tc.steps: step2. call Adjudicate function and compare result
8645      * @tc.steps: case2: refereeState is SUCCEED, gestureScopes_ is empty
8646      * @tc.steps: expected equal
8647      */
8648     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED;
8649     gestureReferee.HandleAcceptDisposal(clickRecognizerPtr);
8650     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 0);
8651 
8652     /**
8653      * @tc.steps: step2. call Adjudicate function and compare result
8654      * @tc.steps: case3: refereeState is SUCCEED, gestureScopes_ is not empty
8655      * @tc.steps: expected equal
8656      */
8657     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
8658     RefPtr<GestureScope> gestureScope = AceType::MakeRefPtr<GestureScope>(0);
8659     gestureScope->recognizers_.insert(gestureScope->recognizers_.end(), clickRecognizerPtr);
8660     gestureReferee.gestureScopes_[0] = gestureScope;
8661     gestureReferee.HandleAcceptDisposal(clickRecognizerPtr2);
8662     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 1);
8663 }
8664 
8665 /**
8666  * @tc.name: GestureRefereeHandleAcceptDisposalTest001
8667  * @tc.desc: Test GestureReferee HandleAcceptDisposal function
8668  */
8669 HWTEST_F(GesturesTestNg, GestureRefereeHandleAcceptDisposalTest001, TestSize.Level1)
8670 {
8671     /**
8672      * @tc.steps: step1. create GestureScope and clickRecognizer.
8673      */
8674     GestureReferee gestureReferee;
8675     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
8676     RefPtr<ClickRecognizer> clickRecognizerPtr2 = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
8677 
8678     /**
8679      * @tc.steps: step2. call Adjudicate function and compare result
8680      * @tc.steps: case1: refereeState is SUCCEED
8681      * @tc.steps: expected equal
8682      */
8683     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED;
8684     gestureReferee.HandleAcceptDisposal(clickRecognizerPtr2);
8685     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 0);
8686 
8687     /**
8688      * @tc.steps: step2. call Adjudicate function and compare result
8689      * @tc.steps: case2: refereeState is PENDING, gestureScopes_ is empty
8690      * @tc.steps: expected equal
8691      */
8692     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
8693     gestureReferee.HandleAcceptDisposal(clickRecognizerPtr2);
8694     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 0);
8695 
8696     /**
8697      * @tc.steps: step2. call Adjudicate function and compare result
8698      * @tc.steps: case3: refereeState is PENDING, gestureScopes_ is not empty
8699      * @tc.steps: expected equal
8700      */
8701     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
8702     RefPtr<GestureScope> gestureScope = AceType::MakeRefPtr<GestureScope>(0);
8703     gestureScope->recognizers_.clear();
8704     gestureScope->recognizers_.insert(gestureScope->recognizers_.end(), clickRecognizerPtr);
8705     gestureScope->AddMember(clickRecognizerPtr);
8706     gestureReferee.gestureScopes_[0] = gestureScope;
8707     gestureReferee.HandleAcceptDisposal(clickRecognizerPtr2);
8708     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 1);
8709 
8710     /**
8711      * @tc.steps: step2. call Adjudicate function and compare result
8712      * @tc.steps: case4: refereeState is PENDING, gestureScopes_ is not empty, isDelay
8713      * @tc.steps: expected equal
8714      */
8715     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
8716     gestureScope->isDelay_ = true;
8717     gestureScope->recognizers_.clear();
8718     gestureScope->AddMember(clickRecognizerPtr);
8719     gestureReferee.gestureScopes_[0] = gestureScope;
8720     gestureReferee.HandleAcceptDisposal(clickRecognizerPtr2);
8721     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 1);
8722 
8723     /**
8724      * @tc.steps: step2. call Adjudicate function and compare result
8725      * @tc.steps: case5: refereeState is PENDING, gestureScopes_ is not empty, !isDelay
8726      * @tc.steps: expected equal
8727      */
8728     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
8729     gestureScope->isDelay_ = false;
8730     gestureReferee.gestureScopes_[0] = gestureScope;
8731     gestureReferee.HandleAcceptDisposal(clickRecognizerPtr2);
8732     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 1);
8733 
8734     /**
8735      * @tc.steps: step2. call Adjudicate function and compare result
8736      * @tc.steps: case6: refereeState is FAIL
8737      * @tc.steps: expected equal
8738      */
8739     clickRecognizerPtr->refereeState_ = RefereeState::FAIL;
8740     gestureReferee.HandleAcceptDisposal(clickRecognizerPtr2);
8741     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 1);
8742 }
8743 
8744 /**
8745  * @tc.name: GestureRefereeTestHandlePendingDisposal001
8746  * @tc.desc: Test GestureReferee HandlePendingDisposal function
8747  */
8748 HWTEST_F(GesturesTestNg, GestureRefereeTestHandlePendingDisposal001, TestSize.Level1)
8749 {
8750     /**
8751      * @tc.steps: step1. create GestureScope and clickRecognizer.
8752      */
8753     GestureReferee gestureReferee;
8754     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
8755     RefPtr<ClickRecognizer> clickRecognizerPtr2 = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
8756 
8757     /**
8758      * @tc.steps: step2. call Adjudicate function and compare result
8759      * @tc.steps: case1: refereeState is PENDING
8760      * @tc.steps: expected equal
8761      */
8762     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
8763     gestureReferee.HandlePendingDisposal(clickRecognizerPtr2);
8764     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 0);
8765 
8766     /**
8767      * @tc.steps: step2. call Adjudicate function and compare result
8768      * @tc.steps: case2: refereeState is SUCCEED, gestureScopes_ is empty
8769      * @tc.steps: expected equal
8770      */
8771     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED;
8772     gestureReferee.HandlePendingDisposal(clickRecognizerPtr2);
8773     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 0);
8774 
8775     /**
8776      * @tc.steps: step2. call Adjudicate function and compare result
8777      * @tc.steps: case3: refereeState is SUCCEED, gestureScopes_ is not empty
8778      * @tc.steps: expected equal
8779      */
8780     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
8781     RefPtr<GestureScope> gestureScope = AceType::MakeRefPtr<GestureScope>(0);
8782     gestureScope->recognizers_.clear();
8783     gestureScope->recognizers_.insert(gestureScope->recognizers_.end(), clickRecognizerPtr);
8784     gestureScope->AddMember(clickRecognizerPtr);
8785     gestureReferee.gestureScopes_[0] = gestureScope;
8786     gestureReferee.HandlePendingDisposal(clickRecognizerPtr2);
8787     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 1);
8788 }
8789 
8790 /**
8791  * @tc.name: GestureRefereeTest012
8792  * @tc.desc: Test GestureReferee HandlePendingDisposal function
8793  */
8794 HWTEST_F(GesturesTestNg, GestureRefereeTest012, TestSize.Level1)
8795 {
8796     /**
8797      * @tc.steps: step1. create GestureScope and clickRecognizer.
8798      */
8799     GestureReferee gestureReferee;
8800     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
8801 
8802     /**
8803      * @tc.steps: step2. call Adjudicate function and compare result
8804      * @tc.steps: case1: refereeState is PENDING
8805      * @tc.steps: expected equal
8806      */
8807     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
8808     gestureReferee.HandlePendingDisposal(clickRecognizerPtr);
8809     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 0);
8810 
8811     /**
8812      * @tc.steps: step2. call Adjudicate function and compare result
8813      * @tc.steps: case2: refereeState is SUCCEED, gestureScopes_ is empty
8814      * @tc.steps: expected equal
8815      */
8816     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED;
8817     gestureReferee.HandlePendingDisposal(clickRecognizerPtr);
8818     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 0);
8819 
8820     /**
8821      * @tc.steps: step2. call Adjudicate function and compare result
8822      * @tc.steps: case3: refereeState is SUCCEED, gestureScopes_ is not empty
8823      * @tc.steps: expected equal
8824      */
8825     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED;
8826     RefPtr<GestureScope> gestureScope = AceType::MakeRefPtr<GestureScope>(0);
8827     gestureScope->recognizers_.insert(gestureScope->recognizers_.end(), clickRecognizerPtr);
8828     gestureReferee.gestureScopes_[0] = gestureScope;
8829     gestureReferee.HandlePendingDisposal(clickRecognizerPtr);
8830     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 1);
8831 }
8832 
8833 /**
8834  * @tc.name: GestureRefereeTest013
8835  * @tc.desc: Test GestureReferee HandleRejectDisposal function
8836  */
8837 HWTEST_F(GesturesTestNg, GestureRefereeTest013, TestSize.Level1)
8838 {
8839     /**
8840      * @tc.steps: step1. create GestureScope and clickRecognizer.
8841      */
8842     GestureReferee gestureReferee;
8843     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
8844     RefPtr<ClickRecognizer> clickRecognizerPtr2 = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
8845 
8846     /**
8847      * @tc.steps: step2. call Adjudicate function and compare result
8848      * @tc.steps: case1: refereeState is FAIL
8849      * @tc.steps: expected equal
8850      */
8851     clickRecognizerPtr->refereeState_ = RefereeState::FAIL;
8852     gestureReferee.HandleRejectDisposal(clickRecognizerPtr);
8853     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 0);
8854 
8855     /**
8856      * @tc.steps: step2. call Adjudicate function and compare result
8857      * @tc.steps: case2: refereeState is PENDING, gestureScopes_ is empty
8858      * @tc.steps: expected equal
8859      */
8860     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
8861     gestureReferee.HandleRejectDisposal(clickRecognizerPtr);
8862     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 0);
8863 
8864     /**
8865      * @tc.steps: step2. call Adjudicate function and compare result
8866      * @tc.steps: case3: refereeState is PENDING, gestureScopes_ is not empty
8867      * @tc.steps: expected equal
8868      */
8869     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
8870     RefPtr<GestureScope> gestureScope = AceType::MakeRefPtr<GestureScope>(0);
8871     gestureScope->recognizers_.insert(gestureScope->recognizers_.end(), clickRecognizerPtr);
8872     gestureReferee.gestureScopes_[0] = gestureScope;
8873     gestureReferee.HandleRejectDisposal(clickRecognizerPtr);
8874     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 1);
8875 
8876     /**
8877      * @tc.steps: step2. call Adjudicate function and compare result
8878      * @tc.steps: case4: refereeState is PENDING_BLOCKED, gestureScopes_ is not empty
8879      * @tc.steps: expected equal
8880      */
8881     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
8882     gestureScope->recognizers_.clear();
8883     gestureScope->recognizers_.insert(gestureScope->recognizers_.end(), clickRecognizerPtr);
8884     gestureReferee.gestureScopes_[0] = gestureScope;
8885     gestureReferee.HandleRejectDisposal(clickRecognizerPtr2);
8886     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 1);
8887 
8888     /**
8889      * @tc.steps: step2. call Adjudicate function and compare result
8890      * @tc.steps: case5: refereeState is SUCCEED_BLOCKED, gestureScopes_ is not empty
8891      * @tc.steps: expected equal
8892      */
8893     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
8894     gestureScope->recognizers_.clear();
8895     gestureScope->recognizers_.insert(gestureScope->recognizers_.end(), clickRecognizerPtr);
8896     gestureReferee.gestureScopes_[0] = gestureScope;
8897     gestureReferee.HandleRejectDisposal(clickRecognizerPtr2);
8898     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 1);
8899 
8900     /**
8901      * @tc.steps: step2. call Adjudicate function and compare result
8902      * @tc.steps: case6: refereeState is PENDING, gestureScopes_ is not empty, isDelay
8903      * @tc.steps: expected equal
8904      */
8905     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
8906     gestureScope->recognizers_.clear();
8907     gestureScope->recognizers_.insert(gestureScope->recognizers_.end(), clickRecognizerPtr);
8908     gestureScope->isDelay_ = true;
8909     gestureReferee.gestureScopes_[0] = gestureScope;
8910     gestureReferee.HandleRejectDisposal(clickRecognizerPtr);
8911     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 0);
8912 
8913     /**
8914      * @tc.steps: step2. call Adjudicate function and compare result
8915      * @tc.steps: case7: refereeState is PENDING, gestureScopes_ is not empty, isDelay
8916      * @tc.steps: expected equal
8917      */
8918     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
8919     gestureScope->recognizers_.clear();
8920     gestureScope->recognizers_.insert(gestureScope->recognizers_.end(), clickRecognizerPtr);
8921     gestureScope->isDelay_ = false;
8922     gestureReferee.gestureScopes_[0] = gestureScope;
8923     gestureReferee.HandleRejectDisposal(clickRecognizerPtr);
8924     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 1);
8925 }
8926 
8927 /**
8928  * @tc.name: GestureRefereeTest014
8929  * @tc.desc: Test GestureReferee HasGestureAccepted function
8930  */
8931 HWTEST_F(GesturesTestNg, GestureRefereeTest014, TestSize.Level1)
8932 {
8933     /**
8934      * @tc.steps: step1. create GestureScope and clickRecognizer.
8935      */
8936     GestureReferee gestureReferee;
8937     bool result = false;
8938 
8939     /**
8940      * @tc.steps: step2. call Adjudicate function and compare result
8941      * @tc.steps: case1: gestureScopes_ is not empty
8942      * @tc.steps: expected equal
8943      */
8944     RefPtr<GestureScope> gestureScope = AceType::MakeRefPtr<GestureScope>(0);
8945     gestureReferee.gestureScopes_[0] = gestureScope;
8946     result = gestureReferee.HasGestureAccepted(0);
8947     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 1);
8948     EXPECT_EQ(result, false);
8949 
8950     /**
8951      * @tc.steps: step2. call Adjudicate function and compare result
8952      * @tc.steps: case1: gestureScopes_ is empty
8953      * @tc.steps: expected equal
8954      */
8955     gestureReferee.gestureScopes_.clear();
8956     result = gestureReferee.HasGestureAccepted(0);
8957     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 0);
8958     EXPECT_EQ(result, false);
8959 }
8960 
8961 /**
8962  * @tc.name: GestureRefereeTest015
8963  * @tc.desc: Test GestureReferee QueryAllDone function
8964  */
8965 HWTEST_F(GesturesTestNg, GestureRefereeTest015, TestSize.Level1)
8966 {
8967     /**
8968      * @tc.steps: step1. create GestureScope and clickRecognizer.
8969      */
8970     GestureScope gestureScope = GestureScope(0);
8971     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
8972     gestureScope.recognizers_.insert(gestureScope.recognizers_.end(), clickRecognizerPtr);
8973 
8974     /**
8975      * @tc.steps: step2. call QueryAllDone function
8976      * @tc.steps: expected equal
8977      */
8978     gestureScope.AddMember(clickRecognizerPtr);
8979     EXPECT_EQ(gestureScope.recognizers_.size(), 1);
8980     gestureScope.QueryAllDone(0);
8981 
8982     /**
8983      * @tc.steps: step2. call QueryAllDone function
8984      * @tc.steps: expected equal
8985      */
8986     gestureScope.recognizers_.clear();
8987     gestureScope.AddMember(clickRecognizerPtr);
8988     EXPECT_EQ(gestureScope.recognizers_.size(), 1);
8989     gestureScope.QueryAllDone(1);
8990 }
8991 
8992 /**
8993  * @tc.name: GestureRefereeTest016
8994  * @tc.desc: Test GestureReferee QueryAllDone function
8995  */
8996 HWTEST_F(GesturesTestNg, GestureRefereeTest016, TestSize.Level1)
8997 {
8998     /**
8999      * @tc.steps: step1. create GestureScope and clickRecognizer.
9000      */
9001     GestureReferee gestureReferee;
9002     bool result = false;
9003 
9004     /**
9005      * @tc.steps: step2. call QueryAllDone function
9006      * @tc.steps: expected equal
9007      */
9008     RefPtr<GestureScope> gestureScope = AceType::MakeRefPtr<GestureScope>(0);
9009     gestureReferee.gestureScopes_[0] = gestureScope;
9010     result = gestureReferee.QueryAllDone(0);
9011     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 1);
9012     EXPECT_EQ(result, true);
9013 }
9014 
9015 /**
9016  * @tc.name: GestureRefereeQueryAllDoneTest001
9017  * @tc.desc: Test GestureReferee QueryAllDone function
9018  */
9019 HWTEST_F(GesturesTestNg, GestureRefereeQueryAllDoneTest001, TestSize.Level1)
9020 {
9021     /**
9022      * @tc.steps: step1. create GestureScope and clickRecognizer.
9023      */
9024     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
9025     RefPtr<ExclusiveRecognizer> exclusiveRecognizerPtr = AceType::MakeRefPtr<ExclusiveRecognizer>(recognizers);
9026 
9027     GestureScope gestureScope = GestureScope(0);
9028     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
9029     RefPtr<ClickRecognizer> clickRecognizerPtr2 = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
9030     clickRecognizerPtr2->refereeState_ = RefereeState::PENDING_BLOCKED;
9031 
9032     gestureScope.recognizers_.insert(gestureScope.recognizers_.end(), clickRecognizerPtr);
9033     gestureScope.recognizers_.insert(gestureScope.recognizers_.end(), exclusiveRecognizerPtr);
9034     gestureScope.recognizers_.push_back(nullptr);
9035 
9036     /**
9037      * @tc.steps: step2. call QueryAllDone function
9038      * @tc.steps: expected equal
9039      */
9040     gestureScope.AddMember(exclusiveRecognizerPtr);
9041     EXPECT_EQ(gestureScope.recognizers_.size(), 3);
9042     gestureScope.QueryAllDone(0);
9043 
9044     /**
9045      * @tc.steps: step2. call QueryAllDone function
9046      * @tc.steps: expected equal
9047      */
9048     gestureScope.recognizers_.clear();
9049     gestureScope.AddMember(clickRecognizerPtr);
9050     EXPECT_EQ(gestureScope.recognizers_.size(), 1);
9051     gestureScope.QueryAllDone(1);
9052 }
9053 
9054 /**
9055  * @tc.name: GestureRefereeQueryAllDoneTest005
9056  * @tc.desc: Test GestureReferee QueryAllDone function
9057  */
9058 HWTEST_F(GesturesTestNg, GestureRefereeQueryAllDoneTest005, TestSize.Level1)
9059 {
9060     /**
9061      * @tc.steps: step1. create GestureScope and clickRecognizer.
9062      */
9063     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
9064     RefPtr<ExclusiveRecognizer> exclusiveRecognizerPtr = AceType::MakeRefPtr<ExclusiveRecognizer>(recognizers);
9065 
9066     GestureScope gestureScope = GestureScope(0);
9067     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
9068     RefPtr<ClickRecognizer> clickRecognizerPtr2 = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
9069     clickRecognizerPtr2->refereeState_ = RefereeState::SUCCEED;
9070     recognizers.insert(recognizers.end(), clickRecognizerPtr2);
9071 
9072     gestureScope.recognizers_.insert(gestureScope.recognizers_.end(), clickRecognizerPtr);
9073     gestureScope.recognizers_.insert(gestureScope.recognizers_.end(), exclusiveRecognizerPtr);
9074     gestureScope.recognizers_.push_back(nullptr);
9075 
9076     /**
9077      * @tc.steps: step2. call QueryAllDone function
9078      * @tc.steps: expected equal
9079      */
9080     gestureScope.AddMember(clickRecognizerPtr);
9081     gestureScope.AddMember(exclusiveRecognizerPtr);
9082     EXPECT_EQ(gestureScope.recognizers_.size(), 3);
9083     gestureScope.QueryAllDone(0);
9084 
9085     /**
9086      * @tc.steps: step2. call QueryAllDone function
9087      * @tc.steps: expected equal
9088      */
9089     gestureScope.AddMember(clickRecognizerPtr);
9090     gestureScope.AddMember(exclusiveRecognizerPtr);
9091     EXPECT_EQ(gestureScope.recognizers_.size(), 3);
9092     gestureScope.QueryAllDone(1);
9093 }
9094 
9095 /**
9096  * @tc.name: GestureRefereeQueryAllDoneTest006
9097  * @tc.desc: Test GestureReferee QueryAllDone function
9098  */
9099 HWTEST_F(GesturesTestNg, GestureRefereeQueryAllDoneTest006, TestSize.Level1)
9100 {
9101     /**
9102      * @tc.steps: step1. create GestureScope and clickRecognizer.
9103      */
9104     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
9105     RefPtr<ExclusiveRecognizer> exclusiveRecognizerPtr = AceType::MakeRefPtr<ExclusiveRecognizer>(recognizers);
9106 
9107     GestureScope gestureScope = GestureScope(0);
9108     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
9109     RefPtr<ClickRecognizer> clickRecognizerPtr2 = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
9110     clickRecognizerPtr2->refereeState_ = RefereeState::SUCCEED;
9111     recognizers.insert(recognizers.end(), clickRecognizerPtr2);
9112     gestureScope.recognizers_.insert(gestureScope.recognizers_.end(), clickRecognizerPtr);
9113     gestureScope.recognizers_.insert(gestureScope.recognizers_.end(), exclusiveRecognizerPtr);
9114     gestureScope.recognizers_.push_back(nullptr);
9115 
9116     /**
9117      * @tc.steps: step2. call QueryAllDone function
9118      * @tc.steps: expected equal
9119      */
9120     gestureScope.AddMember(clickRecognizerPtr);
9121     gestureScope.AddMember(exclusiveRecognizerPtr);
9122     EXPECT_EQ(gestureScope.recognizers_.size(), 3);
9123     gestureScope.QueryAllDone(0);
9124 
9125     /**
9126      * @tc.steps: step2. call QueryAllDone function
9127      * @tc.steps: expected equal
9128      */
9129     gestureScope.AddMember(clickRecognizerPtr);
9130     gestureScope.AddMember(exclusiveRecognizerPtr);
9131     gestureScope.AddMember(clickRecognizerPtr);
9132     EXPECT_EQ(gestureScope.recognizers_.size(), 3);
9133     gestureScope.QueryAllDone(1);
9134 }
9135 
9136 /**
9137  * @tc.name: GestureRefereeQueryAllDoneTest002
9138  * @tc.desc: Test GestureReferee QueryAllDone function
9139  */
9140 HWTEST_F(GesturesTestNg, GestureRefereeQueryAllDoneTest002, TestSize.Level1)
9141 {
9142     /**
9143      * @tc.steps: step1. create GestureScope and clickRecognizer.
9144      */
9145     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
9146     RefPtr<ExclusiveRecognizer> exclusiveRecognizerPtr = AceType::MakeRefPtr<ExclusiveRecognizer>(recognizers);
9147 
9148     GestureScope gestureScope = GestureScope(0);
9149     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
9150 
9151     gestureScope.recognizers_.insert(gestureScope.recognizers_.end(), clickRecognizerPtr);
9152     gestureScope.recognizers_.insert(gestureScope.recognizers_.end(), exclusiveRecognizerPtr);
9153     gestureScope.recognizers_.push_back(nullptr);
9154 
9155     /**
9156      * @tc.steps: step2. call QueryAllDone function
9157      * @tc.steps: expected equal
9158      */
9159     gestureScope.AddMember(exclusiveRecognizerPtr);
9160     EXPECT_EQ(gestureScope.recognizers_.size(), 3);
9161     gestureScope.QueryAllDone(0);
9162 
9163     /**
9164      * @tc.steps: step2. call QueryAllDone function
9165      * @tc.steps: expected equal
9166      */
9167     gestureScope.AddMember(clickRecognizerPtr);
9168     EXPECT_EQ(gestureScope.recognizers_.size(), 3);
9169     gestureScope.QueryAllDone(1);
9170 }
9171 
9172 /**
9173  * @tc.name: GestureRefereeQueryAllDoneTest003
9174  * @tc.desc: Test GestureReferee QueryAllDone function
9175  */
9176 HWTEST_F(GesturesTestNg, GestureRefereeQueryAllDoneTest003, TestSize.Level1)
9177 {
9178     /**
9179      * @tc.steps: step1. create GestureScope and clickRecognizer.
9180      */
9181     std::vector<RefPtr<NGGestureRecognizer>> recognizers = {};
9182     RefPtr<ExclusiveRecognizer> exclusiveRecognizerPtr = AceType::MakeRefPtr<ExclusiveRecognizer>(recognizers);
9183 
9184     GestureScope gestureScope = GestureScope(0);
9185     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
9186 
9187     gestureScope.recognizers_.insert(gestureScope.recognizers_.end(), clickRecognizerPtr);
9188     gestureScope.recognizers_.insert(gestureScope.recognizers_.end(), exclusiveRecognizerPtr);
9189     gestureScope.recognizers_.push_back(nullptr);
9190 
9191     /**
9192      * @tc.steps: step2. call QueryAllDone function
9193      * @tc.steps: expected equal
9194      */
9195     clickRecognizerPtr->refereeState_ = RefereeState::FAIL;
9196     gestureScope.AddMember(clickRecognizerPtr);
9197     EXPECT_EQ(gestureScope.recognizers_.size(), 3);
9198     gestureScope.QueryAllDone(0);
9199 
9200     /**
9201      * @tc.steps: step2. call QueryAllDone function
9202      * @tc.steps: expected equal
9203      */
9204     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED;
9205     gestureScope.AddMember(clickRecognizerPtr);
9206     EXPECT_EQ(gestureScope.recognizers_.size(), 3);
9207     gestureScope.QueryAllDone(0);
9208 
9209     /**
9210      * @tc.steps: step2. call QueryAllDone function
9211      * @tc.steps: expected equal
9212      */
9213     clickRecognizerPtr->refereeState_ = RefereeState::SUCCEED_BLOCKED;
9214     gestureScope.AddMember(clickRecognizerPtr);
9215     EXPECT_EQ(gestureScope.recognizers_.size(), 3);
9216     gestureScope.QueryAllDone(0);
9217 
9218     /**
9219      * @tc.steps: step2. call QueryAllDone function
9220      * @tc.steps: expected equal
9221      */
9222     clickRecognizerPtr->refereeState_ = RefereeState::PENDING_BLOCKED;
9223     gestureScope.AddMember(clickRecognizerPtr);
9224     EXPECT_EQ(gestureScope.recognizers_.size(), 3);
9225     gestureScope.QueryAllDone(0);
9226 
9227     /**
9228      * @tc.steps: step2. call QueryAllDone function
9229      * @tc.steps: expected equal
9230      */
9231     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
9232     gestureScope.AddMember(clickRecognizerPtr);
9233     EXPECT_EQ(gestureScope.recognizers_.size(), 3);
9234     gestureScope.QueryAllDone(0);
9235 
9236     /**
9237      * @tc.steps: step2. call QueryAllDone function
9238      * @tc.steps: expected equal
9239      */
9240     clickRecognizerPtr->refereeState_ = RefereeState::DETECTING;
9241     gestureScope.AddMember(clickRecognizerPtr);
9242     EXPECT_EQ(gestureScope.recognizers_.size(), 3);
9243     gestureScope.QueryAllDone(0);
9244 
9245     /**
9246      * @tc.steps: step2. call QueryAllDone function
9247      * @tc.steps: expected equal
9248      */
9249     clickRecognizerPtr->refereeState_ = RefereeState::READY;
9250     gestureScope.AddMember(clickRecognizerPtr);
9251     EXPECT_EQ(gestureScope.recognizers_.size(), 3);
9252     gestureScope.QueryAllDone(0);
9253 }
9254 
9255 /**
9256  * @tc.name: GestureRefereeTest017
9257  * @tc.desc: Test GestureReferee CleanAll function
9258  */
9259 HWTEST_F(GesturesTestNg, GestureRefereeTest017, TestSize.Level1)
9260 {
9261     /**
9262      * @tc.steps: step1. create GestureScope and clickRecognizer.
9263      */
9264     GestureReferee gestureReferee;
9265 
9266     /**
9267      * @tc.steps: step2. call CleanAll() function
9268      * @tc.steps: expected equal
9269      */
9270     RefPtr<GestureScope> gestureScope = AceType::MakeRefPtr<GestureScope>(0);
9271     gestureReferee.gestureScopes_[0] = gestureScope;
9272     gestureReferee.CleanAll();
9273     EXPECT_EQ(gestureReferee.gestureScopes_.size(), 0);
9274 }
9275 
9276 /**
9277  * @tc.name: GestureRefereeTest018
9278  * @tc.desc: Test GestureReferee CheckSourceTypeChange function
9279  */
9280 HWTEST_F(GesturesTestNg, GestureRefereeTest018, TestSize.Level1)
9281 {
9282     /**
9283      * @tc.steps: step1. create GestureScope and clickRecognizer.
9284      */
9285     GestureReferee gestureReferee;
9286     bool result = false;
9287 
9288     /**
9289      * @tc.steps: step2. call CheckSourceTypeChange function
9290      * @tc.steps: expected equal
9291      */
9292     RefPtr<GestureScope> gestureScope = AceType::MakeRefPtr<GestureScope>(0);
9293     gestureReferee.gestureScopes_[0] = gestureScope;
9294     result = gestureReferee.CheckSourceTypeChange(SourceType::TOUCH, false);
9295     EXPECT_EQ(result, true);
9296     result = gestureReferee.CheckSourceTypeChange(SourceType::TOUCH, true);
9297     EXPECT_EQ(result, true);
9298     gestureReferee.lastSourceType_ = SourceType::TOUCH;
9299     result = gestureReferee.CheckSourceTypeChange(SourceType::TOUCH, false);
9300     EXPECT_EQ(result, true);
9301     result = gestureReferee.CheckSourceTypeChange(SourceType::TOUCH, true);
9302     EXPECT_EQ(result, true);
9303 }
9304 
9305 /**
9306  * @tc.name: LongPressGestureTest001
9307  * @tc.desc: Test LongPressGesture CreateRecognizer function
9308  */
9309 HWTEST_F(GesturesTestNg, LongPressGestureTest001, TestSize.Level1)
9310 {
9311     /**
9312      * @tc.steps: step1. create LongPressGesture.
9313      */
9314     LongPressGestureModelNG longPressGestureModelNG;
9315     longPressGestureModelNG.Create(FINGER_NUMBER, false, LONG_PRESS_DURATION);
9316 
9317     RefPtr<GestureProcessor> gestureProcessor;
9318     gestureProcessor = NG::ViewStackProcessor::GetInstance()->GetOrCreateGestureProcessor();
9319     auto longPressGestureNG = AceType::DynamicCast<NG::LongPressGesture>(gestureProcessor->TopGestureNG());
9320     EXPECT_EQ(longPressGestureNG->duration_, LONG_PRESS_DURATION);
9321 
9322     LongPressGesture longPressGesture = LongPressGesture(FINGER_NUMBER, false, LONG_PRESS_DURATION, false, false);
9323     EXPECT_EQ(longPressGesture.repeat_, false);
9324     EXPECT_EQ(longPressGesture.duration_, LONG_PRESS_DURATION);
9325     EXPECT_EQ(longPressGesture.isForDrag_, false);
9326     EXPECT_EQ(longPressGesture.isDisableMouseLeft_, false);
9327 
9328     /**
9329      * @tc.steps: step2. call CreateRecognizer function and compare result
9330      * @tc.steps: case1: onActionId, onActionEndId, onActionCancelId not existed
9331      */
9332     auto longPressRecognizer = AceType::DynamicCast<LongPressRecognizer>(longPressGesture.CreateRecognizer());
9333     EXPECT_NE(longPressRecognizer, nullptr);
9334     EXPECT_EQ(longPressRecognizer->repeat_, false);
9335     EXPECT_EQ(longPressRecognizer->duration_, LONG_PRESS_DURATION);
9336     EXPECT_EQ(longPressRecognizer->isForDrag_, false);
9337     EXPECT_EQ(longPressRecognizer->isDisableMouseLeft_, false);
9338 
9339     /**
9340      * @tc.steps: step2. call CreateRecognizer function and compare result
9341      * @tc.steps: case2: onActionId, onActionEndId, onActionCancelId existed
9342      */
9343     std::unique_ptr<GestureEventFunc> onActionId;
9344     std::unique_ptr<GestureEventFunc> onActionEndId;
9345     std::unique_ptr<GestureEventNoParameter> onActionCancelId;
9346     longPressGesture.onActionId_ = std::move(onActionId);
9347     longPressGesture.onActionEndId_ = std::move(onActionEndId);
9348     longPressGesture.onActionCancelId_ = std::move(onActionCancelId);
9349     longPressRecognizer = AceType::DynamicCast<LongPressRecognizer>(longPressGesture.CreateRecognizer());
9350     EXPECT_NE(longPressRecognizer, nullptr);
9351     EXPECT_EQ(longPressRecognizer->repeat_, false);
9352     EXPECT_EQ(longPressRecognizer->duration_, LONG_PRESS_DURATION);
9353     EXPECT_EQ(longPressRecognizer->isForDrag_, false);
9354     EXPECT_EQ(longPressRecognizer->isDisableMouseLeft_, false);
9355 }
9356 
9357 /**
9358  * @tc.name: LongPressGestureCreateRecognizerTest001
9359  * @tc.desc: Test LongPressGesture CreateRecognizer function
9360  */
9361 HWTEST_F(GesturesTestNg, LongPressGestureCreateRecognizerTest001, TestSize.Level1)
9362 {
9363     /**
9364      * @tc.steps: step1. create LongPressGesture.
9365      */
9366     LongPressGestureModelNG longPressGestureModelNG;
9367     longPressGestureModelNG.Create(FINGER_NUMBER, false, LONG_PRESS_DURATION);
9368 
9369     RefPtr<GestureProcessor> gestureProcessor;
9370     gestureProcessor = NG::ViewStackProcessor::GetInstance()->GetOrCreateGestureProcessor();
9371     auto longPressGestureNG = AceType::DynamicCast<NG::LongPressGesture>(gestureProcessor->TopGestureNG());
9372     EXPECT_EQ(longPressGestureNG->duration_, LONG_PRESS_DURATION);
9373 
9374     LongPressGesture longPressGesture = LongPressGesture(FINGER_NUMBER, false, LONG_PRESS_DURATION, false, false);
9375     EXPECT_EQ(longPressGesture.repeat_, false);
9376     EXPECT_EQ(longPressGesture.duration_, LONG_PRESS_DURATION);
9377     EXPECT_EQ(longPressGesture.isForDrag_, false);
9378     EXPECT_EQ(longPressGesture.isDisableMouseLeft_, false);
9379 
9380     /**
9381      * @tc.steps: step2. call CreateRecognizer function and compare result
9382      * @tc.steps: case1: onActionId, onActionEndId, onActionCancelId not existed
9383      */
9384     longPressGesture.fingers_ = FINGER_NUMBER_OVER_MAX;
9385     longPressGesture.duration_ = 0;
9386     auto longPressRecognizer = AceType::DynamicCast<LongPressRecognizer>(longPressGesture.CreateRecognizer());
9387     EXPECT_NE(longPressRecognizer, nullptr);
9388 
9389     /**
9390      * @tc.steps: step2. call CreateRecognizer function and compare result
9391      * @tc.steps: case1: onActionId, onActionEndId, onActionCancelId not existed
9392      */
9393     longPressGesture.fingers_ = 0;
9394     longPressGesture.duration_ = 0;
9395     longPressRecognizer = AceType::DynamicCast<LongPressRecognizer>(longPressGesture.CreateRecognizer());
9396     EXPECT_NE(longPressRecognizer, nullptr);
9397 }
9398 
9399 
9400 /**
9401  * @tc.name: LongPressGestureCreateRecognizerTest002
9402  * @tc.desc: Test LongPressGesture CreateRecognizer function
9403  */
9404 HWTEST_F(GesturesTestNg, LongPressGestureCreateRecognizerTest002, TestSize.Level1)
9405 {
9406     /**
9407      * @tc.steps: step1. create LongPressGesture.
9408      */
9409     LongPressGestureModelNG longPressGestureModelNG;
9410     longPressGestureModelNG.Create(FINGER_NUMBER, false, LONG_PRESS_DURATION);
9411 
9412     RefPtr<GestureProcessor> gestureProcessor;
9413     gestureProcessor = NG::ViewStackProcessor::GetInstance()->GetOrCreateGestureProcessor();
9414     auto longPressGestureNG = AceType::DynamicCast<NG::LongPressGesture>(gestureProcessor->TopGestureNG());
9415     EXPECT_EQ(longPressGestureNG->duration_, LONG_PRESS_DURATION);
9416 
9417     LongPressGesture longPressGesture = LongPressGesture(FINGER_NUMBER, false, LONG_PRESS_DURATION, false, false);
9418     EXPECT_EQ(longPressGesture.repeat_, false);
9419     EXPECT_EQ(longPressGesture.duration_, LONG_PRESS_DURATION);
9420     EXPECT_EQ(longPressGesture.isForDrag_, false);
9421     EXPECT_EQ(longPressGesture.isDisableMouseLeft_, false);
9422 
9423     /**
9424      * @tc.steps: step2. call CreateRecognizer function and compare result
9425      * @tc.steps: case1: onActionId, onActionEndId, onActionCancelId not existed
9426      */
9427     longPressGesture.fingers_ = FINGER_NUMBER_OVER_MAX;
9428     longPressGesture.duration_ = 0;
__anona2ace5f31a02(GestureEvent& info) 9429     auto onActionStart = [](GestureEvent& info) { return true; };
__anona2ace5f31b02(GestureEvent& info) 9430     auto onActionEnd = [](GestureEvent& info) { return true; };
__anona2ace5f31c02() 9431     auto onActionCancel = []() { return true; };
9432     longPressGesture.SetOnActionId(onActionStart);
9433     longPressGesture.SetOnActionEndId(onActionEnd);
9434     longPressGesture.SetOnActionCancelId(onActionCancel);
9435     auto longPressRecognizer = AceType::DynamicCast<LongPressRecognizer>(longPressGesture.CreateRecognizer());
9436     EXPECT_NE(longPressRecognizer, nullptr);
9437 
9438     /**
9439      * @tc.steps: step2. call CreateRecognizer function and compare result
9440      * @tc.steps: case1: onActionId, onActionEndId, onActionCancelId not existed
9441      */
9442     longPressGesture.fingers_ = 0;
9443     longPressGesture.duration_ = 0;
9444     longPressRecognizer = AceType::DynamicCast<LongPressRecognizer>(longPressGesture.CreateRecognizer());
9445     EXPECT_NE(longPressRecognizer, nullptr);
9446 }
9447 
9448 /**
9449  * @tc.name: SwipeGestureTest001
9450  * @tc.desc: Test SwipeGesture CreateRecognizer function
9451  */
9452 HWTEST_F(GesturesTestNg, SwipeGestureTest001, TestSize.Level1)
9453 {
9454     /**
9455      * @tc.steps: step1. create SwipeGesture.
9456      */
9457     int32_t fingersNum = DEFAULT_PAN_FINGER;
9458     double speedNum = DEFAULT_SLIDE_SPEED;
9459     SwipeDirection slideDirection;
9460     SwipeGestureModelNG swipeGestureModelNG;
9461     swipeGestureModelNG.Create(fingersNum, slideDirection, speedNum);
9462 
9463     RefPtr<GestureProcessor> gestureProcessor;
9464     gestureProcessor = NG::ViewStackProcessor::GetInstance()->GetOrCreateGestureProcessor();
9465     auto swipeGestureNG = AceType::DynamicCast<NG::SwipeRecognizer>(gestureProcessor->TopGestureNG());
9466 
9467     SwipeGesture swipeGesture = SwipeGesture(fingersNum, slideDirection, speedNum);
9468     EXPECT_EQ(swipeGesture.speed_, DEFAULT_SLIDE_SPEED);
9469 
9470     /**
9471      * @tc.steps: step2. call CreateRecognizer function and compare result
9472      * @tc.steps: case1: onActionId, onActionEndId, onActionCancelId not existed
9473      */
9474     auto swipeRecognizer = AceType::DynamicCast<SwipeRecognizer>(swipeGesture.CreateRecognizer());
9475     EXPECT_EQ(swipeGesture.speed_, DEFAULT_SLIDE_SPEED);
9476 
9477     /**
9478      * @tc.steps: step2. call CreateRecognizer function and compare result
9479      * @tc.steps: case2: onActionId, onActionEndId, onActionCancelId existed
9480      */
9481     std::unique_ptr<GestureEventFunc> onActionId;
9482     std::unique_ptr<GestureEventFunc> onActionEndId;
9483     std::unique_ptr<GestureEventNoParameter> onActionCancelId;
9484     swipeGesture.onActionId_ = std::move(onActionId);
9485     swipeGesture.onActionEndId_ = std::move(onActionEndId);
9486     swipeGesture.onActionCancelId_ = std::move(onActionCancelId);
9487     swipeRecognizer = AceType::DynamicCast<SwipeRecognizer>(swipeGesture.CreateRecognizer());
9488     EXPECT_EQ(swipeGesture.speed_, DEFAULT_SLIDE_SPEED);
9489 }
9490 
9491 /**
9492  * @tc.name: SwipeGestureCreateRecognizerTest001
9493  * @tc.desc: Test SwipeGesture CreateRecognizer function
9494  */
9495 HWTEST_F(GesturesTestNg, SwipeGestureCreateRecognizerTest001, TestSize.Level1)
9496 {
9497     /**
9498      * @tc.steps: step1. create SwipeGesture.
9499      */
9500     int32_t fingersNum = DEFAULT_PAN_FINGER;
9501     double speedNum = DEFAULT_SLIDE_SPEED;
9502     SwipeDirection slideDirection;
9503     SwipeGestureModelNG swipeGestureModelNG;
9504     swipeGestureModelNG.Create(fingersNum, slideDirection, speedNum);
9505 
9506     RefPtr<GestureProcessor> gestureProcessor;
9507     gestureProcessor = NG::ViewStackProcessor::GetInstance()->GetOrCreateGestureProcessor();
9508     auto swipeGestureNG = AceType::DynamicCast<NG::SwipeRecognizer>(gestureProcessor->TopGestureNG());
9509 
9510     SwipeGesture swipeGesture = SwipeGesture(fingersNum, slideDirection, speedNum);
9511     EXPECT_EQ(swipeGesture.speed_, DEFAULT_SLIDE_SPEED);
9512 
9513     /**
9514      * @tc.steps: step2. call CreateRecognizer function and compare result
9515      * @tc.steps: case1: onActionId, onActionEndId, onActionCancelId not existed
9516      */
9517     auto swipeRecognizer = AceType::DynamicCast<SwipeRecognizer>(swipeGesture.CreateRecognizer());
9518     EXPECT_EQ(swipeGesture.speed_, DEFAULT_SLIDE_SPEED);
9519 
9520     /**
9521      * @tc.steps: step2. call CreateRecognizer function and compare result
9522      * @tc.steps: case2: onActionId, onActionEndId, onActionCancelId existed
9523      */
9524     std::unique_ptr<GestureEventFunc> onActionId;
9525     std::unique_ptr<GestureEventFunc> onActionEndId;
9526     std::unique_ptr<GestureEventNoParameter> onActionCancelId;
9527     swipeGesture.onActionId_ = std::move(onActionId);
9528     swipeGesture.onActionEndId_ = std::move(onActionEndId);
9529     swipeGesture.onActionCancelId_ = std::move(onActionCancelId);
__anona2ace5f31d02(GestureEvent& info) 9530     auto onActionStart = [](GestureEvent& info) { return true; };
9531     swipeGesture.SetOnActionId(onActionStart);
9532     swipeRecognizer = AceType::DynamicCast<SwipeRecognizer>(swipeGesture.CreateRecognizer());
9533     EXPECT_EQ(swipeGesture.speed_, DEFAULT_SLIDE_SPEED);
9534 }
9535 
9536 /**
9537  * @tc.name: PinchGestureTest001
9538  * @tc.desc: Test PinchGesture CreateRecognizer function
9539  */
9540 HWTEST_F(GesturesTestNg, PinchGestureTest001, TestSize.Level1)
9541 {
9542     /**
9543      * @tc.steps: step1. create PinchGestureGesture.
9544      */
9545     PinchGestureModelNG pinchGestureModelNG;
9546     pinchGestureModelNG.Create(FINGER_NUMBER, PINCH_GESTURE_DISTANCE);
9547 
9548     RefPtr<GestureProcessor> gestureProcessor;
9549     gestureProcessor = NG::ViewStackProcessor::GetInstance()->GetOrCreateGestureProcessor();
9550     auto pinchGesture = AceType::DynamicCast<NG::PinchGesture>(gestureProcessor->TopGestureNG());
9551     EXPECT_EQ(pinchGesture->distance_, PINCH_GESTURE_DISTANCE);
9552 }
9553 
9554 /**
9555  * @tc.name: RotationGestureTest001
9556  * @tc.desc: Test RotationGesture CreateRecognizer function
9557  */
9558 HWTEST_F(GesturesTestNg, RotationGestureTest001, TestSize.Level1)
9559 {
9560     /**
9561      * @tc.steps: step1. create RotationGestureGesture.
9562      */
9563     RotationGestureModelNG rotationGestureModelNG;
9564     rotationGestureModelNG.Create(FINGER_NUMBER, ROTATION_GESTURE_ANGLE);
9565 
9566     RefPtr<GestureProcessor> gestureProcessor;
9567     gestureProcessor = NG::ViewStackProcessor::GetInstance()->GetOrCreateGestureProcessor();
9568     auto rotationGestureNG = AceType::DynamicCast<NG::RotationGesture>(gestureProcessor->TopGestureNG());
9569     EXPECT_EQ(rotationGestureNG->angle_, ROTATION_GESTURE_ANGLE);
9570 
9571     RotationGesture rotationGesture = RotationGesture(FINGER_NUMBER, ROTATION_GESTURE_ANGLE);
9572     EXPECT_EQ(rotationGesture.angle_, ROTATION_GESTURE_ANGLE);
9573 
9574     /**
9575      * @tc.steps: step2. call CreateRecognizer function and compare result
9576      * @tc.steps: case1: functions are not existed
9577      */
9578     rotationGesture.priority_ = GesturePriority::Low;
9579     rotationGesture.gestureMask_ = GestureMask::Normal;
9580     auto rotationRecognizer = AceType::DynamicCast<RotationRecognizer>(rotationGesture.CreateRecognizer());
9581     EXPECT_NE(rotationRecognizer, nullptr);
9582     EXPECT_EQ(rotationRecognizer->GetPriority(), GesturePriority::Low);
9583     EXPECT_EQ(rotationRecognizer->GetPriorityMask(), GestureMask::Normal);
9584 
9585     // /**
9586     //  * @tc.steps: step2. call CreateRecognizer function and compare result
9587     //  * @tc.steps: case2: functions are existed
9588     //  */
9589     std::unique_ptr<GestureEventFunc> onActionStartId;
9590     std::unique_ptr<GestureEventFunc> onActionUpdateId;
9591     std::unique_ptr<GestureEventFunc> onActionEndId;
9592     std::unique_ptr<GestureEventNoParameter> onActionCancelId;
9593     rotationGesture.onActionStartId_ = std::move(onActionStartId);
9594     rotationGesture.onActionUpdateId_ = std::move(onActionUpdateId);
9595     rotationGesture.onActionEndId_ = std::move(onActionEndId);
9596     rotationGesture.onActionCancelId_ = std::move(onActionCancelId);
9597     rotationRecognizer = AceType::DynamicCast<RotationRecognizer>(rotationGesture.CreateRecognizer());
9598     EXPECT_EQ(rotationRecognizer->priority_, rotationGesture.priority_);
9599     EXPECT_EQ(rotationRecognizer->priorityMask_, rotationGesture.gestureMask_);
9600 }
9601 
9602 /**
9603  * @tc.name: RotationGestureCreateRecognizerTest001
9604  * @tc.desc: Test RotationGesture CreateRecognizer function
9605  */
9606 HWTEST_F(GesturesTestNg, RotationGestureCreateRecognizerTest001, TestSize.Level1)
9607 {
9608     /**
9609      * @tc.steps: step1. create RotationGestureGesture.
9610      */
9611     RotationGestureModelNG rotationGestureModelNG;
9612     rotationGestureModelNG.Create(FINGER_NUMBER, ROTATION_GESTURE_ANGLE);
9613 
9614     RefPtr<GestureProcessor> gestureProcessor;
9615     gestureProcessor = NG::ViewStackProcessor::GetInstance()->GetOrCreateGestureProcessor();
9616     auto rotationGestureNG = AceType::DynamicCast<NG::RotationGesture>(gestureProcessor->TopGestureNG());
9617     EXPECT_EQ(rotationGestureNG->angle_, ROTATION_GESTURE_ANGLE);
9618 
9619     RotationGesture rotationGesture = RotationGesture(FINGER_NUMBER, 0.0);
9620     EXPECT_EQ(rotationGesture.angle_, ROTATION_GESTURE_ANGLE);
9621     RotationGesture rotationGestureTwo = RotationGesture(FINGER_NUMBER, -1.0);
9622     EXPECT_EQ(rotationGestureTwo.angle_, ROTATION_GESTURE_ANGLE);
9623     RotationGesture rotationGestureThree = RotationGesture(FINGER_NUMBER, 361.0);
9624     EXPECT_EQ(rotationGestureThree.angle_, ROTATION_GESTURE_ANGLE);
9625 }
9626 
9627 
9628 /**
9629  * @tc.name: RotationGestureCreateRecognizerTest002
9630  * @tc.desc: Test RotationGesture CreateRecognizer function
9631  */
9632 HWTEST_F(GesturesTestNg, RotationGestureCreateRecognizerTest002, TestSize.Level1)
9633 {
9634     /**
9635      * @tc.steps: step1. create RotationGestureGesture.
9636      */
9637     RotationGestureModelNG rotationGestureModelNG;
9638     rotationGestureModelNG.Create(FINGER_NUMBER, ROTATION_GESTURE_ANGLE);
9639 
9640     RefPtr<GestureProcessor> gestureProcessor;
9641     gestureProcessor = NG::ViewStackProcessor::GetInstance()->GetOrCreateGestureProcessor();
9642     auto rotationGestureNG = AceType::DynamicCast<NG::RotationGesture>(gestureProcessor->TopGestureNG());
9643     EXPECT_EQ(rotationGestureNG->angle_, ROTATION_GESTURE_ANGLE);
9644 
9645     RotationGesture rotationGesture = RotationGesture(FINGER_NUMBER, ROTATION_GESTURE_ANGLE);
9646     EXPECT_EQ(rotationGesture.angle_, ROTATION_GESTURE_ANGLE);
9647 
9648     /**
9649      * @tc.steps: step2. call CreateRecognizer function and compare result
9650      * @tc.steps: case1: functions are not existed
9651      */
9652     rotationGesture.priority_ = GesturePriority::Low;
9653     rotationGesture.gestureMask_ = GestureMask::Normal;
9654     auto rotationRecognizer = AceType::DynamicCast<RotationRecognizer>(rotationGesture.CreateRecognizer());
9655     EXPECT_NE(rotationRecognizer, nullptr);
9656     EXPECT_EQ(rotationRecognizer->GetPriority(), GesturePriority::Low);
9657     EXPECT_EQ(rotationRecognizer->GetPriorityMask(), GestureMask::Normal);
9658 
9659     // /**
9660     //  * @tc.steps: step2. call CreateRecognizer function and compare result
9661     //  * @tc.steps: case2: functions are existed
9662     //  */
9663     std::unique_ptr<GestureEventFunc> onActionStartId;
9664     std::unique_ptr<GestureEventFunc> onActionUpdateId;
9665     std::unique_ptr<GestureEventFunc> onActionEndId;
9666     std::unique_ptr<GestureEventNoParameter> onActionCancelId;
9667     rotationGesture.onActionStartId_ = std::move(onActionStartId);
9668     rotationGesture.onActionUpdateId_ = std::move(onActionUpdateId);
9669     rotationGesture.onActionEndId_ = std::move(onActionEndId);
9670     rotationGesture.onActionCancelId_ = std::move(onActionCancelId);
9671     rotationGesture.priority_ = GesturePriority::Low;
9672     rotationGesture.gestureMask_ = GestureMask::Normal;
__anona2ace5f31e02(GestureEvent& info) 9673     auto onActionStart = [](GestureEvent& info) { return true; };
__anona2ace5f31f02(GestureEvent& info) 9674     auto onActionUpdate = [](GestureEvent& info) { return true; };
__anona2ace5f32002(GestureEvent& info) 9675     auto onActionEnd = [](GestureEvent& info) { return true; };
__anona2ace5f32102() 9676     auto onActionCancel = []() { return true; };
9677     rotationGesture.SetOnActionStartId(onActionStart);
9678     rotationGesture.SetOnActionUpdateId(onActionUpdate);
9679     rotationGesture.SetOnActionEndId(onActionEnd);
9680     rotationGesture.SetOnActionCancelId(onActionCancel);
9681     rotationRecognizer = AceType::DynamicCast<RotationRecognizer>(rotationGesture.CreateRecognizer());
9682     EXPECT_EQ(rotationRecognizer->priority_, rotationGesture.priority_);
9683     EXPECT_EQ(rotationRecognizer->priorityMask_, rotationGesture.gestureMask_);
9684 }
9685 
9686 /**
9687  * @tc.name: TapGestureTest001
9688  * @tc.desc: Test TapGesture CreateRecognizer function
9689  */
9690 HWTEST_F(GesturesTestNg, TapGestureTest001, TestSize.Level1)
9691 {
9692     /**
9693      * @tc.steps: step1. create TapGestureGesture.
9694      */
9695     TapGestureModelNG tapGestureModelNG;
9696     tapGestureModelNG.Create(COUNT, FINGER_NUMBER);
9697 
9698     RefPtr<GestureProcessor> gestureProcessor;
9699     gestureProcessor = NG::ViewStackProcessor::GetInstance()->GetOrCreateGestureProcessor();
9700     auto tapGestureNG = AceType::DynamicCast<NG::TapGesture>(gestureProcessor->TopGestureNG());
9701     EXPECT_EQ(tapGestureNG->count_, COUNT);
9702 
9703     TapGesture tapGesture = TapGesture(COUNT, FINGER_NUMBER);
9704     EXPECT_EQ(tapGesture.count_, COUNT);
9705     /**
9706      * @tc.steps: step2. call CreateRecognizer function and compare result
9707      * @tc.steps: case1: not have onActionId
9708      */
9709     tapGesture.priority_ = GesturePriority::Low;
9710     tapGesture.gestureMask_ = GestureMask::Normal;
9711     auto tapRecognizer = AceType::DynamicCast<ClickRecognizer>(tapGesture.CreateRecognizer());
9712     EXPECT_NE(tapRecognizer, nullptr);
9713     EXPECT_EQ(tapRecognizer->GetPriority(), GesturePriority::Low);
9714     EXPECT_EQ(tapRecognizer->GetPriorityMask(), GestureMask::Normal);
9715 
9716     /**
9717      * @tc.steps: step2. call CreateRecognizer function and compare result
9718      * @tc.steps: case2: have onActionId
9719      */
9720     std::unique_ptr<GestureEventFunc> onActionId;
9721     tapGesture.onActionId_ = std::move(onActionId);
9722     tapRecognizer = AceType::DynamicCast<ClickRecognizer>(tapGesture.CreateRecognizer());
9723     EXPECT_EQ(tapRecognizer->GetPriority(), GesturePriority::Low);
9724     EXPECT_EQ(tapRecognizer->GetPriorityMask(), GestureMask::Normal);
9725 }
9726 
9727 /**
9728  * @tc.name: TapGestureTest002
9729  * @tc.desc: Test TapGesture CreateRecognizer function
9730  */
9731 HWTEST_F(GesturesTestNg, TapGestureTest002, TestSize.Level1)
9732 {
9733     /**
9734      * @tc.steps: step1. create TapGestureGesture.
9735      */
9736     TapGestureModelNG tapGestureModelNG;
9737     tapGestureModelNG.Create(COUNT, FINGER_NUMBER);
9738 
9739     RefPtr<GestureProcessor> gestureProcessor;
9740     gestureProcessor = NG::ViewStackProcessor::GetInstance()->GetOrCreateGestureProcessor();
9741     auto tapGestureNG = AceType::DynamicCast<NG::TapGesture>(gestureProcessor->TopGestureNG());
9742     EXPECT_EQ(tapGestureNG->count_, COUNT);
9743 
9744     TapGesture tapGesture = TapGesture(COUNT, FINGER_NUMBER);
9745     EXPECT_EQ(tapGesture.count_, COUNT);
9746     /**
9747      * @tc.steps: step2. call CreateRecognizer function and compare result
9748      * @tc.steps: case1: not have onActionId
9749      */
9750     tapGesture.priority_ = GesturePriority::Low;
9751     tapGesture.gestureMask_ = GestureMask::Normal;
__anona2ace5f32202(GestureEvent& info) 9752     auto onActionStart = [](GestureEvent& info) { return true; };
9753     tapGesture.SetOnActionId(onActionStart);
9754     auto tapRecognizer = AceType::DynamicCast<ClickRecognizer>(tapGesture.CreateRecognizer());
9755     EXPECT_NE(tapRecognizer, nullptr);
9756     EXPECT_EQ(tapRecognizer->GetPriority(), GesturePriority::Low);
9757     EXPECT_EQ(tapRecognizer->GetPriorityMask(), GestureMask::Normal);
9758 
9759     /**
9760      * @tc.steps: step2. call CreateRecognizer function and compare result
9761      * @tc.steps: case2: have onActionId
9762      */
9763     std::unique_ptr<GestureEventFunc> onActionId;
9764     tapGesture.onActionId_ = std::move(onActionId);
9765     tapRecognizer = AceType::DynamicCast<ClickRecognizer>(tapGesture.CreateRecognizer());
9766     EXPECT_EQ(tapRecognizer->GetPriority(), GesturePriority::Low);
9767     EXPECT_EQ(tapRecognizer->GetPriorityMask(), GestureMask::Normal);
9768 }
9769 
9770 /**
9771  * @tc.name: GestureTest001
9772  * @tc.desc: Test TapGesture CreateRecognizer function
9773  */
9774 HWTEST_F(GesturesTestNg, GestureTest001, TestSize.Level1)
9775 {
9776     GestureModelNG gestureModelNG;
9777     gestureModelNG.Create(0, 0);
9778     gestureModelNG.Finish();
9779     gestureModelNG.Pop();
9780 
9781     RefPtr<GestureProcessor> gestureProcessor;
9782     gestureProcessor = NG::ViewStackProcessor::GetInstance()->GetOrCreateGestureProcessor();
9783     EXPECT_EQ(gestureProcessor->priority_, GesturePriority::Low);
9784     EXPECT_EQ(gestureProcessor->gestureMask_, GestureMask::Normal);
9785 
9786     PanGestureModelNG panGestureModelNG;
9787     int32_t fingersNum = DEFAULT_PAN_FINGER;
9788     double distanceNum = DEFAULT_PAN_DISTANCE.ConvertToPx();
9789     PanDirection panDirection;
9790     panGestureModelNG.Create(fingersNum, panDirection, distanceNum);
9791     auto panGestureNG = AceType::DynamicCast<NG::PanGesture>(gestureProcessor->TopGestureNG());
9792     EXPECT_EQ(panGestureNG->distance_, distanceNum);
9793 
9794     RefPtr<PanGestureOption> refPanGestureOption = AceType::MakeRefPtr<PanGestureOption>();
9795     panGestureModelNG.SetPanGestureOption(refPanGestureOption);
9796 
9797     TimeoutGestureModelNG timeoutGestureModelNG;
9798     timeoutGestureModelNG.GetGestureProcessor();
9799 
9800     SwipeGestureModelNG swipeGestureModelNG;
9801     fingersNum = DEFAULT_SLIDE_FINGER;
9802     double speedNum = DEFAULT_SLIDE_SPEED;
9803     SwipeDirection slideDirection;
9804     swipeGestureModelNG.Create(fingersNum, slideDirection, speedNum);
9805     auto swipeGestureNG = AceType::DynamicCast<NG::SwipeGesture>(gestureProcessor->TopGestureNG());
9806     EXPECT_EQ(swipeGestureNG->speed_, speedNum);
9807 }
9808 
9809 /*
9810  * @tc.name: PanGestureTest001
9811  * @tc.desc: Test PanGesture CreateRecognizer function
9812  */
9813 HWTEST_F(GesturesTestNg, PanGestureTest001, TestSize.Level1)
9814 {
9815     /**
9816      * @tc.steps: step1. create PanGesture.
9817      */
9818     auto panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
9819     auto panGesture = AceType::MakeRefPtr<PanGesture>(panGestureOption);
9820     ASSERT_NE(panGesture, nullptr);
9821     EXPECT_EQ(panGesture->panGestureOption_->fingers_, panGestureOption->fingers_);
9822 
9823     /**
9824      * @tc.steps: step2. call CreateRecognizer function and compare result.
9825      * @tc.expect: panRecognizer create successfully, use the same Option as panGesture.
9826      */
9827     panGesture->priority_ = GesturePriority::Low;
9828     panGesture->gestureMask_ = GestureMask::Normal;
9829     auto panRecognizer = AceType::DynamicCast<PanRecognizer>(panGesture->CreateRecognizer());
9830     ASSERT_NE(panRecognizer, nullptr);
9831     EXPECT_EQ(panRecognizer->GetPriority(), GesturePriority::Low);
9832     EXPECT_EQ(panRecognizer->GetPriorityMask(), GestureMask::Normal);
9833     EXPECT_EQ(panRecognizer->distance_, DEFAULT_PAN_DISTANCE.ConvertToPx());
9834 }
9835 
9836 /**
9837  * @tc.name: PanGestureTest002
9838  * @tc.desc: Test PanGesture CreateRecognizer function
9839  */
9840 HWTEST_F(GesturesTestNg, PanGestureTest002, TestSize.Level1)
9841 {
9842     /**
9843      * @tc.steps: step1. create PanGesture.
9844      */
9845     PanDirection panDirection;
9846     panDirection.type = PanDirection::RIGHT;
9847     auto panGesture = AceType::MakeRefPtr<PanGesture>(SINGLE_FINGER_NUMBER, panDirection, PAN_DISTANCE);
9848     ASSERT_NE(panGesture, nullptr);
9849     EXPECT_EQ(panGesture->fingers_, SINGLE_FINGER_NUMBER);
9850 
9851     /**
9852      * @tc.steps: step2. create onActionStart, onActionUpdate, onActionEnd, onActionCancel for PanRecognizer.
9853      * @tc.expect: panRecognizer create successfully with the OnActionCall.
9854      */
9855     panGesture->priority_ = GesturePriority::Low;
9856     panGesture->gestureMask_ = GestureMask::Normal;
__anona2ace5f32302(GestureEvent& info) 9857     auto onActionStart = [](GestureEvent& info) { return true; };
__anona2ace5f32402(GestureEvent& info) 9858     auto onActionUpdate = [](GestureEvent& info) { return true; };
__anona2ace5f32502(GestureEvent& info) 9859     auto onActionEnd = [](GestureEvent& info) { return true; };
__anona2ace5f32602() 9860     auto onActionCancel = []() { return true; };
9861     panGesture->SetOnActionStartId(onActionStart);
9862     panGesture->SetOnActionUpdateId(onActionUpdate);
9863     panGesture->SetOnActionEndId(onActionEnd);
9864     panGesture->SetOnActionCancelId(onActionCancel);
9865     EXPECT_TRUE(panGesture->onActionStartId_);
9866     EXPECT_TRUE(panGesture->onActionUpdateId_);
9867     EXPECT_TRUE(panGesture->onActionEndId_);
9868     EXPECT_TRUE(panGesture->onActionCancelId_);
9869 
9870     auto panRecognizer = AceType::DynamicCast<PanRecognizer>(panGesture->CreateRecognizer());
9871     ASSERT_NE(panRecognizer, nullptr);
9872     EXPECT_EQ(panRecognizer->GetPriority(), GesturePriority::Low);
9873     EXPECT_EQ(panRecognizer->GetPriorityMask(), GestureMask::Normal);
9874 }
9875 
9876 /**
9877  * @tc.name: PinchGestureTest002
9878  * @tc.desc: Test PinchGesture CreateRecognizer function
9879  */
9880 HWTEST_F(GesturesTestNg, PinchGestureTest002, TestSize.Level1)
9881 {
9882     /**
9883      * @tc.steps: step1. create PinchGesture.
9884      */
9885     auto pinchGesture = AceType::MakeRefPtr<PinchGesture>(FINGER_NUMBER, PINCH_GESTURE_DISTANCE);
9886     ASSERT_NE(pinchGesture, nullptr);
9887 
9888     /**
9889      * @tc.steps: step2. call CreateRecognizer function and compare result
9890      * @tc.expect: pinchRecognizer create successfully, use the same Option as pinchGesture.
9891      */
9892     pinchGesture->priority_ = GesturePriority::Low;
9893     pinchGesture->gestureMask_ = GestureMask::Normal;
__anona2ace5f32702(GestureEvent& info) 9894     auto onActionStart = [](GestureEvent& info) { return true; };
__anona2ace5f32802(GestureEvent& info) 9895     auto onActionUpdate = [](GestureEvent& info) { return true; };
__anona2ace5f32902(GestureEvent& info) 9896     auto onActionEnd = [](GestureEvent& info) { return true; };
__anona2ace5f32a02() 9897     auto onActionCancel = []() { return true; };
9898     pinchGesture->SetOnActionStartId(onActionStart);
9899     pinchGesture->SetOnActionUpdateId(onActionUpdate);
9900     pinchGesture->SetOnActionEndId(onActionEnd);
9901     pinchGesture->SetOnActionCancelId(onActionCancel);
9902     EXPECT_TRUE(pinchGesture->onActionStartId_);
9903     EXPECT_TRUE(pinchGesture->onActionUpdateId_);
9904     EXPECT_TRUE(pinchGesture->onActionEndId_);
9905     EXPECT_TRUE(pinchGesture->onActionCancelId_);
9906     auto pinchRecognizer = AceType::DynamicCast<PinchRecognizer>(pinchGesture->CreateRecognizer());
9907     ASSERT_NE(pinchRecognizer, nullptr);
9908     EXPECT_EQ(pinchRecognizer->GetPriority(), GesturePriority::Low);
9909     EXPECT_EQ(pinchRecognizer->GetPriorityMask(), GestureMask::Normal);
9910     EXPECT_EQ(pinchRecognizer->distance_, PINCH_GESTURE_DISTANCE);
9911 }
9912 
9913 /**
9914  * @tc.name: PinchGestureCreateRecognizerTest001
9915  * @tc.desc: Test PinchGesture CreateRecognizer function
9916  */
9917 HWTEST_F(GesturesTestNg, PinchGestureCreateRecognizerTest001, TestSize.Level1)
9918 {
9919     /**
9920      * @tc.steps: step1. create PinchGesture.
9921      */
9922     auto pinchGesture = AceType::MakeRefPtr<PinchGesture>(FINGER_NUMBER, PINCH_GESTURE_DISTANCE);
9923     ASSERT_NE(pinchGesture, nullptr);
9924 
9925     /**
9926      * @tc.steps: step2. call CreateRecognizer function and compare result
9927      * @tc.expect: pinchRecognizer create successfully, use the same Option as pinchGesture.
9928      */
9929     pinchGesture->priority_ = GesturePriority::Low;
9930     pinchGesture->gestureMask_ = GestureMask::Normal;
9931     auto pinchRecognizer = AceType::DynamicCast<PinchRecognizer>(pinchGesture->CreateRecognizer());
9932     ASSERT_NE(pinchRecognizer, nullptr);
9933     EXPECT_EQ(pinchRecognizer->GetPriority(), GesturePriority::Low);
9934     EXPECT_EQ(pinchRecognizer->GetPriorityMask(), GestureMask::Normal);
9935     EXPECT_EQ(pinchRecognizer->distance_, PINCH_GESTURE_DISTANCE);
9936 }
9937 
9938 /**
9939  * @tc.name: PinchRecognizerTest008
9940  * @tc.desc: Test PinchRecognizer function: IsCtrlBeingPressed
9941  * @tc.type: FUNC
9942  */
9943 HWTEST_F(GesturesTestNg, PinchRecognizerTest008, TestSize.Level1)
9944 {
9945     /**
9946      * @tc.steps: step1. create PinchRecognizer.
9947      */
9948     RefPtr<PinchRecognizer> pinchRecognizer = AceType::MakeRefPtr<PinchRecognizer>(SINGLE_FINGER_NUMBER,
9949                                                                                    PINCH_GESTURE_DISTANCE);
9950     ASSERT_NE(pinchRecognizer, nullptr);
9951 
9952     /**
9953      * @tc.steps: step2. use IsCtrlBeingPressed with no setting.
9954      * @tc.expect: IsCtrlBeingPressed return false.
9955      */
9956     EXPECT_FALSE(pinchRecognizer->IsCtrlBeingPressed());
9957 
9958     /**
9959      * @tc.steps: step3. create keyEvent and Set KeyEvent to pipeline.
9960      * @tc.expect: Set KeyCode KEY_CTRL_LEFT or KEY_CTRL_RIGHT , return True.
9961      */
9962     KeyEvent keyEvent;
9963     keyEvent.code = KeyCode::KEY_CTRL_LEFT;
9964     auto context = PipelineContext::GetCurrentContext();
9965     ASSERT_NE(context, nullptr);
9966     auto eventManager = AceType::MakeRefPtr<EventManager>();
9967     ASSERT_NE(eventManager, nullptr);
9968     std::vector<KeyCode> keyCodes { KeyCode::KEY_CTRL_LEFT };
9969     eventManager->SetPressedKeyCodes(keyCodes);
9970     context->SetEventManager(eventManager);
9971     EXPECT_TRUE(pinchRecognizer->IsCtrlBeingPressed());
9972     keyEvent.code = KeyCode::KEY_CTRL_RIGHT;
9973     EXPECT_TRUE(pinchRecognizer->IsCtrlBeingPressed());
9974 }
9975 
9976 /**
9977  * @tc.name: PinchRecognizerTest009
9978  * @tc.desc: Test PinchRecognizer function: HandleTouchDownEvent
9979  * @tc.type: FUNC
9980  */
9981 HWTEST_F(GesturesTestNg, PinchRecognizerTest009, TestSize.Level1)
9982 {
9983     /**
9984      * @tc.steps: step1. create PinchRecognizer.
9985      */
9986     RefPtr<PinchRecognizer> pinchRecognizer = AceType::MakeRefPtr<PinchRecognizer>(SINGLE_FINGER_NUMBER,
9987                                                                                    PINCH_GESTURE_DISTANCE);
9988     ASSERT_NE(pinchRecognizer, nullptr);
9989 
9990     /**
9991      * @tc.steps: step2. use fingers_ > MAX_PINCH_FINGERS in HandleTouchDownEvent(TouchEvent).
9992      * @tc.expect: pinchRecognizer->disposal_ is not equal to GestureDisposal::REJECT.
9993      */
9994     TouchEvent touchEvent;
9995     pinchRecognizer->fingers_ = FINGER_NUMBER_OVER_MAX;
9996     pinchRecognizer->refereeState_ = RefereeState::READY;
9997     pinchRecognizer->HandleTouchDownEvent(touchEvent);
9998     EXPECT_NE(pinchRecognizer->disposal_, GestureDisposal::REJECT);
9999 
10000     /**
10001      * @tc.steps: step3. test with HandleTouchDownEvent(AxisEvent).
10002      */
10003     pinchRecognizer->fingers_ = SINGLE_FINGER_NUMBER;
10004     AxisEvent axisEvent;
10005 
10006     /**
10007      * @tc.steps: step3.1. axisEvent NearZero and IsCtrlBeingPressed() is false.
10008      * @tc.expect: pinchRecognizer.disposal_ is not equal to GestureDisposal::REJECT.
10009      */
10010     axisEvent.pinchAxisScale = 0.0;
10011     pinchRecognizer->HandleTouchDownEvent(axisEvent);
10012     EXPECT_TRUE(pinchRecognizer->IsCtrlBeingPressed());
10013     EXPECT_NE(pinchRecognizer->disposal_, GestureDisposal::REJECT);
10014 
10015     /**
10016      * @tc.steps: step3.2. axisEvent not NearZero and IsRefereeFinished() is true.
10017      * @tc.expect: pinchRecognizer->disposal_ is not equal to GestureDisposal::REJECT.
10018      */
10019     axisEvent.pinchAxisScale = 2.0;
10020     pinchRecognizer->refereeState_ = RefereeState::SUCCEED;
10021     pinchRecognizer->HandleTouchDownEvent(axisEvent);
10022     EXPECT_NE(pinchRecognizer->disposal_, GestureDisposal::REJECT);
10023 
10024     /**
10025      * @tc.steps: step3.2. axisEvent with refereeState_ = RefereeState::READY.
10026      * @tc.expect: pinchRecognizer->scale_ is equal to 1.0f.
10027      */
10028     pinchRecognizer->refereeState_ = RefereeState::READY;
10029     pinchRecognizer->HandleTouchDownEvent(axisEvent);
10030     EXPECT_EQ(pinchRecognizer->scale_, 1.0);
10031 }
10032 
10033 /**
10034  * @tc.name: PinchRecognizerTest010
10035  * @tc.desc: Test PinchRecognizer function: HandleTouchUpEvent
10036  * @tc.type: FUNC
10037  */
10038 HWTEST_F(GesturesTestNg, PinchRecognizerTest010, TestSize.Level1)
10039 {
10040     /**
10041      * @tc.steps: step1. create PinchRecognizer.
10042      */
10043     RefPtr<PinchRecognizer> pinchRecognizer = AceType::MakeRefPtr<PinchRecognizer>(SINGLE_FINGER_NUMBER,
10044                                                                                    PINCH_GESTURE_DISTANCE);
10045     ASSERT_NE(pinchRecognizer, nullptr);
10046 
10047     /**
10048      * @tc.steps: step2. use refereeState_ != RefereeState::SUCCEED and refereeState_ != RefereeState::FAIL.
10049      * @tc.expect: pinchRecognizer->disposal_ is equal to GestureDisposal::REJECT.
10050      */
10051     TouchEvent touchEvent;
10052     pinchRecognizer->isPinchEnd_ = false;
10053     pinchRecognizer->refereeState_ = RefereeState::FAIL;
10054     pinchRecognizer->HandleTouchDownEvent(touchEvent);
10055     pinchRecognizer->refereeState_ = RefereeState::READY;
10056     pinchRecognizer->HandleTouchDownEvent(touchEvent);
10057     EXPECT_EQ(pinchRecognizer->disposal_, GestureDisposal::NONE);
10058 
10059     /**
10060      * @tc.steps: step3. test with HandleTouchDownEvent(AxisEvent).
10061      */
10062     AxisEvent axisEvent;
10063     /**
10064      * @tc.steps: step3.1. test with isPinchEnd_ is true.
10065      */
10066     pinchRecognizer->isPinchEnd_ = true;
10067     pinchRecognizer->HandleTouchUpEvent(axisEvent);
10068 
10069     /**
10070      * @tc.steps: step3.2. test with refereeState_ != RefereeState::SUCCEED and refereeState_ != RefereeState::FAIL.
10071      * @tc.expect: pinchRecognizer->disposal_ is equal to GestureDisposal::REJECT.
10072      */
10073     pinchRecognizer->isPinchEnd_ = false;
10074     pinchRecognizer->refereeState_ = RefereeState::DETECTING;
10075     pinchRecognizer->HandleTouchUpEvent(axisEvent);
10076     EXPECT_EQ(pinchRecognizer->disposal_, GestureDisposal::REJECT);
10077 
10078     /**
10079      * @tc.steps: step3.2. test with refereeState_ != RefereeState::SUCCEED.
10080      * @tc.expect: pinchRecognizer->isPinchEnd_ is true.
10081      */
10082     pinchRecognizer->refereeState_ = RefereeState::SUCCEED;
10083     pinchRecognizer->HandleTouchUpEvent(axisEvent);
10084     EXPECT_EQ(pinchRecognizer->isPinchEnd_, true);
10085 }
10086 
10087 /**
10088  * @tc.name: PinchRecognizerHandleTouchUpEventTest001
10089  * @tc.desc: Test PinchRecognizer function: HandleTouchUpEvent
10090  * @tc.type: FUNC
10091  */
10092 HWTEST_F(GesturesTestNg, PinchRecognizerHandleTouchUpEventTest001, TestSize.Level1)
10093 {
10094     /**
10095      * @tc.steps: step1. create PinchRecognizer.
10096      */
10097     RefPtr<PinchRecognizer> pinchRecognizer = AceType::MakeRefPtr<PinchRecognizer>(SINGLE_FINGER_NUMBER,
10098                                                                                    PINCH_GESTURE_DISTANCE);
10099     ASSERT_NE(pinchRecognizer, nullptr);
10100 
10101     /**
10102      * @tc.steps: step2. use refereeState_ != RefereeState::SUCCEED and refereeState_ != RefereeState::FAIL.
10103      * @tc.expect: pinchRecognizer->disposal_ is equal to GestureDisposal::REJECT.
10104      */
10105     TouchEvent touchEvent;
10106     pinchRecognizer->isPinchEnd_ = false;
10107     pinchRecognizer->refereeState_ = RefereeState::FAIL;
10108     pinchRecognizer->currentFingers_ = FINGER_NUMBER;
10109     pinchRecognizer->HandleTouchDownEvent(touchEvent);
10110     pinchRecognizer->refereeState_ = RefereeState::READY;
10111     pinchRecognizer->currentFingers_ = FINGER_NUMBER;
10112     pinchRecognizer->HandleTouchDownEvent(touchEvent);
10113     EXPECT_EQ(pinchRecognizer->disposal_, GestureDisposal::NONE);
10114 
10115     /**
10116      * @tc.steps: step3. test with HandleTouchDownEvent(AxisEvent).
10117      */
10118     AxisEvent axisEvent;
10119     /**
10120      * @tc.steps: step3.1. test with isPinchEnd_ is true.
10121      */
10122     pinchRecognizer->isPinchEnd_ = true;
10123     pinchRecognizer->currentFingers_ = FINGER_NUMBER;
10124     pinchRecognizer->HandleTouchUpEvent(axisEvent);
10125 
10126     /**
10127      * @tc.steps: step3.2. test with refereeState_ != RefereeState::SUCCEED and refereeState_ != RefereeState::FAIL.
10128      * @tc.expect: pinchRecognizer->disposal_ is equal to GestureDisposal::REJECT.
10129      */
10130     pinchRecognizer->isPinchEnd_ = false;
10131     pinchRecognizer->refereeState_ = RefereeState::DETECTING;
10132     pinchRecognizer->currentFingers_ = FINGER_NUMBER;
10133     pinchRecognizer->HandleTouchUpEvent(axisEvent);
10134     EXPECT_EQ(pinchRecognizer->disposal_, GestureDisposal::REJECT);
10135 
10136     /**
10137      * @tc.steps: step3.2. test with refereeState_ != RefereeState::SUCCEED.
10138      * @tc.expect: pinchRecognizer->isPinchEnd_ is true.
10139      */
10140     pinchRecognizer->refereeState_ = RefereeState::SUCCEED;
10141     pinchRecognizer->currentFingers_ = FINGER_NUMBER;
10142     pinchRecognizer->HandleTouchUpEvent(axisEvent);
10143     EXPECT_EQ(pinchRecognizer->isPinchEnd_, true);
10144 }
10145 
10146 /**
10147  * @tc.name: PinchRecognizerHandleTouchMoveEventTest001
10148  * @tc.desc: Test PinchRecognizer function: HandleTouchMoveEvent
10149  * @tc.type: FUNC
10150  */
10151 HWTEST_F(GesturesTestNg, PinchRecognizerHandleTouchMoveEventTest001, TestSize.Level1)
10152 {
10153     /**
10154      * @tc.steps: step1. create PinchRecognizer.
10155      */
10156     RefPtr<PinchRecognizer> pinchRecognizer = AceType::MakeRefPtr<PinchRecognizer>(SINGLE_FINGER_NUMBER,
10157                                                                                    PINCH_GESTURE_DISTANCE);
10158     ASSERT_NE(pinchRecognizer, nullptr);
10159 
10160     /**
10161      * @tc.steps: step2. test HandleTouchMoveEvent(TouchEvent).
10162      */
10163     pinchRecognizer->refereeState_ = RefereeState::DETECTING;
10164     std::vector<TouchEvent> touchEvents;
10165     for (std::size_t i = 0; i < 5; ++i) {
10166         TouchEvent touchEvent;
10167         touchEvent.x = 100.0 * (i + 1);
10168         touchEvent.y = 100.0 * (i + 1);
10169         pinchRecognizer->touchPoints_[i] = touchEvent;
10170     }
10171     pinchRecognizer->initialDev_ = 1.0;
10172     TouchEvent touchEvent;
10173     touchEvent.x = 100.0;
10174     touchEvent.y = 100.0;
10175 
10176     /**
10177      * @tc.steps: step2.1. test HandleTouchMoveEvent(TouchEvent) with fabs(currentDev_ - initialDev_) >= distance_.
10178      * @tc.expect: scale_ = pinchRecognizer->ComputeAverageDeviation() / initialDev_.
10179      */
10180     pinchRecognizer->currentFingers_ = FINGER_NUMBER;
10181     pinchRecognizer->HandleTouchMoveEvent(touchEvent);
10182 
10183     /**
10184      * @tc.steps: step2.2. test HandleTouchMoveEvent(TouchEvent) with refereeState_ == RefereeState::SUCCEED.
10185      * @tc.expect: scale_ = pinchRecognizer->ComputeAverageDeviation() / initialDev_
10186      */
10187     pinchRecognizer->refereeState_ = RefereeState::SUCCEED;
10188     pinchRecognizer->initialDev_ = 2.0;
10189     pinchRecognizer->OnFlushTouchEventsEnd();
10190     pinchRecognizer->currentFingers_ = FINGER_NUMBER;
10191     pinchRecognizer->HandleTouchMoveEvent(touchEvent);
10192 
10193     /**
10194      * @tc.steps: step3. test HandleTouchMoveEvent(AxisEvent).
10195      */
10196     AxisEvent axisEvent;
10197     pinchRecognizer->isPinchEnd_ = false;
10198 
10199     /**
10200      * @tc.steps: step3.1. axisEvent NearZero and IsCtrlBeingPressed() is false.
10201      * @tc.expect: pinchRecognizer->disposal_ is equal to GestureDisposal::REJECT.
10202      */
10203     axisEvent.pinchAxisScale = 0.0;
10204     pinchRecognizer->refereeState_ = RefereeState::DETECTING;
10205     auto context = PipelineContext::GetCurrentContext();
10206     ASSERT_NE(context, nullptr);
10207     context->eventManager_ = nullptr;
10208     pinchRecognizer->currentFingers_ = FINGER_NUMBER;
10209     pinchRecognizer->HandleTouchMoveEvent(axisEvent);
10210     EXPECT_EQ(pinchRecognizer->disposal_, GestureDisposal::REJECT);
10211 
10212     /**
10213      * @tc.steps: step3.2. test with refereeState_ = RefereeState::SUCCEED.
10214      * @tc.expect: pinchRecognizer->refereeState_ is equal to RefereeState::READY.
10215      */
10216     pinchRecognizer->isPinchEnd_ = false;
10217     pinchRecognizer->refereeState_ = RefereeState::SUCCEED;
10218     pinchRecognizer->currentFingers_ = FINGER_NUMBER;
10219     pinchRecognizer->HandleTouchMoveEvent(axisEvent);
10220     EXPECT_EQ(pinchRecognizer->isPinchEnd_, true);
10221 
10222     /**
10223      * @tc.steps: step3.3. test with axisEvent not NearZero .
10224      * @tc.expect: pinchRecognizer->scale_ is equal to axisEvent.pinchAxisScale.
10225      */
10226     pinchRecognizer->isPinchEnd_ = false;
10227     axisEvent.pinchAxisScale = 1.0;
10228     pinchRecognizer->refereeState_ = RefereeState::DETECTING;
10229     pinchRecognizer->currentFingers_ = FINGER_NUMBER;
10230     pinchRecognizer->HandleTouchMoveEvent(axisEvent);
10231     EXPECT_EQ(pinchRecognizer->scale_, axisEvent.pinchAxisScale);
10232 }
10233 
10234 /**
10235  * @tc.name: PinchRecognizerHandleTouchMoveEventTest002
10236  * @tc.desc: Test PinchRecognizer function: HandleTouchMoveEvent
10237  * @tc.type: FUNC
10238  */
10239 HWTEST_F(GesturesTestNg, PinchRecognizerHandleTouchMoveEventTest002, TestSize.Level1)
10240 {
10241     /**
10242      * @tc.steps: step1. create PinchRecognizer.
10243      */
10244     RefPtr<PinchRecognizer> pinchRecognizer = AceType::MakeRefPtr<PinchRecognizer>(SINGLE_FINGER_NUMBER,
10245                                                                                    PINCH_GESTURE_DISTANCE);
10246 
10247     /**
10248      * @tc.steps: step2. test HandleTouchMoveEvent(TouchEvent).
10249      */
10250     pinchRecognizer->refereeState_ = RefereeState::DETECTING;
10251     std::vector<TouchEvent> touchEvents;
10252     for (std::size_t i = 0; i < 5; ++i) {
10253         TouchEvent touchEvent;
10254         touchEvent.x = 100.0 * (i + 1);
10255         touchEvent.y = 100.0 * (i + 1);
10256         pinchRecognizer->touchPoints_[i] = touchEvent;
10257     }
10258     pinchRecognizer->initialDev_ = 1.0;
10259     TouchEvent touchEvent;
10260     touchEvent.x = 100.0;
10261     touchEvent.y = 100.0;
10262 
10263     /**
10264      * @tc.steps: step2.1. test HandleTouchMoveEvent(TouchEvent) with fabs(currentDev_ - initialDev_) >= distance_.
10265      * @tc.expect: scale_ = pinchRecognizer->ComputeAverageDeviation() / initialDev_.
10266      */
10267     pinchRecognizer->currentFingers_ = FINGER_NUMBER;
10268     pinchRecognizer->HandleTouchMoveEvent(touchEvent);
10269     pinchRecognizer->refereeState_ = RefereeState::SUCCEED;
10270     pinchRecognizer->initialDev_ = 2.0;
10271     pinchRecognizer->OnFlushTouchEventsEnd();
10272 
10273     /**
10274      * @tc.steps: step3. test HandleTouchMoveEvent(AxisEvent).
10275      */
10276     AxisEvent axisEvent;
10277     pinchRecognizer->isPinchEnd_ = false;
10278 
10279     /**
10280      * @tc.steps: step3.1. axisEvent NearZero and IsCtrlBeingPressed() is false.
10281      * @tc.expect: pinchRecognizer->disposal_ is equal to GestureDisposal::REJECT.
10282      */
10283     auto context = PipelineContext::GetCurrentContext();
10284     context->eventManager_ = nullptr;
10285     pinchRecognizer->isPinchEnd_ = false;
10286     axisEvent.pinchAxisScale = 1.0;
10287     pinchRecognizer->refereeState_ = RefereeState::SUCCEED;
10288     pinchRecognizer->currentFingers_ = FINGER_NUMBER;
10289     pinchRecognizer->HandleTouchMoveEvent(axisEvent);
10290     pinchRecognizer->refereeState_ = RefereeState::FAIL;
10291     pinchRecognizer->HandleTouchMoveEvent(axisEvent);
10292     EXPECT_EQ(pinchRecognizer->scale_, axisEvent.pinchAxisScale);
10293 
10294     axisEvent.pinchAxisScale = 0;
10295     pinchRecognizer->refereeState_ = RefereeState::DETECTING;
10296     pinchRecognizer->HandleTouchCancelEvent(axisEvent);
10297     pinchRecognizer->refereeState_ = RefereeState::DETECTING;
10298     pinchRecognizer->HandleTouchCancelEvent(touchEvent);
10299     pinchRecognizer->refereeState_ = RefereeState::DETECTING;
10300     pinchRecognizer->currentFingers_ = pinchRecognizer->fingers_;
10301     pinchRecognizer->HandleTouchUpEvent(touchEvent);
10302     pinchRecognizer->refereeState_ = RefereeState::FAIL;
10303     pinchRecognizer->isPinchEnd_ = false;
10304     pinchRecognizer->HandleTouchUpEvent(axisEvent);
10305     EXPECT_EQ(pinchRecognizer->scale_, 1);
10306 }
10307 
10308 /**
10309  * @tc.name: LongPressRecognizerHandleTouchUpEventTest009
10310  * @tc.desc: Test LongPressRecognizer function: HandleTouchUpEvent
10311  * @tc.type: FUNC
10312  */
10313 HWTEST_F(GesturesTestNg, LongPressRecognizerHandleTouchUpEventTest009, TestSize.Level1)
10314 {
10315     /**
10316      * @tc.steps: step1. create PinchRecognizer.
10317      */
10318     RefPtr<LongPressRecognizer> longPressRecognizer =AceType::MakeRefPtr<LongPressRecognizer>(LONG_PRESS_DURATION,
10319         FINGER_NUMBER, false);
10320     TouchEvent touchEvent;
10321     touchEvent.x = 100.0;
10322     touchEvent.y = 100.0;
10323 
10324     longPressRecognizer->refereeState_ = RefereeState::DETECTING;
10325     longPressRecognizer->currentFingers_ = longPressRecognizer->fingers_;
10326     longPressRecognizer->HandleTouchUpEvent(touchEvent);
10327     EXPECT_EQ(longPressRecognizer->repeat_, false);
10328 }
10329 
10330 /**
10331  * @tc.name: LongPressRecognizerHandleTouchCancelEventTest001
10332  * @tc.desc: Test LongPressRecognizer function: HandleTouchCancelEvent
10333  * @tc.type: FUNC
10334  */
10335 HWTEST_F(GesturesTestNg, LongPressRecognizerHandleTouchCancelEventTest001, TestSize.Level1)
10336 {
10337     /**
10338      * @tc.steps: step1. create LongPressRecognizer.
10339      */
10340     RefPtr<LongPressRecognizer> longPressRecognizer =AceType::MakeRefPtr<LongPressRecognizer>(LONG_PRESS_DURATION,
10341         FINGER_NUMBER, false);
10342     TouchEvent touchEvent;
10343     touchEvent.x = 100.0;
10344     touchEvent.y = 100.0;
10345 
10346     longPressRecognizer->refereeState_ = RefereeState::DETECTING;
10347     longPressRecognizer->currentFingers_ = longPressRecognizer->fingers_;
10348     longPressRecognizer->HandleTouchCancelEvent(touchEvent);
10349     EXPECT_EQ(longPressRecognizer->repeat_, false);
10350 }
10351 
10352 /**
10353  * @tc.name: LongPressRecognizerHandleTouchDownEventTest001
10354  * @tc.desc: Test LongPressRecognizer function: HandleTouchDownEvent
10355  * @tc.type: FUNC
10356  */
10357 HWTEST_F(GesturesTestNg, LongPressRecognizerHandleTouchDownEventTest001, TestSize.Level1)
10358 {
10359     /**
10360      * @tc.steps: step1. create LongPressRecognizer.
10361      */
10362     RefPtr<LongPressRecognizer> longPressRecognizer =AceType::MakeRefPtr<LongPressRecognizer>(LONG_PRESS_DURATION,
10363         FINGER_NUMBER, false);
10364     TouchEvent touchEvent;
10365     touchEvent.x = 100.0;
10366     touchEvent.y = 100.0;
10367     touchEvent.sourceType = SourceType::MOUSE;
10368 
10369     longPressRecognizer->refereeState_ = RefereeState::DETECTING;
10370     longPressRecognizer->isDisableMouseLeft_ = true;
10371     longPressRecognizer->currentFingers_ = longPressRecognizer->fingers_;
10372     longPressRecognizer->HandleTouchDownEvent(touchEvent);
10373     EXPECT_EQ(longPressRecognizer->repeat_, false);
10374 }
10375 
10376 /**
10377  * @tc.name: LongPressRecognizerHandleTouchMoveEventTest001
10378  * @tc.desc: Test LongPressRecognizer function: HandleTouchMoveEvent
10379  * @tc.type: FUNC
10380  */
10381 HWTEST_F(GesturesTestNg, LongPressRecognizerHandleTouchMoveEventTest001, TestSize.Level1)
10382 {
10383     /**
10384      * @tc.steps: step1. create LongPressRecognizer.
10385      */
10386     RefPtr<LongPressRecognizer> longPressRecognizer =AceType::MakeRefPtr<LongPressRecognizer>(LONG_PRESS_DURATION,
10387         FINGER_NUMBER, false);
10388     TouchEvent touchEvent;
10389     touchEvent.x = 100.0;
10390     touchEvent.y = 100.0;
10391     touchEvent.sourceType = SourceType::MOUSE;
10392 
10393     longPressRecognizer->refereeState_ = RefereeState::DETECTING;
10394     longPressRecognizer->isDisableMouseLeft_ = true;
10395     longPressRecognizer->currentFingers_ = longPressRecognizer->fingers_;
10396     longPressRecognizer->isForDrag_ = true;
10397     longPressRecognizer->HandleTouchMoveEvent(touchEvent);
10398     EXPECT_EQ(longPressRecognizer->repeat_, false);
10399 
10400     longPressRecognizer->refereeState_ = RefereeState::DETECTING;
10401     longPressRecognizer->isDisableMouseLeft_ = false;
10402     longPressRecognizer->currentFingers_ = longPressRecognizer->fingers_;
10403     longPressRecognizer->isForDrag_ = false;
10404     longPressRecognizer->HandleTouchMoveEvent(touchEvent);
10405     EXPECT_EQ(longPressRecognizer->repeat_, false);
10406 }
10407 
10408 /**
10409  * @tc.name: LongPressRecognizerHandleOverdueDeadlineTest001
10410  * @tc.desc: Test LongPressRecognizer function: HandleOverdueDeadline
10411  * @tc.type: FUNC
10412  */
10413 HWTEST_F(GesturesTestNg, LongPressRecognizerHandleOverdueDeadlineTest001, TestSize.Level1)
10414 {
10415     /**
10416      * @tc.steps: step1. create LongPressRecognizer.
10417      */
10418     RefPtr<LongPressRecognizer> longPressRecognizer =AceType::MakeRefPtr<LongPressRecognizer>(LONG_PRESS_DURATION,
10419         FINGER_NUMBER, false);
10420     TouchEvent touchEvent;
10421     touchEvent.x = 100.0;
10422     touchEvent.y = 100.0;
10423     touchEvent.sourceType = SourceType::MOUSE;
10424 
10425     longPressRecognizer->refereeState_ = RefereeState::DETECTING;
10426     longPressRecognizer->HandleOverdueDeadline(true);
10427     EXPECT_EQ(longPressRecognizer->repeat_, false);
10428 }
10429 
10430 /**
10431  * @tc.name: SwipeRecognizerHandleTouchDownEventTest001
10432  * @tc.desc: Test SwipeRecognizer function: HandleTouchDownEvent
10433  * @tc.type: FUNC
10434  */
10435 HWTEST_F(GesturesTestNg, SwipeRecognizerHandleTouchDownEventTest001, TestSize.Level1)
10436 {
10437     /**
10438      * @tc.steps: step1. create LongPressRecognizer.
10439      */
10440     SwipeDirection swipeDirection;
10441     RefPtr<SwipeRecognizer> swipeRecognizer = AceType::MakeRefPtr<SwipeRecognizer>(SINGLE_FINGER_NUMBER,
10442         swipeDirection, SWIPE_SPEED);
10443     TouchEvent touchEvent;
10444     touchEvent.x = 100.0;
10445     touchEvent.y = 100.0;
10446     touchEvent.sourceType = SourceType::MOUSE;
10447 
10448     swipeRecognizer->refereeState_ = RefereeState::DETECTING;
10449     swipeRecognizer->fingers_ = 11;
10450     swipeRecognizer->direction_.type = SwipeDirection::NONE;
10451     swipeRecognizer->HandleTouchDownEvent(touchEvent);
10452     EXPECT_EQ(swipeRecognizer->globalPoint_.GetX(), 0);
10453 
10454     swipeRecognizer->refereeState_ = RefereeState::DETECTING;
10455     swipeRecognizer->fingers_ = FINGER_NUMBER;
10456     swipeRecognizer->direction_.type = SwipeDirection::NONE;
10457     swipeRecognizer->HandleTouchDownEvent(touchEvent);
10458     EXPECT_EQ(swipeRecognizer->globalPoint_.GetX(), 0);
10459 }
10460 
10461 /**
10462  * @tc.name: SwipeRecognizerHandleTouchDownEventTest002
10463  * @tc.desc: Test SwipeRecognizer function: HandleTouchDownEvent
10464  * @tc.type: FUNC
10465  */
10466 HWTEST_F(GesturesTestNg, SwipeRecognizerHandleTouchDownEventTest002, TestSize.Level1)
10467 {
10468     /**
10469      * @tc.steps: step1. create SwipeRecognizer.
10470      */
10471     SwipeDirection swipeDirection;
10472     RefPtr<SwipeRecognizer> swipeRecognizer = AceType::MakeRefPtr<SwipeRecognizer>(SINGLE_FINGER_NUMBER,
10473         swipeDirection, SWIPE_SPEED);
10474     TouchEvent touchEvent;
10475     touchEvent.x = 100.0;
10476     touchEvent.y = 100.0;
10477     touchEvent.sourceType = SourceType::MOUSE;
10478 
10479     AxisEvent axisEvent;
10480     swipeRecognizer->refereeState_ = RefereeState::DETECTING;
10481     swipeRecognizer->fingers_ = 11;
10482     swipeRecognizer->direction_.type = SwipeDirection::NONE;
10483     swipeRecognizer->HandleTouchDownEvent(axisEvent);
10484     EXPECT_EQ(swipeRecognizer->globalPoint_.GetX(), 0);
10485 
10486     swipeRecognizer->refereeState_ = RefereeState::DETECTING;
10487     swipeRecognizer->fingers_ = FINGER_NUMBER;
10488     swipeRecognizer->direction_.type = SwipeDirection::NONE;
10489     swipeRecognizer->HandleTouchDownEvent(axisEvent);
10490     EXPECT_EQ(swipeRecognizer->globalPoint_.GetX(), 0);
10491 }
10492 
10493 /**
10494  * @tc.name: SwipeRecognizerHandleTouchUpEventTest003
10495  * @tc.desc: Test SwipeRecognizer function: HandleTouchUpEvent
10496  * @tc.type: FUNC
10497  */
10498 HWTEST_F(GesturesTestNg, SwipeRecognizerHandleTouchUpEventTest003, TestSize.Level1)
10499 {
10500     /**
10501      * @tc.steps: step1. create SwipeRecognizer.
10502      */
10503     SwipeDirection swipeDirection;
10504     RefPtr<SwipeRecognizer> swipeRecognizer = AceType::MakeRefPtr<SwipeRecognizer>(SINGLE_FINGER_NUMBER,
10505         swipeDirection, SWIPE_SPEED);
10506     TouchEvent touchEvent;
10507     touchEvent.x = 100.0;
10508     touchEvent.y = 100.0;
10509     touchEvent.sourceType = SourceType::MOUSE;
10510 
10511     swipeRecognizer->refereeState_ = RefereeState::SUCCEED;
10512     swipeRecognizer->fingers_ = 11;
10513     swipeRecognizer->direction_.type = SwipeDirection::NONE;
10514     swipeRecognizer->HandleTouchDownEvent(touchEvent);
10515     EXPECT_EQ(swipeRecognizer->globalPoint_.GetX(), 0);
10516 }
10517 
10518 
10519 /**
10520  * @tc.name: SwipeRecognizerHandleTouchUpEventTest006
10521  * @tc.desc: Test SwipeRecognizer function: HandleTouchUpEvent
10522  * @tc.type: FUNC
10523  */
10524 HWTEST_F(GesturesTestNg, SwipeRecognizerHandleTouchUpEventTest006, TestSize.Level1)
10525 {
10526     /**
10527      * @tc.steps: step1. create SwipeRecognizer.
10528      */
10529     SwipeDirection swipeDirection;
10530     RefPtr<SwipeRecognizer> swipeRecognizer = AceType::MakeRefPtr<SwipeRecognizer>(SINGLE_FINGER_NUMBER,
10531         swipeDirection, SWIPE_SPEED);
10532     TouchEvent touchEvent;
10533     touchEvent.x = 100.0;
10534     touchEvent.y = 100.0;
10535     touchEvent.sourceType = SourceType::MOUSE;
10536     swipeRecognizer->OnResetStatus();
10537     touchEvent.time = swipeRecognizer->touchDownTime_;
10538 
10539     swipeRecognizer->refereeState_ = RefereeState::SUCCEED;
10540     swipeRecognizer->currentFingers_ = swipeRecognizer->fingers_;
10541     swipeRecognizer->HandleTouchUpEvent(touchEvent);
10542     EXPECT_EQ(swipeRecognizer->globalPoint_.GetX(), touchEvent.x);
10543 
10544     swipeRecognizer->refereeState_ = RefereeState::DETECTING;
10545     swipeRecognizer->HandleTouchUpEvent(touchEvent);
10546     EXPECT_EQ(swipeRecognizer->globalPoint_.GetX(), touchEvent.x);
10547 
10548     swipeRecognizer->refereeState_ = RefereeState::READY;
10549     swipeRecognizer->HandleTouchUpEvent(touchEvent);
10550     EXPECT_EQ(swipeRecognizer->globalPoint_.GetX(), touchEvent.x);
10551 
10552     swipeRecognizer->refereeState_ = RefereeState::PENDING;
10553     swipeRecognizer->HandleTouchUpEvent(touchEvent);
10554     EXPECT_EQ(swipeRecognizer->globalPoint_.GetX(), touchEvent.x);
10555 
10556     swipeRecognizer->refereeState_ = RefereeState::PENDING_BLOCKED;
10557     swipeRecognizer->HandleTouchUpEvent(touchEvent);
10558     EXPECT_EQ(swipeRecognizer->globalPoint_.GetX(), touchEvent.x);
10559 
10560     swipeRecognizer->refereeState_ = RefereeState::SUCCEED_BLOCKED;
10561     swipeRecognizer->HandleTouchUpEvent(touchEvent);
10562     EXPECT_EQ(swipeRecognizer->globalPoint_.GetX(), touchEvent.x);
10563 
10564     swipeRecognizer->refereeState_ = RefereeState::FAIL;
10565     swipeRecognizer->HandleTouchUpEvent(touchEvent);
10566     EXPECT_EQ(swipeRecognizer->globalPoint_.GetX(), touchEvent.x);
10567 }
10568 
10569 /**
10570  * @tc.name: PanRecognizerHandleTouchDownEventTest003
10571  * @tc.desc: Test PanRecognizer function: HandleTouchDownEvent
10572  * @tc.type: FUNC
10573  */
10574 HWTEST_F(GesturesTestNg, PanRecognizerHandleTouchDownEventTest003, TestSize.Level1)
10575 {
10576     /**
10577      * @tc.steps: step1. create PanRecognizer.
10578      */
10579     RefPtr<PanGestureOption> panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
10580     RefPtr<PanRecognizer> panRecognizerPtr = AceType::MakeRefPtr<PanRecognizer>(panGestureOption);
10581     TouchEvent touchEvent;
10582     touchEvent.x = 100.0;
10583     touchEvent.y = 100.0;
10584     touchEvent.sourceType = SourceType::MOUSE;
10585 
10586     panRecognizerPtr->direction_.type = PanDirection::NONE;
10587     panRecognizerPtr->isAllowMouse_ = false;
10588     panRecognizerPtr->HandleTouchDownEvent(touchEvent);
10589     EXPECT_EQ(panRecognizerPtr->globalPoint_.GetX(), 0);
10590 }
10591 
10592 
10593 /**
10594  * @tc.name: PanRecognizerHandleTouchCancelEventTest003
10595  * @tc.desc: Test PanRecognizer function: HandleTouchCancelEvent
10596  * @tc.type: FUNC
10597  */
10598 HWTEST_F(GesturesTestNg, PanRecognizerHandleTouchCancelEventTest003, TestSize.Level1)
10599 {
10600     /**
10601      * @tc.steps: step1. create PanRecognizer.
10602      */
10603     RefPtr<PanGestureOption> panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
10604     RefPtr<PanRecognizer> panRecognizerPtr = AceType::MakeRefPtr<PanRecognizer>(panGestureOption);
10605     TouchEvent touchEvent;
10606     touchEvent.x = 100.0;
10607     touchEvent.y = 100.0;
10608     touchEvent.sourceType = SourceType::MOUSE;
10609     AxisEvent axisEvent;
10610 
10611     panRecognizerPtr->refereeState_ = RefereeState::PENDING_BLOCKED;
10612     panRecognizerPtr->HandleTouchCancelEvent(touchEvent);
10613     EXPECT_EQ(panRecognizerPtr->globalPoint_.GetX(), 0);
10614 
10615     panRecognizerPtr->refereeState_ = RefereeState::PENDING_BLOCKED;
10616     panRecognizerPtr->HandleTouchCancelEvent(axisEvent);
10617     EXPECT_EQ(panRecognizerPtr->globalPoint_.GetX(), 0);
10618 }
10619 
10620 /**
10621  * @tc.name: PanRecognizerOnRejectedTest001
10622  * @tc.desc: Test PanRecognizer function: OnRejected
10623  * @tc.type: FUNC
10624  */
10625 HWTEST_F(GesturesTestNg, PanRecognizerOnRejectedTest001, TestSize.Level1)
10626 {
10627     /**
10628      * @tc.steps: step1. create PanRecognizer.
10629      */
10630     RefPtr<PanGestureOption> panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
10631     RefPtr<PanRecognizer> panRecognizerPtr = AceType::MakeRefPtr<PanRecognizer>(panGestureOption);
10632 
10633     panRecognizerPtr->refereeState_ = RefereeState::PENDING_BLOCKED;
10634     panRecognizerPtr->OnRejected();
10635     EXPECT_EQ(panRecognizerPtr->globalPoint_.GetX(), 0);
10636 }
10637 
10638 /**
10639  * @tc.name: PanRecognizerHandleTouchDownEventTest004
10640  * @tc.desc: Test PanRecognizer function: HandleTouchDownEvent
10641  * @tc.type: FUNC
10642  */
10643 HWTEST_F(GesturesTestNg, PanRecognizerHandleTouchDownEventTest004, TestSize.Level1)
10644 {
10645     /**
10646      * @tc.steps: step1. create PanRecognizer.
10647      */
10648     RefPtr<PanGestureOption> panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
10649     RefPtr<PanRecognizer> panRecognizerPtr = AceType::MakeRefPtr<PanRecognizer>(panGestureOption);
10650     TouchEvent touchEvent;
10651     touchEvent.x = 100.0;
10652     touchEvent.y = 100.0;
10653     touchEvent.sourceType = SourceType::MOUSE;
10654 
10655     panRecognizerPtr->newDirection_.type = PanDirection::NONE;
10656     panRecognizerPtr->isAllowMouse_ = false;
10657     panRecognizerPtr->HandleTouchDownEvent(touchEvent);
10658     EXPECT_EQ(panRecognizerPtr->globalPoint_.GetX(), 0);
10659 }
10660 
10661 /**
10662  * @tc.name: PanRecognizerHandleTouchDownEventTest005
10663  * @tc.desc: Test PanRecognizer function: HandleTouchDownEvent
10664  * @tc.type: FUNC
10665  */
10666 HWTEST_F(GesturesTestNg, PanRecognizerHandleTouchDownEventTest005, TestSize.Level1)
10667 {
10668     /**
10669      * @tc.steps: step1. create PanRecognizer.
10670      */
10671     RefPtr<PanGestureOption> panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
10672     RefPtr<PanRecognizer> panRecognizerPtr = AceType::MakeRefPtr<PanRecognizer>(panGestureOption);
10673     TouchEvent touchEvent;
10674     touchEvent.x = 100.0;
10675     touchEvent.y = 100.0;
10676     touchEvent.sourceType = SourceType::MOUSE;
10677     AxisEvent axisEvent;
10678 
10679     panRecognizerPtr->newDirection_.type = PanDirection::NONE;
10680     panRecognizerPtr->newFingers_ = 1;
10681     panRecognizerPtr->isAllowMouse_ = false;
10682     panRecognizerPtr->HandleTouchDownEvent(axisEvent);
10683     EXPECT_EQ(panRecognizerPtr->globalPoint_.GetX(), 0);
10684 
10685     panRecognizerPtr->newDirection_.type = PanDirection::NONE;
10686     panRecognizerPtr->newFingers_ = FINGER_NUMBER;
10687     panRecognizerPtr->isAllowMouse_ = false;
10688     panRecognizerPtr->HandleTouchDownEvent(axisEvent);
10689     EXPECT_EQ(panRecognizerPtr->globalPoint_.GetX(), 0);
10690 }
10691 
10692 /**
10693  * @tc.name: PanRecognizerHandleTouchMoveEventTest005
10694  * @tc.desc: Test PanRecognizer function: HandleTouchMoveEvent
10695  * @tc.type: FUNC
10696  */
10697 HWTEST_F(GesturesTestNg, PanRecognizerHandleTouchMoveEventTest005, TestSize.Level1)
10698 {
10699     /**
10700      * @tc.steps: step1. create PanRecognizer.
10701      */
10702     RefPtr<PanGestureOption> panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
10703     RefPtr<PanRecognizer> panRecognizerPtr = AceType::MakeRefPtr<PanRecognizer>(panGestureOption);
10704     TouchEvent touchEvent;
10705     touchEvent.x = 100.0;
10706     touchEvent.y = 100.0;
10707     touchEvent.sourceType = SourceType::MOUSE;
10708 
10709     panRecognizerPtr->fingers_ = 11;
10710     panRecognizerPtr->currentFingers_ = panRecognizerPtr->fingers_;
10711     panRecognizerPtr->refereeState_ = RefereeState::DETECTING;
10712     panRecognizerPtr->HandleTouchMoveEvent(touchEvent);
10713     EXPECT_EQ(panRecognizerPtr->globalPoint_.GetX(), touchEvent.x);
10714 
10715     panRecognizerPtr->fingers_ = 0;
10716     panRecognizerPtr->currentFingers_ = panRecognizerPtr->fingers_;
10717     panRecognizerPtr->refereeState_ = RefereeState::DETECTING;
10718     panRecognizerPtr->HandleTouchMoveEvent(touchEvent);
10719     EXPECT_EQ(panRecognizerPtr->globalPoint_.GetX(), touchEvent.x);
10720 }
10721 
10722 /**
10723  * @tc.name: PanRecognizerHandleTouchMoveEventTest006
10724  * @tc.desc: Test PanRecognizer function: HandleTouchMoveEvent
10725  * @tc.type: FUNC
10726  */
10727 HWTEST_F(GesturesTestNg, PanRecognizerHandleTouchMoveEventTest006, TestSize.Level1)
10728 {
10729     /**
10730      * @tc.steps: step1. create PanRecognizer.
10731      */
10732     RefPtr<PanGestureOption> panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
10733     RefPtr<PanRecognizer> panRecognizer = AceType::MakeRefPtr<PanRecognizer>(panGestureOption);
10734     TouchEvent touchEvent;
10735     touchEvent.x = 100.0;
10736     touchEvent.y = 100.0;
10737 
10738     /**
10739      * @tc.steps: step2. case1: PanDirection::ALL, fabs(offset) >= distance_.
10740      * @tc.expected: step2. return ACCEPT.
10741      */
10742     PanRecognizer::GestureAcceptResult result;
10743     panRecognizer->currentFingers_ = panRecognizer->fingers_;
10744     panRecognizer->refereeState_ = RefereeState::DETECTING;
10745     panRecognizer->direction_.type = PanDirection::ALL;
10746     panRecognizer->distance_ = 0;
10747     result = panRecognizer->IsPanGestureAccept();
10748     panRecognizer->HandleTouchMoveEvent(touchEvent);
10749     EXPECT_EQ(result, PanRecognizer::GestureAcceptResult::ACCEPT);
10750 
10751     /**
10752      * @tc.steps: step2. case2: PanDirection::ALL, fabs(offset) < distance_.
10753      * @tc.expected: step2. return DETECTING.
10754      */
10755     panRecognizer->direction_.type = PanDirection::ALL;
10756     panRecognizer->distance_ = 1;
10757     result = panRecognizer->IsPanGestureAccept();
10758     panRecognizer->HandleTouchMoveEvent(touchEvent);
10759     EXPECT_EQ(result, PanRecognizer::GestureAcceptResult::ACCEPT);
10760 
10761     /**
10762      * @tc.steps: step2. case3: GetX > GetY, GetX < distance, PanDirection::HORIZONTAL.
10763      * @tc.expected: step2. return DETECTING.
10764      */
10765     panRecognizer->direction_.type = PanDirection::HORIZONTAL;
10766     panRecognizer->averageDistance_ = Offset(0, -1);
10767     panRecognizer->distance_ = 1;
10768     result = panRecognizer->IsPanGestureAccept();
10769     panRecognizer->HandleTouchMoveEvent(touchEvent);
10770     EXPECT_EQ(result, PanRecognizer::GestureAcceptResult::DETECTING);
10771 
10772     /**
10773      * @tc.steps: step2. case4: GetX > GetY, GetX > 0, GetX > distance_, PanDirection::LEFT.
10774      * @tc.expected: step2. return REJECT.
10775      */
10776     panRecognizer->direction_.type = PanDirection::LEFT;
10777     panRecognizer->averageDistance_ = Offset(1, 0);
10778     panRecognizer->distance_ = 0;
10779     result = panRecognizer->IsPanGestureAccept();
10780     panRecognizer->HandleTouchMoveEvent(touchEvent);
10781     EXPECT_EQ(result, PanRecognizer::GestureAcceptResult::REJECT);
10782 
10783     /**
10784      * @tc.steps: step2. case5: GetX > GetY, GetX > 0, GetX > distance_, PanDirection::VERTICAL.
10785      * @tc.expected: step2. return REJECT.
10786      */
10787     panRecognizer->direction_.type = PanDirection::VERTICAL;
10788     panRecognizer->averageDistance_ = Offset(1, 0);
10789     panRecognizer->distance_ = 0;
10790     result = panRecognizer->IsPanGestureAccept();
10791     panRecognizer->HandleTouchMoveEvent(touchEvent);
10792     EXPECT_EQ(result, PanRecognizer::GestureAcceptResult::DETECTING);
10793 
10794     /**
10795      * @tc.steps: step2. case6: GetX > GetY, GetX = distance_ = 0, PanDirection::VERTICAL.
10796      * @tc.expected: step2. return ACCEPT.
10797      */
10798     panRecognizer->direction_.type = PanDirection::VERTICAL;
10799     panRecognizer->averageDistance_ = Offset(0, -1);
10800     panRecognizer->distance_ = 0;
10801     result = panRecognizer->IsPanGestureAccept();
10802     panRecognizer->HandleTouchMoveEvent(touchEvent);
10803     EXPECT_EQ(result, PanRecognizer::GestureAcceptResult::ACCEPT);
10804 }
10805 
10806 /**
10807  * @tc.name: PanRecognizerHandleTouchMoveEventTest007
10808  * @tc.desc: Test PanRecognizer function: HandleTouchMoveEvent
10809  * @tc.type: FUNC
10810  */
10811 HWTEST_F(GesturesTestNg, PanRecognizerHandleTouchMoveEventTest007, TestSize.Level1)
10812 {
10813     /**
10814      * @tc.steps: step1. create PanRecognizer.
10815      */
10816     RefPtr<PanGestureOption> panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
10817     RefPtr<PanRecognizer> panRecognizer = AceType::MakeRefPtr<PanRecognizer>(panGestureOption);
10818     TouchEvent touchEvent;
10819 
10820     /**
10821      * @tc.steps: step2. case1: PanDirection::ALL, fabs(offset) >= distance_.
10822      * @tc.expected: step2. return ACCEPT.
10823      */
10824     PanRecognizer::GestureAcceptResult result;
10825     panRecognizer->direction_.type = PanDirection::ALL;
10826     panRecognizer->distance_ = 0;
10827     result = panRecognizer->IsPanGestureAccept();
10828     panRecognizer->currentFingers_ = panRecognizer->fingers_;
10829     panRecognizer->refereeState_ = RefereeState::DETECTING;
10830     panRecognizer->HandleTouchMoveEvent(touchEvent);
10831     panRecognizer->direction_.type = PanDirection::ALL;
10832     panRecognizer->distance_ = 1;
10833     result = panRecognizer->IsPanGestureAccept();
10834     panRecognizer->currentFingers_ = panRecognizer->fingers_;
10835     panRecognizer->refereeState_ = RefereeState::DETECTING;
10836     panRecognizer->HandleTouchMoveEvent(touchEvent);
10837     EXPECT_EQ(result, PanRecognizer::GestureAcceptResult::DETECTING);
10838 
10839     /**
10840      * @tc.steps: step2. case3: GetX > GetY, GetX < distance, PanDirection::HORIZONTAL.
10841      * @tc.expected: step2. return DETECTING.
10842      */
10843     panRecognizer->direction_.type = PanDirection::HORIZONTAL;
10844     panRecognizer->averageDistance_ = Offset(0, -1);
10845     panRecognizer->distance_ = 1;
10846     result = panRecognizer->IsPanGestureAccept();
10847     panRecognizer->currentFingers_ = panRecognizer->fingers_;
10848     panRecognizer->refereeState_ = RefereeState::DETECTING;
10849     panRecognizer->HandleTouchMoveEvent(touchEvent);
10850     panRecognizer->direction_.type = PanDirection::LEFT;
10851     panRecognizer->averageDistance_ = Offset(1, 0);
10852     panRecognizer->distance_ = 0;
10853     result = panRecognizer->IsPanGestureAccept();
10854     panRecognizer->currentFingers_ = panRecognizer->fingers_;
10855     panRecognizer->refereeState_ = RefereeState::DETECTING;
10856     panRecognizer->HandleTouchMoveEvent(touchEvent);
10857     EXPECT_EQ(result, PanRecognizer::GestureAcceptResult::REJECT);
10858 
10859     /**
10860      * @tc.steps: step2. case5: GetX > GetY, GetX > 0, GetX > distance_, PanDirection::VERTICAL.
10861      * @tc.expected: step2. return REJECT.
10862      */
10863     panRecognizer->direction_.type = PanDirection::VERTICAL;
10864     panRecognizer->averageDistance_ = Offset(1, 0);
10865     panRecognizer->distance_ = 0;
10866     result = panRecognizer->IsPanGestureAccept();
10867     panRecognizer->currentFingers_ = panRecognizer->fingers_;
10868     panRecognizer->refereeState_ = RefereeState::DETECTING;
10869     panRecognizer->HandleTouchMoveEvent(touchEvent);
10870     panRecognizer->direction_.type = PanDirection::VERTICAL;
10871     panRecognizer->averageDistance_ = Offset(0, -1);
10872     panRecognizer->distance_ = 0;
10873     result = panRecognizer->IsPanGestureAccept();
10874     panRecognizer->currentFingers_ = panRecognizer->fingers_;
10875     panRecognizer->refereeState_ = RefereeState::DETECTING;
10876     panRecognizer->HandleTouchMoveEvent(touchEvent);
10877     EXPECT_EQ(result, PanRecognizer::GestureAcceptResult::ACCEPT);
10878 }
10879 
10880 /**
10881  * @tc.name: PanRecognizerHandleTouchMoveEventTest008
10882  * @tc.desc: Test PanRecognizer function: HandleTouchMoveEvent
10883  * @tc.type: FUNC
10884  */
10885 HWTEST_F(GesturesTestNg, PanRecognizerHandleTouchMoveEventTest008, TestSize.Level1)
10886 {
10887     /**
10888      * @tc.steps: step1. create PanRecognizer.
10889      */
10890     RefPtr<PanGestureOption> panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
10891     RefPtr<PanRecognizer> panRecognizerPtr = AceType::MakeRefPtr<PanRecognizer>(panGestureOption);
10892     AxisEvent axisEvent;
10893 
10894     panRecognizerPtr->fingers_ = 11;
10895     panRecognizerPtr->currentFingers_ = panRecognizerPtr->fingers_;
10896     panRecognizerPtr->refereeState_ = RefereeState::DETECTING;
10897     panRecognizerPtr->HandleTouchMoveEvent(axisEvent);
10898     EXPECT_EQ(panRecognizerPtr->globalPoint_.GetX(), 0);
10899 
10900     panRecognizerPtr->fingers_ = 0;
10901     panRecognizerPtr->currentFingers_ = panRecognizerPtr->fingers_;
10902     panRecognizerPtr->refereeState_ = RefereeState::DETECTING;
10903     panRecognizerPtr->HandleTouchMoveEvent(axisEvent);
10904     EXPECT_EQ(panRecognizerPtr->globalPoint_.GetX(), 0);
10905 }
10906 
10907 /**
10908  * @tc.name: PanRecognizerHandleTouchMoveEventTest009
10909  * @tc.desc: Test PanRecognizer function: HandleTouchMoveEvent
10910  * @tc.type: FUNC
10911  */
10912 HWTEST_F(GesturesTestNg, PanRecognizerHandleTouchMoveEventTest009, TestSize.Level1)
10913 {
10914     /**
10915      * @tc.steps: step1. create PanRecognizer.
10916      */
10917     RefPtr<PanGestureOption> panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
10918     RefPtr<PanRecognizer> panRecognizer = AceType::MakeRefPtr<PanRecognizer>(panGestureOption);
10919     AxisEvent axisEvent;
10920 
10921     /**
10922      * @tc.steps: step2. case1: PanDirection::ALL, fabs(offset) >= distance_.
10923      * @tc.expected: step2. return ACCEPT.
10924      */
10925     PanRecognizer::GestureAcceptResult result;
10926     panRecognizer->currentFingers_ = panRecognizer->fingers_;
10927     panRecognizer->refereeState_ = RefereeState::DETECTING;
10928     panRecognizer->direction_.type = PanDirection::ALL;
10929     panRecognizer->distance_ = 0;
10930     result = panRecognizer->IsPanGestureAccept();
10931     panRecognizer->HandleTouchMoveEvent(axisEvent);
10932     EXPECT_EQ(result, PanRecognizer::GestureAcceptResult::ACCEPT);
10933 
10934     /**
10935      * @tc.steps: step2. case2: PanDirection::ALL, fabs(offset) < distance_.
10936      * @tc.expected: step2. return DETECTING.
10937      */
10938     panRecognizer->direction_.type = PanDirection::ALL;
10939     panRecognizer->distance_ = 1;
10940     result = panRecognizer->IsPanGestureAccept();
10941     panRecognizer->HandleTouchMoveEvent(axisEvent);
10942     EXPECT_EQ(result, PanRecognizer::GestureAcceptResult::DETECTING);
10943 
10944     /**
10945      * @tc.steps: step2. case3: GetX > GetY, GetX < distance, PanDirection::HORIZONTAL.
10946      * @tc.expected: step2. return DETECTING.
10947      */
10948     panRecognizer->direction_.type = PanDirection::HORIZONTAL;
10949     panRecognizer->averageDistance_ = Offset(0, -1);
10950     panRecognizer->distance_ = 1;
10951     result = panRecognizer->IsPanGestureAccept();
10952     panRecognizer->HandleTouchMoveEvent(axisEvent);
10953     EXPECT_EQ(result, PanRecognizer::GestureAcceptResult::DETECTING);
10954 
10955     /**
10956      * @tc.steps: step2. case4: GetX > GetY, GetX > 0, GetX > distance_, PanDirection::LEFT.
10957      * @tc.expected: step2. return REJECT.
10958      */
10959     panRecognizer->direction_.type = PanDirection::LEFT;
10960     panRecognizer->averageDistance_ = Offset(1, 0);
10961     panRecognizer->distance_ = 0;
10962     result = panRecognizer->IsPanGestureAccept();
10963     panRecognizer->HandleTouchMoveEvent(axisEvent);
10964     EXPECT_EQ(result, PanRecognizer::GestureAcceptResult::REJECT);
10965 
10966     /**
10967      * @tc.steps: step2. case5: GetX > GetY, GetX > 0, GetX > distance_, PanDirection::VERTICAL.
10968      * @tc.expected: step2. return REJECT.
10969      */
10970     panRecognizer->direction_.type = PanDirection::VERTICAL;
10971     panRecognizer->averageDistance_ = Offset(1, 0);
10972     panRecognizer->distance_ = 0;
10973     result = panRecognizer->IsPanGestureAccept();
10974     panRecognizer->HandleTouchMoveEvent(axisEvent);
10975     EXPECT_EQ(result, PanRecognizer::GestureAcceptResult::DETECTING);
10976 
10977     /**
10978      * @tc.steps: step2. case6: GetX > GetY, GetX = distance_ = 0, PanDirection::VERTICAL.
10979      * @tc.expected: step2. return ACCEPT.
10980      */
10981     panRecognizer->direction_.type = PanDirection::VERTICAL;
10982     panRecognizer->averageDistance_ = Offset(0, -1);
10983     panRecognizer->distance_ = 0;
10984     result = panRecognizer->IsPanGestureAccept();
10985     panRecognizer->HandleTouchMoveEvent(axisEvent);
10986     EXPECT_EQ(result, PanRecognizer::GestureAcceptResult::ACCEPT);
10987 }
10988 
10989 /**
10990  * @tc.name: PanRecognizerHandleTouchMoveEventTest010
10991  * @tc.desc: Test PanRecognizer function: HandleTouchMoveEvent
10992  * @tc.type: FUNC
10993  */
10994 HWTEST_F(GesturesTestNg, PanRecognizerHandleTouchMoveEventTest010, TestSize.Level1)
10995 {
10996     /**
10997      * @tc.steps: step1. create PanRecognizer.
10998      */
10999     RefPtr<PanGestureOption> panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
11000     RefPtr<PanRecognizer> panRecognizer = AceType::MakeRefPtr<PanRecognizer>(panGestureOption);
11001     AxisEvent axisEvent;
11002 
11003     /**
11004      * @tc.steps: step2. case1: PanDirection::ALL, fabs(offset) >= distance_.
11005      * @tc.expected: step2. return ACCEPT.
11006      */
11007     PanRecognizer::GestureAcceptResult result;
11008     panRecognizer->direction_.type = PanDirection::ALL;
11009     panRecognizer->distance_ = 0;
11010     result = panRecognizer->IsPanGestureAccept();
11011     panRecognizer->currentFingers_ = panRecognizer->fingers_;
11012     panRecognizer->refereeState_ = RefereeState::DETECTING;
11013     panRecognizer->HandleTouchMoveEvent(axisEvent);
11014     panRecognizer->direction_.type = PanDirection::ALL;
11015     panRecognizer->distance_ = 1;
11016     result = panRecognizer->IsPanGestureAccept();
11017     panRecognizer->currentFingers_ = panRecognizer->fingers_;
11018     panRecognizer->refereeState_ = RefereeState::DETECTING;
11019     panRecognizer->HandleTouchMoveEvent(axisEvent);
11020     EXPECT_EQ(result, PanRecognizer::GestureAcceptResult::DETECTING);
11021 
11022     /**
11023      * @tc.steps: step2. case3: GetX > GetY, GetX < distance, PanDirection::HORIZONTAL.
11024      * @tc.expected: step2. return DETECTING.
11025      */
11026     panRecognizer->direction_.type = PanDirection::HORIZONTAL;
11027     panRecognizer->averageDistance_ = Offset(0, -1);
11028     panRecognizer->distance_ = 1;
11029     result = panRecognizer->IsPanGestureAccept();
11030     panRecognizer->currentFingers_ = panRecognizer->fingers_;
11031     panRecognizer->refereeState_ = RefereeState::DETECTING;
11032     panRecognizer->HandleTouchMoveEvent(axisEvent);
11033     panRecognizer->direction_.type = PanDirection::LEFT;
11034     panRecognizer->averageDistance_ = Offset(1, 0);
11035     panRecognizer->distance_ = 0;
11036     result = panRecognizer->IsPanGestureAccept();
11037     panRecognizer->currentFingers_ = panRecognizer->fingers_;
11038     panRecognizer->refereeState_ = RefereeState::DETECTING;
11039     panRecognizer->HandleTouchMoveEvent(axisEvent);
11040     EXPECT_EQ(result, PanRecognizer::GestureAcceptResult::REJECT);
11041 
11042     /**
11043      * @tc.steps: step2. case5: GetX > GetY, GetX > 0, GetX > distance_, PanDirection::VERTICAL.
11044      * @tc.expected: step2. return REJECT.
11045      */
11046     panRecognizer->direction_.type = PanDirection::VERTICAL;
11047     panRecognizer->averageDistance_ = Offset(1, 0);
11048     panRecognizer->distance_ = 0;
11049     result = panRecognizer->IsPanGestureAccept();
11050     panRecognizer->currentFingers_ = panRecognizer->fingers_;
11051     panRecognizer->refereeState_ = RefereeState::DETECTING;
11052     panRecognizer->HandleTouchMoveEvent(axisEvent);
11053     panRecognizer->direction_.type = PanDirection::VERTICAL;
11054     panRecognizer->averageDistance_ = Offset(0, -1);
11055     panRecognizer->distance_ = 0;
11056     result = panRecognizer->IsPanGestureAccept();
11057     panRecognizer->currentFingers_ = panRecognizer->fingers_;
11058     panRecognizer->refereeState_ = RefereeState::DETECTING;
11059     panRecognizer->HandleTouchMoveEvent(axisEvent);
11060     EXPECT_EQ(result, PanRecognizer::GestureAcceptResult::ACCEPT);
11061 }
11062 
11063 /**
11064  * @tc.name: SwipeRecognizerHandleTouchUpEventTest005
11065  * @tc.desc: Test SwipeRecognizer function: HandleTouchUpEvent
11066  * @tc.type: FUNC
11067  */
11068 HWTEST_F(GesturesTestNg, SwipeRecognizerHandleTouchUpEventTest005, TestSize.Level1)
11069 {
11070     /**
11071      * @tc.steps: step1. create SwipeRecognizer.
11072      */
11073     SwipeDirection swipeDirection;
11074     RefPtr<SwipeRecognizer> swipeRecognizer = AceType::MakeRefPtr<SwipeRecognizer>(SINGLE_FINGER_NUMBER,
11075         swipeDirection, SWIPE_SPEED);
11076     TouchEvent touchEvent;
11077     touchEvent.x = 100.0;
11078     touchEvent.y = 100.0;
11079     touchEvent.sourceType = SourceType::MOUSE;
11080 
11081     AxisEvent axisEvent;
11082     swipeRecognizer->refereeState_ = RefereeState::SUCCEED;
11083     swipeRecognizer->HandleTouchUpEvent(axisEvent);
11084     EXPECT_EQ(swipeRecognizer->globalPoint_.GetX(), 0);
11085 
11086     swipeRecognizer->refereeState_ = RefereeState::DETECTING;
11087     swipeRecognizer->HandleTouchUpEvent(axisEvent);
11088     EXPECT_EQ(swipeRecognizer->globalPoint_.GetX(), 0);
11089 
11090     swipeRecognizer->refereeState_ = RefereeState::READY;
11091     swipeRecognizer->HandleTouchUpEvent(axisEvent);
11092     EXPECT_EQ(swipeRecognizer->globalPoint_.GetX(), 0);
11093 
11094     swipeRecognizer->refereeState_ = RefereeState::PENDING;
11095     swipeRecognizer->HandleTouchUpEvent(axisEvent);
11096     EXPECT_EQ(swipeRecognizer->globalPoint_.GetX(), 0);
11097 
11098     swipeRecognizer->refereeState_ = RefereeState::PENDING_BLOCKED;
11099     swipeRecognizer->HandleTouchUpEvent(axisEvent);
11100     EXPECT_EQ(swipeRecognizer->globalPoint_.GetX(), 0);
11101 
11102     swipeRecognizer->refereeState_ = RefereeState::SUCCEED_BLOCKED;
11103     swipeRecognizer->HandleTouchUpEvent(axisEvent);
11104     EXPECT_EQ(swipeRecognizer->globalPoint_.GetX(), 0);
11105 
11106     swipeRecognizer->refereeState_ = RefereeState::FAIL;
11107     swipeRecognizer->HandleTouchUpEvent(axisEvent);
11108     EXPECT_EQ(swipeRecognizer->globalPoint_.GetX(), 0);
11109 }
11110 
11111 /**
11112  * @tc.name: SwipeRecognizerHandleTouchCancelEventTest005
11113  * @tc.desc: Test SwipeRecognizer function: HandleTouchCancelEvent
11114  * @tc.type: FUNC
11115  */
11116 HWTEST_F(GesturesTestNg, SwipeRecognizerHandleTouchCancelEventTest005, TestSize.Level1)
11117 {
11118     /**
11119      * @tc.steps: step1. create SwipeRecognizer.
11120      */
11121     SwipeDirection swipeDirection;
11122     RefPtr<SwipeRecognizer> swipeRecognizer = AceType::MakeRefPtr<SwipeRecognizer>(SINGLE_FINGER_NUMBER,
11123         swipeDirection, SWIPE_SPEED);
11124     TouchEvent touchEvent;
11125     touchEvent.x = 100.0;
11126     touchEvent.y = 100.0;
11127     touchEvent.sourceType = SourceType::MOUSE;
11128 
11129     swipeRecognizer->refereeState_ = RefereeState::SUCCEED;
11130     swipeRecognizer->HandleTouchCancelEvent(touchEvent);
11131     EXPECT_EQ(swipeRecognizer->globalPoint_.GetX(), 0);
11132 
11133     swipeRecognizer->refereeState_ = RefereeState::DETECTING;
11134     swipeRecognizer->HandleTouchCancelEvent(touchEvent);
11135     EXPECT_EQ(swipeRecognizer->globalPoint_.GetX(), 0);
11136 
11137     swipeRecognizer->refereeState_ = RefereeState::READY;
11138     swipeRecognizer->HandleTouchCancelEvent(touchEvent);
11139     EXPECT_EQ(swipeRecognizer->globalPoint_.GetX(), 0);
11140 
11141     swipeRecognizer->refereeState_ = RefereeState::PENDING;
11142     swipeRecognizer->HandleTouchCancelEvent(touchEvent);
11143     EXPECT_EQ(swipeRecognizer->globalPoint_.GetX(), 0);
11144 
11145     swipeRecognizer->refereeState_ = RefereeState::PENDING_BLOCKED;
11146     swipeRecognizer->HandleTouchCancelEvent(touchEvent);
11147     EXPECT_EQ(swipeRecognizer->globalPoint_.GetX(), 0);
11148 
11149     swipeRecognizer->refereeState_ = RefereeState::SUCCEED_BLOCKED;
11150     swipeRecognizer->HandleTouchCancelEvent(touchEvent);
11151     EXPECT_EQ(swipeRecognizer->globalPoint_.GetX(), 0);
11152 
11153     swipeRecognizer->refereeState_ = RefereeState::FAIL;
11154     swipeRecognizer->HandleTouchCancelEvent(touchEvent);
11155     EXPECT_EQ(swipeRecognizer->globalPoint_.GetX(), 0);
11156 }
11157 
11158 /**
11159  * @tc.name: ClickRecognizerHandleTouchDownEventTest003
11160  * @tc.desc: Test ClickRecognizer function: HandleTouchDownEvent
11161  * @tc.type: FUNC
11162  */
11163 HWTEST_F(GesturesTestNg, ClickRecognizerHandleTouchDownEventTest003, TestSize.Level1)
11164 {
11165     /**
11166      * @tc.steps: step1. create ClickRecognizer.
11167      */
11168     RefPtr<ClickRecognizer> clickRecognizerPtr = AceType::MakeRefPtr<ClickRecognizer>(FINGER_NUMBER, COUNT);
11169 
11170     TouchEvent touchEvent;
11171     touchEvent.x = 100.0;
11172     touchEvent.y = 100.0;
11173     touchEvent.sourceType = SourceType::MOUSE;
11174 
11175     clickRecognizerPtr->refereeState_ = RefereeState::PENDING;
11176     clickRecognizerPtr->fingers_ = 0;
11177     clickRecognizerPtr->HandleTouchDownEvent(touchEvent);
11178     EXPECT_EQ(clickRecognizerPtr->refereeState_, RefereeState::PENDING);
11179 }
11180 
11181 /**
11182  * @tc.name: PinchRecognizerHandleTouchCancelEventTest001
11183  * @tc.desc: Test PinchRecognizer function: HandleTouchCancelEvent
11184  * @tc.type: FUNC
11185  */
11186 HWTEST_F(GesturesTestNg, PinchRecognizerHandleTouchCancelEventTest001, TestSize.Level1)
11187 {
11188     /**
11189      * @tc.steps: step1. create PinchRecognizer.
11190      */
11191     PinchRecognizer pinchRecognizer = PinchRecognizer(SINGLE_FINGER_NUMBER, PINCH_GESTURE_DISTANCE);
11192     AxisEvent axisEvent;
11193     axisEvent.pinchAxisScale = 0.0;
11194 
11195     /**
11196      * @tc.steps: step2. call HandleTouchMoveEvent function and compare result.
11197      * @tc.steps: case1: input is TouchEvent
11198      * @tc.expected: step2. result equals.
11199      */
11200     TouchEvent touchEvent;
11201     pinchRecognizer.refereeState_ = RefereeState::SUCCEED;
11202     pinchRecognizer.HandleTouchMoveEvent(touchEvent);
11203     pinchRecognizer.HandleTouchUpEvent(touchEvent);
11204     pinchRecognizer.HandleTouchCancelEvent(axisEvent);
11205     EXPECT_EQ(pinchRecognizer.touchPoints_[touchEvent.id].id, touchEvent.id);
11206     EXPECT_EQ(pinchRecognizer.lastTouchEvent_.id, touchEvent.id);
11207 
11208     /**
11209      * @tc.steps: step2. call HandleTouchMoveEvent function and compare result.
11210      * @tc.steps: case2: input is AxisEvent
11211      * @tc.expected: step2. result equals.
11212      */
11213     pinchRecognizer.refereeState_ = RefereeState::SUCCEED;
11214     pinchRecognizer.HandleTouchMoveEvent(axisEvent);
11215     EXPECT_EQ(pinchRecognizer.touchPoints_[touchEvent.id].id, touchEvent.id);
11216     EXPECT_EQ(pinchRecognizer.lastTouchEvent_.id, touchEvent.id);
11217 
11218     /**
11219      * @tc.steps: step2. call HandleTouchMoveEvent function and compare result.
11220      * @tc.steps: case3: input is TouchEvent, isFlushTouchEventsEnd_
11221      * @tc.expected: step2. result equals.
11222      */
11223     pinchRecognizer.refereeState_ = RefereeState::SUCCEED;
11224     pinchRecognizer.isFlushTouchEventsEnd_ = true;
11225     pinchRecognizer.HandleTouchMoveEvent(touchEvent);
11226     EXPECT_EQ(pinchRecognizer.touchPoints_[touchEvent.id].id, touchEvent.id);
11227     EXPECT_EQ(pinchRecognizer.lastTouchEvent_.id, touchEvent.id);
11228 
11229     /**
11230      * @tc.steps: step2. call HandleTouchUpEvent function and compare result.
11231      * @tc.steps: case4: input is TouchEvent, refereeState is FAIL
11232      * @tc.expected: step2. result equals.
11233      */
11234     pinchRecognizer.refereeState_ = RefereeState::FAIL;
11235     pinchRecognizer.HandleTouchUpEvent(touchEvent);
11236     EXPECT_EQ(pinchRecognizer.touchPoints_[touchEvent.id].id, touchEvent.id);
11237     EXPECT_EQ(pinchRecognizer.lastTouchEvent_.id, touchEvent.id);
11238 
11239     /**
11240      * @tc.steps: step2. call HandleTouchMoveEvent function and compare result.
11241      * @tc.steps: case5: input is AxisEvent
11242      * @tc.expected: step2. result equals.
11243      */
11244     pinchRecognizer.refereeState_ = RefereeState::FAIL;
11245     pinchRecognizer.HandleTouchMoveEvent(axisEvent);
11246     EXPECT_EQ(pinchRecognizer.touchPoints_[touchEvent.id].id, touchEvent.id);
11247     EXPECT_EQ(pinchRecognizer.lastTouchEvent_.id, touchEvent.id);
11248 
11249     /**
11250      * @tc.steps: step2. call HandleTouchCancelEvent function and compare result.
11251      * @tc.steps: case6: input is TouchEvent, refereeState is FAIL
11252      * @tc.expected: step2. result equals.
11253      */
11254     pinchRecognizer.refereeState_ = RefereeState::FAIL;
11255     pinchRecognizer.HandleTouchCancelEvent(axisEvent);
11256     EXPECT_EQ(pinchRecognizer.touchPoints_[touchEvent.id].id, touchEvent.id);
11257     EXPECT_EQ(pinchRecognizer.lastTouchEvent_.id, touchEvent.id);
11258 }
11259 
11260 /**
11261  * @tc.name: PinchRecognizerHandleTouchCancelEventTest002
11262  * @tc.desc: Test PinchRecognizer function: HandleTouchUpEvent
11263  * @tc.type: FUNC
11264  */
11265 HWTEST_F(GesturesTestNg, PinchRecognizerHandleTouchCancelEventTest002, TestSize.Level1)
11266 {
11267     /**
11268      * @tc.steps: step1. create PinchRecognizer.
11269      */
11270     PinchRecognizer pinchRecognizer = PinchRecognizer(SINGLE_FINGER_NUMBER, PINCH_GESTURE_DISTANCE);
11271     AxisEvent axisEvent;
11272     axisEvent.pinchAxisScale = 0.0;
11273 
11274     /**
11275      * @tc.steps: step2. call HandleTouchMoveEvent function and compare result.
11276      * @tc.steps: case1: input is TouchEvent
11277      * @tc.expected: step2. result equals.
11278      */
11279     TouchEvent touchEvent;
11280     pinchRecognizer.refereeState_ = RefereeState::SUCCEED;
11281     pinchRecognizer.HandleTouchMoveEvent(touchEvent);
11282     pinchRecognizer.currentFingers_ = pinchRecognizer.fingers_;
11283     pinchRecognizer.HandleTouchUpEvent(touchEvent);
11284     pinchRecognizer.HandleTouchCancelEvent(axisEvent);
11285     EXPECT_EQ(pinchRecognizer.touchPoints_[touchEvent.id].id, touchEvent.id);
11286     EXPECT_EQ(pinchRecognizer.lastTouchEvent_.id, touchEvent.id);
11287 
11288     /**
11289      * @tc.steps: step2. call HandleTouchCancelEvent function and compare result.
11290      * @tc.steps: case6: input is TouchEvent, refereeState is FAIL
11291      * @tc.expected: step2. result equals.
11292      */
11293     pinchRecognizer.refereeState_ = RefereeState::SUCCEED;
11294     pinchRecognizer.isPinchEnd_ = true;
11295     pinchRecognizer.HandleTouchUpEvent(touchEvent);
11296     pinchRecognizer.HandleTouchCancelEvent(axisEvent);
11297     EXPECT_EQ(pinchRecognizer.touchPoints_[touchEvent.id].id, touchEvent.id);
11298     EXPECT_EQ(pinchRecognizer.lastTouchEvent_.id, touchEvent.id);
11299 
11300     /**
11301      * @tc.steps: step2. call HandleTouchCancelEvent function and compare result.
11302      * @tc.steps: case6: input is TouchEvent, refereeState is FAIL
11303      * @tc.expected: step2. result equals.
11304      */
11305     pinchRecognizer.refereeState_ = RefereeState::FAIL;
11306     pinchRecognizer.isPinchEnd_ = false;
11307     pinchRecognizer.HandleTouchUpEvent(touchEvent);
11308     pinchRecognizer.HandleTouchCancelEvent(axisEvent);
11309     EXPECT_EQ(pinchRecognizer.touchPoints_[touchEvent.id].id, touchEvent.id);
11310     EXPECT_EQ(pinchRecognizer.lastTouchEvent_.id, touchEvent.id);
11311 }
11312 
11313 /**
11314  * @tc.name: PinchRecognizerTest011
11315  * @tc.desc: Test PinchRecognizer function: HandleTouchMoveEvent
11316  * @tc.type: FUNC
11317  */
11318 HWTEST_F(GesturesTestNg, PinchRecognizerTest011, TestSize.Level1)
11319 {
11320     /**
11321      * @tc.steps: step1. create PinchRecognizer.
11322      */
11323     RefPtr<PinchRecognizer> pinchRecognizer = AceType::MakeRefPtr<PinchRecognizer>(SINGLE_FINGER_NUMBER,
11324                                                                                    PINCH_GESTURE_DISTANCE);
11325     ASSERT_NE(pinchRecognizer, nullptr);
11326 
11327     /**
11328      * @tc.steps: step2. test HandleTouchMoveEvent(TouchEvent).
11329      */
11330     pinchRecognizer->refereeState_ = RefereeState::DETECTING;
11331     std::vector<TouchEvent> touchEvents;
11332     for (std::size_t i = 0; i < 5; ++i) {
11333         TouchEvent touchEvent;
11334         touchEvent.x = 100.0 * (i + 1);
11335         touchEvent.y = 100.0 * (i + 1);
11336         pinchRecognizer->touchPoints_[i] = touchEvent;
11337     }
11338     pinchRecognizer->initialDev_ = 1.0;
11339     TouchEvent touchEvent;
11340     touchEvent.x = 100.0;
11341     touchEvent.y = 100.0;
11342 
11343     /**
11344      * @tc.steps: step2.1. test HandleTouchMoveEvent(TouchEvent) with fabs(currentDev_ - initialDev_) >= distance_.
11345      * @tc.expect: scale_ = pinchRecognizer->ComputeAverageDeviation() / initialDev_.
11346      */
11347     pinchRecognizer->HandleTouchMoveEvent(touchEvent);
11348     EXPECT_EQ(pinchRecognizer->scale_, 1);
11349     EXPECT_EQ(pinchRecognizer->disposal_, GestureDisposal::NONE);
11350     /**
11351      * @tc.steps: step2.2. test HandleTouchMoveEvent(TouchEvent) with refereeState_ == RefereeState::SUCCEED.
11352      * @tc.expect: scale_ = pinchRecognizer->ComputeAverageDeviation() / initialDev_
11353      */
11354     pinchRecognizer->refereeState_ = RefereeState::SUCCEED;
11355     pinchRecognizer->initialDev_ = 2.0;
11356     pinchRecognizer->OnFlushTouchEventsEnd();
11357     pinchRecognizer->HandleTouchMoveEvent(touchEvent);
11358     EXPECT_NE(pinchRecognizer->scale_, 1);
11359 
11360     /**
11361      * @tc.steps: step3. test HandleTouchMoveEvent(AxisEvent).
11362      */
11363     AxisEvent axisEvent;
11364     pinchRecognizer->isPinchEnd_ = false;
11365 
11366     /**
11367      * @tc.steps: step3.1. axisEvent NearZero and IsCtrlBeingPressed() is false.
11368      * @tc.expect: pinchRecognizer->disposal_ is equal to GestureDisposal::REJECT.
11369      */
11370     axisEvent.pinchAxisScale = 0.0;
11371     pinchRecognizer->refereeState_ = RefereeState::DETECTING;
11372     auto context = PipelineContext::GetCurrentContext();
11373     ASSERT_NE(context, nullptr);
11374     context->eventManager_ = nullptr;
11375     pinchRecognizer->HandleTouchMoveEvent(axisEvent);
11376     EXPECT_EQ(pinchRecognizer->disposal_, GestureDisposal::REJECT);
11377 
11378     /**
11379      * @tc.steps: step3.2. test with refereeState_ = RefereeState::SUCCEED.
11380      * @tc.expect: pinchRecognizer->refereeState_ is equal to RefereeState::READY.
11381      */
11382     pinchRecognizer->isPinchEnd_ = false;
11383     pinchRecognizer->refereeState_ = RefereeState::SUCCEED;
11384     pinchRecognizer->HandleTouchMoveEvent(axisEvent);
11385     EXPECT_EQ(pinchRecognizer->refereeState_, RefereeState::READY);
11386     EXPECT_EQ(pinchRecognizer->isPinchEnd_, true);
11387 
11388     /**
11389      * @tc.steps: step3.3. test with axisEvent not NearZero .
11390      * @tc.expect: pinchRecognizer->scale_ is equal to axisEvent.pinchAxisScale.
11391      */
11392     pinchRecognizer->isPinchEnd_ = false;
11393     axisEvent.pinchAxisScale = 1.0;
11394     pinchRecognizer->refereeState_ = RefereeState::DETECTING;
11395     pinchRecognizer->HandleTouchMoveEvent(axisEvent);
11396     EXPECT_EQ(pinchRecognizer->scale_, axisEvent.pinchAxisScale);
11397 }
11398 
11399 /**
11400  * @tc.name: GestureAccessibilityEventTest001
11401  * @tc.desc: Test SetOnAccessibility in ClickRecognizer
11402  */
11403 HWTEST_F(GesturesTestNg, GestureAccessibilityEventTest001, TestSize.Level1)
11404 {
11405     /**
11406      * @tc.steps: step1. Create clickRecognizer.
11407      */
11408     ClickRecognizer clickRecognizer = ClickRecognizer(SINGLE_FINGER_NUMBER, TAPPED_COUNT);
11409 
11410     /**
11411      * @tc.steps: step2. set callback function.
11412      */
__anona2ace5f32b02(AccessibilityEventType eventType) 11413     auto onAccessibilityEvent = [](AccessibilityEventType eventType) {};
11414     clickRecognizer.SetOnAccessibility(onAccessibilityEvent);
11415     ASSERT_NE(clickRecognizer.onAccessibilityEventFunc_, nullptr);
11416 
11417     /**
11418      * @tc.steps: step3. call callback function.
11419      * @tc.expected: refereeState_ is SUCCEED.
11420      */
11421     clickRecognizer.OnAccepted();
11422     EXPECT_EQ(clickRecognizer.refereeState_, RefereeState::SUCCEED);
11423 }
11424 
11425 /**
11426  * @tc.name: GestureAccessibilityEventTest002
11427  * @tc.desc: Test SetOnAccessibility in LongPressRecognizer
11428  */
11429 HWTEST_F(GesturesTestNg, GestureAccessibilityEventTest002, TestSize.Level1)
11430 {
11431     /**
11432      * @tc.steps: step1. Create longPressRecognizer.
11433      */
11434     LongPressRecognizer longPressRecognizer = LongPressRecognizer(LONG_PRESS_DURATION, FINGER_NUMBER, false);
11435 
11436     /**
11437      * @tc.steps: step2. set callback function.
11438      */
__anona2ace5f32c02(AccessibilityEventType eventType) 11439     auto onAccessibilityEvent = [](AccessibilityEventType eventType) {};
11440     longPressRecognizer.SetOnAccessibility(onAccessibilityEvent);
11441     ASSERT_NE(longPressRecognizer.onAccessibilityEventFunc_, nullptr);
11442 
11443     /**
11444      * @tc.steps: step3. call callback function.
11445      * @tc.expected: refereeState_ is SUCCEED.
11446      */
11447     longPressRecognizer.OnAccepted();
11448     EXPECT_EQ(longPressRecognizer.refereeState_, RefereeState::SUCCEED);
11449 }
11450 } // namespace OHOS::Ace::NG
11451