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