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 #include "mmi_log.h" 21 22 #undef MMI_LOG_TAG 23 #define MMI_LOG_TAG "GestureHandlerTest" 24 namespace OHOS { 25 namespace MMI { 26 namespace { 27 using namespace testing::ext; 28 } // namespace 29 30 class GestureHandlerTest : public testing::Test { 31 public: SetUpTestCase(void)32 static void SetUpTestCase(void) {} TearDownTestCase(void)33 static void TearDownTestCase(void) {} 34 }; 35 36 /** 37 * @tc.name: GestureHandlerTest_GestureIdentify_001 38 * @tc.desc: Verify gesture handler 39 * @tc.type: FUNC 40 * @tc.require:SR000HQ0RR 41 */ 42 HWTEST_F(GestureHandlerTest, GestureHandlerTest_GestureIdentify_001, TestSize.Level1) 43 { 44 CALL_DEBUG_ENTER; 45 int32_t seatSlot = 0; 46 double logicalX = 10; 47 double logicalY = 10; 48 auto originType = LIBINPUT_EVENT_TOUCHPAD_DOWN; 49 auto actionType = GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 50 seatSlot = 1; 51 logicalX = 100; 52 logicalY = 100; 53 originType = LIBINPUT_EVENT_TOUCHPAD_DOWN; 54 actionType = GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 55 ASSERT_EQ(actionType, PointerEvent::POINTER_ACTION_UNKNOWN); 56 } 57 58 /** 59 * @tc.name: GestureHandlerTest_GestureIdentify_002 60 * @tc.desc: Verify gesture handler 61 * @tc.type: FUNC 62 * @tc.require:SR000HQ0RR 63 */ 64 HWTEST_F(GestureHandlerTest, GestureHandlerTest_GestureIdentify_002, TestSize.Level1) 65 { 66 CALL_DEBUG_ENTER; 67 int32_t seatSlot = 0; 68 double logicalX = 10; 69 double logicalY = 10; 70 auto originType = LIBINPUT_EVENT_TOUCHPAD_DOWN; 71 auto actionType = GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 72 seatSlot = 1; 73 logicalX = 100; 74 logicalY = 100; 75 originType = LIBINPUT_EVENT_TOUCHPAD_DOWN; 76 GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 77 seatSlot = 1; 78 logicalX = 100; 79 logicalY = 0; 80 originType = LIBINPUT_EVENT_TOUCHPAD_MOTION; 81 actionType = GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 82 ASSERT_NE(actionType, PointerEvent::POINTER_ACTION_ROTATE_BEGIN); 83 } 84 85 /** 86 * @tc.name: GestureHandlerTest_GestureIdentify_003 87 * @tc.desc: Verify gesture handler 88 * @tc.type: FUNC 89 * @tc.require:SR000HQ0RR 90 */ 91 HWTEST_F(GestureHandlerTest, GestureHandlerTest_GestureIdentify_003, TestSize.Level1) 92 { 93 CALL_DEBUG_ENTER; 94 int32_t seatSlot = 0; 95 double logicalX = 9; 96 double logicalY = 9; 97 auto originType = LIBINPUT_EVENT_TOUCHPAD_DOWN; 98 auto actionType = GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 99 seatSlot = 1; 100 logicalX = 99; 101 logicalY = 99; 102 originType = LIBINPUT_EVENT_TOUCHPAD_DOWN; 103 GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 104 seatSlot = 1; 105 logicalX = 99; 106 logicalY = 0; 107 originType = LIBINPUT_EVENT_TOUCHPAD_MOTION; 108 GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 109 seatSlot = 0; 110 logicalX = 0; 111 logicalY = 99; 112 originType = LIBINPUT_EVENT_TOUCHPAD_MOTION; 113 actionType = GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 114 ASSERT_EQ(actionType, PointerEvent::POINTER_ACTION_ROTATE_UPDATE); 115 } 116 117 /** 118 * @tc.name: GestureHandlerTest_GestureIdentify_004 119 * @tc.desc: Verify gesture handler 120 * @tc.type: FUNC 121 * @tc.require:SR000HQ0RR 122 */ 123 HWTEST_F(GestureHandlerTest, GestureHandlerTest_GestureIdentify_004, TestSize.Level1) 124 { 125 CALL_DEBUG_ENTER; 126 int32_t seatSlot = 0; 127 double logicalX = 10; 128 double logicalY = 10; 129 auto originType = LIBINPUT_EVENT_TOUCHPAD_DOWN; 130 auto actionType = GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 131 seatSlot = 1; 132 logicalX = 200; 133 logicalY = 200; 134 originType = LIBINPUT_EVENT_TOUCHPAD_DOWN; 135 GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 136 seatSlot = 1; 137 logicalX = 200; 138 logicalY = 0; 139 originType = LIBINPUT_EVENT_TOUCHPAD_MOTION; 140 GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 141 seatSlot = 0; 142 logicalX = 0; 143 logicalY = 200; 144 originType = LIBINPUT_EVENT_TOUCHPAD_MOTION; 145 GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 146 seatSlot = 0; 147 logicalX = 0; 148 logicalY = 200; 149 originType = LIBINPUT_EVENT_TOUCHPAD_UP; 150 actionType = GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 151 ASSERT_EQ(actionType, PointerEvent::POINTER_ACTION_ROTATE_END); 152 } 153 154 /** 155 * @tc.name: GestureHandlerTest_GetRotateAngle_001 156 * @tc.desc: Verify get rotate angle 157 * @tc.type: FUNC 158 * @tc.require:SR000HQ0RR 159 */ 160 HWTEST_F(GestureHandlerTest, GestureHandlerTest_GetRotateAngle_001, TestSize.Level1) 161 { 162 CALL_DEBUG_ENTER; 163 int32_t seatSlot = 0; 164 double logicalX = 0; 165 double logicalY = 0; 166 auto originType = LIBINPUT_EVENT_TOUCHPAD_DOWN; 167 auto actionType = GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 168 seatSlot = 1; 169 logicalX = 10; 170 logicalY = 10; 171 originType = LIBINPUT_EVENT_TOUCHPAD_DOWN; 172 actionType = GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 173 seatSlot = 2; 174 logicalX = 20; 175 logicalY = 20; 176 originType = LIBINPUT_EVENT_TOUCHPAD_DOWN; 177 actionType = GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 178 double rotateAngle = 0.0; 179 ASSERT_EQ(GESTURE_HANDLER->GetRotateAngle(), rotateAngle); 180 } 181 182 /** 183 * @tc.name: GestureHandlerTest_GestureIdentify_005 184 * @tc.desc: Gesture identify 185 * @tc.type: FUNC 186 * @tc.require:SR000HQ0RR 187 */ 188 HWTEST_F(GestureHandlerTest, GestureHandlerTest_GestureIdentify_005, TestSize.Level1) 189 { 190 CALL_DEBUG_ENTER; 191 int32_t originType = 999; 192 int32_t seatSlot = 0; 193 double logicalX = 0.0; 194 double logicalY = 0.0; 195 auto actionType = GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 196 ASSERT_EQ(actionType, PointerEvent::POINTER_ACTION_UNKNOWN); 197 } 198 199 /** 200 * @tc.name: GestureHandlerTest_HandleTouchPadDownEvent_001 201 * @tc.desc: Handle touch pad down event 202 * @tc.type: FUNC 203 * @tc.require:SR000HQ0RR 204 */ 205 HWTEST_F(GestureHandlerTest, GestureHandlerTest_HandleTouchPadDownEvent_001, TestSize.Level1) 206 { 207 CALL_DEBUG_ENTER; 208 int32_t seatSlot = 2; 209 double logicalX = 0.0; 210 double logicalY = 0.0; 211 auto originType = LIBINPUT_EVENT_TOUCHPAD_DOWN; 212 auto gestureType = GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 213 ASSERT_EQ(gestureType, PointerEvent::POINTER_ACTION_UNKNOWN); 214 } 215 216 /** 217 * @tc.name: GestureHandlerTest_HandleTouchPadMoveEvent_001 218 * @tc.desc: Handle touch pad move event 219 * @tc.type: FUNC 220 * @tc.require:SR000HQ0RR 221 */ 222 HWTEST_F(GestureHandlerTest, GestureHandlerTest_HandleTouchPadMoveEvent_001, TestSize.Level1) 223 { 224 CALL_DEBUG_ENTER; 225 int32_t seatSlot = 0; 226 double logicalX = 0.0; 227 double logicalY = 0.0; 228 auto originType = LIBINPUT_EVENT_TOUCHPAD_MOTION; 229 auto gestureType = GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 230 ASSERT_EQ(gestureType, PointerEvent::POINTER_ACTION_UNKNOWN); 231 } 232 233 /** 234 * @tc.name: GestureHandlerTest_HandleTouchPadMoveEvent_002 235 * @tc.desc: Handle touch pad move event 236 * @tc.type: FUNC 237 * @tc.require:SR000HQ0RR 238 */ 239 HWTEST_F(GestureHandlerTest, GestureHandlerTest_HandleTouchPadMoveEvent_002, TestSize.Level1) 240 { 241 CALL_DEBUG_ENTER; 242 int32_t seatSlot = 0; 243 double logicalX = 0.0; 244 double logicalY = 0.0; 245 auto originType = LIBINPUT_EVENT_TOUCHPAD_MOTION; 246 auto gestureType = GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 247 ASSERT_EQ(gestureType, PointerEvent::POINTER_ACTION_UNKNOWN); 248 } 249 250 /** 251 * @tc.name: GestureHandlerTest_HandleTouchPadUpEvent_001 252 * @tc.desc: Handle touch pad up event 253 * @tc.type: FUNC 254 * @tc.require:SR000HQ0RR 255 */ 256 HWTEST_F(GestureHandlerTest, GestureHandlerTest_HandleTouchPadUpEvent_001, TestSize.Level1) 257 { 258 CALL_DEBUG_ENTER; 259 int32_t seatSlot = 0; 260 double logicalX = 0.0; 261 double logicalY = 0.0; 262 auto originType = LIBINPUT_EVENT_TOUCHPAD_UP; 263 auto gestureType = GESTURE_HANDLER->GestureIdentify(originType, seatSlot, logicalX, logicalY); 264 ASSERT_EQ(gestureType, PointerEvent::POINTER_ACTION_UNKNOWN); 265 } 266 } // namespace MMI 267 } // namespace OHOS