1 /* 2 * Copyright (c) 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 <gtest/gtest.h> 17 #include <libinput.h> 18 19 #include "gesture_handler.h" 20 21 namespace OHOS { 22 namespace MMI { 23 namespace { 24 using namespace testing::ext; 25 } // namespace 26 27 class GestureHandlerTest : public testing::Test { 28 public: SetUpTestCase(void)29 static void SetUpTestCase(void) {} TearDownTestCase(void)30 static void TearDownTestCase(void) {} 31 }; 32 33 /** 34 * @tc.name: GestureHandlerTest_GestureIdentify_001 35 * @tc.desc: Verify gesture handler 36 * @tc.type: FUNC 37 * @tc.require:SR000HQ0RR 38 */ 39 HWTEST_F(GestureHandlerTest, GestureHandlerTest_GestureIdentify_001, TestSize.Level1) 40 { 41 int32_t seatSlot = 0; 42 double logicalX = 10; 43 double logicalY = 10; 44 auto originType = LIBINPUT_EVENT_TOUCHPAD_DOWN; 45 auto actionType = GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 46 seatSlot = 1; 47 logicalX = 100; 48 logicalY = 100; 49 originType = LIBINPUT_EVENT_TOUCHPAD_DOWN; 50 actionType = GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 51 ASSERT_EQ(actionType, PointerEvent::POINTER_ACTION_UNKNOWN); 52 } 53 54 /** 55 * @tc.name: GestureHandlerTest_GestureIdentify_002 56 * @tc.desc: Verify gesture handler 57 * @tc.type: FUNC 58 * @tc.require:SR000HQ0RR 59 */ 60 HWTEST_F(GestureHandlerTest, GestureHandlerTest_GestureIdentify_002, TestSize.Level1) 61 { 62 int32_t seatSlot = 0; 63 double logicalX = 10; 64 double logicalY = 10; 65 auto originType = LIBINPUT_EVENT_TOUCHPAD_DOWN; 66 auto actionType = GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 67 seatSlot = 1; 68 logicalX = 100; 69 logicalY = 100; 70 originType = LIBINPUT_EVENT_TOUCHPAD_DOWN; 71 GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 72 seatSlot = 1; 73 logicalX = 100; 74 logicalY = 0; 75 originType = LIBINPUT_EVENT_TOUCHPAD_MOTION; 76 actionType = GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 77 ASSERT_EQ(actionType, PointerEvent::POINTER_ACTION_ROTATE_BEGIN); 78 } 79 80 /** 81 * @tc.name: GestureHandlerTest_GestureIdentify_003 82 * @tc.desc: Verify gesture handler 83 * @tc.type: FUNC 84 * @tc.require:SR000HQ0RR 85 */ 86 HWTEST_F(GestureHandlerTest, GestureHandlerTest_GestureIdentify_003, TestSize.Level1) 87 { 88 int32_t seatSlot = 0; 89 double logicalX = 9; 90 double logicalY = 9; 91 auto originType = LIBINPUT_EVENT_TOUCHPAD_DOWN; 92 auto actionType = GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 93 seatSlot = 1; 94 logicalX = 99; 95 logicalY = 99; 96 originType = LIBINPUT_EVENT_TOUCHPAD_DOWN; 97 GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 98 seatSlot = 1; 99 logicalX = 99; 100 logicalY = 0; 101 originType = LIBINPUT_EVENT_TOUCHPAD_MOTION; 102 GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 103 seatSlot = 0; 104 logicalX = 0; 105 logicalY = 99; 106 originType = LIBINPUT_EVENT_TOUCHPAD_MOTION; 107 actionType = GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 108 ASSERT_EQ(actionType, PointerEvent::POINTER_ACTION_ROTATE_UPDATE); 109 } 110 111 /** 112 * @tc.name: GestureHandlerTest_GestureIdentify_004 113 * @tc.desc: Verify gesture handler 114 * @tc.type: FUNC 115 * @tc.require:SR000HQ0RR 116 */ 117 HWTEST_F(GestureHandlerTest, GestureHandlerTest_GestureIdentify_004, TestSize.Level1) 118 { 119 int32_t seatSlot = 0; 120 double logicalX = 10; 121 double logicalY = 10; 122 auto originType = LIBINPUT_EVENT_TOUCHPAD_DOWN; 123 auto actionType = GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 124 seatSlot = 1; 125 logicalX = 200; 126 logicalY = 200; 127 originType = LIBINPUT_EVENT_TOUCHPAD_DOWN; 128 GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 129 seatSlot = 1; 130 logicalX = 200; 131 logicalY = 0; 132 originType = LIBINPUT_EVENT_TOUCHPAD_MOTION; 133 GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 134 seatSlot = 0; 135 logicalX = 0; 136 logicalY = 200; 137 originType = LIBINPUT_EVENT_TOUCHPAD_MOTION; 138 GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 139 seatSlot = 0; 140 logicalX = 0; 141 logicalY = 200; 142 originType = LIBINPUT_EVENT_TOUCHPAD_UP; 143 actionType = GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 144 ASSERT_EQ(actionType, PointerEvent::POINTER_ACTION_ROTATE_END); 145 } 146 147 /** 148 * @tc.name: GestureHandlerTest_GetRotateAngle_001 149 * @tc.desc: Verify get rotate angle 150 * @tc.type: FUNC 151 * @tc.require:SR000HQ0RR 152 */ 153 HWTEST_F(GestureHandlerTest, GestureHandlerTest_GetRotateAngle_001, TestSize.Level1) 154 { 155 int32_t seatSlot = 0; 156 double logicalX = 0; 157 double logicalY = 0; 158 auto originType = LIBINPUT_EVENT_TOUCHPAD_DOWN; 159 auto actionType = GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 160 seatSlot = 1; 161 logicalX = 10; 162 logicalY = 10; 163 originType = LIBINPUT_EVENT_TOUCHPAD_DOWN; 164 actionType = GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 165 seatSlot = 2; 166 logicalX = 20; 167 logicalY = 20; 168 originType = LIBINPUT_EVENT_TOUCHPAD_DOWN; 169 actionType = GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 170 double rotateAngle = 0.0; 171 ASSERT_EQ(GESTURE_HANDLER->GetRotateAngle(), rotateAngle); 172 } 173 } // namespace MMI 174 } // namespace OHOS