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