• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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