1 /*
2 * Copyright (c) 2024 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15 #include "gtest/gtest.h"
16 #include "test/unittest/core/gestures/gestures_common_test_ng.h"
17 #include "ui/base/ace_type.h"
18
19 using namespace testing;
20 using namespace testing::ext;
21
22 namespace OHOS::Ace::NG {
23 class RecognizerTestNgIssue : public GesturesCommonTestNg {
24 public:
25 static void SetUpTestSuite();
26 static void TearDownTestSuite();
27 };
28
SetUpTestSuite()29 void RecognizerTestNgIssue::SetUpTestSuite()
30 {
31 MockPipelineContext::SetUp();
32 }
33
TearDownTestSuite()34 void RecognizerTestNgIssue::TearDownTestSuite()
35 {
36 MockPipelineContext::TearDown();
37 }
38
39 /**
40 * @tc.name: LongPressRecognizerIssue001
41 * @tc.desc: Test LongPressRecognizer function: OnAccepted OnRejected
42 * @tc.type: FUNC
43 */
44 HWTEST_F(RecognizerTestNgIssue, LongPressRecognizerIssue001, TestSize.Level1)
45 {
46 /**
47 * @tc.steps: step1. create LongPressRecognizer.
48 */
49 RefPtr<LongPressRecognizer> longPressRecognizer =
50 AceType::MakeRefPtr<LongPressRecognizer>(LONG_PRESS_DURATION, FINGER_NUMBER, false);
51
52 /**
53 * @tc.steps: step2. call GetLongPressActionFunc function and compare result.
54 * @tc.steps: case1: normal case
55 * @tc.expected: step2. result equals.
56 */
57 TouchEvent downEvent;
58 downEvent.SetId(0).SetType(TouchType::DOWN).SetX(100.0f).SetY(100.0f).SetSourceType(SourceType::MOUSE);
59 longPressRecognizer->HandleTouchDownEvent(downEvent);
60 int64_t time = 0;
__anon2fa8f8640102(GestureEvent& info) 61 auto onAction = [&time](GestureEvent& info) { time = info.GetTimeStamp().time_since_epoch().count(); };
62 longPressRecognizer->SetOnAction(onAction);
63 longPressRecognizer->OnAccepted();
64 EXPECT_NE(time, 0);
65 }
66
67 /**
68 * @tc.name: LongPressRecognizerIssue002
69 * @tc.desc: Test LongPressRecognizer function: OnAccepted OnRejected
70 * @tc.type: FUNC
71 */
72 HWTEST_F(RecognizerTestNgIssue, LongPressRecognizerIssue002, TestSize.Level1)
73 {
74 /**
75 * @tc.steps: step1. create LongPressRecognizer.
76 */
77 RefPtr<LongPressRecognizer> longPressRecognizer =
78 AceType::MakeRefPtr<LongPressRecognizer>(LONG_PRESS_DURATION, COUNT, false);
79
80 /**
81 * @tc.steps: step2. call GetLongPressActionFunc function and compare result.
82 * @tc.steps: case1: normal case
83 * @tc.expected: step2. result equals.
84 */
85 TouchEvent downEvent;
86 downEvent.SetId(0).SetType(TouchType::DOWN).SetX(100.0f).SetY(100.0f).SetSourceType(SourceType::TOUCH);
87 longPressRecognizer->HandleTouchDownEvent(downEvent);
88 TouchEvent downFingerOneEvent;
89 downFingerOneEvent.SetId(1).SetType(TouchType::DOWN).SetX(100.0f).SetY(100.0f).SetSourceType(SourceType::TOUCH);
90 longPressRecognizer->touchPoints_[1] = downFingerOneEvent;
91 TouchEvent moveEvent;
92 std::chrono::nanoseconds nanoseconds(GetSysTimestamp());
93 moveEvent.SetId(0)
94 .SetType(TouchType::MOVE)
95 .SetX(100.0f)
96 .SetY(100.0f)
97 .SetSourceType(SourceType::TOUCH)
98 .SetTime(TimeStamp(nanoseconds));
99 longPressRecognizer->HandleTouchMoveEvent(moveEvent);
100 int64_t touchTime = 0;
101 int64_t mouseTime = 0;
__anon2fa8f8640202(GestureEvent& info) 102 auto onAction = [&touchTime, &mouseTime](GestureEvent& info) {
103 if (info.GetSourceDevice() == SourceType::MOUSE) {
104 mouseTime = info.GetTimeStamp().time_since_epoch().count();
105 } else {
106 touchTime = info.GetTimeStamp().time_since_epoch().count();
107 }
108 };
109 longPressRecognizer->SetOnAction(onAction);
110 longPressRecognizer->OnAccepted();
111 longPressRecognizer->ResetStatus();
112 downEvent.SetId(0).SetType(TouchType::DOWN).SetX(100.0f).SetY(100.0f).SetSourceType(SourceType::MOUSE);
113 longPressRecognizer->HandleTouchDownEvent(downEvent);
114 longPressRecognizer->OnAccepted();
115 EXPECT_NE(touchTime, mouseTime);
116 }
117
118 /**
119 * @tc.name: LongPressRecognizerIssue003
120 * @tc.desc: Test LongPressRecognizer callback info
121 * @tc.type: FUNC
122 */
123 HWTEST_F(RecognizerTestNgIssue, LongPressRecognizerIssue003, TestSize.Level1)
124 {
125 /**
126 * @tc.steps: step1. create LongPressRecognizer and set onAction.
127 */
128 RefPtr<LongPressRecognizer> longPressRecognizer =
129 AceType::MakeRefPtr<LongPressRecognizer>(LONG_PRESS_DURATION, 1, false);
130 GestureEvent eventInfo;
__anon2fa8f8640302(GestureEvent& info) 131 auto onActionStart = [&eventInfo](GestureEvent& info) { eventInfo = info; };
132 longPressRecognizer->SetOnAction(onActionStart);
133
134 /**
135 * @tc.steps: step2. DispatchTouchEvent and compare callback info.
136 * @tc.expected: step2. result equals.
137 */
138 TouchEvent downEvent;
139 downEvent.SetId(0)
140 .SetType(TouchType::DOWN)
141 .SetX(100.0f)
142 .SetY(100.0f)
143 .SetSourceType(SourceType::TOUCH)
144 .SetDeviceId(2);
145 longPressRecognizer->HandleEvent(downEvent);
146 TouchEvent downFingerOneEvent;
147 downFingerOneEvent.SetId(1)
148 .SetType(TouchType::DOWN)
149 .SetX(100.0f)
150 .SetY(100.0f)
151 .SetSourceType(SourceType::TOUCH)
152 .SetDeviceId(2);
153 longPressRecognizer->touchPoints_[1] = downFingerOneEvent;
154 TouchEvent moveEvent;
155 auto moveTime = GetSysTimestamp();
156 std::chrono::nanoseconds nanoseconds(moveTime);
157 moveEvent.SetId(0)
158 .SetType(TouchType::MOVE)
159 .SetX(100.0f)
160 .SetY(100.0f)
161 .SetScreenX(200.0f)
162 .SetScreenY(200.0f)
163 .SetSourceType(SourceType::TOUCH)
164 .SetSourceTool(SourceTool::FINGER)
165 .SetTime(TimeStamp(nanoseconds))
166 .SetForce(100.0f)
167 .SetTiltX(10.0f)
168 .SetTiltY(10.0f)
169 .SetTargetDisplayId(2);
170 longPressRecognizer->HandleEvent(moveEvent);
171 /**
172 * @tc.steps: No need check downFingers for fingerList.
173 */
174 auto context = PipelineContext::GetCurrentContext();
175 ASSERT_NE(context, nullptr);
176 context->eventManager_ = nullptr;
177 longPressRecognizer->OnAccepted();
178 EXPECT_EQ(eventInfo.GetTimeStamp().time_since_epoch().count(), moveTime);
179 EXPECT_EQ(eventInfo.GetRepeat(), false);
180 EXPECT_EQ(eventInfo.GetFingerList().size(), 2);
181 EXPECT_EQ(eventInfo.GetSourceDevice(), SourceType::TOUCH);
182 EXPECT_EQ(eventInfo.GetDeviceId(), 2);
183 EXPECT_EQ(eventInfo.GetGlobalPoint().GetX(), 100.0f);
184 EXPECT_EQ(eventInfo.GetGlobalPoint().GetY(), 100.0f);
185 EXPECT_EQ(eventInfo.GetScreenLocation().GetX(), 200.0f);
186 EXPECT_EQ(eventInfo.GetScreenLocation().GetY(), 200.0f);
187 EXPECT_EQ(eventInfo.GetGlobalLocation().GetX(), 100.0f);
188 EXPECT_EQ(eventInfo.GetGlobalLocation().GetY(), 100.0f);
189 EXPECT_EQ(eventInfo.GetLocalLocation().GetX(), 100.0f);
190 EXPECT_EQ(eventInfo.GetLocalLocation().GetY(), 100.0f);
191 EXPECT_EQ(eventInfo.GetForce(), 100.0f);
192 EXPECT_EQ(eventInfo.GetTiltX(), 10.0f);
193 EXPECT_EQ(eventInfo.GetTiltY(), 10.0f);
194 EXPECT_EQ(eventInfo.GetSourceTool(), SourceTool::FINGER);
195 EXPECT_EQ(eventInfo.GetInputEventType(), InputEventType::TOUCH_SCREEN);
196 }
197
198 /**
199 * @tc.name: PanRecognizerIssue001
200 * @tc.desc: Test PanRecognizer: Test the finger information of the current recognizer in the case of setting a single
201 * finger by pressing multiple fingers and lifting them.
202 * @tc.type: FUNC
203 */
204 HWTEST_F(RecognizerTestNgIssue, PanRecognizerIssue001, TestSize.Level1)
205 {
206 /**
207 * @tc.steps: step1. create PanRecognizer.
208 */
209 RefPtr<PanGestureOption> panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
210 panGestureOption->SetFingers(1);
211 PanDirection panDirection;
212 panDirection.type = PanDirection::ALL;
213 panGestureOption->SetDirection(panDirection);
214 panGestureOption->SetDistance(10.0f);
215 RefPtr<PanRecognizer> panRecognizer = AceType::MakeRefPtr<PanRecognizer>(panGestureOption);
216 /**
217 * @tc.steps: step2. DispatchTouchEvent with two different fingers and dispatch two up events.
218 * @tc.expected: step2. fingersId_ empty.
219 */
220 TouchEvent zeroDownEvent;
221 zeroDownEvent.SetId(0).SetType(TouchType::DOWN).SetX(100.0f).SetY(100.0f);
222 TouchEvent oneDownEvent;
223 oneDownEvent.SetId(1).SetType(TouchType::DOWN).SetX(100.0f).SetY(100.0f);
224 panRecognizer->HandleEvent(zeroDownEvent);
225 panRecognizer->HandleEvent(oneDownEvent);
226 TouchEvent zeroUpEvent;
227 zeroUpEvent.SetId(0).SetType(TouchType::UP).SetX(100.0f).SetY(100.0f);
228 TouchEvent oneUpEvent;
229 oneUpEvent.SetId(1).SetType(TouchType::UP).SetX(100.0f).SetY(100.0f);
230 panRecognizer->HandleEvent(zeroUpEvent);
231 panRecognizer->HandleEvent(oneUpEvent);
232 EXPECT_TRUE(panRecognizer->fingersId_.empty());
233 }
234
235 /**
236 * @tc.name: RotationRecognizerIssue001
237 * @tc.desc: Test the rotating gesture by pressing two fingers, and when the gesture fails, lift finger number one and
238 * finger number one is cleared from activeFingers_ correctly.
239 * @tc.type: FUNC
240 */
241 HWTEST_F(RecognizerTestNgIssue, RotationRecognizerIssue001, TestSize.Level1)
242 {
243 /**
244 * @tc.steps: step1. create RotationRecognizer.
245 */
246 auto rotationRecognizer = AceType::MakeRefPtr<RotationRecognizer>(2, ROTATION_GESTURE_ANGLE);
247 /**
248 * @tc.steps: step2. DispatchTouchEvent with two different fingers and dispatch two up events.
249 * @tc.expected: step2. fingersId_ empty.
250 */
251 TouchEvent zeroDownEvent;
252 zeroDownEvent.SetId(0).SetType(TouchType::DOWN).SetX(100.0f).SetY(100.0f);
253 TouchEvent oneDownEvent;
254 oneDownEvent.SetId(1).SetType(TouchType::DOWN).SetX(100.0f).SetY(100.0f);
255 rotationRecognizer->HandleEvent(zeroDownEvent);
256 rotationRecognizer->HandleEvent(oneDownEvent);
257 TouchEvent oneUpEvent;
258 oneUpEvent.SetId(1).SetType(TouchType::UP).SetX(100.0f).SetY(100.0f);
259 rotationRecognizer->HandleEvent(oneUpEvent);
260 EXPECT_EQ(std::find(rotationRecognizer->activeFingers_.begin(), rotationRecognizer->activeFingers_.end(), 1),
261 rotationRecognizer->activeFingers_.end());
262 EXPECT_EQ(rotationRecognizer->refereeState_, RefereeState::FAIL);
263 }
264
265 /**
266 * @tc.name: PinchRecognizerIssue001
267 * @tc.desc: Test the pinch gesture by pressing two fingers, and when the gesture fails, lift finger number one and
268 * finger number one is cleared from activeFingers_ correctly.
269 * @tc.type: FUNC
270 */
271 HWTEST_F(RecognizerTestNgIssue, PinchRecognizerIssue001, TestSize.Level1)
272 {
273 /**
274 * @tc.steps: step1. create PinchRecognizer.
275 */
276 auto pinchRecognizer = AceType::MakeRefPtr<PinchRecognizer>(2, PINCH_GESTURE_DISTANCE);
277 /**
278 * @tc.steps: step2. DispatchTouchEvent with two different fingers and dispatch two up events.
279 * @tc.expected: step2. fingersId_ empty.
280 */
281 TouchEvent zeroDownEvent;
282 zeroDownEvent.SetId(0).SetType(TouchType::DOWN).SetX(100.0f).SetY(100.0f);
283 TouchEvent oneDownEvent;
284 oneDownEvent.SetId(1).SetType(TouchType::DOWN).SetX(100.0f).SetY(100.0f);
285 pinchRecognizer->HandleEvent(zeroDownEvent);
286 pinchRecognizer->HandleEvent(oneDownEvent);
287 TouchEvent oneUpEvent;
288 oneUpEvent.SetId(1).SetType(TouchType::UP).SetX(100.0f).SetY(100.0f);
289 pinchRecognizer->HandleEvent(oneUpEvent);
290 EXPECT_EQ(std::find(pinchRecognizer->activeFingers_.begin(), pinchRecognizer->activeFingers_.end(), 1),
291 pinchRecognizer->activeFingers_.end());
292 EXPECT_EQ(pinchRecognizer->refereeState_, RefereeState::FAIL);
293 }
294
295 /**
296 * @tc.name: TargetDisplayId001
297 * @tc.desc: Test SetTargetDisplayId GetTargetDisplayId
298 * @tc.type: FUNC
299 */
300 HWTEST_F(RecognizerTestNgIssue, TargetDisplayId001, TestSize.Level1)
301 {
302 RefPtr<LongPressRecognizer> longPressRecognizer =
303 AceType::MakeRefPtr<LongPressRecognizer>(LONG_PRESS_DURATION, 1, false);
304 GestureEvent eventInfo;
__anon2fa8f8640402(GestureEvent& info) 305 auto onActionStart = [&eventInfo](GestureEvent& info) { eventInfo = info; };
306 longPressRecognizer->SetOnAction(onActionStart);
307
308 TouchEvent downEvent;
309 downEvent.SetId(0)
310 .SetType(TouchType::DOWN)
311 .SetX(100.0f)
312 .SetY(100.0f)
313 .SetSourceType(SourceType::TOUCH)
314 .SetDeviceId(2);
315 longPressRecognizer->HandleEvent(downEvent);
316 TouchEvent downFingerOneEvent;
317 downFingerOneEvent.SetId(1)
318 .SetType(TouchType::DOWN)
319 .SetX(100.0f)
320 .SetY(100.0f)
321 .SetSourceType(SourceType::TOUCH)
322 .SetDeviceId(2);
323 longPressRecognizer->touchPoints_[1] = downFingerOneEvent;
324 TouchEvent moveEvent;
325 auto moveTime = GetSysTimestamp();
326 std::chrono::nanoseconds nanoseconds(moveTime);
327 moveEvent.SetId(0)
328 .SetType(TouchType::MOVE)
329 .SetX(100.0f)
330 .SetY(100.0f)
331 .SetScreenX(200.0f)
332 .SetScreenY(200.0f)
333 .SetSourceType(SourceType::TOUCH)
334 .SetSourceTool(SourceTool::FINGER)
335 .SetTime(TimeStamp(nanoseconds))
336 .SetForce(100.0f)
337 .SetTiltX(10.0f)
338 .SetTiltY(10.0f)
339 .SetTargetDisplayId(2);
340 longPressRecognizer->HandleEvent(moveEvent);
341 longPressRecognizer->OnAccepted();
342 EXPECT_EQ(eventInfo.GetTargetDisplayId(), 2);
343 }
344
345 /**
346 * @tc.name: ClickRecognizerIssue001
347 * @tc.desc: Test ClickRecognizer callback info
348 * @tc.type: FUNC
349 */
350 HWTEST_F(RecognizerTestNgIssue, ClickRecognizerIssue001, TestSize.Level1)
351 {
352 /**
353 * @tc.steps: step1. create LongPressRecognizer and set onAction.
354 */
355 RefPtr<ClickRecognizer> clickRecognizer =
356 AceType::MakeRefPtr<ClickRecognizer>(SINGLE_FINGER_NUMBER, TAPPED_COUNT);
357 GestureEvent eventInfo;
__anon2fa8f8640502(GestureEvent& info) 358 auto onActionStart = [&eventInfo](GestureEvent& info) {
359 eventInfo = info; };
360 clickRecognizer->SetOnAction(onActionStart);
361
362 /**
363 * @tc.steps: step2. DispatchTouchEvent and compare callback info.
364 * @tc.expected: step2. result equals.
365 */
366 TouchEvent downEvent;
367 downEvent.SetId(0)
368 .SetType(TouchType::DOWN)
369 .SetX(100.0f)
370 .SetY(100.0f)
371 .SetSourceType(SourceType::TOUCH)
372 .SetDeviceId(2);
373 clickRecognizer->HandleEvent(downEvent);
374 TouchEvent downFingerOneEvent;
375 downFingerOneEvent.SetId(1)
376 .SetType(TouchType::DOWN)
377 .SetX(120.0f)
378 .SetY(120.0f)
379 .SetSourceType(SourceType::TOUCH)
380 .SetDeviceId(2);
381 clickRecognizer->touchPoints_[1] = downFingerOneEvent;
382 TouchEvent upEvent;
383 auto upTime = GetSysTimestamp();
384 std::chrono::nanoseconds nanoseconds(upTime);
385 upEvent.SetId(0)
386 .SetType(TouchType::UP)
387 .SetX(100.0f)
388 .SetY(100.0f)
389 .SetScreenX(200.0f)
390 .SetScreenY(200.0f)
391 .SetGlobalDisplayX(300)
392 .SetGlobalDisplayY(300)
393 .SetSourceType(SourceType::TOUCH)
394 .SetSourceTool(SourceTool::FINGER)
395 .SetTime(TimeStamp(nanoseconds))
396 .SetForce(100.0f)
397 .SetTiltX(10.0f)
398 .SetTiltY(10.0f)
399 .SetTargetDisplayId(2);
400 clickRecognizer->HandleEvent(upEvent);
401 TouchEvent upFingerOneEvent;
402 auto upFingerOneTime = GetSysTimestamp();
403 std::chrono::nanoseconds fingerOneNanoseconds(upFingerOneTime);
404 upFingerOneEvent.SetId(1)
405 .SetType(TouchType::UP)
406 .SetX(120.0f)
407 .SetY(120.0f)
408 .SetScreenX(220.0f)
409 .SetScreenY(220.0f)
410 .SetSourceType(SourceType::TOUCH)
411 .SetSourceTool(SourceTool::FINGER)
412 .SetTime(TimeStamp(fingerOneNanoseconds))
413 .SetForce(100.0f)
414 .SetTiltX(10.0f)
415 .SetTiltY(10.0f)
416 .SetTargetDisplayId(2);
417 clickRecognizer->touchPoints_[1] = upFingerOneEvent;
418 clickRecognizer->OnAccepted();
419 EXPECT_EQ(eventInfo.GetTimeStamp().time_since_epoch().count(), upTime);
420 EXPECT_EQ(eventInfo.GetFingerList().size(), 2);
421 EXPECT_EQ(eventInfo.GetSourceDevice(), SourceType::TOUCH);
422 EXPECT_EQ(eventInfo.GetDeviceId(), 2);
423 EXPECT_EQ(eventInfo.GetScreenLocation().GetX(), 200.0f);
424 EXPECT_EQ(eventInfo.GetScreenLocation().GetY(), 200.0f);
425 EXPECT_EQ(eventInfo.GetGlobalLocation().GetX(), 100.0f);
426 EXPECT_EQ(eventInfo.GetGlobalLocation().GetY(), 100.0f);
427 EXPECT_EQ(eventInfo.GetLocalLocation().GetX(), 100.0f);
428 EXPECT_EQ(eventInfo.GetLocalLocation().GetY(), 100.0f);
429 EXPECT_EQ(eventInfo.GetGlobalDisplayLocation().GetX(), 300);
430 EXPECT_EQ(eventInfo.GetGlobalDisplayLocation().GetY(), 300);
431 EXPECT_EQ(eventInfo.GetForce(), 100.0f);
432 EXPECT_EQ(eventInfo.GetTiltX(), 10.0f);
433 EXPECT_EQ(eventInfo.GetTiltY(), 10.0f);
434 EXPECT_EQ(eventInfo.GetTargetDisplayId(), 2);
435 EXPECT_EQ(eventInfo.GetSourceTool(), SourceTool::FINGER);
436 EXPECT_EQ(eventInfo.GetInputEventType(), InputEventType::TOUCH_SCREEN);
437 }
438
439 /**
440 * @tc.name: PinchRecognizerIssue002
441 * @tc.desc: Test PinchRecognizer's pinchCenter
442 * @tc.type: FUNC
443 */
444 HWTEST_F(RecognizerTestNgIssue, PinchRecognizerIssue002, TestSize.Level1)
445 {
446 /**
447 * @tc.steps: step1. create LongPressRecognizer and set onAction.
448 */
449 RefPtr<PinchRecognizer> pinchRecognizer =
450 AceType::MakeRefPtr<PinchRecognizer>(COUNT, PAN_DISTANCE, false);
451
452 /**
453 * @tc.steps: step2. DispatchTouchEvent and compare pinchCenter.
454 * @tc.expected: step2. result equals.
455 */
456 TouchEvent downEvent;
457 downEvent.SetId(0)
458 .SetType(TouchType::DOWN)
459 .SetX(100.0f)
460 .SetY(100.0f)
461 .SetSourceType(SourceType::TOUCH);
462 pinchRecognizer->HandleEvent(downEvent);
463 TouchEvent downFingerOneEvent;
464 downFingerOneEvent.SetId(1)
465 .SetType(TouchType::DOWN)
466 .SetX(300.0f)
467 .SetY(300.0f)
468 .SetSourceType(SourceType::TOUCH);
469 pinchRecognizer->HandleEvent(downFingerOneEvent);
470 EXPECT_EQ(pinchRecognizer->pinchCenter_.GetX(), 200.0);
471 EXPECT_EQ(pinchRecognizer->pinchCenter_.GetY(), 200.0);
472 pinchRecognizer->OnAccepted();
473 TouchEvent moveEvent;
474 moveEvent.SetId(0)
475 .SetType(TouchType::MOVE)
476 .SetX(200.0f)
477 .SetY(200.0f)
478 .SetSourceType(SourceType::TOUCH);
479 pinchRecognizer->HandleEvent(moveEvent);
480 EXPECT_EQ(pinchRecognizer->pinchCenter_.GetX(), 250.0);
481 EXPECT_EQ(pinchRecognizer->pinchCenter_.GetY(), 250.0);
482
483 TouchEvent upEvent;
484 upEvent.SetId(0)
485 .SetType(TouchType::UP)
486 .SetX(300.0f)
487 .SetY(300.0f)
488 .SetSourceType(SourceType::TOUCH);
489 pinchRecognizer->HandleEvent(upEvent);
490 EXPECT_EQ(pinchRecognizer->pinchCenter_.GetX(), 300.0);
491 EXPECT_EQ(pinchRecognizer->pinchCenter_.GetY(), 300.0);
492 }
493 } // namespace OHOS::Ace::NG