• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 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 
16 #include "../ui_input_event_test.h"
17 
18 using namespace testing;
19 using namespace testing::ext;
20 namespace OHOS::Ace {
21 
22 namespace {
23 struct GetPointerIdInputType {
GetPointerIdInputTypeOHOS::Ace::__anona66fbd9d0111::GetPointerIdInputType24     explicit GetPointerIdInputType(const ArkUI_UIInputEvent event, uint32_t pointerIndex = 0)
25         : event(event), pointerIndex(pointerIndex)
26         {};
27     ArkUI_UIInputEvent event;
28     uint32_t pointerIndex;
29 };
30 } // namespace
31 
32 /**
33  * @tc.name: OH_ArkUI_PointerEvent_GetPointerId001
34  * @tc.desc: Test the OH_ArkUI_PointerEvent_GetPointerId function.
35  * @tc.type: FUNC
36  */
37 HWTEST_F(UIInputEventTest, OH_ArkUI_PointerEvent_GetPointerId001, TestSize.Level0)
38 {
39     /**
40      * @tc.steps: step1.call functions and return expected results.
41      */
42     auto result = OH_ArkUI_PointerEvent_GetPointerId(nullptr, 0);
43     EXPECT_EQ(result, 0);
44 }
45 
46 /**
47  * @tc.name: OH_ArkUI_PointerEvent_GetPointerId101
48  * @tc.desc: Test the OH_ArkUI_PointerEvent_GetPointerId function.
49  * @tc.type: FUNC
50  */
51 HWTEST_F(UIInputEventTest, OH_ArkUI_PointerEvent_GetPointerId101, TestSize.Level0)
52 {
53     /**
54      * @tc.steps: step1.create and init ArkUI_UIInputEvent.
55      */
56     // 1 ArkUITouchEvent {C_TOUCH_EVENT_ID, touchEvent->touchPointes[pointerIndex].id}
57     ArkUITouchEvent inputEvent;
58     ArkUIEventTypeId eventTypeId = C_TOUCH_EVENT_ID;
59     ArkUITouchPoint points[1];
60     points[0].id = 10;
61     inputEvent.touchPointes = &points[0];
62     inputEvent.touchPointSize = 1;
63 
64     ArkUITouchEvent inputEventEmpty;
65 
66     std::vector<std::pair<GetPointerIdInputType, int32_t>> testCases = {
67         // case 1 !touchEvent
68         { GetPointerIdInputType(
69             ArkUI_UIInputEvent { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, eventTypeId, nullptr}, 0), 0 },
70         // case 2 pointerIndex < 0
71         { GetPointerIdInputType(
72             ArkUI_UIInputEvent { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, eventTypeId, &inputEvent}, -1), 0 },
73         // case 3 pointerIndex >= touchEvent->touchPointSize
74         { GetPointerIdInputType(
75             ArkUI_UIInputEvent { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, eventTypeId, &inputEvent}, 1), 0 },
76         // case 4 !(touchEvent->touchPointes)
77         { GetPointerIdInputType(
78             ArkUI_UIInputEvent { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, eventTypeId, &inputEventEmpty}, 0), 0 },
79         // case 5 getValue
80         { GetPointerIdInputType(
81             ArkUI_UIInputEvent { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, eventTypeId, &inputEvent}, 0), points[0].id },
82     };
83 
84     /**
85      * @tc.steps: step2. Init testCases and call functions.
86      * @tc.expected: Return expected results.
87      */
88     auto count = 0;
89     for (auto testCase : testCases) {
90         auto input = testCase.first;
91         auto expect = testCase.second;
92         auto result = OH_ArkUI_PointerEvent_GetPointerId(&input.event, input.pointerIndex);
93         EXPECT_FLOAT_EQ(result, expect) << "index = " << count << ",result = " << result << ",expect = " << expect;
94         count++;
95     }
96 }
97 
98 /**
99  * @tc.name: OH_ArkUI_PointerEvent_GetPointerId102
100  * @tc.desc: Test the OH_ArkUI_PointerEvent_GetPointerId function.
101  * @tc.type: FUNC
102  */
103 HWTEST_F(UIInputEventTest, OH_ArkUI_PointerEvent_GetPointerId102, TestSize.Level0)
104 {
105     /**
106      * @tc.steps: step1.create and init ArkUI_UIInputEvent.
107      */
108     // 2 ArkUIMouseEvent {C_MOUSE_EVENT_ID, mouseEvent->actionTouchPoint.id}
109     ArkUIMouseEvent inputEvent;
110     ArkUIEventTypeId eventTypeId = C_MOUSE_EVENT_ID;
111     inputEvent.actionTouchPoint.id = 10;
112 
113     std::vector<std::pair<GetPointerIdInputType, int32_t>> testCases = {
114         // case 1 !mouseEvent
115         { GetPointerIdInputType(
116             ArkUI_UIInputEvent { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, eventTypeId, nullptr}, 0), 0 },
117         // case 2 pointerIndex != 0
118         { GetPointerIdInputType(
119             ArkUI_UIInputEvent { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, eventTypeId, &inputEvent}, 1), 0 },
120         // case 3 getValue
121         { GetPointerIdInputType(
122             ArkUI_UIInputEvent { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, eventTypeId, &inputEvent}, 0),
123             inputEvent.actionTouchPoint.id },
124     };
125 
126     /**
127      * @tc.steps: step2. Init testCases and call functions.
128      * @tc.expected: Return expected results.
129      */
130     auto count = 0;
131     for (auto testCase : testCases) {
132         auto input = testCase.first;
133         auto expect = testCase.second;
134         auto result = OH_ArkUI_PointerEvent_GetPointerId(&input.event, input.pointerIndex);
135         EXPECT_FLOAT_EQ(result, expect) << "index = " << count << ",result = " << result << ",expect = " << expect;
136         count++;
137     }
138 }
139 
140 /**
141  * @tc.name: OH_ArkUI_PointerEvent_GetPointerId103
142  * @tc.desc: Test the OH_ArkUI_PointerEvent_GetPointerId function.
143  * @tc.type: FUNC
144  */
145 HWTEST_F(UIInputEventTest, OH_ArkUI_PointerEvent_GetPointerId103, TestSize.Level0)
146 {
147     /**
148      * @tc.steps: step1.create and init ArkUI_UIInputEvent.
149      */
150     // 3 ArkUIAxisEvent {C_AXIS_EVENT_ID, axisEvent->actionTouchPoint.id}
151     ArkUIAxisEvent inputEvent;
152     ArkUIEventTypeId eventTypeId = C_AXIS_EVENT_ID;
153     inputEvent.actionTouchPoint.id = 10;
154 
155     std::vector<std::pair<GetPointerIdInputType, int32_t>> testCases = {
156         // case 1 !mouseEvent
157         { GetPointerIdInputType(
158             ArkUI_UIInputEvent { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, eventTypeId, nullptr}, 0), 0 },
159         // case 2 pointerIndex != 0
160         { GetPointerIdInputType(
161             ArkUI_UIInputEvent { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, eventTypeId, &inputEvent}, 1), 0 },
162         // case 3 getValue
163         { GetPointerIdInputType(
164             ArkUI_UIInputEvent { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, eventTypeId, &inputEvent}, 0),
165             inputEvent.actionTouchPoint.id },
166     };
167 
168     /**
169      * @tc.steps: step2. Init testCases and call functions.
170      * @tc.expected: Return expected results.
171      */
172     auto count = 0;
173     for (auto testCase : testCases) {
174         auto input = testCase.first;
175         auto expect = testCase.second;
176         auto result = OH_ArkUI_PointerEvent_GetPointerId(&input.event, input.pointerIndex);
177         EXPECT_FLOAT_EQ(result, expect) << "index = " << count << ",result = " << result << ",expect = " << expect;
178         count++;
179     }
180 }
181 
182 /**
183  * @tc.name: OH_ArkUI_PointerEvent_GetPointerId104
184  * @tc.desc: Test the OH_ArkUI_PointerEvent_GetPointerId function.
185  * @tc.type: FUNC
186  */
187 HWTEST_F(UIInputEventTest, OH_ArkUI_PointerEvent_GetPointerId104, TestSize.Level0)
188 {
189     /**
190      * @tc.steps: step1.create and init ArkUI_UIInputEvent.
191      */
192     // 2 Other ArkUIEventTypeId
193     std::vector<ArkUIEventTypeId> typeIds = {
194         AXIS_EVENT_ID,
195         TOUCH_EVENT_ID,
196         C_KEY_EVENT_ID,
197         C_FOCUS_AXIS_EVENT_ID,
198         C_CLICK_EVENT_ID,
199         C_HOVER_EVENT_ID
200     };
201 
202     /**
203      * @tc.steps: step2. Init testCases and call functions.
204      * @tc.expected: Return expected results.
205      */
206     auto count = 0;
207     uint32_t pointerIndex = 0;
208     for (auto typeId : typeIds) {
209         auto uiInputEvent = ArkUI_UIInputEvent { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, typeId, nullptr };
210         auto result = OH_ArkUI_PointerEvent_GetPointerId(&uiInputEvent, pointerIndex);
211         EXPECT_EQ(result, 0) << "other index = " << count;
212         count++;
213     }
214 }
215 
216 } // namespace OHOS::Ace