• 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 #include "frameworks/base/error/error_code.h"
19 
20 using namespace testing;
21 using namespace testing::ext;
22 
23 namespace {
24 constexpr int32_t TEST_SCROLL_STEP = 30;
25 constexpr int32_t DEFAULT_SCROLL_STEP = 0;
26 } // namespace
27 
28 namespace OHOS::Ace {
29 
30 /**
31  * @tc.name: OH_ArkUI_AxisEvent_GetScrollStep001
32  * @tc.desc: Test OH_ArkUI_AxisEvent_GetScrollStep with null event pointer
33  * @tc.type: FUNC
34  */
35 HWTEST_F(UIInputEventTest, OH_ArkUI_AxisEvent_GetScrollStep001, TestSize.Level0)
36 {
37     auto result = OH_ArkUI_AxisEvent_GetScrollStep(nullptr);
38     EXPECT_EQ(result, DEFAULT_SCROLL_STEP);
39 }
40 
41 /**
42  * @tc.name: OH_ArkUI_AxisEvent_GetScrollStep002
43  * @tc.desc: Test OH_ArkUI_AxisEvent_GetScrollStep with all unsupported event types
44  * @tc.type: FUNC
45  */
46 HWTEST_F(UIInputEventTest, OH_ArkUI_AxisEvent_GetScrollStep002, TestSize.Level0)
47 {
48     constexpr int32_t DEFAULT_SCROLL_STEP = 0;
49 
50     std::vector<std::pair<ArkUI_UIInputEvent_Type, ArkUIEventTypeId>> unsupportedEventTypes = {
51         { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, TOUCH_EVENT_ID },        // 1
52         { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, C_TOUCH_EVENT_ID },      // 2
53         { ARKUI_UIINPUTEVENT_TYPE_MOUSE, C_MOUSE_EVENT_ID },        // 3
54         { ARKUI_UIINPUTEVENT_TYPE_KEY, C_KEY_EVENT_ID },            // 5
55         { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, C_FOCUS_AXIS_EVENT_ID }, // 6
56         { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, C_CLICK_EVENT_ID },      // 7
57         { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, C_HOVER_EVENT_ID },      // 8
58     };
59 
60     // Test each unsupported event type
61     for (const auto& [inputType, eventTypeId] : unsupportedEventTypes) {
62         ArkUITouchEvent inputEvent;
63         ArkUI_UIInputEvent event = { inputType, eventTypeId, &inputEvent, false };
64         auto result = OH_ArkUI_AxisEvent_GetScrollStep(&event);
65         EXPECT_EQ(result, DEFAULT_SCROLL_STEP)
66             << "Unexpected scroll step value for event type: " << static_cast<int>(eventTypeId);
67     }
68 }
69 
70 /**
71  * @tc.name: OH_ArkUI_AxisEvent_GetScrollStep101
72  * @tc.desc: Test OH_ArkUI_AxisEvent_GetScrollStep with AXIS_EVENT_ID type
73  * @tc.type: FUNC
74  */
75 HWTEST_F(UIInputEventTest, OH_ArkUI_AxisEvent_GetScrollStep101, TestSize.Level0)
76 {
77     // Prepare test data
78     OHOS::Ace::AxisEvent axisEvent;
79     axisEvent.scrollStep = TEST_SCROLL_STEP;
80     ArkUI_UIInputEvent event = { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, AXIS_EVENT_ID, &axisEvent };
81 
82     // Test normal case
83     auto result = OH_ArkUI_AxisEvent_GetScrollStep(&event);
84     EXPECT_EQ(result, TEST_SCROLL_STEP);
85 
86     // Test null inputEvent case
87     ArkUI_UIInputEvent nullEvent = { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, AXIS_EVENT_ID, nullptr };
88     result = OH_ArkUI_AxisEvent_GetScrollStep(&nullEvent);
89     EXPECT_EQ(result, DEFAULT_SCROLL_STEP);
90 }
91 
92 /**
93  * @tc.name: OH_ArkUI_AxisEvent_GetScrollStep102
94  * @tc.desc: Test OH_ArkUI_AxisEvent_GetScrollStep with C_AXIS_EVENT_ID type
95  * @tc.type: FUNC
96  */
97 HWTEST_F(UIInputEventTest, OH_ArkUI_AxisEvent_GetScrollStep102, TestSize.Level0)
98 {
99     // Prepare test data
100     ArkUIAxisEvent axisEvent;
101     axisEvent.scrollStep = TEST_SCROLL_STEP;
102     ArkUI_UIInputEvent event = { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, C_AXIS_EVENT_ID, &axisEvent };
103 
104     // Test normal case
105     auto result = OH_ArkUI_AxisEvent_GetScrollStep(&event);
106     EXPECT_EQ(result, TEST_SCROLL_STEP);
107 
108     // Test null inputEvent case
109     ArkUI_UIInputEvent nullEvent = { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, C_AXIS_EVENT_ID, nullptr };
110     result = OH_ArkUI_AxisEvent_GetScrollStep(&nullEvent);
111     EXPECT_EQ(result, DEFAULT_SCROLL_STEP);
112 }
113 
114 /**
115  * @tc.name: OH_ArkUI_AxisEvent_GetScrollStep103
116  * @tc.desc: Test OH_ArkUI_AxisEvent_GetScrollStep with different scroll step values
117  * @tc.type: FUNC
118  */
119 HWTEST_F(UIInputEventTest, OH_ArkUI_AxisEvent_GetScrollStep103, TestSize.Level0)
120 {
121     // Test positive value
122     OHOS::Ace::AxisEvent positiveEvent;
123     positiveEvent.scrollStep = 50;
124     ArkUI_UIInputEvent event1 = { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, AXIS_EVENT_ID, &positiveEvent };
125     auto result = OH_ArkUI_AxisEvent_GetScrollStep(&event1);
126     EXPECT_EQ(result, 50);
127 
128     // Test zero value
129     ArkUIAxisEvent zeroEvent;
130     zeroEvent.scrollStep = 0;
131     ArkUI_UIInputEvent event2 = { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, C_AXIS_EVENT_ID, &zeroEvent };
132     result = OH_ArkUI_AxisEvent_GetScrollStep(&event2);
133     EXPECT_EQ(result, 0);
134 
135     // Test negative value
136     OHOS::Ace::AxisEvent negativeEvent;
137     negativeEvent.scrollStep = -20;
138     ArkUI_UIInputEvent event3 = { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, AXIS_EVENT_ID, &negativeEvent };
139     result = OH_ArkUI_AxisEvent_GetScrollStep(&event3);
140     EXPECT_EQ(result, -20);
141 }
142 
143 } // namespace OHOS::Ace