1 /*
2 * Copyright (c) 2024 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 "gtest/gtest.h"
17
18 #include "frameworks/core/accessibility/accessibility_node.h"
19 #include "frameworks/core/accessibility/accessibility_utils.h"
20 #include "frameworks/core/accessibility/native_interface_accessibility_provider.h"
21 #include "interfaces/native/native_interface_accessibility.h"
22 #include "securec.h"
23
24 using namespace testing;
25 using namespace testing::ext;
26
27 namespace OHOS::Ace::NG {
28 namespace {
29 constexpr int32_t BOOL_MASK = 2;
30 constexpr int32_t SEND_EVENT_FAILED = -1;
31 const int32_t MAX_CHILD_COUNT = 20;
32 const int32_t MAX_ACTION_COUNT = 20;
33 const int32_t MAX_C_STR_CHAR_COUNT = 100;
34 int32_t g_errcode;
35
MockProviderCallBack(int32_t errorCode)36 void MockProviderCallBack(int32_t errorCode)
37 {
38 g_errcode = errorCode;
39 }
40
MockEventCallBack(int32_t errorCode)41 void MockEventCallBack(int32_t errorCode)
42 {
43 g_errcode = errorCode;
44 }
45
46 #define TWO_PARAMETER_NULLPTR_TEST(name, para0, para1, result) do { \
47 EXPECT_EQ(OH_ArkUI_##name(para0, nullptr), result); \
48 EXPECT_EQ(OH_ArkUI_##name(nullptr, para1), result); \
49 EXPECT_EQ(OH_ArkUI_##name(nullptr, nullptr), result); \
50 } while (0)
51
52 #define TWO_PARAMETER_NULLPTR_TEST_WITHOUT_SECOND(name, para0, para1, result) do { \
53 EXPECT_EQ(OH_ArkUI_##name(nullptr, para1), result); \
54 } while (0)
55
56 #define THREE_PARAMETER_NULLPTR_TEST_WITHOUT_SECOND(name, para0, para1, para2, result) do { \
57 EXPECT_EQ(OH_ArkUI_##name(para0, para1, nullptr), result); \
58 EXPECT_EQ(OH_ArkUI_##name(nullptr, para1, para2), result); \
59 EXPECT_EQ(OH_ArkUI_##name(nullptr, para1, nullptr), result); \
60 } while (0)
61
62 #define NATIVE_ADD_ELEMENTINFO(name, para0, para1) do { \
63 EXPECT_EQ(OH_ArkUI_AccessibilityElementInfo##name(para0, para1), \
64 ARKUI_ACCESSIBILITY_NATIVE_RESULT_SUCCESSFUL); \
65 } while (0)
66
67 #define NATIVE_ADD_ELEMENTINFO_WITH_STRING_PTR(name, para0, para1) do { \
68 auto para_##name = para1; \
69 EXPECT_EQ(OH_ArkUI_AccessibilityElementInfo##name(para0, para_##name.c_str()), \
70 ARKUI_ACCESSIBILITY_NATIVE_RESULT_SUCCESSFUL); \
71 } while (0)
72
73 std::vector<ArkUI_Accessibility_ActionType> actionTypeVector = {
74 ARKUI_ACCESSIBILITY_NATIVE_ACTION_TYPE_INVALID,
75 ARKUI_ACCESSIBILITY_NATIVE_ACTION_TYPE_CLICK,
76 ARKUI_ACCESSIBILITY_NATIVE_ACTION_TYPE_CLICK,
77 ARKUI_ACCESSIBILITY_NATIVE_ACTION_TYPE_LONG_CLICK,
78 ARKUI_ACCESSIBILITY_NATIVE_ACTION_TYPE_GAIN_ACCESSIBILITY_FOCUS,
79 ARKUI_ACCESSIBILITY_NATIVE_ACTION_TYPE_CLEAR_ACCESSIBILITY_FOCUS,
80 ARKUI_ACCESSIBILITY_NATIVE_ACTION_TYPE_SCROLL_FORWARD,
81 ARKUI_ACCESSIBILITY_NATIVE_ACTION_TYPE_SCROLL_BACKWARD,
82 ARKUI_ACCESSIBILITY_NATIVE_ACTION_TYPE_COPY,
83 ARKUI_ACCESSIBILITY_NATIVE_ACTION_TYPE_PASTE,
84 ARKUI_ACCESSIBILITY_NATIVE_ACTION_TYPE_CUT,
85 ARKUI_ACCESSIBILITY_NATIVE_ACTION_TYPE_SELECT_TEXT,
86 ARKUI_ACCESSIBILITY_NATIVE_ACTION_TYPE_SET_TEXT,
87 ARKUI_ACCESSIBILITY_NATIVE_ACTION_TYPE_SET_CURSOR_POSITION,
88 ARKUI_ACCESSIBILITY_NATIVE_ACTION_TYPE_NEXT_HTML_ITEM,
89 ARKUI_ACCESSIBILITY_NATIVE_ACTION_TYPE_PREVIOUS_HTML_ITEM,
90 };
91
92 } // namespace
93
94 class NativeInterfaceAccessibilityTestNg : public testing::Test {
95 public:
SetUpTestCase()96 static void SetUpTestCase() {};
TearDownTestCase()97 static void TearDownTestCase() {};
98
FillNativeAccessibilityElementInfoPart(ArkUI_AccessibilityElementInfo & beforeInfo,ArkUI_AccessibilityElementInfo & afterInfo)99 void FillNativeAccessibilityElementInfoPart(
100 ArkUI_AccessibilityElementInfo& beforeInfo,
101 ArkUI_AccessibilityElementInfo& afterInfo)
102 {
103 // screen rect
104 auto rect = beforeInfo.GetScreenRect();
105 NATIVE_ADD_ELEMENTINFO(SetScreenRect, &afterInfo, &rect);
106
107 // rangeInfo
108 auto rangeInfo = beforeInfo.GetRangeInfo();
109 NATIVE_ADD_ELEMENTINFO(SetRangeInfo, &afterInfo, &rangeInfo);
110
111 // GridInfo
112 auto gridInfo = beforeInfo.GetGridInfo();
113 NATIVE_ADD_ELEMENTINFO(SetGridInfo, &afterInfo, &gridInfo);
114
115 // GridItemInfo
116 auto gridItemInfo = beforeInfo.GetGridItemInfo();
117 NATIVE_ADD_ELEMENTINFO(SetGridItemInfo, &afterInfo, &gridItemInfo);
118
119 NATIVE_ADD_ELEMENTINFO_WITH_STRING_PTR(SetComponentType,
120 &afterInfo, beforeInfo.GetComponentType());
121 NATIVE_ADD_ELEMENTINFO_WITH_STRING_PTR(SetContents,
122 &afterInfo, beforeInfo.GetContents());
123 NATIVE_ADD_ELEMENTINFO_WITH_STRING_PTR(SetHintText,
124 &afterInfo, beforeInfo.GetHintText());
125 NATIVE_ADD_ELEMENTINFO_WITH_STRING_PTR(SetAccessibilityText,
126 &afterInfo, beforeInfo.GetAccessibilityText());
127 NATIVE_ADD_ELEMENTINFO_WITH_STRING_PTR(SetAccessibilityDescription,
128 &afterInfo, beforeInfo.GetAccessibilityDescription());
129 NATIVE_ADD_ELEMENTINFO_WITH_STRING_PTR(SetAccessibilityLevel,
130 &afterInfo, beforeInfo.GetAccessibilityLevel());
131 NATIVE_ADD_ELEMENTINFO_WITH_STRING_PTR(SetBackgroundColor,
132 &afterInfo, beforeInfo.GetBackgroundColor());
133 NATIVE_ADD_ELEMENTINFO_WITH_STRING_PTR(SetBackgroundImage,
134 &afterInfo, beforeInfo.GetBackgroundImage());
135 NATIVE_ADD_ELEMENTINFO_WITH_STRING_PTR(SetBlur,
136 &afterInfo, beforeInfo.GetBlur());
137 NATIVE_ADD_ELEMENTINFO_WITH_STRING_PTR(SetHitTestBehavior,
138 &afterInfo, beforeInfo.GetHitTestBehavior());
139 }
140
FillNativeAccessibilityElementInfo(ArkUI_AccessibilityElementInfo & beforeInfo,ArkUI_AccessibilityElementInfo & afterInfo)141 void FillNativeAccessibilityElementInfo(
142 ArkUI_AccessibilityElementInfo& beforeInfo,
143 ArkUI_AccessibilityElementInfo& afterInfo)
144 {
145 NATIVE_ADD_ELEMENTINFO(SetParentId, &afterInfo, beforeInfo.GetParentId());
146 NATIVE_ADD_ELEMENTINFO(SetElementId, &afterInfo, beforeInfo.GetElementId());
147 NATIVE_ADD_ELEMENTINFO(SetSelectedTextStart,
148 &afterInfo, beforeInfo.GetTextBeginSelected());
149 NATIVE_ADD_ELEMENTINFO(SetSelectedTextEnd,
150 &afterInfo, beforeInfo.GetTextEndSelected());
151 NATIVE_ADD_ELEMENTINFO(SetCurrentItemIndex, &afterInfo, beforeInfo.GetCurrentIndex());
152 NATIVE_ADD_ELEMENTINFO(SetStartItemIndex, &afterInfo, beforeInfo.GetBeginIndex());
153 NATIVE_ADD_ELEMENTINFO(SetEndItemIndex, &afterInfo, beforeInfo.GetEndIndex());
154 NATIVE_ADD_ELEMENTINFO(SetItemCount, &afterInfo, beforeInfo.GetItemCount());
155 NATIVE_ADD_ELEMENTINFO(SetAccessibilityOffset, &afterInfo, beforeInfo.GetOffset());
156 NATIVE_ADD_ELEMENTINFO(SetZIndex, &afterInfo, beforeInfo.GetZIndex());
157 NATIVE_ADD_ELEMENTINFO(SetAccessibilityOpacity, &afterInfo, beforeInfo.GetOpacity());
158 NATIVE_ADD_ELEMENTINFO(SetCheckable, &afterInfo, beforeInfo.IsCheckable());
159 NATIVE_ADD_ELEMENTINFO(SetChecked, &afterInfo, beforeInfo.IsChecked());
160 NATIVE_ADD_ELEMENTINFO(SetFocusable, &afterInfo, beforeInfo.IsFocusable());
161 NATIVE_ADD_ELEMENTINFO(SetFocused, &afterInfo, beforeInfo.IsFocused());
162 NATIVE_ADD_ELEMENTINFO(SetVisible, &afterInfo, beforeInfo.IsVisible());
163 NATIVE_ADD_ELEMENTINFO(SetAccessibilityFocused,
164 &afterInfo, beforeInfo.IsAccessibilityFocused());
165 NATIVE_ADD_ELEMENTINFO(SetSelected, &afterInfo, beforeInfo.IsSelected());
166 NATIVE_ADD_ELEMENTINFO(SetClickable, &afterInfo, beforeInfo.IsClickable());
167 NATIVE_ADD_ELEMENTINFO(SetLongClickable, &afterInfo, beforeInfo.IsLongClickable());
168 NATIVE_ADD_ELEMENTINFO(SetEnabled, &afterInfo, beforeInfo.IsEnabled());
169 NATIVE_ADD_ELEMENTINFO(SetIsPassword, &afterInfo, beforeInfo.IsPassword());
170 NATIVE_ADD_ELEMENTINFO(SetScrollable, &afterInfo, beforeInfo.IsScrollable());
171 NATIVE_ADD_ELEMENTINFO(SetEditable, &afterInfo, beforeInfo.IsEditable());
172 NATIVE_ADD_ELEMENTINFO(SetIsHint, &afterInfo, beforeInfo.IsHint());
173 NATIVE_ADD_ELEMENTINFO(SetAccessibilityGroup,
174 &afterInfo, beforeInfo.GetAccessibilityGroup());
175
176 FillNativeAccessibilityElementInfoPart(beforeInfo, afterInfo);
177 }
178
BuildNativeAccessibilityElementInfoPart(int32_t index,ArkUI_AccessibilityElementInfo & nativeInfo)179 void BuildNativeAccessibilityElementInfoPart(
180 int32_t index,
181 ArkUI_AccessibilityElementInfo& nativeInfo)
182 {
183 // screen rect
184 auto leftTopX = ++index;
185 auto leftTopY = ++index;
186 auto rightBottomX = ++index;
187 auto rightBottomY = ++index;
188 ArkUI_AccessibleRect screenRect {leftTopX, leftTopY, rightBottomX, rightBottomY};
189 nativeInfo.SetRect(screenRect);
190 // rangeInfo
191 auto min = ++index;
192 auto max = ++index;
193 auto current = ++index;
194 ArkUI_AccessibleRangeInfo rangeInfo {min, max, current};
195 nativeInfo.SetRangeInfo(rangeInfo);
196 // GridInfo
197 auto rowCount = ++index;
198 auto columnCount = ++index;
199 auto selectionMode = ++index;
200 ArkUI_AccessibleGridInfo gridInfo {rowCount, columnCount, selectionMode};
201 nativeInfo.SetGridInfo(gridInfo);
202 // GridItemInfo
203 auto heading = (++index) % BOOL_MASK;
204 auto columnIndex = ++index;
205 auto rowIndex = ++index;
206 auto columnSpan = ++index;
207 auto rowSpan = ++index;
208 auto selected = (++index) % BOOL_MASK;
209 ArkUI_AccessibleGridItemInfo gridItemInfo {heading, columnIndex, rowIndex, columnSpan, rowSpan, selected};
210 nativeInfo.SetGridItemInfo(gridItemInfo);
211
212 nativeInfo.SetComponentType(std::to_string(++index));
213 nativeInfo.SetContents(std::to_string(++index));
214 nativeInfo.SetHintText(std::to_string(++index));
215 nativeInfo.SetAccessibilityText(std::to_string(++index));
216 nativeInfo.SetAccessibilityDescription(std::to_string(++index));
217 nativeInfo.SetAccessibilityLevel(std::to_string(++index));
218 nativeInfo.SetBackgroundColor(std::to_string(++index));
219 nativeInfo.SetBackgroundImage(std::to_string(++index));
220 nativeInfo.SetBlur(std::to_string(++index));
221 nativeInfo.SetHitTestBehavior(std::to_string(++index));
222 }
223
BuildNativeAccessibilityElementInfo(int32_t index,ArkUI_AccessibilityElementInfo & nativeInfo)224 void BuildNativeAccessibilityElementInfo(
225 int32_t index,
226 ArkUI_AccessibilityElementInfo& nativeInfo)
227 {
228 nativeInfo.SetPageId(index);
229 nativeInfo.SetParentId(++index);
230 nativeInfo.SetElementId(++index);
231 nativeInfo.SetTextBeginSelected(++index);
232 nativeInfo.SetTextEndSelected(++index);
233 nativeInfo.SetCurrentIndex(++index);
234 nativeInfo.SetBeginIndex(++index);
235 nativeInfo.SetEndIndex(++index);
236 nativeInfo.SetItemCount(++index);
237 nativeInfo.SetOffset(++index);
238 nativeInfo.SetZIndex(++index);
239 nativeInfo.SetOpacity(++index);
240 nativeInfo.SetCheckable((++index) % BOOL_MASK);
241 nativeInfo.SetChecked((++index) % BOOL_MASK);
242 nativeInfo.SetFocusable((++index) % BOOL_MASK);
243 nativeInfo.SetFocused((++index) % BOOL_MASK);
244 nativeInfo.SetVisible((++index) % BOOL_MASK);
245 nativeInfo.SetAccessibilityFocused((++index) % BOOL_MASK);
246 nativeInfo.SetSelected((++index) % BOOL_MASK);
247 nativeInfo.SetClickable((++index) % BOOL_MASK);
248 nativeInfo.SetLongClickable((++index) % BOOL_MASK);
249 nativeInfo.SetEnabled((++index) % BOOL_MASK);
250 nativeInfo.SetPassword((++index) % BOOL_MASK);
251 nativeInfo.SetScrollable((++index) % BOOL_MASK);
252 nativeInfo.SetEditable((++index) % BOOL_MASK);
253 nativeInfo.SetHint((++index) % BOOL_MASK);
254 nativeInfo.SetAccessibilityGroup((++index) % BOOL_MASK);
255
256 BuildNativeAccessibilityElementInfoPart(index, nativeInfo);
257 }
258
CheckTransformElementInfoResultPart(ArkUI_AccessibilityElementInfo & beforeInfo,ArkUI_AccessibilityElementInfo & afterInfo)259 void CheckTransformElementInfoResultPart(
260 ArkUI_AccessibilityElementInfo& beforeInfo,
261 ArkUI_AccessibilityElementInfo& afterInfo)
262 {
263 // screen rect
264 EXPECT_EQ(beforeInfo.GetScreenRect().leftTopX,
265 afterInfo.GetScreenRect().leftTopX);
266 EXPECT_EQ(beforeInfo.GetScreenRect().leftTopY,
267 afterInfo.GetScreenRect().leftTopY);
268 EXPECT_EQ(beforeInfo.GetScreenRect().rightBottomX,
269 afterInfo.GetScreenRect().rightBottomX);
270 EXPECT_EQ(beforeInfo.GetScreenRect().rightBottomY,
271 afterInfo.GetScreenRect().rightBottomY);
272
273 // rangeInfo
274 EXPECT_EQ(beforeInfo.GetRangeInfo().min,
275 afterInfo.GetRangeInfo().min);
276 EXPECT_EQ(beforeInfo.GetRangeInfo().max,
277 afterInfo.GetRangeInfo().max);
278 EXPECT_EQ(beforeInfo.GetRangeInfo().current,
279 afterInfo.GetRangeInfo().current);
280
281 // GridInfo
282 EXPECT_EQ(beforeInfo.GetGridInfo().rowCount,
283 afterInfo.GetGridInfo().rowCount);
284 EXPECT_EQ(beforeInfo.GetGridInfo().columnCount,
285 afterInfo.GetGridInfo().columnCount);
286 EXPECT_EQ(beforeInfo.GetGridInfo().selectionMode,
287 afterInfo.GetGridInfo().selectionMode);
288
289 // GridItemInfo
290 EXPECT_EQ(beforeInfo.GetGridItemInfo().columnIndex,
291 afterInfo.GetGridItemInfo().columnIndex);
292 EXPECT_EQ(beforeInfo.GetGridItemInfo().rowIndex,
293 afterInfo.GetGridItemInfo().rowIndex);
294 EXPECT_EQ(beforeInfo.GetGridItemInfo().columnSpan,
295 afterInfo.GetGridItemInfo().columnSpan);
296 EXPECT_EQ(beforeInfo.GetGridItemInfo().rowSpan,
297 afterInfo.GetGridItemInfo().rowSpan);
298 EXPECT_EQ(beforeInfo.GetGridItemInfo().heading,
299 afterInfo.GetGridItemInfo().heading);
300 EXPECT_EQ(beforeInfo.GetGridItemInfo().selected,
301 afterInfo.GetGridItemInfo().selected);
302
303 EXPECT_EQ(beforeInfo.GetComponentType(), afterInfo.GetComponentType());
304 EXPECT_EQ(beforeInfo.GetContents(), afterInfo.GetContents());
305 EXPECT_EQ(beforeInfo.GetHintText(), afterInfo.GetHintText());
306 EXPECT_EQ(beforeInfo.GetAccessibilityText(), afterInfo.GetAccessibilityText());
307 EXPECT_EQ(beforeInfo.GetAccessibilityDescription(), afterInfo.GetAccessibilityDescription());
308 EXPECT_EQ(beforeInfo.GetAccessibilityLevel(), afterInfo.GetAccessibilityLevel());
309 EXPECT_EQ(beforeInfo.GetBackgroundColor(), afterInfo.GetBackgroundColor());
310 EXPECT_EQ(beforeInfo.GetBlur(), afterInfo.GetBlur());
311 EXPECT_EQ(beforeInfo.GetHitTestBehavior(), afterInfo.GetHitTestBehavior());
312 }
313
CheckTransformElementInfoResult(ArkUI_AccessibilityElementInfo & beforeInfo,ArkUI_AccessibilityElementInfo & afterInfo)314 void CheckTransformElementInfoResult(
315 ArkUI_AccessibilityElementInfo& beforeInfo,
316 ArkUI_AccessibilityElementInfo& afterInfo)
317 {
318 // Page ID not trans
319 EXPECT_EQ(beforeInfo.GetParentId(), afterInfo.GetParentId());
320 EXPECT_EQ(beforeInfo.GetElementId(), afterInfo.GetElementId());
321 EXPECT_EQ(beforeInfo.GetTextBeginSelected(), afterInfo.GetTextBeginSelected());
322 EXPECT_EQ(beforeInfo.GetTextEndSelected(), afterInfo.GetTextEndSelected());
323 EXPECT_EQ(beforeInfo.GetCurrentIndex(), afterInfo.GetCurrentIndex());
324 EXPECT_EQ(beforeInfo.GetBeginIndex(), afterInfo.GetBeginIndex());
325 EXPECT_EQ(beforeInfo.GetEndIndex(), afterInfo.GetEndIndex());
326 EXPECT_EQ(beforeInfo.GetItemCount(), afterInfo.GetItemCount());
327 EXPECT_EQ(beforeInfo.GetOffset(), afterInfo.GetOffset());
328 EXPECT_EQ(beforeInfo.GetZIndex(), afterInfo.GetZIndex());
329 EXPECT_EQ(beforeInfo.GetOpacity(), afterInfo.GetOpacity());
330 EXPECT_EQ(beforeInfo.IsCheckable(), afterInfo.IsCheckable());
331 EXPECT_EQ(beforeInfo.IsChecked(), afterInfo.IsChecked());
332 EXPECT_EQ(beforeInfo.IsFocusable(), afterInfo.IsFocusable());
333 EXPECT_EQ(beforeInfo.IsFocused(), afterInfo.IsFocused());
334 EXPECT_EQ(beforeInfo.IsVisible(), afterInfo.IsVisible());
335 EXPECT_EQ(beforeInfo.IsAccessibilityFocused(), afterInfo.IsAccessibilityFocused());
336 EXPECT_EQ(beforeInfo.IsSelected(), afterInfo.IsSelected());
337 EXPECT_EQ(beforeInfo.IsClickable(), afterInfo.IsClickable());
338 EXPECT_EQ(beforeInfo.IsLongClickable(), afterInfo.IsLongClickable());
339 EXPECT_EQ(beforeInfo.IsEnabled(), afterInfo.IsEnabled());
340 EXPECT_EQ(beforeInfo.IsPassword(), afterInfo.IsPassword());
341 EXPECT_EQ(beforeInfo.IsScrollable(), afterInfo.IsScrollable());
342 EXPECT_EQ(beforeInfo.IsEditable(), afterInfo.IsEditable());
343 EXPECT_EQ(beforeInfo.IsHint(), afterInfo.IsHint());
344 EXPECT_EQ(beforeInfo.GetAccessibilityGroup(), afterInfo.GetAccessibilityGroup());
345
346 CheckTransformElementInfoResultPart(beforeInfo, afterInfo);
347 }
348 };
349
350 /**
351 * @tc.name: accessibilityTest001
352 * @tc.desc: native_interface_accessibility.cpp abnormal
353 * @tc.type: FUNC
354 */
355 HWTEST_F(NativeInterfaceAccessibilityTestNg, AccessibilityProviderTest001, TestSize.Level1)
356 {
357 int32_t ret;
358 char testStr[] = "test";
359 int64_t testChildNodeIds[10];
360 ArkUI_AccessibilityProvider testProvider;
361 ArkUI_AccessibilityProviderCallbacks testCallbacks;
362 ArkUI_AccessibilityEventInfo testEventInfo;
363 ArkUI_AccessibilityElementInfo testElementInfo;
364
365 TWO_PARAMETER_NULLPTR_TEST(AccessibilityProviderRegisterCallback,
366 &testProvider, &testCallbacks, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
367
368 OH_ArkUI_SendAccessibilityAsyncEvent(nullptr, &testEventInfo, MockProviderCallBack);
369 OH_ArkUI_SendAccessibilityAsyncEvent(&testProvider, &testEventInfo, nullptr);
370 OH_ArkUI_SendAccessibilityAsyncEvent(nullptr, &testEventInfo, nullptr);
371
372 OH_ArkUI_DestoryAccessibilityElementInfo(nullptr);
373
374 OH_ArkUI_DestoryAccessibilityEventInfo(nullptr);
375
376 ret = OH_ArkUI_AccessibilityElementInfoSetElementId(nullptr, 0);
377 EXPECT_EQ(ret, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
378
379 ret = OH_ArkUI_AccessibilityElementInfoSetParentId(nullptr, 0);
380 EXPECT_EQ(ret, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
381
382 TWO_PARAMETER_NULLPTR_TEST(AccessibilityElementInfoSetComponentType,
383 &testElementInfo, testStr, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
384
385 TWO_PARAMETER_NULLPTR_TEST(AccessibilityElementInfoSetContents,
386 &testElementInfo, testStr, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
387
388 TWO_PARAMETER_NULLPTR_TEST(AccessibilityElementInfoSetHintText,
389 &testElementInfo, testStr, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
390
391 TWO_PARAMETER_NULLPTR_TEST(AccessibilityElementInfoSetAccessibilityText,
392 &testElementInfo, testStr, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
393
394 TWO_PARAMETER_NULLPTR_TEST(AccessibilityElementInfoSetAccessibilityDescription,
395 &testElementInfo, testStr, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
396
397 THREE_PARAMETER_NULLPTR_TEST_WITHOUT_SECOND(AccessibilityElementInfoSetChildNodeIds,
398 &testElementInfo, 0, testChildNodeIds, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
399 }
400
401 /**
402 * @tc.name: accessibilityTest002
403 * @tc.desc: native_interface_accessibility.cpp abnormal
404 * @tc.type: FUNC
405 */
406 HWTEST_F(NativeInterfaceAccessibilityTestNg, AccessibilityProviderTest002, TestSize.Level1)
407 {
408 int32_t ret;
409 ArkUI_AccessibilityElementInfo testElementInfo;
410 ArkUI_AccessibleAction testOperationActions;
411 ArkUI_AccessibleRect screenRect;
412
413 THREE_PARAMETER_NULLPTR_TEST_WITHOUT_SECOND(AccessibilityElementInfoSetOperationActions,
414 &testElementInfo, 1, &testOperationActions, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
415
416 ret = OH_ArkUI_AccessibilityElementInfoSetOperationActions(&testElementInfo, 0, &testOperationActions);
417 EXPECT_EQ(ret, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
418
419 TWO_PARAMETER_NULLPTR_TEST(AccessibilityElementInfoSetScreenRect,
420 &testElementInfo, &screenRect, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
421
422 TWO_PARAMETER_NULLPTR_TEST(AccessibilityElementInfoSetScreenRect,
423 &testElementInfo, &screenRect, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
424
425 TWO_PARAMETER_NULLPTR_TEST_WITHOUT_SECOND(AccessibilityElementInfoSetCheckable,
426 &testElementInfo, true, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
427
428 TWO_PARAMETER_NULLPTR_TEST_WITHOUT_SECOND(AccessibilityElementInfoSetChecked,
429 &testElementInfo, true, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
430
431 TWO_PARAMETER_NULLPTR_TEST_WITHOUT_SECOND(AccessibilityElementInfoSetFocusable,
432 &testElementInfo, true, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
433
434 TWO_PARAMETER_NULLPTR_TEST_WITHOUT_SECOND(AccessibilityElementInfoSetFocused,
435 &testElementInfo, true, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
436
437 TWO_PARAMETER_NULLPTR_TEST_WITHOUT_SECOND(AccessibilityElementInfoSetVisible,
438 &testElementInfo, true, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
439
440 TWO_PARAMETER_NULLPTR_TEST_WITHOUT_SECOND(AccessibilityElementInfoSetAccessibilityFocused,
441 &testElementInfo, true, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
442
443 TWO_PARAMETER_NULLPTR_TEST_WITHOUT_SECOND(AccessibilityElementInfoSetSelected,
444 &testElementInfo, true, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
445
446 TWO_PARAMETER_NULLPTR_TEST_WITHOUT_SECOND(AccessibilityElementInfoSetClickable,
447 &testElementInfo, true, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
448
449 TWO_PARAMETER_NULLPTR_TEST_WITHOUT_SECOND(AccessibilityElementInfoSetLongClickable,
450 &testElementInfo, true, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
451
452 TWO_PARAMETER_NULLPTR_TEST_WITHOUT_SECOND(AccessibilityElementInfoSetEnabled,
453 &testElementInfo, true, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
454
455 TWO_PARAMETER_NULLPTR_TEST_WITHOUT_SECOND(AccessibilityElementInfoSetIsPassword,
456 &testElementInfo, true, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
457
458 TWO_PARAMETER_NULLPTR_TEST_WITHOUT_SECOND(AccessibilityElementInfoSetScrollable,
459 &testElementInfo, true, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
460
461 TWO_PARAMETER_NULLPTR_TEST_WITHOUT_SECOND(AccessibilityElementInfoSetEditable,
462 &testElementInfo, true, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
463
464 TWO_PARAMETER_NULLPTR_TEST_WITHOUT_SECOND(AccessibilityElementInfoSetIsHint,
465 &testElementInfo, true, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
466
467 ArkUI_AccessibleRangeInfo rangeInfo;
468 TWO_PARAMETER_NULLPTR_TEST(AccessibilityElementInfoSetRangeInfo,
469 &testElementInfo, &rangeInfo, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
470 }
471
472 /**
473 * @tc.name: accessibilityTest003
474 * @tc.desc: native_interface_accessibility.cpp abnormal
475 * @tc.type: FUNC
476 */
477 HWTEST_F(NativeInterfaceAccessibilityTestNg, AccessibilityProviderTest003, TestSize.Level1)
478 {
479 ArkUI_AccessibilityElementInfo testElementInfo;
480 char testStr[] = "test";
481
482 ArkUI_AccessibleGridInfo gridInfo;
483 TWO_PARAMETER_NULLPTR_TEST(AccessibilityElementInfoSetGridInfo,
484 &testElementInfo, &gridInfo, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
485
486 ArkUI_AccessibleGridItemInfo gridItem;
487 TWO_PARAMETER_NULLPTR_TEST(AccessibilityElementInfoSetGridItemInfo,
488 &testElementInfo, &gridItem, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
489
490 TWO_PARAMETER_NULLPTR_TEST_WITHOUT_SECOND(AccessibilityElementInfoSetSelectedTextStart,
491 &testElementInfo, 0, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
492
493 TWO_PARAMETER_NULLPTR_TEST_WITHOUT_SECOND(AccessibilityElementInfoSetSelectedTextEnd,
494 &testElementInfo, 0, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
495
496 TWO_PARAMETER_NULLPTR_TEST_WITHOUT_SECOND(AccessibilityElementInfoSetCurrentItemIndex,
497 &testElementInfo, 0, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
498
499 TWO_PARAMETER_NULLPTR_TEST_WITHOUT_SECOND(AccessibilityElementInfoSetStartItemIndex,
500 &testElementInfo, 0, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
501
502 TWO_PARAMETER_NULLPTR_TEST_WITHOUT_SECOND(AccessibilityElementInfoSetEndItemIndex,
503 &testElementInfo, 0, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
504
505 TWO_PARAMETER_NULLPTR_TEST_WITHOUT_SECOND(AccessibilityElementInfoSetItemCount,
506 &testElementInfo, 0, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
507
508 TWO_PARAMETER_NULLPTR_TEST_WITHOUT_SECOND(AccessibilityElementInfoSetAccessibilityOffset,
509 &testElementInfo, 0, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
510
511 TWO_PARAMETER_NULLPTR_TEST_WITHOUT_SECOND(AccessibilityElementInfoSetAccessibilityGroup,
512 &testElementInfo, true, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
513
514 TWO_PARAMETER_NULLPTR_TEST(AccessibilityElementInfoSetAccessibilityLevel,
515 &testElementInfo, testStr, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
516
517 TWO_PARAMETER_NULLPTR_TEST_WITHOUT_SECOND(AccessibilityElementInfoSetZIndex,
518 &testElementInfo, 0, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
519
520 TWO_PARAMETER_NULLPTR_TEST_WITHOUT_SECOND(AccessibilityElementInfoSetAccessibilityOpacity,
521 &testElementInfo, 0, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
522
523 TWO_PARAMETER_NULLPTR_TEST(AccessibilityElementInfoSetBackgroundColor,
524 &testElementInfo, testStr, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
525
526 TWO_PARAMETER_NULLPTR_TEST(AccessibilityElementInfoSetBackgroundImage,
527 &testElementInfo, testStr, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
528
529 TWO_PARAMETER_NULLPTR_TEST(AccessibilityElementInfoSetBlur,
530 &testElementInfo, testStr, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
531
532 TWO_PARAMETER_NULLPTR_TEST(AccessibilityElementInfoSetHitTestBehavior,
533 &testElementInfo, testStr, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
534
535 TWO_PARAMETER_NULLPTR_TEST_WITHOUT_SECOND(AccessibilityEventSetEventType,
536 &testElementInfo, ARKUI_ACCESSIBILITY_NATIVE_EVENT_TYPE_INVALID,
537 ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
538 }
539
540 /**
541 * @tc.name: accessibilityTest004
542 * @tc.desc: native_interface_accessibility.cpp abnormal
543 * @tc.type: FUNC
544 */
545 HWTEST_F(NativeInterfaceAccessibilityTestNg, AccessibilityProviderTest004, TestSize.Level1)
546 {
547 ArkUI_AccessibilityEventInfo eventInfo;
548 ArkUI_AccessibilityElementInfo elementInfo;
549 int32_t ret;
550 char testStr[] = "test";
551
552 std::map<std::string, std::string> actionArguments;
553 ArkUI_AccessibilityActionArguments arguments(actionArguments);
554
555 TWO_PARAMETER_NULLPTR_TEST_WITHOUT_SECOND(AccessibilityEventSetTextAnnouncedForAccessibility,
556 &eventInfo, testStr, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
557
558 TWO_PARAMETER_NULLPTR_TEST_WITHOUT_SECOND(AccessibilityEventSetRequestFocusId,
559 &eventInfo, 0, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
560
561 TWO_PARAMETER_NULLPTR_TEST(AccessibilityEventSetElementInfo,
562 &eventInfo, &elementInfo, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
563
564 ret = OH_ArkUI_FindAccessibilityActionArgumentByKey(nullptr, testStr, nullptr);
565 EXPECT_EQ(ret, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
566 ret = OH_ArkUI_FindAccessibilityActionArgumentByKey(&arguments, nullptr, nullptr);
567 EXPECT_EQ(ret, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
568 ret = OH_ArkUI_FindAccessibilityActionArgumentByKey(nullptr, nullptr, nullptr);
569 EXPECT_EQ(ret, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
570 }
571
572 /**
573 * @tc.name: accessibilityTest005
574 * @tc.desc: set elementinfo success
575 * @tc.type: FUNC
576 */
577 HWTEST_F(NativeInterfaceAccessibilityTestNg, AccessibilityUtilsTest005, TestSize.Level1)
578 {
579 ArkUI_AccessibilityElementInfo beforeInfo;
580 ArkUI_AccessibilityElementInfo afterInfo;
581
582 BuildNativeAccessibilityElementInfo(1, beforeInfo);
583 FillNativeAccessibilityElementInfo(beforeInfo, afterInfo); // set afterinfo by api
584 CheckTransformElementInfoResult(beforeInfo, afterInfo);
585 }
586
587 /**
588 * @tc.name: accessibilityTest006
589 * @tc.desc: OH_ArkUI_AccessibilityProviderRegisterCallback
590 * @tc.type: FUNC
591 */
592 HWTEST_F(NativeInterfaceAccessibilityTestNg, AccessibilityUtilsTest006, TestSize.Level1)
593 {
594 ArkUI_AccessibilityProvider provider;
595 // 1. register call back nullptr return fail
596 int32_t ret = OH_ArkUI_AccessibilityProviderRegisterCallback(&provider, nullptr);
597 EXPECT_EQ(ret, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
598 // 2 event null return fail
599 g_errcode = 0;
600 OH_ArkUI_SendAccessibilityAsyncEvent(&provider, nullptr, MockEventCallBack);
601 EXPECT_EQ(g_errcode, SEND_EVENT_FAILED);
602
603 // 3 event alloced
604 ArkUI_AccessibilityEventInfo* eventInfo = OH_ArkUI_CreateAccessibilityEventInfo();
605 OH_ArkUI_SendAccessibilityAsyncEvent(&provider, eventInfo, MockEventCallBack);
606 EXPECT_NE(eventInfo, nullptr);
607 OH_ArkUI_DestoryAccessibilityEventInfo(eventInfo);
608 }
609
610 /**
611 * @tc.name: accessibilityTest006
612 * @tc.desc: OH_ArkUI_AccessibilityElementInfoSetChildNodeIds
613 * @tc.type: FUNC
614 */
615 HWTEST_F(NativeInterfaceAccessibilityTestNg, AccessibilityUtilsTest007, TestSize.Level1)
616 {
617 int64_t ret;
618 ArkUI_AccessibilityElementInfoList list;
619 int64_t childNodeIds[MAX_CHILD_COUNT];
620
621 // test OH_ArkUI_AddAndGetAccessibilityElementInfo
622 ArkUI_AccessibilityElementInfo* elementInfo = OH_ArkUI_AddAndGetAccessibilityElementInfo(&list);
623 EXPECT_NE(elementInfo, nullptr);
624
625 // abnormal nullptr
626 THREE_PARAMETER_NULLPTR_TEST_WITHOUT_SECOND(AccessibilityElementInfoSetChildNodeIds,
627 elementInfo, 0, childNodeIds, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
628 // abnormal childCount <= 0
629 ret = OH_ArkUI_AccessibilityElementInfoSetChildNodeIds(elementInfo, 0, childNodeIds);
630 EXPECT_EQ(ret, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
631
632 // add child
633 std::vector<int64_t> childIdsVector;
634 auto now = std::chrono::system_clock::now();
635 int64_t childCount =
636 std::chrono::duration_cast<std::chrono::milliseconds>(now.time_since_epoch())
637 .count();
638 childCount = (childCount % MAX_CHILD_COUNT) + 1;
639 for (int64_t i = 0; i < childCount; i++) {
640 childIdsVector.push_back(i);
641 childNodeIds[i] = i;
642 }
643
644 ret = OH_ArkUI_AccessibilityElementInfoSetChildNodeIds(elementInfo, childCount, childNodeIds);
645 EXPECT_EQ(ret, ARKUI_ACCESSIBILITY_NATIVE_RESULT_SUCCESSFUL);
646
647 EXPECT_EQ(elementInfo->GetChildNodeIds(), childIdsVector);
648 }
649
650 /**
651 * @tc.name: accessibilityTest008
652 * @tc.desc: OH_ArkUI_AccessibilityElementInfoSetOperationActions
653 * @tc.type: FUNC
654 */
655 HWTEST_F(NativeInterfaceAccessibilityTestNg, AccessibilityUtilsTest008, TestSize.Level1)
656 {
657 int64_t ret;
658 ArkUI_AccessibleAction operationActions[MAX_ACTION_COUNT];
659
660 // test OH_ArkUI_CreateAccessibilityElementInfo
661 ArkUI_AccessibilityElementInfo* elementInfo = OH_ArkUI_CreateAccessibilityElementInfo();
662 EXPECT_NE(elementInfo, nullptr);
663
664 // abnormal nullptr
665 THREE_PARAMETER_NULLPTR_TEST_WITHOUT_SECOND(AccessibilityElementInfoSetOperationActions,
666 elementInfo, 0, operationActions, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
667 // abnormal operationCount <= 0
668 ret = OH_ArkUI_AccessibilityElementInfoSetOperationActions(elementInfo, 0, operationActions);
669 EXPECT_EQ(ret, ARKUI_ACCESSIBILITY_NATIVE_RESULT_BAD_PARAMETER);
670
671 // add action
672 auto now = std::chrono::system_clock::now();
673 int64_t actionCount =
674 std::chrono::duration_cast<std::chrono::milliseconds>(now.time_since_epoch())
675 .count();
676 actionCount = (actionCount % MAX_ACTION_COUNT) + 1;
677
678 auto startIndex = actionCount;
679 char string[MAX_ACTION_COUNT][MAX_C_STR_CHAR_COUNT];
680 for (int64_t i = 0; i < actionCount; i++) {
681 ArkUI_Accessibility_ActionType actionType
682 = actionTypeVector[(startIndex + i) % actionTypeVector.size()];
683 auto content = std::to_string(startIndex + i);
684 (void)strcpy_s(string[i], MAX_C_STR_CHAR_COUNT, content.c_str());
685 operationActions[i].actionType = actionType;
686 operationActions[i].description = string[i];
687 }
688 ret = OH_ArkUI_AccessibilityElementInfoSetOperationActions(elementInfo, actionCount, operationActions);
689 EXPECT_EQ(ret, ARKUI_ACCESSIBILITY_NATIVE_RESULT_SUCCESSFUL);
690
691 EXPECT_EQ(elementInfo->GetOperationActions().size(), actionCount);
692 auto afterActionVetor = elementInfo->GetOperationActions();
693 for (int64_t i = 0; i < actionCount; i++) {
694 EXPECT_EQ(afterActionVetor[i].actionType,
695 operationActions[i].actionType);
696 std::string str1(afterActionVetor[i].description);
697 std::string str2(operationActions[i].description);
698 EXPECT_EQ(str1, str2);
699 }
700 OH_ArkUI_DestoryAccessibilityElementInfo(elementInfo);
701 }
702
703 /**
704 * @tc.name: accessibilityTest009
705 * @tc.desc: OH_ArkUI_AccessibilityElementInfoSetOperationActions
706 * @tc.type: FUNC
707 */
708 HWTEST_F(NativeInterfaceAccessibilityTestNg, AccessibilityUtilsTest009, TestSize.Level1)
709 {
710 int64_t ret;
711 ArkUI_AccessibleAction operationActions[MAX_ACTION_COUNT];
712
713 // test OH_ArkUI_CreateAccessibilityElementInfo
714 ArkUI_AccessibilityElementInfo* elementInfo = OH_ArkUI_CreateAccessibilityElementInfo();
715 EXPECT_NE(elementInfo, nullptr);
716
717 // add support action
718 // ARKUI_ACCESSIBILITY_NATIVE_ACTION_TYPE_NEXT_HTML_ITEM
719 // and ARKUI_ACCESSIBILITY_NATIVE_ACTION_TYPE_PREVIOUS_HTML_ITEM
720 int32_t actionCount = 2;
721 char string[MAX_ACTION_COUNT][MAX_C_STR_CHAR_COUNT];
722 auto startIndex = actionCount;
723 auto content = std::to_string(startIndex);
724 (void)strcpy_s(string[0], MAX_C_STR_CHAR_COUNT, content.c_str());
725 operationActions[0].actionType = ARKUI_ACCESSIBILITY_NATIVE_ACTION_TYPE_NEXT_HTML_ITEM;
726 operationActions[0].description = string[1];
727 content = std::to_string(startIndex + 1);
728 (void)strcpy_s(string[1], MAX_C_STR_CHAR_COUNT, content.c_str());
729 operationActions[1].actionType = ARKUI_ACCESSIBILITY_NATIVE_ACTION_TYPE_PREVIOUS_HTML_ITEM;
730 operationActions[1].description = string[1];
731
732 ret = OH_ArkUI_AccessibilityElementInfoSetOperationActions(elementInfo, actionCount, operationActions);
733 EXPECT_EQ(ret, ARKUI_ACCESSIBILITY_NATIVE_RESULT_SUCCESSFUL);
734
735 EXPECT_EQ(elementInfo->GetOperationActions().size(), actionCount);
736 auto afterActionVetor = elementInfo->GetOperationActions();
737 for (int64_t i = 0; i < actionCount; i++) {
738 EXPECT_EQ(afterActionVetor[i].actionType,
739 operationActions[i].actionType);
740 std::string str1(afterActionVetor[i].description);
741 std::string str2(operationActions[i].description);
742 EXPECT_EQ(str1, str2);
743 }
744 OH_ArkUI_DestoryAccessibilityElementInfo(elementInfo);
745 }
746 } // namespace OHOS::Ace::NG
747