• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2024-2025 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 #include <cstdio>
16 #include <fstream>
17 #include <gtest/gtest.h>
18 
19 #include "mmi_log.h"
20 #include "oh_input_manager.h"
21 #include "pointer_event.h"
22 #include "pointer_event_ndk.h"
23 
24 #undef MMI_LOG_TAG
25 #define MMI_LOG_TAG "PointerEventNdkTest"
26 
27 struct Input_TouchEvent {
28     int32_t action;
29     int32_t id;
30     int32_t displayX;
31     int32_t displayY;
32     int64_t actionTime { -1 };
33     int32_t windowId { -1 };
34     int32_t displayId { -1 };
35 };
36 
37 namespace OHOS {
38 namespace MMI {
39 namespace {
40 using namespace testing::ext;
41 } // namespace
42 
43 class PointerEventNdkTest : public testing::Test {
44 public:
SetUpTestCase(void)45     static void SetUpTestCase(void) {}
TearDownTestCase(void)46     static void TearDownTestCase(void) {}
47 };
48 
49 /**
50  * @tc.name: PointerEventNdkTest_OH_Input_TouchEventToPointerEvent_Normal
51  * @tc.desc: Test the function OH_Input_TouchEventToPointerEvent with normal parameters
52  * @tc.type: FUNC
53  * @tc.require:
54  */
55 HWTEST_F(PointerEventNdkTest, PointerEventNdkTest_OH_Input_TouchEventToPointerEvent_001, TestSize.Level1)
56 {
57     CALL_TEST_DEBUG;
58     Input_TouchEvent inputTouchEvent;
59     inputTouchEvent.actionTime = 100;
60     inputTouchEvent.action = TOUCH_ACTION_DOWN;
61     inputTouchEvent.id = 1;
62     inputTouchEvent.displayX = 100;
63     inputTouchEvent.displayY = 200;
64     int32_t windowX = 10;
65     int32_t windowY = 20;
66 
67     std::shared_ptr<OHOS::MMI::PointerEvent> result
68         = OH_Input_TouchEventToPointerEvent(&inputTouchEvent, windowX, windowY);
69     EXPECT_NE(result, nullptr);
70 }
71 
72 /**
73  * @tc.name: PointerEventNdkTest_OH_Input_TouchEventToPointerEvent_InvalidActionTime
74  * @tc.desc: Test the function OH_Input_TouchEventToPointerEvent with invalid actionTime
75  * @tc.type: FUNC
76  * @tc.require:
77  */
78 HWTEST_F(PointerEventNdkTest, PointerEventNdkTest_OH_Input_TouchEventToPointerEvent_002, TestSize.Level1)
79 {
80     CALL_TEST_DEBUG;
81     Input_TouchEvent inputTouchEvent;
82     inputTouchEvent.actionTime = -1;
83     inputTouchEvent.action = TOUCH_ACTION_DOWN;
84     inputTouchEvent.id = 1;
85     inputTouchEvent.displayX = 100;
86     inputTouchEvent.displayY = 200;
87     int32_t windowX = 10;
88     int32_t windowY = 20;
89 
90     std::shared_ptr<OHOS::MMI::PointerEvent> result
91         = OH_Input_TouchEventToPointerEvent(&inputTouchEvent, windowX, windowY);
92     EXPECT_NE(result, nullptr);
93 }
94 
95 /**
96  * @tc.name: PointerEventNdkTest_OH_Input_TouchEventToPointerEvent_InvalidAction
97  * @tc.desc: Test the function OH_Input_TouchEventToPointerEvent with invalid action
98  * @tc.type: FUNC
99  * @tc.require:
100  */
101 HWTEST_F(PointerEventNdkTest, PointerEventNdkTest_OH_Input_TouchEventToPointerEvent_003, TestSize.Level1)
102 {
103     CALL_TEST_DEBUG;
104     Input_TouchEvent inputTouchEvent;
105     inputTouchEvent.actionTime = 100;
106     inputTouchEvent.action = static_cast<Input_TouchEventAction>(10);
107     inputTouchEvent.id = 1;
108     inputTouchEvent.displayX = 100;
109     inputTouchEvent.displayY = 200;
110     int32_t windowX = 10;
111     int32_t windowY = 20;
112 
113     std::shared_ptr<OHOS::MMI::PointerEvent> result
114         = OH_Input_TouchEventToPointerEvent(&inputTouchEvent, windowX, windowY);
115     EXPECT_EQ(result, nullptr);
116 }
117 
118 /**
119  * @tc.name: PointerEventNdkTest_OH_Input_TouchEventToPointerEvent_InvalidDisplayX
120  * @tc.desc: Test the function OH_Input_TouchEventToPointerEvent with invalid displayX
121  * @tc.type: FUNC
122  * @tc.require:
123  */
124 HWTEST_F(PointerEventNdkTest, PointerEventNdkTest_OH_Input_TouchEventToPointerEvent_004, TestSize.Level1)
125 {
126     CALL_TEST_DEBUG;
127     Input_TouchEvent inputTouchEvent;
128     inputTouchEvent.actionTime = 100;
129     inputTouchEvent.action = TOUCH_ACTION_DOWN;
130     inputTouchEvent.id = 1;
131     inputTouchEvent.displayX = -1;
132     inputTouchEvent.displayY = 200;
133     int32_t windowX = 10;
134     int32_t windowY = 20;
135 
136     std::shared_ptr<OHOS::MMI::PointerEvent> result
137         = OH_Input_TouchEventToPointerEvent(&inputTouchEvent, windowX, windowY);
138     EXPECT_EQ(result, nullptr);
139 }
140 
141 /**
142  * @tc.name: PointerEventNdkTest_OH_Input_TouchEventToPointerEvent_InvalidDisplayY
143  * @tc.desc: Test the function OH_Input_TouchEventToPointerEvent with invalid displayY
144  * @tc.type: FUNC
145  * @tc.require:
146  */
147 HWTEST_F(PointerEventNdkTest, PointerEventNdkTest_OH_Input_TouchEventToPointerEvent_005, TestSize.Level1)
148 {
149     CALL_TEST_DEBUG;
150     Input_TouchEvent inputTouchEvent;
151     inputTouchEvent.actionTime = 100;
152     inputTouchEvent.action = TOUCH_ACTION_DOWN;
153     inputTouchEvent.id = 1;
154     inputTouchEvent.displayX = 100;
155     inputTouchEvent.displayY = -1;
156     int32_t windowX = 10;
157     int32_t windowY = 20;
158 
159     std::shared_ptr<OHOS::MMI::PointerEvent> result
160         = OH_Input_TouchEventToPointerEvent(&inputTouchEvent, windowX, windowY);
161     EXPECT_EQ(result, nullptr);
162 }
163 
164 /**
165  * @tc.name: PointerEventNdkTest_OH_Input_TouchEventToPointerEvent_InvalidWindowX
166  * @tc.desc: Test the function OH_Input_TouchEventToPointerEvent with invalid windowX
167  * @tc.type: FUNC
168  * @tc.require:
169  */
170 HWTEST_F(PointerEventNdkTest, PointerEventNdkTest_OH_Input_TouchEventToPointerEvent_006, TestSize.Level1)
171 {
172     CALL_TEST_DEBUG;
173     Input_TouchEvent inputTouchEvent;
174     inputTouchEvent.actionTime = 100;
175     inputTouchEvent.action = TOUCH_ACTION_DOWN;
176     inputTouchEvent.id = 1;
177     inputTouchEvent.displayX = 100;
178     inputTouchEvent.displayY = 200;
179     int32_t windowX = -1;
180     int32_t windowY = 20;
181 
182     std::shared_ptr<OHOS::MMI::PointerEvent> result
183         = OH_Input_TouchEventToPointerEvent(&inputTouchEvent, windowX, windowY);
184     EXPECT_EQ(result, nullptr);
185 }
186 
187 /**
188  * @tc.name: PointerEventNdkTest_OH_Input_TouchEventToPointerEvent_InvalidWindowY
189  * @tc.desc: Test the function OH_Input_TouchEventToPointerEvent with invalid windowY
190  * @tc.type: FUNC
191  * @tc.require:
192  */
193 HWTEST_F(PointerEventNdkTest, PointerEventNdkTest_OH_Input_TouchEventToPointerEvent_007, TestSize.Level1)
194 {
195     CALL_TEST_DEBUG;
196     Input_TouchEvent inputTouchEvent;
197     inputTouchEvent.actionTime = 100;
198     inputTouchEvent.action = TOUCH_ACTION_DOWN;
199     inputTouchEvent.id = 1;
200     inputTouchEvent.displayX = 100;
201     inputTouchEvent.displayY = 200;
202     int32_t windowX = 10;
203     int32_t windowY = -1;
204 
205     std::shared_ptr<OHOS::MMI::PointerEvent> result
206         = OH_Input_TouchEventToPointerEvent(&inputTouchEvent, windowX, windowY);
207     EXPECT_EQ(result, nullptr);
208 }
209 } // namespace MMI
210 } // namespace OHOS