• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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