| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- /*
- * Copyright (c) Contributors to the Open 3D Engine Project.
- * For complete copyright and license terms please see the LICENSE at the root of this distribution.
- *
- * SPDX-License-Identifier: Apache-2.0 OR MIT
- *
- */
- #include <AzTest/AzTest.h>
- #include <Gestures/GestureRecognizerClickOrTap.h>
- #include "BaseGestureTest.h"
- namespace
- {
- Gestures::RecognizerClickOrTap::Config singleTapOneSecond;
- }
- class MockRecognizer
- : public Gestures::RecognizerClickOrTap
- {
- public:
- AZ_CLASS_ALLOCATOR(MockRecognizer, AZ::SystemAllocator)
- MockRecognizer()
- : m_count(0)
- {
- }
- int m_count;
- void OnDiscreteGestureRecognized() override
- {
- ++m_count;
- }
- };
- class SimpleTests
- : public BaseGestureTest
- {
- public:
- void SetUp() override
- {
- BaseGestureTest::SetUp();
- // configure
- singleTapOneSecond.maxSecondsHeld = 1.0f;
- singleTapOneSecond.minClicksOrTaps = 1;
- }
- void TearDown() override
- {
- BaseGestureTest::TearDown();
- }
- };
- TEST_F(SimpleTests, NoInput_DefaultConfig_NotRecognized)
- {
- MockRecognizer mockRecognizer;
- mockRecognizer.SetConfig(singleTapOneSecond);
- ASSERT_EQ(0, mockRecognizer.m_count);
- }
- TEST_F(SimpleTests, Tap_ZeroDuration_Recognized)
- {
- MockRecognizer mockRecognizer;
- mockRecognizer.SetConfig(singleTapOneSecond);
- MouseDownAt(mockRecognizer, 0.0f);
- MouseUpAt(mockRecognizer, 0.0f);
- ASSERT_EQ(1, mockRecognizer.m_count);
- }
- TEST_F(SimpleTests, Tap_LessThanMaxDuration_Recognized)
- {
- MockRecognizer mockRecognizer;
- mockRecognizer.SetConfig(singleTapOneSecond);
- MouseDownAt(mockRecognizer, 0.0f);
- MouseUpAt(mockRecognizer, 0.9f);
- ASSERT_EQ(1, mockRecognizer.m_count);
- }
- TEST_F(SimpleTests, Tap_GreaterThanMaxDuration_NotRecognized)
- {
- MockRecognizer mockRecognizer;
- mockRecognizer.SetConfig(singleTapOneSecond);
- MouseDownAt(mockRecognizer, 0.0f);
- MouseUpAt(mockRecognizer, 1.1f);
- ASSERT_EQ(0, mockRecognizer.m_count);
- }
- TEST_F(SimpleTests, Tap_MoveWithinLimits_Recognized)
- {
- MockRecognizer mockRecognizer;
- singleTapOneSecond.maxPixelsMoved = 10.0f;
- mockRecognizer.SetConfig(singleTapOneSecond);
- MoveTo(0.0f, 0.0f);
- MouseDownAt(mockRecognizer, 0.0f);
- MoveTo(9.9f, 0.0f);
- MouseUpAt(mockRecognizer, 0.5f);
- ASSERT_EQ(1, mockRecognizer.m_count);
- }
- TEST_F(SimpleTests, Tap_MoveOutsideLimits_NotRecognized)
- {
- MockRecognizer mockRecognizer;
- singleTapOneSecond.maxPixelsMoved = 10.0f;
- mockRecognizer.SetConfig(singleTapOneSecond);
- MoveTo(0.0f, 0.0f);
- MouseDownAt(mockRecognizer, 0.0f);
- MoveTo(10.1f, 0.0f);
- MouseUpAt(mockRecognizer, 0.5f);
- ASSERT_EQ(0, mockRecognizer.m_count);
- }
|