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 uint64_t TEST_MODIFIER_KEYS = 0x12345678; 23 } // namespace 24 25 namespace OHOS::Ace { 26 27 /** 28 * @tc.name: OH_ArkUI_UIInputEvent_GetModifierKeyStates001 29 * @tc.desc: Test the OH_ArkUI_UIInputEvent_GetModifierKeyStates function with null parameters. 30 * @tc.type: FUNC 31 */ 32 HWTEST_F(UIInputEventTest, OH_ArkUI_UIInputEvent_GetModifierKeyStates001, TestSize.Level0) 33 { 34 uint64_t keys = 0; 35 auto result = OH_ArkUI_UIInputEvent_GetModifierKeyStates(nullptr, nullptr); 36 EXPECT_EQ(result, ARKUI_ERROR_CODE_PARAM_INVALID); 37 38 result = OH_ArkUI_UIInputEvent_GetModifierKeyStates(nullptr, &keys); 39 EXPECT_EQ(result, ARKUI_ERROR_CODE_PARAM_INVALID); 40 41 ArkUI_UIInputEvent event = { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, C_TOUCH_EVENT_ID, nullptr }; 42 result = OH_ArkUI_UIInputEvent_GetModifierKeyStates(&event, nullptr); 43 EXPECT_EQ(result, ARKUI_ERROR_CODE_PARAM_INVALID); 44 } 45 46 /** 47 * @tc.name: OH_ArkUI_UIInputEvent_GetModifierKeyStates101 48 * @tc.desc: Test the OH_ArkUI_UIInputEvent_GetModifierKeyStates function with C_TOUCH_EVENT_ID. 49 * @tc.type: FUNC 50 */ 51 HWTEST_F(UIInputEventTest, OH_ArkUI_UIInputEvent_GetModifierKeyStates101, TestSize.Level0) 52 { 53 ArkUITouchEvent touchEvent; 54 touchEvent.modifierKeyState = TEST_MODIFIER_KEYS; 55 ArkUI_UIInputEvent event = { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, C_TOUCH_EVENT_ID, &touchEvent }; 56 uint64_t keys = 0; 57 58 auto result = OH_ArkUI_UIInputEvent_GetModifierKeyStates(&event, &keys); 59 EXPECT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 60 EXPECT_EQ(keys, TEST_MODIFIER_KEYS); 61 } 62 63 /** 64 * @tc.name: OH_ArkUI_UIInputEvent_GetModifierKeyStates102 65 * @tc.desc: Test the OH_ArkUI_UIInputEvent_GetModifierKeyStates function with TOUCH_EVENT_ID. 66 * @tc.type: FUNC 67 */ 68 HWTEST_F(UIInputEventTest, OH_ArkUI_UIInputEvent_GetModifierKeyStates102, TestSize.Level0) 69 { 70 OHOS::Ace::PointerEvent pointerEvent; 71 ArkUI_UIInputEvent event = { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, TOUCH_EVENT_ID, &pointerEvent }; 72 uint64_t keys = 0; 73 74 auto result = OH_ArkUI_UIInputEvent_GetModifierKeyStates(&event, &keys); 75 EXPECT_TRUE(result == ARKUI_ERROR_CODE_NO_ERROR || result == ARKUI_ERROR_INPUT_EVENT_TYPE_NOT_SUPPORT); 76 } 77 78 /** 79 * @tc.name: OH_ArkUI_UIInputEvent_GetModifierKeyStates103 80 * @tc.desc: Test the OH_ArkUI_UIInputEvent_GetModifierKeyStates function with AXIS_EVENT_ID. 81 * @tc.type: FUNC 82 */ 83 HWTEST_F(UIInputEventTest, OH_ArkUI_UIInputEvent_GetModifierKeyStates103, TestSize.Level0) 84 { 85 OHOS::Ace::PointerEvent pointerEvent; 86 ArkUI_UIInputEvent event = { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, AXIS_EVENT_ID, &pointerEvent }; 87 uint64_t keys = 0; 88 89 auto result = OH_ArkUI_UIInputEvent_GetModifierKeyStates(&event, &keys); 90 EXPECT_TRUE(result == ARKUI_ERROR_CODE_NO_ERROR || result == ARKUI_ERROR_INPUT_EVENT_TYPE_NOT_SUPPORT); 91 } 92 93 /** 94 * @tc.name: OH_ArkUI_UIInputEvent_GetModifierKeyStates104 95 * @tc.desc: Test the OH_ArkUI_UIInputEvent_GetModifierKeyStates function with C_MOUSE_EVENT_ID. 96 * @tc.type: FUNC 97 */ 98 HWTEST_F(UIInputEventTest, OH_ArkUI_UIInputEvent_GetModifierKeyStates104, TestSize.Level0) 99 { 100 ArkUIMouseEvent mouseEvent; 101 mouseEvent.modifierKeyState = TEST_MODIFIER_KEYS; 102 ArkUI_UIInputEvent event = { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, C_MOUSE_EVENT_ID, &mouseEvent }; 103 uint64_t keys = 0; 104 105 auto result = OH_ArkUI_UIInputEvent_GetModifierKeyStates(&event, &keys); 106 EXPECT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 107 EXPECT_EQ(keys, TEST_MODIFIER_KEYS); 108 } 109 110 /** 111 * @tc.name: OH_ArkUI_UIInputEvent_GetModifierKeyStates105 112 * @tc.desc: Test the OH_ArkUI_UIInputEvent_GetModifierKeyStates function with C_AXIS_EVENT_ID. 113 * @tc.type: FUNC 114 */ 115 HWTEST_F(UIInputEventTest, OH_ArkUI_UIInputEvent_GetModifierKeyStates105, TestSize.Level0) 116 { 117 ArkUIAxisEvent axisEvent; 118 axisEvent.modifierKeyState = TEST_MODIFIER_KEYS; 119 ArkUI_UIInputEvent event = { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, C_AXIS_EVENT_ID, &axisEvent }; 120 uint64_t keys = 0; 121 122 auto result = OH_ArkUI_UIInputEvent_GetModifierKeyStates(&event, &keys); 123 EXPECT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 124 EXPECT_EQ(keys, TEST_MODIFIER_KEYS); 125 } 126 127 /** 128 * @tc.name: OH_ArkUI_UIInputEvent_GetModifierKeyStates106 129 * @tc.desc: Test the OH_ArkUI_UIInputEvent_GetModifierKeyStates function with C_KEY_EVENT_ID. 130 * @tc.type: FUNC 131 */ 132 HWTEST_F(UIInputEventTest, OH_ArkUI_UIInputEvent_GetModifierKeyStates106, TestSize.Level0) 133 { 134 ArkUIKeyEvent keyEvent; 135 keyEvent.modifierKeyState = TEST_MODIFIER_KEYS; 136 ArkUI_UIInputEvent event = { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, C_KEY_EVENT_ID, &keyEvent }; 137 uint64_t keys = 0; 138 139 auto result = OH_ArkUI_UIInputEvent_GetModifierKeyStates(&event, &keys); 140 EXPECT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 141 EXPECT_EQ(keys, TEST_MODIFIER_KEYS); 142 } 143 144 /** 145 * @tc.name: OH_ArkUI_UIInputEvent_GetModifierKeyStates107 146 * @tc.desc: Test the OH_ArkUI_UIInputEvent_GetModifierKeyStates function with C_FOCUS_AXIS_EVENT_ID. 147 * @tc.type: FUNC 148 */ 149 HWTEST_F(UIInputEventTest, OH_ArkUI_UIInputEvent_GetModifierKeyStates107, TestSize.Level0) 150 { 151 ArkUIFocusAxisEvent focusAxisEvent; 152 focusAxisEvent.modifierKeyState = TEST_MODIFIER_KEYS; 153 ArkUI_UIInputEvent event = { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, C_FOCUS_AXIS_EVENT_ID, &focusAxisEvent }; 154 uint64_t keys = 0; 155 156 auto result = OH_ArkUI_UIInputEvent_GetModifierKeyStates(&event, &keys); 157 EXPECT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 158 EXPECT_EQ(keys, TEST_MODIFIER_KEYS); 159 } 160 161 /** 162 * @tc.name: OH_ArkUI_UIInputEvent_GetModifierKeyStates108 163 * @tc.desc: Test the OH_ArkUI_UIInputEvent_GetModifierKeyStates function with C_HOVER_EVENT_ID. 164 * @tc.type: FUNC 165 */ 166 HWTEST_F(UIInputEventTest, OH_ArkUI_UIInputEvent_GetModifierKeyStates108, TestSize.Level0) 167 { 168 ArkUIHoverEvent hoverEvent; 169 hoverEvent.modifierKeyState = TEST_MODIFIER_KEYS; 170 ArkUI_UIInputEvent event = { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, C_HOVER_EVENT_ID, &hoverEvent }; 171 uint64_t keys = 0; 172 173 auto result = OH_ArkUI_UIInputEvent_GetModifierKeyStates(&event, &keys); 174 EXPECT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 175 EXPECT_EQ(keys, TEST_MODIFIER_KEYS); 176 } 177 178 /** 179 * @tc.name: OH_ArkUI_UIInputEvent_GetModifierKeyStates109 180 * @tc.desc: Test the OH_ArkUI_UIInputEvent_GetModifierKeyStates function with C_CLICK_EVENT_ID. 181 182 183 * @tc.type: FUNC 184 */ 185 HWTEST_F(UIInputEventTest, OH_ArkUI_UIInputEvent_GetModifierKeyStates109, TestSize.Level0) 186 { 187 ArkUIClickEvent clickEvent; 188 clickEvent.modifierKeyState = TEST_MODIFIER_KEYS; 189 ArkUI_UIInputEvent event = { ARKUI_UIINPUTEVENT_TYPE_UNKNOWN, C_CLICK_EVENT_ID, &clickEvent }; 190 uint64_t keys = 0; 191 192 auto result = OH_ArkUI_UIInputEvent_GetModifierKeyStates(&event, &keys); 193 EXPECT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 194 EXPECT_EQ(keys, TEST_MODIFIER_KEYS); 195 } 196 197 } // namespace OHOS::Ace