• 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 
21 namespace {
22 constexpr int32_t TEST_AXIS_ACTION_BEGIN = 1;
23 constexpr int32_t TEST_AXIS_ACTION_UPDATE = 2;
24 constexpr int32_t TEST_AXIS_ACTION_END = 3;
25 constexpr int32_t TEST_AXIS_ACTION_NONE = 0;
26 } // namespace
27 
28 namespace OHOS::Ace {
29 
30 /**
31  * @tc.name: OH_ArkUI_AxisEvent_GetAxisAction001
32  * @tc.desc: Test OH_ArkUI_AxisEvent_GetAxisAction with null event pointer
33  * @tc.type: FUNC
34  */
35 HWTEST_F(UIInputEventTest, OH_ArkUI_AxisEvent_GetAxisAction001, TestSize.Level0)
36 {
37     auto result = OH_ArkUI_AxisEvent_GetAxisAction(nullptr);
38     EXPECT_EQ(result, UI_AXIS_EVENT_ACTION_NONE);
39 }
40 
41 /**
42  * @tc.name: OH_ArkUI_AxisEvent_GetAxisAction002
43  * @tc.desc: Test OH_ArkUI_AxisEvent_GetAxisAction with all unsupported event types
44  * @tc.type: FUNC
45  */
46 /**
47  * @tc.name: OH_ArkUI_AxisEvent_GetAxisAction002
48  * @tc.desc: Test OH_ArkUI_AxisEvent_GetAxisAction with all unsupported event types
49  * @tc.type: FUNC
50  */
51 HWTEST_F(UIInputEventTest, OH_ArkUI_AxisEvent_GetAxisAction002, TestSize.Level0)
52 {
53     std::vector<std::pair<ArkUI_UIInputEvent_Type, ArkUIEventTypeId>> unsupportedEventTypes = {
54         { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, TOUCH_EVENT_ID },        // 1
55         { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, C_TOUCH_EVENT_ID },      // 2
56         { ARKUI_UIINPUTEVENT_TYPE_MOUSE, C_MOUSE_EVENT_ID },        // 3
57         { ARKUI_UIINPUTEVENT_TYPE_KEY, C_KEY_EVENT_ID },            // 5
58         { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, C_FOCUS_AXIS_EVENT_ID }, // 6
59         { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, C_CLICK_EVENT_ID },      // 7
60         { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, C_HOVER_EVENT_ID },      // 8
61     };
62 
63     // Test each unsupported event type
64     for (const auto& [inputType, eventTypeId] : unsupportedEventTypes) {
65         ArkUITouchEvent inputEvent;
66         ArkUI_UIInputEvent event = { inputType, eventTypeId, &inputEvent, false };
67         auto result = OH_ArkUI_AxisEvent_GetAxisAction(&event);
68         EXPECT_EQ(result, UI_AXIS_EVENT_ACTION_NONE) << "Failed for event type: " << static_cast<int>(eventTypeId);
69     }
70 }
71 
72 /**
73  * @tc.name: OH_ArkUI_AxisEvent_GetAxisAction101
74  * @tc.desc: Test OH_ArkUI_AxisEvent_GetAxisAction with AXIS_EVENT_ID type
75  * @tc.type: FUNC
76  */
77 HWTEST_F(UIInputEventTest, OH_ArkUI_AxisEvent_GetAxisAction101, TestSize.Level0)
78 {
79     // Prepare test data
80     OHOS::Ace::AxisEvent axisEvent;
81     axisEvent.action = OHOS::Ace::AxisAction::BEGIN;
82 
83     ArkUI_UIInputEvent event = { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, AXIS_EVENT_ID, &axisEvent };
84 
85     // Test normal case
86     auto result = OH_ArkUI_AxisEvent_GetAxisAction(&event);
87     EXPECT_EQ(result, TEST_AXIS_ACTION_BEGIN);
88 
89     // Test null inputEvent case
90     ArkUI_UIInputEvent nullEvent = { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, AXIS_EVENT_ID, nullptr };
91     result = OH_ArkUI_AxisEvent_GetAxisAction(&nullEvent);
92     EXPECT_EQ(result, UI_AXIS_EVENT_ACTION_NONE);
93 }
94 
95 /**
96  * @tc.name: OH_ArkUI_AxisEvent_GetAxisAction102
97  * @tc.desc: Test OH_ArkUI_AxisEvent_GetAxisAction with C_AXIS_EVENT_ID type
98  * @tc.type: FUNC
99  */
100 HWTEST_F(UIInputEventTest, OH_ArkUI_AxisEvent_GetAxisAction102, TestSize.Level0)
101 {
102     // Prepare test data
103     ArkUIAxisEvent axisEvent;
104     axisEvent.action = TEST_AXIS_ACTION_UPDATE;
105 
106     ArkUI_UIInputEvent event = { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, C_AXIS_EVENT_ID, &axisEvent };
107 
108     // Test normal case
109     auto result = OH_ArkUI_AxisEvent_GetAxisAction(&event);
110     EXPECT_EQ(result, TEST_AXIS_ACTION_UPDATE);
111 
112     // Test null inputEvent case
113     ArkUI_UIInputEvent nullEvent = { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, C_AXIS_EVENT_ID, nullptr };
114     result = OH_ArkUI_AxisEvent_GetAxisAction(&nullEvent);
115     EXPECT_EQ(result, UI_AXIS_EVENT_ACTION_NONE);
116 }
117 
118 /**
119  * @tc.name: OH_ArkUI_AxisEvent_GetAxisAction103
120  * @tc.desc: Test OH_ArkUI_AxisEvent_GetAxisAction with all action types
121  * @tc.type: FUNC
122  */
123 HWTEST_F(UIInputEventTest, OH_ArkUI_AxisEvent_GetAxisAction103, TestSize.Level0)
124 {
125     // Test BEGIN action
126     OHOS::Ace::AxisEvent beginEvent;
127     beginEvent.action = OHOS::Ace::AxisAction::BEGIN;
128     ArkUI_UIInputEvent event1 = { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, AXIS_EVENT_ID, &beginEvent };
129     auto result = OH_ArkUI_AxisEvent_GetAxisAction(&event1);
130     EXPECT_EQ(result, TEST_AXIS_ACTION_BEGIN);
131 
132     // Test UPDATE action
133     ArkUIAxisEvent updateEvent;
134     updateEvent.action = TEST_AXIS_ACTION_UPDATE;
135     ArkUI_UIInputEvent event2 = { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, C_AXIS_EVENT_ID, &updateEvent };
136     result = OH_ArkUI_AxisEvent_GetAxisAction(&event2);
137     EXPECT_EQ(result, TEST_AXIS_ACTION_UPDATE);
138 
139     // Test END action
140     OHOS::Ace::AxisEvent endEvent;
141     endEvent.action = OHOS::Ace::AxisAction::END;
142     ArkUI_UIInputEvent event3 = { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, AXIS_EVENT_ID, &endEvent };
143     result = OH_ArkUI_AxisEvent_GetAxisAction(&event3);
144     EXPECT_EQ(result, TEST_AXIS_ACTION_END);
145 
146     // Test NONE action
147     ArkUIAxisEvent noneEvent;
148     noneEvent.action = TEST_AXIS_ACTION_NONE;
149     ArkUI_UIInputEvent event4 = { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, C_AXIS_EVENT_ID, &noneEvent };
150     result = OH_ArkUI_AxisEvent_GetAxisAction(&event4);
151     EXPECT_EQ(result, TEST_AXIS_ACTION_NONE);
152 }
153 
154 } // namespace OHOS::Ace