新增gesturesTDD用例

Signed-off-by: hct95 <hechentao@huawei.com>
Change-Id: Iac6171f4c05ef16a3ea960889a85585a91e263c2
Signed-off-by: hct95 <hechentao@huawei.com>
This commit is contained in:
hct95 2023-05-18 02:03:37 +00:00
parent 92c78c2588
commit 5e8db2050e
2 changed files with 452 additions and 5 deletions

View File

@ -12,16 +12,105 @@
# limitations under the License.
import("//build/test.gni")
import("//foundation/arkui/ace_engine/ace_config.gni")
import("//foundation/arkui/ace_engine/test/unittest/ace_unittest.gni")
common_sources = [
# inner
"$ace_root/frameworks/base/geometry/dimension.cpp",
"$ace_root/frameworks/base/geometry/least_square_impl.cpp",
"$ace_root/frameworks/base/geometry/matrix3.cpp",
"$ace_root/frameworks/base/geometry/matrix4.cpp",
"$ace_root/frameworks/base/json/json_util.cpp",
"$ace_root/frameworks/base/log/dump_log.cpp",
"$ace_root/frameworks/base/memory/memory_monitor.cpp",
"$ace_root/frameworks/base/utils/base_id.cpp",
"$ace_root/frameworks/base/utils/string_expression.cpp",
"$ace_root/frameworks/base/utils/string_utils.cpp",
"$ace_root/frameworks/base/utils/time_util.cpp",
"$ace_root/frameworks/core/animation/anticipate_curve.cpp",
"$ace_root/frameworks/core/animation/chain_animation.cpp",
"$ace_root/frameworks/core/animation/cubic_curve.cpp",
"$ace_root/frameworks/core/animation/curves.cpp",
"$ace_root/frameworks/core/animation/spring_model.cpp",
"$ace_root/frameworks/core/animation/spring_motion.cpp",
"$ace_root/frameworks/core/components/common/layout/grid_column_info.cpp",
"$ace_root/frameworks/core/components/common/layout/grid_container_info.cpp",
"$ace_root/frameworks/core/components/common/layout/grid_system_manager.cpp",
"$ace_root/frameworks/core/components/common/layout/screen_system_manager.cpp",
"$ace_root/frameworks/core/components/common/properties/alignment.cpp",
"$ace_root/frameworks/core/components/common/properties/color.cpp",
"$ace_root/frameworks/core/components_v2/inspector/inspector_constants.cpp",
"$ace_root/frameworks/core/event/key_event.cpp",
"$ace_root/frameworks/core/gestures/velocity_tracker.cpp",
"$ace_root/frameworks/core/pipeline/base/constants.cpp",
# components_ng_base
"$ace_root/frameworks/core/components_ng/base/frame_node.cpp",
"$ace_root/frameworks/core/components_ng/base/geometry_node.cpp",
"$ace_root/frameworks/core/components_ng/base/view_stack_processor.cpp",
# components_ng_render
"$ace_root/frameworks/core/components_ng/render/divider_painter.cpp",
"$ace_root/frameworks/core/components_ng/render/paint_wrapper.cpp",
# components_ng_event
"$ace_root/frameworks/core/components_ng/event/event_hub.cpp",
"$ace_root/frameworks/core/components_ng/event/focus_hub.cpp",
"$ace_root/frameworks/core/components_ng/event/gesture_event_hub.cpp",
"$ace_root/frameworks/core/components_ng/event/input_event.cpp",
"$ace_root/frameworks/core/components_ng/event/input_event_hub.cpp",
"$ace_root/frameworks/core/components_ng/event/state_style_manager.cpp",
# mock
"$ace_root/frameworks/base/test/mock/mock_ressched_report.cpp",
"$ace_root/frameworks/base/test/mock/mock_system_properties.cpp",
"$ace_root/frameworks/core/common/test/mock/mock_ace_application_info.cpp",
"$ace_root/frameworks/core/components_ng/test/mock/render/mock_media_player_creator.cpp",
"$ace_root/frameworks/core/pipeline_ng/test/mock/mock_pipeline_base.cpp",
"$ace_root/test/unittest/core/pipeline/mock_event_manager.cpp",
# self
# gestures
"$ace_root/frameworks/core/components_ng/gestures/gesture_group.cpp",
"$ace_root/frameworks/core/components_ng/gestures/gesture_referee.cpp",
"$ace_root/frameworks/core/components_ng/gestures/long_press_gesture.cpp",
"$ace_root/frameworks/core/components_ng/gestures/pan_gesture.cpp",
"$ace_root/frameworks/core/components_ng/gestures/pinch_gesture.cpp",
"$ace_root/frameworks/core/components_ng/gestures/rotation_gesture.cpp",
"$ace_root/frameworks/core/components_ng/gestures/swipe_gesture.cpp",
"$ace_root/frameworks/core/components_ng/gestures/tap_gesture.cpp",
# recognizers
"$ace_root/frameworks/core/components_ng/gestures/recognizers/click_recognizer.cpp",
"$ace_root/frameworks/core/components_ng/gestures/recognizers/exclusive_recognizer.cpp",
"$ace_root/frameworks/core/components_ng/gestures/recognizers/gesture_recognizer.cpp",
"$ace_root/frameworks/core/components_ng/gestures/recognizers/long_press_recognizer.cpp",
"$ace_root/frameworks/core/components_ng/gestures/recognizers/multi_fingers_recognizer.cpp",
"$ace_root/frameworks/core/components_ng/gestures/recognizers/pan_recognizer.cpp",
"$ace_root/frameworks/core/components_ng/gestures/recognizers/parallel_recognizer.cpp",
"$ace_root/frameworks/core/components_ng/gestures/recognizers/pinch_recognizer.cpp",
"$ace_root/frameworks/core/components_ng/gestures/recognizers/recognizer_group.cpp",
"$ace_root/frameworks/core/components_ng/gestures/recognizers/rotation_recognizer.cpp",
"$ace_root/frameworks/core/components_ng/gestures/recognizers/sequenced_recognizer.cpp",
"$ace_root/frameworks/core/components_ng/gestures/recognizers/swipe_recognizer.cpp",
# NG
"$ace_root/frameworks/core/components_ng/pattern/gesture/gesture_model_ng.cpp",
]
ohos_unittest("gestures_test_ng") {
module_out_path = gestures_test_output_path
sources = [ "gestures_test_ng.cpp" ]
test_sources = [ "gestures_test_ng.cpp" ]
sources = common_sources + test_sources
deps = [
"$ace_root/build:ace_ohos_unittest_base",
"$ace_root/frameworks/core/components_ng/base:ace_core_components_base_ng_ohos",
"$ace_root/test/unittest:ace_unittest_log",
"$ace_root/test/unittest:ace_unittest_trace",
"$cjson_root:cjson_static",
"//third_party/googletest:gmock_main",
]
configs = [ "$ace_root/test/unittest:ace_unittest_config" ]

View File

@ -14,6 +14,7 @@
*/
#include <optional>
#include <vector>
#include "gtest/gtest.h"
@ -23,6 +24,7 @@
#include "base/memory/ace_type.h"
#include "base/memory/referenced.h"
#include "core/components_ng/base/view_stack_processor.h"
#include "core/components_ng/event/gesture_event_hub.h"
#include "core/components_ng/gestures/gesture_group.h"
#include "core/components_ng/gestures/gesture_referee.h"
#include "core/components_ng/gestures/long_press_gesture.h"
@ -41,6 +43,10 @@
#include "core/components_ng/gestures/tap_gesture.h"
#include "core/components_ng/layout/layout_property.h"
#include "core/components_ng/pattern/gesture/gesture_model_ng.h"
#include "core/components_ng/test/mock/render/mock_media_player.h"
#include "core/event/axis_event.h"
#include "core/event/key_event.h"
#include "core/pipeline_ng/test/mock/mock_pipeline_base.h"
using namespace testing;
using namespace testing::ext;
@ -67,9 +73,20 @@ constexpr int32_t DEFAULT_PAN_FINGER = 1;
constexpr double DEFAULT_PAN_DISTANCE = 5.0;
constexpr int32_t DEFAULT_SLIDE_FINGER = DEFAULT_PAN_FINGER;
constexpr double DEFAULT_SLIDE_SPEED = 100.0;
constexpr double PAN_DISTANCE = 1.0;
} // namespace
class GesturesTestNg : public testing::Test {};
class GesturesTestNg : public testing::Test {
public:
static void SetUpTestSuite()
{
MockPipelineBase::SetUp();
}
static void TearDownTestSuite()
{
MockPipelineBase::TearDown();
}
};
/**
* @tc.name: GestureRecognizerTest001
@ -1913,6 +1930,7 @@ HWTEST_F(GesturesTestNg, PanRecognizerTest006, TestSize.Level1)
*/
PanRecognizer::GestureAcceptResult result;
panRecognizer.direction_.type = PanDirection::ALL;
panRecognizer.distance_ = 0;
result = panRecognizer.IsPanGestureAccept();
EXPECT_EQ(result, PanRecognizer::GestureAcceptResult::ACCEPT);
@ -4367,7 +4385,7 @@ HWTEST_F(GesturesTestNg, SwipeRecognizerTest004, TestSize.Level1)
EXPECT_EQ(swipeRecognizer.lastTouchEvent_.id, touchEvent.id);
AxisEvent axisEvent;
swipeRecognizer.refereeState_ = RefereeState::FAIL;
swipeRecognizer.refereeState_ = RefereeState::DETECTING;
swipeRecognizer.HandleTouchMoveEvent(axisEvent);
EXPECT_EQ(swipeRecognizer.globalPoint_.GetX(), axisEvent.x);
EXPECT_EQ(swipeRecognizer.globalPoint_.GetY(), axisEvent.y);
@ -5540,4 +5558,344 @@ HWTEST_F(GesturesTestNg, GestureTest001, TestSize.Level1)
auto swipeGestureNG = AceType::DynamicCast<NG::SwipeGesture>(gestureProcessor->TopGestureNG());
EXPECT_EQ(swipeGestureNG->speed_, speedNum);
}
/*
* @tc.name: PanGestureTest001
* @tc.desc: Test PanGesture CreateRecognizer function
*/
HWTEST_F(GesturesTestNg, PanGestureTest001, TestSize.Level1)
{
/**
* @tc.steps: step1. create PanGesture.
*/
auto panGestureOption = AceType::MakeRefPtr<PanGestureOption>();
auto panGesture = AceType::MakeRefPtr<PanGesture>(panGestureOption);
ASSERT_NE(panGesture, nullptr);
EXPECT_EQ(panGesture->panGestureOption_->fingers_, panGestureOption->fingers_);
/**
* @tc.steps: step2. call CreateRecognizer function and compare result.
* @tc.expect: panRecognizer create successfully, use the same Option as panGesture.
*/
panGesture->priority_ = GesturePriority::Low;
panGesture->gestureMask_ = GestureMask::Normal;
auto panRecognizer = AceType::DynamicCast<PanRecognizer>(panGesture->CreateRecognizer());
ASSERT_NE(panRecognizer, nullptr);
EXPECT_EQ(panRecognizer->GetPriority(), GesturePriority::Low);
EXPECT_EQ(panRecognizer->GetPriorityMask(), GestureMask::Normal);
EXPECT_EQ(panRecognizer->distance_, DEFAULT_PAN_DISTANCE);
}
/**
* @tc.name: PanGestureTest002
* @tc.desc: Test PanGesture CreateRecognizer function
*/
HWTEST_F(GesturesTestNg, PanGestureTest002, TestSize.Level1)
{
/**
* @tc.steps: step1. create PanGesture.
*/
PanDirection panDirection;
panDirection.type = PanDirection::RIGHT;
auto panGesture = AceType::MakeRefPtr<PanGesture>(SINGLE_FINGER_NUMBER, panDirection, PAN_DISTANCE);
ASSERT_NE(panGesture, nullptr);
EXPECT_EQ(panGesture->fingers_, SINGLE_FINGER_NUMBER);
/**
* @tc.steps: step2. create onActionStart, onActionUpdate, onActionEnd, onActionCancel for PanRecognizer.
* @tc.expect: panRecognizer create successfully with the OnActionCall.
*/
panGesture->priority_ = GesturePriority::Low;
panGesture->gestureMask_ = GestureMask::Normal;
auto onActionStart = [](GestureEvent& info) { return true; };
auto onActionUpdate = [](GestureEvent& info) { return true; };
auto onActionEnd = [](GestureEvent& info) { return true; };
auto onActionCancel = []() { return true; };
panGesture->SetOnActionStartId(onActionStart);
panGesture->SetOnActionUpdateId(onActionUpdate);
panGesture->SetOnActionEndId(onActionEnd);
panGesture->SetOnActionCancelId(onActionCancel);
EXPECT_TRUE(panGesture->onActionStartId_);
EXPECT_TRUE(panGesture->onActionUpdateId_);
EXPECT_TRUE(panGesture->onActionEndId_);
EXPECT_TRUE(panGesture->onActionCancelId_);
auto panRecognizer = AceType::DynamicCast<PanRecognizer>(panGesture->CreateRecognizer());
ASSERT_NE(panRecognizer, nullptr);
EXPECT_EQ(panRecognizer->GetPriority(), GesturePriority::Low);
EXPECT_EQ(panRecognizer->GetPriorityMask(), GestureMask::Normal);
}
/**
* @tc.name: PinchGestureTest002
* @tc.desc: Test PinchGesture CreateRecognizer function
*/
HWTEST_F(GesturesTestNg, PinchGestureTest002, TestSize.Level1)
{
/**
* @tc.steps: step1. create PinchGesture.
*/
auto pinchGesture = AceType::MakeRefPtr<PinchGesture>(FINGER_NUMBER, PINCH_GESTURE_DISTANCE);
ASSERT_NE(pinchGesture, nullptr);
/**
* @tc.steps: step2. call CreateRecognizer function and compare result
* @tc.expect: pinchRecognizer create successfully, use the same Option as pinchGesture.
*/
pinchGesture->priority_ = GesturePriority::Low;
pinchGesture->gestureMask_ = GestureMask::Normal;
auto onActionStart = [](GestureEvent& info) { return true; };
auto onActionUpdate = [](GestureEvent& info) { return true; };
auto onActionEnd = [](GestureEvent& info) { return true; };
auto onActionCancel = []() { return true; };
pinchGesture->SetOnActionStartId(onActionStart);
pinchGesture->SetOnActionUpdateId(onActionUpdate);
pinchGesture->SetOnActionEndId(onActionEnd);
pinchGesture->SetOnActionCancelId(onActionCancel);
EXPECT_TRUE(pinchGesture->onActionStartId_);
EXPECT_TRUE(pinchGesture->onActionUpdateId_);
EXPECT_TRUE(pinchGesture->onActionEndId_);
EXPECT_TRUE(pinchGesture->onActionCancelId_);
auto pinchRecognizer = AceType::DynamicCast<PinchRecognizer>(pinchGesture->CreateRecognizer());
ASSERT_NE(pinchRecognizer, nullptr);
EXPECT_EQ(pinchRecognizer->GetPriority(), GesturePriority::Low);
EXPECT_EQ(pinchRecognizer->GetPriorityMask(), GestureMask::Normal);
EXPECT_EQ(pinchRecognizer->distance_, PINCH_GESTURE_DISTANCE);
}
/**
* @tc.name: PinchRecognizerTest008
* @tc.desc: Test PinchRecognizer function: IsCtrlBeingPressed
* @tc.type: FUNC
*/
HWTEST_F(GesturesTestNg, PinchRecognizerTest008, TestSize.Level1)
{
/**
* @tc.steps: step1. create PinchRecognizer.
*/
RefPtr<PinchRecognizer> pinchRecognizer = AceType::MakeRefPtr<PinchRecognizer>(SINGLE_FINGER_NUMBER,
PINCH_GESTURE_DISTANCE);
ASSERT_NE(pinchRecognizer, nullptr);
/**
* @tc.steps: step2. use IsCtrlBeingPressed with no setting.
* @tc.expect: IsCtrlBeingPressed return false.
*/
EXPECT_FALSE(pinchRecognizer->IsCtrlBeingPressed());
/**
* @tc.steps: step3. create keyEvent and Set KeyEvent to pipeline.
* @tc.expect: Set KeyCode KEY_CTRL_LEFT or KEY_CTRL_RIGHT , return True.
*/
KeyEvent keyEvent;
keyEvent.code = KeyCode::KEY_CTRL_LEFT;
auto context = PipelineContext::GetCurrentContext();
ASSERT_NE(context, nullptr);
auto eventManager = AceType::MakeRefPtr<EventManager>();
ASSERT_NE(eventManager, nullptr);
std::vector<KeyCode> keyCodes { KeyCode::KEY_CTRL_LEFT };
eventManager->SetPressedKeyCodes(keyCodes);
context->SetEventManager(eventManager);
EXPECT_TRUE(pinchRecognizer->IsCtrlBeingPressed());
keyEvent.code = KeyCode::KEY_CTRL_RIGHT;
EXPECT_TRUE(pinchRecognizer->IsCtrlBeingPressed());
}
/**
* @tc.name: PinchRecognizerTest009
* @tc.desc: Test PinchRecognizer function: HandleTouchDownEvent
* @tc.type: FUNC
*/
HWTEST_F(GesturesTestNg, PinchRecognizerTest009, TestSize.Level1)
{
/**
* @tc.steps: step1. create PinchRecognizer.
*/
RefPtr<PinchRecognizer> pinchRecognizer = AceType::MakeRefPtr<PinchRecognizer>(SINGLE_FINGER_NUMBER,
PINCH_GESTURE_DISTANCE);
ASSERT_NE(pinchRecognizer, nullptr);
/**
* @tc.steps: step2. use fingers_ > MAX_PINCH_FINGERS in HandleTouchDownEvent(TouchEvent).
* @tc.expect: pinchRecognizer->disposal_ is equal to GestureDisposal::REJECT.
*/
TouchEvent touchEvent;
pinchRecognizer->fingers_ = FINGER_NUMBER_OVER_MAX;
pinchRecognizer->refereeState_ = RefereeState::READY;
pinchRecognizer->HandleTouchDownEvent(touchEvent);
EXPECT_EQ(pinchRecognizer->disposal_, GestureDisposal::REJECT);
/**
* @tc.steps: step3. test with HandleTouchDownEvent(AxisEvent).
*/
pinchRecognizer->fingers_ = SINGLE_FINGER_NUMBER;
AxisEvent axisEvent;
/**
* @tc.steps: step3.1. axisEvent NearZero and IsCtrlBeingPressed() is false.
* @tc.expect: pinchRecognizer.disposal_ is equal to GestureDisposal::REJECT.
*/
axisEvent.pinchAxisScale = 0.0;
pinchRecognizer->HandleTouchDownEvent(axisEvent);
EXPECT_TRUE(pinchRecognizer->IsCtrlBeingPressed());
EXPECT_EQ(pinchRecognizer->disposal_, GestureDisposal::REJECT);
/**
* @tc.steps: step3.2. axisEvent not NearZero and IsRefereeFinished() is true.
* @tc.expect: pinchRecognizer->disposal_ is equal to GestureDisposal::REJECT.
*/
axisEvent.pinchAxisScale = 2.0;
pinchRecognizer->refereeState_ = RefereeState::SUCCEED;
pinchRecognizer->HandleTouchDownEvent(axisEvent);
EXPECT_EQ(pinchRecognizer->disposal_, GestureDisposal::REJECT);
/**
* @tc.steps: step3.2. axisEvent with refereeState_ = RefereeState::READY.
* @tc.expect: pinchRecognizer->scale_ is equal to 1.0f.
*/
pinchRecognizer->refereeState_ = RefereeState::READY;
pinchRecognizer->HandleTouchDownEvent(axisEvent);
EXPECT_EQ(pinchRecognizer->scale_, 1.0);
}
/**
* @tc.name: PinchRecognizerTest010
* @tc.desc: Test PinchRecognizer function: HandleTouchUpEvent
* @tc.type: FUNC
*/
HWTEST_F(GesturesTestNg, PinchRecognizerTest010, TestSize.Level1)
{
/**
* @tc.steps: step1. create PinchRecognizer.
*/
RefPtr<PinchRecognizer> pinchRecognizer = AceType::MakeRefPtr<PinchRecognizer>(SINGLE_FINGER_NUMBER,
PINCH_GESTURE_DISTANCE);
ASSERT_NE(pinchRecognizer, nullptr);
/**
* @tc.steps: step2. use refereeState_ != RefereeState::SUCCEED and refereeState_ != RefereeState::FAIL.
* @tc.expect: pinchRecognizer->disposal_ is equal to GestureDisposal::REJECT.
*/
TouchEvent touchEvent;
pinchRecognizer->isPinchEnd_ = false;
pinchRecognizer->refereeState_ = RefereeState::FAIL;
pinchRecognizer->HandleTouchDownEvent(touchEvent);
pinchRecognizer->refereeState_ = RefereeState::READY;
pinchRecognizer->HandleTouchDownEvent(touchEvent);
EXPECT_EQ(pinchRecognizer->disposal_, GestureDisposal::NONE);
/**
* @tc.steps: step3. test with HandleTouchDownEvent(AxisEvent).
*/
AxisEvent axisEvent;
/**
* @tc.steps: step3.1. test with isPinchEnd_ is true.
*/
pinchRecognizer->isPinchEnd_ = true;
pinchRecognizer->HandleTouchUpEvent(axisEvent);
/**
* @tc.steps: step3.2. test with refereeState_ != RefereeState::SUCCEED and refereeState_ != RefereeState::FAIL.
* @tc.expect: pinchRecognizer->disposal_ is equal to GestureDisposal::REJECT.
*/
pinchRecognizer->isPinchEnd_ = false;
pinchRecognizer->refereeState_ = RefereeState::DETECTING;
pinchRecognizer->HandleTouchUpEvent(axisEvent);
EXPECT_EQ(pinchRecognizer->disposal_, GestureDisposal::REJECT);
/**
* @tc.steps: step3.2. test with refereeState_ != RefereeState::SUCCEED.
* @tc.expect: pinchRecognizer->isPinchEnd_ is true.
*/
pinchRecognizer->refereeState_ = RefereeState::SUCCEED;
pinchRecognizer->HandleTouchUpEvent(axisEvent);
EXPECT_EQ(pinchRecognizer->isPinchEnd_, true);
}
/**
* @tc.name: PinchRecognizerTest011
* @tc.desc: Test PinchRecognizer function: HandleTouchMoveEvent
* @tc.type: FUNC
*/
HWTEST_F(GesturesTestNg, PinchRecognizerTest011, TestSize.Level1)
{
/**
* @tc.steps: step1. create PinchRecognizer.
*/
RefPtr<PinchRecognizer> pinchRecognizer = AceType::MakeRefPtr<PinchRecognizer>(SINGLE_FINGER_NUMBER,
PINCH_GESTURE_DISTANCE);
ASSERT_NE(pinchRecognizer, nullptr);
/**
* @tc.steps: step2. test HandleTouchMoveEvent(TouchEvent).
*/
pinchRecognizer->refereeState_ = RefereeState::DETECTING;
std::vector<TouchEvent> touchEvents;
for (std::size_t i = 0; i < 5; ++i) {
TouchEvent touchEvent;
touchEvent.x = 100.0 * (i + 1);
touchEvent.y = 100.0 * (i + 1);
pinchRecognizer->touchPoints_[i] = touchEvent;
}
pinchRecognizer->initialDev_ = 1.0;
TouchEvent touchEvent;
touchEvent.x = 100.0;
touchEvent.y = 100.0;
/**
* @tc.steps: step2.1. test HandleTouchMoveEvent(TouchEvent) with fabs(currentDev_ - initialDev_) >= distance_.
* @tc.expect: scale_ = pinchRecognizer->ComputeAverageDeviation() / initialDev_.
*/
pinchRecognizer->HandleTouchMoveEvent(touchEvent);
EXPECT_EQ(pinchRecognizer->scale_, pinchRecognizer->ComputeAverageDeviation() / pinchRecognizer->initialDev_);
EXPECT_EQ(pinchRecognizer->disposal_, GestureDisposal::ACCEPT);
/**
* @tc.steps: step2.2. test HandleTouchMoveEvent(TouchEvent) with refereeState_ == RefereeState::SUCCEED.
* @tc.expect: scale_ = pinchRecognizer->ComputeAverageDeviation() / initialDev_
*/
pinchRecognizer->refereeState_ = RefereeState::SUCCEED;
pinchRecognizer->initialDev_ = 2.0;
pinchRecognizer->OnFlushTouchEventsEnd();
pinchRecognizer->HandleTouchMoveEvent(touchEvent);
EXPECT_EQ(pinchRecognizer->scale_, pinchRecognizer->ComputeAverageDeviation() / pinchRecognizer->initialDev_);
/**
* @tc.steps: step3. test HandleTouchMoveEvent(AxisEvent).
*/
AxisEvent axisEvent;
pinchRecognizer->isPinchEnd_ = false;
/**
* @tc.steps: step3.1. axisEvent NearZero and IsCtrlBeingPressed() is false.
* @tc.expect: pinchRecognizer->disposal_ is equal to GestureDisposal::REJECT.
*/
axisEvent.pinchAxisScale = 0.0;
pinchRecognizer->refereeState_ = RefereeState::DETECTING;
auto context = PipelineContext::GetCurrentContext();
ASSERT_NE(context, nullptr);
context->eventManager_ = nullptr;
pinchRecognizer->HandleTouchMoveEvent(axisEvent);
EXPECT_EQ(pinchRecognizer->disposal_, GestureDisposal::REJECT);
/**
* @tc.steps: step3.2. test with refereeState_ = RefereeState::SUCCEED.
* @tc.expect: pinchRecognizer->refereeState_ is equal to RefereeState::READY.
*/
pinchRecognizer->isPinchEnd_ = false;
pinchRecognizer->refereeState_ = RefereeState::SUCCEED;
pinchRecognizer->HandleTouchMoveEvent(axisEvent);
EXPECT_EQ(pinchRecognizer->refereeState_, RefereeState::READY);
EXPECT_EQ(pinchRecognizer->isPinchEnd_, true);
/**
* @tc.steps: step3.3. test with axisEvent not NearZero .
* @tc.expect: pinchRecognizer->scale_ is equal to axisEvent.pinchAxisScale.
*/
pinchRecognizer->isPinchEnd_ = false;
axisEvent.pinchAxisScale = 1.0;
pinchRecognizer->refereeState_ = RefereeState::DETECTING;
pinchRecognizer->HandleTouchMoveEvent(axisEvent);
EXPECT_EQ(pinchRecognizer->scale_, axisEvent.pinchAxisScale);
}
} // namespace OHOS::Ace::NG