• 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 
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