• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2024-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 <cstddef>
17 #include <cstdint>
18 #include "gtest/gtest.h"
19 #define private public
20 #define protected public
21 #include "native_interface.h"
22 #include "native_node.h"
23 #include "native_type.h"
24 #include "native_styled_string.h"
25 #include "event_converter.h"
26 #include "interfaces/native/node/node_extened.h"
27 #include "interfaces/native/node/node_model.h"
28 #include "interfaces/native/node/styled_string.h"
29 #include "test/mock/base/mock_task_executor.h"
30 #include "test/mock/core/common/mock_container.h"
31 #include "test/mock/core/common/mock_theme_manager.h"
32 #include "test/mock/core/pipeline/mock_pipeline_context.h"
33 #include "frameworks/base/error/error_code.h"
34 #include "frameworks/core/components_ng/base/ui_node.h"
35 
36 using namespace testing;
37 using namespace testing::ext;
38 namespace OHOS::Ace {
39 class NativeNodeTest : public testing::Test {
40 public:
SetUpTestSuite()41     static void SetUpTestSuite()
42     {
43         NG::MockPipelineContext::SetUp();
44         MockContainer::SetUp();
45         MockContainer::Current()->pipelineContext_ = NG::MockPipelineContext::GetCurrent();
46         MockContainer::Current()->taskExecutor_ = AceType::MakeRefPtr<MockTaskExecutor>();
47         MockContainer::Current()->pipelineContext_->taskExecutor_ = MockContainer::Current()->taskExecutor_;
48         auto themeManager = AceType::MakeRefPtr<MockThemeManager>();
49         PipelineBase::GetCurrentContext()->SetThemeManager(themeManager);
50     }
TearDownTestSuite()51     static void TearDownTestSuite()
52     {
53         NG::MockPipelineContext::TearDown();
54         MockContainer::TearDown();
55     }
SetUp()56     void SetUp() {}
TearDown()57     void TearDown() {}
58 };
59 
60 /**
61  * @tc.name: NativeNodeTest001
62  * @tc.desc: Test OH_ArkUI_NodeEvent_GetEventType function.
63  * @tc.type: FUNC
64  */
65 HWTEST_F(NativeNodeTest, NativeNodeTest001, TestSize.Level1)
66 {
67     ArkUI_NodeEvent event = { 0, -1 };
68     auto eventType = OH_ArkUI_NodeEvent_GetEventType(&event);
69     EXPECT_EQ(eventType, ArkUI_NodeEventType::NODE_TOUCH_EVENT);
70     event.kind = 0;
71     EXPECT_EQ(OH_ArkUI_NodeEvent_GetEventType(&event), ArkUI_NodeEventType::NODE_TOUCH_EVENT);
72 }
73 
74 /**
75  * @tc.name: NativeNodeTest002
76  * @tc.desc: Test OH_ArkUI_NodeEvent_GetEventType function.
77  * @tc.type: FUNC
78  */
79 HWTEST_F(NativeNodeTest, NativeNodeTest002, TestSize.Level1)
80 {
81     auto eventType = OH_ArkUI_NodeEvent_GetEventType(nullptr);
82     EXPECT_EQ(eventType, ArkUI_NodeEventType::NODE_TOUCH_EVENT);
83 }
84 
85 /**
86  * @tc.name: NativeNodeTest003
87  * @tc.desc: Test OH_ArkUI_NodeEvent_GetTargetId function.
88  * @tc.type: FUNC
89  */
90 HWTEST_F(NativeNodeTest, NativeNodeTest003, TestSize.Level1)
91 {
92     auto targetId = OH_ArkUI_NodeEvent_GetTargetId(nullptr);
93     EXPECT_EQ(targetId, -1);
94     ArkUI_NodeEvent event = { 0, 0 };
95     event.eventId = 0;
96     EXPECT_EQ(OH_ArkUI_NodeEvent_GetTargetId(&event), 0);
97 }
98 
99 /**
100  * @tc.name: NativeNodeTest004
101  * @tc.desc: Test OH_ArkUI_NodeEvent_GetNodeHandle function.
102  * @tc.type: FUNC
103  */
104 HWTEST_F(NativeNodeTest, NativeNodeTest004, TestSize.Level1)
105 {
106     auto handle = OH_ArkUI_NodeEvent_GetNodeHandle(nullptr);
107     EXPECT_EQ(handle, nullptr);
108     ArkUI_NodeEvent event = { 0, 0 };
109     event.node = nullptr;
110     EXPECT_EQ(OH_ArkUI_NodeEvent_GetNodeHandle(&event), nullptr);
111 }
112 
113 /**
114  * @tc.name: NativeNodeTest005
115  * @tc.desc: Test customNode function.
116  * @tc.type: FUNC
117  */
118 HWTEST_F(NativeNodeTest, NativeNodeTest005, TestSize.Level1)
119 {
120     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
121         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
122     auto rootNode = nodeAPI->createNode(ARKUI_NODE_STACK);
123     auto childNode = nodeAPI->createNode(ARKUI_NODE_STACK);
124     ASSERT_NE(rootNode, nullptr);
125     int32_t ret1 = nodeAPI->addChild(rootNode, childNode);
126     EXPECT_EQ(ret1, ARKUI_ERROR_CODE_NO_ERROR);
127     float size = 100.0f;
128     float padding = 10.0f;
129     float val0 = 0.0f;
130     float val01 = 0.1f;
131     float val05 = 0.5f;
132     float val1 = 1.0f;
133     float val10 = 10.0f;
134     float val100 = 100.0f;
135     float negativeFloat = -1.0f;
136     uint32_t color = 0xFFFF0000;
137     const char* pathCommands = "M100 0 L200 240 L0 240 Z";
138 
139     ArkUI_NumberValue value[] = {{.f32 = size}};
140     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue)};
141     ArkUI_NumberValue value2[] = {{.f32 = val1}, {.f32 = val1}};
142     ArkUI_AttributeItem item2 = {value2, sizeof(value2) / sizeof(ArkUI_NumberValue)};
143     ArkUI_NumberValue value3[] = {{.f32 = val0}, {.f32 = val0}, {.f32 = val0}};
144     ArkUI_AttributeItem item3 = {value3, sizeof(value3) / sizeof(ArkUI_NumberValue)};
145     ArkUI_NumberValue value4[] = {{.f32 = padding}, {.f32 = padding}, {.f32 = padding}, {.f32 = padding}};
146     ArkUI_AttributeItem item4 = {value4, sizeof(value4) / sizeof(ArkUI_NumberValue)};
147     ArkUI_NumberValue value5[] = {{.f32 = val0}, {.f32 = val0}, {.f32 = val0}, {.f32 = val0}, {.f32 = val0}};
148     ArkUI_AttributeItem item5 = {value5, sizeof(value5) / sizeof(ArkUI_NumberValue)};
149     nodeAPI->setAttribute(rootNode, NODE_WIDTH, &item);
150     auto widthVal = nodeAPI->getAttribute(rootNode, NODE_WIDTH);
151     EXPECT_EQ(widthVal->value[0].f32, size);
152 
153     nodeAPI->setAttribute(rootNode, NODE_HEIGHT, &item);
154     auto heightVal = nodeAPI->getAttribute(rootNode, NODE_HEIGHT);
155     EXPECT_EQ(heightVal->value[0].f32, size);
156 
157     value[0].u32 = color;
158     nodeAPI->setAttribute(rootNode, NODE_BACKGROUND_COLOR, &item);
159     auto colorVal = nodeAPI->getAttribute(rootNode, NODE_BACKGROUND_COLOR);
160     EXPECT_EQ(colorVal->value[0].u32, color);
161 
162     item.string = "test";
163     value[0].i32 = ARKUI_IMAGE_REPEAT_X;
164     nodeAPI->setAttribute(rootNode, NODE_BACKGROUND_IMAGE, &item);
165     nodeAPI->getAttribute(rootNode, NODE_BACKGROUND_IMAGE);
166 
167     value[0].f32 = padding;
168     nodeAPI->setAttribute(rootNode, NODE_PADDING, &item);
169     auto paddingVal = nodeAPI->getAttribute(rootNode, NODE_PADDING);
170     EXPECT_EQ(paddingVal->value[0].f32, padding);
171     nodeAPI->setAttribute(rootNode, NODE_PADDING, &item4);
172     auto paddingVal4 = nodeAPI->getAttribute(rootNode, NODE_PADDING);
173     EXPECT_EQ(paddingVal4->value[0].f32, padding);
174 
175     nodeAPI->setAttribute(rootNode, NODE_MARGIN, &item);
176     auto marginVal = nodeAPI->getAttribute(rootNode, NODE_MARGIN);
177     EXPECT_EQ(marginVal->value[0].f32, padding);
178     nodeAPI->setAttribute(rootNode, NODE_MARGIN, &item4);
179     auto marginVal4 = nodeAPI->getAttribute(rootNode, NODE_MARGIN);
180     EXPECT_EQ(marginVal4->value[0].f32, padding);
181 
182     item.string = "test";
183     ret1 = nodeAPI->setAttribute(rootNode, NODE_ID, &item);
184     EXPECT_EQ(ret1, ARKUI_ERROR_CODE_NO_ERROR);
185     auto keyVal = nodeAPI->getAttribute(rootNode, NODE_ID);
186     EXPECT_NE(keyVal, nullptr);
187 
188     value[0].i32 = true;
189     nodeAPI->setAttribute(rootNode, NODE_ENABLED, &item);
190     auto enableVal = nodeAPI->getAttribute(rootNode, NODE_ENABLED);
191     EXPECT_EQ(enableVal->value[0].i32, 1);
192 
193     nodeAPI->setAttribute(rootNode, NODE_TRANSLATE, &item3);
194     auto translateVal = nodeAPI->getAttribute(rootNode, NODE_TRANSLATE);
195     EXPECT_EQ(translateVal->value[0].f32, val0);
196 
197     nodeAPI->setAttribute(rootNode, NODE_SCALE, &item2);
198     auto scaleVal = nodeAPI->getAttribute(rootNode, NODE_SCALE);
199     EXPECT_EQ(scaleVal->value[0].f32, val1);
200     nodeAPI->setAttribute(rootNode, NODE_SCALE, &item5);
201 
202     nodeAPI->setAttribute(rootNode, NODE_ROTATE, &item5);
203     auto rotateVal = nodeAPI->getAttribute(rootNode, NODE_ROTATE);
204     EXPECT_EQ(rotateVal->value[0].f32, val0);
205 
206     value[0].f32 = val0;
207     nodeAPI->setAttribute(rootNode, NODE_BLUR, &item);
208     auto blurVal = nodeAPI->getAttribute(rootNode, NODE_BLUR);
209     EXPECT_EQ(blurVal->value[0].f32, val0);
210 
211     value[0].f32 = val0;
212     nodeAPI->setAttribute(rootNode, NODE_SATURATION, &item);
213     auto saturationVal = nodeAPI->getAttribute(rootNode, NODE_SATURATION);
214     EXPECT_EQ(saturationVal->value[0].f32, val0);
215 
216     value[0].f32 = val0;
217     nodeAPI->setAttribute(rootNode, NODE_BRIGHTNESS, &item);
218     auto brightnessVal = nodeAPI->getAttribute(rootNode, NODE_BRIGHTNESS);
219     EXPECT_EQ(brightnessVal->value[0].f32, val0);
220 
221     value3[0].f32 = val0;
222     value3[1].i32 = ARKUI_LINEAR_GRADIENT_DIRECTION_LEFT;
223     value3[2].i32 = false;
224     uint32_t colors[] = {color, color};
225     float stops[] = {val0, val05};
226     ArkUI_ColorStop colorStop = {colors, stops, 2};
227     ArkUI_ColorStop* colorStopPtr = &colorStop;
228     item3.object = reinterpret_cast<void*>(colorStopPtr);
229     nodeAPI->setAttribute(rootNode, NODE_LINEAR_GRADIENT, &item3);
230     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_LINEAR_GRADIENT), nullptr);
231 
232     ArkUI_NumberValue sweepGradient[] = {{.f32 = val0}, {.f32 = val0}, {.f32 = val0}, {.f32 = val0}, {.f32 = val0},
233         {.i32 = true}};
234     ArkUI_AttributeItem sweepGradientItem = {sweepGradient, sizeof(sweepGradient) / sizeof(ArkUI_NumberValue)};
235     sweepGradientItem.object = reinterpret_cast<void*>(colorStopPtr);
236     sweepGradientItem.size = -1;
237     nodeAPI->setAttribute(rootNode, NODE_SWEEP_GRADIENT, &sweepGradientItem);
238     sweepGradientItem.size = 1;
239     nodeAPI->setAttribute(rootNode, NODE_SWEEP_GRADIENT, &sweepGradientItem);
240     sweepGradientItem.size = 2;
241     nodeAPI->setAttribute(rootNode, NODE_SWEEP_GRADIENT, &sweepGradientItem);
242     sweepGradientItem.size = 3;
243     nodeAPI->setAttribute(rootNode, NODE_SWEEP_GRADIENT, &sweepGradientItem);
244     sweepGradientItem.size = 4;
245     nodeAPI->setAttribute(rootNode, NODE_SWEEP_GRADIENT, &sweepGradientItem);
246     sweepGradientItem.size = sizeof(sweepGradient) / sizeof(ArkUI_NumberValue);
247     nodeAPI->setAttribute(rootNode, NODE_SWEEP_GRADIENT, &sweepGradientItem);
248     auto sweepGradientVal = nodeAPI->getAttribute(rootNode, NODE_SWEEP_GRADIENT);
249     EXPECT_EQ(sweepGradientVal->value[0].f32, val0);
250 
251     ArkUI_NumberValue radialGradient[] = {{.f32 = val0}, {.f32 = val0}, {.f32 = val0}, {.i32 = true}};
252     ArkUI_AttributeItem radialGradientItem = {radialGradient, sizeof(radialGradient) / sizeof(ArkUI_NumberValue)};
253     radialGradientItem.object = reinterpret_cast<void*>(colorStopPtr);
254     radialGradientItem.size = -1;
255     nodeAPI->setAttribute(rootNode, NODE_RADIAL_GRADIENT, &radialGradientItem);
256     radialGradientItem.size = 1;
257     nodeAPI->setAttribute(rootNode, NODE_RADIAL_GRADIENT, &radialGradientItem);
258     radialGradientItem.size = 2;
259     nodeAPI->setAttribute(rootNode, NODE_RADIAL_GRADIENT, &radialGradientItem);
260     radialGradientItem.size = sizeof(radialGradient) / sizeof(ArkUI_NumberValue);
261     nodeAPI->setAttribute(rootNode, NODE_RADIAL_GRADIENT, &radialGradientItem);
262     auto radialGradientVal = nodeAPI->getAttribute(rootNode, NODE_RADIAL_GRADIENT);
263     EXPECT_EQ(radialGradientVal->value[0].f32, val0);
264 
265     value[0].i32 = ARKUI_ALIGNMENT_CENTER;
266     nodeAPI->setAttribute(rootNode, NODE_ALIGNMENT, &item);
267     auto alignVal = nodeAPI->getAttribute(rootNode, NODE_ALIGNMENT);
268     EXPECT_EQ(alignVal->value[0].i32, static_cast<int32_t>(ARKUI_ALIGNMENT_CENTER));
269 
270     value[0].f32 = val0;
271     nodeAPI->setAttribute(rootNode, NODE_OPACITY, &item);
272     auto opacityVal = nodeAPI->getAttribute(rootNode, NODE_OPACITY);
273     EXPECT_EQ(opacityVal->value[0].f32, val0);
274 
275     value[0].f32 = val10;
276     nodeAPI->setAttribute(rootNode, NODE_BORDER_WIDTH, &item);
277     auto borderWidthVal = nodeAPI->getAttribute(rootNode, NODE_BORDER_WIDTH);
278     EXPECT_EQ(borderWidthVal->value[0].f32, val10);
279     value4[0].f32 = val10;
280     value4[1].f32 = val10;
281     value4[2].f32 = val10;
282     value4[3].f32 = val10;
283     nodeAPI->setAttribute(rootNode, NODE_BORDER_WIDTH, &item4);
284     auto borderWidthVal4 = nodeAPI->getAttribute(rootNode, NODE_BORDER_WIDTH);
285     EXPECT_EQ(borderWidthVal4->value[0].f32, val10);
286 
287     value[0].f32 = val01;
288     nodeAPI->setAttribute(rootNode, NODE_BORDER_WIDTH_PERCENT, &item);
289     borderWidthVal = nodeAPI->getAttribute(rootNode, NODE_BORDER_WIDTH_PERCENT);
290     EXPECT_EQ(borderWidthVal->value[0].f32, val01);
291     value4[0].f32 = val01;
292     value4[1].f32 = val01;
293     value4[2].f32 = val01;
294     value4[3].f32 = val01;
295     nodeAPI->setAttribute(rootNode, NODE_BORDER_WIDTH_PERCENT, &item4);
296     borderWidthVal4 = nodeAPI->getAttribute(rootNode, NODE_BORDER_WIDTH_PERCENT);
297     EXPECT_EQ(borderWidthVal4->value[0].f32, val01);
298 
299     value[0].f32 = val10;
300     nodeAPI->setAttribute(rootNode, NODE_BORDER_RADIUS, &item);
301     auto borderRadiusVal = nodeAPI->getAttribute(rootNode, NODE_BORDER_RADIUS);
302     EXPECT_EQ(borderRadiusVal->value[0].f32, val10);
303     value4[0].f32 = val10;
304     value4[1].f32 = val10;
305     value4[2].f32 = val10;
306     value4[3].f32 = val10;
307     nodeAPI->setAttribute(rootNode, NODE_BORDER_RADIUS, &item4);
308     auto borderRadiusVal4 = nodeAPI->getAttribute(rootNode, NODE_BORDER_RADIUS);
309     EXPECT_EQ(borderRadiusVal4->value[0].f32, val10);
310     value[0].f32 = val01;
311     nodeAPI->setAttribute(rootNode, NODE_BORDER_RADIUS_PERCENT, &item);
312     borderRadiusVal = nodeAPI->getAttribute(rootNode, NODE_BORDER_RADIUS_PERCENT);
313     EXPECT_EQ(borderRadiusVal->value[0].f32, val01);
314     value4[0].f32 = val01;
315     value4[1].f32 = val01;
316     value4[2].f32 = val01;
317     value4[3].f32 = val01;
318     nodeAPI->setAttribute(rootNode, NODE_BORDER_RADIUS_PERCENT, &item4);
319     borderRadiusVal4 = nodeAPI->getAttribute(rootNode, NODE_BORDER_RADIUS_PERCENT);
320     EXPECT_EQ(borderRadiusVal4->value[0].f32, val01);
321 
322     value[0].u32 = color;
323     nodeAPI->setAttribute(rootNode, NODE_BORDER_COLOR, &item);
324     auto borderColorVal = nodeAPI->getAttribute(rootNode, NODE_BORDER_COLOR);
325     EXPECT_EQ(borderColorVal->value[0].u32, color);
326     value4[0].u32 = color;
327     value4[1].u32 = color;
328     value4[2].u32 = color;
329     value4[3].u32 = color;
330     nodeAPI->setAttribute(rootNode, NODE_BORDER_COLOR, &item4);
331     auto borderColorVal4 = nodeAPI->getAttribute(rootNode, NODE_BORDER_COLOR);
332     EXPECT_EQ(borderColorVal4->value[0].u32, color);
333 
334     value[0].i32 = ARKUI_BORDER_STYLE_SOLID;
335     nodeAPI->setAttribute(rootNode, NODE_BORDER_STYLE, &item);
336     auto borderStyleVal = nodeAPI->getAttribute(rootNode, NODE_BORDER_STYLE);
337     EXPECT_EQ(borderStyleVal->value[0].i32, static_cast<int32_t>(ARKUI_BORDER_STYLE_SOLID));
338     value4[0].i32 = ARKUI_BORDER_STYLE_SOLID;
339     value4[1].i32 = ARKUI_BORDER_STYLE_SOLID;
340     value4[2].i32 = ARKUI_BORDER_STYLE_SOLID;
341     value4[3].i32 = ARKUI_BORDER_STYLE_SOLID;
342     nodeAPI->setAttribute(rootNode, NODE_BORDER_STYLE, &item4);
343     auto borderStyleVal4 = nodeAPI->getAttribute(rootNode, NODE_BORDER_STYLE);
344     EXPECT_EQ(borderStyleVal4->value[0].i32, ARKUI_BORDER_STYLE_SOLID);
345 
346     value[0].f32 = val1;
347     nodeAPI->setAttribute(rootNode, NODE_Z_INDEX, &item);
348     auto zIndexVal = nodeAPI->getAttribute(rootNode, NODE_Z_INDEX);
349     EXPECT_EQ(zIndexVal->value[0].f32, val1);
350 
351     value[0].i32 = ARKUI_VISIBILITY_VISIBLE;
352     nodeAPI->setAttribute(rootNode, NODE_VISIBILITY, &item);
353     auto visibilityVal = nodeAPI->getAttribute(rootNode, NODE_VISIBILITY);
354     EXPECT_EQ(visibilityVal->value[0].i32, static_cast<int32_t>(ARKUI_VISIBILITY_VISIBLE));
355 
356     value[0].i32 = true;
357     nodeAPI->setAttribute(rootNode, NODE_CLIP, &item);
358     auto clipVal = nodeAPI->getAttribute(rootNode, NODE_CLIP);
359     EXPECT_EQ(clipVal->value[0].i32, true);
360 
361     value5[0].i32 = ARKUI_CLIP_TYPE_RECTANGLE;
362     value5[1].f32 = size;
363     value5[2].f32 = size;
364     value5[3].f32 = val10;
365     value5[4].f32 = val10;
366     nodeAPI->setAttribute(rootNode, NODE_CLIP_SHAPE, &item5);
367     auto clipShapeVal = nodeAPI->getAttribute(rootNode, NODE_CLIP_SHAPE);
368     EXPECT_EQ(clipShapeVal->value[0].i32, ARKUI_CLIP_TYPE_RECTANGLE);
369     value3[0].i32 = ARKUI_CLIP_TYPE_CIRCLE;
370     value3[1].f32 = size;
371     value3[2].f32 = size;
372     nodeAPI->setAttribute(rootNode, NODE_CLIP_SHAPE, &item3);
373     clipShapeVal = nodeAPI->getAttribute(rootNode, NODE_CLIP_SHAPE);
374     EXPECT_EQ(clipShapeVal->value[0].i32, ARKUI_CLIP_TYPE_CIRCLE);
375     value3[0].i32 = ARKUI_CLIP_TYPE_ELLIPSE;
376     value3[1].f32 = size;
377     value3[2].f32 = size;
378     nodeAPI->setAttribute(rootNode, NODE_CLIP_SHAPE, &item3);
379     clipShapeVal = nodeAPI->getAttribute(rootNode, NODE_CLIP_SHAPE);
380     EXPECT_EQ(clipShapeVal->value[0].i32, ARKUI_CLIP_TYPE_ELLIPSE);
381     value3[1].f32 = negativeFloat;
382     nodeAPI->setAttribute(rootNode, NODE_CLIP_SHAPE, &item3);
383 
384     value3[0].i32 = ARKUI_CLIP_TYPE_PATH;
385     value3[1].f32 = size;
386     value3[2].f32 = size;
387     item3.string = nullptr;
388     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CLIP_SHAPE, &item3), ARKUI_ERROR_CODE_PARAM_INVALID);
389     item3.string = pathCommands;
390     nodeAPI->setAttribute(rootNode, NODE_CLIP_SHAPE, &item3);
391     clipShapeVal = nodeAPI->getAttribute(rootNode, NODE_CLIP_SHAPE);
392     EXPECT_EQ(clipShapeVal->value[0].i32, ARKUI_CLIP_TYPE_PATH);
393     value3[2].f32 = negativeFloat;
394     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CLIP_SHAPE, &item3), ARKUI_ERROR_CODE_PARAM_INVALID);
395     value3[1].f32 = negativeFloat;
396     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CLIP_SHAPE, &item3), ARKUI_ERROR_CODE_PARAM_INVALID);
397 
398     ArkUI_NumberValue transformVal[] =
399         {{.f32 = val1}, {.f32 = val0}, {.f32 = val0}, {.f32 = val0},
400         {.f32 = val0}, {.f32 = val1}, {.f32 = val0}, {.f32 = val0},
401         {.f32 = val0}, {.f32 = val0}, {.f32 = val1}, {.f32 = val0},
402         {.f32 = val0}, {.f32 = val0}, {.f32 = val0}, {.f32 = val1}};
403     ArkUI_AttributeItem transformItem = {transformVal, sizeof(transformVal) / sizeof(ArkUI_NumberValue)};
404     nodeAPI->setAttribute(rootNode, NODE_TRANSFORM, &transformItem);
405     auto transformResult = nodeAPI->getAttribute(rootNode, NODE_TRANSFORM);
406     EXPECT_EQ(transformResult->value[0].f32, val1);
407 
408     value[0].i32 = ARKUI_HIT_TEST_MODE_DEFAULT;
409     nodeAPI->setAttribute(rootNode, NODE_HIT_TEST_BEHAVIOR, &item);
410     auto hitVal = nodeAPI->getAttribute(rootNode, NODE_HIT_TEST_BEHAVIOR);
411     EXPECT_EQ(hitVal->value[0].i32, static_cast<int32_t>(ARKUI_HIT_TEST_MODE_DEFAULT));
412 
413     value2[0].f32 = val10;
414     value2[1].f32 = val10;
415     nodeAPI->setAttribute(rootNode, NODE_POSITION, &item2);
416     auto positionVal = nodeAPI->getAttribute(rootNode, NODE_POSITION);
417     EXPECT_EQ(positionVal->value[0].f32, val10);
418 
419     value[0].i32 = ARKUI_SHADOW_STYLE_OUTER_DEFAULT_MD;
420     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SHADOW, &item), ARKUI_ERROR_CODE_NO_ERROR);
421     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SHADOW), nullptr);
422 
423 
424     ArkUI_NumberValue customShadowVal[] = {{.f32 = val10}, {.i32 = false}, {.f32 = val0}, {.f32 = val0},
425         {.i32 = ARKUI_SHADOW_TYPE_COLOR}, {.u32 = color}, {.u32 = 1}};
426     ArkUI_AttributeItem customShadowItem = {customShadowVal, sizeof(customShadowVal) / sizeof(ArkUI_NumberValue)};
427     nodeAPI->setAttribute(rootNode, NODE_CUSTOM_SHADOW, &customShadowItem);
428     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_CUSTOM_SHADOW), nullptr);
429     customShadowItem.size = 1;
430     nodeAPI->setAttribute(rootNode, NODE_CUSTOM_SHADOW, &customShadowItem);
431     customShadowItem.size = 2;
432     nodeAPI->setAttribute(rootNode, NODE_CUSTOM_SHADOW, &customShadowItem);
433     customShadowItem.size = 3;
434     nodeAPI->setAttribute(rootNode, NODE_CUSTOM_SHADOW, &customShadowItem);
435     customShadowItem.size = 4;
436     nodeAPI->setAttribute(rootNode, NODE_CUSTOM_SHADOW, &customShadowItem);
437     customShadowItem.size = 5;
438     nodeAPI->setAttribute(rootNode, NODE_CUSTOM_SHADOW, &customShadowItem);
439     customShadowVal[4].i32 = -1;
440     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CUSTOM_SHADOW, &customShadowItem), ARKUI_ERROR_CODE_PARAM_INVALID);
441     customShadowItem.size = 6;
442     customShadowVal[4].i32 = ARKUI_SHADOW_TYPE_COLOR;
443     nodeAPI->setAttribute(rootNode, NODE_CUSTOM_SHADOW, &customShadowItem);
444     customShadowVal[1].i32 = true;
445     customShadowVal[5].i32 = -1;
446     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CUSTOM_SHADOW, &customShadowItem), ARKUI_ERROR_CODE_PARAM_INVALID);
447     customShadowVal[5].i32 = 0;
448     nodeAPI->setAttribute(rootNode, NODE_CUSTOM_SHADOW, &customShadowItem);
449 
450 
451     value2[0].f32 = size;
452     value2[1].f32 = size;
453     nodeAPI->setAttribute(rootNode, NODE_BACKGROUND_IMAGE_SIZE, &item2);
454     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_BACKGROUND_IMAGE_SIZE), nullptr);
455 
456     value[0].i32 = ARKUI_IMAGE_SIZE_COVER;
457     nodeAPI->setAttribute(rootNode, NODE_BACKGROUND_IMAGE_SIZE_WITH_STYLE, &item);
458     auto imagesizeStyleVal = nodeAPI->getAttribute(rootNode, NODE_BACKGROUND_IMAGE_SIZE_WITH_STYLE);
459     EXPECT_EQ(imagesizeStyleVal->value[0].i32, static_cast<int32_t>(ARKUI_IMAGE_SIZE_COVER));
460     value[0].i32 = ARKUI_IMAGE_SIZE_AUTO;
461     nodeAPI->setAttribute(rootNode, NODE_BACKGROUND_IMAGE_SIZE_WITH_STYLE, &item);
462     value[0].i32 = ARKUI_IMAGE_SIZE_CONTAIN;
463     nodeAPI->setAttribute(rootNode, NODE_BACKGROUND_IMAGE_SIZE_WITH_STYLE, &item);
464 
465     ArkUI_NumberValue backgroundBlurVal[] = {{.i32 = ARKUI_BLUR_STYLE_THIN}, {.i32 = ARKUI_COLOR_MODE_SYSTEM},
466         {.i32 = ARKUI_ADAPTIVE_COLOR_DEFAULT}, {.f32 = val05}, {.f32 = val0}, {.f32 = val0}};
467     ArkUI_AttributeItem backgroundBlurItem = {backgroundBlurVal, sizeof(backgroundBlurVal) / sizeof(ArkUI_NumberValue)};
468     nodeAPI->setAttribute(rootNode, NODE_BACKGROUND_BLUR_STYLE, &backgroundBlurItem);
469     auto backgroundBlurResult = nodeAPI->getAttribute(rootNode, NODE_BACKGROUND_BLUR_STYLE);
470     EXPECT_NE(backgroundBlurResult, nullptr);
471     nodeAPI->setAttribute(rootNode, NODE_FOREGROUND_BLUR_STYLE, &backgroundBlurItem);
472     auto foregroundBlurStyleVal = nodeAPI->getAttribute(rootNode, NODE_FOREGROUND_BLUR_STYLE);
473     EXPECT_NE(foregroundBlurStyleVal, nullptr);
474     backgroundBlurVal[0].i32 = ARKUI_BLUR_STYLE_NONE;
475     nodeAPI->setAttribute(rootNode, NODE_BACKGROUND_BLUR_STYLE, &backgroundBlurItem);
476     nodeAPI->getAttribute(rootNode, NODE_BACKGROUND_BLUR_STYLE);
477     backgroundBlurVal[0].i32 = ARKUI_BLUR_STYLE_COMPONENT_ULTRA_THIN;
478     nodeAPI->setAttribute(rootNode, NODE_BACKGROUND_BLUR_STYLE, &backgroundBlurItem);
479     nodeAPI->getAttribute(rootNode, NODE_BACKGROUND_BLUR_STYLE);
480     backgroundBlurItem.size = 1;
481     nodeAPI->setAttribute(rootNode, NODE_BACKGROUND_BLUR_STYLE, &backgroundBlurItem);
482     nodeAPI->setAttribute(rootNode, NODE_FOREGROUND_BLUR_STYLE, &backgroundBlurItem);
483 
484 
485     ArkUI_NumberValue transformCenter[] = {{.f32 = val0}, {.i32 = val0}, {.f32 = val0}, {.f32 = val05},
486         {.f32 = val05}, {.f32 = val0}};
487     ArkUI_AttributeItem transformCenterItem = {transformCenter, sizeof(transformCenter) / sizeof(ArkUI_NumberValue)};
488     nodeAPI->setAttribute(rootNode, NODE_TRANSFORM_CENTER, &transformCenterItem);
489     auto transformCenterVal = nodeAPI->getAttribute(rootNode, NODE_TRANSFORM_CENTER);
490     EXPECT_EQ(transformCenterVal->value[0].f32, val0);
491     transformCenterItem.size = 0;
492     nodeAPI->setAttribute(rootNode, NODE_TRANSFORM_CENTER, &transformCenterItem);
493     transformCenterItem.size = sizeof(transformCenter) / sizeof(ArkUI_NumberValue);
494     transformCenter[5].f32 = -1.0f;
495     nodeAPI->setAttribute(rootNode, NODE_TRANSFORM_CENTER, &transformCenterItem);
496     transformCenter[5].f32 = 2.0f;
497     nodeAPI->setAttribute(rootNode, NODE_TRANSFORM_CENTER, &transformCenterItem);
498     transformCenter[4].f32 = -1.0f;
499     nodeAPI->setAttribute(rootNode, NODE_TRANSFORM_CENTER, &transformCenterItem);
500     transformCenter[4].f32 = 2.0f;
501     nodeAPI->setAttribute(rootNode, NODE_TRANSFORM_CENTER, &transformCenterItem);
502     transformCenter[3].f32 = -1.0f;
503     nodeAPI->setAttribute(rootNode, NODE_TRANSFORM_CENTER, &transformCenterItem);
504     transformCenter[3].f32 = 2.0f;
505     nodeAPI->setAttribute(rootNode, NODE_TRANSFORM_CENTER, &transformCenterItem);
506 
507     ArkUI_NumberValue opacityTransition[] = {{.f32 = val0}, {.i32 = 1000}, {.i32 = ARKUI_CURVE_LINEAR}, {.i32 = 1000},
508         {.i32 = 1}, {.i32 = ARKUI_ANIMATION_PLAY_MODE_NORMAL}, {.f32 = val1}};
509     ArkUI_AttributeItem opacityTransitionItem =
510         {opacityTransition, sizeof(opacityTransition) / sizeof(ArkUI_NumberValue)};
511     nodeAPI->setAttribute(rootNode, NODE_OPACITY_TRANSITION, &opacityTransitionItem);
512     auto opacityTransitionVal = nodeAPI->getAttribute(rootNode, NODE_OPACITY_TRANSITION);
513     EXPECT_EQ(opacityTransitionVal->value[0].f32, val0);
514     opacityTransition[5].i32 = ARKUI_ANIMATION_PLAY_MODE_REVERSE;
515     nodeAPI->setAttribute(rootNode, NODE_OPACITY_TRANSITION, &opacityTransitionItem);
516     nodeAPI->getAttribute(rootNode, NODE_OPACITY_TRANSITION);
517     opacityTransition[5].i32 = ARKUI_ANIMATION_PLAY_MODE_ALTERNATE;
518     nodeAPI->setAttribute(rootNode, NODE_OPACITY_TRANSITION, &opacityTransitionItem);
519     nodeAPI->getAttribute(rootNode, NODE_OPACITY_TRANSITION);
520 
521     ArkUI_NumberValue rotateTransition[] = {{.f32 = val0}, {.f32 = val0}, {.f32 = val0}, {.f32 = val10},
522         {.f32 = val0}, {.i32 = 1000}, {.i32 = ARKUI_CURVE_LINEAR}, {.i32 = 1000},
523         {.i32 = 1}, {.i32 = ARKUI_ANIMATION_PLAY_MODE_NORMAL}, {.f32 = val1}};
524     ArkUI_AttributeItem rotateTransitionItem =
525         {rotateTransition, sizeof(rotateTransition) / sizeof(ArkUI_NumberValue)};
526     nodeAPI->setAttribute(rootNode, NODE_ROTATE_TRANSITION, &rotateTransitionItem);
527     auto rotateTransitionVal = nodeAPI->getAttribute(rootNode, NODE_ROTATE_TRANSITION);
528     EXPECT_EQ(rotateTransitionVal->value[0].f32, val0);
529     rotateTransition[6].i32 = -1;
530     nodeAPI->setAttribute(rootNode, NODE_ROTATE_TRANSITION, &rotateTransitionItem);
531 
532     ArkUI_NumberValue scaleTransition[] = {{.f32 = val0}, {.f32 = val0}, {.f32 = val0},
533         {.i32 = 1000}, {.i32 = ARKUI_CURVE_LINEAR}, {.i32 = 1000},
534         {.i32 = 1}, {.i32 = ARKUI_ANIMATION_PLAY_MODE_NORMAL}, {.f32 = val1}};
535     ArkUI_AttributeItem scaleTransitionItem =
536         {scaleTransition, sizeof(scaleTransition) / sizeof(ArkUI_NumberValue)};
537     nodeAPI->setAttribute(rootNode, NODE_SCALE_TRANSITION, &scaleTransitionItem);
538     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SCALE_TRANSITION), nullptr);
539     scaleTransition[4].i32 = -1;
540     nodeAPI->setAttribute(rootNode, NODE_SCALE_TRANSITION, &scaleTransitionItem);
541 
542     ArkUI_NumberValue translateTransition[] = {{.f32 = val0}, {.f32 = val0}, {.f32 = val0},
543         {.i32 = 1000}, {.i32 = ARKUI_CURVE_LINEAR}, {.i32 = 1000},
544         {.i32 = 1}, {.i32 = ARKUI_ANIMATION_PLAY_MODE_NORMAL}, {.f32 = val1}};
545     ArkUI_AttributeItem translateTransitionItem =
546         {translateTransition, sizeof(translateTransition) / sizeof(ArkUI_NumberValue)};
547     nodeAPI->setAttribute(rootNode, NODE_TRANSLATE_TRANSITION, &translateTransitionItem);
548     auto translateTransitionVal = nodeAPI->getAttribute(rootNode, NODE_TRANSLATE_TRANSITION);
549     EXPECT_EQ(translateTransitionVal->value[0].f32, val0);
550     translateTransition[4].i32 = -1;
551     nodeAPI->setAttribute(rootNode, NODE_TRANSLATE_TRANSITION, &translateTransitionItem);
552 
553     ArkUI_NumberValue moveTransition[] = {{.i32 = ARKUI_TRANSITION_EDGE_TOP},
554         {.i32 = 1000}, {.i32 = ARKUI_CURVE_LINEAR}, {.i32 = 1000},
555         {.i32 = 1}, {.i32 = ARKUI_ANIMATION_PLAY_MODE_NORMAL}, {.f32 = val1}};
556     ArkUI_AttributeItem moveTransitionItem =
557         {moveTransition, sizeof(moveTransition) / sizeof(ArkUI_NumberValue)};
558     nodeAPI->setAttribute(rootNode, NODE_MOVE_TRANSITION, &moveTransitionItem);
559     auto moveTransitionVal = nodeAPI->getAttribute(rootNode, NODE_MOVE_TRANSITION);
560     EXPECT_EQ(moveTransitionVal->value[0].i32, static_cast<int32_t>(ARKUI_TRANSITION_EDGE_TOP));
561     moveTransition[0].i32 = -1;
562     nodeAPI->setAttribute(rootNode, NODE_MOVE_TRANSITION, &moveTransitionItem);
563     moveTransition[0].i32 = ARKUI_TRANSITION_EDGE_TOP;
564     moveTransition[2].i32 = -1;
565     nodeAPI->setAttribute(rootNode, NODE_MOVE_TRANSITION, &moveTransitionItem);
566 
567     value[0].i32 = true;
568     nodeAPI->setAttribute(rootNode, NODE_FOCUSABLE, &item);
569     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_FOCUSABLE), nullptr);
570 
571     value[0].i32 = true;
572     nodeAPI->setAttribute(rootNode, NODE_DEFAULT_FOCUS, &item);
573     auto defaultFocusVal = nodeAPI->getAttribute(rootNode, NODE_DEFAULT_FOCUS);
574     EXPECT_EQ(defaultFocusVal->value[0].i32, true);
575 
576     value4[0].f32 = val0;
577     value4[1].f32 = val0;
578     value4[2].f32 = val100;
579     value4[3].f32 = val100;
580     nodeAPI->setAttribute(rootNode, NODE_RESPONSE_REGION, &item4);
581     auto responseRegionVal = nodeAPI->getAttribute(rootNode, NODE_RESPONSE_REGION);
582     EXPECT_EQ(responseRegionVal->value[0].f32, val0);
583     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_RESPONSE_REGION, &item5), ARKUI_ERROR_CODE_PARAM_INVALID);
584 
585     value3[0].i32 = ARKUI_ALIGNMENT_TOP_START;
586     value3[1].f32 = val0;
587     value3[2].f32 = val0;
588     item3.string = "test";
589     item3.size = 0;
590     nodeAPI->setAttribute(rootNode, NODE_OVERLAY, &item3);
591     item3.size = 1;
592     nodeAPI->setAttribute(rootNode, NODE_OVERLAY, &item3);
593     item3.size = 2;
594     nodeAPI->setAttribute(rootNode, NODE_OVERLAY, &item3);
595     item3.size = 3;
596     nodeAPI->setAttribute(rootNode, NODE_OVERLAY, &item3);
597     auto overlayVal = nodeAPI->getAttribute(rootNode, NODE_OVERLAY);
598     EXPECT_EQ(overlayVal->value[0].i32, static_cast<int32_t>(ARKUI_ALIGNMENT_TOP_START));
599 
600     ArkUI_NumberValue mask[] = {{.u32 = color}, {.u32 = color}, {.f32 = val10}, {.i32 = ARKUI_MASK_TYPE_RECTANGLE},
601         {.f32 = size}, {.f32 = size}, {.f32 = val10}, {.f32 = val10}};
602     ArkUI_AttributeItem maskItem = {mask, sizeof(mask) / sizeof(ArkUI_NumberValue)};
603     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_MASK, &maskItem), ARKUI_ERROR_CODE_NO_ERROR);
604     auto maskVal = nodeAPI->getAttribute(rootNode, NODE_MASK);
605     EXPECT_NE(maskVal, nullptr);
606     mask[3].i32 = ARKUI_MASK_TYPE_CIRCLE;
607     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_MASK, &maskItem), ARKUI_ERROR_CODE_NO_ERROR);
608     maskVal = nodeAPI->getAttribute(rootNode, NODE_MASK);
609     EXPECT_NE(maskVal, nullptr);
610     mask[3].i32 = ARKUI_MASK_TYPE_ELLIPSE;
611     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_MASK, &maskItem), ARKUI_ERROR_CODE_NO_ERROR);
612     maskVal = nodeAPI->getAttribute(rootNode, NODE_MASK);
613     EXPECT_NE(maskVal, nullptr);
614     mask[3].i32 = ARKUI_MASK_TYPE_PATH;
615     maskItem.string = pathCommands;
616     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_MASK, &maskItem), ARKUI_ERROR_CODE_NO_ERROR);
617     maskVal = nodeAPI->getAttribute(rootNode, NODE_MASK);
618     EXPECT_NE(maskVal, nullptr);
619     value4[0].i32 = ARKUI_MASK_TYPE_PROGRESS;
620     value4[1].f32 = val10;
621     value4[2].f32 = val100;
622     value4[3].u32 = color;
623     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_MASK, &item4), ARKUI_ERROR_CODE_NO_ERROR);
624     maskVal = nodeAPI->getAttribute(rootNode, NODE_MASK);
625 
626     value2[0].i32 = ARKUI_BLEND_MODE_NONE;
627     value2[1].i32 = BLEND_APPLY_TYPE_FAST;
628     nodeAPI->setAttribute(rootNode, NODE_BLEND_MODE, &item2);
629     auto blendModeVal = nodeAPI->getAttribute(rootNode, NODE_BLEND_MODE);
630     EXPECT_EQ(blendModeVal->value[0].i32, static_cast<int32_t>(ARKUI_BLEND_MODE_NONE));
631 
632     value[0].i32 = ARKUI_DIRECTION_LTR;
633     nodeAPI->setAttribute(rootNode, NODE_DIRECTION, &item);
634     auto directionVal = nodeAPI->getAttribute(rootNode, NODE_DIRECTION);
635     EXPECT_EQ(directionVal->value[0].i32, static_cast<int32_t>(ARKUI_DIRECTION_LTR));
636 
637     value4[0].f32 = val0;
638     value4[1].f32 = size;
639     value4[2].f32 = val0;
640     value4[3].f32 = size;
641     nodeAPI->setAttribute(rootNode, NODE_CONSTRAINT_SIZE, &item4);
642     auto constraintSizeVal = nodeAPI->getAttribute(rootNode, NODE_CONSTRAINT_SIZE);
643     EXPECT_EQ(constraintSizeVal->value[0].f32, val0);
644 
645     value[0].f32 = val05;
646     nodeAPI->setAttribute(rootNode, NODE_GRAY_SCALE, &item);
647     auto grayScaleVal = nodeAPI->getAttribute(rootNode, NODE_GRAY_SCALE);
648     EXPECT_EQ(grayScaleVal->value[0].f32, val05);
649     value[0].f32 = val10;
650     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_GRAY_SCALE, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
651 
652     value[0].f32 = val05;
653     nodeAPI->setAttribute(rootNode, NODE_INVERT, &item);
654     auto invertVal = nodeAPI->getAttribute(rootNode, NODE_INVERT);
655     EXPECT_EQ(invertVal->value[0].f32, val05);
656     value[0].f32 = val10;
657     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_INVERT, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
658 
659     value[0].f32 = val05;
660     nodeAPI->setAttribute(rootNode, NODE_SEPIA, &item);
661     auto sepiaVal = nodeAPI->getAttribute(rootNode, NODE_SEPIA);
662     EXPECT_EQ(sepiaVal->value[0].f32, val05);
663     value[0].f32 = val10;
664     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SEPIA, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
665 
666     value[0].f32 = val05;
667     nodeAPI->setAttribute(rootNode, NODE_CONTRAST, &item);
668     auto contrastVal = nodeAPI->getAttribute(rootNode, NODE_CONTRAST);
669     EXPECT_EQ(contrastVal->value[0].f32, val05);
670     value[0].f32 = val100;
671     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CONTRAST, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
672 
673     value[0].u32 = color;
674     nodeAPI->setAttribute(rootNode, NODE_FOREGROUND_COLOR, &item);
675     auto foregroundColorVal = nodeAPI->getAttribute(rootNode, NODE_FOREGROUND_COLOR);
676     EXPECT_NE(foregroundColorVal, nullptr);
677     value[0].i32 = ARKUI_COLOR_STRATEGY_INVERT;
678     nodeAPI->setAttribute(rootNode, NODE_FOREGROUND_COLOR, &item);
679     value[0].i32 = ARKUI_COLOR_STRATEGY_AVERAGE;
680     nodeAPI->setAttribute(rootNode, NODE_FOREGROUND_COLOR, &item);
681     value[0].i32 = ARKUI_COLOR_STRATEGY_PRIMARY;
682     nodeAPI->setAttribute(rootNode, NODE_FOREGROUND_COLOR, &item);
683 
684     value2[0].f32 = val10;
685     value2[1].f32 = val10;
686     nodeAPI->setAttribute(rootNode, NODE_OFFSET, &item2);
687     auto offsetVal = nodeAPI->getAttribute(rootNode, NODE_OFFSET);
688     EXPECT_EQ(offsetVal->value[0].f32, val10);
689 
690     value2[0].f32 = val10;
691     value2[1].f32 = val10;
692     nodeAPI->setAttribute(rootNode, NODE_MARK_ANCHOR, &item2);
693     auto maskAnchorVal = nodeAPI->getAttribute(rootNode, NODE_MARK_ANCHOR);
694     EXPECT_EQ(maskAnchorVal->value[0].f32, val10);
695 
696     value2[0].f32 = val10;
697     value2[1].f32 = val10;
698     nodeAPI->setAttribute(rootNode, NODE_BACKGROUND_IMAGE_POSITION, &item2);
699     auto backgroundImagePositionVal = nodeAPI->getAttribute(rootNode, NODE_BACKGROUND_IMAGE_POSITION);
700     EXPECT_EQ(backgroundImagePositionVal->value[0].f32, val10);
701 
702     value[0].i32 = 0;
703     nodeAPI->setAttribute(rootNode, NODE_ACCESSIBILITY_GROUP, &item);
704     auto accessibilityGroupVal = nodeAPI->getAttribute(rootNode, NODE_ACCESSIBILITY_GROUP);
705     EXPECT_EQ(accessibilityGroupVal->value[0].i32, 0);
706 
707     item.string = "test";
708     nodeAPI->setAttribute(rootNode, NODE_ACCESSIBILITY_TEXT, &item);
709     auto accessibilityTextVal = nodeAPI->getAttribute(rootNode, NODE_ACCESSIBILITY_TEXT);
710     EXPECT_NE(accessibilityTextVal, nullptr);
711     nodeAPI->setAttribute(rootNode, NODE_ACCESSIBILITY_DESCRIPTION, &item);
712     auto accessibilityDescVal = nodeAPI->getAttribute(rootNode, NODE_ACCESSIBILITY_DESCRIPTION);
713     EXPECT_NE(accessibilityDescVal, nullptr);
714 
715     value[0].i32 = ARKUI_ACCESSIBILITY_MODE_AUTO;
716     nodeAPI->setAttribute(rootNode, NODE_ACCESSIBILITY_MODE, &item);
717     auto accessibilityModeVal = nodeAPI->getAttribute(rootNode, NODE_ACCESSIBILITY_MODE);
718     EXPECT_EQ(accessibilityModeVal->value[0].i32, static_cast<int32_t>(ARKUI_ACCESSIBILITY_MODE_AUTO));
719 
720     value[0].f32 = val05;
721     nodeAPI->setAttribute(rootNode, NODE_ASPECT_RATIO, &item);
722     auto aspectRatioVal = nodeAPI->getAttribute(rootNode, NODE_ASPECT_RATIO);
723     EXPECT_EQ(aspectRatioVal->value[0].f32, val05);
724 
725     value[0].f32 = val05;
726     nodeAPI->setAttribute(rootNode, NODE_LAYOUT_WEIGHT, &item);
727     auto layoutWeightVal = nodeAPI->getAttribute(rootNode, NODE_LAYOUT_WEIGHT);
728     EXPECT_EQ(layoutWeightVal->value[0].f32, val05);
729 
730     value[0].u32 = 0;
731     nodeAPI->setAttribute(rootNode, NODE_DISPLAY_PRIORITY, &item);
732     auto displayPriorityVal = nodeAPI->getAttribute(rootNode, NODE_DISPLAY_PRIORITY);
733     EXPECT_EQ(displayPriorityVal->value[0].u32, 0);
734 
735     value4[0].f32 = val10;
736     value4[1].f32 = val10;
737     value4[2].f32 = val10;
738     value4[3].f32 = val10;
739     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_OUTLINE_WIDTH, &item4), ARKUI_ERROR_CODE_NO_ERROR);
740 
741     value[0].f32 = val05;
742     nodeAPI->setAttribute(rootNode, NODE_WIDTH_PERCENT, &item);
743     auto widthPercentVal = nodeAPI->getAttribute(rootNode, NODE_WIDTH_PERCENT);
744     EXPECT_EQ(widthPercentVal->value[0].f32, val05);
745 
746     value[0].f32 = val05;
747     nodeAPI->setAttribute(rootNode, NODE_HEIGHT_PERCENT, &item);
748     auto heightPercentVal = nodeAPI->getAttribute(rootNode, NODE_HEIGHT_PERCENT);
749     EXPECT_EQ(heightPercentVal->value[0].f32, val05);
750 
751     value[0].f32 = val01;
752     nodeAPI->setAttribute(rootNode, NODE_PADDING_PERCENT, &item);
753     auto paddingPercentVal = nodeAPI->getAttribute(rootNode, NODE_PADDING_PERCENT);
754     EXPECT_EQ(paddingPercentVal->value[0].f32, val01);
755     value4[0].f32 = val01;
756     value4[1].f32 = val01;
757     value4[2].f32 = val01;
758     value4[3].f32 = val01;
759     nodeAPI->setAttribute(rootNode, NODE_PADDING_PERCENT, &item4);
760     auto paddingPercentVal4 = nodeAPI->getAttribute(rootNode, NODE_PADDING_PERCENT);
761     EXPECT_EQ(paddingPercentVal4->value[0].f32, val01);
762 
763     nodeAPI->setAttribute(rootNode, NODE_MARGIN_PERCENT, &item);
764     auto marginPercentVal = nodeAPI->getAttribute(rootNode, NODE_MARGIN_PERCENT);
765     EXPECT_EQ(marginPercentVal->value[0].f32, val01);
766     nodeAPI->setAttribute(rootNode, NODE_MARGIN_PERCENT, &item4);
767     auto marginPercentVal4 = nodeAPI->getAttribute(rootNode, NODE_MARGIN_PERCENT);
768     EXPECT_EQ(marginPercentVal4->value[0].f32, val01);
769 
770     value[0].i32 = false;
771     item.string = "test";
772     item.size = 0;
773     nodeAPI->setAttribute(rootNode, NODE_GEOMETRY_TRANSITION, &item);
774     item.size = 1;
775     nodeAPI->setAttribute(rootNode, NODE_GEOMETRY_TRANSITION, &item);
776     auto geometryTransitionVal = nodeAPI->getAttribute(rootNode, NODE_GEOMETRY_TRANSITION);
777     EXPECT_EQ(geometryTransitionVal->value[0].i32, 0);
778 
779     value[0].i32 = ARKUI_RENDER_FIT_CENTER;
780     nodeAPI->setAttribute(rootNode, NODE_RENDER_FIT, &item);
781     auto renderFitVal = nodeAPI->getAttribute(rootNode, NODE_RENDER_FIT);
782     EXPECT_EQ(renderFitVal->value[0].i32, static_cast<int32_t>(ARKUI_RENDER_FIT_CENTER));
783 
784     value[0].u32 = color;
785     nodeAPI->setAttribute(rootNode, NODE_OUTLINE_COLOR, &item);
786     auto outlineColorVal = nodeAPI->getAttribute(rootNode, NODE_OUTLINE_COLOR);
787     EXPECT_EQ(outlineColorVal->value[0].u32, color);
788     value4[0].u32 = color;
789     value4[1].u32 = color;
790     value4[2].u32 = color;
791     value4[3].u32 = color;
792     nodeAPI->setAttribute(rootNode, NODE_OUTLINE_COLOR, &item4);
793     auto outlineColorVal4 = nodeAPI->getAttribute(rootNode, NODE_OUTLINE_COLOR);
794     EXPECT_EQ(outlineColorVal4->value[0].u32, color);
795 
796     value2[0].f32 = size;
797     value2[1].f32 = size;
798     nodeAPI->setAttribute(rootNode, NODE_SIZE, &item2);
799     auto sizeVal = nodeAPI->getAttribute(rootNode, NODE_SIZE);
800     EXPECT_EQ(sizeVal->value[0].f32, size);
801 
802     value[0].i32 = false;
803     nodeAPI->setAttribute(rootNode, NODE_RENDER_GROUP, &item);
804     auto renderGroupVal = nodeAPI->getAttribute(rootNode, NODE_RENDER_GROUP);
805     EXPECT_EQ(renderGroupVal->value[0].i32, 0);
806 
807     value[0].u32 = color;
808     nodeAPI->setAttribute(rootNode, NODE_COLOR_BLEND, &item);
809     auto colorBlendVal = nodeAPI->getAttribute(rootNode, NODE_COLOR_BLEND);
810     EXPECT_EQ(colorBlendVal->value[0].u32, color);
811 
812     value4[0].i32 = 0;
813     value4[1].i32 = 0;
814     value4[2].i32 = 100;
815     value4[3].i32 = 100;
816     nodeAPI->setAttribute(rootNode, NODE_LAYOUT_RECT, &item4);
817     auto layoutRectVal = nodeAPI->getAttribute(rootNode, NODE_LAYOUT_RECT);
818     EXPECT_EQ(layoutRectVal->value[0].i32, 0);
819 
820     value[0].i32 = 1;
821     nodeAPI->setAttribute(rootNode, NODE_FOCUS_ON_TOUCH, &item);
822     auto onTouchVal = nodeAPI->getAttribute(rootNode, NODE_FOCUS_ON_TOUCH);
823     EXPECT_EQ(onTouchVal->value[0].i32, 1);
824 
825     value[0].f32 = val01;
826     nodeAPI->setAttribute(rootNode, NODE_BORDER_WIDTH_PERCENT, &item);
827     auto borderWidthPercentVal = nodeAPI->getAttribute(rootNode, NODE_BORDER_WIDTH_PERCENT);
828     EXPECT_EQ(borderWidthPercentVal->value[0].f32, val01);
829     value4[0].f32 = val01;
830     value4[1].f32 = val01;
831     value4[2].f32 = val01;
832     value4[3].f32 = val01;
833     nodeAPI->setAttribute(rootNode, NODE_BORDER_WIDTH_PERCENT, &item4);
834     auto borderWidthPercentVal4 = nodeAPI->getAttribute(rootNode, NODE_BORDER_WIDTH_PERCENT);
835     EXPECT_EQ(borderWidthPercentVal4->value[0].f32, val01);
836 
837     value[0].f32 = val01;
838     nodeAPI->setAttribute(rootNode, NODE_BORDER_RADIUS_PERCENT, &item);
839     auto borderRadiusPercentVal = nodeAPI->getAttribute(rootNode, NODE_BORDER_RADIUS_PERCENT);
840     EXPECT_EQ(borderRadiusPercentVal->value[0].f32, val01);
841     value4[0].f32 = val01;
842     value4[1].f32 = val01;
843     value4[2].f32 = val01;
844     value4[3].f32 = val01;
845     nodeAPI->setAttribute(rootNode, NODE_BORDER_RADIUS_PERCENT, &item4);
846     auto borderRadiusPercentVal4 = nodeAPI->getAttribute(rootNode, NODE_BORDER_RADIUS_PERCENT);
847     EXPECT_EQ(borderRadiusPercentVal4->value[0].f32, val01);
848 
849     auto accessibilityIdVal = nodeAPI->getAttribute(rootNode, NODE_ACCESSIBILITY_ID);
850     EXPECT_NE(accessibilityIdVal, nullptr);
851 
852     value[0].u32 = ARKUI_ACCESSIBILITY_ACTION_CLICK;
853     nodeAPI->setAttribute(rootNode, NODE_ACCESSIBILITY_ACTIONS, &item);
854     auto accessibilityActionVal = nodeAPI->getAttribute(rootNode, NODE_ACCESSIBILITY_ACTIONS);
855     EXPECT_NE(accessibilityActionVal, nullptr);
856 
857 
858     value[0].u32 = ARKUI_NODE_STACK;
859     nodeAPI->setAttribute(rootNode, NODE_ACCESSIBILITY_ROLE, &item);
860     auto accessibilityRoleVal = nodeAPI->getAttribute(rootNode, NODE_ACCESSIBILITY_ROLE);
861     EXPECT_NE(accessibilityRoleVal, nullptr);
862 
863     value2[0].u32 = ARKUI_SAFE_AREA_TYPE_SYSTEM;
864     value2[1].u32 = ARKUI_SAFE_AREA_EDGE_TOP;
865     nodeAPI->setAttribute(rootNode, NODE_EXPAND_SAFE_AREA, &item2);
866     auto extendSafeAreaVal = nodeAPI->getAttribute(rootNode, NODE_EXPAND_SAFE_AREA);
867     EXPECT_EQ(extendSafeAreaVal->value[0].u32, ARKUI_SAFE_AREA_TYPE_SYSTEM);
868 
869     value[0].i32 = ARKUI_ALIGNMENT_CENTER;
870     nodeAPI->setAttribute(rootNode, NODE_STACK_ALIGN_CONTENT, &item);
871     auto stackAlignVal = nodeAPI->getAttribute(rootNode, NODE_STACK_ALIGN_CONTENT);
872     EXPECT_EQ(stackAlignVal->value[0].i32, static_cast<int32_t>(ARKUI_ALIGNMENT_CENTER));
873 
874     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TRANSITION), nullptr);
875 
876     value[0].f32 = val05;
877     nodeAPI->setAttribute(rootNode, NODE_VISIBLE_AREA_CHANGE_RATIO, &item);
878     value[0].f32 = val01;
879     nodeAPI->setAttribute(rootNode, NODE_VISIBLE_AREA_CHANGE_RATIO, &item);
880     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_VISIBLE_AREA_CHANGE_RATIO), nullptr);
881 
882     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_WIDTH), ARKUI_ERROR_CODE_NO_ERROR);
883     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_HEIGHT), ARKUI_ERROR_CODE_NO_ERROR);
884     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_BACKGROUND_COLOR), ARKUI_ERROR_CODE_NO_ERROR);
885     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_PADDING), ARKUI_ERROR_CODE_NO_ERROR);
886     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_MARGIN), ARKUI_ERROR_CODE_NO_ERROR);
887     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_ID), ARKUI_ERROR_CODE_NO_ERROR);
888     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_ENABLED), ARKUI_ERROR_CODE_NO_ERROR);
889     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TRANSLATE), ARKUI_ERROR_CODE_NO_ERROR);
890     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SCALE), ARKUI_ERROR_CODE_NO_ERROR);
891     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_ROTATE), ARKUI_ERROR_CODE_NO_ERROR);
892     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_BRIGHTNESS), ARKUI_ERROR_CODE_NO_ERROR);
893     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SATURATION), ARKUI_ERROR_CODE_NO_ERROR);
894     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_BLUR), ARKUI_ERROR_CODE_NO_ERROR);
895     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_LINEAR_GRADIENT), ARKUI_ERROR_CODE_NO_ERROR);
896     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_ALIGNMENT), ARKUI_ERROR_CODE_NO_ERROR);
897     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_OPACITY), ARKUI_ERROR_CODE_NO_ERROR);
898     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_BORDER_WIDTH), ARKUI_ERROR_CODE_NO_ERROR);
899     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_BORDER_RADIUS), ARKUI_ERROR_CODE_NO_ERROR);
900     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_BORDER_COLOR), ARKUI_ERROR_CODE_NO_ERROR);
901     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_BORDER_STYLE), ARKUI_ERROR_CODE_NO_ERROR);
902     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_Z_INDEX), ARKUI_ERROR_CODE_NO_ERROR);
903     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_VISIBILITY), ARKUI_ERROR_CODE_NO_ERROR);
904     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_CLIP), ARKUI_ERROR_CODE_NO_ERROR);
905     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_CLIP_SHAPE), ARKUI_ERROR_CODE_NO_ERROR);
906     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TRANSFORM), ARKUI_ERROR_CODE_NO_ERROR);
907     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_HIT_TEST_BEHAVIOR), ARKUI_ERROR_CODE_NO_ERROR);
908     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_POSITION), ARKUI_ERROR_CODE_NO_ERROR);
909     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SHADOW), ARKUI_ERROR_CODE_NO_ERROR);
910     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_CUSTOM_SHADOW), ARKUI_ERROR_CODE_NO_ERROR);
911     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_BACKGROUND_IMAGE), ARKUI_ERROR_CODE_NO_ERROR);
912     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_BACKGROUND_IMAGE_SIZE), ARKUI_ERROR_CODE_NO_ERROR);
913     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_BACKGROUND_IMAGE_SIZE_WITH_STYLE), ARKUI_ERROR_CODE_NO_ERROR);
914     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_BACKGROUND_BLUR_STYLE), ARKUI_ERROR_CODE_NO_ERROR);
915     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TRANSFORM_CENTER), ARKUI_ERROR_CODE_NO_ERROR);
916     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_OPACITY_TRANSITION), ARKUI_ERROR_CODE_NO_ERROR);
917     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_ROTATE_TRANSITION), ARKUI_ERROR_CODE_NO_ERROR);
918     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SCALE_TRANSITION), ARKUI_ERROR_CODE_NO_ERROR);
919     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TRANSLATE_TRANSITION), ARKUI_ERROR_CODE_NO_ERROR);
920     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_MOVE_TRANSITION), ARKUI_ERROR_CODE_NO_ERROR);
921     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_FOCUSABLE), ARKUI_ERROR_CODE_NO_ERROR);
922     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_DEFAULT_FOCUS), ARKUI_ERROR_CODE_NO_ERROR);
923     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_RESPONSE_REGION), ARKUI_ERROR_CODE_NO_ERROR);
924     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_OVERLAY), ARKUI_ERROR_CODE_NO_ERROR);
925     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SWEEP_GRADIENT), ARKUI_ERROR_CODE_NO_ERROR);
926     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_RADIAL_GRADIENT), ARKUI_ERROR_CODE_NO_ERROR);
927     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_MASK), ARKUI_ERROR_CODE_NO_ERROR);
928     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_BLEND_MODE), ARKUI_ERROR_CODE_NO_ERROR);
929     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_DIRECTION), ARKUI_ERROR_CODE_NO_ERROR);
930     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_CONSTRAINT_SIZE), ARKUI_ERROR_CODE_NO_ERROR);
931     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_GRAY_SCALE), ARKUI_ERROR_CODE_NO_ERROR);
932     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_INVERT), ARKUI_ERROR_CODE_NO_ERROR);
933     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SEPIA), ARKUI_ERROR_CODE_NO_ERROR);
934     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_CONTRAST), ARKUI_ERROR_CODE_NO_ERROR);
935     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_FOREGROUND_COLOR), ARKUI_ERROR_CODE_NO_ERROR);
936     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_OFFSET), ARKUI_ERROR_CODE_NO_ERROR);
937     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_MARK_ANCHOR), ARKUI_ERROR_CODE_NO_ERROR);
938     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_BACKGROUND_IMAGE_POSITION), ARKUI_ERROR_CODE_NO_ERROR);
939     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_ACCESSIBILITY_GROUP), ARKUI_ERROR_CODE_NO_ERROR);
940     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_ACCESSIBILITY_TEXT), ARKUI_ERROR_CODE_NO_ERROR);
941     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_ACCESSIBILITY_MODE), ARKUI_ERROR_CODE_NO_ERROR);
942     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_ACCESSIBILITY_DESCRIPTION), ARKUI_ERROR_CODE_NO_ERROR);
943     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_FOCUS_STATUS), ARKUI_ERROR_CODE_NO_ERROR);
944     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_ASPECT_RATIO), ARKUI_ERROR_CODE_NO_ERROR);
945     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_LAYOUT_WEIGHT), ARKUI_ERROR_CODE_NO_ERROR);
946     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_DISPLAY_PRIORITY), ARKUI_ERROR_CODE_NO_ERROR);
947     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_OUTLINE_WIDTH), ARKUI_ERROR_CODE_NO_ERROR);
948     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_WIDTH_PERCENT), ARKUI_ERROR_CODE_NO_ERROR);
949     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_HEIGHT_PERCENT), ARKUI_ERROR_CODE_NO_ERROR);
950     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_PADDING_PERCENT), ARKUI_ERROR_CODE_NO_ERROR);
951     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_MARGIN_PERCENT), ARKUI_ERROR_CODE_NO_ERROR);
952     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_GEOMETRY_TRANSITION), ARKUI_ERROR_CODE_NO_ERROR);
953     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_RENDER_FIT), ARKUI_ERROR_CODE_NO_ERROR);
954     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_OUTLINE_COLOR), ARKUI_ERROR_CODE_NO_ERROR);
955     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SIZE), ARKUI_ERROR_CODE_NO_ERROR);
956     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_RENDER_GROUP), ARKUI_ERROR_CODE_NO_ERROR);
957     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_COLOR_BLEND), ARKUI_ERROR_CODE_NO_ERROR);
958     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_FOREGROUND_BLUR_STYLE), ARKUI_ERROR_CODE_NO_ERROR);
959     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_LAYOUT_RECT), ARKUI_ERROR_CODE_NO_ERROR);
960     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_FOCUS_ON_TOUCH), ARKUI_ERROR_CODE_NO_ERROR);
961     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_BORDER_WIDTH_PERCENT), ARKUI_ERROR_CODE_NO_ERROR);
962     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_BORDER_RADIUS_PERCENT), ARKUI_ERROR_CODE_NO_ERROR);
963     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_ACCESSIBILITY_ID), ARKUI_ERROR_CODE_NO_ERROR);
964     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_ACCESSIBILITY_ACTIONS), ARKUI_ERROR_CODE_NO_ERROR);
965     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_ACCESSIBILITY_ROLE), ARKUI_ERROR_CODE_NO_ERROR);
966     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_ACCESSIBILITY_STATE), ARKUI_ERROR_CODE_NO_ERROR);
967     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_ACCESSIBILITY_VALUE), ARKUI_ERROR_CODE_NO_ERROR);
968     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_EXPAND_SAFE_AREA), ARKUI_ERROR_CODE_NO_ERROR);
969     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_VISIBLE_AREA_CHANGE_RATIO), ARKUI_ERROR_CODE_NO_ERROR);
970     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TRANSITION), ARKUI_ERROR_CODE_NO_ERROR);
971     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_STACK_ALIGN_CONTENT), ARKUI_ERROR_CODE_NO_ERROR);
972 }
973 
974 /**
975  * @tc.name: NativeNodeTest006
976  * @tc.desc: Test ConvertOriginEventType function.
977  * @tc.type: FUNC
978  */
979 HWTEST_F(NativeNodeTest, NativeNodeTest006, TestSize.Level1)
980 {
981     int32_t ret;
982     int32_t nodeType = static_cast<int32_t>(ARKUI_NODE_TEXT_INPUT);
983     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_TEXT_INPUT_ON_CHANGE, nodeType);
984     EXPECT_EQ(ret, static_cast<int32_t>(ON_TEXT_INPUT_CHANGE));
985     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_TEXT_INPUT_ON_SUBMIT, nodeType);
986     EXPECT_EQ(ret, static_cast<int32_t>(ON_TEXT_INPUT_SUBMIT));
987     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_TEXT_INPUT_ON_CUT, nodeType);
988     EXPECT_EQ(ret, static_cast<int32_t>(ON_TEXT_INPUT_CUT));
989     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_TEXT_INPUT_ON_PASTE, nodeType);
990     EXPECT_EQ(ret, static_cast<int32_t>(ON_TEXT_INPUT_PASTE));
991     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_TEXT_INPUT_ON_TEXT_SELECTION_CHANGE, nodeType);
992     EXPECT_EQ(ret, static_cast<int32_t>(ON_TEXT_INPUT_TEXT_SELECTION_CHANGE));
993     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_TEXT_INPUT_ON_EDIT_CHANGE, nodeType);
994     EXPECT_EQ(ret, static_cast<int32_t>(ON_TEXT_INPUT_EDIT_CHANGE));
995     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_TEXT_INPUT_ON_CONTENT_SIZE_CHANGE, nodeType);
996     EXPECT_EQ(ret, static_cast<int32_t>(ON_TEXT_INPUT_CONTENT_SIZE_CHANGE));
997     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_TEXT_INPUT_ON_INPUT_FILTER_ERROR, nodeType);
998     EXPECT_EQ(ret, static_cast<int32_t>(ON_TEXT_INPUT_INPUT_FILTER_ERROR));
999     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_TEXT_INPUT_ON_CONTENT_SCROLL, nodeType);
1000     EXPECT_EQ(ret, static_cast<int32_t>(ON_TEXT_INPUT_CONTENT_SCROLL));
1001     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_TEXT_INPUT_ON_WILL_INSERT, nodeType);
1002     EXPECT_EQ(ret, static_cast<int32_t>(ON_TEXT_INPUT_WILL_INSERT));
1003     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_TEXT_INPUT_ON_DID_INSERT, nodeType);
1004     EXPECT_EQ(ret, static_cast<int32_t>(ON_TEXT_INPUT_DID_INSERT));
1005     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_TEXT_INPUT_ON_WILL_DELETE, nodeType);
1006     EXPECT_EQ(ret, static_cast<int32_t>(ON_TEXT_INPUT_WILL_DELETE));
1007     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_TEXT_INPUT_ON_DID_DELETE, nodeType);
1008     EXPECT_EQ(ret, static_cast<int32_t>(ON_TEXT_INPUT_DID_DELETE));
1009     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_TEXT_INPUT_ON_CHANGE_WITH_PREVIEW_TEXT, nodeType);
1010     EXPECT_EQ(ret, static_cast<int32_t>(ON_TEXT_INPUT_CHANGE_WITH_PREVIEW_TEXT));
1011 
1012     nodeType = static_cast<int32_t>(ARKUI_NODE_SCROLL);
1013     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_SCROLL_EVENT_ON_SCROLL, nodeType);
1014     EXPECT_EQ(ret, static_cast<int32_t>(ON_SCROLL));
1015     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_SCROLL_EVENT_ON_SCROLL_FRAME_BEGIN, nodeType);
1016     EXPECT_EQ(ret, static_cast<int32_t>(ON_SCROLL_FRAME_BEGIN));
1017     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_SCROLL_EVENT_ON_WILL_SCROLL, nodeType);
1018     EXPECT_EQ(ret, static_cast<int32_t>(ON_SCROLL_WILL_SCROLL));
1019     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_SCROLL_EVENT_ON_DID_SCROLL, nodeType);
1020     EXPECT_EQ(ret, static_cast<int32_t>(ON_SCROLL_DID_SCROLL));
1021     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_SCROLL_EVENT_ON_SCROLL_START, nodeType);
1022     EXPECT_EQ(ret, static_cast<int32_t>(ON_SCROLL_START));
1023     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_SCROLL_EVENT_ON_SCROLL_STOP, nodeType);
1024     EXPECT_EQ(ret, static_cast<int32_t>(ON_SCROLL_STOP));
1025     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_SCROLL_EVENT_ON_SCROLL_EDGE, nodeType);
1026     EXPECT_EQ(ret, static_cast<int32_t>(ON_SCROLL_EDGE));
1027     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_SCROLL_EVENT_ON_REACH_START, nodeType);
1028     EXPECT_EQ(ret, static_cast<int32_t>(ON_SCROLL_REACH_START));
1029     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_SCROLL_EVENT_ON_REACH_END, nodeType);
1030     EXPECT_EQ(ret, static_cast<int32_t>(ON_SCROLL_REACH_END));
1031     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_SCROLL_EVENT_ON_WILL_STOP_DRAGGING, nodeType);
1032     EXPECT_EQ(ret, static_cast<int32_t>(ON_SCROLL_WILL_STOP_DRAGGING));
1033     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_SCROLL_EVENT_ON_DID_ZOOM, nodeType);
1034     EXPECT_EQ(ret, static_cast<int32_t>(ON_SCROLL_DID_ZOOM));
1035     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_SCROLL_EVENT_ON_ZOOM_START, nodeType);
1036     EXPECT_EQ(ret, static_cast<int32_t>(ON_SCROLL_ZOOM_START));
1037     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_SCROLL_EVENT_ON_ZOOM_STOP, nodeType);
1038     EXPECT_EQ(ret, static_cast<int32_t>(ON_SCROLL_ZOOM_STOP));
1039 
1040     nodeType = static_cast<int32_t>(ARKUI_NODE_LIST);
1041     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_SCROLL_EVENT_ON_SCROLL, nodeType);
1042     EXPECT_EQ(ret, static_cast<int32_t>(ON_LIST_SCROLL));
1043     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_SCROLL_EVENT_ON_SCROLL_FRAME_BEGIN, nodeType);
1044     EXPECT_EQ(ret, static_cast<int32_t>(ON_LIST_SCROLL_FRAME_BEGIN));
1045     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_SCROLL_EVENT_ON_SCROLL_START, nodeType);
1046     EXPECT_EQ(ret, static_cast<int32_t>(ON_LIST_SCROLL_START));
1047     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_SCROLL_EVENT_ON_SCROLL_STOP, nodeType);
1048     EXPECT_EQ(ret, static_cast<int32_t>(ON_LIST_SCROLL_STOP));
1049     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_SCROLL_EVENT_ON_REACH_START, nodeType);
1050     EXPECT_EQ(ret, static_cast<int32_t>(ON_LIST_REACH_START));
1051     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_SCROLL_EVENT_ON_REACH_END, nodeType);
1052     EXPECT_EQ(ret, static_cast<int32_t>(ON_LIST_REACH_END));
1053     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_LIST_ON_SCROLL_INDEX, nodeType);
1054     EXPECT_EQ(ret, static_cast<int32_t>(ON_LIST_SCROLL_INDEX));
1055     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_LIST_ON_DID_SCROLL, nodeType);
1056     EXPECT_EQ(ret, static_cast<int32_t>(ON_LIST_DID_SCROLL));
1057     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_LIST_ON_WILL_SCROLL, nodeType);
1058     EXPECT_EQ(ret, static_cast<int32_t>(ON_LIST_WILL_SCROLL));
1059 
1060     nodeType = static_cast<int32_t>(ARKUI_NODE_WATER_FLOW);
1061     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_SCROLL_EVENT_ON_SCROLL_FRAME_BEGIN, nodeType);
1062     EXPECT_EQ(ret, static_cast<int32_t>(ON_WATER_FLOW_SCROLL_FRAME_BEGIN));
1063     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_SCROLL_EVENT_ON_SCROLL_START, nodeType);
1064     EXPECT_EQ(ret, static_cast<int32_t>(ON_WATER_FLOW_SCROLL_START));
1065     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_SCROLL_EVENT_ON_SCROLL_STOP, nodeType);
1066     EXPECT_EQ(ret, static_cast<int32_t>(ON_WATER_FLOW_SCROLL_STOP));
1067     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_ON_WILL_SCROLL, nodeType);
1068     EXPECT_EQ(ret, static_cast<int32_t>(ON_WATER_FLOW_WILL_SCROLL));
1069     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_SCROLL_EVENT_ON_REACH_START, nodeType);
1070     EXPECT_EQ(ret, static_cast<int32_t>(ON_WATER_FLOW_REACH_START));
1071     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_SCROLL_EVENT_ON_REACH_END, nodeType);
1072     EXPECT_EQ(ret, static_cast<int32_t>(ON_WATER_FLOW_REACH_END));
1073     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_WATER_FLOW_ON_DID_SCROLL, nodeType);
1074     EXPECT_EQ(ret, static_cast<int32_t>(ON_WATER_FLOW_DID_SCROLL));
1075     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_WATER_FLOW_ON_SCROLL_INDEX, nodeType);
1076     EXPECT_EQ(ret, static_cast<int32_t>(ON_WATER_FLOW_SCROLL_INDEX));
1077 
1078     nodeType = static_cast<int32_t>(ARKUI_NODE_STACK);
1079     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_EVENT_ON_APPEAR, nodeType);
1080     EXPECT_EQ(ret, static_cast<int32_t>(ON_APPEAR));
1081     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_EVENT_ON_DISAPPEAR, nodeType);
1082     EXPECT_EQ(ret, static_cast<int32_t>(ON_DISAPPEAR));
1083     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_EVENT_ON_AREA_CHANGE, nodeType);
1084     EXPECT_EQ(ret, static_cast<int32_t>(ON_AREA_CHANGE));
1085     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_ON_FOCUS, nodeType);
1086     EXPECT_EQ(ret, static_cast<int32_t>(ON_FOCUS));
1087     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_ON_BLUR, nodeType);
1088     EXPECT_EQ(ret, static_cast<int32_t>(ON_BLUR));
1089     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_TOUCH_EVENT, nodeType);
1090     EXPECT_EQ(ret, static_cast<int32_t>(ON_TOUCH));
1091     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_ON_CLICK, nodeType);
1092     EXPECT_EQ(ret, static_cast<int32_t>(ON_CLICK));
1093     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_ON_TOUCH_INTERCEPT, nodeType);
1094     EXPECT_EQ(ret, static_cast<int32_t>(ON_TOUCH_INTERCEPT));
1095     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_EVENT_ON_VISIBLE_AREA_CHANGE, nodeType);
1096     EXPECT_EQ(ret, static_cast<int32_t>(ON_VISIBLE_AREA_CHANGE));
1097     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_ON_HOVER, nodeType);
1098     EXPECT_EQ(ret, static_cast<int32_t>(ON_HOVER));
1099     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_ON_HOVER_MOVE, nodeType);
1100     EXPECT_EQ(ret, static_cast<int32_t>(ON_HOVER_MOVE));
1101     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_ON_MOUSE, nodeType);
1102     EXPECT_EQ(ret, static_cast<int32_t>(ON_MOUSE));
1103     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_EVENT_ON_ATTACH, nodeType);
1104     EXPECT_EQ(ret, static_cast<int32_t>(ON_ATTACH));
1105     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_EVENT_ON_DETACH, nodeType);
1106     EXPECT_EQ(ret, static_cast<int32_t>(ON_DETACH));
1107     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_ON_ACCESSIBILITY_ACTIONS, nodeType);
1108     EXPECT_EQ(ret, static_cast<int32_t>(ON_ACCESSIBILITY_ACTIONS));
1109 
1110     nodeType = static_cast<int32_t>(ARKUI_NODE_TEXT_AREA);
1111     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_TEXT_AREA_ON_CHANGE, nodeType);
1112     EXPECT_EQ(ret, static_cast<int32_t>(ON_TEXTAREA_CHANGE));
1113     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_TEXT_AREA_ON_INPUT_FILTER_ERROR, nodeType);
1114     EXPECT_EQ(ret, static_cast<int32_t>(ON_TEXT_AREA_INPUT_FILTER_ERROR));
1115     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_TEXT_AREA_ON_EDIT_CHANGE, nodeType);
1116     EXPECT_EQ(ret, static_cast<int32_t>(ON_TEXTAREA_EDIT_CHANGE));
1117     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_TEXT_AREA_ON_SUBMIT, nodeType);
1118     EXPECT_EQ(ret, static_cast<int32_t>(ON_TEXTAREA_ON_SUBMIT));
1119     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_TEXT_AREA_ON_CONTENT_SIZE_CHANGE, nodeType);
1120     EXPECT_EQ(ret, static_cast<int32_t>(ON_TEXTAREA_CONTENT_SIZE_CHANGE));
1121     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_TEXT_AREA_ON_PASTE, nodeType);
1122     EXPECT_EQ(ret, static_cast<int32_t>(ON_TEXTAREA_PASTE));
1123     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_TEXT_AREA_ON_TEXT_SELECTION_CHANGE, nodeType);
1124     EXPECT_EQ(ret, static_cast<int32_t>(ON_TEXTAREA_TEXT_SELECTION_CHANGE));
1125     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_TEXT_AREA_ON_CONTENT_SCROLL, nodeType);
1126     EXPECT_EQ(ret, static_cast<int32_t>(ON_TEXT_AREA_CONTENT_SCROLL));
1127     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_TEXT_AREA_ON_WILL_INSERT, nodeType);
1128     EXPECT_EQ(ret, static_cast<int32_t>(ON_TEXT_AREA_WILL_INSERT));
1129     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_TEXT_AREA_ON_DID_INSERT, nodeType);
1130     EXPECT_EQ(ret, static_cast<int32_t>(ON_TEXT_AREA_DID_INSERT));
1131     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_TEXT_AREA_ON_WILL_DELETE, nodeType);
1132     EXPECT_EQ(ret, static_cast<int32_t>(ON_TEXT_AREA_WILL_DELETE));
1133     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_TEXT_AREA_ON_DID_DELETE, nodeType);
1134     EXPECT_EQ(ret, static_cast<int32_t>(ON_TEXT_AREA_DID_DELETE));
1135     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_TEXT_AREA_ON_CHANGE_WITH_PREVIEW_TEXT, nodeType);
1136     EXPECT_EQ(ret, static_cast<int32_t>(ON_TEXT_AREA_CHANGE_WITH_PREVIEW_TEXT));
1137 
1138 
1139     nodeType = static_cast<int32_t>(ARKUI_NODE_REFRESH);
1140     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_REFRESH_STATE_CHANGE, nodeType);
1141     EXPECT_EQ(ret, static_cast<int32_t>(ON_REFRESH_STATE_CHANGE));
1142     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_REFRESH_ON_REFRESH, nodeType);
1143     EXPECT_EQ(ret, static_cast<int32_t>(ON_REFRESH_REFRESHING));
1144     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_REFRESH_ON_OFFSET_CHANGE, nodeType);
1145     EXPECT_EQ(ret, static_cast<int32_t>(ON_REFRESH_ON_OFFSET_CHANGE));
1146     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_ON_KEY_EVENT, nodeType);
1147     EXPECT_EQ(ret, static_cast<int32_t>(ArkUIEventSubKind::ON_KEY_EVENT));
1148     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_ON_KEY_PRE_IME, nodeType);
1149     EXPECT_EQ(ret, static_cast<int32_t>(ArkUIEventSubKind::ON_KEY_PREIME));
1150     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_ON_CLICK_EVENT, nodeType);
1151     EXPECT_EQ(ret, static_cast<int32_t>(ArkUIEventSubKind::ON_CLICK_EVENT));
1152     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_ON_HOVER_EVENT, nodeType);
1153     EXPECT_EQ(ret, static_cast<int32_t>(ArkUIEventSubKind::ON_HOVER_EVENT));
1154 
1155     nodeType = static_cast<int32_t>(ARKUI_NODE_TOGGLE);
1156     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_TOGGLE_ON_CHANGE, nodeType);
1157     EXPECT_EQ(ret, static_cast<int32_t>(ON_TOGGLE_CHANGE));
1158 
1159     nodeType = static_cast<int32_t>(ARKUI_NODE_IMAGE);
1160     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_IMAGE_ON_COMPLETE, nodeType);
1161     EXPECT_EQ(ret, static_cast<int32_t>(ON_IMAGE_COMPLETE));
1162     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_IMAGE_ON_ERROR, nodeType);
1163     EXPECT_EQ(ret, static_cast<int32_t>(ON_IMAGE_ERROR));
1164     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_IMAGE_ON_SVG_PLAY_FINISH, nodeType);
1165     EXPECT_EQ(ret, static_cast<int32_t>(ON_IMAGE_SVG_PLAY_FINISH));
1166     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_IMAGE_ON_DOWNLOAD_PROGRESS, nodeType);
1167     EXPECT_EQ(ret, static_cast<int32_t>(ON_IMAGE_DOWNLOAD_PROGRESS));
1168 
1169     nodeType = static_cast<int32_t>(ARKUI_NODE_DATE_PICKER);
1170     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_DATE_PICKER_EVENT_ON_DATE_CHANGE, nodeType);
1171     EXPECT_EQ(ret, static_cast<int32_t>(ON_DATE_PICKER_DATE_CHANGE));
1172 
1173     nodeType = static_cast<int32_t>(ARKUI_NODE_TIME_PICKER);
1174     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_TIME_PICKER_EVENT_ON_CHANGE, nodeType);
1175     EXPECT_EQ(ret, static_cast<int32_t>(ON_TIME_PICKER_CHANGE));
1176 
1177     nodeType = static_cast<int32_t>(ARKUI_NODE_TEXT_PICKER);
1178     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_TEXT_PICKER_EVENT_ON_CHANGE, nodeType);
1179     EXPECT_EQ(ret, static_cast<int32_t>(ON_TEXT_PICKER_CHANGE));
1180     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_TEXT_PICKER_EVENT_ON_SCROLL_STOP, nodeType);
1181     EXPECT_EQ(ret, static_cast<int32_t>(ON_TEXT_PICKER_SCROLL_STOP));
1182 
1183     nodeType = static_cast<int32_t>(ARKUI_NODE_CALENDAR_PICKER);
1184     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_CALENDAR_PICKER_EVENT_ON_CHANGE, nodeType);
1185     EXPECT_EQ(ret, static_cast<int32_t>(ON_CALENDAR_PICKER_CHANGE));
1186 
1187     nodeType = static_cast<int32_t>(ARKUI_NODE_CHECKBOX);
1188     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_CHECKBOX_EVENT_ON_CHANGE, nodeType);
1189     EXPECT_EQ(ret, static_cast<int32_t>(ON_CHECKBOX_CHANGE));
1190 
1191     nodeType = static_cast<int32_t>(ARKUI_NODE_SLIDER);
1192     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_SLIDER_EVENT_ON_CHANGE, nodeType);
1193     EXPECT_EQ(ret, static_cast<int32_t>(ON_SLIDER_CHANGE));
1194 
1195     nodeType = static_cast<int32_t>(ARKUI_NODE_SWIPER);
1196     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_SWIPER_EVENT_ON_CHANGE, nodeType);
1197     EXPECT_EQ(ret, static_cast<int32_t>(ON_SWIPER_CHANGE));
1198     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_SWIPER_EVENT_ON_SELECTED, nodeType);
1199     EXPECT_EQ(ret, static_cast<int32_t>(ON_SWIPER_SELECTED));
1200     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_SWIPER_EVENT_ON_ANIMATION_START, nodeType);
1201     EXPECT_EQ(ret, static_cast<int32_t>(ON_SWIPER_ANIMATION_START));
1202     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_SWIPER_EVENT_ON_ANIMATION_END, nodeType);
1203     EXPECT_EQ(ret, static_cast<int32_t>(ON_SWIPER_ANIMATION_END));
1204     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_SWIPER_EVENT_ON_GESTURE_SWIPE, nodeType);
1205     EXPECT_EQ(ret, static_cast<int32_t>(ON_SWIPER_GESTURE_SWIPE));
1206     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_SWIPER_EVENT_ON_CONTENT_DID_SCROLL, nodeType);
1207     EXPECT_EQ(ret, static_cast<int32_t>(ON_SWIPER_DID_CONTENT_SCROLL));
1208     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_SWIPER_EVENT_ON_UNSELECTED, nodeType);
1209     EXPECT_EQ(ret, static_cast<int32_t>(ON_SWIPER_UNSELECTED));
1210 
1211     nodeType = static_cast<int32_t>(ARKUI_NODE_TEXT);
1212     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_TEXT_ON_DETECT_RESULT_UPDATE, nodeType);
1213     EXPECT_EQ(ret, static_cast<int32_t>(ON_DETECT_RESULT_UPDATE));
1214 
1215     nodeType = static_cast<int32_t>(ARKUI_NODE_RADIO);
1216     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_RADIO_EVENT_ON_CHANGE, nodeType);
1217     EXPECT_EQ(ret, static_cast<int32_t>(ON_RADIO_CHANGE));
1218 
1219     nodeType = static_cast<int32_t>(ARKUI_NODE_IMAGE_ANIMATOR);
1220     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_IMAGE_ANIMATOR_EVENT_ON_START, nodeType);
1221     EXPECT_EQ(ret, static_cast<int32_t>(ON_IMAGE_ANIMATOR_ON_START));
1222     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_IMAGE_ANIMATOR_EVENT_ON_CANCEL, nodeType);
1223     EXPECT_EQ(ret, static_cast<int32_t>(ON_IMAGE_ANIMATOR_ON_CANCEL));
1224     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_IMAGE_ANIMATOR_EVENT_ON_PAUSE, nodeType);
1225     EXPECT_EQ(ret, static_cast<int32_t>(ON_IMAGE_ANIMATOR_ON_PAUSE));
1226     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_IMAGE_ANIMATOR_EVENT_ON_REPEAT, nodeType);
1227     EXPECT_EQ(ret, static_cast<int32_t>(ON_IMAGE_ANIMATOR_ON_REPEAT));
1228     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_IMAGE_ANIMATOR_EVENT_ON_FINISH, nodeType);
1229     EXPECT_EQ(ret, static_cast<int32_t>(ON_IMAGE_ANIMATOR_ON_FINISH));
1230 
1231     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_ON_FOCUS_AXIS, nodeType);
1232     EXPECT_EQ(ret, static_cast<int32_t>(ON_FOCUS_AXIS));
1233     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_CHECKBOX_GROUP_EVENT_ON_CHANGE, nodeType);
1234     EXPECT_EQ(ret, static_cast<int32_t>(ON_CHECKBOX_GROUP_CHANGE));
1235     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_ON_AXIS, nodeType);
1236     EXPECT_EQ(ret, static_cast<int32_t>(ON_AXIS));
1237 }
1238 
1239 /**
1240  * @tc.name: NativeNodeTest007
1241  * @tc.desc: Test ConvertToNodeEventType function.
1242  * @tc.type: FUNC
1243  */
1244 HWTEST_F(NativeNodeTest, NativeNodeTest007, TestSize.Level1)
1245 {
1246     int32_t ret;
1247     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_TEXT_INPUT_CHANGE);
1248     EXPECT_EQ(ret, static_cast<int32_t>(NODE_TEXT_INPUT_ON_CHANGE));
1249     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_TEXT_INPUT_SUBMIT);
1250     EXPECT_EQ(ret, static_cast<int32_t>(NODE_TEXT_INPUT_ON_SUBMIT));
1251     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_TEXT_INPUT_CUT);
1252     EXPECT_EQ(ret, static_cast<int32_t>(NODE_TEXT_INPUT_ON_CUT));
1253     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_TEXT_INPUT_PASTE);
1254     EXPECT_EQ(ret, static_cast<int32_t>(NODE_TEXT_INPUT_ON_PASTE));
1255     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_TEXT_INPUT_TEXT_SELECTION_CHANGE);
1256     EXPECT_EQ(ret, static_cast<int32_t>(NODE_TEXT_INPUT_ON_TEXT_SELECTION_CHANGE));
1257     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_TEXT_INPUT_EDIT_CHANGE);
1258     EXPECT_EQ(ret, static_cast<int32_t>(NODE_TEXT_INPUT_ON_EDIT_CHANGE));
1259     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_TEXT_INPUT_CONTENT_SIZE_CHANGE);
1260     EXPECT_EQ(ret, static_cast<int32_t>(NODE_TEXT_INPUT_ON_CONTENT_SIZE_CHANGE));
1261     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_TEXT_INPUT_INPUT_FILTER_ERROR);
1262     EXPECT_EQ(ret, static_cast<int32_t>(NODE_TEXT_INPUT_ON_INPUT_FILTER_ERROR));
1263     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_TEXT_INPUT_CONTENT_SCROLL);
1264     EXPECT_EQ(ret, static_cast<int32_t>(NODE_TEXT_INPUT_ON_CONTENT_SCROLL));
1265     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_TEXT_INPUT_WILL_INSERT);
1266     EXPECT_EQ(ret, static_cast<int32_t>(NODE_TEXT_INPUT_ON_WILL_INSERT));
1267     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_TEXT_INPUT_DID_INSERT);
1268     EXPECT_EQ(ret, static_cast<int32_t>(NODE_TEXT_INPUT_ON_DID_INSERT));
1269     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_TEXT_INPUT_WILL_DELETE);
1270     EXPECT_EQ(ret, static_cast<int32_t>(NODE_TEXT_INPUT_ON_WILL_DELETE));
1271     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_TEXT_INPUT_DID_DELETE);
1272     EXPECT_EQ(ret, static_cast<int32_t>(NODE_TEXT_INPUT_ON_DID_DELETE));
1273     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_TEXT_INPUT_CHANGE_WITH_PREVIEW_TEXT);
1274     EXPECT_EQ(ret, static_cast<int32_t>(NODE_TEXT_INPUT_ON_CHANGE_WITH_PREVIEW_TEXT));
1275     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_SCROLL);
1276     EXPECT_EQ(ret, static_cast<int32_t>(NODE_SCROLL_EVENT_ON_SCROLL));
1277     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_SCROLL_FRAME_BEGIN);
1278     EXPECT_EQ(ret, static_cast<int32_t>(NODE_SCROLL_EVENT_ON_SCROLL_FRAME_BEGIN));
1279     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_SCROLL_WILL_SCROLL);
1280     EXPECT_EQ(ret, static_cast<int32_t>(NODE_SCROLL_EVENT_ON_WILL_SCROLL));
1281     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_SCROLL_DID_SCROLL);
1282     EXPECT_EQ(ret, static_cast<int32_t>(NODE_SCROLL_EVENT_ON_DID_SCROLL));
1283     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_SCROLL_START);
1284     EXPECT_EQ(ret, static_cast<int32_t>(NODE_SCROLL_EVENT_ON_SCROLL_START));
1285     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_SCROLL_STOP);
1286     EXPECT_EQ(ret, static_cast<int32_t>(NODE_SCROLL_EVENT_ON_SCROLL_STOP));
1287     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_SCROLL_EDGE);
1288     EXPECT_EQ(ret, static_cast<int32_t>(NODE_SCROLL_EVENT_ON_SCROLL_EDGE));
1289     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_SCROLL_REACH_START);
1290     EXPECT_EQ(ret, static_cast<int32_t>(NODE_SCROLL_EVENT_ON_REACH_START));
1291     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_SCROLL_REACH_END);
1292     EXPECT_EQ(ret, static_cast<int32_t>(NODE_SCROLL_EVENT_ON_REACH_END));
1293     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_SCROLL_WILL_STOP_DRAGGING);
1294     EXPECT_EQ(ret, static_cast<int32_t>(NODE_SCROLL_EVENT_ON_WILL_STOP_DRAGGING));
1295     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_SCROLL_DID_ZOOM);
1296     EXPECT_EQ(ret, static_cast<int32_t>(NODE_SCROLL_EVENT_ON_DID_ZOOM));
1297     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_SCROLL_ZOOM_START);
1298     EXPECT_EQ(ret, static_cast<int32_t>(NODE_SCROLL_EVENT_ON_ZOOM_START));
1299     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_SCROLL_ZOOM_STOP);
1300     EXPECT_EQ(ret, static_cast<int32_t>(NODE_SCROLL_EVENT_ON_ZOOM_STOP));
1301     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_LIST_SCROLL);
1302     EXPECT_EQ(ret, static_cast<int32_t>(NODE_SCROLL_EVENT_ON_SCROLL));
1303     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_LIST_SCROLL_FRAME_BEGIN);
1304     EXPECT_EQ(ret, static_cast<int32_t>(NODE_SCROLL_EVENT_ON_SCROLL_FRAME_BEGIN));
1305     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_LIST_SCROLL_START);
1306     EXPECT_EQ(ret, static_cast<int32_t>(NODE_SCROLL_EVENT_ON_SCROLL_START));
1307     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_LIST_SCROLL_STOP);
1308     EXPECT_EQ(ret, static_cast<int32_t>(NODE_SCROLL_EVENT_ON_SCROLL_STOP));
1309     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_LIST_REACH_START);
1310     EXPECT_EQ(ret, static_cast<int32_t>(NODE_SCROLL_EVENT_ON_REACH_START));
1311     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_LIST_REACH_END);
1312     EXPECT_EQ(ret, static_cast<int32_t>(NODE_SCROLL_EVENT_ON_REACH_END));
1313     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_LIST_SCROLL_INDEX);
1314     EXPECT_EQ(ret, static_cast<int32_t>(NODE_LIST_ON_SCROLL_INDEX));
1315     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_LIST_DID_SCROLL);
1316     EXPECT_EQ(ret, static_cast<int32_t>(NODE_LIST_ON_DID_SCROLL));
1317     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_LIST_WILL_SCROLL);
1318     EXPECT_EQ(ret, static_cast<int32_t>(NODE_LIST_ON_WILL_SCROLL));
1319     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_WATER_FLOW_SCROLL_FRAME_BEGIN);
1320     EXPECT_EQ(ret, static_cast<int32_t>(NODE_SCROLL_EVENT_ON_SCROLL_FRAME_BEGIN));
1321     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_WATER_FLOW_SCROLL_START);
1322     EXPECT_EQ(ret, static_cast<int32_t>(NODE_SCROLL_EVENT_ON_SCROLL_START));
1323     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_WATER_FLOW_SCROLL_STOP);
1324     EXPECT_EQ(ret, static_cast<int32_t>(NODE_SCROLL_EVENT_ON_SCROLL_STOP));
1325     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_WATER_FLOW_WILL_SCROLL);
1326     EXPECT_EQ(ret, static_cast<int32_t>(NODE_ON_WILL_SCROLL));
1327     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_WATER_FLOW_REACH_START);
1328     EXPECT_EQ(ret, static_cast<int32_t>(NODE_SCROLL_EVENT_ON_REACH_START));
1329     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_WATER_FLOW_REACH_END);
1330     EXPECT_EQ(ret, static_cast<int32_t>(NODE_SCROLL_EVENT_ON_REACH_END));
1331     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_WATER_FLOW_DID_SCROLL);
1332     EXPECT_EQ(ret, static_cast<int32_t>(NODE_WATER_FLOW_ON_DID_SCROLL));
1333     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_WATER_FLOW_SCROLL_INDEX);
1334     EXPECT_EQ(ret, static_cast<int32_t>(NODE_WATER_FLOW_ON_SCROLL_INDEX));
1335     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_APPEAR);
1336     EXPECT_EQ(ret, static_cast<int32_t>(NODE_EVENT_ON_APPEAR));
1337     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_DISAPPEAR);
1338     EXPECT_EQ(ret, static_cast<int32_t>(NODE_EVENT_ON_DISAPPEAR));
1339     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_AREA_CHANGE);
1340     EXPECT_EQ(ret, static_cast<int32_t>(NODE_EVENT_ON_AREA_CHANGE));
1341     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_FOCUS);
1342     EXPECT_EQ(ret, static_cast<int32_t>(NODE_ON_FOCUS));
1343     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_BLUR);
1344     EXPECT_EQ(ret, static_cast<int32_t>(NODE_ON_BLUR));
1345     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_TOUCH);
1346     EXPECT_EQ(ret, static_cast<int32_t>(NODE_TOUCH_EVENT));
1347     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_CLICK);
1348     EXPECT_EQ(ret, static_cast<int32_t>(NODE_ON_CLICK));
1349     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_TOUCH_INTERCEPT);
1350     EXPECT_EQ(ret, static_cast<int32_t>(NODE_ON_TOUCH_INTERCEPT));
1351     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_VISIBLE_AREA_CHANGE);
1352     EXPECT_EQ(ret, static_cast<int32_t>(NODE_EVENT_ON_VISIBLE_AREA_CHANGE));
1353     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_HOVER);
1354     EXPECT_EQ(ret, static_cast<int32_t>(NODE_ON_HOVER));
1355     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_HOVER_MOVE);
1356     EXPECT_EQ(ret, static_cast<int32_t>(NODE_ON_HOVER_MOVE));
1357     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_MOUSE);
1358     EXPECT_EQ(ret, static_cast<int32_t>(NODE_ON_MOUSE));
1359     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_ATTACH);
1360     EXPECT_EQ(ret, static_cast<int32_t>(NODE_EVENT_ON_ATTACH));
1361     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_DETACH);
1362     EXPECT_EQ(ret, static_cast<int32_t>(NODE_EVENT_ON_DETACH));
1363     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_ACCESSIBILITY_ACTIONS);
1364     EXPECT_EQ(ret, static_cast<int32_t>(NODE_ON_ACCESSIBILITY_ACTIONS));
1365     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_TEXTAREA_CHANGE);
1366     EXPECT_EQ(ret, static_cast<int32_t>(NODE_TEXT_AREA_ON_CHANGE));
1367     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_TEXT_AREA_INPUT_FILTER_ERROR);
1368     EXPECT_EQ(ret, static_cast<int32_t>(NODE_TEXT_AREA_ON_INPUT_FILTER_ERROR));
1369     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_TEXTAREA_EDIT_CHANGE);
1370     EXPECT_EQ(ret, static_cast<int32_t>(NODE_TEXT_AREA_ON_EDIT_CHANGE));
1371     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_TEXTAREA_ON_SUBMIT);
1372     EXPECT_EQ(ret, static_cast<int32_t>(NODE_TEXT_AREA_ON_SUBMIT));
1373     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_TEXTAREA_CONTENT_SIZE_CHANGE);
1374     EXPECT_EQ(ret, static_cast<int32_t>(NODE_TEXT_AREA_ON_CONTENT_SIZE_CHANGE));
1375     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_TEXTAREA_PASTE);
1376     EXPECT_EQ(ret, static_cast<int32_t>(NODE_TEXT_AREA_ON_PASTE));
1377     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_TEXTAREA_TEXT_SELECTION_CHANGE);
1378     EXPECT_EQ(ret, static_cast<int32_t>(NODE_TEXT_AREA_ON_TEXT_SELECTION_CHANGE));
1379     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_TEXT_AREA_CONTENT_SCROLL);
1380     EXPECT_EQ(ret, static_cast<int32_t>(NODE_TEXT_AREA_ON_CONTENT_SCROLL));
1381     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_TEXT_AREA_WILL_INSERT);
1382     EXPECT_EQ(ret, static_cast<int32_t>(NODE_TEXT_AREA_ON_WILL_INSERT));
1383     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_TEXT_AREA_DID_INSERT);
1384     EXPECT_EQ(ret, static_cast<int32_t>(NODE_TEXT_AREA_ON_DID_INSERT));
1385     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_TEXT_AREA_WILL_DELETE);
1386     EXPECT_EQ(ret, static_cast<int32_t>(NODE_TEXT_AREA_ON_WILL_DELETE));
1387     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_TEXT_AREA_DID_DELETE);
1388     EXPECT_EQ(ret, static_cast<int32_t>(NODE_TEXT_AREA_ON_DID_DELETE));
1389     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_TEXT_AREA_CHANGE_WITH_PREVIEW_TEXT);
1390     EXPECT_EQ(ret, static_cast<int32_t>(NODE_TEXT_AREA_ON_CHANGE_WITH_PREVIEW_TEXT));
1391     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_REFRESH_STATE_CHANGE);
1392     EXPECT_EQ(ret, static_cast<int32_t>(NODE_REFRESH_STATE_CHANGE));
1393     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_REFRESH_REFRESHING);
1394     EXPECT_EQ(ret, static_cast<int32_t>(NODE_REFRESH_ON_REFRESH));
1395     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_REFRESH_ON_OFFSET_CHANGE);
1396     EXPECT_EQ(ret, static_cast<int32_t>(NODE_REFRESH_ON_OFFSET_CHANGE));
1397     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_TOGGLE_CHANGE);
1398     EXPECT_EQ(ret, static_cast<int32_t>(NODE_TOGGLE_ON_CHANGE));
1399     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_IMAGE_COMPLETE);
1400     EXPECT_EQ(ret, static_cast<int32_t>(NODE_IMAGE_ON_COMPLETE));
1401     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_IMAGE_ERROR);
1402     EXPECT_EQ(ret, static_cast<int32_t>(NODE_IMAGE_ON_ERROR));
1403     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_IMAGE_SVG_PLAY_FINISH);
1404     EXPECT_EQ(ret, static_cast<int32_t>(NODE_IMAGE_ON_SVG_PLAY_FINISH));
1405     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_IMAGE_DOWNLOAD_PROGRESS);
1406     EXPECT_EQ(ret, static_cast<int32_t>(NODE_IMAGE_ON_DOWNLOAD_PROGRESS));
1407     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_DATE_PICKER_DATE_CHANGE);
1408     EXPECT_EQ(ret, static_cast<int32_t>(NODE_DATE_PICKER_EVENT_ON_DATE_CHANGE));
1409     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_TIME_PICKER_CHANGE);
1410     EXPECT_EQ(ret, static_cast<int32_t>(NODE_TIME_PICKER_EVENT_ON_CHANGE));
1411     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_TEXT_PICKER_CHANGE);
1412     EXPECT_EQ(ret, static_cast<int32_t>(NODE_TEXT_PICKER_EVENT_ON_CHANGE));
1413     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_TEXT_PICKER_SCROLL_STOP);
1414     EXPECT_EQ(ret, static_cast<int32_t>(NODE_TEXT_PICKER_EVENT_ON_SCROLL_STOP));
1415     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_CALENDAR_PICKER_CHANGE);
1416     EXPECT_EQ(ret, static_cast<int32_t>(NODE_CALENDAR_PICKER_EVENT_ON_CHANGE));
1417     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_CHECKBOX_CHANGE);
1418     EXPECT_EQ(ret, static_cast<int32_t>(NODE_CHECKBOX_EVENT_ON_CHANGE));
1419     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_SLIDER_CHANGE);
1420     EXPECT_EQ(ret, static_cast<int32_t>(NODE_SLIDER_EVENT_ON_CHANGE));
1421     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_SWIPER_CHANGE);
1422     EXPECT_EQ(ret, static_cast<int32_t>(NODE_SWIPER_EVENT_ON_CHANGE));
1423     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_SWIPER_ANIMATION_START);
1424     EXPECT_EQ(ret, static_cast<int32_t>(NODE_SWIPER_EVENT_ON_ANIMATION_START));
1425     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_SWIPER_ANIMATION_END);
1426     EXPECT_EQ(ret, static_cast<int32_t>(NODE_SWIPER_EVENT_ON_ANIMATION_END));
1427     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_SWIPER_GESTURE_SWIPE);
1428     EXPECT_EQ(ret, static_cast<int32_t>(NODE_SWIPER_EVENT_ON_GESTURE_SWIPE));
1429     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_SWIPER_DID_CONTENT_SCROLL);
1430     EXPECT_EQ(ret, static_cast<int32_t>(NODE_SWIPER_EVENT_ON_CONTENT_DID_SCROLL));
1431     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_DETECT_RESULT_UPDATE);
1432     EXPECT_EQ(ret, static_cast<int32_t>(NODE_TEXT_ON_DETECT_RESULT_UPDATE));
1433     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_RADIO_CHANGE);
1434     EXPECT_EQ(ret, static_cast<int32_t>(NODE_RADIO_EVENT_ON_CHANGE));
1435     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_IMAGE_ANIMATOR_ON_START);
1436     EXPECT_EQ(ret, static_cast<int32_t>(NODE_IMAGE_ANIMATOR_EVENT_ON_START));
1437     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_IMAGE_ANIMATOR_ON_CANCEL);
1438     EXPECT_EQ(ret, static_cast<int32_t>(NODE_IMAGE_ANIMATOR_EVENT_ON_CANCEL));
1439     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_IMAGE_ANIMATOR_ON_PAUSE);
1440     EXPECT_EQ(ret, static_cast<int32_t>(NODE_IMAGE_ANIMATOR_EVENT_ON_PAUSE));
1441     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_IMAGE_ANIMATOR_ON_REPEAT);
1442     EXPECT_EQ(ret, static_cast<int32_t>(NODE_IMAGE_ANIMATOR_EVENT_ON_REPEAT));
1443     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_IMAGE_ANIMATOR_ON_FINISH);
1444     EXPECT_EQ(ret, static_cast<int32_t>(NODE_IMAGE_ANIMATOR_EVENT_ON_FINISH));
1445     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ArkUIEventSubKind::ON_KEY_EVENT);
1446     EXPECT_EQ(ret, static_cast<int32_t>(NODE_ON_KEY_EVENT));
1447     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ArkUIEventSubKind::ON_KEY_PREIME);
1448     EXPECT_EQ(ret, static_cast<int32_t>(NODE_ON_KEY_PRE_IME));
1449     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ArkUIEventSubKind::ON_KEY_DISPATCH);
1450     EXPECT_EQ(ret, static_cast<int32_t>(NODE_DISPATCH_KEY_EVENT));
1451     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ArkUIEventSubKind::ON_CLICK_EVENT);
1452     EXPECT_EQ(ret, static_cast<int32_t>(NODE_ON_CLICK_EVENT));
1453     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ArkUIEventSubKind::ON_HOVER_EVENT);
1454     EXPECT_EQ(ret, static_cast<int32_t>(NODE_ON_HOVER_EVENT));
1455     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ArkUIEventSubKind::ON_SWIPER_SELECTED);
1456     EXPECT_EQ(ret, static_cast<int32_t>(NODE_SWIPER_EVENT_ON_SELECTED));
1457     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ArkUIEventSubKind::ON_SWIPER_UNSELECTED);
1458     EXPECT_EQ(ret, static_cast<int32_t>(NODE_SWIPER_EVENT_ON_UNSELECTED));
1459     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ArkUIEventSubKind::ON_FOCUS_AXIS);
1460     EXPECT_EQ(ret, static_cast<int32_t>(NODE_ON_FOCUS_AXIS));
1461     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ArkUIEventSubKind::ON_CHECKBOX_GROUP_CHANGE);
1462     EXPECT_EQ(ret, static_cast<int32_t>(NODE_CHECKBOX_GROUP_EVENT_ON_CHANGE));
1463     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ArkUIEventSubKind::ON_AXIS);
1464     EXPECT_EQ(ret, static_cast<int32_t>(NODE_ON_AXIS));
1465 }
1466 
1467 /**
1468  * @tc.name: NativeNodeTest008
1469  * @tc.desc: Test textNode function.
1470  * @tc.type: FUNC
1471  */
1472 HWTEST_F(NativeNodeTest, NativeNodeTest008, TestSize.Level1)
1473 {
1474     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
1475         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
1476     auto rootNode = new ArkUI_Node({ARKUI_NODE_TEXT, nullptr, true});
1477     uint32_t color = 0XFFFF0000;
1478     float size = 10.0f;
1479     ArkUI_NumberValue value[] = {{.u32 = color}};
1480     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue)};
1481     ArkUI_NumberValue shadow[] = {{.f32 = size}, {.i32 = ARKUI_SHADOW_TYPE_COLOR}, {.u32 = color}, {.f32 = size},
1482         {.f32 = size}};
1483     ArkUI_AttributeItem shadowItem = {shadow, sizeof(shadow) / sizeof(ArkUI_NumberValue)};
1484     ArkUI_NumberValue fontValue[] = {{.f32 = size}, {.i32 = ARKUI_FONT_WEIGHT_NORMAL},
1485         {.i32 = ARKUI_FONT_STYLE_NORMAL}};
1486     ArkUI_AttributeItem fontItem = {fontValue, sizeof(fontValue) / sizeof(ArkUI_NumberValue)};
1487     ArkUI_NumberValue decoration[] = {{.i32 = ARKUI_TEXT_DECORATION_TYPE_UNDERLINE}, {.u32 = color},
1488         {.i32 = ARKUI_TEXT_DECORATION_STYLE_SOLID}};
1489     ArkUI_AttributeItem decorationItem = {decoration, sizeof(decoration) / sizeof(ArkUI_NumberValue)};
1490     nodeAPI->setAttribute(rootNode, NODE_FONT_COLOR, &item);
1491     nodeAPI->setAttribute(rootNode, NODE_TEXT_SELECTED_BACKGROUND_COLOR, &item);
1492     value[0].f32 = size;
1493     nodeAPI->setAttribute(rootNode, NODE_FONT_SIZE, &item);
1494     nodeAPI->setAttribute(rootNode, NODE_TEXT_BASELINE_OFFSET, &item);
1495     nodeAPI->setAttribute(rootNode, NODE_TEXT_MIN_FONT_SIZE, &item);
1496     nodeAPI->setAttribute(rootNode, NODE_TEXT_MAX_FONT_SIZE, &item);
1497     nodeAPI->setAttribute(rootNode, NODE_TEXT_FONT, &item);
1498     nodeAPI->setAttribute(rootNode, NODE_TEXT_LINE_HEIGHT, &item);
1499     nodeAPI->setAttribute(rootNode, NODE_TEXT_LETTER_SPACING, &item);
1500     nodeAPI->setAttribute(rootNode, NODE_TEXT_INDENT, &item);
1501     nodeAPI->setAttribute(rootNode, NODE_TEXT_LINE_SPACING, &item);
1502 
1503     value[0].i32 = ARKUI_FONT_WEIGHT_W100;
1504     nodeAPI->setAttribute(rootNode, NODE_FONT_WEIGHT, &item);
1505     value[0].i32 = ARKUI_FONT_STYLE_NORMAL;
1506     nodeAPI->setAttribute(rootNode, NODE_FONT_STYLE, &item);
1507     value[0].i32 = ARKUI_TEXT_HEIGHT_ADAPTIVE_POLICY_MAX_LINES_FIRST;
1508     nodeAPI->setAttribute(rootNode, NODE_TEXT_HEIGHT_ADAPTIVE_POLICY, &item);
1509     value[0].i32 = ARKUI_COPY_OPTIONS_NONE;
1510     nodeAPI->setAttribute(rootNode, NODE_TEXT_COPY_OPTION, &item);
1511     value[0].i32 = ARKUI_TEXT_DECORATION_TYPE_NONE;
1512     nodeAPI->setAttribute(rootNode, NODE_TEXT_DECORATION, &item);
1513     value[0].i32 = ARKUI_TEXT_CASE_NORMAL;
1514     nodeAPI->setAttribute(rootNode, NODE_TEXT_CASE, &item);
1515     value[0].i32 = 1;
1516     nodeAPI->setAttribute(rootNode, NODE_TEXT_MAX_LINES, &item);
1517     value[0].i32 = ARKUI_TEXT_ALIGNMENT_START;
1518     nodeAPI->setAttribute(rootNode, NODE_TEXT_ALIGN, &item);
1519     value[0].i32 = ARKUI_TEXT_OVERFLOW_NONE;
1520     nodeAPI->setAttribute(rootNode, NODE_TEXT_OVERFLOW, &item);
1521     value[0].i32 = ARKUI_WORD_BREAK_NORMAL;
1522     nodeAPI->setAttribute(rootNode, NODE_TEXT_WORD_BREAK, &item);
1523     value[0].i32 = ARKUI_ELLIPSIS_MODE_START;
1524     nodeAPI->setAttribute(rootNode, NODE_TEXT_ELLIPSIS_MODE, &item);
1525     value[0].i32 = ARKUI_TEXT_DATA_DETECTOR_TYPE_URL;
1526     nodeAPI->setAttribute(rootNode, NODE_TEXT_ENABLE_DATA_DETECTOR_CONFIG, &item);
1527 
1528     value[0].i32 = false;
1529     nodeAPI->setAttribute(rootNode, NODE_TEXT_ENABLE_DATA_DETECTOR, &item);
1530 
1531     item.string = "test";
1532     nodeAPI->setAttribute(rootNode, NODE_TEXT_FONT_FEATURE, &item);
1533 
1534     nodeAPI->setAttribute(rootNode, NODE_TEXT_TEXT_SHADOW, &shadowItem);
1535     nodeAPI->setAttribute(rootNode, NODE_TEXT_FONT, &fontItem);
1536     fontItem.string = "test";
1537     nodeAPI->setAttribute(rootNode, NODE_TEXT_FONT, &fontItem);
1538     nodeAPI->setAttribute(rootNode, NODE_FONT_FAMILY, &fontItem);
1539     nodeAPI->setAttribute(rootNode, NODE_TEXT_CONTENT, &fontItem);
1540     nodeAPI->setAttribute(rootNode, NODE_TEXT_DECORATION, &decorationItem);
1541     value[0].i32 = true;
1542     nodeAPI->setAttribute(rootNode, NODE_TEXT_HALF_LEADING, &item);
1543     decoration[2].i32 = -1;
1544     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_DECORATION, &decorationItem), ARKUI_ERROR_CODE_PARAM_INVALID);
1545 
1546     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_CONTENT), ARKUI_ERROR_CODE_NO_ERROR);
1547     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_FONT_COLOR), ARKUI_ERROR_CODE_NO_ERROR);
1548     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_FONT_SIZE), ARKUI_ERROR_CODE_NO_ERROR);
1549     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_FONT_STYLE), ARKUI_ERROR_CODE_NO_ERROR);
1550     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_FONT_WEIGHT), ARKUI_ERROR_CODE_NO_ERROR);
1551     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_LINE_HEIGHT), ARKUI_ERROR_CODE_NO_ERROR);
1552     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_DECORATION), ARKUI_ERROR_CODE_NO_ERROR);
1553     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_CASE), ARKUI_ERROR_CODE_NO_ERROR);
1554     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_LETTER_SPACING), ARKUI_ERROR_CODE_NO_ERROR);
1555     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_MAX_LINES), ARKUI_ERROR_CODE_NO_ERROR);
1556     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_ALIGN), ARKUI_ERROR_CODE_NO_ERROR);
1557     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_OVERFLOW), ARKUI_ERROR_CODE_NO_ERROR);
1558     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_FONT_FAMILY), ARKUI_ERROR_CODE_NO_ERROR);
1559     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_COPY_OPTION), ARKUI_ERROR_CODE_NO_ERROR);
1560     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_BASELINE_OFFSET), ARKUI_ERROR_CODE_NO_ERROR);
1561     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_TEXT_SHADOW), ARKUI_ERROR_CODE_NO_ERROR);
1562     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_MIN_FONT_SIZE), ARKUI_ERROR_CODE_NO_ERROR);
1563     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_MAX_FONT_SIZE), ARKUI_ERROR_CODE_NO_ERROR);
1564     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_FONT), ARKUI_ERROR_CODE_NO_ERROR);
1565     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_HEIGHT_ADAPTIVE_POLICY), ARKUI_ERROR_CODE_NO_ERROR);
1566     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_INDENT), ARKUI_ERROR_CODE_NO_ERROR);
1567     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_WORD_BREAK), ARKUI_ERROR_CODE_NO_ERROR);
1568     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_ELLIPSIS_MODE), ARKUI_ERROR_CODE_NO_ERROR);
1569     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_LINE_SPACING), ARKUI_ERROR_CODE_NO_ERROR);
1570     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_FONT_FEATURE), ARKUI_ERROR_CODE_NO_ERROR);
1571     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_ENABLE_DATA_DETECTOR), ARKUI_ERROR_CODE_NO_ERROR);
1572     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_ENABLE_DATA_DETECTOR_CONFIG), ARKUI_ERROR_CODE_NO_ERROR);
1573     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_SELECTED_BACKGROUND_COLOR), ARKUI_ERROR_CODE_NO_ERROR);
1574     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_CONTENT_WITH_STYLED_STRING), ARKUI_ERROR_CODE_NO_ERROR);
1575     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_HALF_LEADING), ARKUI_ERROR_CODE_NO_ERROR);
1576     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_CONTENT), nullptr);
1577     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_FONT_COLOR), nullptr);
1578     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_FONT_SIZE), nullptr);
1579     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_FONT_STYLE), nullptr);
1580     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_FONT_WEIGHT), nullptr);
1581     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_LINE_HEIGHT), nullptr);
1582     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_DECORATION), nullptr);
1583     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_CASE), nullptr);
1584     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_LETTER_SPACING), nullptr);
1585     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_MAX_LINES), nullptr);
1586     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_ALIGN), nullptr);
1587     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_OVERFLOW), nullptr);
1588     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_FONT_FAMILY), nullptr);
1589     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_COPY_OPTION), nullptr);
1590     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_BASELINE_OFFSET), nullptr);
1591     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_TEXT_SHADOW), nullptr);
1592     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_MIN_FONT_SIZE), nullptr);
1593     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_MAX_FONT_SIZE), nullptr);
1594     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_FONT), nullptr);
1595     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_HEIGHT_ADAPTIVE_POLICY), nullptr);
1596     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_INDENT), nullptr);
1597     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_WORD_BREAK), nullptr);
1598     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_ELLIPSIS_MODE), nullptr);
1599     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_LINE_SPACING), nullptr);
1600     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_FONT_FEATURE), nullptr);
1601     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_ENABLE_DATA_DETECTOR), nullptr);
1602     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_ENABLE_DATA_DETECTOR_CONFIG), nullptr);
1603     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_SELECTED_BACKGROUND_COLOR), nullptr);
1604     EXPECT_EQ(nodeAPI->getAttribute(rootNode, NODE_TEXT_CONTENT_WITH_STYLED_STRING), nullptr);
1605     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_HALF_LEADING), nullptr);
1606 
1607     value[0].i32 = ARKUI_FONT_WEIGHT_W100;
1608     nodeAPI->setAttribute(rootNode, NODE_IMMUTABLE_FONT_WEIGHT, &item);
1609     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_IMMUTABLE_FONT_WEIGHT), nullptr);
1610     nodeAPI->resetAttribute(rootNode, NODE_IMMUTABLE_FONT_WEIGHT);
1611     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_IMMUTABLE_FONT_WEIGHT), nullptr);
1612     nodeAPI->disposeNode(rootNode);
1613 }
1614 
1615 /**
1616  * @tc.name: NativeNodeTest009
1617  * @tc.desc: Test spanNode function.
1618  * @tc.type: FUNC
1619  */
1620 HWTEST_F(NativeNodeTest, NativeNodeTest009, TestSize.Level1)
1621 {
1622     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
1623         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
1624     auto rootNode = nodeAPI->createNode(ARKUI_NODE_SPAN);
1625     ASSERT_NE(rootNode, nullptr);
1626     uint32_t color = 0XFFFF0000;
1627     float size = 10.0f;
1628     ArkUI_NumberValue value[] = {{.u32 = color}};
1629     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue)};
1630     ArkUI_NumberValue shadow[] = {{.f32 = size}, {.i32 = ARKUI_SHADOW_TYPE_COLOR}, {.u32 = color}, {.f32 = size},
1631         {.f32 = size}};
1632     ArkUI_AttributeItem shadowItem = {shadow, sizeof(shadow) / sizeof(ArkUI_NumberValue)};
1633     ArkUI_NumberValue backgroundStyle[] = {{.u32 = color}, {.f32 = size}, {.f32 = size}, {.f32 = size},
1634         {.f32 = size}};
1635     ArkUI_AttributeItem backgroundStyleItem = {backgroundStyle, sizeof(backgroundStyle) / sizeof(ArkUI_NumberValue)};
1636     nodeAPI->setAttribute(rootNode, NODE_FONT_COLOR, &item);
1637     value[0].f32 = size;
1638     nodeAPI->setAttribute(rootNode, NODE_FONT_SIZE, &item);
1639     nodeAPI->setAttribute(rootNode, NODE_SPAN_BASELINE_OFFSET, &item);
1640     nodeAPI->setAttribute(rootNode, NODE_TEXT_LINE_HEIGHT, &item);
1641     nodeAPI->setAttribute(rootNode, NODE_TEXT_LETTER_SPACING, &item);
1642 
1643     value[0].i32 = ARKUI_FONT_WEIGHT_W100;
1644     nodeAPI->setAttribute(rootNode, NODE_FONT_WEIGHT, &item);
1645     value[0].i32 = ARKUI_FONT_STYLE_NORMAL;
1646     nodeAPI->setAttribute(rootNode, NODE_FONT_STYLE, &item);
1647     value[0].i32 = ARKUI_TEXT_DECORATION_TYPE_NONE;
1648     nodeAPI->setAttribute(rootNode, NODE_TEXT_DECORATION, &item);
1649     value[0].i32 = ARKUI_TEXT_CASE_NORMAL;
1650     nodeAPI->setAttribute(rootNode, NODE_TEXT_CASE, &item);
1651     item.string = "test";
1652     nodeAPI->setAttribute(rootNode, NODE_FONT_FAMILY, &item);
1653     nodeAPI->setAttribute(rootNode, NODE_SPAN_CONTENT, &item);
1654 
1655     nodeAPI->setAttribute(rootNode, NODE_TEXT_TEXT_SHADOW, &shadowItem);
1656     nodeAPI->setAttribute(rootNode, NODE_SPAN_TEXT_BACKGROUND_STYLE, &backgroundStyleItem);
1657     backgroundStyle[2].f32 = -1.0f;
1658     nodeAPI->setAttribute(rootNode, NODE_SPAN_TEXT_BACKGROUND_STYLE, &backgroundStyleItem);
1659     backgroundStyleItem.size = 2;
1660     nodeAPI->setAttribute(rootNode, NODE_SPAN_TEXT_BACKGROUND_STYLE, &backgroundStyleItem);
1661     backgroundStyle[1].f32 = -1.0f;
1662     nodeAPI->setAttribute(rootNode, NODE_SPAN_TEXT_BACKGROUND_STYLE, &backgroundStyleItem);
1663 
1664 
1665     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SPAN_CONTENT), ARKUI_ERROR_CODE_NO_ERROR);
1666     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SPAN_TEXT_BACKGROUND_STYLE), ARKUI_ERROR_CODE_NO_ERROR);
1667     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SPAN_BASELINE_OFFSET), ARKUI_ERROR_CODE_NO_ERROR);
1668     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_FONT_COLOR), ARKUI_ERROR_CODE_NO_ERROR);
1669     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_DECORATION), ARKUI_ERROR_CODE_NO_ERROR);
1670     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_FONT_SIZE), ARKUI_ERROR_CODE_NO_ERROR);
1671     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_FONT_STYLE), ARKUI_ERROR_CODE_NO_ERROR);
1672     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_FONT_WEIGHT), ARKUI_ERROR_CODE_NO_ERROR);
1673     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_LINE_HEIGHT), ARKUI_ERROR_CODE_NO_ERROR);
1674     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_CASE), ARKUI_ERROR_CODE_NO_ERROR);
1675     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_LETTER_SPACING), ARKUI_ERROR_CODE_NO_ERROR);
1676     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_FONT_FAMILY), ARKUI_ERROR_CODE_NO_ERROR);
1677     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_TEXT_SHADOW), ARKUI_ERROR_CODE_NO_ERROR);
1678 
1679     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_WIDTH, nullptr), ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED);
1680     EXPECT_EQ(nodeAPI->getAttribute(rootNode, NODE_WIDTH), nullptr);
1681     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_WIDTH), ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED);
1682 
1683     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SPAN_CONTENT), nullptr);
1684     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SPAN_TEXT_BACKGROUND_STYLE), nullptr);
1685     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SPAN_BASELINE_OFFSET), nullptr);
1686     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_FONT_COLOR), nullptr);
1687     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_DECORATION), nullptr);
1688     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_FONT_SIZE), nullptr);
1689     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_FONT_STYLE), nullptr);
1690     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_FONT_WEIGHT), nullptr);
1691     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_LINE_HEIGHT), nullptr);
1692     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_CASE), nullptr);
1693     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_LETTER_SPACING), nullptr);
1694     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_FONT_FAMILY), nullptr);
1695     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_TEXT_SHADOW), nullptr);
1696     nodeAPI->disposeNode(rootNode);
1697 }
1698 
1699 /**
1700  * @tc.name: NativeNodeTest010
1701  * @tc.desc: Test imageSpanNode function.
1702  * @tc.type: FUNC
1703  */
1704 HWTEST_F(NativeNodeTest, NativeNodeTest010, TestSize.Level1)
1705 {
1706     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
1707         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
1708     auto rootNode = new ArkUI_Node({ARKUI_NODE_IMAGE_SPAN, nullptr, true});
1709     ArkUI_NumberValue value[] = {{.i32 = ARKUI_IMAGE_SPAN_ALIGNMENT_BASELINE}};
1710     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue)};
1711     nodeAPI->setAttribute(rootNode, NODE_IMAGE_SPAN_VERTICAL_ALIGNMENT, &item);
1712     item.string = "test";
1713     nodeAPI->setAttribute(rootNode, NODE_IMAGE_SPAN_SRC, &item);
1714     value[0].f32 = 10.0f;
1715     nodeAPI->setAttribute(rootNode, NODE_IMAGE_SPAN_BASELINE_OFFSET, &item);
1716 
1717     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_IMAGE_SPAN_SRC), ARKUI_ERROR_CODE_NO_ERROR);
1718     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_IMAGE_SPAN_VERTICAL_ALIGNMENT), ARKUI_ERROR_CODE_NO_ERROR);
1719     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_IMAGE_SPAN_ALT), ARKUI_ERROR_CODE_NO_ERROR);
1720     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_IMAGE_SPAN_BASELINE_OFFSET), ARKUI_ERROR_CODE_NO_ERROR);
1721 
1722     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_IMAGE_SPAN_SRC), nullptr);
1723     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_IMAGE_SPAN_VERTICAL_ALIGNMENT), nullptr);
1724     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_IMAGE_SPAN_ALT), nullptr);
1725     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_IMAGE_SPAN_BASELINE_OFFSET), nullptr);
1726     nodeAPI->disposeNode(rootNode);
1727 }
1728 
1729 /**
1730  * @tc.name: NativeNodeTest011
1731  * @tc.desc: Test imageNode function.
1732  * @tc.type: FUNC
1733  */
1734 HWTEST_F(NativeNodeTest, NativeNodeTest011, TestSize.Level1)
1735 {
1736     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
1737         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
1738     auto rootNode = new ArkUI_Node({ARKUI_NODE_IMAGE, nullptr, true});
1739 
1740     float border = 10.0f;
1741     ArkUI_NumberValue value[] = {{.f32 = border}};
1742     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue)};
1743     ArkUI_NumberValue value20[] = {{.f32 = 1.0f}, {.f32 = 0.0f}, {.f32 = 0.0f}, {.f32 = 0.0f}, {.f32 = 0.0f},
1744         {.f32 = 0.0f}, {.f32 = 1.0f}, {.f32 = 0.0f}, {.f32 = 0.0f}, {.f32 = 0.0f},
1745         {.f32 = 0.0f}, {.f32 = 0.0f}, {.f32 = 1.0f}, {.f32 = 0.0f}, {.f32 = 0.0f},
1746         {.f32 = 0.0f}, {.f32 = 0.0f}, {.f32 = 0.0f}, {.f32 = 1.0f}, {.f32 = 0.0f}};
1747 
1748     ArkUI_AttributeItem item20 = {value20, sizeof(value20) / sizeof(ArkUI_NumberValue)};
1749     nodeAPI->setAttribute(rootNode, NODE_BORDER_RADIUS, &item);
1750     nodeAPI->setAttribute(rootNode, NODE_BORDER_RADIUS_PERCENT, &item);
1751     value[0].i32 = ARKUI_OBJECT_FIT_CONTAIN;
1752     nodeAPI->setAttribute(rootNode, NODE_IMAGE_OBJECT_FIT, &item);
1753     value[0].i32 = ARKUI_IMAGE_INTERPOLATION_NONE;
1754     nodeAPI->setAttribute(rootNode, NODE_IMAGE_INTERPOLATION, &item);
1755     value[0].i32 = ARKUI_IMAGE_REPEAT_X;
1756     nodeAPI->setAttribute(rootNode, NODE_IMAGE_OBJECT_REPEAT, &item);
1757     value[0].i32 = ARKUI_IMAGE_RENDER_MODE_ORIGINAL;
1758     nodeAPI->setAttribute(rootNode, NODE_IMAGE_RENDER_MODE, &item);
1759     value[0].i32 = 1;
1760     nodeAPI->setAttribute(rootNode, NODE_IMAGE_FIT_ORIGINAL_SIZE, &item);
1761 
1762     value[0].i32 = true;
1763     nodeAPI->setAttribute(rootNode, NODE_IMAGE_AUTO_RESIZE, &item);
1764     nodeAPI->setAttribute(rootNode, NODE_IMAGE_RESIZABLE, &item);
1765     nodeAPI->setAttribute(rootNode, NODE_IMAGE_DRAGGABLE, &item);
1766     nodeAPI->setAttribute(rootNode, NODE_IMAGE_SYNC_LOAD, &item);
1767 
1768     value[0].u32 = 0xFFFF0000;
1769     nodeAPI->setAttribute(rootNode, NODE_IMAGE_FILL_COLOR, &item);
1770 
1771     item.string = "test";
1772     nodeAPI->setAttribute(rootNode, NODE_IMAGE_SRC, &item);
1773     nodeAPI->setAttribute(rootNode, NODE_IMAGE_ALT, &item);
1774 
1775     nodeAPI->setAttribute(rootNode, NODE_IMAGE_COLOR_FILTER, &item20);
1776 
1777     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_IMAGE_SRC), ARKUI_ERROR_CODE_NO_ERROR);
1778     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_IMAGE_OBJECT_FIT), ARKUI_ERROR_CODE_NO_ERROR);
1779     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_IMAGE_INTERPOLATION), ARKUI_ERROR_CODE_NO_ERROR);
1780     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_IMAGE_OBJECT_REPEAT), ARKUI_ERROR_CODE_NO_ERROR);
1781     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_IMAGE_COLOR_FILTER), ARKUI_ERROR_CODE_NO_ERROR);
1782     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_IMAGE_AUTO_RESIZE), ARKUI_ERROR_CODE_NO_ERROR);
1783     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_IMAGE_ALT), ARKUI_ERROR_CODE_NO_ERROR);
1784     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_IMAGE_DRAGGABLE), ARKUI_ERROR_CODE_NO_ERROR);
1785     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_IMAGE_SYNC_LOAD), ARKUI_ERROR_CODE_NO_ERROR);
1786     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_IMAGE_RENDER_MODE), ARKUI_ERROR_CODE_NO_ERROR);
1787     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_IMAGE_FIT_ORIGINAL_SIZE), ARKUI_ERROR_CODE_NO_ERROR);
1788     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_IMAGE_FILL_COLOR), ARKUI_ERROR_CODE_NO_ERROR);
1789     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_IMAGE_RESIZABLE), ARKUI_ERROR_CODE_NO_ERROR);
1790     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_BORDER_RADIUS), ARKUI_ERROR_CODE_NO_ERROR);
1791     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_BORDER_RADIUS_PERCENT), ARKUI_ERROR_CODE_NO_ERROR);
1792 
1793     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_IMAGE_SRC), nullptr);
1794     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_IMAGE_OBJECT_FIT), nullptr);
1795     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_IMAGE_INTERPOLATION), nullptr);
1796     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_IMAGE_OBJECT_REPEAT), nullptr);
1797     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_IMAGE_COLOR_FILTER), nullptr);
1798     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_IMAGE_AUTO_RESIZE), nullptr);
1799     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_IMAGE_ALT), nullptr);
1800     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_IMAGE_DRAGGABLE), nullptr);
1801     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_IMAGE_SYNC_LOAD), nullptr);
1802     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_IMAGE_RENDER_MODE), nullptr);
1803     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_IMAGE_FILL_COLOR), nullptr);
1804     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_IMAGE_RESIZABLE), nullptr);
1805     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_IMAGE_FIT_ORIGINAL_SIZE), nullptr);
1806     nodeAPI->disposeNode(rootNode);
1807 }
1808 
1809 /**
1810  * @tc.name: NativeNodeTest012
1811  * @tc.desc: Test toggleNode function.
1812  * @tc.type: FUNC
1813  */
1814 HWTEST_F(NativeNodeTest, NativeNodeTest012, TestSize.Level1)
1815 {
1816     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
1817         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
1818     auto rootNode = nodeAPI->createNode(ARKUI_NODE_TOGGLE);
1819     ASSERT_NE(rootNode, nullptr);
1820     uint32_t color = 0XFFFF0000;
1821     ArkUI_NumberValue value[] = {{.u32 = color}};
1822     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue)};
1823     nodeAPI->setAttribute(rootNode, NODE_TOGGLE_SELECTED_COLOR, &item);
1824     nodeAPI->setAttribute(rootNode, NODE_TOGGLE_SWITCH_POINT_COLOR, &item);
1825     nodeAPI->setAttribute(rootNode, NODE_TOGGLE_VALUE, &item);
1826     nodeAPI->setAttribute(rootNode, NODE_TOGGLE_UNSELECTED_COLOR, &item);
1827     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TOGGLE_SELECTED_COLOR), ARKUI_ERROR_CODE_NO_ERROR);
1828     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TOGGLE_SWITCH_POINT_COLOR), ARKUI_ERROR_CODE_NO_ERROR);
1829     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TOGGLE_VALUE), ARKUI_ERROR_CODE_NO_ERROR);
1830     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TOGGLE_UNSELECTED_COLOR), ARKUI_ERROR_CODE_NO_ERROR);
1831 
1832     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TOGGLE_SELECTED_COLOR), nullptr);
1833     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TOGGLE_SWITCH_POINT_COLOR), nullptr);
1834     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TOGGLE_VALUE), nullptr);
1835     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TOGGLE_UNSELECTED_COLOR), nullptr);
1836     nodeAPI->disposeNode(rootNode);
1837 }
1838 
1839 /**
1840  * @tc.name: NativeNodeTest013
1841  * @tc.desc: Test loadingProgressNode function.
1842  * @tc.type: FUNC
1843  */
1844 HWTEST_F(NativeNodeTest, NativeNodeTest013, TestSize.Level1)
1845 {
1846     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
1847         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
1848     auto rootNode = new ArkUI_Node({ARKUI_NODE_LOADING_PROGRESS, nullptr, true});
1849     ASSERT_NE(rootNode, nullptr);
1850     uint32_t color = 0XFFFF0000;
1851     ArkUI_NumberValue value[] = {{.u32 = color}};
1852     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue)};
1853     nodeAPI->setAttribute(rootNode, NODE_LOADING_PROGRESS_COLOR, &item);
1854     value[0].i32 = true;
1855     nodeAPI->setAttribute(rootNode, NODE_LOADING_PROGRESS_ENABLE_LOADING, &item);
1856     value[0].i32 = -1;
1857     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_LOADING_PROGRESS_ENABLE_LOADING, &item),
1858         ARKUI_ERROR_CODE_PARAM_INVALID);
1859     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_LOADING_PROGRESS_COLOR), ARKUI_ERROR_CODE_NO_ERROR);
1860     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_LOADING_PROGRESS_ENABLE_LOADING), ARKUI_ERROR_CODE_NO_ERROR);
1861 
1862     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_LOADING_PROGRESS_COLOR), nullptr);
1863     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_LOADING_PROGRESS_ENABLE_LOADING), nullptr);
1864     nodeAPI->disposeNode(rootNode);
1865 }
1866 
1867 /**
1868  * @tc.name: NativeNodeTest014
1869  * @tc.desc: Test textinputNode function.
1870  * @tc.type: FUNC
1871  */
1872 HWTEST_F(NativeNodeTest, NativeNodeTest014, TestSize.Level1)
1873 {
1874     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
1875         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
1876     auto rootNode = new ArkUI_Node({ARKUI_NODE_TEXT_INPUT, nullptr, true});
1877     uint32_t color = 0XFFFF0000;
1878     float padding = 10.0f;
1879     ArkUI_NumberValue value[] = {{.u32 = color}};
1880     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue)};
1881     ArkUI_NumberValue value4[] = {{.u32 = color}, {.u32 = color}, {.u32 = color}, {.u32 = color}};
1882     ArkUI_AttributeItem item4 = {value4, sizeof(value4) / sizeof(ArkUI_NumberValue)};
1883     ArkUI_NumberValue fontValue[] = {{.f32 = padding}, {.i32 = ARKUI_FONT_STYLE_NORMAL},
1884         {.i32 = ARKUI_FONT_WEIGHT_W100}};
1885     ArkUI_AttributeItem fontItem = {fontValue, sizeof(fontValue) / sizeof(ArkUI_NumberValue)};
1886     ArkUI_NumberValue cancelBtn[] = {{.i32 = ARKUI_CANCELBUTTON_STYLE_CONSTANT}, {.f32 = padding}, {.u32 = color}};
1887     ArkUI_AttributeItem cancelBtnItem = {cancelBtn, sizeof(cancelBtn) / sizeof(ArkUI_NumberValue)};
1888     ArkUI_NumberValue selection[] = {{.i32 = 0}, {.i32 = 1}};
1889     ArkUI_AttributeItem selectionItem = {selection, sizeof(selection) / sizeof(ArkUI_NumberValue)};
1890     nodeAPI->setAttribute(rootNode, NODE_BACKGROUND_COLOR, &item);
1891     nodeAPI->setAttribute(rootNode, NODE_BORDER_COLOR, &item);
1892     nodeAPI->setAttribute(rootNode, NODE_FONT_COLOR, &item);
1893     nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_CARET_COLOR, &item);
1894     nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_PLACEHOLDER_COLOR, &item);
1895     nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_SELECTED_BACKGROUND_COLOR, &item);
1896     nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_UNDERLINE_COLOR, &item4);
1897     value[0].f32 = padding;
1898     nodeAPI->setAttribute(rootNode, NODE_PADDING, &item);
1899     nodeAPI->setAttribute(rootNode, NODE_MARGIN, &item);
1900     nodeAPI->setAttribute(rootNode, NODE_BORDER_WIDTH, &item);
1901     nodeAPI->setAttribute(rootNode, NODE_BORDER_RADIUS, &item);
1902     nodeAPI->setAttribute(rootNode, NODE_BORDER_WIDTH_PERCENT, &item);
1903     nodeAPI->setAttribute(rootNode, NODE_BORDER_RADIUS_PERCENT, &item);
1904     nodeAPI->setAttribute(rootNode, NODE_MARGIN_PERCENT, &item);
1905     nodeAPI->setAttribute(rootNode, NODE_FONT_SIZE, &item);
1906     nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_CARET_STYLE, &item);
1907     nodeAPI->setAttribute(rootNode, NODE_TEXT_MIN_FONT_SIZE, &item);
1908     nodeAPI->setAttribute(rootNode, NODE_TEXT_MAX_FONT_SIZE, &item);
1909     nodeAPI->setAttribute(rootNode, NODE_TEXT_LINE_HEIGHT, &item);
1910     value[0].i32 = ARKUI_BORDER_STYLE_SOLID;
1911     nodeAPI->setAttribute(rootNode, NODE_BORDER_STYLE, &item);
1912     value[0].i32 = ARKUI_FONT_WEIGHT_W100;
1913     nodeAPI->setAttribute(rootNode, NODE_FONT_WEIGHT, &item);
1914     value[0].i32 = ARKUI_FONT_STYLE_NORMAL;
1915     nodeAPI->setAttribute(rootNode, NODE_FONT_STYLE, &item);
1916     value[0].i32 = true;
1917     nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_SHOW_UNDERLINE, &item);
1918     nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_MAX_LENGTH, &item);
1919     nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_ENABLE_KEYBOARD_ON_FOCUS, &item);
1920     nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_SHOW_PASSWORD_ICON, &item);
1921     nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_EDITING, &item);
1922     nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_SELECTION_MENU_HIDDEN, &item);
1923     nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_ENABLE_AUTO_FILL, &item);
1924     nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_SELECT_ALL, &item);
1925     nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_CARET_OFFSET, &item);
1926     nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_NUMBER_OF_LINES, &item);
1927     nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_BLUR_ON_SUBMIT, &item);
1928     nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_SHOW_KEYBOARD_ON_FOCUS, &item);
1929     nodeAPI->setAttribute(rootNode, NODE_TEXT_MAX_LINES, &item);
1930     value[0].i32 = false;
1931     nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_EDITING, &item);
1932     value[0].i32 = ARKUI_ENTER_KEY_TYPE_GO;
1933     nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_ENTER_KEY_TYPE, &item);
1934     value[0].i32 = ARKUI_TEXTINPUT_TYPE_NORMAL;
1935     nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_TYPE, &item);
1936     value[0].i32 = ARKUI_TEXTINPUT_CONTENT_TYPE_USER_NAME;
1937     nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_CONTENT_TYPE, &item);
1938     value[0].i32 = ARKUI_TEXTINPUT_CONTENT_TYPE_FORMAT_ADDRESS;
1939     nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_CONTENT_TYPE, &item);
1940     value[0].i32 = ARKUI_TEXTINPUT_STYLE_DEFAULT;
1941     nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_STYLE, &item);
1942     value[0].i32 = ARKUI_WORD_BREAK_NORMAL;
1943     nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_WORD_BREAK, &item);
1944     value[0].i32 = ARKUI_TEXT_ALIGNMENT_START;
1945     nodeAPI->setAttribute(rootNode, NODE_TEXT_ALIGN, &item);
1946     item.string = "test";
1947     nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_PLACEHOLDER, &item);
1948     nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_TEXT, &item);
1949     nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_PASSWORD_RULES, &item);
1950     nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_INPUT_FILTER, &item);
1951     nodeAPI->setAttribute(rootNode, NODE_FONT_FAMILY, &item);
1952     nodeAPI->setAttribute(rootNode, NODE_TEXT_FONT_FEATURE, &item);
1953     item.object = rootNode;
1954     nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_CUSTOM_KEYBOARD, &item);
1955 
1956     nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_PLACEHOLDER_FONT, &fontItem);
1957     cancelBtnItem.size = 1;
1958     nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_CANCEL_BUTTON, &cancelBtnItem);
1959     cancelBtnItem.size = 2;
1960     nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_CANCEL_BUTTON, &cancelBtnItem);
1961     cancelBtnItem.size = sizeof(cancelBtn) / sizeof(ArkUI_NumberValue);
1962     nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_CANCEL_BUTTON, &cancelBtnItem);
1963     cancelBtnItem.string = "test";
1964     nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_CANCEL_BUTTON, &cancelBtnItem);
1965     nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_TEXT_SELECTION, &selectionItem);
1966     selection[0].i32 = 2;
1967     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_TEXT_SELECTION, &selectionItem),
1968         ARKUI_ERROR_CODE_PARAM_INVALID);
1969     value[0].f32 = 50;
1970     nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_LETTER_SPACING, &item);
1971     value[0].i32 = false;
1972     nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_ENABLE_PREVIEW_TEXT, &item);
1973     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_INPUT_PLACEHOLDER), ARKUI_ERROR_CODE_NO_ERROR);
1974     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_INPUT_TEXT), ARKUI_ERROR_CODE_NO_ERROR);
1975     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_INPUT_CARET_COLOR), ARKUI_ERROR_CODE_NO_ERROR);
1976     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_INPUT_CARET_STYLE), ARKUI_ERROR_CODE_NO_ERROR);
1977     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_INPUT_SHOW_UNDERLINE), ARKUI_ERROR_CODE_NO_ERROR);
1978     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_INPUT_MAX_LENGTH), ARKUI_ERROR_CODE_NO_ERROR);
1979     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_INPUT_ENTER_KEY_TYPE), ARKUI_ERROR_CODE_NO_ERROR);
1980     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_INPUT_PLACEHOLDER_COLOR), ARKUI_ERROR_CODE_NO_ERROR);
1981     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_INPUT_PLACEHOLDER_FONT), ARKUI_ERROR_CODE_NO_ERROR);
1982     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_INPUT_ENABLE_KEYBOARD_ON_FOCUS), ARKUI_ERROR_CODE_NO_ERROR);
1983     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_INPUT_TYPE), ARKUI_ERROR_CODE_NO_ERROR);
1984     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_INPUT_SELECTED_BACKGROUND_COLOR), ARKUI_ERROR_CODE_NO_ERROR);
1985     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_INPUT_SHOW_PASSWORD_ICON), ARKUI_ERROR_CODE_NO_ERROR);
1986     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_INPUT_CANCEL_BUTTON), ARKUI_ERROR_CODE_NO_ERROR);
1987     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_INPUT_TEXT_SELECTION), ARKUI_ERROR_CODE_NO_ERROR);
1988     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_INPUT_UNDERLINE_COLOR), ARKUI_ERROR_CODE_NO_ERROR);
1989     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_INPUT_ENABLE_AUTO_FILL), ARKUI_ERROR_CODE_NO_ERROR);
1990     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_INPUT_CONTENT_TYPE), ARKUI_ERROR_CODE_NO_ERROR);
1991     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_INPUT_PASSWORD_RULES), ARKUI_ERROR_CODE_NO_ERROR);
1992     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_INPUT_SELECT_ALL), ARKUI_ERROR_CODE_NO_ERROR);
1993     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_INPUT_INPUT_FILTER), ARKUI_ERROR_CODE_NO_ERROR);
1994     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_INPUT_STYLE), ARKUI_ERROR_CODE_NO_ERROR);
1995     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_INPUT_CARET_OFFSET), ARKUI_ERROR_CODE_NO_ERROR);
1996     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_INPUT_SELECTION_MENU_HIDDEN), ARKUI_ERROR_CODE_NO_ERROR);
1997     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_INPUT_BLUR_ON_SUBMIT), ARKUI_ERROR_CODE_NO_ERROR);
1998     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_INPUT_CUSTOM_KEYBOARD), ARKUI_ERROR_CODE_NO_ERROR);
1999     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_INPUT_WORD_BREAK), ARKUI_ERROR_CODE_NO_ERROR);
2000     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_INPUT_SHOW_KEYBOARD_ON_FOCUS), ARKUI_ERROR_CODE_NO_ERROR);
2001     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_INPUT_NUMBER_OF_LINES), ARKUI_ERROR_CODE_NO_ERROR);
2002     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_BACKGROUND_COLOR), ARKUI_ERROR_CODE_NO_ERROR);
2003     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_PADDING), ARKUI_ERROR_CODE_NO_ERROR);
2004     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_MARGIN), ARKUI_ERROR_CODE_NO_ERROR);
2005     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_BORDER_WIDTH), ARKUI_ERROR_CODE_NO_ERROR);
2006     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_BORDER_RADIUS), ARKUI_ERROR_CODE_NO_ERROR);
2007     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_BORDER_COLOR), ARKUI_ERROR_CODE_NO_ERROR);
2008     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_BORDER_STYLE), ARKUI_ERROR_CODE_NO_ERROR);
2009     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_FONT_COLOR), ARKUI_ERROR_CODE_NO_ERROR);
2010     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_FONT_SIZE), ARKUI_ERROR_CODE_NO_ERROR);
2011     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_FONT_STYLE), ARKUI_ERROR_CODE_NO_ERROR);
2012     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_FONT_WEIGHT), ARKUI_ERROR_CODE_NO_ERROR);
2013     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_FONT_FAMILY), ARKUI_ERROR_CODE_NO_ERROR);
2014     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_MIN_FONT_SIZE), ARKUI_ERROR_CODE_NO_ERROR);
2015     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_MAX_FONT_SIZE), ARKUI_ERROR_CODE_NO_ERROR);
2016     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_LINE_HEIGHT), ARKUI_ERROR_CODE_NO_ERROR);
2017     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_MAX_LINES), ARKUI_ERROR_CODE_NO_ERROR);
2018     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_ALIGN), ARKUI_ERROR_CODE_NO_ERROR);
2019     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_FONT_FEATURE), ARKUI_ERROR_CODE_NO_ERROR);
2020     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_INPUT_LETTER_SPACING), ARKUI_ERROR_CODE_NO_ERROR);
2021     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_INPUT_ENABLE_PREVIEW_TEXT), ARKUI_ERROR_CODE_NO_ERROR);
2022 
2023     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_INPUT_PLACEHOLDER), nullptr);
2024     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_INPUT_TEXT), nullptr);
2025     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_INPUT_CARET_COLOR), nullptr);
2026     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_INPUT_CARET_STYLE), nullptr);
2027     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_INPUT_SHOW_UNDERLINE), nullptr);
2028     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_INPUT_MAX_LENGTH), nullptr);
2029     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_INPUT_ENTER_KEY_TYPE), nullptr);
2030     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_INPUT_PLACEHOLDER_COLOR), nullptr);
2031     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_INPUT_PLACEHOLDER_FONT), nullptr);
2032     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_INPUT_ENABLE_KEYBOARD_ON_FOCUS), nullptr);
2033     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_INPUT_TYPE), nullptr);
2034     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_INPUT_SELECTED_BACKGROUND_COLOR), nullptr);
2035     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_INPUT_SHOW_PASSWORD_ICON), nullptr);
2036     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_INPUT_EDITING), nullptr);
2037     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_INPUT_CANCEL_BUTTON), nullptr);
2038     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_INPUT_TEXT_SELECTION), nullptr);
2039     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_INPUT_UNDERLINE_COLOR), nullptr);
2040     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_INPUT_ENABLE_AUTO_FILL), nullptr);
2041     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_INPUT_CONTENT_TYPE), nullptr);
2042     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_INPUT_PASSWORD_RULES), nullptr);
2043     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_INPUT_SELECT_ALL), nullptr);
2044     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_INPUT_INPUT_FILTER), nullptr);
2045     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_INPUT_STYLE), nullptr);
2046     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_INPUT_CARET_OFFSET), nullptr);
2047     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_INPUT_CONTENT_RECT), nullptr);
2048     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_INPUT_CONTENT_LINE_COUNT), nullptr);
2049     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_INPUT_SELECTION_MENU_HIDDEN), nullptr);
2050     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_INPUT_BLUR_ON_SUBMIT), nullptr);
2051     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_INPUT_CUSTOM_KEYBOARD), nullptr);
2052     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_INPUT_WORD_BREAK), nullptr);
2053     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_INPUT_SHOW_KEYBOARD_ON_FOCUS), nullptr);
2054     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_INPUT_NUMBER_OF_LINES), nullptr);
2055     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_BACKGROUND_COLOR), nullptr);
2056     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_PADDING), nullptr);
2057     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_MARGIN), nullptr);
2058     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_BORDER_WIDTH), nullptr);
2059     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_BORDER_RADIUS), nullptr);
2060     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_BORDER_COLOR), nullptr);
2061     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_BORDER_STYLE), nullptr);
2062     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_FONT_COLOR), nullptr);
2063     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_FONT_SIZE), nullptr);
2064     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_FONT_STYLE), nullptr);
2065     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_FONT_WEIGHT), nullptr);
2066     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_FONT_FAMILY), nullptr);
2067     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_MIN_FONT_SIZE), nullptr);
2068     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_MAX_FONT_SIZE), nullptr);
2069     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_LINE_HEIGHT), nullptr);
2070     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_MAX_LINES), nullptr);
2071     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_ALIGN), nullptr);
2072     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_FONT_FEATURE), nullptr);
2073     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_INPUT_LETTER_SPACING), nullptr);
2074     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_INPUT_ENABLE_PREVIEW_TEXT), nullptr);
2075     nodeAPI->disposeNode(rootNode);
2076 }
2077 
2078 /**
2079  * @tc.name: NativeNodeTest015
2080  * @tc.desc: Test textareaNode function.
2081  * @tc.type: FUNC
2082  */
2083 HWTEST_F(NativeNodeTest, NativeNodeTest015, TestSize.Level1)
2084 {
2085     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
2086         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
2087     auto rootNode = new ArkUI_Node({ARKUI_NODE_TEXT_AREA, nullptr, true});
2088     uint32_t color = 0XFFFF0000;
2089     float padding = 10.0f;
2090     ArkUI_NumberValue value[] = {{.u32 = color}};
2091     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue)};
2092     ArkUI_NumberValue fontValue[] = {{.f32 = padding}, {.i32 = ARKUI_FONT_STYLE_NORMAL},
2093         {.i32 = ARKUI_FONT_WEIGHT_W100}};
2094     ArkUI_AttributeItem fontItem = {fontValue, sizeof(fontValue) / sizeof(ArkUI_NumberValue)};
2095     ArkUI_NumberValue showCounter[] = {{.i32 = true}, {.f32 = 50}, {.i32 = true}};
2096     ArkUI_AttributeItem showCounterItem = {fontValue, sizeof(showCounter) / sizeof(ArkUI_NumberValue)};
2097     nodeAPI->setAttribute(rootNode, NODE_BACKGROUND_COLOR, &item);
2098     nodeAPI->setAttribute(rootNode, NODE_BORDER_COLOR, &item);
2099     nodeAPI->setAttribute(rootNode, NODE_FONT_COLOR, &item);
2100     nodeAPI->setAttribute(rootNode, NODE_TEXT_AREA_CARET_COLOR, &item);
2101     nodeAPI->setAttribute(rootNode, NODE_TEXT_AREA_PLACEHOLDER_COLOR, &item);
2102     value[0].f32 = padding;
2103     nodeAPI->setAttribute(rootNode, NODE_PADDING, &item);
2104     nodeAPI->setAttribute(rootNode, NODE_MARGIN, &item);
2105     nodeAPI->setAttribute(rootNode, NODE_BORDER_WIDTH, &item);
2106     nodeAPI->setAttribute(rootNode, NODE_BORDER_RADIUS, &item);
2107     nodeAPI->setAttribute(rootNode, NODE_BORDER_WIDTH_PERCENT, &item);
2108     nodeAPI->setAttribute(rootNode, NODE_BORDER_RADIUS_PERCENT, &item);
2109     nodeAPI->setAttribute(rootNode, NODE_MARGIN_PERCENT, &item);
2110     nodeAPI->setAttribute(rootNode, NODE_FONT_SIZE, &item);
2111     nodeAPI->setAttribute(rootNode, NODE_TEXT_MIN_FONT_SIZE, &item);
2112     nodeAPI->setAttribute(rootNode, NODE_TEXT_MAX_FONT_SIZE, &item);
2113     nodeAPI->setAttribute(rootNode, NODE_TEXT_LINE_HEIGHT, &item);
2114     value[0].i32 = ARKUI_BORDER_STYLE_SOLID;
2115     nodeAPI->setAttribute(rootNode, NODE_BORDER_STYLE, &item);
2116     value[0].i32 = ARKUI_FONT_WEIGHT_W100;
2117     nodeAPI->setAttribute(rootNode, NODE_FONT_WEIGHT, &item);
2118     value[0].i32 = ARKUI_FONT_STYLE_NORMAL;
2119     nodeAPI->setAttribute(rootNode, NODE_FONT_STYLE, &item);
2120     value[0].i32 = ARKUI_TEXTAREA_TYPE_NORMAL;
2121     nodeAPI->setAttribute(rootNode, NODE_TEXT_AREA_TYPE, &item);
2122     value[0].i32 = ARKUI_TEXT_ALIGNMENT_START;
2123     nodeAPI->setAttribute(rootNode, NODE_TEXT_ALIGN, &item);
2124     value[0].i32 = true;
2125     nodeAPI->setAttribute(rootNode, NODE_TEXT_AREA_MAX_LENGTH, &item);
2126     nodeAPI->setAttribute(rootNode, NODE_TEXT_AREA_EDITING, &item);
2127     nodeAPI->setAttribute(rootNode, NODE_TEXT_AREA_SELECTION_MENU_HIDDEN, &item);
2128     nodeAPI->setAttribute(rootNode, NODE_TEXT_MAX_LINES, &item);
2129     value[0].i32 = false;
2130     nodeAPI->setAttribute(rootNode, NODE_TEXT_AREA_EDITING, &item);
2131 
2132     item.string = "test";
2133     nodeAPI->setAttribute(rootNode, NODE_TEXT_AREA_PLACEHOLDER, &item);
2134     nodeAPI->setAttribute(rootNode, NODE_TEXT_AREA_TEXT, &item);
2135     nodeAPI->setAttribute(rootNode, NODE_FONT_FAMILY, &item);
2136     nodeAPI->setAttribute(rootNode, NODE_TEXT_FONT_FEATURE, &item);
2137 
2138     nodeAPI->setAttribute(rootNode, NODE_TEXT_AREA_PLACEHOLDER_FONT, &fontItem);
2139     nodeAPI->setAttribute(rootNode, NODE_TEXT_AREA_SHOW_COUNTER, &showCounterItem);
2140     value[0].f32 = 50;
2141     nodeAPI->setAttribute(rootNode, NODE_TEXT_AREA_LETTER_SPACING, &item);
2142     value[0].i32 = false;
2143     nodeAPI->setAttribute(rootNode, NODE_TEXT_AREA_ENABLE_PREVIEW_TEXT, &item);
2144     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_AREA_PLACEHOLDER), ARKUI_ERROR_CODE_NO_ERROR);
2145     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_AREA_TEXT), ARKUI_ERROR_CODE_NO_ERROR);
2146     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_AREA_MAX_LENGTH), ARKUI_ERROR_CODE_NO_ERROR);
2147     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_AREA_PLACEHOLDER_COLOR), ARKUI_ERROR_CODE_NO_ERROR);
2148     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_AREA_PLACEHOLDER_FONT), ARKUI_ERROR_CODE_NO_ERROR);
2149     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_AREA_CARET_COLOR), ARKUI_ERROR_CODE_NO_ERROR);
2150     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_AREA_TYPE), ARKUI_ERROR_CODE_NO_ERROR);
2151     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_AREA_SHOW_COUNTER), ARKUI_ERROR_CODE_NO_ERROR);
2152     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_AREA_SELECTION_MENU_HIDDEN), ARKUI_ERROR_CODE_NO_ERROR);
2153     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_AREA_BLUR_ON_SUBMIT), ARKUI_ERROR_CODE_NO_ERROR);
2154     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_AREA_INPUT_FILTER), ARKUI_ERROR_CODE_NO_ERROR);
2155     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_AREA_SELECTED_BACKGROUND_COLOR), ARKUI_ERROR_CODE_NO_ERROR);
2156     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_AREA_ENTER_KEY_TYPE), ARKUI_ERROR_CODE_NO_ERROR);
2157     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_AREA_ENABLE_KEYBOARD_ON_FOCUS), ARKUI_ERROR_CODE_NO_ERROR);
2158     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_AREA_CARET_OFFSET), ARKUI_ERROR_CODE_NO_ERROR);
2159     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_AREA_TEXT_SELECTION), ARKUI_ERROR_CODE_NO_ERROR);
2160     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_AREA_ENABLE_AUTO_FILL), ARKUI_ERROR_CODE_NO_ERROR);
2161     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_AREA_CONTENT_TYPE), ARKUI_ERROR_CODE_NO_ERROR);
2162     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_AREA_SHOW_KEYBOARD_ON_FOCUS), ARKUI_ERROR_CODE_NO_ERROR);
2163     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_AREA_NUMBER_OF_LINES), ARKUI_ERROR_CODE_NO_ERROR);
2164     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_BACKGROUND_COLOR), ARKUI_ERROR_CODE_NO_ERROR);
2165     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_MARGIN), ARKUI_ERROR_CODE_NO_ERROR);
2166     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_BORDER_WIDTH), ARKUI_ERROR_CODE_NO_ERROR);
2167     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_BORDER_RADIUS), ARKUI_ERROR_CODE_NO_ERROR);
2168     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_BORDER_COLOR), ARKUI_ERROR_CODE_NO_ERROR);
2169     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_BORDER_STYLE), ARKUI_ERROR_CODE_NO_ERROR);
2170     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_FONT_COLOR), ARKUI_ERROR_CODE_NO_ERROR);
2171     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_FONT_SIZE), ARKUI_ERROR_CODE_NO_ERROR);
2172     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_FONT_STYLE), ARKUI_ERROR_CODE_NO_ERROR);
2173     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_FONT_WEIGHT), ARKUI_ERROR_CODE_NO_ERROR);
2174     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_FONT_FAMILY), ARKUI_ERROR_CODE_NO_ERROR);
2175     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_MIN_FONT_SIZE), ARKUI_ERROR_CODE_NO_ERROR);
2176     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_MAX_FONT_SIZE), ARKUI_ERROR_CODE_NO_ERROR);
2177     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_LINE_HEIGHT), ARKUI_ERROR_CODE_NO_ERROR);
2178     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_MAX_LINES), ARKUI_ERROR_CODE_NO_ERROR);
2179     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_ALIGN), ARKUI_ERROR_CODE_NO_ERROR);
2180     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_FONT_FEATURE), ARKUI_ERROR_CODE_NO_ERROR);
2181     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_AREA_LETTER_SPACING), ARKUI_ERROR_CODE_NO_ERROR);
2182     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_AREA_ENABLE_PREVIEW_TEXT), ARKUI_ERROR_CODE_NO_ERROR);
2183 
2184     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_AREA_PLACEHOLDER), nullptr);
2185     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_AREA_TEXT), nullptr);
2186     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_AREA_MAX_LENGTH), nullptr);
2187     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_AREA_PLACEHOLDER_COLOR), nullptr);
2188     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_AREA_PLACEHOLDER_FONT), nullptr);
2189     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_AREA_CARET_COLOR), nullptr);
2190     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_AREA_EDITING), nullptr);
2191     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_AREA_TYPE), nullptr);
2192     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_AREA_SHOW_COUNTER), nullptr);
2193     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_AREA_SELECTION_MENU_HIDDEN), nullptr);
2194     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_AREA_BLUR_ON_SUBMIT), nullptr);
2195     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_AREA_INPUT_FILTER), nullptr);
2196     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_AREA_SELECTED_BACKGROUND_COLOR), nullptr);
2197     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_AREA_ENTER_KEY_TYPE), nullptr);
2198     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_AREA_ENABLE_KEYBOARD_ON_FOCUS), nullptr);
2199     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_AREA_CARET_OFFSET), nullptr);
2200     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_AREA_CONTENT_RECT), nullptr);
2201     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_AREA_CONTENT_LINE_COUNT), nullptr);
2202     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_AREA_TEXT_SELECTION), nullptr);
2203     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_AREA_ENABLE_AUTO_FILL), nullptr);
2204     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_AREA_CONTENT_TYPE), nullptr);
2205     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_AREA_SHOW_KEYBOARD_ON_FOCUS), nullptr);
2206     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_AREA_NUMBER_OF_LINES), nullptr);
2207     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_BACKGROUND_COLOR), nullptr);
2208     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_PADDING), nullptr);
2209     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_MARGIN), nullptr);
2210     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_BORDER_WIDTH), nullptr);
2211     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_BORDER_RADIUS), nullptr);
2212     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_BORDER_COLOR), nullptr);
2213     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_BORDER_STYLE), nullptr);
2214     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_FONT_COLOR), nullptr);
2215     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_FONT_SIZE), nullptr);
2216     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_FONT_STYLE), nullptr);
2217     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_FONT_WEIGHT), nullptr);
2218     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_FONT_FAMILY), nullptr);
2219     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_MIN_FONT_SIZE), nullptr);
2220     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_MAX_FONT_SIZE), nullptr);
2221     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_LINE_HEIGHT), nullptr);
2222     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_MAX_LINES), nullptr);
2223     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_ALIGN), nullptr);
2224     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_FONT_FEATURE), nullptr);
2225     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_AREA_LETTER_SPACING), nullptr);
2226     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_AREA_ENABLE_PREVIEW_TEXT), nullptr);
2227     nodeAPI->disposeNode(rootNode);
2228 }
2229 
2230 /**
2231  * @tc.name: NativeNodeTest016
2232  * @tc.desc: Test buttonNode function.
2233  * @tc.type: FUNC
2234  */
2235 HWTEST_F(NativeNodeTest, NativeNodeTest016, TestSize.Level1)
2236 {
2237     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
2238         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
2239     auto rootNode = new ArkUI_Node({ARKUI_NODE_BUTTON, nullptr, true});
2240     ArkUI_NumberValue value[] = {{.f32 = 10.0f}};
2241     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue), "test", nullptr};
2242     nodeAPI->setAttribute(rootNode, NODE_BUTTON_LABEL, &item);
2243     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_BUTTON_LABEL), nullptr);
2244     nodeAPI->setAttribute(rootNode, NODE_FONT_SIZE, &item);
2245     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_FONT_SIZE), nullptr);
2246     value[0].i32 = ARKUI_BUTTON_TYPE_NORMAL;
2247     nodeAPI->setAttribute(rootNode, NODE_BUTTON_TYPE, &item);
2248     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_BUTTON_TYPE), nullptr);
2249     value[0].i32 = ARKUI_FONT_WEIGHT_W100;
2250     nodeAPI->setAttribute(rootNode, NODE_FONT_WEIGHT, &item);
2251     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_FONT_WEIGHT), nullptr);
2252     value[0].u32 = 0xFFFF0000;
2253     nodeAPI->setAttribute(rootNode, NODE_BACKGROUND_COLOR, &item);
2254     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_BACKGROUND_COLOR), nullptr);
2255     nodeAPI->setAttribute(rootNode, NODE_FONT_COLOR, &item);
2256     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_FONT_COLOR), nullptr);
2257 
2258     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_BUTTON_LABEL), ARKUI_ERROR_CODE_NO_ERROR);
2259     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_BUTTON_TYPE), ARKUI_ERROR_CODE_NO_ERROR);
2260     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_BACKGROUND_COLOR), ARKUI_ERROR_CODE_NO_ERROR);
2261     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_FONT_COLOR), ARKUI_ERROR_CODE_NO_ERROR);
2262     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_FONT_SIZE), ARKUI_ERROR_CODE_NO_ERROR);
2263     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_FONT_WEIGHT), ARKUI_ERROR_CODE_NO_ERROR);
2264     nodeAPI->disposeNode(rootNode);
2265 }
2266 
2267 /**
2268  * @tc.name: NativeNodeTest017
2269  * @tc.desc: Test progressNode function.
2270  * @tc.type: FUNC
2271  */
2272 HWTEST_F(NativeNodeTest, NativeNodeTest017, TestSize.Level1)
2273 {
2274     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
2275         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
2276     auto rootNode = nodeAPI->createNode(ARKUI_NODE_PROGRESS);
2277     ASSERT_NE(rootNode, nullptr);
2278     ArkUI_NumberValue value[] = {{.f32 = 10.0f}};
2279     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue)};
2280     nodeAPI->setAttribute(rootNode, NODE_PROGRESS_VALUE, &item);
2281     nodeAPI->setAttribute(rootNode, NODE_PROGRESS_TOTAL, &item);
2282     nodeAPI->setAttribute(rootNode, NODE_PROGRESS_COLOR, &item);
2283     value[0].i32 = ARKUI_PROGRESS_TYPE_LINEAR;
2284     nodeAPI->setAttribute(rootNode, NODE_PROGRESS_TYPE, &item);
2285     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_PROGRESS_VALUE), ARKUI_ERROR_CODE_NO_ERROR);
2286     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_PROGRESS_TOTAL), ARKUI_ERROR_CODE_NO_ERROR);
2287     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_PROGRESS_COLOR), ARKUI_ERROR_CODE_NO_ERROR);
2288     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_PROGRESS_TYPE), ARKUI_ERROR_CODE_NO_ERROR);
2289 
2290     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_PROGRESS_VALUE), nullptr);
2291     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_PROGRESS_TOTAL), nullptr);
2292     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_PROGRESS_COLOR), nullptr);
2293     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_PROGRESS_TYPE), nullptr);
2294     nodeAPI->disposeNode(rootNode);
2295 }
2296 
2297 /**
2298  * @tc.name: NativeNodeTest018
2299  * @tc.desc: Test checkboxNode function.
2300  * @tc.type: FUNC
2301  */
2302 HWTEST_F(NativeNodeTest, NativeNodeTest018, TestSize.Level1)
2303 {
2304     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
2305         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
2306     auto rootNode = nodeAPI->createNode(ARKUI_NODE_CHECKBOX);
2307     ASSERT_NE(rootNode, nullptr);
2308     float size = 10.0f;
2309     uint32_t color = 0xFFFF0000;
2310     ArkUI_NumberValue value[] = {{.i32 = true}};
2311     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue)};
2312     ArkUI_NumberValue mark[] = {{.u32 = color}, {.f32 = size}, {.f32 = size}};
2313     ArkUI_AttributeItem markItem = {mark, sizeof(mark) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
2314     nodeAPI->setAttribute(rootNode, NODE_CHECKBOX_SELECT, &item);
2315     value[0].u32 = color;
2316     nodeAPI->setAttribute(rootNode, NODE_CHECKBOX_SELECT_COLOR, &item);
2317     nodeAPI->setAttribute(rootNode, NODE_CHECKBOX_UNSELECT_COLOR, &item);
2318     nodeAPI->setAttribute(rootNode, NODE_CHECKBOX_MARK, &item);
2319     value[0].i32 = ArkUI_CHECKBOX_SHAPE_CIRCLE;
2320     nodeAPI->setAttribute(rootNode, NODE_CHECKBOX_SHAPE, &item);
2321     nodeAPI->setAttribute(rootNode, NODE_CHECKBOX_MARK, &markItem);
2322     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_CHECKBOX_SELECT), ARKUI_ERROR_CODE_NO_ERROR);
2323     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_CHECKBOX_SELECT_COLOR), ARKUI_ERROR_CODE_NO_ERROR);
2324     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_CHECKBOX_UNSELECT_COLOR), ARKUI_ERROR_CODE_NO_ERROR);
2325     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_CHECKBOX_MARK), ARKUI_ERROR_CODE_NO_ERROR);
2326     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_CHECKBOX_SHAPE), ARKUI_ERROR_CODE_NO_ERROR);
2327 
2328     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_CHECKBOX_SELECT), nullptr);
2329     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_CHECKBOX_SELECT_COLOR), nullptr);
2330     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_CHECKBOX_UNSELECT_COLOR), nullptr);
2331     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_CHECKBOX_MARK), nullptr);
2332     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_CHECKBOX_SHAPE), nullptr);
2333     nodeAPI->disposeNode(rootNode);
2334 }
2335 
2336 /**
2337  * @tc.name: NativeNodeTest019
2338  * @tc.desc: Test xcomponentNode function.
2339  * @tc.type: FUNC
2340  */
2341 HWTEST_F(NativeNodeTest, NativeNodeTest019, TestSize.Level1)
2342 {
2343     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
2344         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
2345     auto rootNode = nodeAPI->createNode(ARKUI_NODE_XCOMPONENT);
2346     ASSERT_NE(rootNode, nullptr);
2347 
2348     ArkUI_NumberValue value[] = {{.i32 = ARKUI_XCOMPONENT_TYPE_SURFACE}, {.f32 = 10.0f}};
2349     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue), "test"};
2350     nodeAPI->setAttribute(rootNode, NODE_XCOMPONENT_ID, &item);
2351     nodeAPI->setAttribute(rootNode, NODE_XCOMPONENT_TYPE, &item);
2352     value[0].i32 = ARKUI_XCOMPONENT_TYPE_TEXTURE;
2353     nodeAPI->setAttribute(rootNode, NODE_XCOMPONENT_TYPE, &item);
2354 
2355     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_XCOMPONENT_TYPE), ARKUI_ERROR_CODE_NO_ERROR);
2356 
2357     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_XCOMPONENT_ID), nullptr);
2358     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_XCOMPONENT_TYPE), nullptr);
2359     nodeAPI->disposeNode(rootNode);
2360 }
2361 
2362 /**
2363  * @tc.name: NativeNodeTest020
2364  * @tc.desc: Test datePickerNode function.
2365  * @tc.type: FUNC
2366  */
2367 HWTEST_F(NativeNodeTest, NativeNodeTest020, TestSize.Level1)
2368 {
2369     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
2370         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
2371 
2372     auto rootNode = new ArkUI_Node({ARKUI_NODE_DATE_PICKER, nullptr, true});
2373     ArkUI_NumberValue value[] = {{.i32 = true}};
2374     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
2375     nodeAPI->setAttribute(rootNode, NODE_DATE_PICKER_LUNAR, &item);
2376     item.string = "1970-1-1";
2377     nodeAPI->setAttribute(rootNode, NODE_DATE_PICKER_START, &item);
2378     nodeAPI->setAttribute(rootNode, NODE_DATE_PICKER_END, &item);
2379     nodeAPI->setAttribute(rootNode, NODE_DATE_PICKER_SELECTED, &item);
2380     item.string = "#ff182431;14;normal;Arial;normal";
2381     nodeAPI->setAttribute(rootNode, NODE_DATE_PICKER_DISAPPEAR_TEXT_STYLE, &item);
2382     nodeAPI->setAttribute(rootNode, NODE_DATE_PICKER_TEXT_STYLE, &item);
2383     nodeAPI->setAttribute(rootNode, NODE_DATE_PICKER_CAN_LOOP, &item);
2384     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_DATE_PICKER_SELECTED_TEXT_STYLE, &item),
2385         ARKUI_ERROR_CODE_NO_ERROR);
2386     item.string = "#ff182431;14;normal;Arial;test";
2387     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_DATE_PICKER_SELECTED_TEXT_STYLE, &item),
2388         ARKUI_ERROR_CODE_NO_ERROR);
2389     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_DATE_PICKER_LUNAR), ARKUI_ERROR_CODE_NO_ERROR);
2390     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_DATE_PICKER_START), ARKUI_ERROR_CODE_NO_ERROR);
2391     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_DATE_PICKER_END), ARKUI_ERROR_CODE_NO_ERROR);
2392     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_DATE_PICKER_SELECTED), ARKUI_ERROR_CODE_NO_ERROR);
2393     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_DATE_PICKER_DISAPPEAR_TEXT_STYLE), ARKUI_ERROR_CODE_NO_ERROR);
2394     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_DATE_PICKER_TEXT_STYLE), ARKUI_ERROR_CODE_NO_ERROR);
2395     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_DATE_PICKER_SELECTED_TEXT_STYLE), ARKUI_ERROR_CODE_NO_ERROR);
2396     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_DATE_PICKER_CAN_LOOP), ARKUI_ERROR_CODE_NO_ERROR);
2397 
2398     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_DATE_PICKER_LUNAR), nullptr);
2399     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_DATE_PICKER_START), nullptr);
2400     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_DATE_PICKER_END), nullptr);
2401     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_DATE_PICKER_SELECTED), nullptr);
2402     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_DATE_PICKER_DISAPPEAR_TEXT_STYLE), nullptr);
2403     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_DATE_PICKER_TEXT_STYLE), nullptr);
2404     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_DATE_PICKER_SELECTED_TEXT_STYLE), nullptr);
2405     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_DATE_PICKER_CAN_LOOP), nullptr);
2406     nodeAPI->disposeNode(rootNode);
2407 }
2408 
2409 /**
2410  * @tc.name: NativeNodeTest021
2411  * @tc.desc: Test timePickerNode function.
2412  * @tc.type: FUNC
2413  */
2414 HWTEST_F(NativeNodeTest, NativeNodeTest021, TestSize.Level1)
2415 {
2416     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
2417         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
2418     auto rootNode = new ArkUI_Node({ARKUI_NODE_TIME_PICKER, nullptr, true});
2419     ArkUI_NumberValue value[] = {{.i32 = true}};
2420     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
2421     item.string = "11-59";
2422     nodeAPI->setAttribute(rootNode, NODE_TIME_PICKER_SELECTED, &item);
2423     nodeAPI->setAttribute(rootNode, NODE_TIME_PICKER_USE_MILITARY_TIME, &item);
2424     item.string = "#ff182431;14;normal;Arial;normal";
2425     nodeAPI->setAttribute(rootNode, NODE_TIME_PICKER_DISAPPEAR_TEXT_STYLE, &item);
2426     nodeAPI->setAttribute(rootNode, NODE_TIME_PICKER_TEXT_STYLE, &item);
2427     nodeAPI->setAttribute(rootNode, NODE_TIME_PICKER_SELECTED_TEXT_STYLE, &item);
2428     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TIME_PICKER_SELECTED), ARKUI_ERROR_CODE_NO_ERROR);
2429     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TIME_PICKER_USE_MILITARY_TIME), ARKUI_ERROR_CODE_NO_ERROR);
2430     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TIME_PICKER_DISAPPEAR_TEXT_STYLE), ARKUI_ERROR_CODE_NO_ERROR);
2431     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TIME_PICKER_TEXT_STYLE), ARKUI_ERROR_CODE_NO_ERROR);
2432     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TIME_PICKER_SELECTED_TEXT_STYLE), ARKUI_ERROR_CODE_NO_ERROR);
2433 
2434     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TIME_PICKER_SELECTED), nullptr);
2435     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TIME_PICKER_USE_MILITARY_TIME), nullptr);
2436     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TIME_PICKER_DISAPPEAR_TEXT_STYLE), nullptr);
2437     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TIME_PICKER_TEXT_STYLE), nullptr);
2438     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TIME_PICKER_SELECTED_TEXT_STYLE), nullptr);
2439     nodeAPI->disposeNode(rootNode);
2440 }
2441 
2442 /**
2443  * @tc.name: NativeNodeTest022
2444  * @tc.desc: Test textPickerNode function.
2445  * @tc.type: FUNC
2446  */
2447 HWTEST_F(NativeNodeTest, NativeNodeTest022, TestSize.Level1)
2448 {
2449     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
2450         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
2451     auto rootNode = new ArkUI_Node({ARKUI_NODE_TEXT_PICKER, nullptr, true});
2452     ArkUI_NumberValue value[] = {{.i32 = ARKUI_TEXTPICKER_RANGETYPE_SINGLE}};
2453     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
2454     item.string = "1;2;3";
2455     nodeAPI->setAttribute(rootNode, NODE_TEXT_PICKER_OPTION_RANGE, &item);
2456     nodeAPI->setAttribute(rootNode, NODE_TEXT_PICKER_OPTION_VALUE, &item);
2457     item.string = "#ff182431;14;normal;Arial;normal";
2458     nodeAPI->setAttribute(rootNode, NODE_TEXT_PICKER_DISAPPEAR_TEXT_STYLE, &item);
2459     nodeAPI->setAttribute(rootNode, NODE_TEXT_PICKER_TEXT_STYLE, &item);
2460     nodeAPI->setAttribute(rootNode, NODE_TEXT_PICKER_SELECTED_TEXT_STYLE, &item);
2461 
2462     value[0].u32 = 0;
2463     nodeAPI->setAttribute(rootNode, NODE_TEXT_PICKER_OPTION_SELECTED, &item);
2464     value[0].i32 = 0;
2465     nodeAPI->setAttribute(rootNode, NODE_TEXT_PICKER_CAN_LOOP, &item);
2466     nodeAPI->setAttribute(rootNode, NODE_TEXT_PICKER_SELECTED_INDEX, &item);
2467 
2468     value[0].f32 = 10.0f;
2469     nodeAPI->setAttribute(rootNode, NODE_TEXT_PICKER_DEFAULT_PICKER_ITEM_HEIGHT, &item);
2470     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_PICKER_OPTION_RANGE), ARKUI_ERROR_CODE_NO_ERROR);
2471     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_PICKER_OPTION_SELECTED), ARKUI_ERROR_CODE_NO_ERROR);
2472     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_PICKER_OPTION_VALUE), ARKUI_ERROR_CODE_NO_ERROR);
2473     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_PICKER_DISAPPEAR_TEXT_STYLE), ARKUI_ERROR_CODE_NO_ERROR);
2474     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_PICKER_TEXT_STYLE), ARKUI_ERROR_CODE_NO_ERROR);
2475     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_PICKER_SELECTED_TEXT_STYLE), ARKUI_ERROR_CODE_NO_ERROR);
2476     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_PICKER_SELECTED_INDEX), ARKUI_ERROR_CODE_NO_ERROR);
2477     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_TEXT_PICKER_CAN_LOOP), ARKUI_ERROR_CODE_NO_ERROR);
2478     EXPECT_EQ(nodeAPI->resetAttribute(
2479         rootNode, NODE_TEXT_PICKER_DEFAULT_PICKER_ITEM_HEIGHT), ARKUI_ERROR_CODE_NO_ERROR);
2480 
2481     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_PICKER_OPTION_RANGE), nullptr);
2482     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_PICKER_OPTION_SELECTED), nullptr);
2483     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_PICKER_OPTION_VALUE), nullptr);
2484     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_PICKER_DISAPPEAR_TEXT_STYLE), nullptr);
2485     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_PICKER_TEXT_STYLE), nullptr);
2486     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_PICKER_SELECTED_TEXT_STYLE), nullptr);
2487     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_PICKER_SELECTED_INDEX), nullptr);
2488     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_PICKER_CAN_LOOP), nullptr);
2489     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_PICKER_DEFAULT_PICKER_ITEM_HEIGHT), nullptr);
2490     nodeAPI->disposeNode(rootNode);
2491 }
2492 
2493 /**
2494  * @tc.name: NativeNodeTest023
2495  * @tc.desc: Test calendarPickerNode function.
2496  * @tc.type: FUNC
2497  */
2498 HWTEST_F(NativeNodeTest, NativeNodeTest023, TestSize.Level1)
2499 {
2500     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
2501         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
2502     auto rootNode = new ArkUI_Node({ARKUI_NODE_CALENDAR_PICKER, nullptr, true});
2503     float offset = 10.0f;
2504     ArkUI_NumberValue value[] = {{.f32 = offset}};
2505     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
2506     ArkUI_NumberValue value3[] = {{.u32 = 2024}, {.u32 = 1}, {.u32 = 1}};
2507     ArkUI_AttributeItem item3 = {value3, sizeof(value3) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
2508     nodeAPI->setAttribute(rootNode, NODE_CALENDAR_PICKER_HINT_RADIUS, &item);
2509     nodeAPI->setAttribute(rootNode, NODE_CALENDAR_PICKER_SELECTED_DATE, &item3);
2510 
2511     value[0].i32 = ARKUI_CALENDAR_ALIGNMENT_START;
2512     nodeAPI->setAttribute(rootNode, NODE_CALENDAR_PICKER_EDGE_ALIGNMENT, &item);
2513     value3[0].i32 = ARKUI_CALENDAR_ALIGNMENT_START;
2514     value3[1].f32 = offset;
2515     value3[2].f32 = offset;
2516     nodeAPI->setAttribute(rootNode, NODE_CALENDAR_PICKER_EDGE_ALIGNMENT, &item3);
2517     value3[0].u32 = 0xFFFF0000;
2518     value3[1].f32 = offset;
2519     value3[2].i32 = ARKUI_FONT_WEIGHT_NORMAL;
2520     nodeAPI->setAttribute(rootNode, NODE_CALENDAR_PICKER_TEXT_STYLE, &item3);
2521     item3.size = -1;
2522     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CALENDAR_PICKER_TEXT_STYLE, &item3), ARKUI_ERROR_CODE_PARAM_INVALID);
2523 
2524     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_CALENDAR_PICKER_HINT_RADIUS), ARKUI_ERROR_CODE_NO_ERROR);
2525     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_CALENDAR_PICKER_SELECTED_DATE), ARKUI_ERROR_CODE_NO_ERROR);
2526     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_CALENDAR_PICKER_EDGE_ALIGNMENT), ARKUI_ERROR_CODE_NO_ERROR);
2527     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_CALENDAR_PICKER_TEXT_STYLE), ARKUI_ERROR_CODE_NO_ERROR);
2528 
2529     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_CALENDAR_PICKER_HINT_RADIUS), nullptr);
2530     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_CALENDAR_PICKER_SELECTED_DATE), nullptr);
2531     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_CALENDAR_PICKER_EDGE_ALIGNMENT), nullptr);
2532     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_CALENDAR_PICKER_TEXT_STYLE), nullptr);
2533     nodeAPI->disposeNode(rootNode);
2534 }
2535 
2536 /**
2537  * @tc.name: NativeNodeTest024
2538  * @tc.desc: Test sliderNode function.
2539  * @tc.type: FUNC
2540  */
2541 HWTEST_F(NativeNodeTest, NativeNodeTest024, TestSize.Level1)
2542 {
2543     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
2544         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
2545     auto rootNode = nodeAPI->createNode(ARKUI_NODE_SLIDER);
2546     ASSERT_NE(rootNode, nullptr);
2547     uint32_t color = 0xFFFF0000;
2548     float size = 10.0f;
2549     ArkUI_NumberValue value[] = {{.u32 = color}};
2550     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
2551     ArkUI_NumberValue blockStyle[] = {{.i32 = ARKUI_SLIDER_BLOCK_STYLE_IMAGE }, {.i32 = ARKUI_CLIP_TYPE_PATH},
2552         {.f32 = size}, {.f32 = size}, {.f32 = size}};
2553     ArkUI_AttributeItem blockStyleItem = {blockStyle, sizeof(blockStyle) / sizeof(ArkUI_NumberValue), "test", nullptr};
2554     nodeAPI->setAttribute(rootNode, NODE_SLIDER_BLOCK_COLOR, &item);
2555     nodeAPI->setAttribute(rootNode, NODE_SLIDER_TRACK_COLOR, &item);
2556     nodeAPI->setAttribute(rootNode, NODE_SLIDER_SELECTED_COLOR, &item);
2557     value[0].i32 = true;
2558     nodeAPI->setAttribute(rootNode, NODE_SLIDER_SHOW_STEPS, &item);
2559     nodeAPI->setAttribute(rootNode, NODE_SLIDER_REVERSE, &item);
2560     value[0].i32 = ARKUI_SLIDER_DIRECTION_VERTICAL;
2561     nodeAPI->setAttribute(rootNode, NODE_SLIDER_DIRECTION, &item);
2562     value[0].i32 = ARKUI_SLIDER_STYLE_OUT_SET;
2563     nodeAPI->setAttribute(rootNode, NODE_SLIDER_STYLE, &item);
2564     value[0].f32 = size;
2565     nodeAPI->setAttribute(rootNode, NODE_SLIDER_VALUE, &item);
2566     nodeAPI->setAttribute(rootNode, NODE_SLIDER_MIN_VALUE, &item);
2567     nodeAPI->setAttribute(rootNode, NODE_SLIDER_MAX_VALUE, &item);
2568     nodeAPI->setAttribute(rootNode, NODE_SLIDER_STEP, &item);
2569     nodeAPI->setAttribute(rootNode, NODE_SLIDER_TRACK_THICKNESS, &item);
2570 
2571     nodeAPI->setAttribute(rootNode, NODE_SLIDER_BLOCK_STYLE, &blockStyleItem);
2572     blockStyle[0].i32 = ARKUI_SLIDER_BLOCK_STYLE_SHAPE;
2573     nodeAPI->setAttribute(rootNode, NODE_SLIDER_BLOCK_STYLE, &blockStyleItem);
2574     blockStyle[1].i32 = ARKUI_CLIP_TYPE_RECTANGLE;
2575     nodeAPI->setAttribute(rootNode, NODE_SLIDER_BLOCK_STYLE, &blockStyleItem);
2576     blockStyle[0].i32 = ARKUI_SLIDER_BLOCK_STYLE_DEFAULT;
2577     nodeAPI->setAttribute(rootNode, NODE_SLIDER_BLOCK_STYLE, &blockStyleItem);
2578     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SLIDER_BLOCK_COLOR), ARKUI_ERROR_CODE_NO_ERROR);
2579     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SLIDER_TRACK_COLOR), ARKUI_ERROR_CODE_NO_ERROR);
2580     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SLIDER_SELECTED_COLOR), ARKUI_ERROR_CODE_NO_ERROR);
2581     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SLIDER_SHOW_STEPS), ARKUI_ERROR_CODE_NO_ERROR);
2582     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SLIDER_BLOCK_STYLE), ARKUI_ERROR_CODE_NO_ERROR);
2583     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SLIDER_VALUE), ARKUI_ERROR_CODE_NO_ERROR);
2584     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SLIDER_MIN_VALUE), ARKUI_ERROR_CODE_NO_ERROR);
2585     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SLIDER_MAX_VALUE), ARKUI_ERROR_CODE_NO_ERROR);
2586     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SLIDER_STEP), ARKUI_ERROR_CODE_NO_ERROR);
2587     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SLIDER_DIRECTION), ARKUI_ERROR_CODE_NO_ERROR);
2588     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SLIDER_REVERSE), ARKUI_ERROR_CODE_NO_ERROR);
2589     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SLIDER_STYLE), ARKUI_ERROR_CODE_NO_ERROR);
2590     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SLIDER_TRACK_THICKNESS), ARKUI_ERROR_CODE_NO_ERROR);
2591 
2592     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SLIDER_BLOCK_COLOR), nullptr);
2593     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SLIDER_SHOW_STEPS), nullptr);
2594     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SLIDER_BLOCK_STYLE), nullptr);
2595     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SLIDER_VALUE), nullptr);
2596     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SLIDER_MIN_VALUE), nullptr);
2597     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SLIDER_MAX_VALUE), nullptr);
2598     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SLIDER_STEP), nullptr);
2599     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SLIDER_DIRECTION), nullptr);
2600     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SLIDER_REVERSE), nullptr);
2601     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SLIDER_STYLE), nullptr);
2602     EXPECT_EQ(nodeAPI->getAttribute(rootNode, NODE_SLIDER_TRACK_THICKNESS), nullptr);
2603     nodeAPI->disposeNode(rootNode);
2604 }
2605 
2606 /**
2607  * @tc.name: NativeNodeTest025
2608  * @tc.desc: Test radioNode function.
2609  * @tc.type: FUNC
2610  */
2611 HWTEST_F(NativeNodeTest, NativeNodeTest025, TestSize.Level1)
2612 {
2613     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
2614         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
2615     auto rootNode = nodeAPI->createNode(ARKUI_NODE_RADIO);
2616     ASSERT_NE(rootNode, nullptr);
2617     uint32_t color = 0xFFFF0000;
2618     ArkUI_NumberValue value[] = {{.i32 = true}};
2619     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
2620     ArkUI_NumberValue style[] = {{.u32 = color}, {.u32 = color}, {.u32 = color}};
2621     ArkUI_AttributeItem styleItem = {style, sizeof(style) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
2622     nodeAPI->setAttribute(rootNode, NODE_RADIO_CHECKED, &item);
2623     item.string = "test";
2624     nodeAPI->setAttribute(rootNode, NODE_RADIO_VALUE, &item);
2625     nodeAPI->setAttribute(rootNode, NODE_RADIO_GROUP, &item);
2626     nodeAPI->setAttribute(rootNode, NODE_RADIO_STYLE, &styleItem);
2627     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_RADIO_CHECKED), ARKUI_ERROR_CODE_NO_ERROR);
2628     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_RADIO_STYLE), ARKUI_ERROR_CODE_NO_ERROR);
2629     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_RADIO_VALUE), ARKUI_ERROR_CODE_NO_ERROR);
2630     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_RADIO_GROUP), ARKUI_ERROR_CODE_NO_ERROR);
2631 
2632     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_RADIO_CHECKED), nullptr);
2633     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_RADIO_STYLE), nullptr);
2634     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_RADIO_VALUE), nullptr);
2635     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_RADIO_GROUP), nullptr);
2636     nodeAPI->disposeNode(rootNode);
2637 }
2638 
2639 /**
2640  * @tc.name: NativeNodeTest026
2641  * @tc.desc: Test scrollNode function.
2642  * @tc.type: FUNC
2643  */
2644 HWTEST_F(NativeNodeTest, NativeNodeTest026, TestSize.Level1)
2645 {
2646     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
2647         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
2648     auto rootNode = nodeAPI->createNode(ARKUI_NODE_SCROLL);
2649     ASSERT_NE(rootNode, nullptr);
2650     float distance = 10.0f;
2651     uint32_t color = 0xFFFF0000;
2652     ArkUI_NumberValue value[] = {{.f32 = distance}};
2653     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue)};
2654     ArkUI_NumberValue value2[] = {{.i32 = true}, {.i32 = true}};
2655     ArkUI_AttributeItem item2 = {value2, sizeof(value2) / sizeof(ArkUI_NumberValue)};
2656     ArkUI_NumberValue scrollsnap[] = {{.i32 = ARKUI_SCROLL_SNAP_ALIGN_NONE}, {.i32 = true}, {.i32 = true},
2657         {.f32 = distance}};
2658     ArkUI_AttributeItem scrollsnapItem = {scrollsnap, sizeof(scrollsnap) / sizeof(ArkUI_NumberValue)};
2659     ArkUI_NumberValue scrollnested[] = {{.i32 = ARKUI_SCROLL_NESTED_MODE_SELF_ONLY},
2660         {.i32 = ARKUI_SCROLL_NESTED_MODE_SELF_ONLY}};
2661     ArkUI_AttributeItem scrollnestedItem = {scrollnested, sizeof(scrollnested) / sizeof(ArkUI_NumberValue)};
2662     ArkUI_NumberValue scrolloffset[] = {{.f32 = distance}, {.f32 = distance}, { .i32 = 1000},
2663         {.i32 = ARKUI_CURVE_LINEAR}, {.i32 = true}};
2664     ArkUI_AttributeItem scrolloffsetItem = {scrolloffset, sizeof(scrolloffset) / sizeof(ArkUI_NumberValue)};
2665     nodeAPI->setAttribute(rootNode, NODE_SCROLL_FRICTION, &item);
2666     nodeAPI->setAttribute(rootNode, NODE_SCROLL_BAR_WIDTH, &item);
2667 
2668     value[0].u32 = color;
2669     nodeAPI->setAttribute(rootNode, NODE_SCROLL_BAR_COLOR, &item);
2670 
2671     value[0].i32 = ARKUI_SCROLL_BAR_DISPLAY_MODE_AUTO;
2672     nodeAPI->setAttribute(rootNode, NODE_SCROLL_BAR_DISPLAY_MODE, &item);
2673     value[0].i32 = ARKUI_SCROLL_DIRECTION_VERTICAL;
2674     nodeAPI->setAttribute(rootNode, NODE_SCROLL_SCROLL_DIRECTION, &item);
2675     value[0].i32 = ARKUI_EDGE_EFFECT_NONE;
2676     nodeAPI->setAttribute(rootNode, NODE_SCROLL_EDGE_EFFECT, &item);
2677     value[0].i32 = true;
2678     nodeAPI->setAttribute(rootNode, NODE_SCROLL_ENABLE_SCROLL_INTERACTION, &item);
2679     nodeAPI->setAttribute(rootNode, NODE_SCROLL_ENABLE_PAGING, &item);
2680     nodeAPI->setAttribute(rootNode, NODE_SCROLL_PAGE, &item);
2681     value[0].i32 = ARKUI_SCROLL_EDGE_TOP;
2682     nodeAPI->setAttribute(rootNode, NODE_SCROLL_EDGE, &item);
2683 
2684     nodeAPI->setAttribute(rootNode, NODE_SCROLL_SNAP, &scrollsnapItem);
2685     nodeAPI->setAttribute(rootNode, NODE_SCROLL_NESTED_SCROLL, &scrollnestedItem);
2686     scrolloffsetItem.size = 2;
2687     nodeAPI->setAttribute(rootNode, NODE_SCROLL_OFFSET, &scrolloffsetItem);
2688     scrolloffsetItem.size = sizeof(scrolloffset) / sizeof(ArkUI_NumberValue);
2689     nodeAPI->setAttribute(rootNode, NODE_SCROLL_OFFSET, &scrolloffsetItem);
2690     scrolloffset[3].i32 = -1;
2691     nodeAPI->setAttribute(rootNode, NODE_SCROLL_OFFSET, &scrolloffsetItem);
2692 
2693     nodeAPI->setAttribute(rootNode, NODE_SCROLL_PAGE, &item2);
2694     value2[1].i32 = -1;
2695     nodeAPI->setAttribute(rootNode, NODE_SCROLL_PAGE, &item2);
2696 
2697     value2[0].f32 = distance;
2698     value2[1].f32 = distance;
2699     nodeAPI->setAttribute(rootNode, NODE_SCROLL_BY, &item2);
2700     nodeAPI->setLengthMetricUnit(rootNode, ARKUI_LENGTH_METRIC_UNIT_PX);
2701     nodeAPI->setAttribute(rootNode, NODE_SCROLL_BY, &item2);
2702     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SCROLL_BAR_DISPLAY_MODE), ARKUI_ERROR_CODE_NO_ERROR);
2703     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SCROLL_BAR_WIDTH), ARKUI_ERROR_CODE_NO_ERROR);
2704     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SCROLL_BAR_COLOR), ARKUI_ERROR_CODE_NO_ERROR);
2705     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SCROLL_SCROLL_DIRECTION), ARKUI_ERROR_CODE_NO_ERROR);
2706     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SCROLL_EDGE_EFFECT), ARKUI_ERROR_CODE_NO_ERROR);
2707     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SCROLL_ENABLE_SCROLL_INTERACTION), ARKUI_ERROR_CODE_NO_ERROR);
2708     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SCROLL_FRICTION), ARKUI_ERROR_CODE_NO_ERROR);
2709     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SCROLL_SNAP), ARKUI_ERROR_CODE_NO_ERROR);
2710     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SCROLL_NESTED_SCROLL), ARKUI_ERROR_CODE_NO_ERROR);
2711     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SCROLL_OFFSET), ARKUI_ERROR_CODE_NO_ERROR);
2712     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SCROLL_EDGE), ARKUI_ERROR_CODE_NO_ERROR);
2713     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SCROLL_ENABLE_PAGING), ARKUI_ERROR_CODE_NO_ERROR);
2714 
2715     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SCROLL_BAR_DISPLAY_MODE), nullptr);
2716     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SCROLL_BAR_WIDTH), nullptr);
2717     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SCROLL_BAR_COLOR), nullptr);
2718     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SCROLL_SCROLL_DIRECTION), nullptr);
2719     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SCROLL_EDGE_EFFECT), nullptr);
2720     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SCROLL_ENABLE_SCROLL_INTERACTION), nullptr);
2721     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SCROLL_FRICTION), nullptr);
2722     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SCROLL_SNAP), nullptr);
2723     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SCROLL_NESTED_SCROLL), nullptr);
2724     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SCROLL_OFFSET), nullptr);
2725     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SCROLL_EDGE), nullptr);
2726     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SCROLL_ENABLE_PAGING), nullptr);
2727     EXPECT_EQ(nodeAPI->getAttribute(rootNode, NODE_SCROLL_FLING_SPEED_LIMIT)->value->f32, 9000.0f);
2728     value[0].f32 = 100.0f;
2729     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SCROLL_FLING_SPEED_LIMIT, &item), ARKUI_ERROR_CODE_NO_ERROR);
2730     EXPECT_EQ(nodeAPI->getAttribute(rootNode, NODE_SCROLL_FLING_SPEED_LIMIT)->value->f32, 100.0f);
2731     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SCROLL_FLING_SPEED_LIMIT), ARKUI_ERROR_CODE_NO_ERROR);
2732     EXPECT_EQ(nodeAPI->getAttribute(rootNode, NODE_SCROLL_FLING_SPEED_LIMIT)->value->f32, 9000.0f);
2733 
2734     EXPECT_EQ(nodeAPI->getAttribute(rootNode, NODE_SCROLL_CLIP_CONTENT)->value->i32,
2735                                     ArkUI_ContentClipMode::ARKUI_CONTENT_CLIP_MODE_BOUNDARY);
2736 
2737     ArkUI_NumberValue clipValue[] = {{.i32 = ArkUI_ContentClipMode::ARKUI_CONTENT_CLIP_MODE_SAFE_AREA}};
2738     ArkUI_AttributeItem clipItem = {clipValue, sizeof(clipValue) / sizeof(ArkUI_NumberValue)};
2739     nodeAPI->setAttribute(rootNode, NODE_SCROLL_CLIP_CONTENT, &clipItem);
2740     EXPECT_EQ(nodeAPI->getAttribute(rootNode, NODE_SCROLL_CLIP_CONTENT)->value->i32,
2741                                     ArkUI_ContentClipMode::ARKUI_CONTENT_CLIP_MODE_SAFE_AREA);
2742     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SCROLL_CLIP_CONTENT), ARKUI_ERROR_CODE_NO_ERROR);
2743     EXPECT_EQ(nodeAPI->getAttribute(rootNode, NODE_SCROLL_CLIP_CONTENT)->value->i32,
2744                                     ArkUI_ContentClipMode::ARKUI_CONTENT_CLIP_MODE_BOUNDARY);
2745 
2746     value[0].i32 = ARKUI_SCROLL_DIRECTION_FREE;
2747     nodeAPI->setAttribute(rootNode, NODE_SCROLL_SCROLL_DIRECTION, &item);
2748     EXPECT_EQ(nodeAPI->getAttribute(rootNode, NODE_SCROLL_SCROLL_DIRECTION)->value->i32,
2749                                     ARKUI_SCROLL_DIRECTION_FREE);
2750     nodeAPI->disposeNode(rootNode);
2751 }
2752 
2753 /**
2754  * @tc.name: NativeNodeTest027
2755  * @tc.desc: Test listNode function.
2756  * @tc.type: FUNC
2757  */
2758 HWTEST_F(NativeNodeTest, NativeNodeTest027, TestSize.Level1)
2759 {
2760     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
2761         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
2762     auto rootNode = new ArkUI_Node({ARKUI_NODE_LIST, nullptr, true});
2763     auto childNode = new ArkUI_Node({ARKUI_NODE_LIST_ITEM, nullptr, true});
2764     auto groupNode = new ArkUI_Node({ARKUI_NODE_LIST_ITEM_GROUP, nullptr, true});
2765 
2766     float distance = 10.0f;
2767     uint32_t color = 0xFFFF0000;
2768     ArkUI_NumberValue value[] = {{.f32 = distance}};
2769     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue)};
2770     ArkUI_NumberValue value2[] = {{.f32 = distance}, {.f32 = distance}};
2771     ArkUI_AttributeItem item2 = {value2, sizeof(value2) / sizeof(ArkUI_NumberValue)};
2772     ArkUI_NumberValue scrollnested[] = {{.i32 = ARKUI_SCROLL_NESTED_MODE_SELF_ONLY},
2773         {.i32 = ARKUI_SCROLL_NESTED_MODE_SELF_ONLY}};
2774     ArkUI_AttributeItem scrollnestedItem = {scrollnested, sizeof(scrollnested) / sizeof(ArkUI_NumberValue)};
2775     ArkUI_NumberValue scrollToIndex[] = {{.i32 = 0}, {.i32 = 1}, {.i32 = ARKUI_SCROLL_ALIGNMENT_START}};
2776     ArkUI_AttributeItem scrollToIndexItem = {scrollToIndex, sizeof(scrollToIndex) / sizeof(ArkUI_NumberValue)};
2777     ArkUI_NumberValue divider[] = {{.u32 = color}, {.f32 = distance}, {.f32 = distance}, {.f32 = distance}};
2778     ArkUI_AttributeItem dividerItem = {divider, sizeof(divider) / sizeof(ArkUI_NumberValue)};
2779     nodeAPI->setAttribute(rootNode, NODE_SCROLL_FRICTION, &item);
2780     nodeAPI->setAttribute(rootNode, NODE_SCROLL_BAR_WIDTH, &item);
2781     value[0].u32 = color;
2782     nodeAPI->setAttribute(rootNode, NODE_SCROLL_BAR_COLOR, &item);
2783 
2784     value[0].i32 = ARKUI_SCROLL_BAR_DISPLAY_MODE_AUTO;
2785     nodeAPI->setAttribute(rootNode, NODE_SCROLL_BAR_DISPLAY_MODE, &item);
2786     value[0].i32 = ARKUI_EDGE_EFFECT_NONE;
2787     nodeAPI->setAttribute(rootNode, NODE_SCROLL_EDGE_EFFECT, &item);
2788     value[0].i32 = true;
2789     nodeAPI->setAttribute(rootNode, NODE_SCROLL_ENABLE_SCROLL_INTERACTION, &item);
2790     value[0].i32 = ARKUI_AXIS_VERTICAL;
2791     nodeAPI->setAttribute(rootNode, NODE_LIST_DIRECTION, &item);
2792     value[0].i32 = ARKUI_STICKY_STYLE_NONE;
2793     nodeAPI->setAttribute(rootNode, NODE_LIST_STICKY, &item);
2794     value[0].i32 = 1;
2795     nodeAPI->setAttribute(rootNode, NODE_LIST_SPACE, &item);
2796     nodeAPI->setAttribute(rootNode, NODE_LIST_CACHED_COUNT, &item);
2797     value[0].i32 = ARKUI_LIST_ITEM_ALIGNMENT_START;
2798     nodeAPI->setAttribute(rootNode, NODE_LIST_ALIGN_LIST_ITEM, &item);
2799     value[0].i32 = 0;
2800     nodeAPI->setAttribute(rootNode, NODE_LIST_SCROLL_TO_INDEX, &item);
2801     nodeAPI->setAttribute(rootNode, NODE_LIST_INITIAL_INDEX, &item);
2802     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_LIST_SYNC_LOAD, &item), ARKUI_ERROR_CODE_NO_ERROR);
2803     item.object = rootNode;
2804     nodeAPI->setAttribute(groupNode, NODE_LIST_ITEM_GROUP_SET_HEADER, &item);
2805     nodeAPI->setAttribute(groupNode, NODE_LIST_ITEM_GROUP_SET_FOOTER, &item);
2806 
2807     nodeAPI->setAttribute(rootNode, NODE_SCROLL_NESTED_SCROLL, &scrollnestedItem);
2808 
2809     nodeAPI->setAttribute(rootNode, NODE_LIST_SCROLL_TO_INDEX, &scrollToIndexItem);
2810     scrollToIndex[2].i32 = ARKUI_SCROLL_ALIGNMENT_NONE;
2811     nodeAPI->setAttribute(rootNode, NODE_LIST_SCROLL_TO_INDEX, &scrollToIndexItem);
2812 
2813     nodeAPI->setAttribute(rootNode, NODE_LIST_DIVIDER, &dividerItem);
2814     nodeAPI->setAttribute(groupNode, NODE_LIST_ITEM_GROUP_SET_DIVIDER, &dividerItem);
2815 
2816     nodeAPI->setAttribute(rootNode, NODE_SCROLL_BY, &item2);
2817     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_LIST_DIRECTION), ARKUI_ERROR_CODE_NO_ERROR);
2818     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_LIST_STICKY), ARKUI_ERROR_CODE_NO_ERROR);
2819     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_LIST_SPACE), ARKUI_ERROR_CODE_NO_ERROR);
2820     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_LIST_NODE_ADAPTER), ARKUI_ERROR_CODE_NO_ERROR);
2821     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_LIST_CACHED_COUNT), ARKUI_ERROR_CODE_NO_ERROR);
2822     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_LIST_ALIGN_LIST_ITEM), ARKUI_ERROR_CODE_NO_ERROR);
2823     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_LIST_CHILDREN_MAIN_SIZE), ARKUI_ERROR_CODE_NO_ERROR);
2824     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_LIST_INITIAL_INDEX), ARKUI_ERROR_CODE_NO_ERROR);
2825     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_LIST_DIVIDER), ARKUI_ERROR_CODE_NO_ERROR);
2826     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SCROLL_FRICTION), ARKUI_ERROR_CODE_NO_ERROR);
2827     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SCROLL_BAR_DISPLAY_MODE), ARKUI_ERROR_CODE_NO_ERROR);
2828     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SCROLL_BAR_WIDTH), ARKUI_ERROR_CODE_NO_ERROR);
2829     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SCROLL_BAR_COLOR), ARKUI_ERROR_CODE_NO_ERROR);
2830     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SCROLL_EDGE_EFFECT), ARKUI_ERROR_CODE_NO_ERROR);
2831     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SCROLL_ENABLE_SCROLL_INTERACTION), ARKUI_ERROR_CODE_NO_ERROR);
2832     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SCROLL_NESTED_SCROLL), ARKUI_ERROR_CODE_NO_ERROR);
2833     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_LIST_SYNC_LOAD), ARKUI_ERROR_CODE_NO_ERROR);
2834 
2835     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_LIST_DIRECTION), nullptr);
2836     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_LIST_STICKY), nullptr);
2837     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_LIST_SPACE), nullptr);
2838     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_LIST_NODE_ADAPTER), nullptr);
2839     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_LIST_CACHED_COUNT), nullptr);
2840     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_LIST_ALIGN_LIST_ITEM), nullptr);
2841     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_LIST_INITIAL_INDEX), nullptr);
2842     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_LIST_DIVIDER), nullptr);
2843     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SCROLL_FRICTION), nullptr);
2844     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SCROLL_BAR_DISPLAY_MODE), nullptr);
2845     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SCROLL_BAR_WIDTH), nullptr);
2846     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SCROLL_BAR_COLOR), nullptr);
2847     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SCROLL_EDGE_EFFECT), nullptr);
2848     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SCROLL_ENABLE_SCROLL_INTERACTION), nullptr);
2849     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SCROLL_NESTED_SCROLL), nullptr);
2850     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_LIST_SYNC_LOAD), nullptr);
2851 
2852     EXPECT_EQ(nodeAPI->resetAttribute(childNode, NODE_LIST_ITEM_SWIPE_ACTION), ARKUI_ERROR_CODE_NO_ERROR);
2853 
2854     EXPECT_EQ(nodeAPI->resetAttribute(groupNode, NODE_LIST_ITEM_GROUP_SET_HEADER), ARKUI_ERROR_CODE_NO_ERROR);
2855     EXPECT_EQ(nodeAPI->resetAttribute(groupNode, NODE_LIST_ITEM_GROUP_SET_FOOTER), ARKUI_ERROR_CODE_NO_ERROR);
2856     EXPECT_EQ(nodeAPI->resetAttribute(groupNode, NODE_LIST_ITEM_GROUP_SET_DIVIDER), ARKUI_ERROR_CODE_NO_ERROR);
2857     EXPECT_EQ(nodeAPI->resetAttribute(groupNode, NODE_LIST_ITEM_GROUP_CHILDREN_MAIN_SIZE), ARKUI_ERROR_CODE_NO_ERROR);
2858 
2859     EXPECT_NE(nodeAPI->getAttribute(groupNode, NODE_LIST_ITEM_GROUP_SET_DIVIDER), nullptr);
2860 
2861     nodeAPI->disposeNode(rootNode);
2862     nodeAPI->disposeNode(childNode);
2863     nodeAPI->disposeNode(groupNode);
2864 }
2865 
2866 /**
2867  * @tc.name: NativeNodeTest028
2868  * @tc.desc: Test swiperNode function.
2869  * @tc.type: FUNC
2870  */
2871 HWTEST_F(NativeNodeTest, NativeNodeTest028, TestSize.Level1)
2872 {
2873     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
2874         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
2875     auto rootNode = new ArkUI_Node({ARKUI_NODE_SWIPER, nullptr, true});
2876     ArkUI_NumberValue value[] = {{.i32 = ARKUI_CURVE_LINEAR}};
2877     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
2878     ArkUI_NumberValue value2[] = {{.i32 = 1}, {.i32 = 1}};
2879     ArkUI_AttributeItem item2 = {value2, sizeof(value2) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
2880     nodeAPI->setAttribute(rootNode, NODE_SWIPER_CURVE, &item);
2881     value[0].i32 = ARKUI_CURVE_EASE;
2882     nodeAPI->setAttribute(rootNode, NODE_SWIPER_CURVE, &item);
2883     value[0].i32 = ARKUI_CURVE_EASE_IN;
2884     nodeAPI->setAttribute(rootNode, NODE_SWIPER_CURVE, &item);
2885     value[0].i32 = ARKUI_CURVE_EASE_OUT;
2886     nodeAPI->setAttribute(rootNode, NODE_SWIPER_CURVE, &item);
2887     value[0].i32 = ARKUI_CURVE_EASE_IN_OUT;
2888     nodeAPI->setAttribute(rootNode, NODE_SWIPER_CURVE, &item);
2889     value[0].i32 = ARKUI_CURVE_FAST_OUT_SLOW_IN;
2890     nodeAPI->setAttribute(rootNode, NODE_SWIPER_CURVE, &item);
2891     value[0].i32 = ARKUI_CURVE_LINEAR_OUT_SLOW_IN;
2892     nodeAPI->setAttribute(rootNode, NODE_SWIPER_CURVE, &item);
2893     value[0].i32 = ARKUI_CURVE_FAST_OUT_LINEAR_IN;
2894     nodeAPI->setAttribute(rootNode, NODE_SWIPER_CURVE, &item);
2895     value[0].i32 = ARKUI_CURVE_EXTREME_DECELERATION;
2896     nodeAPI->setAttribute(rootNode, NODE_SWIPER_CURVE, &item);
2897     value[0].i32 = ARKUI_CURVE_SHARP;
2898     nodeAPI->setAttribute(rootNode, NODE_SWIPER_CURVE, &item);
2899     value[0].i32 = ARKUI_CURVE_RHYTHM;
2900     nodeAPI->setAttribute(rootNode, NODE_SWIPER_CURVE, &item);
2901     value[0].i32 = ARKUI_CURVE_SMOOTH;
2902     nodeAPI->setAttribute(rootNode, NODE_SWIPER_CURVE, &item);
2903     value[0].i32 = ARKUI_CURVE_FRICTION;
2904     nodeAPI->setAttribute(rootNode, NODE_SWIPER_CURVE, &item);
2905     value[0].i32 = ARKUI_SWIPER_ARROW_HIDE;
2906     nodeAPI->setAttribute(rootNode, NODE_SWIPER_SHOW_DISPLAY_ARROW, &item);
2907     value[0].i32 = ARKUI_SWIPER_ARROW_SHOW_ON_HOVER;
2908     nodeAPI->setAttribute(rootNode, NODE_SWIPER_SHOW_DISPLAY_ARROW, &item);
2909     value[0].i32 = ARKUI_EDGE_EFFECT_SPRING;
2910     nodeAPI->setAttribute(rootNode, NODE_SWIPER_EDGE_EFFECT_MODE, &item);
2911     value[0].i32 = ARKUI_SWIPER_NESTED_SRCOLL_SELF_ONLY;
2912     nodeAPI->setAttribute(rootNode, NODE_SWIPER_NESTED_SCROLL, &item);
2913     value[0].i32 = true;
2914     nodeAPI->setAttribute(rootNode, NODE_SWIPER_LOOP, &item);
2915     nodeAPI->setAttribute(rootNode, NODE_SWIPER_AUTO_PLAY, &item);
2916     nodeAPI->setAttribute(rootNode, NODE_SWIPER_SHOW_INDICATOR, &item);
2917     nodeAPI->setAttribute(rootNode, NODE_SWIPER_VERTICAL, &item);
2918     nodeAPI->setAttribute(rootNode, NODE_SWIPER_INDEX, &item);
2919     nodeAPI->setAttribute(rootNode, NODE_SWIPER_DISPLAY_COUNT, &item);
2920     nodeAPI->setAttribute(rootNode, NODE_SWIPER_DISABLE_SWIPE, &item);
2921     nodeAPI->setAttribute(rootNode, NODE_SWIPER_CACHED_COUNT, &item);
2922     nodeAPI->setAttribute(rootNode, NODE_SWIPER_SWIPE_TO_INDEX, &item);
2923     nodeAPI->setAttribute(rootNode, NODE_SWIPER_INDICATOR_INTERACTIVE, &item);
2924 
2925     value[0].f32 = 10.0f;
2926     nodeAPI->setAttribute(rootNode, NODE_SWIPER_INTERVAL, &item);
2927     nodeAPI->setAttribute(rootNode, NODE_SWIPER_DURATION, &item);
2928     nodeAPI->setAttribute(rootNode, NODE_SWIPER_ITEM_SPACE, &item);
2929     nodeAPI->setAttribute(rootNode, NODE_SWIPER_PREV_MARGIN, &item);
2930     nodeAPI->setAttribute(rootNode, NODE_SWIPER_NEXT_MARGIN, &item);
2931 
2932     nodeAPI->setAttribute(rootNode, NODE_SWIPER_SWIPE_TO_INDEX, &item2);
2933     value2[1].i32 = -1;
2934     nodeAPI->setAttribute(rootNode, NODE_SWIPER_SWIPE_TO_INDEX, &item2);
2935 
2936     value2[0].f32 = 10.0f;
2937     value2[1].i32 = 1;
2938     nodeAPI->setAttribute(rootNode, NODE_SWIPER_PREV_MARGIN, &item);
2939     nodeAPI->setAttribute(rootNode, NODE_SWIPER_NEXT_MARGIN, &item);
2940     value2[1].i32 = -1;
2941     nodeAPI->setAttribute(rootNode, NODE_SWIPER_PREV_MARGIN, &item);
2942     nodeAPI->setAttribute(rootNode, NODE_SWIPER_NEXT_MARGIN, &item);
2943 
2944     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SWIPER_LOOP), ARKUI_ERROR_CODE_NO_ERROR);
2945     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SWIPER_AUTO_PLAY), ARKUI_ERROR_CODE_NO_ERROR);
2946     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SWIPER_SHOW_INDICATOR), ARKUI_ERROR_CODE_NO_ERROR);
2947     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SWIPER_INTERVAL), ARKUI_ERROR_CODE_NO_ERROR);
2948     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SWIPER_VERTICAL), ARKUI_ERROR_CODE_NO_ERROR);
2949     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SWIPER_DURATION), ARKUI_ERROR_CODE_NO_ERROR);
2950     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SWIPER_CURVE), ARKUI_ERROR_CODE_NO_ERROR);
2951     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SWIPER_ITEM_SPACE), ARKUI_ERROR_CODE_NO_ERROR);
2952     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SWIPER_INDEX), ARKUI_ERROR_CODE_NO_ERROR);
2953     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SWIPER_DISPLAY_COUNT), ARKUI_ERROR_CODE_NO_ERROR);
2954     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SWIPER_DISABLE_SWIPE), ARKUI_ERROR_CODE_NO_ERROR);
2955     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SWIPER_SHOW_DISPLAY_ARROW), ARKUI_ERROR_CODE_NO_ERROR);
2956     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SWIPER_EDGE_EFFECT_MODE), ARKUI_ERROR_CODE_NO_ERROR);
2957     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SWIPER_NODE_ADAPTER), ARKUI_ERROR_CODE_NO_ERROR);
2958     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SWIPER_CACHED_COUNT), ARKUI_ERROR_CODE_NO_ERROR);
2959     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SWIPER_PREV_MARGIN), ARKUI_ERROR_CODE_NO_ERROR);
2960     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SWIPER_NEXT_MARGIN), ARKUI_ERROR_CODE_NO_ERROR);
2961     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SWIPER_INDICATOR), ARKUI_ERROR_CODE_NO_ERROR);
2962     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SWIPER_NESTED_SCROLL), ARKUI_ERROR_CODE_NO_ERROR);
2963     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SWIPER_INDICATOR_INTERACTIVE), ARKUI_ERROR_CODE_NO_ERROR);
2964 
2965     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SWIPER_LOOP), nullptr);
2966     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SWIPER_AUTO_PLAY), nullptr);
2967     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SWIPER_SHOW_INDICATOR), nullptr);
2968     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SWIPER_INTERVAL), nullptr);
2969     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SWIPER_VERTICAL), nullptr);
2970     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SWIPER_DURATION), nullptr);
2971     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SWIPER_CURVE), nullptr);
2972     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SWIPER_ITEM_SPACE), nullptr);
2973     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SWIPER_INDEX), nullptr);
2974     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SWIPER_DISPLAY_COUNT), nullptr);
2975     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SWIPER_DISABLE_SWIPE), nullptr);
2976     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SWIPER_SHOW_DISPLAY_ARROW), nullptr);
2977     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SWIPER_EDGE_EFFECT_MODE), nullptr);
2978     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SWIPER_NODE_ADAPTER), nullptr);
2979     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SWIPER_CACHED_COUNT), nullptr);
2980     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SWIPER_PREV_MARGIN), nullptr);
2981     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SWIPER_NEXT_MARGIN), nullptr);
2982     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SWIPER_INDICATOR), nullptr);
2983     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SWIPER_NESTED_SCROLL), nullptr);
2984     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SWIPER_INDICATOR_INTERACTIVE), nullptr);
2985     nodeAPI->disposeNode(rootNode);
2986 }
2987 
2988 /**
2989  * @tc.name: NativeNodeTest029
2990  * @tc.desc: Test columnNode function.
2991  * @tc.type: FUNC
2992  */
2993 HWTEST_F(NativeNodeTest, NativeNodeTest029, TestSize.Level1)
2994 {
2995     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
2996         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
2997     auto rootNode = nodeAPI->createNode(ARKUI_NODE_COLUMN);
2998     ASSERT_NE(rootNode, nullptr);
2999     ArkUI_NumberValue value[] = {{.i32 = ARKUI_HORIZONTAL_ALIGNMENT_CENTER}};
3000     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
3001     nodeAPI->setAttribute(rootNode, NODE_COLUMN_ALIGN_ITEMS, &item);
3002     value[0].i32 = ARKUI_FLEX_ALIGNMENT_START;
3003     nodeAPI->setAttribute(rootNode, NODE_COLUMN_JUSTIFY_CONTENT, &item);
3004     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_COLUMN_ALIGN_ITEMS), ARKUI_ERROR_CODE_NO_ERROR);
3005     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_COLUMN_JUSTIFY_CONTENT), ARKUI_ERROR_CODE_NO_ERROR);
3006 
3007     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_COLUMN_ALIGN_ITEMS), nullptr);
3008     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_COLUMN_JUSTIFY_CONTENT), nullptr);
3009     nodeAPI->disposeNode(rootNode);
3010 }
3011 
3012 /**
3013  * @tc.name: NativeNodeTest030
3014  * @tc.desc: Test rowNode function.
3015  * @tc.type: FUNC
3016  */
3017 HWTEST_F(NativeNodeTest, NativeNodeTest030, TestSize.Level1)
3018 {
3019     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
3020         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
3021     auto rootNode = nodeAPI->createNode(ARKUI_NODE_ROW);
3022     ASSERT_NE(rootNode, nullptr);
3023     ArkUI_NumberValue value[] = {{.i32 = ARKUI_VERTICAL_ALIGNMENT_CENTER}};
3024     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
3025     nodeAPI->setAttribute(rootNode, NODE_ROW_ALIGN_ITEMS, &item);
3026     value[0].i32 = ARKUI_FLEX_ALIGNMENT_START;
3027     nodeAPI->setAttribute(rootNode, NODE_ROW_JUSTIFY_CONTENT, &item);
3028     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_ROW_ALIGN_ITEMS), ARKUI_ERROR_CODE_NO_ERROR);
3029     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_ROW_JUSTIFY_CONTENT), ARKUI_ERROR_CODE_NO_ERROR);
3030 
3031     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_ROW_ALIGN_ITEMS), nullptr);
3032     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_ROW_JUSTIFY_CONTENT), nullptr);
3033     nodeAPI->disposeNode(rootNode);
3034 }
3035 
3036 /**
3037  * @tc.name: NativeNodeTest031
3038  * @tc.desc: Test flexNode function.
3039  * @tc.type: FUNC
3040  */
3041 HWTEST_F(NativeNodeTest, NativeNodeTest031, TestSize.Level1)
3042 {
3043     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
3044         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
3045     auto rootNode = nodeAPI->createNode(ARKUI_NODE_FLEX);
3046     auto childNode = nodeAPI->createNode(ARKUI_NODE_STACK);
3047     ASSERT_NE(rootNode, nullptr);
3048     ASSERT_NE(childNode, nullptr);
3049     nodeAPI->addChild(rootNode, childNode);
3050 
3051     ArkUI_NumberValue value0[] = {};
3052     ArkUI_AttributeItem item0 = {value0, 0, nullptr, nullptr};
3053     int32_t negativeEnum = -1;
3054     ArkUI_NumberValue valueEnum[] = {{.i32 = negativeEnum}};
3055     ArkUI_AttributeItem itemEnum = {valueEnum, 1, nullptr, nullptr};
3056     float negativeFloat = -1.0f;
3057     ArkUI_NumberValue valueFloat[] = {{.f32 = negativeFloat}};
3058     ArkUI_AttributeItem itemFloat = {valueFloat, sizeof(valueFloat) / sizeof(ArkUI_NumberValue)};
3059     ArkUI_NumberValue value[] = {{.i32 = ARKUI_ITEM_ALIGNMENT_AUTO}};
3060     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
3061     EXPECT_EQ(nodeAPI->setAttribute(childNode, NODE_ALIGN_SELF, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3062     EXPECT_EQ(nodeAPI->setAttribute(childNode, NODE_ALIGN_SELF, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3063     EXPECT_EQ(nodeAPI->setAttribute(childNode, NODE_ALIGN_SELF, &item), ARKUI_ERROR_CODE_NO_ERROR);
3064     auto alignSelfVal = nodeAPI->getAttribute(childNode, NODE_ALIGN_SELF);
3065     EXPECT_EQ(alignSelfVal->value[0].i32, static_cast<int32_t>(ARKUI_ITEM_ALIGNMENT_AUTO));
3066 
3067     EXPECT_EQ(nodeAPI->setAttribute(childNode, NODE_FLEX_GROW, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3068     EXPECT_EQ(nodeAPI->setAttribute(childNode, NODE_FLEX_GROW, &itemFloat), ARKUI_ERROR_CODE_PARAM_INVALID);
3069     float flexGrowInput = 2.0f;
3070     value[0].f32 = flexGrowInput;
3071     EXPECT_EQ(nodeAPI->setAttribute(childNode, NODE_FLEX_GROW, &item), ARKUI_ERROR_CODE_NO_ERROR);
3072     auto flexGrowVal = nodeAPI->getAttribute(childNode, NODE_FLEX_GROW);
3073     EXPECT_EQ(flexGrowVal->value[0].f32, flexGrowInput);
3074 
3075     EXPECT_EQ(nodeAPI->setAttribute(childNode, NODE_FLEX_SHRINK, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3076     EXPECT_EQ(nodeAPI->setAttribute(childNode, NODE_FLEX_SHRINK, &itemFloat), ARKUI_ERROR_CODE_PARAM_INVALID);
3077     float flexShrinkInput = 0.0f;
3078     value[0].f32 = flexShrinkInput;
3079     EXPECT_EQ(nodeAPI->setAttribute(childNode, NODE_FLEX_SHRINK, &item), ARKUI_ERROR_CODE_NO_ERROR);
3080     auto flexShrinkVal = nodeAPI->getAttribute(childNode, NODE_FLEX_SHRINK);
3081     EXPECT_EQ(flexShrinkVal->value[0].f32, flexShrinkInput);
3082 
3083     EXPECT_EQ(nodeAPI->setAttribute(childNode, NODE_FLEX_BASIS, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3084     EXPECT_EQ(nodeAPI->setAttribute(childNode, NODE_FLEX_BASIS, &itemFloat), ARKUI_ERROR_CODE_PARAM_INVALID);
3085     float flexBasisInput = 100.0f;
3086     value[0].f32 = flexBasisInput;
3087     EXPECT_EQ(nodeAPI->setAttribute(childNode, NODE_FLEX_BASIS, &item), ARKUI_ERROR_CODE_NO_ERROR);
3088     auto flexBasisVal = nodeAPI->getAttribute(childNode, NODE_FLEX_BASIS);
3089     EXPECT_EQ(flexBasisVal->value[0].f32, flexBasisInput);
3090 
3091     ArkUI_NumberValue flexOptVal[] = {{.i32 = ARKUI_FLEX_DIRECTION_ROW}, {.i32 = ARKUI_FLEX_WRAP_NO_WRAP},
3092         {.i32 = ARKUI_FLEX_ALIGNMENT_START}, {.i32 = ARKUI_ITEM_ALIGNMENT_START}, {.i32 = ARKUI_FLEX_ALIGNMENT_START}};
3093     ArkUI_AttributeItem flexOptItem = {flexOptVal, sizeof(flexOptVal) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
3094     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_FLEX_OPTION, &flexOptItem), ARKUI_ERROR_CODE_NO_ERROR);
3095     auto flexOptResult = nodeAPI->getAttribute(rootNode, NODE_FLEX_OPTION);
3096     EXPECT_EQ(flexOptResult->value[0].i32, static_cast<int32_t>(ARKUI_FLEX_DIRECTION_ROW));
3097 
3098     int32_t abnormalVal = 10;
3099     flexOptVal[4].i32 = abnormalVal;
3100     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_FLEX_OPTION, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3101     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_FLEX_OPTION, &flexOptItem), ARKUI_ERROR_CODE_PARAM_INVALID);
3102     flexOptVal[3].i32 = abnormalVal;
3103     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_FLEX_OPTION, &flexOptItem), ARKUI_ERROR_CODE_PARAM_INVALID);
3104     flexOptVal[2].i32 = abnormalVal;
3105     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_FLEX_OPTION, &flexOptItem), ARKUI_ERROR_CODE_PARAM_INVALID);
3106     flexOptVal[1].i32 = abnormalVal;
3107     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_FLEX_OPTION, &flexOptItem), ARKUI_ERROR_CODE_PARAM_INVALID);
3108     flexOptVal[0].i32 = abnormalVal;
3109     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_FLEX_OPTION, &flexOptItem), ARKUI_ERROR_CODE_PARAM_INVALID);
3110     flexOptItem.size = -1;
3111     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_FLEX_OPTION, &flexOptItem), ARKUI_ERROR_CODE_NO_ERROR);
3112 
3113     EXPECT_EQ(nodeAPI->resetAttribute(childNode, NODE_ALIGN_SELF), ARKUI_ERROR_CODE_NO_ERROR);
3114     EXPECT_EQ(nodeAPI->resetAttribute(childNode, NODE_FLEX_GROW), ARKUI_ERROR_CODE_NO_ERROR);
3115     EXPECT_EQ(nodeAPI->resetAttribute(childNode, NODE_FLEX_SHRINK), ARKUI_ERROR_CODE_NO_ERROR);
3116     EXPECT_EQ(nodeAPI->resetAttribute(childNode, NODE_FLEX_BASIS), ARKUI_ERROR_CODE_NO_ERROR);
3117     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_FLEX_OPTION), ARKUI_ERROR_CODE_NO_ERROR);
3118     nodeAPI->disposeNode(childNode);
3119     nodeAPI->disposeNode(rootNode);
3120 }
3121 
3122 /**
3123  * @tc.name: NativeNodeTest032
3124  * @tc.desc: Test refreshNode function.
3125  * @tc.type: FUNC
3126  */
3127 HWTEST_F(NativeNodeTest, NativeNodeTest032, TestSize.Level1)
3128 {
3129     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
3130         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
3131     auto rootNode = new ArkUI_Node({ARKUI_NODE_REFRESH, nullptr, true});
3132     ASSERT_NE(rootNode, nullptr);
3133     ArkUI_NumberValue value[] = {{.i32 = true}};
3134     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
3135     nodeAPI->setAttribute(rootNode, NODE_REFRESH_REFRESHING, &item);
3136     nodeAPI->setAttribute(rootNode, NODE_REFRESH_PULL_DOWN_RATIO, &item);
3137     value[0].f32 = 0.5f;
3138     nodeAPI->setAttribute(rootNode, NODE_REFRESH_PULL_DOWN_RATIO, &item);
3139     nodeAPI->setAttribute(rootNode, NODE_REFRESH_OFFSET, &item);
3140     item.object = rootNode;
3141     nodeAPI->setAttribute(rootNode, NODE_REFRESH_CONTENT, &item);
3142     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_REFRESH_CONTENT), ARKUI_ERROR_CODE_NO_ERROR);
3143     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_REFRESH_PULL_DOWN_RATIO), ARKUI_ERROR_CODE_NO_ERROR);
3144     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_REFRESH_OFFSET), ARKUI_ERROR_CODE_NO_ERROR);
3145     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_REFRESH_PULL_TO_REFRESH), ARKUI_ERROR_CODE_NO_ERROR);
3146 
3147     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_REFRESH_REFRESHING), nullptr);
3148     EXPECT_EQ(nodeAPI->getAttribute(rootNode, NODE_REFRESH_CONTENT), nullptr);
3149     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_REFRESH_PULL_DOWN_RATIO), nullptr);
3150     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_REFRESH_OFFSET), nullptr);
3151     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_REFRESH_PULL_TO_REFRESH), nullptr);
3152     nodeAPI->disposeNode(rootNode);
3153 }
3154 
3155 /**
3156  * @tc.name: NativeNodeTest033
3157  * @tc.desc: Test waterflowNode function.
3158  * @tc.type: FUNC
3159  */
3160 HWTEST_F(NativeNodeTest, NativeNodeTest033, TestSize.Level1)
3161 {
3162     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
3163         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
3164     auto rootNode = nodeAPI->createNode(ARKUI_NODE_WATER_FLOW);
3165     ASSERT_NE(rootNode, nullptr);
3166     float distance = 10.0f;
3167     uint32_t color = 0xFFFF0000;
3168     ArkUI_NumberValue value[] = {{.f32 = distance}};
3169     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue)};
3170     ArkUI_NumberValue value2[] = {{.f32 = distance}, {.f32 = distance}};
3171     ArkUI_AttributeItem item2 = {value2, sizeof(value2) / sizeof(ArkUI_NumberValue)};
3172     ArkUI_NumberValue scrollnested[] = {{.i32 = ARKUI_SCROLL_NESTED_MODE_SELF_ONLY},
3173         {.i32 = ARKUI_SCROLL_NESTED_MODE_SELF_ONLY}};
3174     ArkUI_AttributeItem scrollnestedItem = {scrollnested, sizeof(scrollnested) / sizeof(ArkUI_NumberValue)};
3175     ArkUI_NumberValue constraintSize[] = {{.f32 = distance}, {.f32 = distance}, {.f32 = distance}, {.f32 = distance}};
3176     ArkUI_AttributeItem constraintSizeItem = {constraintSize, sizeof(constraintSize) / sizeof(ArkUI_NumberValue)};
3177     ArkUI_NumberValue indexValue[] = {{.i32 = 0}, {.i32 = 0}, {.i32 = ARKUI_SCROLL_ALIGNMENT_START}};
3178     ArkUI_AttributeItem indexItem = {indexValue, sizeof(indexValue) / sizeof(ArkUI_NumberValue)};
3179     nodeAPI->setAttribute(rootNode, NODE_SCROLL_FRICTION, &item);
3180     nodeAPI->setAttribute(rootNode, NODE_SCROLL_BAR_WIDTH, &item);
3181     nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_COLUMN_GAP, &item);
3182     nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_ROW_GAP, &item);
3183     value[0].u32 = color;
3184     nodeAPI->setAttribute(rootNode, NODE_SCROLL_BAR_COLOR, &item);
3185 
3186     value[0].i32 = ARKUI_SCROLL_BAR_DISPLAY_MODE_AUTO;
3187     nodeAPI->setAttribute(rootNode, NODE_SCROLL_BAR_DISPLAY_MODE, &item);
3188     value[0].i32 = ARKUI_EDGE_EFFECT_NONE;
3189     nodeAPI->setAttribute(rootNode, NODE_SCROLL_EDGE_EFFECT, &item);
3190     value[0].i32 = ARKUI_FLEX_DIRECTION_ROW;
3191     nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_LAYOUT_DIRECTION, &item);
3192     value[0].i32 = true;
3193     nodeAPI->setAttribute(rootNode, NODE_SCROLL_ENABLE_SCROLL_INTERACTION, &item);
3194     nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_CACHED_COUNT, &item);
3195     nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_SCROLL_TO_INDEX, &item);
3196 
3197     // test default value of syncLoad
3198     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_WATER_FLOW_SYNC_LOAD), nullptr);
3199     auto result = nodeAPI->getAttribute(rootNode, NODE_WATER_FLOW_SYNC_LOAD);
3200     EXPECT_EQ(result->value[0].i32, 1);
3201 
3202     // set and reset syncLoad
3203     value[0].i32 = 0;
3204     nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_SYNC_LOAD, &item);
3205     result = nodeAPI->getAttribute(rootNode, NODE_WATER_FLOW_SYNC_LOAD);
3206     EXPECT_EQ(result->value[0].i32, 0);
3207     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_WATER_FLOW_SYNC_LOAD), ARKUI_ERROR_CODE_NO_ERROR);
3208     result = nodeAPI->getAttribute(rootNode, NODE_WATER_FLOW_SYNC_LOAD);
3209     EXPECT_EQ(result->value[0].i32, 1);
3210 
3211     // set invalid value to syncLoad
3212     value[0].i32 = -1;
3213     nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_SYNC_LOAD, &item);
3214     result = nodeAPI->getAttribute(rootNode, NODE_WATER_FLOW_SYNC_LOAD);
3215     EXPECT_EQ(result->value[0].i32, 1);
3216 
3217     item.string = "test";
3218     nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_COLUMN_TEMPLATE, &item);
3219     nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_ROW_TEMPLATE, &item);
3220 
3221     item.object = rootNode;
3222     nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_FOOTER, &item);
3223 
3224     nodeAPI->setAttribute(rootNode, NODE_SCROLL_NESTED_SCROLL, &scrollnestedItem);
3225     nodeAPI->setAttribute(rootNode, NODE_SCROLL_BY, &item2);
3226     nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_ITEM_CONSTRAINT_SIZE, &constraintSizeItem);
3227     nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_SCROLL_TO_INDEX, &indexItem);
3228     indexValue[2].i32 = ARKUI_SCROLL_ALIGNMENT_NONE;
3229     nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_SCROLL_TO_INDEX, &indexItem);
3230     indexValue[2].i32 = -1;
3231     indexValue[1].i32 = -1;
3232     nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_SCROLL_TO_INDEX, &indexItem);
3233     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_WATER_FLOW_LAYOUT_DIRECTION), ARKUI_ERROR_CODE_NO_ERROR);
3234     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_WATER_FLOW_COLUMN_TEMPLATE), ARKUI_ERROR_CODE_NO_ERROR);
3235     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_WATER_FLOW_ROW_TEMPLATE), ARKUI_ERROR_CODE_NO_ERROR);
3236     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_WATER_FLOW_COLUMN_GAP), ARKUI_ERROR_CODE_NO_ERROR);
3237     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_WATER_FLOW_ROW_GAP), ARKUI_ERROR_CODE_NO_ERROR);
3238     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_WATER_FLOW_SECTION_OPTION), ARKUI_ERROR_CODE_NO_ERROR);
3239     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_WATER_FLOW_NODE_ADAPTER), ARKUI_ERROR_CODE_NO_ERROR);
3240     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_WATER_FLOW_CACHED_COUNT), ARKUI_ERROR_CODE_NO_ERROR);
3241     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_WATER_FLOW_FOOTER), ARKUI_ERROR_CODE_NO_ERROR);
3242     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_WATER_FLOW_ITEM_CONSTRAINT_SIZE), ARKUI_ERROR_CODE_NO_ERROR);
3243     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SCROLL_FRICTION), ARKUI_ERROR_CODE_NO_ERROR);
3244     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SCROLL_BAR_DISPLAY_MODE), ARKUI_ERROR_CODE_NO_ERROR);
3245     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SCROLL_BAR_WIDTH), ARKUI_ERROR_CODE_NO_ERROR);
3246     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SCROLL_BAR_COLOR), ARKUI_ERROR_CODE_NO_ERROR);
3247     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SCROLL_EDGE_EFFECT), ARKUI_ERROR_CODE_NO_ERROR);
3248     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SCROLL_ENABLE_SCROLL_INTERACTION), ARKUI_ERROR_CODE_NO_ERROR);
3249     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SCROLL_NESTED_SCROLL), ARKUI_ERROR_CODE_NO_ERROR);
3250 
3251     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_WATER_FLOW_LAYOUT_DIRECTION), nullptr);
3252     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_WATER_FLOW_COLUMN_TEMPLATE), nullptr);
3253     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_WATER_FLOW_ROW_TEMPLATE), nullptr);
3254     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_WATER_FLOW_COLUMN_GAP), nullptr);
3255     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_WATER_FLOW_ROW_GAP), nullptr);
3256     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_WATER_FLOW_NODE_ADAPTER), nullptr);
3257     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_WATER_FLOW_CACHED_COUNT), nullptr);
3258     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_WATER_FLOW_ITEM_CONSTRAINT_SIZE), nullptr);
3259     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SCROLL_FRICTION), nullptr);
3260     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SCROLL_BAR_DISPLAY_MODE), nullptr);
3261     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SCROLL_BAR_WIDTH), nullptr);
3262     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SCROLL_BAR_COLOR), nullptr);
3263     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SCROLL_EDGE_EFFECT), nullptr);
3264     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SCROLL_ENABLE_SCROLL_INTERACTION), nullptr);
3265     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_SCROLL_NESTED_SCROLL), nullptr);
3266     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_WATER_FLOW_SECTION_OPTION), nullptr);
3267     nodeAPI->disposeNode(rootNode);
3268 }
3269 
3270 /**
3271  * @tc.name: NativeNodeTest034
3272  * @tc.desc: Test gridNode function.
3273  * @tc.type: FUNC
3274  */
3275 HWTEST_F(NativeNodeTest, NativeNodeTest034, TestSize.Level1)
3276 {
3277     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
3278         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
3279     auto rootNode = nodeAPI->createNode(ARKUI_NODE_GRID);
3280     ASSERT_NE(rootNode, nullptr);
3281     ArkUI_NumberValue value[] = {{.f32 = 1.0f}};
3282     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue), "test"};
3283     nodeAPI->setAttribute(rootNode, NODE_GRID_COLUMN_TEMPLATE, &item);
3284     nodeAPI->setAttribute(rootNode, NODE_GRID_ROW_TEMPLATE, &item);
3285     nodeAPI->setAttribute(rootNode, NODE_GRID_COLUMN_GAP, &item);
3286     nodeAPI->setAttribute(rootNode, NODE_GRID_ROW_GAP, &item);
3287     value[0].i32 = 1;
3288     nodeAPI->setAttribute(rootNode, NODE_GRID_CACHED_COUNT, &item);
3289 
3290     // test default value of syncLoad
3291     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_GRID_SYNC_LOAD), nullptr);
3292     auto result = nodeAPI->getAttribute(rootNode, NODE_GRID_SYNC_LOAD);
3293     EXPECT_EQ(result->value[0].i32, 1);
3294 
3295     // set and reset syncLoad
3296     value[0].i32 = 0;
3297     nodeAPI->setAttribute(rootNode, NODE_GRID_SYNC_LOAD, &item);
3298     result = nodeAPI->getAttribute(rootNode, NODE_GRID_SYNC_LOAD);
3299     EXPECT_EQ(result->value[0].i32, 0);
3300     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_GRID_SYNC_LOAD), ARKUI_ERROR_CODE_NO_ERROR);
3301     result = nodeAPI->getAttribute(rootNode, NODE_GRID_SYNC_LOAD);
3302     EXPECT_EQ(result->value[0].i32, 1);
3303 
3304     // set invalid value to syncLoad
3305     value[0].i32 = -1;
3306     nodeAPI->setAttribute(rootNode, NODE_GRID_SYNC_LOAD, &item);
3307     result = nodeAPI->getAttribute(rootNode, NODE_GRID_SYNC_LOAD);
3308     EXPECT_EQ(result->value[0].i32, 1);
3309 
3310     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_GRID_COLUMN_TEMPLATE), ARKUI_ERROR_CODE_NO_ERROR);
3311     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_GRID_ROW_TEMPLATE), ARKUI_ERROR_CODE_NO_ERROR);
3312     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_GRID_COLUMN_GAP), ARKUI_ERROR_CODE_NO_ERROR);
3313     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_GRID_ROW_GAP), ARKUI_ERROR_CODE_NO_ERROR);
3314     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_GRID_NODE_ADAPTER), ARKUI_ERROR_CODE_NO_ERROR);
3315     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_GRID_CACHED_COUNT), ARKUI_ERROR_CODE_NO_ERROR);
3316 
3317     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_GRID_COLUMN_TEMPLATE), nullptr);
3318     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_GRID_ROW_TEMPLATE), nullptr);
3319     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_GRID_COLUMN_GAP), nullptr);
3320     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_GRID_ROW_GAP), nullptr);
3321     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_GRID_NODE_ADAPTER), nullptr);
3322     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_GRID_CACHED_COUNT), nullptr);
3323 
3324     nodeAPI->disposeNode(rootNode);
3325 }
3326 
3327 /**
3328  * @tc.name: NativeNodeTest035
3329  * @tc.desc: Test relativeContainerNode function.
3330  * @tc.type: FUNC
3331  */
3332 HWTEST_F(NativeNodeTest, NativeNodeTest035, TestSize.Level1)
3333 {
3334     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
3335         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
3336     auto rootNode = new ArkUI_Node({ARKUI_NODE_RELATIVE_CONTAINER, nullptr, true});
3337     ASSERT_NE(rootNode, nullptr);
3338 
3339     auto alignRules = OH_ArkUI_AlignmentRuleOption_Create();
3340     float baisVal = 10.0f;
3341     ArkUI_AttributeItem alignRulesItem = {.size = 0, .object = alignRules};
3342     nodeAPI->setAttribute(rootNode, NODE_ALIGN_RULES, &alignRulesItem);
3343     OH_ArkUI_AlignmentRuleOption_SetStart(nullptr, nullptr, ARKUI_HORIZONTAL_ALIGNMENT_START);
3344     OH_ArkUI_AlignmentRuleOption_SetStart(alignRules, nullptr, ARKUI_HORIZONTAL_ALIGNMENT_START);
3345     EXPECT_EQ(OH_ArkUI_AlignmentRuleOption_GetStartId(alignRules), nullptr);
3346     EXPECT_EQ(OH_ArkUI_AlignmentRuleOption_GetStartAlignment(alignRules), static_cast<ArkUI_HorizontalAlignment>(-1));
3347     OH_ArkUI_AlignmentRuleOption_SetStart(alignRules, "__container__", ARKUI_HORIZONTAL_ALIGNMENT_START);
3348     OH_ArkUI_AlignmentRuleOption_SetTop(nullptr, nullptr, ARKUI_VERTICAL_ALIGNMENT_TOP);
3349     OH_ArkUI_AlignmentRuleOption_SetTop(alignRules, nullptr, ARKUI_VERTICAL_ALIGNMENT_TOP);
3350     EXPECT_EQ(OH_ArkUI_AlignmentRuleOption_GetTopId(alignRules), nullptr);
3351     EXPECT_EQ(OH_ArkUI_AlignmentRuleOption_GetTopAlignment(alignRules), static_cast<ArkUI_VerticalAlignment>(-1));
3352     OH_ArkUI_AlignmentRuleOption_SetTop(alignRules, "__container__", ARKUI_VERTICAL_ALIGNMENT_TOP);
3353     OH_ArkUI_AlignmentRuleOption_SetEnd(nullptr, nullptr, ARKUI_HORIZONTAL_ALIGNMENT_END);
3354     OH_ArkUI_AlignmentRuleOption_SetEnd(alignRules, nullptr, ARKUI_HORIZONTAL_ALIGNMENT_END);
3355     EXPECT_EQ(OH_ArkUI_AlignmentRuleOption_GetEndId(alignRules), nullptr);
3356     EXPECT_EQ(OH_ArkUI_AlignmentRuleOption_GetEndAlignment(alignRules), static_cast<ArkUI_HorizontalAlignment>(-1));
3357     OH_ArkUI_AlignmentRuleOption_SetEnd(alignRules, "__container__", ARKUI_HORIZONTAL_ALIGNMENT_END);
3358     OH_ArkUI_AlignmentRuleOption_SetBottom(nullptr, nullptr, ARKUI_VERTICAL_ALIGNMENT_BOTTOM);
3359     OH_ArkUI_AlignmentRuleOption_SetBottom(alignRules, nullptr, ARKUI_VERTICAL_ALIGNMENT_BOTTOM);
3360     EXPECT_EQ(OH_ArkUI_AlignmentRuleOption_GetBottomId(alignRules), nullptr);
3361     EXPECT_EQ(OH_ArkUI_AlignmentRuleOption_GetBottomAlignment(alignRules), static_cast<ArkUI_VerticalAlignment>(-1));
3362     OH_ArkUI_AlignmentRuleOption_SetBottom(alignRules, "__container__", ARKUI_VERTICAL_ALIGNMENT_BOTTOM);
3363     OH_ArkUI_AlignmentRuleOption_SetCenterHorizontal(nullptr, nullptr, ARKUI_HORIZONTAL_ALIGNMENT_CENTER);
3364     OH_ArkUI_AlignmentRuleOption_SetCenterHorizontal(alignRules, nullptr, ARKUI_HORIZONTAL_ALIGNMENT_CENTER);
3365     EXPECT_EQ(OH_ArkUI_AlignmentRuleOption_GetCenterIdHorizontal(alignRules), nullptr);
3366     EXPECT_EQ(OH_ArkUI_AlignmentRuleOption_GetCenterAlignmentHorizontal(alignRules),
3367         static_cast<ArkUI_HorizontalAlignment>(-1));
3368     OH_ArkUI_AlignmentRuleOption_SetCenterHorizontal(alignRules, "__container__", ARKUI_HORIZONTAL_ALIGNMENT_CENTER);
3369     OH_ArkUI_AlignmentRuleOption_SetCenterVertical(nullptr, nullptr, ARKUI_VERTICAL_ALIGNMENT_CENTER);
3370     OH_ArkUI_AlignmentRuleOption_SetCenterVertical(alignRules, nullptr, ARKUI_VERTICAL_ALIGNMENT_CENTER);
3371     EXPECT_EQ(OH_ArkUI_AlignmentRuleOption_GetCenterIdVertical(alignRules), nullptr);
3372     EXPECT_EQ(OH_ArkUI_AlignmentRuleOption_GetCenterAlignmentVertical(alignRules),
3373         static_cast<ArkUI_VerticalAlignment>(-1));
3374     OH_ArkUI_AlignmentRuleOption_SetCenterVertical(alignRules, "__container__", ARKUI_VERTICAL_ALIGNMENT_CENTER);
3375     OH_ArkUI_AlignmentRuleOption_SetBiasHorizontal(nullptr, baisVal);
3376     OH_ArkUI_AlignmentRuleOption_SetBiasHorizontal(alignRules, baisVal);
3377     OH_ArkUI_AlignmentRuleOption_SetBiasVertical(nullptr, baisVal);
3378     OH_ArkUI_AlignmentRuleOption_SetBiasVertical(alignRules, baisVal);
3379     alignRulesItem.object = alignRules;
3380     nodeAPI->setAttribute(rootNode, NODE_ALIGN_RULES, &alignRulesItem);
3381     auto alignRulesGetVal = nodeAPI->getAttribute(rootNode, NODE_ALIGN_RULES);
3382     ASSERT_NE(alignRulesGetVal, nullptr);
3383     OH_ArkUI_AlignmentRuleOption_GetStartId(alignRules);
3384     OH_ArkUI_AlignmentRuleOption_GetStartAlignment(alignRules);
3385     OH_ArkUI_AlignmentRuleOption_GetEndId(alignRules);
3386     OH_ArkUI_AlignmentRuleOption_GetEndAlignment(alignRules);
3387     OH_ArkUI_AlignmentRuleOption_GetCenterIdHorizontal(alignRules);
3388     OH_ArkUI_AlignmentRuleOption_GetCenterAlignmentHorizontal(alignRules);
3389     OH_ArkUI_AlignmentRuleOption_GetTopId(alignRules);
3390     OH_ArkUI_AlignmentRuleOption_GetTopAlignment(alignRules);
3391     OH_ArkUI_AlignmentRuleOption_GetBottomId(alignRules);
3392     OH_ArkUI_AlignmentRuleOption_GetBottomAlignment(alignRules);
3393     OH_ArkUI_AlignmentRuleOption_GetCenterIdVertical(alignRules);
3394     OH_ArkUI_AlignmentRuleOption_GetCenterAlignmentVertical(alignRules);
3395     OH_ArkUI_AlignmentRuleOption_GetBiasHorizontal(alignRules);
3396     OH_ArkUI_AlignmentRuleOption_GetBiasVertical(alignRules);
3397 
3398     EXPECT_EQ(OH_ArkUI_AlignmentRuleOption_GetStartId(nullptr), nullptr);
3399     EXPECT_EQ(OH_ArkUI_AlignmentRuleOption_GetStartAlignment(nullptr), static_cast<ArkUI_HorizontalAlignment>(-1));
3400     EXPECT_EQ(OH_ArkUI_AlignmentRuleOption_GetEndId(nullptr), nullptr);
3401     EXPECT_EQ(OH_ArkUI_AlignmentRuleOption_GetEndAlignment(nullptr), static_cast<ArkUI_HorizontalAlignment>(-1));
3402     EXPECT_EQ(OH_ArkUI_AlignmentRuleOption_GetCenterIdHorizontal(nullptr), nullptr);
3403     EXPECT_EQ(OH_ArkUI_AlignmentRuleOption_GetCenterAlignmentHorizontal(nullptr),
3404         static_cast<ArkUI_HorizontalAlignment>(-1));
3405     EXPECT_EQ(OH_ArkUI_AlignmentRuleOption_GetTopId(nullptr), nullptr);
3406     EXPECT_EQ(OH_ArkUI_AlignmentRuleOption_GetTopAlignment(nullptr), static_cast<ArkUI_VerticalAlignment>(-1));
3407     EXPECT_EQ(OH_ArkUI_AlignmentRuleOption_GetBottomId(nullptr), nullptr);
3408     EXPECT_EQ(OH_ArkUI_AlignmentRuleOption_GetBottomAlignment(nullptr), static_cast<ArkUI_VerticalAlignment>(-1));
3409     EXPECT_EQ(OH_ArkUI_AlignmentRuleOption_GetCenterIdVertical(nullptr), nullptr);
3410     EXPECT_EQ(OH_ArkUI_AlignmentRuleOption_GetCenterAlignmentVertical(nullptr),
3411         static_cast<ArkUI_VerticalAlignment>(-1));
3412     EXPECT_EQ(OH_ArkUI_AlignmentRuleOption_GetBiasHorizontal(nullptr), -1.0f);
3413     EXPECT_EQ(OH_ArkUI_AlignmentRuleOption_GetBiasVertical(nullptr), -1.0f);
3414 
3415 
3416     ArkUI_NumberValue chainModeVal[] = {{.i32 = ARKUI_AXIS_HORIZONTAL},
3417         {.i32 = ARKUI_RELATIVE_LAYOUT_CHAIN_STYLE_PACKED}};
3418     ArkUI_AttributeItem chainModeItem = {chainModeVal, sizeof(chainModeVal) / sizeof(ArkUI_NumberValue)};
3419     auto chainModRet = nodeAPI->setAttribute(rootNode, NODE_RELATIVE_LAYOUT_CHAIN_MODE, &chainModeItem);
3420     EXPECT_EQ(chainModRet, ARKUI_ERROR_CODE_NO_ERROR);
3421     EXPECT_EQ(nodeAPI->setAttribute(
3422         rootNode, NODE_RELATIVE_LAYOUT_CHAIN_MODE, nullptr), ARKUI_ERROR_CODE_PARAM_INVALID);
3423     auto chainModResult = nodeAPI->getAttribute(rootNode, NODE_RELATIVE_LAYOUT_CHAIN_MODE);
3424     EXPECT_NE(chainModResult, nullptr);
3425 
3426     int32_t guideLineOptSize = 1;
3427     float positionStart = 50.0f;
3428     float positionEnd = 60.0f;
3429     auto guidelineOption = OH_ArkUI_GuidelineOption_Create(guideLineOptSize);
3430     OH_ArkUI_GuidelineOption_SetId(nullptr, nullptr, 0);
3431     OH_ArkUI_GuidelineOption_SetId(guidelineOption, nullptr, -1);
3432     OH_ArkUI_GuidelineOption_SetId(guidelineOption, nullptr, 2);
3433     OH_ArkUI_GuidelineOption_SetId(guidelineOption, "__container__", 0);
3434     OH_ArkUI_GuidelineOption_SetDirection(nullptr, ARKUI_AXIS_VERTICAL, 0);
3435     OH_ArkUI_GuidelineOption_SetDirection(guidelineOption, ARKUI_AXIS_VERTICAL, -1);
3436     OH_ArkUI_GuidelineOption_SetDirection(guidelineOption, ARKUI_AXIS_VERTICAL, 2);
3437     OH_ArkUI_GuidelineOption_SetDirection(guidelineOption, ARKUI_AXIS_VERTICAL, 0);
3438     OH_ArkUI_GuidelineOption_SetPositionStart(nullptr, positionStart, 0);
3439     OH_ArkUI_GuidelineOption_SetPositionStart(guidelineOption, positionStart, -1);
3440     OH_ArkUI_GuidelineOption_SetPositionStart(guidelineOption, positionStart, 2);
3441     OH_ArkUI_GuidelineOption_SetPositionStart(guidelineOption, positionStart, 0);
3442     OH_ArkUI_GuidelineOption_SetPositionEnd(nullptr, positionEnd, 0);
3443     OH_ArkUI_GuidelineOption_SetPositionEnd(guidelineOption, positionEnd, -1);
3444     OH_ArkUI_GuidelineOption_SetPositionEnd(guidelineOption, positionEnd, 2);
3445     OH_ArkUI_GuidelineOption_SetPositionEnd(guidelineOption, positionEnd, 0);
3446     ArkUI_AttributeItem guidelineOptItem = {.object = guidelineOption};
3447     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_RELATIVE_CONTAINER_GUIDE_LINE, &guidelineOptItem),
3448         ARKUI_ERROR_CODE_NO_ERROR);
3449     auto guidelineOptResult = nodeAPI->getAttribute(rootNode, NODE_RELATIVE_CONTAINER_GUIDE_LINE);
3450     ASSERT_NE(guidelineOptResult, nullptr);
3451     OH_ArkUI_GuidelineOption_GetId(guidelineOption, 0);
3452     OH_ArkUI_GuidelineOption_GetDirection(guidelineOption, 0);
3453     OH_ArkUI_GuidelineOption_GetPositionStart(guidelineOption, 0);
3454     OH_ArkUI_GuidelineOption_GetPositionEnd(guidelineOption, 0);
3455     EXPECT_EQ(OH_ArkUI_GuidelineOption_GetId(nullptr, 0), nullptr);
3456     EXPECT_EQ(OH_ArkUI_GuidelineOption_GetId(guidelineOption, -1), nullptr);
3457     EXPECT_EQ(OH_ArkUI_GuidelineOption_GetId(guidelineOption, 2), nullptr);
3458     EXPECT_EQ(OH_ArkUI_GuidelineOption_GetDirection(nullptr, 0), static_cast<ArkUI_Axis>(-1));
3459     EXPECT_EQ(OH_ArkUI_GuidelineOption_GetDirection(guidelineOption, -1), static_cast<ArkUI_Axis>(-1));
3460     EXPECT_EQ(OH_ArkUI_GuidelineOption_GetDirection(guidelineOption, 2), static_cast<ArkUI_Axis>(-1));
3461     EXPECT_EQ(OH_ArkUI_GuidelineOption_GetPositionStart(nullptr, 0), 0.0f);
3462     EXPECT_EQ(OH_ArkUI_GuidelineOption_GetPositionStart(guidelineOption, -1), 0.0f);
3463     EXPECT_EQ(OH_ArkUI_GuidelineOption_GetPositionStart(guidelineOption, 2), 0.0f);
3464     EXPECT_EQ(OH_ArkUI_GuidelineOption_GetPositionEnd(nullptr, 0), 0.0f);
3465     EXPECT_EQ(OH_ArkUI_GuidelineOption_GetPositionEnd(guidelineOption, -1), 0.0f);
3466     EXPECT_EQ(OH_ArkUI_GuidelineOption_GetPositionEnd(guidelineOption, 2), 0.0f);
3467 
3468     auto abnormalBarrierOption = OH_ArkUI_BarrierOption_Create(-1);
3469     auto barrierOption = OH_ArkUI_BarrierOption_Create(guideLineOptSize);
3470     OH_ArkUI_BarrierOption_SetId(nullptr, nullptr, 0);
3471     OH_ArkUI_BarrierOption_SetId(barrierOption, nullptr, -1);
3472     OH_ArkUI_BarrierOption_SetId(barrierOption, nullptr, 2);
3473     OH_ArkUI_BarrierOption_SetId(barrierOption, "__container__", 0);
3474     OH_ArkUI_BarrierOption_SetDirection(nullptr, ARKUI_BARRIER_DIRECTION_TOP, 0);
3475     OH_ArkUI_BarrierOption_SetDirection(barrierOption, ARKUI_BARRIER_DIRECTION_TOP, -1);
3476     OH_ArkUI_BarrierOption_SetDirection(barrierOption, ARKUI_BARRIER_DIRECTION_TOP, 2);
3477     OH_ArkUI_BarrierOption_SetDirection(barrierOption, ARKUI_BARRIER_DIRECTION_TOP, 0);
3478     OH_ArkUI_BarrierOption_SetReferencedId(nullptr, nullptr, 0);
3479     OH_ArkUI_BarrierOption_SetReferencedId(barrierOption, nullptr, -1);
3480     OH_ArkUI_BarrierOption_SetReferencedId(barrierOption, nullptr, 2);
3481     OH_ArkUI_BarrierOption_SetReferencedId(barrierOption, "__container__", 0);
3482     ArkUI_AttributeItem barrierOptItem = {.object = barrierOption};
3483     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_RELATIVE_CONTAINER_BARRIER, &barrierOptItem),
3484         ARKUI_ERROR_CODE_NO_ERROR);
3485     auto barrierOptResult = nodeAPI->getAttribute(rootNode, NODE_RELATIVE_CONTAINER_BARRIER);
3486     ASSERT_NE(barrierOptResult, nullptr);
3487     OH_ArkUI_BarrierOption_GetId(barrierOption, 0);
3488     OH_ArkUI_BarrierOption_GetDirection(barrierOption, 0);
3489     OH_ArkUI_BarrierOption_GetReferencedId(barrierOption, 0, 0);
3490     OH_ArkUI_BarrierOption_GetReferencedIdSize(barrierOption, 0);
3491     EXPECT_EQ(OH_ArkUI_BarrierOption_GetId(nullptr, 0), nullptr);
3492     EXPECT_EQ(OH_ArkUI_BarrierOption_GetId(barrierOption, -1), nullptr);
3493     EXPECT_EQ(OH_ArkUI_BarrierOption_GetId(barrierOption, 2), nullptr);
3494     EXPECT_EQ(OH_ArkUI_BarrierOption_GetDirection(nullptr, 0), ARKUI_BARRIER_DIRECTION_TOP);
3495     EXPECT_EQ(OH_ArkUI_BarrierOption_GetDirection(barrierOption, -1), ARKUI_BARRIER_DIRECTION_TOP);
3496     EXPECT_EQ(OH_ArkUI_BarrierOption_GetDirection(barrierOption, 2), ARKUI_BARRIER_DIRECTION_TOP);
3497     EXPECT_EQ(OH_ArkUI_BarrierOption_GetReferencedId(nullptr, 0, 0), nullptr);
3498     EXPECT_EQ(OH_ArkUI_BarrierOption_GetReferencedId(barrierOption, -1, 0), nullptr);
3499     EXPECT_EQ(OH_ArkUI_BarrierOption_GetReferencedId(barrierOption, 2, 0), nullptr);
3500     EXPECT_EQ(OH_ArkUI_BarrierOption_GetReferencedId(barrierOption, 0, -1), nullptr);
3501     EXPECT_EQ(OH_ArkUI_BarrierOption_GetReferencedId(barrierOption, 0, 2), nullptr);
3502     EXPECT_EQ(OH_ArkUI_BarrierOption_GetReferencedIdSize(nullptr, 0), 0);
3503     EXPECT_EQ(OH_ArkUI_BarrierOption_GetReferencedIdSize(barrierOption, -1), 0);
3504     EXPECT_EQ(OH_ArkUI_BarrierOption_GetReferencedIdSize(barrierOption, 2), 0);
3505 
3506     OH_ArkUI_AlignmentRuleOption_Dispose(alignRules);
3507     OH_ArkUI_GuidelineOption_Dispose(guidelineOption);
3508     OH_ArkUI_BarrierOption_Dispose(barrierOption);
3509     OH_ArkUI_BarrierOption_Dispose(abnormalBarrierOption);
3510 
3511     OH_ArkUI_AlignmentRuleOption_Dispose(nullptr);
3512     OH_ArkUI_GuidelineOption_Dispose(nullptr);
3513     OH_ArkUI_BarrierOption_Dispose(nullptr);
3514 
3515     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_ALIGN_RULES), ARKUI_ERROR_CODE_NO_ERROR);
3516     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_RELATIVE_LAYOUT_CHAIN_MODE), ARKUI_ERROR_CODE_NO_ERROR);
3517     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_RELATIVE_CONTAINER_GUIDE_LINE), ARKUI_ERROR_CODE_NO_ERROR);
3518     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_RELATIVE_CONTAINER_BARRIER), ARKUI_ERROR_CODE_NO_ERROR);
3519     nodeAPI->disposeNode(rootNode);
3520 }
3521 
3522 /**
3523  * @tc.name: NativeNodeTest036
3524  * @tc.desc: Test imageAnimatorNode function.
3525  * @tc.type: FUNC
3526  */
3527 HWTEST_F(NativeNodeTest, NativeNodeTest036, TestSize.Level1)
3528 {
3529     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
3530         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
3531     auto rootNode = new ArkUI_Node({ARKUI_NODE_IMAGE_ANIMATOR, nullptr, true});
3532     ASSERT_NE(rootNode, nullptr);
3533     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_IMAGE_ANIMATOR_IMAGES), ARKUI_ERROR_CODE_NO_ERROR);
3534     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_IMAGE_ANIMATOR_STATE), ARKUI_ERROR_CODE_NO_ERROR);
3535     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_IMAGE_ANIMATOR_DURATION), ARKUI_ERROR_CODE_NO_ERROR);
3536     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_IMAGE_ANIMATOR_REVERSE), ARKUI_ERROR_CODE_NO_ERROR);
3537     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_IMAGE_ANIMATOR_FIXED_SIZE), ARKUI_ERROR_CODE_NO_ERROR);
3538     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_IMAGE_ANIMATOR_FILL_MODE), ARKUI_ERROR_CODE_NO_ERROR);
3539     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_IMAGE_ANIMATOR_ITERATION), ARKUI_ERROR_CODE_NO_ERROR);
3540 
3541     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_IMAGE_ANIMATOR_IMAGES), nullptr);
3542     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_IMAGE_ANIMATOR_STATE), nullptr);
3543     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_IMAGE_ANIMATOR_DURATION), nullptr);
3544     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_IMAGE_ANIMATOR_REVERSE), nullptr);
3545     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_IMAGE_ANIMATOR_FIXED_SIZE), nullptr);
3546     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_IMAGE_ANIMATOR_FILL_MODE), nullptr);
3547     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_IMAGE_ANIMATOR_ITERATION), nullptr);
3548     nodeAPI->disposeNode(rootNode);
3549 }
3550 
3551 /**
3552  * @tc.name: NativeNodeTest037
3553  * @tc.desc: Test abnormalInputForCommon function.
3554  * @tc.type: FUNC
3555  */
3556 HWTEST_F(NativeNodeTest, NativeNodeTest037, TestSize.Level1)
3557 {
3558     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
3559         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
3560     auto rootNode = new ArkUI_Node({ARKUI_NODE_STACK, nullptr, true});
3561     float negativeFloat = -1.0f;
3562     int32_t negativeEnum = -1;
3563     uint32_t color = 0XFFFF0000;
3564     float val0 = 0.0f;
3565     float val1 = 1.0f;
3566     float val10 = 10.0f;
3567     ArkUI_NumberValue value[] = {{.f32 = negativeFloat}};
3568     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue)};
3569     ArkUI_NumberValue value4[] = {{.f32 = negativeFloat}, {.f32 = negativeFloat}, {.f32 = negativeFloat},
3570         {.f32 = negativeFloat}};
3571     ArkUI_AttributeItem item4 = {value4, sizeof(value4) / sizeof(ArkUI_NumberValue)};
3572     ArkUI_NumberValue value0[] = {};
3573     ArkUI_AttributeItem item0 = {value0, 0, nullptr, nullptr};
3574     ArkUI_NumberValue valueEnum[] = {{.i32 = negativeEnum}};
3575     ArkUI_AttributeItem itemEnum = {valueEnum, 1, "test", nullptr};
3576     ArkUI_NumberValue valueEnum4[] = {{.i32 = negativeEnum}, {.i32 = negativeEnum}, {.i32 = negativeEnum},
3577         {.i32 = negativeEnum}};
3578     ArkUI_AttributeItem itemEnum4 = {valueEnum4, sizeof(valueEnum4) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
3579 
3580     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_WIDTH, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
3581     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_WIDTH, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3582     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_HEIGHT, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
3583     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_HEIGHT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3584     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_WIDTH_PERCENT, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
3585     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_WIDTH_PERCENT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3586     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_HEIGHT_PERCENT, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
3587     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_HEIGHT_PERCENT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3588     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BACKGROUND_COLOR, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3589     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BACKGROUND_IMAGE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3590     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BACKGROUND_IMAGE, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3591     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_PADDING, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3592     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_PADDING_PERCENT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3593     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_ID, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3594     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_ENABLED, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3595     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_ENABLED, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3596     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_MARGIN, nullptr), ARKUI_ERROR_CODE_PARAM_INVALID);
3597     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_MARGIN, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3598     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_MARGIN_PERCENT, nullptr), ARKUI_ERROR_CODE_PARAM_INVALID);
3599     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_MARGIN_PERCENT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3600     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_FONT_COLOR, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
3601     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_FONT_SIZE, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
3602     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TRANSLATE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3603     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SCALE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3604     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_ROTATE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3605     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BRIGHTNESS, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3606     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BRIGHTNESS, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
3607     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SATURATION, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3608     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SATURATION, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
3609     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BLUR, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3610     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_LINEAR_GRADIENT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3611     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_LINEAR_GRADIENT, &item4), ARKUI_ERROR_CODE_PARAM_INVALID);
3612     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_ALIGNMENT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3613     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_ALIGNMENT, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3614     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_OPACITY, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3615     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_OPACITY, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
3616     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BORDER_WIDTH, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3617     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BORDER_WIDTH, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
3618     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BORDER_WIDTH, &item4), ARKUI_ERROR_CODE_PARAM_INVALID);
3619     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BORDER_WIDTH_PERCENT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3620     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BORDER_WIDTH_PERCENT, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
3621     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BORDER_WIDTH_PERCENT, &item4), ARKUI_ERROR_CODE_PARAM_INVALID);
3622     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BORDER_RADIUS, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3623     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BORDER_RADIUS, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
3624     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BORDER_RADIUS, &item4), ARKUI_ERROR_CODE_PARAM_INVALID);
3625     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BORDER_RADIUS_PERCENT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3626     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BORDER_RADIUS_PERCENT, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
3627     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BORDER_RADIUS_PERCENT, &item4), ARKUI_ERROR_CODE_PARAM_INVALID);
3628     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BORDER_COLOR, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3629     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BORDER_STYLE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3630     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BORDER_STYLE, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3631     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BORDER_STYLE, &itemEnum4), ARKUI_ERROR_CODE_PARAM_INVALID);
3632     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_Z_INDEX, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3633     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_VISIBILITY, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3634     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_VISIBILITY, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3635     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CLIP, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3636     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CLIP, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3637     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CLIP_SHAPE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3638     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CLIP_SHAPE, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3639     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TRANSFORM, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3640     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_HIT_TEST_BEHAVIOR, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3641     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_HIT_TEST_BEHAVIOR, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3642     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_POSITION, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3643     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SHADOW, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3644     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SHADOW, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3645     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CUSTOM_SHADOW, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3646     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CUSTOM_SHADOW, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
3647     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_FOCUSABLE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3648     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_FOCUSABLE, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3649     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_ACCESSIBILITY_GROUP, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3650     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_ACCESSIBILITY_GROUP, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3651     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_ACCESSIBILITY_TEXT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3652     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_ACCESSIBILITY_MODE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3653     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_ACCESSIBILITY_MODE, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3654     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_ACCESSIBILITY_DESCRIPTION, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3655     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_ACCESSIBILITY_ACTIONS, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3656     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_ACCESSIBILITY_ROLE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3657     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_DEFAULT_FOCUS, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3658     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_DEFAULT_FOCUS, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3659     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_RESPONSE_REGION, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3660     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_OVERLAY, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3661     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_OVERLAY, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3662     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BACKGROUND_IMAGE_POSITION, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3663     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWEEP_GRADIENT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3664     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWEEP_GRADIENT, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3665     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_RADIAL_GRADIENT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3666     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_RADIAL_GRADIENT, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3667     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_MASK, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3668     ArkUI_NumberValue mask[] = {{.u32 = color}, {.u32 = color}, {.f32 = val10}, {.i32 = ARKUI_MASK_TYPE_RECTANGLE},
3669         {.f32 = negativeFloat}, {.f32 = negativeFloat}, {.f32 = negativeFloat}, {.f32 = negativeFloat}};
3670     ArkUI_AttributeItem maskItem = {mask, sizeof(mask) / sizeof(ArkUI_NumberValue)};
3671     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_MASK, &maskItem), ARKUI_ERROR_CODE_PARAM_INVALID);
3672     maskItem.size = 5;
3673     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_MASK, &maskItem), ARKUI_ERROR_CODE_PARAM_INVALID);
3674     mask[3].i32 = ARKUI_MASK_TYPE_PATH;
3675     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_MASK, &maskItem), ARKUI_ERROR_CODE_PARAM_INVALID);
3676     mask[0].i32 = ARKUI_MASK_TYPE_PROGRESS;
3677     mask[1].f32 = negativeFloat;
3678     mask[3].u32 = color;
3679     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_MASK, &maskItem), ARKUI_ERROR_CODE_PARAM_INVALID);
3680     mask[1].f32 = val10;
3681     mask[2].f32 = negativeFloat;
3682     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_MASK, &maskItem), ARKUI_ERROR_CODE_PARAM_INVALID);
3683     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BLEND_MODE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3684     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BLEND_MODE, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3685 
3686     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_DIRECTION, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3687     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_DIRECTION, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3688     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CONSTRAINT_SIZE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3689     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CONSTRAINT_SIZE, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3690     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CONSTRAINT_SIZE, &item4), ARKUI_ERROR_CODE_PARAM_INVALID);
3691     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_GRAY_SCALE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3692     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_GRAY_SCALE, &item4), ARKUI_ERROR_CODE_PARAM_INVALID);
3693     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_INVERT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3694     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_INVERT, &item4), ARKUI_ERROR_CODE_PARAM_INVALID);
3695     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SEPIA, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3696     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SEPIA, &item4), ARKUI_ERROR_CODE_PARAM_INVALID);
3697     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CONTRAST, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3698     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CONTRAST, &item4), ARKUI_ERROR_CODE_PARAM_INVALID);
3699     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_FOREGROUND_COLOR, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3700     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_OFFSET, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3701     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_MARK_ANCHOR, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3702     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_ALIGN_RULES, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3703     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_FOCUS_STATUS, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3704     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_FOCUS_STATUS, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3705     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_ASPECT_RATIO, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3706     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_ASPECT_RATIO, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
3707     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_LAYOUT_WEIGHT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3708     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_DISPLAY_PRIORITY, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3709     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_OUTLINE_WIDTH, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3710     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_GEOMETRY_TRANSITION, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3711     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_RENDER_FIT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3712     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_RENDER_FIT, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3713     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_OUTLINE_COLOR, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3714     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SIZE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3715     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SIZE, &item4), ARKUI_ERROR_CODE_PARAM_INVALID);
3716     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_RENDER_GROUP, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3717     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_RENDER_GROUP, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3718     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_COLOR_BLEND, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3719     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BACKGROUND_IMAGE_SIZE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3720     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BACKGROUND_IMAGE_SIZE, &item4), ARKUI_ERROR_CODE_PARAM_INVALID);
3721     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BACKGROUND_IMAGE_SIZE_WITH_STYLE, &item0),
3722         ARKUI_ERROR_CODE_PARAM_INVALID);
3723     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BACKGROUND_IMAGE_SIZE_WITH_STYLE, &itemEnum),
3724         ARKUI_ERROR_CODE_PARAM_INVALID);
3725     ArkUI_NumberValue backgroundBlurVal[] = {{.i32 = ARKUI_BLUR_STYLE_THIN}, {.i32 = ARKUI_COLOR_MODE_SYSTEM},
3726         {.i32 = ARKUI_ADAPTIVE_COLOR_DEFAULT}, {.f32 = 0}, {.f32 = 0}, {.f32 = negativeFloat}};
3727     ArkUI_AttributeItem backgroundBlurItem = {backgroundBlurVal, sizeof(backgroundBlurVal) / sizeof(ArkUI_NumberValue)};
3728     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BACKGROUND_BLUR_STYLE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3729     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_FOREGROUND_BLUR_STYLE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3730     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BACKGROUND_BLUR_STYLE, &backgroundBlurItem),
3731         ARKUI_ERROR_CODE_PARAM_INVALID);
3732     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_FOREGROUND_BLUR_STYLE, &backgroundBlurItem),
3733         ARKUI_ERROR_CODE_PARAM_INVALID);
3734     backgroundBlurVal[4].f32 = negativeFloat;
3735     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BACKGROUND_BLUR_STYLE, &backgroundBlurItem),
3736         ARKUI_ERROR_CODE_PARAM_INVALID);
3737     backgroundBlurVal[3].f32 = negativeFloat;
3738     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BACKGROUND_BLUR_STYLE, &backgroundBlurItem),
3739         ARKUI_ERROR_CODE_PARAM_INVALID);
3740     backgroundBlurVal[2].i32 = negativeEnum;
3741     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BACKGROUND_BLUR_STYLE, &backgroundBlurItem),
3742         ARKUI_ERROR_CODE_PARAM_INVALID);
3743     backgroundBlurVal[1].i32 = negativeEnum;
3744     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BACKGROUND_BLUR_STYLE, &backgroundBlurItem),
3745         ARKUI_ERROR_CODE_PARAM_INVALID);
3746     backgroundBlurVal[0].i32 = negativeEnum;
3747     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BACKGROUND_BLUR_STYLE, &backgroundBlurItem),
3748         ARKUI_ERROR_CODE_PARAM_INVALID);
3749     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TRANSFORM_CENTER, &item4), ARKUI_ERROR_CODE_PARAM_INVALID);
3750     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_OPACITY_TRANSITION, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3751     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_ROTATE_TRANSITION, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3752     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SCALE_TRANSITION, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3753     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TRANSLATE_TRANSITION, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3754     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_MOVE_TRANSITION, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3755     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_LAYOUT_RECT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3756     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_LAYOUT_RECT, &itemEnum4), ARKUI_ERROR_CODE_PARAM_INVALID);
3757     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_FOCUS_ON_TOUCH, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3758     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_FOCUS_ON_TOUCH, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3759     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_ACCESSIBILITY_STATE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3760     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_ACCESSIBILITY_VALUE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3761     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_EXPAND_SAFE_AREA, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3762     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_VISIBLE_AREA_CHANGE_RATIO, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3763     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_VISIBLE_AREA_CHANGE_RATIO, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
3764     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TRANSITION, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3765 
3766     ArkUI_NumberValue opacityTransition[] = {{.f32 = val0}, {.i32 = 1000}, {.i32 = ARKUI_CURVE_LINEAR}, {.i32 = 1000},
3767         {.i32 = 1}, {.i32 = ARKUI_ANIMATION_PLAY_MODE_NORMAL}, {.f32 = val1}};
3768     ArkUI_AttributeItem opacityTransitionItem =
3769         {opacityTransition, sizeof(opacityTransition) / sizeof(ArkUI_NumberValue)};
3770     opacityTransition[6].f32 = negativeFloat;
3771     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_OPACITY_TRANSITION, &opacityTransitionItem),
3772         ARKUI_ERROR_CODE_PARAM_INVALID);
3773     opacityTransition[5].i32 = negativeEnum;
3774     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_OPACITY_TRANSITION, &opacityTransitionItem),
3775         ARKUI_ERROR_CODE_PARAM_INVALID);
3776     opacityTransition[5].i32 = static_cast<int32_t>(ARKUI_ANIMATION_PLAY_MODE_ALTERNATE_REVERSE) + 1;
3777     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_OPACITY_TRANSITION, &opacityTransitionItem),
3778         ARKUI_ERROR_CODE_PARAM_INVALID);
3779     opacityTransition[2].i32 = negativeEnum;
3780     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_OPACITY_TRANSITION, &opacityTransitionItem),
3781         ARKUI_ERROR_CODE_PARAM_INVALID);
3782     opacityTransition[2].i32 = static_cast<int32_t>(ARKUI_CURVE_FRICTION) + 1;
3783     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_OPACITY_TRANSITION, &opacityTransitionItem),
3784         ARKUI_ERROR_CODE_PARAM_INVALID);
3785 
3786     valueEnum4[0].i32 = 0;
3787     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BLEND_MODE, &itemEnum4), ARKUI_ERROR_CODE_PARAM_INVALID);
3788     valueEnum4[2].i32 = 0;
3789     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_LAYOUT_RECT, &itemEnum4), ARKUI_ERROR_CODE_PARAM_INVALID);
3790     valueEnum4[0].u32 = 0;
3791     valueEnum4[1].u32 = 0;
3792     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_EXPAND_SAFE_AREA, &itemEnum4), ARKUI_ERROR_CODE_NO_ERROR);
3793     valueEnum4[1].u32 = 20;
3794     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_EXPAND_SAFE_AREA, &itemEnum4), ARKUI_ERROR_CODE_PARAM_INVALID);
3795     valueEnum4[0].u32 = 20;
3796     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_EXPAND_SAFE_AREA, &itemEnum4), ARKUI_ERROR_CODE_PARAM_INVALID);
3797     valueEnum[0].u32 = -1;
3798     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_ACCESSIBILITY_ROLE, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3799     item0.size = -1;
3800     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TRANSFORM_CENTER, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3801     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BORDER_WIDTH, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3802     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BORDER_RADIUS, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3803     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BORDER_WIDTH_PERCENT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3804     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BORDER_RADIUS_PERCENT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3805     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BORDER_COLOR, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3806     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BORDER_STYLE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3807     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CUSTOM_SHADOW, &item0), ARKUI_ERROR_CODE_NO_ERROR);
3808     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_OUTLINE_COLOR, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3809     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_EXPAND_SAFE_AREA, &item0), ARKUI_ERROR_CODE_NO_ERROR);
3810     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_PLACEHOLDER_FONT, &item0), ARKUI_ERROR_CODE_NO_ERROR);
3811     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_AREA_PLACEHOLDER_FONT, &item0), ARKUI_ERROR_CODE_NO_ERROR);
3812     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_AREA_SHOW_COUNTER, &item0), ARKUI_ERROR_CODE_NO_ERROR);
3813     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_ALIGN_RULES, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3814 
3815     value[0].f32 = 2.0f;
3816     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_OPACITY, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
3817     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_FONT_SIZE, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
3818     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_VISIBLE_AREA_CHANGE_RATIO, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
3819     valueEnum[0].i32 = static_cast<int32_t>(MAX_NODE_SCOPE_NUM);
3820     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BORDER_STYLE, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3821     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_VISIBILITY, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3822     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CLIP, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3823     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_HIT_TEST_BEHAVIOR, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3824     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SHADOW, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3825     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_DIRECTION, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3826     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_ALIGN_SELF, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3827     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_RENDER_FIT, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3828     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_FONT_WEIGHT, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3829     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_FONT_STYLE, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3830     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_MAX_LENGTH, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3831     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_ENTER_KEY_TYPE, &itemEnum),
3832         ARKUI_ERROR_CODE_PARAM_INVALID);
3833     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_TYPE, &itemEnum),
3834         ARKUI_ERROR_CODE_PARAM_INVALID);
3835     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_AREA_TYPE, &itemEnum),
3836         ARKUI_ERROR_CODE_PARAM_INVALID);
3837     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_ENABLE_KEYBOARD_ON_FOCUS, &itemEnum),
3838         ARKUI_ERROR_CODE_PARAM_INVALID);
3839     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_SHOW_PASSWORD_ICON, &itemEnum),
3840         ARKUI_ERROR_CODE_PARAM_INVALID);
3841     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_EDITING, &itemEnum),
3842         ARKUI_ERROR_CODE_PARAM_INVALID);
3843     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_AREA_EDITING, &itemEnum),
3844         ARKUI_ERROR_CODE_PARAM_INVALID);
3845     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_CANCEL_BUTTON, &itemEnum),
3846         ARKUI_ERROR_CODE_PARAM_INVALID);
3847     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_STACK_ALIGN_CONTENT, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3848     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_CURVE, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3849     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_EDGE_EFFECT_MODE, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3850     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_DECORATION, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3851     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_CASE, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3852     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_ALIGN, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3853     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_OVERFLOW, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3854     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_SPAN_VERTICAL_ALIGNMENT, &itemEnum),
3855         ARKUI_ERROR_CODE_PARAM_INVALID);
3856     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_OBJECT_FIT, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3857     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_INTERPOLATION, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3858     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_OBJECT_REPEAT, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3859     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_RENDER_MODE, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3860     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_FIT_ORIGINAL_SIZE, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3861     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CALENDAR_PICKER_EDGE_ALIGNMENT, &itemEnum),
3862         ARKUI_ERROR_CODE_PARAM_INVALID);
3863     valueEnum4[0].i32 = static_cast<int32_t>(MAX_NODE_SCOPE_NUM);
3864     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BORDER_STYLE, &itemEnum4), ARKUI_ERROR_CODE_PARAM_INVALID);
3865     valueEnum[0].u32 = static_cast<int32_t>(MAX_NODE_SCOPE_NUM);
3866     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_ACCESSIBILITY_ACTIONS, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3867     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_CARET_COLOR, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3868     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_INPUT_PLACEHOLDER_COLOR, &itemEnum),
3869         ARKUI_ERROR_CODE_PARAM_INVALID);
3870     valueEnum[0].i32 = true;
3871     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_FOCUS_STATUS, &itemEnum), ARKUI_ERROR_CODE_NO_ERROR);
3872     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_FONT_STYLE, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3873     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_COPY_OPTION, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3874 
3875     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_FOCUS_STATUS), nullptr);
3876     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_OUTLINE_WIDTH), nullptr);
3877     nodeAPI->disposeNode(rootNode);
3878 }
3879 
3880 /**
3881  * @tc.name: NativeNodeTest038
3882  * @tc.desc: Test abnormalInputForText function.
3883  * @tc.type: FUNC
3884  */
3885 HWTEST_F(NativeNodeTest, NativeNodeTest038, TestSize.Level1)
3886 {
3887     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
3888         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
3889     auto rootNode = new ArkUI_Node({ARKUI_NODE_TEXT, nullptr, true});
3890     float negativeFloat = -1.0f;
3891     int32_t negativeInt = -1;
3892     ArkUI_NumberValue value[] = {{.f32 = negativeFloat}};
3893     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
3894     ArkUI_NumberValue value0[] = {};
3895     ArkUI_AttributeItem item0 = {value0, 0, nullptr, nullptr};
3896     ArkUI_NumberValue value4[] = {{.f32 = negativeFloat}, {.f32 = negativeFloat}, {.f32 = negativeFloat},
3897         {.f32 = negativeFloat}};
3898     ArkUI_AttributeItem item4 = {value4, sizeof(value4) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
3899     ArkUI_NumberValue valueEnum[] = {{.i32 = negativeInt}};
3900     ArkUI_AttributeItem itemEnum = {valueEnum, sizeof(valueEnum) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
3901     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_CONTENT, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
3902     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_FONT_COLOR, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3903     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_FONT_SIZE, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
3904     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_FONT_STYLE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3905     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_FONT_WEIGHT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3906     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_FONT_WEIGHT, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3907     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_LINE_HEIGHT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3908     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_DECORATION, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3909     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_DECORATION, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3910     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_CASE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3911     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_CASE, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3912     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_LETTER_SPACING, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3913     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_MAX_LINES, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3914     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_ALIGN, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3915     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_ALIGN, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3916     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_OVERFLOW, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3917     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_OVERFLOW, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3918     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_FONT_FAMILY, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3919     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_COPY_OPTION, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3920     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_BASELINE_OFFSET, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3921     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_TEXT_SHADOW, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3922     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_MIN_FONT_SIZE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3923     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_MAX_FONT_SIZE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3924     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_FONT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3925     value4[1].i32 = negativeInt;
3926     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_FONT, &item4), ARKUI_ERROR_CODE_PARAM_INVALID);
3927     value4[1].i32 = 0;
3928     value4[2].i32 = negativeInt;
3929     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_FONT, &item4), ARKUI_ERROR_CODE_PARAM_INVALID);
3930     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_HEIGHT_ADAPTIVE_POLICY, &item0),
3931         ARKUI_ERROR_CODE_PARAM_INVALID);
3932     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_HEIGHT_ADAPTIVE_POLICY, &itemEnum),
3933         ARKUI_ERROR_CODE_PARAM_INVALID);
3934     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_INDENT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3935     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_WORD_BREAK, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3936     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_ELLIPSIS_MODE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3937     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_LINE_SPACING, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3938     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_LINE_SPACING, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
3939     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_FONT_FEATURE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3940     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_ENABLE_DATA_DETECTOR, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3941     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_SELECTED_BACKGROUND_COLOR, &item0),
3942         ARKUI_ERROR_CODE_PARAM_INVALID);
3943     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_CONTENT_WITH_STYLED_STRING, &item0),
3944         ARKUI_ERROR_CODE_PARAM_INVALID);
3945     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_CONTENT_WITH_STYLED_STRING, nullptr),
3946         ARKUI_ERROR_CODE_PARAM_INVALID);
3947     nodeAPI->disposeNode(rootNode);
3948 }
3949 
3950 /**
3951  * @tc.name: NativeNodeTest039
3952  * @tc.desc: Test abnormalInputForTextField function.
3953  * @tc.type: FUNC
3954  */
3955 HWTEST_F(NativeNodeTest, NativeNodeTest039, TestSize.Level1)
3956 {
3957     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
3958         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
3959     auto textinput = new ArkUI_Node({ARKUI_NODE_TEXT_INPUT, nullptr, true});
3960     auto textarea = new ArkUI_Node({ARKUI_NODE_TEXT_AREA, nullptr, true});
3961     float negativeFloat = -1.0f;
3962     int32_t negativeInt = -1;
3963     ArkUI_NumberValue value[] = {{.f32 = negativeFloat}};
3964     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue)};
3965     ArkUI_NumberValue value0[] = {};
3966     ArkUI_AttributeItem item0 = {value0, 0, nullptr, nullptr};
3967     ArkUI_NumberValue value4[] = {{.f32 = 0.0f}, {.i32 = negativeInt}, {.i32 = negativeInt},
3968         {.i32 = negativeInt}};
3969     ArkUI_AttributeItem item4 = {value4, sizeof(value4) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
3970     ArkUI_NumberValue valueEnum[] = {{.i32 = negativeInt}};
3971     ArkUI_AttributeItem itemEnum = {valueEnum, sizeof(valueEnum) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
3972 
3973     EXPECT_EQ(nodeAPI->setAttribute(textinput, NODE_TEXT_INPUT_CARET_COLOR, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3974     EXPECT_EQ(nodeAPI->setAttribute(textinput, NODE_TEXT_INPUT_CARET_STYLE, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
3975     EXPECT_EQ(nodeAPI->setAttribute(textinput, NODE_TEXT_INPUT_SHOW_UNDERLINE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3976     EXPECT_EQ(nodeAPI->setAttribute(textinput, NODE_TEXT_INPUT_SHOW_UNDERLINE, &itemEnum),
3977         ARKUI_ERROR_CODE_PARAM_INVALID);
3978     EXPECT_EQ(nodeAPI->setAttribute(textinput, NODE_TEXT_INPUT_MAX_LENGTH, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3979     EXPECT_EQ(nodeAPI->setAttribute(textinput, NODE_TEXT_INPUT_MAX_LENGTH, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3980     EXPECT_EQ(nodeAPI->setAttribute(textinput, NODE_TEXT_INPUT_ENTER_KEY_TYPE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3981     EXPECT_EQ(nodeAPI->setAttribute(textinput, NODE_TEXT_INPUT_ENTER_KEY_TYPE, &itemEnum),
3982         ARKUI_ERROR_CODE_PARAM_INVALID);
3983     EXPECT_EQ(nodeAPI->setAttribute(textinput, NODE_TEXT_INPUT_PLACEHOLDER_COLOR, &item0),
3984         ARKUI_ERROR_CODE_PARAM_INVALID);
3985     EXPECT_EQ(nodeAPI->setAttribute(
3986         textinput, NODE_TEXT_INPUT_PLACEHOLDER_FONT, nullptr), ARKUI_ERROR_CODE_PARAM_INVALID);
3987     EXPECT_EQ(nodeAPI->setAttribute(
3988         textinput, NODE_TEXT_INPUT_PLACEHOLDER_FONT, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
3989     EXPECT_EQ(nodeAPI->setAttribute(textinput, NODE_TEXT_INPUT_ENABLE_KEYBOARD_ON_FOCUS, &item0),
3990         ARKUI_ERROR_CODE_PARAM_INVALID);
3991     EXPECT_EQ(nodeAPI->setAttribute(textinput, NODE_TEXT_INPUT_ENABLE_KEYBOARD_ON_FOCUS, &itemEnum),
3992         ARKUI_ERROR_CODE_PARAM_INVALID);
3993     EXPECT_EQ(nodeAPI->setAttribute(textinput, NODE_TEXT_INPUT_TYPE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
3994     EXPECT_EQ(nodeAPI->setAttribute(textinput, NODE_TEXT_INPUT_TYPE, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
3995     EXPECT_EQ(nodeAPI->setAttribute(textinput, NODE_TEXT_INPUT_SELECTED_BACKGROUND_COLOR, &item0),
3996         ARKUI_ERROR_CODE_PARAM_INVALID);
3997     EXPECT_EQ(nodeAPI->setAttribute(textinput, NODE_TEXT_INPUT_SHOW_PASSWORD_ICON, &item0),
3998         ARKUI_ERROR_CODE_PARAM_INVALID);
3999     EXPECT_EQ(nodeAPI->setAttribute(textinput, NODE_TEXT_INPUT_SHOW_PASSWORD_ICON, &itemEnum),
4000         ARKUI_ERROR_CODE_PARAM_INVALID);
4001     EXPECT_EQ(nodeAPI->setAttribute(textinput, NODE_TEXT_INPUT_EDITING, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4002     EXPECT_EQ(nodeAPI->setAttribute(textinput, NODE_TEXT_INPUT_EDITING, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
4003     EXPECT_EQ(nodeAPI->setAttribute(textinput, NODE_TEXT_INPUT_CANCEL_BUTTON, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4004     EXPECT_EQ(nodeAPI->setAttribute(textinput, NODE_TEXT_INPUT_CANCEL_BUTTON, &itemEnum),
4005         ARKUI_ERROR_CODE_PARAM_INVALID);
4006     EXPECT_EQ(nodeAPI->setAttribute(textinput, NODE_TEXT_INPUT_TEXT_SELECTION, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4007     EXPECT_EQ(nodeAPI->setAttribute(textinput, NODE_TEXT_INPUT_UNDERLINE_COLOR, &item0),
4008         ARKUI_ERROR_CODE_PARAM_INVALID);
4009     EXPECT_EQ(nodeAPI->setAttribute(textinput, NODE_TEXT_INPUT_ENABLE_AUTO_FILL, &item0),
4010         ARKUI_ERROR_CODE_PARAM_INVALID);
4011     EXPECT_EQ(nodeAPI->setAttribute(textinput, NODE_TEXT_INPUT_CONTENT_TYPE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4012     EXPECT_EQ(nodeAPI->setAttribute(textinput, NODE_TEXT_INPUT_SELECT_ALL, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4013     EXPECT_EQ(nodeAPI->setAttribute(textinput, NODE_TEXT_INPUT_STYLE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4014     EXPECT_EQ(nodeAPI->setAttribute(textinput, NODE_TEXT_INPUT_CARET_OFFSET, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4015     EXPECT_EQ(nodeAPI->setAttribute(textinput, NODE_TEXT_INPUT_SELECTION_MENU_HIDDEN, &item0),
4016         ARKUI_ERROR_CODE_PARAM_INVALID);
4017     EXPECT_EQ(nodeAPI->setAttribute(textinput, NODE_TEXT_INPUT_SELECTION_MENU_HIDDEN, &itemEnum),
4018         ARKUI_ERROR_CODE_PARAM_INVALID);
4019     EXPECT_EQ(nodeAPI->setAttribute(textinput, NODE_TEXT_INPUT_BLUR_ON_SUBMIT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4020     EXPECT_EQ(nodeAPI->setAttribute(textinput, NODE_TEXT_INPUT_CUSTOM_KEYBOARD, &item0),
4021         ARKUI_ERROR_CODE_PARAM_INVALID);
4022     EXPECT_EQ(nodeAPI->setAttribute(textinput, NODE_TEXT_INPUT_WORD_BREAK, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4023     EXPECT_EQ(nodeAPI->setAttribute(textinput, NODE_TEXT_INPUT_SHOW_KEYBOARD_ON_FOCUS, &item0),
4024         ARKUI_ERROR_CODE_PARAM_INVALID);
4025     EXPECT_EQ(nodeAPI->setAttribute(textinput, NODE_TEXT_INPUT_NUMBER_OF_LINES, &item0),
4026         ARKUI_ERROR_CODE_PARAM_INVALID);
4027 
4028     EXPECT_EQ(nodeAPI->setAttribute(
4029         textarea, NODE_TEXT_AREA_PLACEHOLDER_FONT, nullptr), ARKUI_ERROR_CODE_PARAM_INVALID);
4030     EXPECT_EQ(nodeAPI->setAttribute(
4031         textarea, NODE_TEXT_AREA_PLACEHOLDER_FONT, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4032     EXPECT_EQ(nodeAPI->setAttribute(
4033         textarea, NODE_TEXT_AREA_PLACEHOLDER_FONT, &item4), ARKUI_ERROR_CODE_PARAM_INVALID);
4034     value4[1].i32 = ARKUI_FONT_STYLE_ITALIC;
4035     EXPECT_EQ(nodeAPI->setAttribute(
4036         textarea, NODE_TEXT_AREA_PLACEHOLDER_FONT, &item4), ARKUI_ERROR_CODE_PARAM_INVALID);
4037     EXPECT_EQ(nodeAPI->setAttribute(
4038         textinput, NODE_TEXT_INPUT_PLACEHOLDER_FONT, &item4), ARKUI_ERROR_CODE_PARAM_INVALID);
4039     EXPECT_EQ(nodeAPI->setAttribute(textarea, NODE_TEXT_AREA_EDITING, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4040     EXPECT_EQ(nodeAPI->setAttribute(textarea, NODE_TEXT_AREA_TYPE, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
4041     EXPECT_EQ(nodeAPI->setAttribute(textarea, NODE_TEXT_AREA_SHOW_COUNTER, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4042     value4[0].i32 = negativeInt;
4043     EXPECT_EQ(nodeAPI->setAttribute(textarea, NODE_TEXT_AREA_SHOW_COUNTER, &item4), ARKUI_ERROR_CODE_PARAM_INVALID);
4044     value4[0].i32 = 0;
4045     value4[1].f32 = negativeFloat;
4046     EXPECT_EQ(nodeAPI->setAttribute(textarea, NODE_TEXT_AREA_SHOW_COUNTER, &item4), ARKUI_ERROR_CODE_PARAM_INVALID);
4047     value4[1].f32 = 1.0f;
4048     value4[2].i32 = negativeInt;
4049     EXPECT_EQ(nodeAPI->setAttribute(textarea, NODE_TEXT_AREA_SHOW_COUNTER, &item4), ARKUI_ERROR_CODE_PARAM_INVALID);
4050     EXPECT_EQ(nodeAPI->setAttribute(
4051         textarea, NODE_TEXT_AREA_SELECTION_MENU_HIDDEN, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4052     EXPECT_EQ(nodeAPI->setAttribute(
4053         textarea, NODE_TEXT_AREA_SELECTION_MENU_HIDDEN, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
4054     nodeAPI->disposeNode(textinput);
4055     nodeAPI->disposeNode(textarea);
4056 }
4057 
4058 /**
4059  * @tc.name: NativeNodeTest040
4060  * @tc.desc: Test abnormalInputForWaterflow function.
4061  * @tc.type: FUNC
4062  */
4063 HWTEST_F(NativeNodeTest, NativeNodeTest040, TestSize.Level1)
4064 {
4065     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
4066         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
4067     auto rootNode = nodeAPI->createNode(ARKUI_NODE_WATER_FLOW);
4068     float negativeFloat = -1.0f;
4069     ArkUI_NumberValue value[] = {{.f32 = negativeFloat}};
4070     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue)};
4071     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_COLUMN_GAP, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4072     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_ROW_GAP, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4073     nodeAPI->disposeNode(rootNode);
4074 }
4075 
4076 /**
4077  * @tc.name: NativeNodeTest041
4078  * @tc.desc: Test abnormalInputForGrid function.
4079  * @tc.type: FUNC
4080  */
4081 HWTEST_F(NativeNodeTest, NativeNodeTest041, TestSize.Level1)
4082 {
4083     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
4084         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
4085     auto rootNode = nodeAPI->createNode(ARKUI_NODE_GRID);
4086     float negativeFloat = -1.0f;
4087     ArkUI_NumberValue value[] = {{.f32 = negativeFloat}};
4088     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue)};
4089     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_GRID_COLUMN_GAP, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4090     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_GRID_ROW_GAP, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4091     nodeAPI->disposeNode(rootNode);
4092 }
4093 
4094 /**
4095  * @tc.name: NativeNodeTest042
4096  * @tc.desc: Test abnormalInputForSpan function.
4097  * @tc.type: FUNC
4098  */
4099 HWTEST_F(NativeNodeTest, NativeNodeTest042, TestSize.Level1)
4100 {
4101     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
4102         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
4103     auto rootNode = nodeAPI->createNode(ARKUI_NODE_SPAN);
4104     float negativeFloat = -1.0f;
4105     ArkUI_NumberValue value[] = {{.f32 = negativeFloat}};
4106     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
4107     ArkUI_NumberValue value0[] = {};
4108     ArkUI_AttributeItem item0 = {value0, 0, nullptr, nullptr};
4109     ArkUI_NumberValue value4[] = {{.f32 = negativeFloat}, {.f32 = negativeFloat}, {.f32 = negativeFloat},
4110         {.f32 = negativeFloat}};
4111     ArkUI_AttributeItem item4 = {value4, sizeof(value4) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
4112     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SPAN_CONTENT, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4113     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SPAN_TEXT_BACKGROUND_STYLE, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4114     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SPAN_TEXT_BACKGROUND_STYLE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4115     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SPAN_TEXT_BACKGROUND_STYLE, &item4), ARKUI_ERROR_CODE_PARAM_INVALID);
4116     nodeAPI->disposeNode(rootNode);
4117 }
4118 
4119 /**
4120  * @tc.name: NativeNodeTest043
4121  * @tc.desc: Test abnormalInputForImageSpan function.
4122  * @tc.type: FUNC
4123  */
4124 HWTEST_F(NativeNodeTest, NativeNodeTest043, TestSize.Level1)
4125 {
4126     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
4127         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
4128     auto rootNode = new ArkUI_Node({ARKUI_NODE_IMAGE_SPAN, nullptr, true});
4129     int32_t negativeInt = -1;
4130     ArkUI_NumberValue value0[] = {};
4131     ArkUI_AttributeItem item0 = {value0, 0, nullptr, nullptr};
4132     ArkUI_NumberValue valueEnum[] = {{.i32 = negativeInt}};
4133     ArkUI_AttributeItem itemEnum = {valueEnum, sizeof(valueEnum) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
4134     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_SPAN_SRC, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4135     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_SPAN_VERTICAL_ALIGNMENT, &item0),
4136         ARKUI_ERROR_CODE_PARAM_INVALID);
4137     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_SPAN_VERTICAL_ALIGNMENT, &itemEnum),
4138         ARKUI_ERROR_CODE_PARAM_INVALID);
4139     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_SPAN_ALT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4140     nodeAPI->disposeNode(rootNode);
4141 }
4142 
4143 /**
4144  * @tc.name: NativeNodeTest044
4145  * @tc.desc: Test abnormalInputForImage function.
4146  * @tc.type: FUNC
4147  */
4148 HWTEST_F(NativeNodeTest, NativeNodeTest044, TestSize.Level1)
4149 {
4150     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
4151         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
4152     auto rootNode = new ArkUI_Node({ARKUI_NODE_IMAGE, nullptr, true});
4153     int32_t negativeInt = -1;
4154     ArkUI_NumberValue value0[] = {};
4155     ArkUI_AttributeItem item0 = {value0, 0, nullptr, nullptr};
4156     ArkUI_NumberValue valueEnum[] = {{.i32 = negativeInt}};
4157     ArkUI_AttributeItem itemEnum = {valueEnum, sizeof(valueEnum) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
4158     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_SRC, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4159     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_OBJECT_FIT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4160     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_OBJECT_FIT, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
4161     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_INTERPOLATION, &itemEnum),
4162         ARKUI_ERROR_CODE_PARAM_INVALID);
4163     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_INTERPOLATION, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4164     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_OBJECT_REPEAT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4165     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_OBJECT_REPEAT, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
4166     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_COLOR_FILTER, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4167     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_AUTO_RESIZE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4168     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_ALT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4169     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_DRAGGABLE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4170     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_RENDER_MODE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4171     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_RENDER_MODE, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
4172     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_FIT_ORIGINAL_SIZE, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
4173     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_FIT_ORIGINAL_SIZE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4174     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_FILL_COLOR, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4175     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_RESIZABLE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4176     nodeAPI->disposeNode(rootNode);
4177 }
4178 
4179 /**
4180  * @tc.name: NativeNodeTest045
4181  * @tc.desc: Test abnormalInputForToggle function.
4182  * @tc.type: FUNC
4183  */
4184 HWTEST_F(NativeNodeTest, NativeNodeTest045, TestSize.Level1)
4185 {
4186     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
4187         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
4188     auto rootNode = nodeAPI->createNode(ARKUI_NODE_TOGGLE);
4189     ArkUI_NumberValue value0[] = {};
4190     ArkUI_AttributeItem item0 = {value0, 0, nullptr, nullptr};
4191     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TOGGLE_SELECTED_COLOR, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4192     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TOGGLE_SWITCH_POINT_COLOR, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4193     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TOGGLE_VALUE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4194     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TOGGLE_UNSELECTED_COLOR, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4195     nodeAPI->disposeNode(rootNode);
4196 }
4197 
4198 /**
4199  * @tc.name: NativeNodeTest046
4200  * @tc.desc: Test abnormalInputForLoadingProgress function.
4201  * @tc.type: FUNC
4202  */
4203 HWTEST_F(NativeNodeTest, NativeNodeTest046, TestSize.Level1)
4204 {
4205     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
4206         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
4207     auto rootNode = nodeAPI->createNode(ARKUI_NODE_LOADING_PROGRESS);
4208     ArkUI_NumberValue value0[] = {};
4209     ArkUI_AttributeItem item0 = {value0, 0, nullptr, nullptr};
4210     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_LOADING_PROGRESS_COLOR, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4211     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_LOADING_PROGRESS_ENABLE_LOADING, &item0),
4212         ARKUI_ERROR_CODE_PARAM_INVALID);
4213     nodeAPI->disposeNode(rootNode);
4214 }
4215 
4216 /**
4217  * @tc.name: NativeNodeTest047
4218  * @tc.desc: Test abnormalInputForButton function.
4219  * @tc.type: FUNC
4220  */
4221 HWTEST_F(NativeNodeTest, NativeNodeTest047, TestSize.Level1)
4222 {
4223     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
4224         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
4225     auto rootNode = new ArkUI_Node({ARKUI_NODE_BUTTON, nullptr, true});
4226     int32_t negativeInt = -1;
4227     ArkUI_NumberValue value0[] = {};
4228     ArkUI_AttributeItem item0 = {value0, 0, nullptr, nullptr};
4229     ArkUI_NumberValue valueEnum[] = {{.i32 = negativeInt}};
4230     ArkUI_AttributeItem itemEnum = {valueEnum, sizeof(valueEnum) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
4231     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BUTTON_LABEL, nullptr), ARKUI_ERROR_CODE_PARAM_INVALID);
4232     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BUTTON_LABEL, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4233     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BUTTON_TYPE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4234     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_BUTTON_TYPE, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
4235     nodeAPI->disposeNode(rootNode);
4236 }
4237 
4238 /**
4239  * @tc.name: NativeNodeTest048
4240  * @tc.desc: Test abnormalInputForProgress function.
4241  * @tc.type: FUNC
4242  */
4243 HWTEST_F(NativeNodeTest, NativeNodeTest048, TestSize.Level1)
4244 {
4245     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
4246         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
4247     auto rootNode = nodeAPI->createNode(ARKUI_NODE_PROGRESS);
4248     ArkUI_NumberValue value0[] = {};
4249     ArkUI_AttributeItem item0 = {value0, 0, nullptr, nullptr};
4250     ArkUI_NumberValue value[] = {{.f32 = -1.0f}};
4251     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
4252     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_PROGRESS_VALUE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4253     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_PROGRESS_VALUE, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4254     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_PROGRESS_TOTAL, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4255     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_PROGRESS_TOTAL, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4256     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_PROGRESS_COLOR, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4257     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_PROGRESS_TYPE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4258     value[0].i32 = -1;
4259     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_PROGRESS_TYPE, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4260     nodeAPI->disposeNode(rootNode);
4261 }
4262 
4263 /**
4264  * @tc.name: NativeNodeTest049
4265  * @tc.desc: Test abnormalInputForCheckbox function.
4266  * @tc.type: FUNC
4267  */
4268 HWTEST_F(NativeNodeTest, NativeNodeTest049, TestSize.Level1)
4269 {
4270     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
4271         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
4272     auto rootNode = nodeAPI->createNode(ARKUI_NODE_CHECKBOX);
4273     uint32_t color = 0xFFFF0000;
4274     float negativeFloat = -1.0f;
4275     ArkUI_NumberValue value0[] = {};
4276     ArkUI_AttributeItem item0 = {value0, 0, nullptr, nullptr};
4277     ArkUI_NumberValue value[] = {{.i32 = -1}};
4278     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
4279     ArkUI_NumberValue mark[] = {{.u32 = color}, {.f32 = negativeFloat}, {.f32 = negativeFloat}};
4280     ArkUI_AttributeItem markItem = {mark, sizeof(mark) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
4281     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CHECKBOX_SELECT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4282     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CHECKBOX_SELECT, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4283     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CHECKBOX_SELECT_COLOR, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4284     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CHECKBOX_UNSELECT_COLOR, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4285     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CHECKBOX_MARK, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4286     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CHECKBOX_MARK, &markItem), ARKUI_ERROR_CODE_PARAM_INVALID);
4287     mark[1].f32 = 0.0f;
4288     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CHECKBOX_MARK, &markItem), ARKUI_ERROR_CODE_PARAM_INVALID);
4289     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CHECKBOX_SHAPE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4290     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CHECKBOX_SHAPE, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4291     nodeAPI->disposeNode(rootNode);
4292 }
4293 
4294 /**
4295  * @tc.name: NativeNodeTest050
4296  * @tc.desc: Test abnormalInputForXComponent function.
4297  * @tc.type: FUNC
4298  */
4299 HWTEST_F(NativeNodeTest, NativeNodeTest050, TestSize.Level1)
4300 {
4301     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
4302         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
4303     auto rootNode = nodeAPI->createNode(ARKUI_NODE_XCOMPONENT);
4304     ArkUI_NumberValue value0[] = {};
4305     ArkUI_AttributeItem item0 = {value0, 0, nullptr, nullptr};
4306     ArkUI_NumberValue value[] = {{.i32 = -1}};
4307     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
4308     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_XCOMPONENT_ID, nullptr), ARKUI_ERROR_CODE_PARAM_INVALID);
4309     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_XCOMPONENT_ID, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4310     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_XCOMPONENT_TYPE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4311     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_XCOMPONENT_TYPE, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4312     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_XCOMPONENT_SURFACE_SIZE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4313     nodeAPI->disposeNode(rootNode);
4314 }
4315 
4316 /**
4317  * @tc.name: NativeNodeTest051
4318  * @tc.desc: Test abnormalInputForDatePicker function.
4319  * @tc.type: FUNC
4320  */
4321 HWTEST_F(NativeNodeTest, NativeNodeTest051, TestSize.Level1)
4322 {
4323     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
4324         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
4325     auto rootNode = nodeAPI->createNode(ARKUI_NODE_STACK);
4326     float negativeFloat = -1.0f;
4327     int32_t negativeInt = -1;
4328     ArkUI_NumberValue value0[] = {};
4329     ArkUI_AttributeItem item0 = {value0, 0, nullptr, nullptr};
4330     ArkUI_NumberValue value[] = {{.f32 = negativeFloat}};
4331     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue), "test", nullptr};
4332     ArkUI_NumberValue valueEnum[] = {{.i32 = negativeInt}};
4333     ArkUI_AttributeItem itemEnum = {valueEnum, sizeof(valueEnum) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
4334     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_DATE_PICKER_LUNAR, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4335     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_DATE_PICKER_LUNAR, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
4336     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_DATE_PICKER_START, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4337     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_DATE_PICKER_START, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4338     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_DATE_PICKER_END, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4339     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_DATE_PICKER_END, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4340     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_DATE_PICKER_SELECTED, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4341     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_DATE_PICKER_SELECTED, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4342     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_DATE_PICKER_DISAPPEAR_TEXT_STYLE, &item),
4343         ARKUI_ERROR_CODE_PARAM_INVALID);
4344     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_DATE_PICKER_DISAPPEAR_TEXT_STYLE, &item0),
4345         ARKUI_ERROR_CODE_PARAM_INVALID);
4346     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_DATE_PICKER_TEXT_STYLE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4347     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_DATE_PICKER_TEXT_STYLE, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4348     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_DATE_PICKER_SELECTED_TEXT_STYLE, &item0),
4349         ARKUI_ERROR_CODE_PARAM_INVALID);
4350     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_DATE_PICKER_SELECTED_TEXT_STYLE, &item),
4351         ARKUI_ERROR_CODE_PARAM_INVALID);
4352     item.string = "test;10;normal;test;italic";
4353     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_DATE_PICKER_SELECTED_TEXT_STYLE, &item),
4354         ARKUI_ERROR_CODE_NO_ERROR);
4355     item.string = "#ff182431;test;normal;test;italic";
4356     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_DATE_PICKER_SELECTED_TEXT_STYLE, &item),
4357         ARKUI_ERROR_CODE_PARAM_INVALID);
4358     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_DATE_PICKER_TEXT_STYLE, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4359     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_DATE_PICKER_DISAPPEAR_TEXT_STYLE, &item),
4360         ARKUI_ERROR_CODE_PARAM_INVALID);
4361     nodeAPI->disposeNode(rootNode);
4362 }
4363 
4364 /**
4365  * @tc.name: NativeNodeTest052
4366  * @tc.desc: Test abnormalInputForTimePicker function.
4367  * @tc.type: FUNC
4368  */
4369 HWTEST_F(NativeNodeTest, NativeNodeTest052, TestSize.Level1)
4370 {
4371     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
4372         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
4373     auto rootNode = nodeAPI->createNode(ARKUI_NODE_STACK);
4374     float negativeFloat = -1.0f;
4375     ArkUI_NumberValue value0[] = {};
4376     ArkUI_AttributeItem item0 = {value0, 0, nullptr, nullptr};
4377     ArkUI_NumberValue value[] = {{.f32 = negativeFloat}};
4378     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue), "test", nullptr};
4379     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TIME_PICKER_SELECTED, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4380     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TIME_PICKER_SELECTED, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4381     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TIME_PICKER_USE_MILITARY_TIME, &item0),
4382         ARKUI_ERROR_CODE_PARAM_INVALID);
4383     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TIME_PICKER_DISAPPEAR_TEXT_STYLE, &item0),
4384         ARKUI_ERROR_CODE_PARAM_INVALID);
4385     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TIME_PICKER_DISAPPEAR_TEXT_STYLE, &item),
4386         ARKUI_ERROR_CODE_PARAM_INVALID);
4387     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TIME_PICKER_TEXT_STYLE, &item0),
4388         ARKUI_ERROR_CODE_PARAM_INVALID);
4389     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TIME_PICKER_TEXT_STYLE, &item),
4390         ARKUI_ERROR_CODE_PARAM_INVALID);
4391     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TIME_PICKER_SELECTED_TEXT_STYLE, &item0),
4392         ARKUI_ERROR_CODE_PARAM_INVALID);
4393     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TIME_PICKER_SELECTED_TEXT_STYLE, &item),
4394         ARKUI_ERROR_CODE_PARAM_INVALID);
4395     item.string = "#ff182431;test;normal;test;italic";
4396     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TIME_PICKER_SELECTED_TEXT_STYLE, &item),
4397         ARKUI_ERROR_CODE_PARAM_INVALID);
4398     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TIME_PICKER_TEXT_STYLE, &item),
4399         ARKUI_ERROR_CODE_PARAM_INVALID);
4400     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TIME_PICKER_DISAPPEAR_TEXT_STYLE, &item),
4401         ARKUI_ERROR_CODE_PARAM_INVALID);
4402     item.string = "50-60";
4403     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TIME_PICKER_SELECTED, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4404     item.string = "10-60";
4405     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TIME_PICKER_SELECTED, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4406     nodeAPI->disposeNode(rootNode);
4407 }
4408 
4409 /**
4410  * @tc.name: NativeNodeTest053
4411  * @tc.desc: Test abnormalInputForTextPicker function.
4412  * @tc.type: FUNC
4413  */
4414 HWTEST_F(NativeNodeTest, NativeNodeTest053, TestSize.Level1)
4415 {
4416     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
4417         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
4418     auto rootNode = nodeAPI->createNode(ARKUI_NODE_STACK);
4419     ArkUI_NumberValue value0[] = {};
4420     ArkUI_AttributeItem item0 = {value0, 0, nullptr, nullptr};
4421     ArkUI_NumberValue value[] = {{.i32 = ARKUI_TEXTPICKER_RANGETYPE_SINGLE}};
4422     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
4423     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_PICKER_OPTION_RANGE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4424     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_PICKER_OPTION_RANGE, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4425     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_PICKER_OPTION_SELECTED, &item0),
4426         ARKUI_ERROR_CODE_PARAM_INVALID);
4427     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_PICKER_OPTION_VALUE, &item0),
4428         ARKUI_ERROR_CODE_PARAM_INVALID);
4429     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_PICKER_DISAPPEAR_TEXT_STYLE, &item0),
4430         ARKUI_ERROR_CODE_PARAM_INVALID);
4431     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_PICKER_TEXT_STYLE, &item0),
4432         ARKUI_ERROR_CODE_PARAM_INVALID);
4433     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_PICKER_SELECTED_TEXT_STYLE, &item0),
4434         ARKUI_ERROR_CODE_PARAM_INVALID);
4435     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_PICKER_SELECTED_INDEX, &item0),
4436         ARKUI_ERROR_CODE_PARAM_INVALID);
4437     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_PICKER_CAN_LOOP, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4438     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_PICKER_DEFAULT_PICKER_ITEM_HEIGHT, &item0),
4439         ARKUI_ERROR_CODE_PARAM_INVALID);
4440     item.string = "test";
4441     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_PICKER_DISAPPEAR_TEXT_STYLE, &item),
4442         ARKUI_ERROR_CODE_PARAM_INVALID);
4443     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_PICKER_TEXT_STYLE, &item),
4444         ARKUI_ERROR_CODE_PARAM_INVALID);
4445     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_PICKER_SELECTED_TEXT_STYLE, &item),
4446         ARKUI_ERROR_CODE_PARAM_INVALID);
4447     item.string = "#ff182431;test;normal;test;italic";
4448     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_PICKER_DISAPPEAR_TEXT_STYLE, &item),
4449         ARKUI_ERROR_CODE_PARAM_INVALID);
4450     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_PICKER_TEXT_STYLE, &item),
4451         ARKUI_ERROR_CODE_PARAM_INVALID);
4452     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_PICKER_SELECTED_TEXT_STYLE, &item),
4453         ARKUI_ERROR_CODE_PARAM_INVALID);
4454     nodeAPI->disposeNode(rootNode);
4455 }
4456 
4457 /**
4458  * @tc.name: NativeNodeTest054
4459  * @tc.desc: Test abnormalInputForCalendarPicker function.
4460  * @tc.type: FUNC
4461  */
4462 HWTEST_F(NativeNodeTest, NativeNodeTest054, TestSize.Level1)
4463 {
4464     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
4465         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
4466     auto rootNode = nodeAPI->createNode(ARKUI_NODE_CALENDAR_PICKER);
4467     float negativeFloat = -1.0f;
4468     int32_t negativeInt = -1;
4469     ArkUI_NumberValue value0[] = {};
4470     ArkUI_AttributeItem item0 = {value0, 0, nullptr, nullptr};
4471     ArkUI_NumberValue value[] = {{.f32 = negativeFloat}};
4472     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
4473     ArkUI_NumberValue value3[] = {{.u32 = 2024}, {.u32 = 13}, {.u32 = 1}};
4474     ArkUI_AttributeItem item3 = {value3, sizeof(value3) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
4475     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CALENDAR_PICKER_HINT_RADIUS, &item0),
4476         ARKUI_ERROR_CODE_PARAM_INVALID);
4477     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CALENDAR_PICKER_HINT_RADIUS, &item),
4478         ARKUI_ERROR_CODE_PARAM_INVALID);
4479     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CALENDAR_PICKER_SELECTED_DATE, &item0),
4480         ARKUI_ERROR_CODE_PARAM_INVALID);
4481     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CALENDAR_PICKER_SELECTED_DATE, &item3),
4482         ARKUI_ERROR_CODE_PARAM_INVALID);
4483     value3[1].u32 = 12;
4484     value3[2].u32 = 40;
4485     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CALENDAR_PICKER_SELECTED_DATE, &item3),
4486         ARKUI_ERROR_CODE_PARAM_INVALID);
4487     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CALENDAR_PICKER_EDGE_ALIGNMENT, &item0),
4488         ARKUI_ERROR_CODE_PARAM_INVALID);
4489     value[0].i32 = negativeInt;
4490     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CALENDAR_PICKER_EDGE_ALIGNMENT, &item),
4491         ARKUI_ERROR_CODE_PARAM_INVALID);
4492     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CALENDAR_PICKER_TEXT_STYLE, &item0),
4493         ARKUI_ERROR_CODE_NO_ERROR);
4494     value3[1].f32 = negativeFloat;
4495     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CALENDAR_PICKER_TEXT_STYLE, &item3),
4496         ARKUI_ERROR_CODE_PARAM_INVALID);
4497     value3[1].f32 = 1.0f;
4498     value3[2].i32 = negativeInt;
4499     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_CALENDAR_PICKER_TEXT_STYLE, &item3),
4500         ARKUI_ERROR_CODE_PARAM_INVALID);
4501     nodeAPI->disposeNode(rootNode);
4502 }
4503 
4504 /**
4505  * @tc.name: NativeNodeTest055
4506  * @tc.desc: Test abnormalInputForSlider function.
4507  * @tc.type: FUNC
4508  */
4509 HWTEST_F(NativeNodeTest, NativeNodeTest055, TestSize.Level1)
4510 {
4511     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
4512         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
4513     auto rootNode = nodeAPI->createNode(ARKUI_NODE_SLIDER);
4514     float negativeFloat = -1.0f;
4515     ArkUI_NumberValue value0[] = {};
4516     ArkUI_AttributeItem item0 = {value0, 0, nullptr, nullptr};
4517     ArkUI_NumberValue value[] = {{.i32 = ARKUI_SLIDER_BLOCK_STYLE_IMAGE }, {.i32 = ARKUI_CLIP_TYPE_PATH},
4518         {.f32 = negativeFloat}, {.f32 = negativeFloat}, {.f32 = negativeFloat}};
4519     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
4520     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SLIDER_BLOCK_COLOR, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4521     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SLIDER_TRACK_COLOR, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4522     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SLIDER_SELECTED_COLOR, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4523     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SLIDER_SHOW_STEPS, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4524     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SLIDER_VALUE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4525     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SLIDER_MIN_VALUE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4526     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SLIDER_MAX_VALUE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4527     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SLIDER_STEP, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4528     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SLIDER_DIRECTION, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4529     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SLIDER_REVERSE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4530     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SLIDER_STYLE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4531     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SLIDER_TRACK_THICKNESS, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4532     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SLIDER_BLOCK_STYLE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4533     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SLIDER_BLOCK_STYLE, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4534     value[0].i32 = ARKUI_SLIDER_BLOCK_STYLE_SHAPE;
4535     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SLIDER_BLOCK_STYLE, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4536     value[1].i32 = ARKUI_CLIP_TYPE_RECTANGLE;
4537     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SLIDER_BLOCK_STYLE, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4538     value[0].i32 = -1;
4539     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SLIDER_SHOW_STEPS, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4540     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SLIDER_DIRECTION, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4541     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SLIDER_REVERSE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4542     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SLIDER_STYLE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4543     value[0].f32 = -1.0f;
4544     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SLIDER_STEP, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4545     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SLIDER_TRACK_THICKNESS, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4546     nodeAPI->disposeNode(rootNode);
4547 }
4548 
4549 /**
4550  * @tc.name: NativeNodeTest056
4551  * @tc.desc: Test abnormalInputForRadio function.
4552  * @tc.type: FUNC
4553  */
4554 HWTEST_F(NativeNodeTest, NativeNodeTest056, TestSize.Level1)
4555 {
4556     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
4557         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
4558     auto rootNode = nodeAPI->createNode(ARKUI_NODE_RADIO);
4559     ArkUI_NumberValue value0[] = {};
4560     ArkUI_AttributeItem item0 = {value0, 0, nullptr, nullptr};
4561     ArkUI_NumberValue value[] = {{.i32 = -1 }};
4562     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
4563     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_RADIO_CHECKED, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4564     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_RADIO_CHECKED, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4565     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_RADIO_STYLE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4566     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_RADIO_VALUE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4567     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_RADIO_GROUP, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4568     item0.size = -1;
4569     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_RADIO_STYLE, &item0), ARKUI_ERROR_CODE_NO_ERROR);
4570     nodeAPI->disposeNode(rootNode);
4571 }
4572 
4573 /**
4574  * @tc.name: NativeNodeTest057
4575  * @tc.desc: Test abnormalInputForStack function.
4576  * @tc.type: FUNC
4577  */
4578 HWTEST_F(NativeNodeTest, NativeNodeTest057, TestSize.Level1)
4579 {
4580     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
4581         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
4582     auto rootNode = nodeAPI->createNode(ARKUI_NODE_STACK);
4583     ArkUI_NumberValue value0[] = {};
4584     ArkUI_AttributeItem item0 = {value0, 0, nullptr, nullptr};
4585     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_STACK_ALIGN_CONTENT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4586     nodeAPI->disposeNode(rootNode);
4587 }
4588 
4589 /**
4590  * @tc.name: NativeNodeTest058
4591  * @tc.desc: Test abnormalInputForScroll function.
4592  * @tc.type: FUNC
4593  */
4594 HWTEST_F(NativeNodeTest, NativeNodeTest058, TestSize.Level1)
4595 {
4596     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
4597         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
4598     auto rootNode = nodeAPI->createNode(ARKUI_NODE_SCROLL);
4599     float negativeFloat = -1.0f;
4600     int32_t negativeInt = -1;
4601     ArkUI_NumberValue value0[] = {};
4602     ArkUI_AttributeItem item0 = {value0, 0, nullptr, nullptr};
4603     ArkUI_NumberValue value[] = {{.i32 = negativeInt }, {.i32 = negativeInt},
4604         {.i32 = negativeInt}, {.f32 = negativeFloat}, {.f32 = negativeFloat}};
4605     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
4606     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SCROLL_BAR_DISPLAY_MODE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4607     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SCROLL_BAR_WIDTH, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4608     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SCROLL_BAR_COLOR, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4609     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SCROLL_SCROLL_DIRECTION, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4610     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SCROLL_SCROLL_DIRECTION, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4611     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SCROLL_EDGE_EFFECT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4612     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SCROLL_EDGE_EFFECT, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4613     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SCROLL_ENABLE_SCROLL_INTERACTION, &item0),
4614         ARKUI_ERROR_CODE_PARAM_INVALID);
4615     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SCROLL_ENABLE_SCROLL_INTERACTION, &item),
4616         ARKUI_ERROR_CODE_PARAM_INVALID);
4617     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SCROLL_FRICTION, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4618     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SCROLL_SNAP, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4619     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SCROLL_SNAP, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4620     value[0].i32 = ARKUI_SCROLL_SNAP_ALIGN_NONE;
4621     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SCROLL_SNAP, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4622     value[1].i32 = true;
4623     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SCROLL_SNAP, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4624     value[2].i32 = true;
4625     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SCROLL_SNAP, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4626     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SCROLL_NESTED_SCROLL, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4627     value[0].i32 = negativeInt;
4628     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SCROLL_NESTED_SCROLL, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4629     value[0].i32 = ARKUI_SCROLL_NESTED_MODE_SELF_ONLY;
4630     value[1].i32 = negativeInt;
4631     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SCROLL_NESTED_SCROLL, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4632     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SCROLL_EDGE_EFFECT, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4633     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SCROLL_OFFSET, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4634     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SCROLL_EDGE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4635     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SCROLL_ENABLE_PAGING, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4636     value[0].i32 = negativeInt;
4637     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SCROLL_ENABLE_PAGING, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4638     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SCROLL_PAGE, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4639     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SCROLL_PAGE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4640     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SCROLL_BY, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4641     value[0].f32 = negativeFloat;
4642     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SCROLL_FRICTION, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4643     nodeAPI->disposeNode(rootNode);
4644 }
4645 
4646 /**
4647  * @tc.name: NativeNodeTest059
4648  * @tc.desc: Test abnormalInputForList function.
4649  * @tc.type: FUNC
4650  */
4651 HWTEST_F(NativeNodeTest, NativeNodeTest059, TestSize.Level1)
4652 {
4653     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
4654         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
4655     auto rootNode = new ArkUI_Node({ARKUI_NODE_LIST, nullptr, true});
4656     auto childNode = new ArkUI_Node({ARKUI_NODE_LIST_ITEM, nullptr, true});
4657     auto childNodeNew = new ArkUI_Node({ARKUI_NODE_LIST_ITEM, nullptr, true});
4658     auto groupNode = new ArkUI_Node({ARKUI_NODE_LIST_ITEM_GROUP, nullptr, true});
4659 
4660     nodeAPI->insertChildAt(rootNode, groupNode, 0);
4661     nodeAPI->insertChildAfter(groupNode, childNodeNew, nullptr);
4662     nodeAPI->insertChildBefore(groupNode, childNode, childNodeNew);
4663     float negativeFloat = -1.0f;
4664     int32_t negativeInt = -1;
4665     ArkUI_NumberValue value0[] = {};
4666     ArkUI_AttributeItem item0 = {value0, 0, nullptr, nullptr};
4667     ArkUI_NumberValue value[] = {{.i32 = negativeInt }, {.i32 = negativeInt},
4668         {.i32 = negativeInt}, {.f32 = negativeFloat}, {.f32 = negativeFloat}};
4669     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
4670     ArkUI_NumberValue valueEnum[] = {{.i32 = negativeInt}};
4671     ArkUI_AttributeItem itemEnum = {valueEnum, 1, nullptr, nullptr};
4672     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_LIST_DIRECTION, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4673     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_LIST_DIRECTION, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4674     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_LIST_STICKY, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4675     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_LIST_STICKY, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4676     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_LIST_SPACE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4677     value[0].f32 = negativeFloat;
4678     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_LIST_SPACE, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4679     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_LIST_NODE_ADAPTER, nullptr), ARKUI_ERROR_CODE_PARAM_INVALID);
4680     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_LIST_NODE_ADAPTER, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4681     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_LIST_CACHED_COUNT, nullptr), ARKUI_ERROR_CODE_PARAM_INVALID);
4682     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_LIST_CACHED_COUNT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4683     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_LIST_CACHED_COUNT, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
4684     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_LIST_SCROLL_TO_INDEX, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4685     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_LIST_ALIGN_LIST_ITEM, nullptr), ARKUI_ERROR_CODE_PARAM_INVALID);
4686     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_LIST_ALIGN_LIST_ITEM, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4687     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_LIST_ALIGN_LIST_ITEM, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
4688     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_LIST_CHILDREN_MAIN_SIZE, nullptr), ARKUI_ERROR_CODE_PARAM_INVALID);
4689     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_LIST_CHILDREN_MAIN_SIZE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4690     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_LIST_INITIAL_INDEX, nullptr), ARKUI_ERROR_CODE_PARAM_INVALID);
4691     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_LIST_INITIAL_INDEX, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4692     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_LIST_INITIAL_INDEX, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
4693     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_LIST_DIVIDER, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4694     value[1].f32 = negativeFloat;
4695     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_LIST_DIVIDER, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4696     EXPECT_EQ(nodeAPI->setAttribute(groupNode, NODE_LIST_ITEM_GROUP_SET_DIVIDER, &item),
4697         ARKUI_ERROR_CODE_PARAM_INVALID);
4698     value[1].f32 = 0.0f;
4699     value[2].f32 = negativeFloat;
4700     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_LIST_DIVIDER, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4701     EXPECT_EQ(nodeAPI->setAttribute(groupNode, NODE_LIST_ITEM_GROUP_SET_DIVIDER, &item),
4702         ARKUI_ERROR_CODE_PARAM_INVALID);
4703     value[2].f32 = 0.0f;
4704     value[3].f32 = negativeFloat;
4705     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_LIST_DIVIDER, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
4706     EXPECT_EQ(nodeAPI->setAttribute(groupNode, NODE_LIST_ITEM_GROUP_SET_DIVIDER, &item),
4707         ARKUI_ERROR_CODE_PARAM_INVALID);
4708     EXPECT_EQ(nodeAPI->setAttribute(childNode, NODE_LIST_ITEM_SWIPE_ACTION, nullptr), ARKUI_ERROR_CODE_PARAM_INVALID);
4709     EXPECT_EQ(nodeAPI->setAttribute(childNode, NODE_LIST_ITEM_SWIPE_ACTION, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4710     EXPECT_EQ(nodeAPI->setAttribute(groupNode, NODE_LIST_ITEM_GROUP_SET_HEADER, &item0),
4711         ARKUI_ERROR_CODE_PARAM_INVALID);
4712     EXPECT_EQ(nodeAPI->setAttribute(groupNode, NODE_LIST_ITEM_GROUP_SET_FOOTER, &item0),
4713         ARKUI_ERROR_CODE_PARAM_INVALID);
4714     EXPECT_EQ(nodeAPI->setAttribute(groupNode, NODE_LIST_ITEM_GROUP_SET_DIVIDER, &item0),
4715         ARKUI_ERROR_CODE_PARAM_INVALID);
4716     EXPECT_EQ(nodeAPI->setAttribute(groupNode, NODE_LIST_ITEM_GROUP_CHILDREN_MAIN_SIZE, nullptr),
4717         ARKUI_ERROR_CODE_PARAM_INVALID);
4718     EXPECT_EQ(nodeAPI->setAttribute(groupNode, NODE_LIST_ITEM_GROUP_CHILDREN_MAIN_SIZE, &item0),
4719         ARKUI_ERROR_CODE_PARAM_INVALID);
4720     nodeAPI->removeChild(groupNode, childNode);
4721     nodeAPI->disposeNode(rootNode);
4722     nodeAPI->disposeNode(groupNode);
4723     nodeAPI->disposeNode(childNode);
4724 }
4725 
4726 /**
4727  * @tc.name: NativeNodeTest060
4728  * @tc.desc: Test abnormalInputForSwiper function.
4729  * @tc.type: FUNC
4730  */
4731 HWTEST_F(NativeNodeTest, NativeNodeTest060, TestSize.Level1)
4732 {
4733     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
4734         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
4735     auto rootNode = new ArkUI_Node({ARKUI_NODE_SWIPER, nullptr, true});
4736     float negativeFloat = -1.0f;
4737     int32_t negativeInt = -1;
4738     ArkUI_NumberValue value0[] = {};
4739     ArkUI_AttributeItem item0 = {value0, 0, nullptr, nullptr};
4740     ArkUI_NumberValue valueEnum[] = {{.i32 = negativeInt}};
4741     ArkUI_AttributeItem itemEnum = {valueEnum, 1, nullptr, nullptr};
4742     ArkUI_NumberValue valueFloat[] = {{.f32 = negativeFloat}};
4743     ArkUI_AttributeItem itemFloat = {valueFloat, 1, nullptr, nullptr};
4744     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_LOOP, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4745     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_LOOP, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
4746     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_AUTO_PLAY, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4747     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_AUTO_PLAY, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
4748     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_SHOW_INDICATOR, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4749     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_SHOW_INDICATOR, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
4750     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_INTERVAL, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4751     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_INTERVAL, &itemFloat), ARKUI_ERROR_CODE_PARAM_INVALID);
4752     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_VERTICAL, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4753     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_VERTICAL, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
4754     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_DURATION, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4755     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_DURATION, &itemFloat), ARKUI_ERROR_CODE_PARAM_INVALID);
4756     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_CURVE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4757     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_CURVE, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
4758     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_ITEM_SPACE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4759     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_ITEM_SPACE, &itemFloat), ARKUI_ERROR_CODE_PARAM_INVALID);
4760     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_INDEX, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4761     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_INDEX, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
4762     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_DISPLAY_COUNT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4763     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_DISABLE_SWIPE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4764     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_DISABLE_SWIPE, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
4765     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_SHOW_DISPLAY_ARROW, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4766     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_SHOW_DISPLAY_ARROW, &itemFloat),
4767         ARKUI_ERROR_CODE_PARAM_INVALID);
4768     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_EDGE_EFFECT_MODE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4769     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_EDGE_EFFECT_MODE, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
4770     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_NODE_ADAPTER, nullptr), ARKUI_ERROR_CODE_PARAM_INVALID);
4771     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_NODE_ADAPTER, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4772     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_CACHED_COUNT, nullptr), ARKUI_ERROR_CODE_PARAM_INVALID);
4773     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_CACHED_COUNT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4774     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_CACHED_COUNT, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
4775     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_PREV_MARGIN, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4776     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_PREV_MARGIN, &itemFloat), ARKUI_ERROR_CODE_PARAM_INVALID);
4777     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_NEXT_MARGIN, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4778     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_NEXT_MARGIN, &itemFloat), ARKUI_ERROR_CODE_PARAM_INVALID);
4779     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_INDICATOR, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4780     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_INDICATOR, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
4781     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_INDICATOR_INTERACTIVE, &item0),
4782         ARKUI_ERROR_CODE_PARAM_INVALID);
4783     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_NESTED_SCROLL, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4784     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_NESTED_SCROLL, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
4785     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_SWIPE_TO_INDEX, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4786     valueEnum[0].i32 = ARKUI_SWIPER_INDICATOR_TYPE_DOT;
4787     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_SWIPER_INDICATOR, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
4788     nodeAPI->disposeNode(rootNode);
4789 }
4790 
4791 /**
4792  * @tc.name: NativeNodeTest061
4793  * @tc.desc: Test abnormalInputForColumn function.
4794  * @tc.type: FUNC
4795  */
4796 HWTEST_F(NativeNodeTest, NativeNodeTest061, TestSize.Level1)
4797 {
4798     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
4799         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
4800     auto rootNode = nodeAPI->createNode(ARKUI_NODE_COLUMN);
4801     int32_t negativeInt = -1;
4802     ArkUI_NumberValue value0[] = {};
4803     ArkUI_AttributeItem item0 = {value0, 0, nullptr, nullptr};
4804     ArkUI_NumberValue valueEnum[] = {{.i32 = negativeInt}};
4805     ArkUI_AttributeItem itemEnum = {valueEnum, 1, nullptr, nullptr};
4806     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_COLUMN_ALIGN_ITEMS, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4807     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_COLUMN_ALIGN_ITEMS, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
4808     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_COLUMN_JUSTIFY_CONTENT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4809     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_COLUMN_JUSTIFY_CONTENT, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
4810     nodeAPI->disposeNode(rootNode);
4811 }
4812 
4813 /**
4814  * @tc.name: NativeNodeTest062
4815  * @tc.desc: Test abnormalInputForRow function.
4816  * @tc.type: FUNC
4817  */
4818 HWTEST_F(NativeNodeTest, NativeNodeTest062, TestSize.Level1)
4819 {
4820     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
4821         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
4822     auto rootNode = nodeAPI->createNode(ARKUI_NODE_ROW);
4823     ASSERT_NE(rootNode, nullptr);
4824     int32_t negativeInt = -1;
4825     ArkUI_NumberValue value0[] = {};
4826     ArkUI_AttributeItem item0 = {value0, 0, nullptr, nullptr};
4827     ArkUI_NumberValue valueEnum[] = {{.i32 = negativeInt}};
4828     ArkUI_AttributeItem itemEnum = {valueEnum, 1, nullptr, nullptr};
4829     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_ROW_ALIGN_ITEMS, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4830     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_ROW_ALIGN_ITEMS, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
4831     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_ROW_JUSTIFY_CONTENT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4832     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_ROW_JUSTIFY_CONTENT, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
4833     nodeAPI->disposeNode(rootNode);
4834 }
4835 
4836 /**
4837  * @tc.name: NativeNodeTest063
4838  * @tc.desc: Test abnormalInputForRefresh function.
4839  * @tc.type: FUNC
4840  */
4841 HWTEST_F(NativeNodeTest, NativeNodeTest063, TestSize.Level1)
4842 {
4843     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
4844         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
4845     auto rootNode = nodeAPI->createNode(ARKUI_NODE_REFRESH);
4846     ASSERT_NE(rootNode, nullptr);
4847     float negativeFloat = -1.0f;
4848     int32_t negativeInt = -1;
4849     ArkUI_NumberValue value0[] = {};
4850     ArkUI_AttributeItem item0 = {value0, 0, nullptr, nullptr};
4851     ArkUI_NumberValue valueEnum[] = {{.i32 = negativeInt}};
4852     ArkUI_AttributeItem itemEnum = {valueEnum, 1, nullptr, nullptr};
4853     ArkUI_NumberValue valueFloat[] = {{.f32 = negativeFloat}};
4854     ArkUI_AttributeItem itemFloat = {valueFloat, 1, nullptr, nullptr};
4855     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_REFRESH_REFRESHING, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4856     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_REFRESH_REFRESHING, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
4857     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_REFRESH_CONTENT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4858     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_REFRESH_PULL_DOWN_RATIO, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4859     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_REFRESH_PULL_DOWN_RATIO, &itemFloat),
4860         ARKUI_ERROR_CODE_PARAM_INVALID);
4861     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_REFRESH_OFFSET, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4862     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_REFRESH_OFFSET, &itemFloat), ARKUI_ERROR_CODE_PARAM_INVALID);
4863     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_REFRESH_PULL_TO_REFRESH, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4864     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_REFRESH_PULL_TO_REFRESH, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
4865     valueFloat[0].f32 = 2.0f;
4866     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_REFRESH_PULL_DOWN_RATIO, &itemFloat),
4867         ARKUI_ERROR_CODE_PARAM_INVALID);
4868     nodeAPI->disposeNode(rootNode);
4869 }
4870 
4871 /**
4872  * @tc.name: NativeNodeTest064
4873  * @tc.desc: Test abnormalInputForWaterflow function.
4874  * @tc.type: FUNC
4875  */
4876 HWTEST_F(NativeNodeTest, NativeNodeTest064, TestSize.Level1)
4877 {
4878     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
4879         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
4880     auto rootNode = nodeAPI->createNode(ARKUI_NODE_WATER_FLOW);
4881     ASSERT_NE(rootNode, nullptr);
4882     float negativeFloat = -1.0f;
4883     int32_t negativeInt = -1;
4884     ArkUI_NumberValue value0[] = {};
4885     ArkUI_AttributeItem item0 = {value0, 0, nullptr, nullptr};
4886     ArkUI_NumberValue valueEnum[] = {{.i32 = negativeInt}};
4887     ArkUI_AttributeItem itemEnum = {valueEnum, 1, nullptr, nullptr};
4888     ArkUI_NumberValue valueFloat[] = {{.f32 = negativeFloat}, {.f32 = negativeFloat}, {.f32 = negativeFloat},
4889         {.f32 = negativeFloat}};
4890     ArkUI_AttributeItem itemFloat = {valueFloat, sizeof(valueFloat) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
4891     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_LAYOUT_DIRECTION, &item0),
4892         ARKUI_ERROR_CODE_PARAM_INVALID);
4893     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_LAYOUT_DIRECTION, &itemEnum),
4894         ARKUI_ERROR_CODE_PARAM_INVALID);
4895     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_COLUMN_TEMPLATE, &item0),
4896         ARKUI_ERROR_CODE_PARAM_INVALID);
4897     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_ROW_TEMPLATE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4898     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_COLUMN_GAP, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4899     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_COLUMN_GAP, &itemFloat), ARKUI_ERROR_CODE_PARAM_INVALID);
4900     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_ROW_GAP, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4901     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_ROW_GAP, &itemFloat), ARKUI_ERROR_CODE_PARAM_INVALID);
4902     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_SECTION_OPTION, nullptr), ARKUI_ERROR_CODE_PARAM_INVALID);
4903     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_SECTION_OPTION, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4904     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_SECTION_OPTION, &itemFloat),
4905         ARKUI_ERROR_CODE_PARAM_INVALID);
4906     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_NODE_ADAPTER, nullptr), ARKUI_ERROR_CODE_PARAM_INVALID);
4907     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_NODE_ADAPTER, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4908     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_CACHED_COUNT, nullptr), ARKUI_ERROR_CODE_PARAM_INVALID);
4909     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_CACHED_COUNT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4910     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_CACHED_COUNT, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
4911     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_FOOTER, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4912     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_SCROLL_TO_INDEX, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4913     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_ITEM_CONSTRAINT_SIZE, &item0),
4914         ARKUI_ERROR_CODE_PARAM_INVALID);
4915     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_ITEM_CONSTRAINT_SIZE, &itemEnum),
4916         ARKUI_ERROR_CODE_PARAM_INVALID);
4917     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_ITEM_CONSTRAINT_SIZE, &itemFloat),
4918         ARKUI_ERROR_CODE_PARAM_INVALID);
4919     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_LAYOUT_MODE, &itemFloat),
4920         ARKUI_ERROR_CODE_PARAM_INVALID);
4921     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_LAYOUT_MODE, &item0),
4922         ARKUI_ERROR_CODE_PARAM_INVALID);
4923     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_LAYOUT_MODE, &itemEnum),
4924         ARKUI_ERROR_CODE_PARAM_INVALID);
4925     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_LAYOUT_MODE, nullptr),
4926         ARKUI_ERROR_CODE_PARAM_INVALID);
4927     ArkUI_NumberValue layoutModeV[] = {{.i32 = ArkUI_WaterFlowLayoutMode::ARKUI_WATER_FLOW_LAYOUT_MODE_SLIDING_WINDOW}};
4928     ArkUI_AttributeItem layoutModeAttr = {layoutModeV, 1, nullptr, nullptr};
4929     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_WATER_FLOW_LAYOUT_MODE, &layoutModeAttr), ARKUI_ERROR_CODE_NO_ERROR);
4930     EXPECT_EQ(nodeAPI->getAttribute(rootNode, NODE_WATER_FLOW_LAYOUT_MODE)->value->i32,
4931         ArkUI_WaterFlowLayoutMode::ARKUI_WATER_FLOW_LAYOUT_MODE_SLIDING_WINDOW);
4932     nodeAPI->disposeNode(rootNode);
4933 }
4934 
4935 /**
4936  * @tc.name: NativeNodeTest065
4937  * @tc.desc: Test abnormalInputForGrid function.
4938  * @tc.type: FUNC
4939  */
4940 HWTEST_F(NativeNodeTest, NativeNodeTest065, TestSize.Level1)
4941 {
4942     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
4943         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
4944     auto rootNode = nodeAPI->createNode(ARKUI_NODE_GRID);
4945     ASSERT_NE(rootNode, nullptr);
4946     float negativeFloat = -1.0f;
4947     int32_t negativeInt = -1;
4948     ArkUI_NumberValue value0[] = {};
4949     ArkUI_AttributeItem item0 = {value0, 0, nullptr, nullptr};
4950     ArkUI_NumberValue valueEnum[] = {{.i32 = negativeInt}};
4951     ArkUI_AttributeItem itemEnum = {valueEnum, 1, nullptr, nullptr};
4952     ArkUI_NumberValue valueFloat[] = {{.f32 = negativeFloat}, {.f32 = negativeFloat}, {.f32 = negativeFloat},
4953         {.f32 = negativeFloat}};
4954     ArkUI_AttributeItem itemFloat = {valueFloat, sizeof(valueFloat) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
4955     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_GRID_COLUMN_TEMPLATE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4956     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_GRID_ROW_TEMPLATE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4957     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_GRID_COLUMN_GAP, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4958     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_GRID_COLUMN_GAP, &itemFloat), ARKUI_ERROR_CODE_PARAM_INVALID);
4959     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_GRID_ROW_GAP, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4960     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_GRID_ROW_GAP, &itemFloat), ARKUI_ERROR_CODE_PARAM_INVALID);
4961     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_GRID_NODE_ADAPTER, nullptr), ARKUI_ERROR_CODE_PARAM_INVALID);
4962     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_GRID_NODE_ADAPTER, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4963     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_GRID_CACHED_COUNT, nullptr), ARKUI_ERROR_CODE_PARAM_INVALID);
4964     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_GRID_CACHED_COUNT, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4965     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_GRID_CACHED_COUNT, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
4966     nodeAPI->disposeNode(rootNode);
4967 }
4968 
4969 /**
4970  * @tc.name: NativeNodeTest066
4971  * @tc.desc: Test abnormalInputForImageAnimator function.
4972  * @tc.type: FUNC
4973  */
4974 HWTEST_F(NativeNodeTest, NativeNodeTest066, TestSize.Level1)
4975 {
4976     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
4977         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
4978     auto rootNode = nodeAPI->createNode(ARKUI_NODE_IMAGE_ANIMATOR);
4979     ASSERT_NE(rootNode, nullptr);
4980     int32_t negativeInt = -1;
4981     ArkUI_NumberValue value0[] = {};
4982     ArkUI_AttributeItem item0 = {value0, 0, nullptr, nullptr};
4983     ArkUI_NumberValue valueEnum[] = {{.i32 = negativeInt}};
4984     ArkUI_AttributeItem itemEnum = {valueEnum, 1, nullptr, nullptr};
4985     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_ANIMATOR_IMAGES, nullptr), ARKUI_ERROR_CODE_PARAM_INVALID);
4986     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_ANIMATOR_IMAGES, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4987     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_ANIMATOR_STATE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4988     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_ANIMATOR_STATE, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
4989     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_ANIMATOR_DURATION, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4990     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_ANIMATOR_REVERSE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4991     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_ANIMATOR_REVERSE, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
4992     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_ANIMATOR_FIXED_SIZE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4993     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_ANIMATOR_FIXED_SIZE, &itemEnum),
4994         ARKUI_ERROR_CODE_PARAM_INVALID);
4995     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_ANIMATOR_FILL_MODE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4996     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_ANIMATOR_FILL_MODE, &itemEnum),
4997         ARKUI_ERROR_CODE_PARAM_INVALID);
4998     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_ANIMATOR_ITERATION, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
4999     valueEnum[0].i32 = 4;
5000     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_ANIMATOR_STATE, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
5001     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_ANIMATOR_REVERSE, &itemEnum), ARKUI_ERROR_CODE_PARAM_INVALID);
5002     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_ANIMATOR_FIXED_SIZE, &itemEnum),
5003         ARKUI_ERROR_CODE_PARAM_INVALID);
5004     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_ANIMATOR_FILL_MODE, &itemEnum),
5005         ARKUI_ERROR_CODE_PARAM_INVALID);
5006     nodeAPI->disposeNode(rootNode);
5007 }
5008 
5009 /**
5010  * @tc.name: NativeNodeTest067
5011  * @tc.desc: Test attributeAbnormal function.
5012  * @tc.type: FUNC
5013  */
5014 HWTEST_F(NativeNodeTest, NativeNodeTest067, TestSize.Level1)
5015 {
5016     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
5017         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
5018     int32_t abnormalType = static_cast<int32_t>(ARKUI_NODE_EMBEDDED_COMPONENT) + 1;
5019     EXPECT_EQ(nodeAPI->createNode(static_cast<ArkUI_NodeType>(abnormalType)), nullptr);
5020     nodeAPI->disposeNode(nullptr);
5021     EXPECT_EQ(nodeAPI->addChild(nullptr, nullptr), ARKUI_ERROR_CODE_PARAM_INVALID);
5022     EXPECT_EQ(nodeAPI->removeChild(nullptr, nullptr), ARKUI_ERROR_CODE_PARAM_INVALID);
5023     EXPECT_EQ(nodeAPI->insertChildAfter(nullptr, nullptr, nullptr), ARKUI_ERROR_CODE_PARAM_INVALID);
5024     EXPECT_EQ(nodeAPI->insertChildBefore(nullptr, nullptr, nullptr), ARKUI_ERROR_CODE_PARAM_INVALID);
5025     EXPECT_EQ(nodeAPI->insertChildAt(nullptr, nullptr, 0), ARKUI_ERROR_CODE_PARAM_INVALID);
5026     EXPECT_EQ(nodeAPI->setAttribute(nullptr, NODE_WIDTH, nullptr), ARKUI_ERROR_CODE_PARAM_INVALID);
5027     EXPECT_EQ(nodeAPI->resetAttribute(nullptr, NODE_WIDTH), ARKUI_ERROR_CODE_PARAM_INVALID);
5028     EXPECT_EQ(nodeAPI->getAttribute(nullptr, NODE_WIDTH), nullptr);
5029     auto abnormalNode = new ArkUI_Node({-1, nullptr, true});
5030     EXPECT_EQ(nodeAPI->addChild(abnormalNode, abnormalNode), ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE);
5031     EXPECT_EQ(nodeAPI->removeChild(abnormalNode, abnormalNode), ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE);
5032     EXPECT_EQ(nodeAPI->insertChildAfter(abnormalNode, abnormalNode, nullptr),
5033         ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE);
5034     EXPECT_EQ(nodeAPI->insertChildBefore(abnormalNode, abnormalNode, nullptr),
5035         ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE);
5036     EXPECT_EQ(nodeAPI->insertChildAt(abnormalNode, abnormalNode, 0), ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE);
5037     EXPECT_EQ(nodeAPI->setAttribute(abnormalNode, NODE_WIDTH, nullptr), ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE);
5038     EXPECT_EQ(nodeAPI->resetAttribute(abnormalNode, NODE_WIDTH), ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE);
5039     int32_t abnormalAttribute = 999 * MAX_NODE_SCOPE_NUM;
5040     auto node = nodeAPI->createNode(ARKUI_NODE_STACK);
5041     EXPECT_EQ(nodeAPI->setAttribute(node, static_cast<ArkUI_NodeAttributeType>(abnormalAttribute), nullptr),
5042         ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED);
5043     EXPECT_EQ(nodeAPI->resetAttribute(node, static_cast<ArkUI_NodeAttributeType>(abnormalAttribute)),
5044         ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED);
5045     EXPECT_EQ(nodeAPI->getAttribute(node, static_cast<ArkUI_NodeAttributeType>(abnormalAttribute)), nullptr);
5046     for (int32_t i = 0; i <= static_cast<int32_t>(ARKUI_NODE_IMAGE_ANIMATOR); i++) {
5047         abnormalAttribute = (i + 1) * MAX_NODE_SCOPE_NUM - 1;
5048         EXPECT_EQ(nodeAPI->setAttribute(node, static_cast<ArkUI_NodeAttributeType>(abnormalAttribute), nullptr),
5049             ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED);
5050         EXPECT_EQ(nodeAPI->resetAttribute(node, static_cast<ArkUI_NodeAttributeType>(abnormalAttribute)),
5051             ARKUI_ERROR_CODE_NO_ERROR);
5052         if (i == ARKUI_NODE_DATE_PICKER || i == ARKUI_NODE_TEXT_PICKER || i == ARKUI_NODE_TIME_PICKER ||
5053             i == ARKUI_NODE_LOADING_PROGRESS) {
5054             EXPECT_NE(nodeAPI->getAttribute(node, static_cast<ArkUI_NodeAttributeType>(abnormalAttribute)), nullptr);
5055         } else {
5056             EXPECT_EQ(nodeAPI->getAttribute(node, static_cast<ArkUI_NodeAttributeType>(abnormalAttribute)), nullptr);
5057         }
5058     }
5059     for (int32_t j = static_cast<int32_t>(ARKUI_NODE_STACK); j < static_cast<int32_t>(ARKUI_NODE_GRID_ITEM); j++) {
5060         abnormalAttribute = (j + 1) * MAX_NODE_SCOPE_NUM - 1;
5061         if (j == ARKUI_NODE_FLOW_ITEM) {
5062             EXPECT_EQ(nodeAPI->setAttribute(node, static_cast<ArkUI_NodeAttributeType>(abnormalAttribute), nullptr),
5063                 ARKUI_ERROR_CODE_PARAM_INVALID);
5064             EXPECT_EQ(nodeAPI->resetAttribute(node, static_cast<ArkUI_NodeAttributeType>(abnormalAttribute)),
5065                 ARKUI_ERROR_CODE_PARAM_INVALID);
5066             EXPECT_EQ(nodeAPI->getAttribute(node, static_cast<ArkUI_NodeAttributeType>(abnormalAttribute)), nullptr);
5067         } else {
5068             EXPECT_EQ(nodeAPI->setAttribute(node, static_cast<ArkUI_NodeAttributeType>(abnormalAttribute), nullptr),
5069                 ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED);
5070             EXPECT_EQ(nodeAPI->resetAttribute(node, static_cast<ArkUI_NodeAttributeType>(abnormalAttribute)),
5071                 ARKUI_ERROR_CODE_NO_ERROR);
5072             if (j == ARKUI_NODE_LIST) {
5073                 EXPECT_NE(nodeAPI->getAttribute(
5074                     node, static_cast<ArkUI_NodeAttributeType>(abnormalAttribute)), nullptr);
5075             } else {
5076                 EXPECT_EQ(nodeAPI->getAttribute(
5077                     node, static_cast<ArkUI_NodeAttributeType>(abnormalAttribute)), nullptr);
5078             }
5079         }
5080     }
5081     delete abnormalNode;
5082     abnormalNode = nullptr;
5083     nodeAPI->disposeNode(node);
5084 }
5085 
5086 /**
5087  * @tc.name: NativeNodeTest068
5088  * @tc.desc: Test eventAbnormal function.
5089  * @tc.type: FUNC
5090  */
5091 HWTEST_F(NativeNodeTest, NativeNodeTest068, TestSize.Level1)
5092 {
5093     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
5094         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
5095     auto node = nodeAPI->createNode(ARKUI_NODE_STACK);
5096     EXPECT_EQ(nodeAPI->registerNodeEvent(nullptr, NODE_TOUCH_EVENT, 0, nullptr), ARKUI_ERROR_CODE_PARAM_INVALID);
5097     EXPECT_EQ(nodeAPI->registerNodeEvent(
5098         node, static_cast<ArkUI_NodeEventType>(-1), 0, nullptr), ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED);
5099     nodeAPI->unregisterNodeEvent(nullptr, NODE_TOUCH_EVENT);
5100     nodeAPI->unregisterNodeEvent(node, NODE_TOUCH_EVENT);
5101     nodeAPI->disposeNode(node);
5102 }
5103 
5104 /**
5105  * @tc.name: NativeNodeTest069
5106  * @tc.desc: Test lengthMetricUnit function.
5107  * @tc.type: FUNC
5108  */
5109 HWTEST_F(NativeNodeTest, NativeNodeTest069, TestSize.Level1)
5110 {
5111     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
5112         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
5113     auto node = nodeAPI->createNode(ARKUI_NODE_STACK);
5114     EXPECT_EQ(nodeAPI->setLengthMetricUnit(nullptr, ARKUI_LENGTH_METRIC_UNIT_PX), ARKUI_ERROR_CODE_PARAM_INVALID);
5115     EXPECT_EQ(nodeAPI->setLengthMetricUnit(node, static_cast<ArkUI_LengthMetricUnit>(-2)),
5116         ARKUI_ERROR_CODE_PARAM_INVALID);
5117     EXPECT_EQ(nodeAPI->setLengthMetricUnit(node, ARKUI_LENGTH_METRIC_UNIT_PX), ARKUI_ERROR_CODE_NO_ERROR);
5118     ArkUI_NumberValue value[] = {{.f32 = 10.0f}, {.f32 = 10.0f}};
5119     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue)};
5120     nodeAPI->setAttribute(node, NODE_WIDTH, &item);
5121     nodeAPI->setLengthMetricUnit(node, ARKUI_LENGTH_METRIC_UNIT_FP);
5122     EXPECT_EQ(nodeAPI->setAttribute(node, NODE_SCROLL_BY, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
5123     nodeAPI->disposeNode(node);
5124 }
5125 
5126 /**
5127  * @tc.name: NativeNodeTest070
5128  * @tc.desc: Test convertEvent function.
5129  * @tc.type: FUNC
5130  */
5131 HWTEST_F(NativeNodeTest, NativeNodeTest070, TestSize.Level1)
5132 {
5133     ArkUINodeEvent origin;
5134     ArkUI_NodeEvent event;
5135     ArkUI_CompatibleNodeEvent compatibleEvent;
5136     const std::string str = "test";
5137     origin.kind = ArkUIEventCategory::COMPONENT_ASYNC_EVENT;
5138     origin.componentAsyncEvent.subKind = ArkUIEventSubKind::ON_VISIBLE_AREA_CHANGE;
5139     origin.componentAsyncEvent.data[0].i32 = 0;
5140     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertEvent(&origin, &event), true);
5141     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertEvent(&origin, &compatibleEvent), true);
5142     origin.kind = ArkUIEventCategory::TEXT_INPUT;
5143     origin.textInputEvent.subKind = ArkUIEventSubKind::ON_TEXT_INPUT_CHANGE;
5144     origin.textInputEvent.nativeStringPtr = reinterpret_cast<intptr_t>(str.c_str());
5145     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertEvent(&origin, &event), true);
5146     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertEvent(&origin, &compatibleEvent), true);
5147     origin.kind = ArkUIEventCategory::TOUCH_EVENT;
5148     origin.touchEvent.subKind = ArkUIEventSubKind::ON_TOUCH;
5149     origin.touchEvent.sourceType = 2;
5150     origin.touchEvent.action = 0;
5151     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertEvent(&origin, &event), true);
5152     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertEvent(&origin, &compatibleEvent), true);
5153     origin.touchEvent.sourceType = 0;
5154     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertEvent(&origin, &compatibleEvent), true);
5155     origin.touchEvent.action = 1;
5156     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertEvent(&origin, &compatibleEvent), true);
5157     origin.touchEvent.action = 2;
5158     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertEvent(&origin, &compatibleEvent), true);
5159     origin.touchEvent.action = 3;
5160     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertEvent(&origin, &compatibleEvent), true);
5161     origin.touchEvent.action = 4;
5162     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertEvent(&origin, &compatibleEvent), true);
5163 
5164     origin.kind = ArkUIEventCategory::MOUSE_INPUT_EVENT;
5165     origin.mouseEvent.subKind = ArkUIEventSubKind::ON_MOUSE;
5166     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertEvent(&origin, &event), true);
5167     origin.kind = ArkUIEventCategory::MIXED_EVENT;
5168     origin.mouseEvent.subKind = ArkUIEventSubKind::ON_TEXT_AREA_WILL_INSERT;
5169     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertEvent(&origin, &event), true);
5170     origin.kind = ArkUIEventCategory::INVALID;
5171     origin.mouseEvent.subKind = ArkUIEventSubKind::ON_TEXT_AREA_WILL_INSERT;
5172     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertEvent(&origin, &event), false);
5173     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertEvent(&origin, &compatibleEvent), false);
5174 
5175     origin.kind = ArkUIEventCategory::DRAG_EVENT;
5176     origin.dragEvent.subKind = ArkUIEventSubKind::ON_DRAG_START;
5177     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertEvent(&origin, &event), true);
5178     origin.kind = ArkUIEventCategory::KEY_INPUT_EVENT;
5179     origin.dragEvent.subKind = ArkUIEventSubKind::ON_KEY_PREIME;
5180     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertEvent(&origin, &event), true);
5181     origin.kind = ArkUIEventCategory::FOCUS_AXIS_EVENT;
5182     origin.dragEvent.subKind = ArkUIEventSubKind::ON_FOCUS_AXIS;
5183     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertEvent(&origin, &event), true);
5184     origin.kind = ArkUIEventCategory::TEXT_INPUT_CHANGE;
5185     origin.dragEvent.subKind = ArkUIEventSubKind::ON_TEXT_INPUT_CHANGE;
5186     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertEvent(&origin, &event), true);
5187     origin.kind = ArkUIEventCategory::AXIS_EVENT;
5188     origin.dragEvent.subKind = ArkUIEventSubKind::ON_AXIS;
5189     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertEvent(&origin, &event), true);
5190     origin.kind = ArkUIEventCategory::CLICK_EVENT;
5191     origin.dragEvent.subKind = ArkUIEventSubKind::ON_CLICK_EVENT;
5192     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertEvent(&origin, &event), true);
5193     origin.kind = ArkUIEventCategory::HOVER_EVENT;
5194     origin.dragEvent.subKind = ArkUIEventSubKind::ON_HOVER_EVENT;
5195     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertEvent(&origin, &event), true);
5196 }
5197 
5198 /**
5199  * @tc.name: NativeNodeTest071
5200  * @tc.desc: Test ConvertToCTouch function.
5201  * @tc.type: FUNC
5202  */
5203 HWTEST_F(NativeNodeTest, NativeNodeTest071, TestSize.Level1)
5204 {
5205     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertToCTouchActionType(0), 1);
5206     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertToCTouchActionType(1), 3);
5207     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertToCTouchActionType(2), 2);
5208     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertToCTouchActionType(3), 0);
5209     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertToCTouchActionType(-1), -1);
5210 
5211     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertToCInputEventToolType(1), 1);
5212     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertToCInputEventToolType(2), 2);
5213     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertToCInputEventToolType(7), 3);
5214     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertToCInputEventToolType(9), 4);
5215     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertToCInputEventToolType(0), 0);
5216 
5217     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertToCMouseActionType(1), 1);
5218     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertToCMouseActionType(2), 2);
5219     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertToCMouseActionType(3), 3);
5220     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertToCMouseActionType(13), 13);
5221     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertToCMouseActionType(0), 0);
5222 
5223     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertToCMouseEventButtonType(1), 1);
5224     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertToCMouseEventButtonType(2), 2);
5225     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertToCMouseEventButtonType(4), 3);
5226     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertToCMouseEventButtonType(8), 4);
5227     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertToCMouseEventButtonType(16), 5);
5228     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertToCMouseEventButtonType(-1), 0);
5229 }
5230 
5231 /**
5232  * @tc.name: NativeNodeTest072
5233  * @tc.desc: Test convertEventResult function.
5234  * @tc.type: FUNC
5235  */
5236 HWTEST_F(NativeNodeTest, NativeNodeTest072, TestSize.Level1)
5237 {
5238     ArkUINodeEvent event;
5239     ArkUI_CompatibleNodeEvent origin;
5240     origin.kind = ArkUI_NodeEventType::NODE_TOUCH_EVENT;
5241     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertEventResult(&origin, &event), true);
5242     origin.kind = ArkUI_NodeEventType::NODE_ON_TOUCH_INTERCEPT;
5243     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertEventResult(&origin, &event), true);
5244     origin.kind = ArkUI_NodeEventType::NODE_TEXT_INPUT_ON_CHANGE;
5245     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertEventResult(&origin, &event), true);
5246     origin.kind = ArkUI_NodeEventType::NODE_TEXT_INPUT_ON_CUT;
5247     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertEventResult(&origin, &event), true);
5248     origin.kind = ArkUI_NodeEventType::NODE_TEXT_INPUT_ON_PASTE;
5249     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertEventResult(&origin, &event), true);
5250     origin.kind = ArkUI_NodeEventType::NODE_TEXT_AREA_ON_CHANGE;
5251     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertEventResult(&origin, &event), true);
5252     origin.kind = ArkUI_NodeEventType::NODE_TEXT_AREA_ON_PASTE;
5253     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertEventResult(&origin, &event), true);
5254     origin.kind = ArkUI_NodeEventType::NODE_EVENT_ON_APPEAR;
5255     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertEventResult(&origin, &event), true);
5256     origin.kind = ArkUI_NodeEventType::NODE_TEXT_INPUT_ON_CHANGE_WITH_PREVIEW_TEXT;
5257     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertEventResult(&origin, &event), true);
5258     origin.kind = ArkUI_NodeEventType::NODE_TEXT_AREA_ON_CHANGE_WITH_PREVIEW_TEXT;
5259     EXPECT_EQ(OHOS::Ace::NodeModel::ConvertEventResult(&origin, &event), true);
5260 }
5261 
5262 /**
5263  * @tc.name: NativeNodeTest073
5264  * @tc.desc: Test OH_ArkUI_NodeEvent_GetInputEvent function.
5265  * @tc.type: FUNC
5266  */
5267 HWTEST_F(NativeNodeTest, NativeNodeTest073, TestSize.Level1)
5268 {
5269     ArkUI_NodeEvent event = { 1, 0 };
5270     event.origin = nullptr;
5271     EXPECT_EQ(OH_ArkUI_NodeEvent_GetInputEvent(nullptr), nullptr);
5272     EXPECT_EQ(OH_ArkUI_NodeEvent_GetInputEvent(nullptr), nullptr);
5273     event.category = 0;
5274     EXPECT_EQ(OH_ArkUI_NodeEvent_GetInputEvent(&event), nullptr);
5275 }
5276 
5277 /**
5278  * @tc.name: NativeNodeTest074
5279  * @tc.desc: Test OH_ArkUI_NodeEvent_GetNodeComponentEvent function.
5280  * @tc.type: FUNC
5281  */
5282 HWTEST_F(NativeNodeTest, NativeNodeTest074, TestSize.Level1)
5283 {
5284     ArkUI_NodeEvent event = { 0, 0 };
5285     event.origin = nullptr;
5286     EXPECT_EQ(OH_ArkUI_NodeEvent_GetNodeComponentEvent(nullptr), nullptr);
5287     EXPECT_EQ(OH_ArkUI_NodeEvent_GetNodeComponentEvent(&event), nullptr);
5288     event.category = 1;
5289     EXPECT_EQ(OH_ArkUI_NodeEvent_GetNodeComponentEvent(&event), nullptr);
5290     ArkUINodeEvent origin = { 0, 0, 0};
5291     origin.componentAsyncEvent.subKind = ArkUIEventSubKind::ON_VISIBLE_AREA_CHANGE;
5292     origin.componentAsyncEvent.data[0].i32 = 0;
5293     event.origin = &origin;
5294     EXPECT_NE(OH_ArkUI_NodeEvent_GetNodeComponentEvent(&event), nullptr);
5295 }
5296 
5297 /**
5298  * @tc.name: NativeNodeTest075
5299  * @tc.desc: Test OH_ArkUI_NodeEvent_GetStringAsyncEvent function.
5300  * @tc.type: FUNC
5301  */
5302 HWTEST_F(NativeNodeTest, NativeNodeTest075, TestSize.Level1)
5303 {
5304     ArkUI_NodeEvent event = { 0, 0 };
5305     event.origin = nullptr;
5306     const std::string str = "test";
5307     EXPECT_EQ(OH_ArkUI_NodeEvent_GetStringAsyncEvent(nullptr), nullptr);
5308     EXPECT_EQ(OH_ArkUI_NodeEvent_GetStringAsyncEvent(&event), nullptr);
5309     event.category = 2;
5310     EXPECT_EQ(OH_ArkUI_NodeEvent_GetStringAsyncEvent(&event), nullptr);
5311     ArkUINodeEvent origin = { 0, 0, 0};
5312     origin.textInputEvent.subKind = ArkUIEventSubKind::ON_TEXT_INPUT_CHANGE;
5313     origin.textInputEvent.nativeStringPtr = reinterpret_cast<intptr_t>(str.c_str());
5314     event.origin = &origin;
5315     EXPECT_NE(OH_ArkUI_NodeEvent_GetStringAsyncEvent(&event), nullptr);
5316 }
5317 
5318 /**
5319  * @tc.name: NativeNodeTest076
5320  * @tc.desc: Test OH_ArkUI_NodeEvent_GetUserData function.
5321  * @tc.type: FUNC
5322  */
5323 HWTEST_F(NativeNodeTest, NativeNodeTest076, TestSize.Level1)
5324 {
5325     ArkUI_NodeEvent event = { 0, 0 };
5326     event.userData = nullptr;
5327     EXPECT_EQ(OH_ArkUI_NodeEvent_GetUserData(nullptr), nullptr);
5328     EXPECT_EQ(OH_ArkUI_NodeEvent_GetUserData(&event), nullptr);
5329 }
5330 
5331 /**
5332  * @tc.name: NativeNodeTest077
5333  * @tc.desc: Test OH_ArkUI_NodeEvent_GetNumberValue function.
5334  * @tc.type: FUNC
5335  */
5336 HWTEST_F(NativeNodeTest, NativeNodeTest077, TestSize.Level1)
5337 {
5338     ArkUI_NodeEvent event = { 0, 0 };
5339     event.origin = nullptr;
5340     int32_t index = 0;
5341     ArkUI_NumberValue value[] = {{.f32 = 10.0f}};
5342     EXPECT_EQ(OH_ArkUI_NodeEvent_GetNumberValue(nullptr, index, value), 106108);
5343     EXPECT_EQ(OH_ArkUI_NodeEvent_GetNumberValue(&event, index, value), 106108);
5344     event.category = 3;
5345     EXPECT_EQ(OH_ArkUI_NodeEvent_GetNumberValue(&event, index, value), 106108);
5346     ArkUINodeEvent mixEvent;
5347     mixEvent.kind = ArkUIEventCategory::MIXED_EVENT;
5348     mixEvent.extraParam = reinterpret_cast<intptr_t>(nullptr);
5349     mixEvent.mixedEvent.subKind = ArkUIEventSubKind::ON_TEXT_AREA_WILL_INSERT;
5350     mixEvent.mixedEvent.numberData[0].f32 = 0.0f;
5351     mixEvent.mixedEvent.numberDataLength = 1;
5352     event.origin = &mixEvent;
5353     index = 2;
5354     EXPECT_EQ(OH_ArkUI_NodeEvent_GetNumberValue(&event, index, value), 106107);
5355     index = -1;
5356     EXPECT_EQ(OH_ArkUI_NodeEvent_GetNumberValue(&event, index, value), 106107);
5357     index = 0;
5358     EXPECT_EQ(OH_ArkUI_NodeEvent_GetNumberValue(&event, index, value), ARKUI_ERROR_CODE_NO_ERROR);
5359 }
5360 
5361 /**
5362  * @tc.name: NativeNodeTest078
5363  * @tc.desc: Test OH_ArkUI_NodeEvent_GetStringValue function.
5364  * @tc.type: FUNC
5365  */
5366 HWTEST_F(NativeNodeTest, NativeNodeTest078, TestSize.Level1)
5367 {
5368     ArkUI_NodeEvent event = { 0, 0 };
5369     event.origin = nullptr;
5370     int32_t index = 0;
5371     int32_t size = 0;
5372     char* value[size];
5373     const std::string str1 = "";
5374     const std::string str2 = "test";
5375     EXPECT_EQ(OH_ArkUI_NodeEvent_GetStringValue(nullptr, index, value, &size), 106108);
5376     EXPECT_EQ(OH_ArkUI_NodeEvent_GetStringValue(&event, index, value, &size), 106108);
5377     event.category = 3;
5378     EXPECT_EQ(OH_ArkUI_NodeEvent_GetStringValue(&event, index, value, &size), 106108);
5379     ArkUINodeEvent mixEvent;
5380     mixEvent.kind = ArkUIEventCategory::MIXED_EVENT;
5381     mixEvent.extraParam = reinterpret_cast<intptr_t>(nullptr);
5382     mixEvent.mixedEvent.subKind = ArkUIEventSubKind::ON_TEXT_AREA_WILL_INSERT;
5383     mixEvent.mixedEvent.stringPtrData[0] = reinterpret_cast<intptr_t>(str1.c_str());
5384     mixEvent.mixedEvent.stringPtrDataLength = 1;
5385     event.origin = &mixEvent;
5386     index = 2;
5387     EXPECT_EQ(OH_ArkUI_NodeEvent_GetStringValue(&event, index, value, &size), 106107);
5388     index = 0;
5389     EXPECT_EQ(OH_ArkUI_NodeEvent_GetStringValue(&event, index, value, &size), 106108);
5390     mixEvent.mixedEvent.stringPtrData[0] = reinterpret_cast<intptr_t>(str2.c_str());
5391     EXPECT_EQ(OH_ArkUI_NodeEvent_GetStringValue(&event, index, value, &size), 106108);
5392 }
5393 
5394 /**
5395  * @tc.name: NativeNodeTest079
5396  * @tc.desc: Test OH_ArkUI_NodeEvent_SetReturnNumberValue function.
5397  * @tc.type: FUNC
5398  */
5399 HWTEST_F(NativeNodeTest, NativeNodeTest079, TestSize.Level1)
5400 {
5401     ArkUI_NodeEvent event = { 0, 0 };
5402     event.origin = nullptr;
5403     int32_t size = 1;
5404     ArkUI_NumberValue value[] = {{.i32 = 10}};
5405     EXPECT_EQ(OH_ArkUI_NodeEvent_SetReturnNumberValue(nullptr, value, size), 106108);
5406     EXPECT_EQ(OH_ArkUI_NodeEvent_SetReturnNumberValue(&event, value, size), 106108);
5407     event.category = 3;
5408     EXPECT_EQ(OH_ArkUI_NodeEvent_SetReturnNumberValue(&event, value, size), 106108);
5409     ArkUINodeEvent mixEvent;
5410     mixEvent.kind = ArkUIEventCategory::MIXED_EVENT;
5411     mixEvent.extraParam = reinterpret_cast<intptr_t>(nullptr);
5412     mixEvent.mixedEvent.subKind = ArkUIEventSubKind::ON_TEXT_AREA_WILL_INSERT;
5413     event.origin = &mixEvent;
5414     EXPECT_EQ(OH_ArkUI_NodeEvent_SetReturnNumberValue(&event, value, size), ARKUI_ERROR_CODE_NO_ERROR);
5415 }
5416 
5417 /**
5418  * @tc.name: NativeNodeTest080
5419  * @tc.desc: Test customSpanNode function.
5420  * @tc.type: FUNC
5421  */
5422 HWTEST_F(NativeNodeTest, NativeNodeTest080, TestSize.Level1)
5423 {
5424     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
5425         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
5426     auto rootNode = new ArkUI_Node({ARKUI_NODE_CUSTOM_SPAN, nullptr, true});
5427 
5428     EXPECT_EQ(nodeAPI->registerNodeCustomEvent(
5429         rootNode, ARKUI_NODE_CUSTOM_EVENT_ON_MEASURE, 0, nullptr), ARKUI_ERROR_CODE_NO_ERROR);
5430     EXPECT_EQ(nodeAPI->registerNodeCustomEvent(
5431         rootNode, ARKUI_NODE_CUSTOM_EVENT_ON_DRAW, 1, nullptr), ARKUI_ERROR_CODE_NO_ERROR);
5432     nodeAPI->unregisterNodeCustomEvent(rootNode, ARKUI_NODE_CUSTOM_EVENT_ON_MEASURE);
5433     nodeAPI->unregisterNodeCustomEvent(rootNode, ARKUI_NODE_CUSTOM_EVENT_ON_DRAW);
5434     nodeAPI->disposeNode(rootNode);
5435 }
5436 
5437 /**
5438  * @tc.name: NativeNodeTest081
5439  * @tc.desc: Test native style string.
5440  * @tc.type: FUNC
5441  */
5442 HWTEST_F(NativeNodeTest, NativeNodeTest081, TestSize.Level1)
5443 {
5444     OH_Drawing_TypographyStyle* style = OH_Drawing_CreateTypographyStyle();
5445     ArkUI_StyledString* styleString = OH_ArkUI_StyledString_Create(style, nullptr);
5446     OH_Drawing_TextStyle* textStyle = OH_Drawing_CreateTextStyle();
5447     OH_ArkUI_StyledString_PushTextStyle(styleString, textStyle);
5448     OH_Drawing_PlaceholderSpan* placeholder = new OH_Drawing_PlaceholderSpan();
5449     OH_ArkUI_StyledString_AddPlaceholder(styleString, placeholder);
5450 
5451     OH_Drawing_DestroyTextStyle(textStyle);
5452     delete placeholder;
5453     OH_ArkUI_StyledString_PushTextStyle(styleString, textStyle);
5454     OH_ArkUI_StyledString_AddPlaceholder(styleString, placeholder);
5455     EXPECT_NE(styleString, nullptr);
5456     EXPECT_NE(textStyle, nullptr);
5457     EXPECT_NE(placeholder, nullptr);
5458     OH_ArkUI_StyledString_AddText(styleString, "test");
5459     EXPECT_EQ(styleString->items.back()->content, "test");
5460     OH_ArkUI_StyledString_PopTextStyle(styleString);
5461     OH_ArkUI_StyledString_Destroy(styleString);
5462 }
5463 
5464 /**
5465  * @tc.name: NativeNodeTest082
5466  * @tc.desc: Test OH_ArkUI_NodeEvent_GetTextChangeEvent function.
5467  * @tc.type: FUNC
5468  */
5469 HWTEST_F(NativeNodeTest, NativeNodeTest082, TestSize.Level1)
5470 {
5471     ArkUI_NodeEvent event = { 0, 0 };
5472     event.origin = nullptr;
5473     const std::string str = "test";
5474     EXPECT_EQ(OH_ArkUI_NodeEvent_GetTextChangeEvent(nullptr), nullptr);
5475     EXPECT_EQ(OH_ArkUI_NodeEvent_GetTextChangeEvent(&event), nullptr);
5476     event.category = 2;
5477     EXPECT_EQ(OH_ArkUI_NodeEvent_GetTextChangeEvent(&event), nullptr);
5478     ArkUINodeEvent origin = { 0, 0, 0};
5479     origin.textChangeEvent.subKind = ArkUIEventSubKind::ON_TEXT_AREA_CHANGE_WITH_PREVIEW_TEXT;
5480     origin.textChangeEvent.nativeStringPtr = const_cast<char*>(str.c_str());
5481     origin.textChangeEvent.extendStringPtr = const_cast<char*>(str.c_str());
5482     origin.textChangeEvent.numArgs = 0;
5483     event.origin = &origin;
5484     EXPECT_NE(OH_ArkUI_NodeEvent_GetTextChangeEvent(&event), nullptr);
5485 }
5486 
5487 /**
5488  * @tc.name: BackdropBlurTest
5489  * @tc.desc: Test customNode function.
5490  * @tc.type: FUNC
5491  */
5492 HWTEST_F(NativeNodeTest, BackdropBlurTest, TestSize.Level1)
5493 {
5494     /**
5495      * @tc.steps: step1. create nodeAPI、rootNode、childNode.
5496      */
5497     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
5498         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
5499     auto rootNode = nodeAPI->createNode(ARKUI_NODE_STACK);
5500     ASSERT_NE(rootNode, nullptr);
5501 
5502     /**
5503      * @tc.steps: step2. init value.
5504      */
5505     float val0 = 0.0f;
5506     ArkUI_NumberValue value[] = {{.f32 = val0}, {.f32 = val0}, {.f32 = val0}};
5507     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue)};
5508 
5509     ArkUI_NumberValue value1[] = {{.f32 = val0}};
5510     ArkUI_AttributeItem item1 = {value1, sizeof(value1) / sizeof(ArkUI_NumberValue)};
5511 
5512     ArkUI_NumberValue value2[] = {{.f32 = val0}, {.f32 = val0}, {.f32 = val0}, {.f32 = val0}};
5513     ArkUI_AttributeItem item2 = {value2, sizeof(value2) / sizeof(ArkUI_NumberValue)};
5514     /**
5515      * @tc.steps: step3. test NODE_BACKDROP_BLUR ,when one values are in the legal range.
5516      */
5517     value1[0].f32 = 20;
5518     auto backdropBlurResult = nodeAPI->setAttribute(rootNode, NODE_BACKDROP_BLUR, &item1);
5519     EXPECT_EQ(backdropBlurResult, 0);
5520     auto backdropBlurVal = nodeAPI->getAttribute(rootNode, NODE_BACKDROP_BLUR);
5521     EXPECT_EQ(backdropBlurVal->value[0].f32, 20);
5522 
5523     /**
5524      * @tc.steps: step4. test NODE_BACKDROP_BLUR ,when three values are in the legal range.
5525      */
5526     value[0].f32 = 20;
5527     value[1].f32 = 30;
5528     value[2].f32 = 50;
5529 
5530     backdropBlurResult = nodeAPI->setAttribute(rootNode, NODE_BACKDROP_BLUR, &item);
5531     EXPECT_EQ(backdropBlurResult, 0);
5532     backdropBlurVal = nodeAPI->getAttribute(rootNode, NODE_BACKDROP_BLUR);
5533     EXPECT_EQ(backdropBlurVal->value[0].f32, 20);
5534     EXPECT_EQ(backdropBlurVal->value[1].f32, 30);
5535     EXPECT_EQ(backdropBlurVal->value[2].f32, 50);
5536 
5537     /**
5538      * @tc.steps: step5. test NODE_BACKDROP_BLUR ,when the first value is not in the legal range.
5539      */
5540     value[0].f32 = -20;
5541     value[1].f32 = 30;
5542     value[2].f32 = 50;
5543 
5544     backdropBlurResult = nodeAPI->setAttribute(rootNode, NODE_BACKDROP_BLUR, &item);
5545     EXPECT_EQ(backdropBlurResult, 401);
5546 
5547     /**
5548      * @tc.steps: step6. test NODE_BACKDROP_BLUR ,when the second value is not in the legal range.
5549      */
5550     value[0].f32 = 20;
5551     value[1].f32 = 128;
5552     value[2].f32 = 127;
5553 
5554     backdropBlurResult = nodeAPI->setAttribute(rootNode, NODE_BACKDROP_BLUR, &item);
5555     EXPECT_EQ(backdropBlurResult, 401);
5556 
5557     /**
5558      * @tc.steps: step7. test NODE_BACKDROP_BLUR ,when the third value is not in the legal range.
5559      */
5560     value[0].f32 = 20;
5561     value[1].f32 = 127;
5562     value[2].f32 = 128;
5563 
5564     backdropBlurResult = nodeAPI->setAttribute(rootNode, NODE_BACKDROP_BLUR, &item);
5565     EXPECT_EQ(backdropBlurResult, 401);
5566 
5567     /**
5568      * @tc.steps: step8. test NODE_BACKDROP_BLUR ,when four parameters are passed in.
5569      */
5570     value2[0].f32 = 20;
5571     value2[1].f32 = 127;
5572     value2[2].f32 = 127;
5573     value2[3].f32 = 127;
5574 
5575     backdropBlurResult = nodeAPI->setAttribute(rootNode, NODE_BACKDROP_BLUR, &item2);
5576     EXPECT_EQ(backdropBlurResult, 401);
5577 }
5578 
5579 /**
5580  * @tc.name: NativeNodeProgressTest001
5581  * @tc.desc: Test progressNode function.
5582  * @tc.type: FUNC
5583  */
5584 HWTEST_F(NativeNodeTest, NativeNodeProgressTest001, TestSize.Level1)
5585 {
5586     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
5587         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
5588     ASSERT_NE(nodeAPI, nullptr);
5589     auto rootNode = nodeAPI->createNode(ARKUI_NODE_PROGRESS);
5590     ASSERT_NE(rootNode, nullptr);
5591     ArkUI_NumberValue value[] = {{.f32 = 10.0f}};
5592     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue)};
5593     nodeAPI->setAttribute(rootNode, NODE_PROGRESS_VALUE, &item);
5594     value[0].i32 = 100.0f;
5595     nodeAPI->setAttribute(rootNode, NODE_PROGRESS_TOTAL, &item);
5596     value[0].i32 = ARKUI_PROGRESS_TYPE_LINEAR;
5597     nodeAPI->setAttribute(rootNode, NODE_PROGRESS_TYPE, &item);
5598 
5599     auto linearStyleOption = OH_ArkUI_ProgressLinearStyleOption_Create();
5600     ArkUI_AttributeItem linearStyleItem = {.size = 0, .object = linearStyleOption};
5601     OH_ArkUI_ProgressLinearStyleOption_SetSmoothEffectEnabled(linearStyleOption, false);
5602     OH_ArkUI_ProgressLinearStyleOption_SetScanEffectEnabled(linearStyleOption, true);
5603     OH_ArkUI_ProgressLinearStyleOption_SetStrokeWidth(linearStyleOption, 50.0f);
5604     OH_ArkUI_ProgressLinearStyleOption_SetStrokeRadius(linearStyleOption, 20.0f);
5605     nodeAPI->setAttribute(rootNode, NODE_PROGRESS_LINEAR_STYLE, &linearStyleItem);
5606 
5607     EXPECT_EQ(OH_ArkUI_ProgressLinearStyleOption_GetSmoothEffectEnabled(linearStyleOption), false);
5608     EXPECT_EQ(OH_ArkUI_ProgressLinearStyleOption_GetScanEffectEnabled(linearStyleOption), true);
5609     EXPECT_EQ(OH_ArkUI_ProgressLinearStyleOption_GetStrokeWidth(linearStyleOption), 50.0f);
5610     EXPECT_EQ(OH_ArkUI_ProgressLinearStyleOption_GetStrokeRadius(linearStyleOption), 20.0f);
5611 
5612     nodeAPI->resetAttribute(rootNode, NODE_PROGRESS_LINEAR_STYLE);
5613     EXPECT_EQ(OH_ArkUI_ProgressLinearStyleOption_GetSmoothEffectEnabled(linearStyleOption), false);
5614     EXPECT_EQ(OH_ArkUI_ProgressLinearStyleOption_GetScanEffectEnabled(linearStyleOption), true);
5615     EXPECT_EQ(OH_ArkUI_ProgressLinearStyleOption_GetStrokeWidth(linearStyleOption), 50.0f);
5616     EXPECT_EQ(OH_ArkUI_ProgressLinearStyleOption_GetStrokeRadius(linearStyleOption), 20.0f);
5617     OH_ArkUI_ProgressLinearStyleOption_Destroy(linearStyleOption);
5618     nodeAPI->disposeNode(rootNode);
5619 }
5620 
5621 /**
5622  * @tc.name: NativeNodeProgressTest002
5623  * @tc.desc: Test progressNode function.
5624  * @tc.type: FUNC
5625  */
5626 HWTEST_F(NativeNodeTest, NativeNodeProgressTest002, TestSize.Level1)
5627 {
5628     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
5629         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
5630     ASSERT_NE(nodeAPI, nullptr);
5631     auto rootNode = nodeAPI->createNode(ARKUI_NODE_PROGRESS);
5632     ASSERT_NE(rootNode, nullptr);
5633     ArkUI_NumberValue value[] = {{.f32 = 10.0f}};
5634     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue)};
5635     nodeAPI->setAttribute(rootNode, NODE_PROGRESS_VALUE, &item);
5636     value[0].i32 = 100.0f;
5637     nodeAPI->setAttribute(rootNode, NODE_PROGRESS_TOTAL, &item);
5638     value[0].i32 = ARKUI_PROGRESS_TYPE_LINEAR;
5639     nodeAPI->setAttribute(rootNode, NODE_PROGRESS_TYPE, &item);
5640 
5641     ArkUI_ProgressLinearStyleOption* linearStyleOption = nullptr;
5642     // set attribute value
5643     OH_ArkUI_ProgressLinearStyleOption_SetSmoothEffectEnabled(linearStyleOption, false);
5644     OH_ArkUI_ProgressLinearStyleOption_SetScanEffectEnabled(linearStyleOption, true);
5645     OH_ArkUI_ProgressLinearStyleOption_SetStrokeWidth(linearStyleOption, 50.0f);
5646     OH_ArkUI_ProgressLinearStyleOption_SetStrokeRadius(linearStyleOption, 20.0f);
5647 
5648     // get attribute default value
5649     EXPECT_EQ(OH_ArkUI_ProgressLinearStyleOption_GetSmoothEffectEnabled(linearStyleOption), true);
5650     EXPECT_EQ(OH_ArkUI_ProgressLinearStyleOption_GetScanEffectEnabled(linearStyleOption), false);
5651     EXPECT_EQ(OH_ArkUI_ProgressLinearStyleOption_GetStrokeWidth(linearStyleOption), -1.0f);
5652     EXPECT_EQ(OH_ArkUI_ProgressLinearStyleOption_GetStrokeRadius(linearStyleOption), -1.0f);
5653     OH_ArkUI_ProgressLinearStyleOption_Destroy(linearStyleOption);
5654 
5655     // reset attribute value
5656     nodeAPI->resetAttribute(rootNode, NODE_PROGRESS_LINEAR_STYLE);
5657     auto linearStyleItem = nodeAPI->getAttribute(rootNode, NODE_PROGRESS_LINEAR_STYLE);
5658     linearStyleOption = reinterpret_cast<ArkUI_ProgressLinearStyleOption*>(linearStyleItem->object);
5659     EXPECT_EQ(OH_ArkUI_ProgressLinearStyleOption_GetSmoothEffectEnabled(linearStyleOption), true);
5660     EXPECT_EQ(OH_ArkUI_ProgressLinearStyleOption_GetScanEffectEnabled(linearStyleOption), false);
5661     EXPECT_EQ(OH_ArkUI_ProgressLinearStyleOption_GetStrokeWidth(linearStyleOption), 4.0f);
5662     EXPECT_EQ(OH_ArkUI_ProgressLinearStyleOption_GetStrokeRadius(linearStyleOption), 2.0f);
5663     nodeAPI->setAttribute(rootNode, NODE_PROGRESS_LINEAR_STYLE, nullptr);
5664 
5665     value[0].i32 = ARKUI_PROGRESS_TYPE_RING;
5666     nodeAPI->setAttribute(rootNode, NODE_PROGRESS_TYPE, &item);
5667     nodeAPI->setAttribute(rootNode, NODE_PROGRESS_LINEAR_STYLE, linearStyleItem);
5668     nodeAPI->resetAttribute(rootNode, NODE_PROGRESS_LINEAR_STYLE);
5669     EXPECT_EQ(nodeAPI->getAttribute(rootNode, NODE_PROGRESS_LINEAR_STYLE), nullptr);
5670     nodeAPI->disposeNode(rootNode);
5671 }
5672 
5673 /**
5674  * @tc.name: NativeNodeIssueTest001
5675  * @tc.desc: Test customSpanNode function.
5676  * @tc.type: FUNC
5677  */
5678 HWTEST_F(NativeNodeTest, NativeNodeIssueTest001, TestSize.Level1)
5679 {
5680     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
5681         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
5682     auto node = nodeAPI->createNode(ARKUI_NODE_STACK);
__anonc6a477b60102(ArkUI_NodeEvent* event) 5683     auto ret = OHOS::Ace::NodeModel::AddNodeEventReceiver(node, [](ArkUI_NodeEvent* event) {
5684         auto node = OH_ArkUI_NodeEvent_GetNodeHandle(event);
5685         OHOS::Ace::NodeModel::DisposeNode(node);
5686     });
5687     EXPECT_EQ(ret, ARKUI_ERROR_CODE_NO_ERROR);
5688     ArkUI_NodeEvent event = { 0, 0 };
5689     event.node = node;
5690     OHOS::Ace::NodeModel::HandleNodeEvent(&event);
5691 }
5692 
5693 /**
5694  * @tc.name: NativeNodeTest084
5695  * @tc.desc: Test swiperNode function.
5696  * @tc.type: FUNC
5697  */
5698 HWTEST_F(NativeNodeTest, NativeNodeTest084, TestSize.Level1)
5699 {
5700     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
5701         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
5702     auto rootNode = nodeAPI->createNode(ARKUI_NODE_SWIPER);
5703     ArkUI_NumberValue value[] = { { .i32 = 1 }, { .i32 = 1 } };
5704     ArkUI_AttributeItem item = { value, sizeof(value) / sizeof(ArkUI_NumberValue), nullptr, nullptr };
5705 
5706     value[0].i32 = true;
5707     value[1].i32 = false;
5708     auto ret = nodeAPI->setAttribute(rootNode, NODE_SWIPER_AUTO_PLAY, &item);
5709     EXPECT_EQ(ret, ARKUI_ERROR_CODE_NO_ERROR);
5710     auto resultTtem = nodeAPI->getAttribute(rootNode, NODE_SWIPER_AUTO_PLAY);
5711     EXPECT_TRUE(resultTtem->value[0].i32);
5712     EXPECT_FALSE(resultTtem->value[1].i32);
5713     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_SWIPER_AUTO_PLAY), ARKUI_ERROR_CODE_NO_ERROR);
5714     resultTtem = nodeAPI->getAttribute(rootNode, NODE_SWIPER_AUTO_PLAY);
5715     EXPECT_FALSE(resultTtem->value[0].i32);
5716     EXPECT_TRUE(resultTtem->value[1].i32);
5717     nodeAPI->disposeNode(rootNode);
5718 }
5719 
LayoutCallback(void * userData)5720 void LayoutCallback(void* userData)
5721 {
5722 }
5723 
5724 /**
5725  * @tc.name: NativeNodeTest085
5726  * @tc.desc: Test OH_ArkUI_RegisterLayoutCallbackOnNodeHandle function.
5727  * @tc.type: FUNC
5728  */
5729 HWTEST_F(NativeNodeTest, NativeNodeTest085, TestSize.Level1)
5730 {
5731     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
5732         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
5733     auto node = nodeAPI->createNode(ARKUI_NODE_STACK);
5734     auto ret = OH_ArkUI_RegisterLayoutCallbackOnNodeHandle(node, nullptr, LayoutCallback);
5735     EXPECT_EQ(ret, ERROR_CODE_NO_ERROR);
5736     ret = OH_ArkUI_RegisterLayoutCallbackOnNodeHandle(nullptr, nullptr, LayoutCallback);
5737     EXPECT_EQ(ret, ERROR_CODE_PARAM_INVALID);
5738 }
5739 
5740 /**
5741  * @tc.name: NativeNodeTest086
5742  * @tc.desc: Test OH_ArkUI_RegisterDrawCallbackOnNodeHandle function.
5743  * @tc.type: FUNC
5744  */
5745 HWTEST_F(NativeNodeTest, NativeNodeTest086, TestSize.Level1)
5746 {
5747     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
5748         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
5749     auto node = nodeAPI->createNode(ARKUI_NODE_STACK);
5750     auto ret = OH_ArkUI_RegisterDrawCallbackOnNodeHandle(node, nullptr, LayoutCallback);
5751     EXPECT_EQ(ret, ERROR_CODE_NO_ERROR);
5752     ret = OH_ArkUI_RegisterDrawCallbackOnNodeHandle(nullptr, nullptr, LayoutCallback);
5753     EXPECT_EQ(ret, ERROR_CODE_PARAM_INVALID);
5754 }
5755 
5756 /**
5757  * @tc.name: NativeNodeTest087
5758  * @tc.desc: Test OH_ArkUI_UnregisterLayoutCallbackOnNodeHandle function.
5759  * @tc.type: FUNC
5760  */
5761 HWTEST_F(NativeNodeTest, NativeNodeTest087, TestSize.Level1)
5762 {
5763     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
5764         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
5765     auto node = nodeAPI->createNode(ARKUI_NODE_STACK);
5766     auto ret = OH_ArkUI_UnregisterLayoutCallbackOnNodeHandle(node);
5767     EXPECT_EQ(ret, ERROR_CODE_NO_ERROR);
5768     ret = OH_ArkUI_UnregisterLayoutCallbackOnNodeHandle(nullptr);
5769     EXPECT_EQ(ret, ERROR_CODE_PARAM_INVALID);
5770 }
5771 
5772 /**
5773  * @tc.name: NativeNodeTest088
5774  * @tc.desc: Test OH_ArkUI_UnregisterDrawCallbackOnNodeHandle function.
5775  * @tc.type: FUNC
5776  */
5777 HWTEST_F(NativeNodeTest, NativeNodeTest088, TestSize.Level1)
5778 {
5779     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
5780         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
5781     auto node = nodeAPI->createNode(ARKUI_NODE_STACK);
5782     auto ret = OH_ArkUI_UnregisterDrawCallbackOnNodeHandle(node);
5783     EXPECT_EQ(ret, ERROR_CODE_NO_ERROR);
5784     ret = OH_ArkUI_UnregisterDrawCallbackOnNodeHandle(nullptr);
5785     EXPECT_EQ(ret, ERROR_CODE_PARAM_INVALID);
5786 }
5787 
5788 /**
5789  * @tc.name: NativeNodeTest089
5790  * @tc.desc: Test xcomponentNode of TEXTURE type function.
5791  * @tc.type: FUNC
5792  */
5793 HWTEST_F(NativeNodeTest, NativeNodeTest089, TestSize.Level1)
5794 {
5795     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
5796         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
5797     auto rootNode = nodeAPI->createNode(ARKUI_NODE_XCOMPONENT_TEXTURE);
5798     ASSERT_NE(rootNode, nullptr);
5799 
5800     ArkUI_NumberValue value[] = {{.i32 = ARKUI_XCOMPONENT_TYPE_TEXTURE}, {.f32 = 10.0f}};
5801     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue), "test"};
5802     nodeAPI->setAttribute(rootNode, NODE_XCOMPONENT_ID, &item);
5803     nodeAPI->setAttribute(rootNode, NODE_XCOMPONENT_TYPE, &item);
5804 
5805     uint32_t val100 = 100;
5806     value[0].u32 = val100;
5807     value[1].u32 = val100;
5808     nodeAPI->setAttribute(rootNode, NODE_XCOMPONENT_SURFACE_SIZE, &item);
5809 
5810     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_XCOMPONENT_TYPE), ARKUI_ERROR_CODE_NO_ERROR);
5811     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_XCOMPONENT_SURFACE_SIZE), ARKUI_ERROR_CODE_NO_ERROR);
5812 
5813     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_XCOMPONENT_ID), nullptr);
5814     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_XCOMPONENT_TYPE), nullptr);
5815     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_XCOMPONENT_SURFACE_SIZE), nullptr);
5816     nodeAPI->disposeNode(rootNode);
5817 }
5818 
5819 /**
5820  * @tc.name: NativeNodeTest090
5821  * @tc.desc: Test abnormalInput For XComponent of TEXTURE type function.
5822  * @tc.type: FUNC
5823  */
5824 HWTEST_F(NativeNodeTest, NativeNodeTest090, TestSize.Level1)
5825 {
5826     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
5827         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
5828     auto rootNode = nodeAPI->createNode(ARKUI_NODE_XCOMPONENT_TEXTURE);
5829     ArkUI_NumberValue value0[] = {};
5830     ArkUI_AttributeItem item0 = {value0, 0, nullptr, nullptr};
5831     ArkUI_NumberValue value[] = {{.i32 = -1}};
5832     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue), nullptr, nullptr};
5833     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_XCOMPONENT_ID, nullptr), ARKUI_ERROR_CODE_PARAM_INVALID);
5834     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_XCOMPONENT_ID, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
5835     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_XCOMPONENT_TYPE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
5836     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_XCOMPONENT_TYPE, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
5837     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_XCOMPONENT_SURFACE_SIZE, &item0), ARKUI_ERROR_CODE_PARAM_INVALID);
5838     nodeAPI->disposeNode(rootNode);
5839 }
5840 
5841 /**
5842  * @tc.name: NativeNodeTest091
5843  * @tc.desc: Test scrollToIndex and scrollToItemInGroup function.
5844  * @tc.type: FUNC
5845  */
5846 HWTEST_F(NativeNodeTest, NativeNodeTest091, TestSize.Level1)
5847 {
5848     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
5849         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
5850     auto list = nodeAPI->createNode(ARKUI_NODE_LIST);
5851     auto listItem = nodeAPI->createNode(ARKUI_NODE_LIST_ITEM);
5852     auto listItemGroup = nodeAPI->createNode(ARKUI_NODE_LIST_ITEM_GROUP);
5853     nodeAPI->addChild(listItemGroup, listItem);
5854     nodeAPI->addChild(list, listItemGroup);
5855     ASSERT_NE(list, nullptr);
5856     ArkUI_NumberValue value[] = { 0, 0, 0, 1 };
5857     ArkUI_AttributeItem item = { value, 4 };
5858     value[0].i32 = 0;
5859     value[1].i32 = 0;
5860     value[2].i32 = 0;
5861     value[3].i32 = 1;
5862     EXPECT_EQ(nodeAPI->setAttribute(list, NODE_LIST_SCROLL_TO_INDEX, &item), ARKUI_ERROR_CODE_NO_ERROR);
5863     EXPECT_EQ(nodeAPI->setAttribute(list, NODE_LIST_SCROLL_TO_INDEX_IN_GROUP, &item), ARKUI_ERROR_CODE_NO_ERROR);
5864     value[0].i32 = 2;
5865     value[1].i32 = 2;
5866     ArkUI_AttributeItem item0 = { value, 2 };
5867     EXPECT_EQ(nodeAPI->setAttribute(list, NODE_LIST_SCROLL_TO_INDEX_IN_GROUP, &item0), ARKUI_ERROR_CODE_NO_ERROR);
5868     value[0].i32 = 3;
5869     value[1].i32 = 3;
5870     value[2].i32 = -1;
5871     value[3].i32 = -1;
5872     EXPECT_EQ(nodeAPI->setAttribute(list, NODE_LIST_SCROLL_TO_INDEX_IN_GROUP, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
5873     nodeAPI->disposeNode(listItem);
5874     nodeAPI->disposeNode(listItemGroup);
5875     nodeAPI->disposeNode(list);
5876 }
5877 
5878 /**
5879  * @tc.name: NativeNodeTest092
5880  * @tc.desc: Test setLanes function.
5881  * @tc.type: FUNC
5882  */
5883 HWTEST_F(NativeNodeTest, NativeNodeTest092, TestSize.Level1)
5884 {
5885     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
5886         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
5887     auto list = nodeAPI->createNode(ARKUI_NODE_LIST);
5888     ASSERT_NE(list, nullptr);
5889     ArkUI_NumberValue value[] = { 2, 3, 4, 5 };
5890     ArkUI_AttributeItem item = { value, 4 };
5891     EXPECT_EQ(nodeAPI->setAttribute(list, NODE_LIST_LANES, &item), ARKUI_ERROR_CODE_NO_ERROR);
5892     auto ret = nodeAPI->getAttribute(list, NODE_LIST_LANES);
5893     EXPECT_EQ(ret->value[0].u32, 1);
5894     EXPECT_EQ(ret->value[1].f32, 3);
5895     EXPECT_EQ(ret->value[2].f32, 4);
5896     EXPECT_EQ(ret->value[3].f32, 5);
5897     value[0].u32 = 2;
5898     value[1].f32 = -1;
5899     value[2].f32 = -1;
5900     value[3].f32 = 3;
5901     EXPECT_EQ(nodeAPI->setAttribute(list, NODE_LIST_LANES, &item), ARKUI_ERROR_CODE_NO_ERROR);
5902     ret = nodeAPI->getAttribute(list, NODE_LIST_LANES);
5903     EXPECT_EQ(ret->value[0].u32, 2);
5904     EXPECT_EQ(ret->value[1].f32, 0);
5905     EXPECT_EQ(ret->value[2].f32, 0);
5906     EXPECT_EQ(ret->value[3].f32, 3);
5907     EXPECT_EQ(nodeAPI->resetAttribute(list, NODE_LIST_LANES), ARKUI_ERROR_CODE_NO_ERROR);
5908     ret = nodeAPI->getAttribute(list, NODE_LIST_LANES);
5909     EXPECT_EQ(ret->value[0].u32, 1);
5910     EXPECT_EQ(ret->value[1].f32, 0);
5911     EXPECT_EQ(ret->value[2].f32, 0);
5912     EXPECT_EQ(ret->value[3].f32, 0);
5913     value[0].u32 = -1;
5914     value[1].f32 = -1;
5915     value[2].f32 = -1;
5916     value[3].f32 = -1;
5917     EXPECT_EQ(nodeAPI->setAttribute(list, NODE_LIST_LANES, &item), ARKUI_ERROR_CODE_NO_ERROR);
5918     ret = nodeAPI->getAttribute(list, NODE_LIST_LANES);
5919     EXPECT_EQ(ret->value[0].u32, 1);
5920     EXPECT_EQ(ret->value[1].f32, 0);
5921     EXPECT_EQ(ret->value[2].f32, 0);
5922     EXPECT_EQ(ret->value[3].f32, 0);
5923     nodeAPI->disposeNode(list);
5924 }
5925 
5926 /**
5927  * @tc.name: NativeNodeTest093
5928  * @tc.desc: Test listScrollSnapAlign function.
5929  * @tc.type: FUNC
5930  */
5931 HWTEST_F(NativeNodeTest, NativeNodeTest093, TestSize.Level1)
5932 {
5933     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
5934         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
5935     auto list = nodeAPI->createNode(ARKUI_NODE_LIST);
5936     ASSERT_NE(list, nullptr);
5937     ArkUI_NumberValue value[] = { 1 };
5938     ArkUI_AttributeItem item = { value, 1 };
5939     value[0].i32 = 1;
5940     EXPECT_EQ(nodeAPI->setAttribute(list, NODE_LIST_SCROLL_SNAP_ALIGN, &item), ARKUI_ERROR_CODE_NO_ERROR);
5941     auto ret = nodeAPI->getAttribute(list, NODE_LIST_SCROLL_SNAP_ALIGN);
5942     EXPECT_EQ(ret->value[0].i32, 1);
5943     EXPECT_EQ(nodeAPI->resetAttribute(list, NODE_LIST_SCROLL_SNAP_ALIGN), ARKUI_ERROR_CODE_NO_ERROR);
5944     ret = nodeAPI->getAttribute(list, NODE_LIST_SCROLL_SNAP_ALIGN);
5945     EXPECT_EQ(ret->value[0].i32, 0);
5946     value[0].i32 = -1;
5947     nodeAPI->setAttribute(list, NODE_LIST_SCROLL_SNAP_ALIGN, &item);
5948     ret = nodeAPI->getAttribute(list, NODE_LIST_SCROLL_SNAP_ALIGN);
5949     EXPECT_EQ(ret->value[0].i32, 0);
5950     nodeAPI->disposeNode(list);
5951 }
5952 
5953 /**
5954  * @tc.name: NativeNodeTest094
5955  * @tc.desc: Test scrollContentStartOffset and scrollContentEndOffset function.
5956  * @tc.type: FUNC
5957  */
5958 HWTEST_F(NativeNodeTest, NativeNodeTest094, TestSize.Level1)
5959 {
5960     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
5961         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
5962     auto list = nodeAPI->createNode(ARKUI_NODE_LIST);
5963     ASSERT_NE(list, nullptr);
5964     ArkUI_NumberValue value[] = { 1 };
5965     ArkUI_AttributeItem item = { value, 1 };
5966     value[0].f32 = 1;
5967     EXPECT_EQ(nodeAPI->setAttribute(list, NODE_SCROLL_CONTENT_START_OFFSET, &item), ARKUI_ERROR_CODE_NO_ERROR);
5968     EXPECT_EQ(nodeAPI->setAttribute(list, NODE_SCROLL_CONTENT_END_OFFSET, &item), ARKUI_ERROR_CODE_NO_ERROR);
5969     auto ret = nodeAPI->getAttribute(list, NODE_SCROLL_CONTENT_START_OFFSET);
5970     EXPECT_EQ(ret->value[0].f32, 1);
5971     ret = nodeAPI->getAttribute(list, NODE_SCROLL_CONTENT_END_OFFSET);
5972     EXPECT_EQ(ret->value[0].f32, 1);
5973     EXPECT_EQ(nodeAPI->resetAttribute(list, NODE_SCROLL_CONTENT_START_OFFSET), ARKUI_ERROR_CODE_NO_ERROR);
5974     EXPECT_EQ(nodeAPI->resetAttribute(list, NODE_SCROLL_CONTENT_END_OFFSET), ARKUI_ERROR_CODE_NO_ERROR);
5975     ret = nodeAPI->getAttribute(list, NODE_SCROLL_CONTENT_START_OFFSET);
5976     EXPECT_EQ(ret->value[0].f32, 0);
5977     ret = nodeAPI->getAttribute(list, NODE_SCROLL_CONTENT_END_OFFSET);
5978     EXPECT_EQ(ret->value[0].f32, 0);
5979     nodeAPI->disposeNode(list);
5980 }
5981 
5982 /**
5983  * @tc.name: NativeNodeTest095
5984  * @tc.desc: Test listMaintainVisibleContentPosition function.
5985  * @tc.type: FUNC
5986  */
5987 HWTEST_F(NativeNodeTest, NativeNodeTest095, TestSize.Level1)
5988 {
5989     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
5990         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
5991     auto list = nodeAPI->createNode(ARKUI_NODE_LIST);
5992     ASSERT_NE(list, nullptr);
5993     ArkUI_NumberValue value[] = { 1 };
5994     ArkUI_AttributeItem item = { value, 1 };
5995     value[0].i32 = 1;
5996     auto ret = nodeAPI->setAttribute(list, NODE_LIST_MAINTAIN_VISIBLE_CONTENT_POSITION, &item);
5997     EXPECT_EQ(ret, ARKUI_ERROR_CODE_NO_ERROR);
5998     auto ret1 = nodeAPI->getAttribute(list, NODE_LIST_MAINTAIN_VISIBLE_CONTENT_POSITION);
5999     EXPECT_EQ(ret1->value[0].i32, 1);
6000     EXPECT_EQ(nodeAPI->resetAttribute(list, NODE_LIST_MAINTAIN_VISIBLE_CONTENT_POSITION), ARKUI_ERROR_CODE_NO_ERROR);
6001     ret1 = nodeAPI->getAttribute(list, NODE_LIST_MAINTAIN_VISIBLE_CONTENT_POSITION);
6002     EXPECT_EQ(ret1->value[0].i32, 0);
6003     nodeAPI->disposeNode(list);
6004 }
6005 
6006 /**
6007  * @tc.name: NativeNodeTest096
6008  * @tc.desc: Test onScrollVisibleContentChange function.
6009  * @tc.type: FUNC
6010  */
6011 HWTEST_F(NativeNodeTest, NativeNodeTest096, TestSize.Level1)
6012 {
6013     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
6014         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
6015     auto listNode = nodeAPI->createNode(ARKUI_NODE_LIST);
6016     auto ret = nodeAPI->registerNodeEvent(listNode, NODE_LIST_ON_SCROLL_VISIBLE_CONTENT_CHANGE, 1, nullptr);
6017     EXPECT_EQ(ret, ARKUI_ERROR_CODE_NO_ERROR);
6018     nodeAPI->unregisterNodeEvent(listNode, NODE_LIST_ON_SCROLL_VISIBLE_CONTENT_CHANGE);
6019     nodeAPI->disposeNode(listNode);
6020 
6021     int32_t nodeType = static_cast<int32_t>(ARKUI_NODE_LIST);
6022     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_LIST_ON_SCROLL_VISIBLE_CONTENT_CHANGE, nodeType);
6023     EXPECT_EQ(ret, static_cast<int32_t>(ON_LIST_SCROLL_VISIBLE_CONTENT_CHANGE));
6024 
6025     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_LIST_SCROLL_VISIBLE_CONTENT_CHANGE);
6026     EXPECT_EQ(ret, static_cast<int32_t>(NODE_LIST_ON_SCROLL_VISIBLE_CONTENT_CHANGE));
6027 }
6028 
6029 /**
6030  * @tc.name: NativeNodeTest097
6031  * @tc.desc: Test cachedCount function.
6032  * @tc.type: FUNC
6033  */
6034 HWTEST_F(NativeNodeTest, NativeNodeTest097, TestSize.Level1)
6035 {
6036     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
6037         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
6038     auto list = nodeAPI->createNode(ARKUI_NODE_LIST);
6039     ASSERT_NE(list, nullptr);
6040     ArkUI_NumberValue value[] = { 1, 1 };
6041     ArkUI_AttributeItem item = { value, 2 };
6042     value[0].i32 = 1;
6043     value[1].i32 = 1;
6044     EXPECT_EQ(nodeAPI->setAttribute(list, NODE_LIST_CACHED_COUNT, &item), ARKUI_ERROR_CODE_NO_ERROR);
6045     auto ret = nodeAPI->getAttribute(list, NODE_LIST_CACHED_COUNT);
6046     EXPECT_EQ(ret->value[1].i32, 1);
6047     EXPECT_EQ(nodeAPI->resetAttribute(list, NODE_LIST_CACHED_COUNT), ARKUI_ERROR_CODE_NO_ERROR);
6048     ret = nodeAPI->getAttribute(list, NODE_LIST_CACHED_COUNT);
6049     EXPECT_EQ(ret->value[1].i32, 0);
6050     value[1].i32 = -1;
6051     EXPECT_EQ(nodeAPI->setAttribute(list, NODE_LIST_CACHED_COUNT, &item), ARKUI_ERROR_CODE_NO_ERROR);
6052     ret = nodeAPI->getAttribute(list, NODE_LIST_CACHED_COUNT);
6053     EXPECT_EQ(ret->value[1].i32, 0);
6054     nodeAPI->disposeNode(list);
6055 }
6056 
6057 /**
6058  * @tc.name: NativeNodeTest098
6059  * @tc.desc: Test setHeader and setFooter function.
6060  * @tc.type: FUNC
6061  */
6062 HWTEST_F(NativeNodeTest, NativeNodeTest098, TestSize.Level1)
6063 {
6064     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
6065         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
6066     auto listItemGroup = nodeAPI->createNode(ARKUI_NODE_LIST_ITEM_GROUP);
6067     ASSERT_NE(listItemGroup, nullptr);
6068     EXPECT_EQ(nodeAPI->resetAttribute(listItemGroup, NODE_LIST_ITEM_GROUP_SET_HEADER), ARKUI_ERROR_CODE_NO_ERROR);
6069     EXPECT_EQ(nodeAPI->resetAttribute(listItemGroup, NODE_LIST_ITEM_GROUP_SET_FOOTER), ARKUI_ERROR_CODE_NO_ERROR);
6070     nodeAPI->disposeNode(listItemGroup);
6071 }
6072 
6073 /**
6074  * @tc.name: NativeNodeTest099
6075  * @tc.desc: Test LazyForEach function.
6076  * @tc.type: FUNC
6077  */
6078 HWTEST_F(NativeNodeTest, NativeNodeTest099, TestSize.Level1)
6079 {
6080     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
6081         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
6082     auto listItemGroup = nodeAPI->createNode(ARKUI_NODE_LIST_ITEM_GROUP);
6083     ASSERT_NE(listItemGroup, nullptr);
6084     ArkUI_NumberValue value0[] = {};
6085     ArkUI_AttributeItem item0 = { value0, 0, nullptr, nullptr };
6086     auto ret = nodeAPI->setAttribute(listItemGroup, NODE_LIST_ITEM_GROUP_NODE_ADAPTER, &item0);
6087     EXPECT_EQ(ret, ARKUI_ERROR_CODE_PARAM_INVALID);
6088     EXPECT_EQ(nodeAPI->resetAttribute(listItemGroup, NODE_LIST_ITEM_GROUP_NODE_ADAPTER), ARKUI_ERROR_CODE_NO_ERROR);
6089     EXPECT_NE(nodeAPI->getAttribute(listItemGroup, NODE_LIST_ITEM_GROUP_NODE_ADAPTER), nullptr);
6090     nodeAPI->disposeNode(listItemGroup);
6091 }
6092 
6093 /**
6094  * @tc.name: ListItemGroupTest001
6095  * @tc.desc: Test ListItemGroup set header and adapter.
6096  * @tc.type: FUNC
6097  */
6098 HWTEST_F(NativeNodeTest, ListItemGroupTest001, TestSize.Level1)
6099 {
6100     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
6101         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
6102     auto listItemGroup = nodeAPI->createNode(ARKUI_NODE_LIST_ITEM_GROUP);
6103     auto header = nodeAPI->createNode(ARKUI_NODE_STACK);
6104     ASSERT_NE(listItemGroup, nullptr);
6105     ArkUI_AttributeItem item0 = { nullptr, 0, nullptr, header };
6106     auto ret = nodeAPI->setAttribute(listItemGroup, NODE_LIST_ITEM_GROUP_SET_HEADER, &item0);
6107     auto* fullImpl = OHOS::Ace::NodeModel::GetFullImpl();
6108     auto* nodeAdapter = fullImpl->getNodeAdapterAPI()->create();
6109     auto adapter = reinterpret_cast<ArkUI_NodeAdapterHandle>(nodeAdapter);
6110     item0.object = adapter;
6111     ret = nodeAPI->setAttribute(listItemGroup, NODE_LIST_ITEM_GROUP_NODE_ADAPTER, &item0);
6112     EXPECT_EQ(ret, ARKUI_ERROR_CODE_NO_ERROR);
6113 
6114     fullImpl->getNodeAdapterAPI()->dispose(nodeAdapter);
6115     nodeAPI->disposeNode(listItemGroup);
6116 }
6117 
6118 /**
6119  * @tc.name: NativeNodeTest097
6120  * @tc.desc: Test SetOnVisibleAreaApproximateChange function.
6121  * @tc.type: FUNC
6122  */
6123 HWTEST_F(NativeNodeTest, NativeNodeTest100, TestSize.Level1)
6124 {
6125     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
6126         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
6127     auto rootNode = nodeAPI->createNode(ARKUI_NODE_STACK);
6128     auto option = OH_ArkUI_VisibleAreaEventOptions_Create();
6129     float* ratiosArray = new float[2];
6130     ratiosArray[0] = 0.0f;
6131     ratiosArray[1] = 1.0f;
6132     OH_ArkUI_VisibleAreaEventOptions_SetRatios(option, ratiosArray, 2);
6133     ArkUI_AttributeItem attributeItem = { .object = option };
6134     nodeAPI->setAttribute(rootNode, NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_RATIO, &attributeItem);
6135     auto ret = nodeAPI->registerNodeEvent(rootNode, NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_EVENT, 1, nullptr);
6136     EXPECT_EQ(ret, ARKUI_ERROR_CODE_NO_ERROR);
6137     nodeAPI->unregisterNodeEvent(rootNode, NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_EVENT);
6138     nodeAPI->disposeNode(rootNode);
6139 
6140     int32_t nodeType = static_cast<int32_t>(ARKUI_NODE_BUTTON);
6141     ret = OHOS::Ace::NodeModel::ConvertOriginEventType(NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_EVENT, nodeType);
6142     EXPECT_EQ(ret, static_cast<int32_t>(ON_VISIBLE_AREA_APPROXIMATE_CHANGE));
6143 
6144     ret = OHOS::Ace::NodeModel::ConvertToNodeEventType(ON_VISIBLE_AREA_APPROXIMATE_CHANGE);
6145     EXPECT_EQ(ret, static_cast<int32_t>(NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_EVENT));
6146     OH_ArkUI_VisibleAreaEventOptions_Dispose(option);
6147     OH_ArkUI_VisibleAreaEventOptions_Dispose(nullptr);
6148 }
6149 
6150 /**
6151  * @tc.name: NativeNodeTest098
6152  * @tc.desc: Test NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_RATIO.
6153  * @tc.type: FUNC
6154  */
6155 HWTEST_F(NativeNodeTest, NativeNodeTest101, TestSize.Level1)
6156 {
6157     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
6158         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
6159     ASSERT_NE(nodeAPI, nullptr);
6160     auto rootNode = nodeAPI->createNode(ARKUI_NODE_STACK);
6161     ASSERT_NE(rootNode, nullptr);
6162 
6163     auto option = OH_ArkUI_VisibleAreaEventOptions_Create();
6164     float* ratiosArray = new float[2];
6165     ratiosArray[0] = 0.0f;
6166     ratiosArray[1] = 1.0f;
6167     OH_ArkUI_VisibleAreaEventOptions_SetRatios(option, ratiosArray, 2);
6168     OH_ArkUI_VisibleAreaEventOptions_SetExpectedUpdateInterval(option, 1000);
6169     ArkUI_AttributeItem attributeItem = { .object = option };
6170     nodeAPI->setAttribute(rootNode, NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_RATIO, &attributeItem);
6171 
6172     float* getRatiosArray = new float[3];
6173     int size = 3;
6174     OH_ArkUI_VisibleAreaEventOptions_GetRatios(option, getRatiosArray, &size);
6175 
6176     EXPECT_EQ(getRatiosArray[0], 0.0f);
6177     EXPECT_EQ(getRatiosArray[1], 1.0f);
6178 
6179     EXPECT_EQ(OH_ArkUI_VisibleAreaEventOptions_GetExpectedUpdateInterval(option), 1000);
6180     nodeAPI->disposeNode(rootNode);
6181 }
6182 
6183 /**
6184  * @tc.name: NativeNodeTest102
6185  * @tc.desc: Test NODE_SWIPER_CACHED_COUNT function.
6186  * @tc.type: FUNC
6187  */
6188 HWTEST_F(NativeNodeTest, NativeNodeTest102, TestSize.Level1)
6189 {
6190     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
6191         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
6192     auto swiper = nodeAPI->createNode(ARKUI_NODE_SWIPER);
6193     ASSERT_NE(swiper, nullptr);
6194     ArkUI_NumberValue value[] = { 1, 1 };
6195     ArkUI_AttributeItem item = { value, 2 };
6196     value[0].i32 = 1;
6197     value[1].i32 = 1;
6198     EXPECT_EQ(nodeAPI->setAttribute(swiper, NODE_SWIPER_CACHED_COUNT, &item), ARKUI_ERROR_CODE_NO_ERROR);
6199     auto ret = nodeAPI->getAttribute(swiper, NODE_SWIPER_CACHED_COUNT);
6200     EXPECT_EQ(ret->value[1].i32, 1);
6201     EXPECT_EQ(nodeAPI->resetAttribute(swiper, NODE_SWIPER_CACHED_COUNT), ARKUI_ERROR_CODE_NO_ERROR);
6202     ret = nodeAPI->getAttribute(swiper, NODE_SWIPER_CACHED_COUNT);
6203     EXPECT_EQ(ret->value[1].i32, 0);
6204     value[1].i32 = -1;
6205     EXPECT_EQ(nodeAPI->setAttribute(swiper, NODE_SWIPER_CACHED_COUNT, &item), ARKUI_ERROR_CODE_NO_ERROR);
6206     ret = nodeAPI->getAttribute(swiper, NODE_SWIPER_CACHED_COUNT);
6207     EXPECT_EQ(ret->value[1].i32, 0);
6208     nodeAPI->disposeNode(swiper);
6209 }
6210 
6211 /**
6212  * @tc.name: NativeNodeTest103
6213  * @tc.desc: Test NODE_SWIPER_AUTO_FILL function.
6214  * @tc.type: FUNC
6215  */
6216 HWTEST_F(NativeNodeTest, NativeNodeTest103, TestSize.Level1)
6217 {
6218     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
6219         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
6220     auto swiper = nodeAPI->createNode(ARKUI_NODE_SWIPER);
6221     ASSERT_NE(swiper, nullptr);
6222     ArkUI_NumberValue value[] = { 1, 1 };
6223     ArkUI_AttributeItem item = { value, 2 };
6224     value[0].f32 = 1;
6225     value[1].i32 = 1;
6226     EXPECT_EQ(nodeAPI->setAttribute(swiper, NODE_SWIPER_AUTO_FILL, &item), ARKUI_ERROR_CODE_NO_ERROR);
6227     auto ret = nodeAPI->getAttribute(swiper, NODE_SWIPER_AUTO_FILL);
6228     EXPECT_EQ(ret->value[0].f32, 1);
6229     EXPECT_EQ(ret->value[1].i32, 1);
6230     EXPECT_EQ(nodeAPI->resetAttribute(swiper, NODE_SWIPER_AUTO_FILL), ARKUI_ERROR_CODE_NO_ERROR);
6231     ret = nodeAPI->getAttribute(swiper, NODE_SWIPER_AUTO_FILL);
6232     EXPECT_EQ(ret->value[0].f32, 0);
6233     EXPECT_EQ(ret->value[1].i32, 0);
6234     value[0].f32 = -1;
6235     value[1].i32 = -1;
6236     EXPECT_EQ(nodeAPI->setAttribute(swiper, NODE_SWIPER_AUTO_FILL, &item), ARKUI_ERROR_CODE_PARAM_INVALID);
6237     ret = nodeAPI->getAttribute(swiper, NODE_SWIPER_AUTO_FILL);
6238     EXPECT_EQ(ret->value[0].f32, 0);
6239     EXPECT_EQ(ret->value[1].i32, 0);
6240     nodeAPI->disposeNode(swiper);
6241 }
6242 
6243 /**
6244  * @tc.name: NativeNodeTest105
6245  * @tc.desc: Test NODE_SWIPER_SHOW_DISPLAY_ARROW function.
6246  * @tc.type: FUNC
6247  */
6248 HWTEST_F(NativeNodeTest, NativeNodeTest105, TestSize.Level1)
6249 {
6250     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
6251         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
6252     ArkUI_NodeHandle swiper = nodeAPI->createNode(ARKUI_NODE_SWIPER);
6253     const int size = 14;
6254     const char* arr[size] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13"};
6255 
6256     for (int j = 0; j < size; j++) {
6257         ArkUI_NodeHandle textNode = nodeAPI->createNode(ARKUI_NODE_TEXT);
6258         ArkUI_AttributeItem content = { .string = arr[j] };
6259         nodeAPI->setAttribute(textNode, NODE_TEXT_CONTENT, &content);
6260 
6261         ArkUI_NumberValue value[] = {0};
6262         ArkUI_AttributeItem item = {value, 1};
6263         value[0].f32 = 400;
6264         nodeAPI->setAttribute(textNode, NODE_WIDTH, &item);
6265         value[0].f32 = 160;
6266         nodeAPI->setAttribute(textNode, NODE_HEIGHT, &item);
6267         value[0].u32 = 0xFFAFEEEE;
6268         nodeAPI->setAttribute(textNode, NODE_BACKGROUND_COLOR, &item);
6269         value[0].i32 = 0;
6270         nodeAPI->setAttribute(textNode, NODE_TEXT_ALIGN, &item);
6271         value[0].f32 = 30;
6272         nodeAPI->setAttribute(textNode, NODE_FONT_SIZE, &item);
6273 
6274         ArkUI_AttributeItem textId = {.string = "SwiperAutoPlayText"};
6275         nodeAPI->setAttribute(textNode, NODE_ID, &textId);
6276         nodeAPI->addChild(swiper, textNode);
6277     }
6278     ArkUI_SwiperArrowStyle* arrowStyle = OH_ArkUI_SwiperArrowStyle_Create();
6279     OH_ArkUI_SwiperArrowStyle_SetShowBackground(arrowStyle, 1);
6280     OH_ArkUI_SwiperArrowStyle_SetShowSidebarMiddle(arrowStyle, 0);
6281     OH_ArkUI_SwiperArrowStyle_SetBackgroundSize(arrowStyle, 25);
6282     OH_ArkUI_SwiperArrowStyle_SetBackgroundColor(arrowStyle, 0xFF182431);
6283     OH_ArkUI_SwiperArrowStyle_SetArrowSize(arrowStyle, 25);
6284     OH_ArkUI_SwiperArrowStyle_SetArrowColor(arrowStyle, 0xFF182431);
6285 
6286     ArkUI_NumberValue valueTemp[1];
6287     ArkUI_AttributeItem itemTemp = {.value=valueTemp, .size=1, .object = arrowStyle};
6288     valueTemp[0].i32 = 2;
6289     nodeAPI->setAttribute(swiper, NODE_SWIPER_SHOW_DISPLAY_ARROW, &itemTemp);
6290     auto itemTempReturn = nodeAPI->getAttribute(swiper, NODE_SWIPER_SHOW_DISPLAY_ARROW);
6291     auto returnObject = static_cast<ArkUI_SwiperArrowStyle*>(itemTempReturn->object);
6292     ASSERT_NE(returnObject, nullptr);
6293     EXPECT_EQ(OH_ArkUI_SwiperArrowStyle_GetShowBackground(arrowStyle), 1);
6294     EXPECT_EQ(OH_ArkUI_SwiperArrowStyle_GetShowSidebarMiddle(arrowStyle), 0);
6295     EXPECT_EQ(OH_ArkUI_SwiperArrowStyle_GetBackgroundSize(arrowStyle), 25);
6296     EXPECT_EQ(OH_ArkUI_SwiperArrowStyle_GetBackgroundColor(arrowStyle), 0xFF182431);
6297     EXPECT_EQ(OH_ArkUI_SwiperArrowStyle_GetArrowSize(arrowStyle), 18.75);
6298     EXPECT_EQ(OH_ArkUI_SwiperArrowStyle_GetArrowColor(arrowStyle), 0xFF182431);
6299     OH_ArkUI_SwiperArrowStyle_Destroy(arrowStyle);
6300     nodeAPI->disposeNode(swiper);
6301 }
6302 
6303 /**
6304  * @tc.name: NativeNodeTest106
6305  * @tc.desc: Test NODE_BACKGROUND_IMAGE_RESIZABLE_WITH_SLICE function.
6306  * @tc.type: FUNC
6307  */
6308 HWTEST_F(NativeNodeTest, NativeNodeTest106, TestSize.Level1)
6309 {
6310     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
6311         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
6312     auto rootNode = nodeAPI->createNode(ARKUI_NODE_STACK);
6313     auto childNode = nodeAPI->createNode(ARKUI_NODE_STACK);
6314     ASSERT_NE(rootNode, nullptr);
6315     int32_t ret1 = nodeAPI->addChild(rootNode, childNode);
6316     EXPECT_EQ(ret1, ARKUI_ERROR_CODE_NO_ERROR);
6317     float size = 100.0f;
6318     float left = 6.0f;
6319     float top = 7.0f;
6320     float right  = 8.0f;
6321     float bottom = 9.0f;
6322     ArkUI_NumberValue value[] = {{.f32 = size}};
6323     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue)};
6324 
6325     ArkUI_NumberValue value2[] = {{.f32 = left}, {.f32 = top}, {.f32 = right}, {.f32 = bottom}};
6326     ArkUI_AttributeItem item2 = {value2, sizeof(value2) / sizeof(ArkUI_NumberValue)};
6327 
6328     nodeAPI->setAttribute(rootNode, NODE_WIDTH, &item);
6329     auto widthVal = nodeAPI->getAttribute(rootNode, NODE_WIDTH);
6330     EXPECT_EQ(widthVal->value[0].f32, size);
6331 
6332     nodeAPI->setAttribute(rootNode, NODE_HEIGHT, &item);
6333     auto heightVal = nodeAPI->getAttribute(rootNode, NODE_HEIGHT);
6334     EXPECT_EQ(heightVal->value[0].f32, size);
6335 
6336     nodeAPI->setAttribute(rootNode, NODE_BACKGROUND_IMAGE_RESIZABLE_WITH_SLICE, &item2);
6337     auto sliceVal = nodeAPI->getAttribute(rootNode, NODE_BACKGROUND_IMAGE_RESIZABLE_WITH_SLICE);
6338     EXPECT_EQ(sliceVal->value[0].f32, left);
6339     EXPECT_EQ(sliceVal->value[1].f32, top);
6340     EXPECT_EQ(sliceVal->value[2].f32, right);
6341     EXPECT_EQ(sliceVal->value[3].f32, bottom);
6342 }
6343 
6344 /**
6345  * @tc.name: NativeNodeTest107
6346  * @tc.desc: Test OH_ArkUI_LayoutConstraint_Create.
6347  * @tc.type: FUNC
6348  */
6349 HWTEST_F(NativeNodeTest, NativeNodeTest107, TestSize.Level1)
6350 {
6351     ArkUI_LayoutConstraint* layoutConstraint = OH_ArkUI_LayoutConstraint_Create();
6352     EXPECT_TRUE(layoutConstraint);
6353     OH_ArkUI_LayoutConstraint_Dispose(layoutConstraint);
6354 }
6355 
6356 /**
6357  * @tc.name: NativeNodeTest108
6358  * @tc.desc: Test OH_ArkUI_LayoutConstraint_Copy.
6359  * @tc.type: FUNC
6360  */
6361 HWTEST_F(NativeNodeTest, NativeNodeTest108, TestSize.Level1)
6362 {
6363     ArkUI_LayoutConstraint* layoutConstraint = OH_ArkUI_LayoutConstraint_Create();
6364     ArkUI_LayoutConstraint* layoutConstraintCopy = OH_ArkUI_LayoutConstraint_Copy(layoutConstraint);
6365     EXPECT_TRUE(layoutConstraintCopy);
6366     OH_ArkUI_LayoutConstraint_Dispose(layoutConstraint);
6367     OH_ArkUI_LayoutConstraint_Dispose(layoutConstraintCopy);
6368 }
6369 
6370 /**
6371  * @tc.name: NativeNodeTest109
6372  * @tc.desc: Test OH_ArkUI_NodeCustomEvent_GetLayoutConstraintInMeasure.
6373  * @tc.type: FUNC
6374  */
6375 HWTEST_F(NativeNodeTest, NativeNodeTest109, TestSize.Level1)
6376 {
6377     auto event = new ArkUICustomNodeEvent();
6378     event->data[0] = 1;
6379     event->data[1] = 2;
6380     event->data[2] = 2;
6381     event->data[3] = 2;
6382     event->data[4] = 2;
6383     event->data[5] = 2;
6384     auto nodeEvent = new ArkUI_NodeCustomEvent();
6385     nodeEvent->event = event;
6386     auto layoutConstraint = OH_ArkUI_NodeCustomEvent_GetLayoutConstraintInMeasure(nodeEvent);
6387     EXPECT_TRUE(layoutConstraint);
6388     delete event;
6389     OH_ArkUI_LayoutConstraint_Dispose(layoutConstraint);
6390 }
6391 
6392 /**
6393  * @tc.name: NativeNodeTest110
6394  * @tc.desc: Test OH_ArkUI_NodeCustomEvent_GetLayoutConstraintInLayout.
6395  * @tc.type: FUNC
6396  */
6397 HWTEST_F(NativeNodeTest, NativeNodeTest110, TestSize.Level1)
6398 {
6399     auto event = new ArkUICustomNodeEvent();
6400     event->data[0] = 1;
6401     event->data[1] = 2;
6402     auto nodeEvent = new ArkUI_NodeCustomEvent();
6403 
6404     nodeEvent->event = event;
6405     auto intOffset = OH_ArkUI_NodeCustomEvent_GetPositionInLayout(nodeEvent);
6406     EXPECT_EQ(intOffset.x, 1);
6407     EXPECT_EQ(intOffset.y, 2);
6408     delete event;
6409     delete nodeEvent;
6410 }
6411 
6412 /**
6413  * @tc.name: NativeNodeTest111
6414  * @tc.desc: Test OH_ArkUI_NodeCustomEvent_GetDrawContextInDraw.
6415  * @tc.type: FUNC
6416  */
6417 HWTEST_F(NativeNodeTest, NativeNodeTest111, TestSize.Level1)
6418 {
6419     ArkUICustomNodeEvent* event = new ArkUICustomNodeEvent();
6420     event->data[2] = 1;
6421     event->data[3] = 2;
6422     ArkUI_NodeCustomEvent* nodeEvent = new ArkUI_NodeCustomEvent();
6423     nodeEvent->event = event;
6424 
6425     auto drawContext = OH_ArkUI_NodeCustomEvent_GetDrawContextInDraw(nodeEvent);
6426     EXPECT_EQ(drawContext->width, 1);
6427     EXPECT_EQ(drawContext->height, 2);
6428     delete event;
6429 }
6430 
6431 /**
6432  * @tc.name: NativeNodeTest112
6433  * @tc.desc: Test OH_ArkUI_NodeCustomEvent_GetEventTargetId.
6434  * @tc.type: FUNC
6435  */
6436 HWTEST_F(NativeNodeTest, NativeNodeTest112, TestSize.Level1)
6437 {
6438     ArkUI_NodeCustomEvent* event = new ArkUI_NodeCustomEvent;
6439     event->targetId = 1;
6440     auto targetId = OH_ArkUI_NodeCustomEvent_GetEventTargetId(event);
6441     EXPECT_EQ(targetId, 1);
6442     delete event;
6443 }
6444 
6445 /**
6446  * @tc.name: NativeNodeTest113
6447  * @tc.desc: Test OH_ArkUI_NodeCustomEvent_GetUserData.
6448  * @tc.type: FUNC
6449  */
6450 HWTEST_F(NativeNodeTest, NativeNodeTest113, TestSize.Level1)
6451 {
6452     ArkUI_NodeCustomEvent* event = new ArkUI_NodeCustomEvent;
6453     event->userData = nullptr;
6454     auto userData = OH_ArkUI_NodeCustomEvent_GetUserData(event);
6455     EXPECT_EQ(userData, nullptr);
6456     delete event;
6457 }
6458 
6459 /**
6460  * @tc.name: NativeNodeTest114
6461  * @tc.desc: Test OH_ArkUI_NodeCustomEvent_GetNodeHandle.
6462  * @tc.type: FUNC
6463  */
6464 HWTEST_F(NativeNodeTest, NativeNodeTest114, TestSize.Level1)
6465 {
6466     ArkUI_NodeCustomEvent* event = new ArkUI_NodeCustomEvent;
6467     event->node = nullptr;
6468     auto node = OH_ArkUI_NodeCustomEvent_GetNodeHandle(event);
6469     EXPECT_EQ(node, nullptr);
6470     delete event;
6471 }
6472 
6473 /**
6474  * @tc.name: NativeNodeTest115
6475  * @tc.desc: Test OH_ArkUI_NodeCustomEvent_GetEventType.
6476  * @tc.type: FUNC
6477  */
6478 HWTEST_F(NativeNodeTest, NativeNodeTest115, TestSize.Level1)
6479 {
6480     ArkUICustomNodeEvent* event = new ArkUICustomNodeEvent;
6481     event->kind = 1;
6482     ArkUI_NodeCustomEvent* nodeEvent = new ArkUI_NodeCustomEvent;
6483     nodeEvent->event = event;
6484     auto eventType = OH_ArkUI_NodeCustomEvent_GetEventType(nodeEvent);
6485     EXPECT_EQ(eventType, ArkUI_NodeCustomEventType::ARKUI_NODE_CUSTOM_EVENT_ON_MEASURE);
6486     delete event;
6487     delete nodeEvent;
6488 }
6489 
6490 /**
6491  * @tc.name: NativeNodeTest116
6492  * @tc.desc: Test OH_ArkUI_NodeCustomEvent_GetCustomSpanMeasureInfo.
6493  * @tc.type: FUNC
6494  */
6495 HWTEST_F(NativeNodeTest, NativeNodeTest116, TestSize.Level1)
6496 {
6497     ArkUICustomNodeEvent* event = new ArkUICustomNodeEvent;
6498     event->numberData[0].f32 = 1.0f;
6499     ArkUI_NodeCustomEvent* nodeEvent = new ArkUI_NodeCustomEvent;
6500     auto ret = OH_ArkUI_NodeCustomEvent_GetCustomSpanMeasureInfo(nullptr, nullptr);
6501     EXPECT_EQ(ret, ARKUI_ERROR_CODE_PARAM_INVALID);
6502     ret = OH_ArkUI_NodeCustomEvent_GetCustomSpanMeasureInfo(nodeEvent, nullptr);
6503 
6504     EXPECT_EQ(ret, ARKUI_ERROR_CODE_PARAM_INVALID);
6505 
6506     nodeEvent->event = event;
6507     ret = OH_ArkUI_NodeCustomEvent_GetCustomSpanMeasureInfo(nodeEvent, nullptr);
6508     EXPECT_EQ(ret, ARKUI_ERROR_CODE_PARAM_INVALID);
6509     ArkUI_CustomSpanMeasureInfo* info = new ArkUI_CustomSpanMeasureInfo;
6510     ret = OH_ArkUI_NodeCustomEvent_GetCustomSpanMeasureInfo(nodeEvent, info);
6511     EXPECT_EQ(info->fontSize, 1.0f);
6512     EXPECT_EQ(ret, ARKUI_ERROR_CODE_NO_ERROR);
6513     delete event;
6514     delete nodeEvent;
6515     delete info;
6516 }
6517 
6518 /**
6519  * @tc.name: NativeNodeTest117
6520  * @tc.desc: Test OH_ArkUI_NodeCustomEvent_SetCustomSpanMetrics.
6521  * @tc.type: FUNC
6522  */
6523 HWTEST_F(NativeNodeTest, NativeNodeTest117, TestSize.Level1)
6524 {
6525     ArkUICustomNodeEvent* event = new ArkUICustomNodeEvent;
6526     ArkUI_NodeCustomEvent* nodeEvent = new ArkUI_NodeCustomEvent;
6527     auto ret = OH_ArkUI_NodeCustomEvent_SetCustomSpanMetrics(nullptr, nullptr);
6528     EXPECT_EQ(ret, ARKUI_ERROR_CODE_PARAM_INVALID);
6529 
6530     ret = OH_ArkUI_NodeCustomEvent_SetCustomSpanMetrics(nodeEvent, nullptr);
6531     EXPECT_EQ(ret, ARKUI_ERROR_CODE_PARAM_INVALID);
6532 
6533     nodeEvent->event = event;
6534     ret = OH_ArkUI_NodeCustomEvent_SetCustomSpanMetrics(nodeEvent, nullptr);
6535     EXPECT_EQ(ret, ARKUI_ERROR_CODE_PARAM_INVALID);
6536     ArkUI_CustomSpanMetrics* metrics = new ArkUI_CustomSpanMetrics;
6537     metrics->width = 1.0f;
6538     metrics->height = 2.0f;
6539     ret = OH_ArkUI_NodeCustomEvent_SetCustomSpanMetrics(nodeEvent, metrics);
6540     EXPECT_EQ(ret, ARKUI_ERROR_CODE_NO_ERROR);
6541     delete event;
6542     delete nodeEvent;
6543     delete metrics;
6544 }
6545 
6546 /**
6547  * @tc.name: NativeNodeTest118
6548  * @tc.desc: Test OH_ArkUI_NodeCustomEvent_GetCustomSpanDrawInfo.
6549  * @tc.type: FUNC
6550  */
6551 HWTEST_F(NativeNodeTest, NativeNodeTest118, TestSize.Level1)
6552 {
6553     ArkUICustomNodeEvent* event = new ArkUICustomNodeEvent;
6554     event->numberData[0].f32 = 1.0f;
6555     ArkUI_NodeCustomEvent* nodeEvent = new ArkUI_NodeCustomEvent;
6556     auto ret = OH_ArkUI_NodeCustomEvent_GetCustomSpanDrawInfo(nullptr, nullptr);
6557     EXPECT_EQ(ret, ARKUI_ERROR_CODE_PARAM_INVALID);
6558     ret = OH_ArkUI_NodeCustomEvent_GetCustomSpanDrawInfo(nodeEvent, nullptr);
6559     EXPECT_EQ(ret, ARKUI_ERROR_CODE_PARAM_INVALID);
6560     nodeEvent->event = event;
6561     ArkUI_CustomSpanDrawInfo* info = new ArkUI_CustomSpanDrawInfo;
6562     ret = OH_ArkUI_NodeCustomEvent_GetCustomSpanDrawInfo(nodeEvent, info);
6563     EXPECT_EQ(info->optionsX, 1.0f);
6564     EXPECT_EQ(ret, ARKUI_ERROR_CODE_NO_ERROR);
6565     delete event;
6566     delete nodeEvent;
6567     delete info;
6568 }
6569 
6570 /**
6571  * @tc.name: NativeNodeTest119
6572  * @tc.desc: Test OH_ArkUI_CustomSpanMeasureInfo_Dispose.
6573  * @tc.type: FUNC
6574  */
6575 HWTEST_F(NativeNodeTest, NativeNodeTest119, TestSize.Level1)
6576 {
6577     ArkUI_CustomSpanMeasureInfo* info = new ArkUI_CustomSpanMeasureInfo;
6578     EXPECT_TRUE(info);
6579     OH_ArkUI_CustomSpanMeasureInfo_Dispose(info);
6580     OH_ArkUI_CustomSpanMeasureInfo_Dispose(nullptr);
6581 }
6582 
6583 /**
6584  * @tc.name: NativeNodeTest120
6585  * @tc.desc: Test OH_ArkUI_CustomSpanMeasureInfo_GetFontSize.
6586  * @tc.type: FUNC
6587  */
6588 HWTEST_F(NativeNodeTest, NativeNodeTest120, TestSize.Level1)
6589 {
6590     ArkUI_CustomSpanMeasureInfo* info = new ArkUI_CustomSpanMeasureInfo;
6591     info->fontSize = 1.0f;
6592     auto fontSize = OH_ArkUI_CustomSpanMeasureInfo_GetFontSize(info);
6593     EXPECT_EQ(fontSize, 1.0f);
6594     fontSize = OH_ArkUI_CustomSpanMeasureInfo_GetFontSize(nullptr);
6595     EXPECT_EQ(fontSize, 0.0f);
6596     OH_ArkUI_CustomSpanMeasureInfo_Dispose(info);
6597 }
6598 
6599 /**
6600  * @tc.name: NativeNodeTest121
6601  * @tc.desc: Test OH_ArkUI_CustomSpanMetrics_Dispose.
6602  * @tc.type: FUNC
6603  */
6604 HWTEST_F(NativeNodeTest, NativeNodeTest121, TestSize.Level1)
6605 {
6606     ArkUI_CustomSpanMetrics* metrics = new ArkUI_CustomSpanMetrics;
6607     EXPECT_NE(metrics, nullptr);
6608     OH_ArkUI_CustomSpanMetrics_Dispose(metrics);
6609     OH_ArkUI_CustomSpanMetrics_Dispose(nullptr);
6610 }
6611 
6612 /**
6613  * @tc.name: NativeNodeTest122
6614  * @tc.desc: Test OH_ArkUI_CustomSpanMetrics_SetWidth and OH_ArkUI_CustomSpanMetrics_SetHeight.
6615  * @tc.type: FUNC
6616  */
6617 HWTEST_F(NativeNodeTest, NativeNodeTest122, TestSize.Level1)
6618 {
6619     ArkUI_CustomSpanMetrics* metrics = new ArkUI_CustomSpanMetrics;
6620     auto ret1 = OH_ArkUI_CustomSpanMetrics_SetWidth(metrics, 1.0f);
6621     auto ret2 = OH_ArkUI_CustomSpanMetrics_SetHeight(metrics, 2.0f);
6622     EXPECT_EQ(metrics->width, 1.0f);
6623     EXPECT_EQ(metrics->height, 2.0f);
6624     EXPECT_EQ(ret1, ARKUI_ERROR_CODE_NO_ERROR);
6625     EXPECT_EQ(ret2, ARKUI_ERROR_CODE_NO_ERROR);
6626     ret1 = OH_ArkUI_CustomSpanMetrics_SetWidth(nullptr, 1.0f);
6627     ret2 = OH_ArkUI_CustomSpanMetrics_SetHeight(nullptr, 1.0f);
6628     EXPECT_EQ(ret1, ARKUI_ERROR_CODE_PARAM_INVALID);
6629     EXPECT_EQ(ret2, ARKUI_ERROR_CODE_PARAM_INVALID);
6630     OH_ArkUI_CustomSpanMetrics_Dispose(metrics);
6631 }
6632 
6633 /**
6634  * @tc.name: NativeNodeTest123
6635  * @tc.desc: Test OH_ArkUI_CustomSpanDrawInfo_GetXXX Function
6636  * @tc.type: FUNC
6637  */
6638 HWTEST_F(NativeNodeTest, NativeNodeTest123, TestSize.Level1)
6639 {
6640     auto info = OH_ArkUI_CustomSpanDrawInfo_Create();
6641     EXPECT_TRUE(info);
6642     info->optionsX = 1.0f;
6643     info->optionsLineTop = 2.0f;
6644     info->optionsLineBottom = 3.0f;
6645     info->optionsBaseLine = 4.0f;
6646     auto optionsX = OH_ArkUI_CustomSpanDrawInfo_GetXOffset(nullptr);
6647     auto optionsLineTop = OH_ArkUI_CustomSpanDrawInfo_GetLineTop(nullptr);
6648     auto optionsLineBottom = OH_ArkUI_CustomSpanDrawInfo_GetLineBottom(nullptr);
6649     auto optionsBaseLine = OH_ArkUI_CustomSpanDrawInfo_GetBaseline(nullptr);
6650     EXPECT_EQ(optionsX, 0.0f);
6651     EXPECT_EQ(optionsLineTop, 0.0f);
6652     EXPECT_EQ(optionsLineBottom, 0.0f);
6653     EXPECT_EQ(optionsBaseLine, 0.0f);
6654     optionsX = OH_ArkUI_CustomSpanDrawInfo_GetXOffset(info);
6655     optionsLineTop = OH_ArkUI_CustomSpanDrawInfo_GetLineTop(info);
6656     optionsLineBottom = OH_ArkUI_CustomSpanDrawInfo_GetLineBottom(info);
6657     optionsBaseLine = OH_ArkUI_CustomSpanDrawInfo_GetBaseline(info);
6658     EXPECT_EQ(optionsX, 1.0f);
6659     EXPECT_EQ(optionsLineTop, 2.0f);
6660     EXPECT_EQ(optionsLineBottom, 3.0f);
6661     EXPECT_EQ(optionsBaseLine, 4.0f);
6662     OH_ArkUI_CustomSpanDrawInfo_Dispose(info);
6663 }
6664 
6665 /**
6666  * @tc.name: NativeNodeTest124
6667  * @tc.desc: Test OH_ArkUI_DrawContext_GetSize Function
6668  * @tc.type: FUNC
6669  */
6670 HWTEST_F(NativeNodeTest, NativeNodeTest124, TestSize.Level1)
6671 {
6672     auto intSize = OH_ArkUI_DrawContext_GetSize(nullptr);
6673     EXPECT_EQ(intSize.height, 0);
6674     EXPECT_EQ(intSize.width, 0);
6675     auto drawContext = new ArkUI_DrawContext;
6676     drawContext->width = 1.0f;
6677     drawContext->height = 2.0f;
6678     intSize = OH_ArkUI_DrawContext_GetSize(drawContext);
6679     EXPECT_EQ(intSize.width, 1.0f);
6680     EXPECT_EQ(intSize.height, 2.0f);
6681     delete drawContext;
6682 }
6683 
6684 /**
6685  * @tc.name: NativeNodeTest125
6686  * @tc.desc: Test OH_ArkUI_SwiperIndicator_Create.
6687  * @tc.type: FUNC
6688  */
6689 HWTEST_F(NativeNodeTest, NativeNodeTest125, TestSize.Level1)
6690 {
6691     auto indicator = OH_ArkUI_SwiperIndicator_Create(ARKUI_SWIPER_INDICATOR_TYPE_DIGIT);
6692     EXPECT_FALSE(indicator);
6693     indicator = OH_ArkUI_SwiperIndicator_Create(ARKUI_SWIPER_INDICATOR_TYPE_DOT);
6694     EXPECT_TRUE(indicator);
6695     auto ret = OH_ArkUI_SwiperIndicator_SetMaxDisplayCount(indicator, 7);
6696     EXPECT_EQ(ret, ARKUI_ERROR_CODE_NO_ERROR);
6697     ret = OH_ArkUI_SwiperIndicator_SetMaxDisplayCount(indicator, 1);
6698     EXPECT_EQ(ret, ARKUI_ERROR_CODE_PARAM_INVALID);
6699     ret = OH_ArkUI_SwiperIndicator_SetMaxDisplayCount(indicator, 10);
6700     EXPECT_EQ(ret, ARKUI_ERROR_CODE_PARAM_INVALID);
6701     OH_ArkUI_SwiperIndicator_Dispose(indicator);
6702 }
6703 
6704 /**
6705  * @tc.name: NativeNodeTest126
6706  * @tc.desc: Test ArkUI_SwiperArrowStyle.
6707  * @tc.type: FUNC
6708  */
6709 HWTEST_F(NativeNodeTest, NativeNodeTest126, TestSize.Level1)
6710 {
6711     auto arrowStyle = OH_ArkUI_SwiperArrowStyle_Create();
6712     OH_ArkUI_SwiperArrowStyle_SetShowBackground(arrowStyle, 1);
6713     EXPECT_EQ(OH_ArkUI_SwiperArrowStyle_GetShowBackground(arrowStyle), 1);
6714     OH_ArkUI_SwiperArrowStyle_SetShowBackground(arrowStyle, 0);
6715     EXPECT_EQ(OH_ArkUI_SwiperArrowStyle_GetShowBackground(arrowStyle), 0);
6716     OH_ArkUI_SwiperArrowStyle_SetShowBackground(arrowStyle, 3);
6717 
6718     OH_ArkUI_SwiperArrowStyle_SetShowSidebarMiddle(arrowStyle, 1);
6719     EXPECT_EQ(OH_ArkUI_SwiperArrowStyle_GetShowSidebarMiddle(arrowStyle), 1);
6720     OH_ArkUI_SwiperArrowStyle_SetShowSidebarMiddle(arrowStyle, 0);
6721     EXPECT_EQ(OH_ArkUI_SwiperArrowStyle_GetShowSidebarMiddle(arrowStyle), 0);
6722 
6723     OH_ArkUI_SwiperArrowStyle_SetBackgroundSize(arrowStyle, 25.0f);
6724     EXPECT_EQ(OH_ArkUI_SwiperArrowStyle_GetBackgroundSize(arrowStyle), 25.0f);
6725     OH_ArkUI_SwiperArrowStyle_SetBackgroundColor(arrowStyle, 0xFF182431);
6726     EXPECT_EQ(OH_ArkUI_SwiperArrowStyle_GetBackgroundColor(arrowStyle), 0xFF182431);
6727     OH_ArkUI_SwiperArrowStyle_SetArrowSize(arrowStyle, 25.0f);
6728     EXPECT_EQ(OH_ArkUI_SwiperArrowStyle_GetArrowSize(arrowStyle), 25.0f);
6729     OH_ArkUI_SwiperArrowStyle_Destroy(arrowStyle);
6730 }
6731 
6732 /**
6733  * @tc.name: NativeNodeTest127
6734  * @tc.desc: Test OH_ArkUI_CustomSpanMeasureInfo_Create.
6735  * @tc.type: FUNC
6736  */
6737 HWTEST_F(NativeNodeTest, NativeNodeTest127, TestSize.Level1)
6738 {
6739     auto info = OH_ArkUI_CustomSpanMeasureInfo_Create();
6740     EXPECT_NE(info, nullptr);
6741 }
6742 
6743 /**
6744  * @tc.name: NativeNodeTest128
6745  * @tc.desc: Test OH_ArkUI_CustomSpanMetrics_Create.
6746  * @tc.type: FUNC
6747  */
6748 HWTEST_F(NativeNodeTest, NativeNodeTest128, TestSize.Level1)
6749 {
6750     auto metrics = OH_ArkUI_CustomSpanMetrics_Create();
6751     EXPECT_NE(metrics, nullptr);
6752 }
6753 
6754 /**
6755  * @tc.name: NativeNodeTest129
6756  * @tc.desc: Test OH_ArkUI_LayoutConstraint_Get.
6757  * @tc.type: FUNC
6758  */
6759 HWTEST_F(NativeNodeTest, NativeNodeTest129, TestSize.Level1)
6760 {
6761     auto maxWidth = OH_ArkUI_LayoutConstraint_GetMaxWidth(nullptr);
6762     EXPECT_EQ(maxWidth, -1);
6763     auto minWidth = OH_ArkUI_LayoutConstraint_GetMinWidth(nullptr);
6764     EXPECT_EQ(minWidth, -1);
6765     auto maxHeight = OH_ArkUI_LayoutConstraint_GetMaxHeight(nullptr);
6766     EXPECT_EQ(maxHeight, -1);
6767     auto minHeight = OH_ArkUI_LayoutConstraint_GetMinHeight(nullptr);
6768     EXPECT_EQ(minHeight, -1);
6769     auto percentReferWidth = OH_ArkUI_LayoutConstraint_GetPercentReferenceWidth(nullptr);
6770     EXPECT_EQ(percentReferWidth, -1);
6771     auto percentReferHeight = OH_ArkUI_LayoutConstraint_GetPercentReferenceHeight(nullptr);
6772     EXPECT_EQ(percentReferHeight, -1);
6773 
6774     auto constraint = new ArkUI_LayoutConstraint;
6775     constraint->maxWidth = 1;
6776     constraint->minWidth = 1;
6777     constraint->maxHeight = 1;
6778     constraint->minHeight = 1;
6779     constraint->percentReferWidth = 1;
6780     constraint->percentReferHeight = 1;
6781     maxWidth = OH_ArkUI_LayoutConstraint_GetMaxWidth(constraint);
6782     EXPECT_EQ(maxWidth, 1);
6783     minWidth = OH_ArkUI_LayoutConstraint_GetMaxWidth(constraint);
6784     EXPECT_EQ(minWidth, 1);
6785     maxHeight = OH_ArkUI_LayoutConstraint_GetMaxWidth(constraint);
6786     EXPECT_EQ(maxHeight, 1);
6787     minHeight = OH_ArkUI_LayoutConstraint_GetMaxWidth(constraint);
6788     EXPECT_EQ(minHeight, 1);
6789     percentReferWidth = OH_ArkUI_LayoutConstraint_GetMaxWidth(constraint);
6790     EXPECT_EQ(percentReferWidth, 1);
6791     percentReferHeight = OH_ArkUI_LayoutConstraint_GetMaxWidth(constraint);
6792     EXPECT_EQ(percentReferHeight, 1);
6793 
6794     delete constraint;
6795 }
6796 
6797 /**
6798  * @tc.name: NativeNodeTest130
6799  * @tc.desc: Test OH_ArkUI_LayoutConstraint_Set.
6800  * @tc.type: FUNC
6801  */
6802 HWTEST_F(NativeNodeTest, NativeNodeTest130, TestSize.Level1)
6803 {
6804     int32_t value = 2;
6805     auto constraint = new ArkUI_LayoutConstraint;
6806 
6807     OH_ArkUI_LayoutConstraint_SetMinWidth(nullptr, value);
6808     OH_ArkUI_LayoutConstraint_SetMinWidth(constraint, value);
6809     EXPECT_EQ(constraint->minWidth, value);
6810     OH_ArkUI_LayoutConstraint_SetMaxWidth(nullptr, value);
6811     OH_ArkUI_LayoutConstraint_SetMaxWidth(constraint, value);
6812     EXPECT_EQ(constraint->maxWidth, value);
6813     OH_ArkUI_LayoutConstraint_SetMaxHeight(nullptr, value);
6814     OH_ArkUI_LayoutConstraint_SetMaxHeight(constraint, value);
6815     EXPECT_EQ(constraint->maxHeight, value);
6816     OH_ArkUI_LayoutConstraint_SetMinHeight(nullptr, value);
6817     OH_ArkUI_LayoutConstraint_SetMinHeight(constraint, value);
6818     EXPECT_EQ(constraint->minHeight, value);
6819     OH_ArkUI_LayoutConstraint_SetPercentReferenceWidth(nullptr, value);
6820     OH_ArkUI_LayoutConstraint_SetPercentReferenceWidth(constraint, value);
6821     EXPECT_EQ(constraint->percentReferWidth, value);
6822     OH_ArkUI_LayoutConstraint_SetPercentReferenceHeight(nullptr, value);
6823     OH_ArkUI_LayoutConstraint_SetPercentReferenceHeight(constraint, value);
6824     EXPECT_EQ(constraint->percentReferHeight, value);
6825 
6826     delete constraint;
6827 }
6828 
6829 /**
6830  * @tc.name: NativeNodeTest131
6831  * @tc.desc: Test OH_ArkUI_SwiperIndicator_GetWithNullptr.
6832  * @tc.type: FUNC
6833  */
6834 HWTEST_F(NativeNodeTest, NativeNodeTest131, TestSize.Level1)
6835 {
6836     float value = 1.0f;
6837     value = OH_ArkUI_SwiperIndicator_GetStartPosition(nullptr);
6838     EXPECT_EQ(value, 0.0f);
6839     value = OH_ArkUI_SwiperIndicator_GetTopPosition(nullptr);
6840     EXPECT_EQ(value, 0.0f);
6841     value = OH_ArkUI_SwiperIndicator_GetEndPosition(nullptr);
6842     EXPECT_EQ(value, 0.0f);
6843     value = OH_ArkUI_SwiperIndicator_GetBottomPosition(nullptr);
6844     EXPECT_EQ(value, 0.0f);
6845     value = OH_ArkUI_SwiperIndicator_GetItemWidth(nullptr);
6846     EXPECT_EQ(value, 0.0f);
6847     value = OH_ArkUI_SwiperIndicator_GetItemHeight(nullptr);
6848     EXPECT_EQ(value, 0.0f);
6849     value = OH_ArkUI_SwiperIndicator_GetSelectedItemWidth(nullptr);
6850     EXPECT_EQ(value, 0.0f);
6851     value = OH_ArkUI_SwiperIndicator_GetSelectedItemHeight(nullptr);
6852     EXPECT_EQ(value, 0.0f);
6853     int32_t value1 = 1;
6854     value1 = OH_ArkUI_SwiperIndicator_GetMask(nullptr);
6855     EXPECT_EQ(value1, 0);
6856     uint32_t value2 = 1;
6857     value2 = OH_ArkUI_SwiperIndicator_GetColor(nullptr);
6858     EXPECT_EQ(value2, 0);
6859     value2 = OH_ArkUI_SwiperIndicator_GetSelectedColor(nullptr);
6860     EXPECT_EQ(value2, 0);
6861     value1 = OH_ArkUI_SwiperIndicator_GetMaxDisplayCount(nullptr);
6862     EXPECT_EQ(value1, 0);
6863     value = OH_ArkUI_SwiperIndicator_GetIgnoreSizeOfBottom(nullptr);
6864     EXPECT_EQ(value, 0.0f);
6865     value = OH_ArkUI_SwiperIndicator_GetSpace(nullptr);
6866     EXPECT_EQ(value, 8.0f);
6867 }
6868 
6869 /**
6870  * @tc.name: NativeNodeTest132
6871  * @tc.desc: Test OH_ArkUI_SwiperIndicator.
6872  * @tc.type: FUNC
6873  */
6874 HWTEST_F(NativeNodeTest, NativeNodeTest132, TestSize.Level1)
6875 {
6876     auto indicator = OH_ArkUI_SwiperIndicator_Create(ARKUI_SWIPER_INDICATOR_TYPE_DOT);
6877     float setValueF = 1.0f;
6878     int32_t setValueI = 1;
6879     uint32_t setValueUi = 1;
6880     OH_ArkUI_SwiperIndicator_SetStartPosition(indicator, setValueF);
6881     float value = OH_ArkUI_SwiperIndicator_GetStartPosition(indicator);
6882     EXPECT_EQ(value, setValueF);
6883     OH_ArkUI_SwiperIndicator_SetTopPosition(indicator, setValueF);
6884     value = OH_ArkUI_SwiperIndicator_GetTopPosition(indicator);
6885     EXPECT_EQ(value, setValueF);
6886     OH_ArkUI_SwiperIndicator_SetEndPosition(indicator, setValueF);
6887     value = OH_ArkUI_SwiperIndicator_GetEndPosition(indicator);
6888     EXPECT_EQ(value, setValueF);
6889     OH_ArkUI_SwiperIndicator_SetBottomPosition(indicator, setValueF);
6890     value = OH_ArkUI_SwiperIndicator_GetBottomPosition(indicator);
6891     EXPECT_EQ(value, setValueF);
6892     OH_ArkUI_SwiperIndicator_SetItemWidth(indicator, setValueF);
6893     value = OH_ArkUI_SwiperIndicator_GetItemWidth(indicator);
6894     EXPECT_EQ(value, setValueF);
6895     OH_ArkUI_SwiperIndicator_SetItemHeight(indicator, setValueF);
6896     value = OH_ArkUI_SwiperIndicator_GetItemHeight(indicator);
6897     EXPECT_EQ(value, setValueF);
6898     OH_ArkUI_SwiperIndicator_SetSelectedItemWidth(indicator, setValueF);
6899     value = OH_ArkUI_SwiperIndicator_GetSelectedItemWidth(indicator);
6900     EXPECT_EQ(value, setValueF);
6901     OH_ArkUI_SwiperIndicator_SetSelectedItemHeight(indicator, setValueF);
6902     value = OH_ArkUI_SwiperIndicator_GetSelectedItemHeight(indicator);
6903     EXPECT_EQ(value, setValueF);
6904     OH_ArkUI_SwiperIndicator_SetMask(indicator, setValueI);
6905     int32_t value1 = OH_ArkUI_SwiperIndicator_GetMask(indicator);
6906     EXPECT_EQ(value1, setValueI);
6907     OH_ArkUI_SwiperIndicator_SetColor(indicator, setValueUi);
6908     uint32_t value2 = OH_ArkUI_SwiperIndicator_GetColor(indicator);
6909     EXPECT_EQ(value2, setValueUi);
6910     OH_ArkUI_SwiperIndicator_SetSelectedColor(indicator, setValueUi);
6911     value2 = OH_ArkUI_SwiperIndicator_GetSelectedColor(indicator);
6912     EXPECT_EQ(value2, setValueUi);
6913     OH_ArkUI_SwiperIndicator_SetMaxDisplayCount(indicator, setValueI);
6914     value1 = OH_ArkUI_SwiperIndicator_GetMaxDisplayCount(indicator);
6915     EXPECT_EQ(value1, 0);
6916     OH_ArkUI_SwiperIndicator_SetIgnoreSizeOfBottom(indicator, setValueI);
6917     value1 = OH_ArkUI_SwiperIndicator_GetIgnoreSizeOfBottom(indicator);
6918     EXPECT_EQ(value1, setValueI);
6919     OH_ArkUI_SwiperIndicator_SetSpace(indicator, setValueF);
6920     value = OH_ArkUI_SwiperIndicator_GetSpace(indicator);
6921     EXPECT_EQ(value, setValueF);
6922     OH_ArkUI_SwiperIndicator_Dispose(indicator);
6923 }
6924 
6925 /**
6926  * @tc.name: NativeNodeTest133
6927  * @tc.desc: Test OH_ArkUI_SwiperDigitIndicator.
6928  * @tc.type: FUNC
6929  */
6930 HWTEST_F(NativeNodeTest, NativeNodeTest133, TestSize.Level1)
6931 {
6932     auto indicator = OH_ArkUI_SwiperDigitIndicator_Create();
6933     EXPECT_TRUE(indicator);
6934     OH_ArkUI_SwiperDigitIndicator_Destroy(indicator);
6935 }
6936 
6937 /**
6938  * @tc.name: NativeNodeTest134
6939  * @tc.desc: Test NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_RATIO.
6940  * @tc.type: FUNC
6941  */
6942 HWTEST_F(NativeNodeTest, NativeNodeTest134, TestSize.Level1)
6943 {
6944     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
6945         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
6946     ASSERT_NE(nodeAPI, nullptr);
6947     auto rootNode = nodeAPI->createNode(ARKUI_NODE_STACK);
6948     ASSERT_NE(rootNode, nullptr);
6949 
6950     auto option = OH_ArkUI_VisibleAreaEventOptions_Create();
6951     float* ratiosArray = new float[2];
6952     ratiosArray[0] = -0.2f;
6953     ratiosArray[1] = 1.0f;
6954     OH_ArkUI_VisibleAreaEventOptions_SetRatios(option, ratiosArray, 2);
6955     OH_ArkUI_VisibleAreaEventOptions_SetExpectedUpdateInterval(option, 1000);
6956     ArkUI_AttributeItem attributeItem = { .object = option };
6957     nodeAPI->setAttribute(rootNode, NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_RATIO, &attributeItem);
6958 
6959     float* getRatiosArray = new float[4];
6960     int size = 4;
6961     OH_ArkUI_VisibleAreaEventOptions_GetRatios(option, getRatiosArray, &size);
6962 
6963     EXPECT_EQ(getRatiosArray[0], 0.0f);
6964     EXPECT_EQ(getRatiosArray[1], 1.0f);
6965 
6966     EXPECT_EQ(OH_ArkUI_VisibleAreaEventOptions_GetExpectedUpdateInterval(option), 1000);
6967     nodeAPI->disposeNode(rootNode);
6968 }
6969 
6970 /**
6971  * @tc.name: NativeNodeTest135
6972  * @tc.desc: Test NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_RATIO.
6973  * @tc.type: FUNC
6974  */
6975 HWTEST_F(NativeNodeTest, NativeNodeTest135, TestSize.Level1)
6976 {
6977     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
6978         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
6979     ASSERT_NE(nodeAPI, nullptr);
6980     auto rootNode = nodeAPI->createNode(ARKUI_NODE_STACK);
6981     ASSERT_NE(rootNode, nullptr);
6982 
6983     auto option = OH_ArkUI_VisibleAreaEventOptions_Create();
6984     float* ratiosArray = new float[2];
6985     ratiosArray[0] = -0.2f;
6986     ratiosArray[1] = 3.0f;
6987     OH_ArkUI_VisibleAreaEventOptions_SetRatios(option, ratiosArray, 2);
6988     OH_ArkUI_VisibleAreaEventOptions_SetExpectedUpdateInterval(option, 1000);
6989     ArkUI_AttributeItem attributeItem = { .object = option };
6990     nodeAPI->setAttribute(rootNode, NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_RATIO, &attributeItem);
6991 
6992     float* getRatiosArray = new float[2];
6993     int size = 2;
6994     OH_ArkUI_VisibleAreaEventOptions_GetRatios(option, getRatiosArray, &size);
6995 
6996     EXPECT_EQ(getRatiosArray[0], 0.0f);
6997     EXPECT_EQ(getRatiosArray[1], 1.0f);
6998 
6999     EXPECT_EQ(OH_ArkUI_VisibleAreaEventOptions_GetExpectedUpdateInterval(option), 1000);
7000     nodeAPI->disposeNode(rootNode);
7001 }
7002 
7003 /**
7004  * @tc.name: NativeNodeTest136
7005  * @tc.desc: Test NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_RATIO.
7006  * @tc.type: FUNC
7007  */
7008 HWTEST_F(NativeNodeTest, NativeNodeTest136, TestSize.Level1)
7009 {
7010     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
7011         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
7012     ASSERT_NE(nodeAPI, nullptr);
7013     auto rootNode = nodeAPI->createNode(ARKUI_NODE_STACK);
7014     ASSERT_NE(rootNode, nullptr);
7015 
7016     auto option = OH_ArkUI_VisibleAreaEventOptions_Create();
7017     float* ratiosArray = new float[2];
7018     ratiosArray[0] = 0.2f;
7019     ratiosArray[1] = 1.2f;
7020     OH_ArkUI_VisibleAreaEventOptions_SetRatios(option, ratiosArray, 2);
7021     OH_ArkUI_VisibleAreaEventOptions_SetExpectedUpdateInterval(option, 1000);
7022     ArkUI_AttributeItem attributeItem = { .object = option };
7023     nodeAPI->setAttribute(rootNode, NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_RATIO, &attributeItem);
7024 
7025     float* getRatiosArray = new float[2];
7026     int size = 2;
7027     OH_ArkUI_VisibleAreaEventOptions_GetRatios(option, getRatiosArray, &size);
7028 
7029     EXPECT_EQ(getRatiosArray[0], 0.2f);
7030     EXPECT_EQ(getRatiosArray[1], 1.0f);
7031 
7032     EXPECT_EQ(OH_ArkUI_VisibleAreaEventOptions_GetExpectedUpdateInterval(option), 1000);
7033     nodeAPI->disposeNode(rootNode);
7034 }
7035 
7036 /**
7037  * @tc.name: NativeNodeTest137
7038  * @tc.desc: Test NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_RATIO.
7039  * @tc.type: FUNC
7040  */
7041 HWTEST_F(NativeNodeTest, NativeNodeTest137, TestSize.Level1)
7042 {
7043     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
7044         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
7045     ASSERT_NE(nodeAPI, nullptr);
7046     auto rootNode = nodeAPI->createNode(ARKUI_NODE_STACK);
7047     ASSERT_NE(rootNode, nullptr);
7048 
7049     auto option = OH_ArkUI_VisibleAreaEventOptions_Create();
7050     float* ratiosArray = new float[2];
7051     ratiosArray[0] = 1.2f;
7052     ratiosArray[1] = 1.2f;
7053     OH_ArkUI_VisibleAreaEventOptions_SetRatios(option, ratiosArray, 2);
7054     OH_ArkUI_VisibleAreaEventOptions_SetExpectedUpdateInterval(option, 1000);
7055     ArkUI_AttributeItem attributeItem = { .object = option };
7056     nodeAPI->setAttribute(rootNode, NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_RATIO, &attributeItem);
7057 
7058     float* getRatiosArray = new float[2];
7059     int size = 2;
7060     OH_ArkUI_VisibleAreaEventOptions_GetRatios(option, getRatiosArray, &size);
7061 
7062     EXPECT_EQ(getRatiosArray[0], 1.0f);
7063     EXPECT_EQ(getRatiosArray[1], 1.0f);
7064 
7065     EXPECT_EQ(OH_ArkUI_VisibleAreaEventOptions_GetExpectedUpdateInterval(option), 1000);
7066     nodeAPI->disposeNode(rootNode);
7067 }
7068 
7069 /**
7070  * @tc.name: NativeNodeTest138
7071  * @tc.desc: Test NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_RATIO.
7072  * @tc.type: FUNC
7073  */
7074 HWTEST_F(NativeNodeTest, NativeNodeTest138, TestSize.Level1)
7075 {
7076     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
7077         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
7078     ASSERT_NE(nodeAPI, nullptr);
7079     auto rootNode = nodeAPI->createNode(ARKUI_NODE_STACK);
7080     ASSERT_NE(rootNode, nullptr);
7081 
7082     auto option = OH_ArkUI_VisibleAreaEventOptions_Create();
7083     float* ratiosArray = new float[2];
7084     ratiosArray[0] = 0.2f;
7085     ratiosArray[1] = 1.0f;
7086     OH_ArkUI_VisibleAreaEventOptions_SetRatios(option, ratiosArray, 2);
7087     OH_ArkUI_VisibleAreaEventOptions_SetExpectedUpdateInterval(option, -100);
7088     ArkUI_AttributeItem attributeItem = { .object = option };
7089     nodeAPI->setAttribute(rootNode, NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_RATIO, &attributeItem);
7090 
7091     float* getRatiosArray = new float[2];
7092     int size = 2;
7093     OH_ArkUI_VisibleAreaEventOptions_GetRatios(option, getRatiosArray, &size);
7094 
7095     EXPECT_EQ(getRatiosArray[0], 0.2f);
7096     EXPECT_EQ(getRatiosArray[1], 1.0f);
7097 
7098     EXPECT_EQ(OH_ArkUI_VisibleAreaEventOptions_GetExpectedUpdateInterval(option), 1000);
7099     nodeAPI->disposeNode(rootNode);
7100 }
7101 
7102 /**
7103  * @tc.name: NativeNodeTest139
7104  * @tc.desc: Test NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_RATIO.
7105  * @tc.type: FUNC
7106  */
7107 HWTEST_F(NativeNodeTest, NativeNodeTest139, TestSize.Level1)
7108 {
7109     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
7110         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
7111     ASSERT_NE(nodeAPI, nullptr);
7112     auto rootNode = nodeAPI->createNode(ARKUI_NODE_STACK);
7113     ASSERT_NE(rootNode, nullptr);
7114 
7115     auto option = OH_ArkUI_VisibleAreaEventOptions_Create();
7116     float* ratiosArray = new float[2];
7117     ratiosArray[0] = 0.2f;
7118     ratiosArray[1] = 1.0f;
7119     OH_ArkUI_VisibleAreaEventOptions_SetRatios(option, ratiosArray, 2);
7120     OH_ArkUI_VisibleAreaEventOptions_SetExpectedUpdateInterval(option, 1200);
7121     ArkUI_AttributeItem attributeItem = { .object = option };
7122     nodeAPI->setAttribute(rootNode, NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_RATIO, &attributeItem);
7123 
7124     float* getRatiosArray = new float[2];
7125     int size = 2;
7126     OH_ArkUI_VisibleAreaEventOptions_GetRatios(option, getRatiosArray, &size);
7127 
7128     EXPECT_EQ(getRatiosArray[0], 0.2f);
7129     EXPECT_EQ(getRatiosArray[1], 1.0f);
7130 
7131     EXPECT_EQ(OH_ArkUI_VisibleAreaEventOptions_GetExpectedUpdateInterval(option), 1200);
7132     nodeAPI->disposeNode(rootNode);
7133 }
7134 
7135 /**
7136  * @tc.name: NativeNodeTest140
7137  * @tc.desc: Test NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_RATIO.
7138  * @tc.type: FUNC
7139  */
7140 HWTEST_F(NativeNodeTest, NativeNodeTest140, TestSize.Level1)
7141 {
7142     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
7143         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
7144     ASSERT_NE(nodeAPI, nullptr);
7145     auto rootNode = nodeAPI->createNode(ARKUI_NODE_STACK);
7146     ASSERT_NE(rootNode, nullptr);
7147 
7148     auto option = OH_ArkUI_VisibleAreaEventOptions_Create();
7149     float* ratiosArray = new float[2];
7150     ratiosArray[0] = 0.2f;
7151     ratiosArray[1] = 1.0f;
7152     OH_ArkUI_VisibleAreaEventOptions_SetRatios(option, ratiosArray, 2);
7153     OH_ArkUI_VisibleAreaEventOptions_SetExpectedUpdateInterval(option, 200);
7154     ArkUI_AttributeItem attributeItem = { .object = option };
7155     nodeAPI->setAttribute(rootNode, NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_RATIO, &attributeItem);
7156 
7157     float* getRatiosArray = new float[2];
7158     int size = 2;
7159     OH_ArkUI_VisibleAreaEventOptions_GetRatios(option, getRatiosArray, &size);
7160 
7161     EXPECT_EQ(getRatiosArray[0], 0.2f);
7162     EXPECT_EQ(getRatiosArray[1], 1.0f);
7163 
7164     EXPECT_EQ(OH_ArkUI_VisibleAreaEventOptions_GetExpectedUpdateInterval(option), 200);
7165     nodeAPI->disposeNode(rootNode);
7166 }
7167 
7168 /**
7169  * @tc.name: NativeNodeTest141
7170  * @tc.desc: Test embeddedComponent function.
7171  * @tc.type: FUNC
7172  */
7173 HWTEST_F(NativeNodeTest, NativeNodeTest141, TestSize.Level1)
7174 {
7175     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
7176         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
7177     ASSERT_NE(nodeAPI, nullptr);
7178     auto rootNode = nodeAPI->createNode(ARKUI_NODE_EMBEDDED_COMPONENT);
7179     ASSERT_NE(rootNode, nullptr);
7180     ArkUI_AttributeItem item0 = {nullptr, 0, nullptr, nullptr};
7181     nodeAPI->setAttribute(rootNode, NODE_EMBEDDED_COMPONENT_WANT, &item0);
7182     nodeAPI->setAttribute(rootNode, NODE_EMBEDDED_COMPONENT_OPTION, &item0);
7183     nodeAPI->disposeNode(rootNode);
7184 }
7185 
7186 /**
7187  * @tc.name: NativeNodeTest_BackgroundImageResizable_001
7188  * @tc.desc: Test NODE_BACKGROUND_IMAGE_RESIZABLE_WITH_SLICE function.
7189  * @tc.type: FUNC
7190  */
7191 HWTEST_F(NativeNodeTest, NativeNodeTest_BackgroundImageResizable_001, TestSize.Level1)
7192 {
7193     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
7194         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
7195     auto rootNode = nodeAPI->createNode(ARKUI_NODE_STACK);
7196     auto childNode = nodeAPI->createNode(ARKUI_NODE_STACK);
7197     ASSERT_NE(rootNode, nullptr);
7198     int32_t ret1 = nodeAPI->addChild(rootNode, childNode);
7199     EXPECT_EQ(ret1, ARKUI_ERROR_CODE_NO_ERROR);
7200     float size = 100.0f;
7201     float left = -1.0f;
7202     float top = 0.0f;
7203     float right  = 8.0f;
7204     float bottom = 9.0f;
7205     ArkUI_NumberValue value[] = {{.f32 = size}};
7206     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue)};
7207 
7208     ArkUI_NumberValue value2[] = {{.f32 = left}, {.f32 = top}, {.f32 = right}, {.f32 = bottom}};
7209     ArkUI_AttributeItem item2 = {value2, sizeof(value2) / sizeof(ArkUI_NumberValue)};
7210 
7211     nodeAPI->setAttribute(rootNode, NODE_WIDTH, &item);
7212     auto widthVal = nodeAPI->getAttribute(rootNode, NODE_WIDTH);
7213     EXPECT_EQ(widthVal->value[0].f32, size);
7214 
7215     nodeAPI->setAttribute(rootNode, NODE_HEIGHT, &item);
7216     auto heightVal = nodeAPI->getAttribute(rootNode, NODE_HEIGHT);
7217     EXPECT_EQ(heightVal->value[0].f32, size);
7218 
7219     nodeAPI->setAttribute(rootNode, NODE_BACKGROUND_IMAGE_RESIZABLE_WITH_SLICE, &item2);
7220     auto sliceVal = nodeAPI->getAttribute(rootNode, NODE_BACKGROUND_IMAGE_RESIZABLE_WITH_SLICE);
7221     EXPECT_EQ(sliceVal->value[0].f32, 0.0f);
7222     EXPECT_EQ(sliceVal->value[1].f32, top);
7223     EXPECT_EQ(sliceVal->value[2].f32, right);
7224     EXPECT_EQ(sliceVal->value[3].f32, bottom);
7225     EXPECT_EQ(sliceVal->size, 4);
7226 }
7227 
7228 /**
7229  * @tc.name: NativeNodeTest142
7230  * @tc.desc: Test ArkUI_SupportedUIStates.
7231  * @tc.type: FUNC
7232  */
7233 HWTEST_F(NativeNodeTest, NativeNodeTest142, TestSize.Level1)
7234 {
7235     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
7236         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
7237     ArkUI_NodeHandle styleButton = nodeAPI->createNode(ARKUI_NODE_BUTTON);
7238     int32_t settingUIStatus = 1;
7239     EXPECT_EQ(OH_ArkUI_AddSupportedUIStates(
7240         styleButton, settingUIStatus, nullptr, false, nullptr), ARKUI_ERROR_CODE_PARAM_INVALID);
7241     EXPECT_EQ(OH_ArkUI_RemoveSupportedUIStates(styleButton, settingUIStatus), ARKUI_ERROR_CODE_PARAM_INVALID);
7242 }
7243 
7244 /**
7245  * @tc.name: NativeNodeTest143
7246  * @tc.desc: Test optimizeTrailingSpace function.
7247  * @tc.type: FUNC
7248  */
7249 HWTEST_F(NativeNodeTest, NativeNodeTest143, TestSize.Level1)
7250 {
7251     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
7252         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
7253     auto rootNode = new ArkUI_Node({ARKUI_NODE_TEXT, nullptr, true});
7254     ArkUI_NumberValue value[] = {{.i32 = true}};
7255     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue)};
7256 
7257     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_OPTIMIZE_TRAILING_SPACE, &item), ARKUI_ERROR_CODE_NO_ERROR);
7258     value[0].i32 = false;
7259     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_OPTIMIZE_TRAILING_SPACE, &item), ARKUI_ERROR_CODE_NO_ERROR);
7260 
7261     item.size = -1;
7262     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_OPTIMIZE_TRAILING_SPACE, &item),
7263     ARKUI_ERROR_CODE_PARAM_INVALID);
7264     item.size = 1;
7265     value[0].i32 = 2;
7266     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_TEXT_OPTIMIZE_TRAILING_SPACE, &item),
7267     ARKUI_ERROR_CODE_PARAM_INVALID);
7268     value[0].i32 = true;
7269 
7270     nodeAPI->resetAttribute(rootNode, NODE_TEXT_OPTIMIZE_TRAILING_SPACE);
7271     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_TEXT_OPTIMIZE_TRAILING_SPACE), nullptr);
7272     nodeAPI->disposeNode(rootNode);
7273 }
7274 
7275 /**
7276  * @tc.name: NativeNodeTest144
7277  * @tc.desc: Test ScrollBarMargin function.
7278  * @tc.type: FUNC
7279  */
7280 HWTEST_F(NativeNodeTest, NativeNodeTest144, TestSize.Level1)
7281 {
7282     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
7283         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
7284     auto list = nodeAPI->createNode(ARKUI_NODE_LIST);
7285     ASSERT_NE(list, nullptr);
7286     ArkUI_NumberValue value1[] = { { .f32 = 10.0f }, { .f32 = 50.0f } };
7287     ArkUI_AttributeItem item = { value1, sizeof(value1) / sizeof(ArkUI_NumberValue) };
7288     EXPECT_EQ(nodeAPI->setAttribute(list, NODE_SCROLL_BAR_MARGIN, &item), ARKUI_ERROR_CODE_NO_ERROR);
7289 
7290     auto ret = nodeAPI->getAttribute(list, NODE_SCROLL_BAR_MARGIN);
7291     EXPECT_EQ(ret->value[0].f32, 10.0);
7292     EXPECT_EQ(ret->value[1].f32, 50.0);
7293 
7294     ArkUI_NumberValue value2[] = { { .f32 = -1.0f }, { .f32 = -1.0f } };
7295     item = { value2, sizeof(value2) / sizeof(ArkUI_NumberValue) };
7296     EXPECT_EQ(nodeAPI->setAttribute(list, NODE_SCROLL_BAR_MARGIN, &item), ARKUI_ERROR_CODE_NO_ERROR);
7297 
7298     ret = nodeAPI->getAttribute(list, NODE_SCROLL_BAR_MARGIN);
7299     EXPECT_EQ(ret->value[0].f32, 0.0);
7300     EXPECT_EQ(ret->value[1].f32, 0.0);
7301 
7302     ArkUI_NumberValue value3[] = { { .f32 = 0.5f }, { .f32 = 0.5f } };
7303     item = { value3, sizeof(value3) / sizeof(ArkUI_NumberValue) };
7304     EXPECT_EQ(nodeAPI->setAttribute(list, NODE_SCROLL_BAR_MARGIN, &item), ARKUI_ERROR_CODE_NO_ERROR);
7305 
7306     ret = nodeAPI->getAttribute(list, NODE_SCROLL_BAR_MARGIN);
7307     EXPECT_EQ(ret->value[0].f32, 0.5);
7308     EXPECT_EQ(ret->value[1].f32, 0.5);
7309 
7310     ArkUI_NumberValue value4[] = {};
7311     item = { value4, 0, nullptr, nullptr };
7312     EXPECT_EQ(nodeAPI->setAttribute(list, NODE_SCROLL_BAR_MARGIN, &item), ARKUI_ERROR_CODE_NO_ERROR);
7313 
7314     ret = nodeAPI->getAttribute(list, NODE_SCROLL_BAR_MARGIN);
7315     EXPECT_EQ(ret->value[0].f32, 0.0);
7316     EXPECT_EQ(ret->value[1].f32, 0.0);
7317 
7318     EXPECT_EQ(nodeAPI->resetAttribute(list, NODE_SCROLL_BAR_MARGIN), ARKUI_ERROR_CODE_NO_ERROR);
7319 
7320     ret = nodeAPI->getAttribute(list, NODE_SCROLL_BAR_MARGIN);
7321     EXPECT_EQ(ret->value[0].f32, 0.0);
7322     EXPECT_EQ(ret->value[1].f32, 0.0);
7323 
7324     nodeAPI->disposeNode(list);
7325 }
7326 
7327 /**
7328  * @tc.name: NativeNodeTest145
7329  * @tc.desc: Test imageNode function.
7330  * @tc.type: FUNC
7331  */
7332 HWTEST_F(NativeNodeTest, NativeNodeTest145, TestSize.Level1)
7333 {
7334     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
7335         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
7336     auto rootNode = new ArkUI_Node({ARKUI_NODE_IMAGE, nullptr, true});
7337     ArkUI_NumberValue value[] = {{.i32 = ARKUI_ORIENTATION_DOWN}};
7338     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue)};
7339     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_ORIENTATION, &item), ARKUI_ERROR_CODE_NO_ERROR);
7340     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_IMAGE_ORIENTATION), ARKUI_ERROR_CODE_NO_ERROR);
7341     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_IMAGE_ORIENTATION), nullptr);
7342 
7343     value[0].i32 = ARKUI_DYNAMIC_RANGE_MODE_CONSTRAINT;
7344     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_DYNAMIC_RANGE_MODE, &item), ARKUI_ERROR_CODE_NO_ERROR);
7345     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_IMAGE_DYNAMIC_RANGE_MODE), ARKUI_ERROR_CODE_NO_ERROR);
7346     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_IMAGE_DYNAMIC_RANGE_MODE), nullptr);
7347 
7348     value[0].i32 = ARKUI_COPY_OPTIONS_LOCAL_DEVICE;
7349     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_COPY_OPTION, &item), ARKUI_ERROR_CODE_NO_ERROR);
7350     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_IMAGE_COPY_OPTION), ARKUI_ERROR_CODE_NO_ERROR);
7351     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_IMAGE_COPY_OPTION), nullptr);
7352 
7353     value[0].i32 = true;
7354     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_MATCH_TEXT_DIRECTION, &item), ARKUI_ERROR_CODE_NO_ERROR);
7355     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_IMAGE_MATCH_TEXT_DIRECTION), ARKUI_ERROR_CODE_NO_ERROR);
7356     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_IMAGE_MATCH_TEXT_DIRECTION), nullptr);
7357     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_ENABLE_ANALYZER, &item), ARKUI_ERROR_CODE_NO_ERROR);
7358     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_IMAGE_ENABLE_ANALYZER), ARKUI_ERROR_CODE_NO_ERROR);
7359     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_IMAGE_ENABLE_ANALYZER), nullptr);
7360     value[0].f32 = 0.8; // 0.8 means brightness of the picture
7361     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_HDR_BRIGHTNESS, &item), ARKUI_ERROR_CODE_NO_ERROR);
7362     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_IMAGE_HDR_BRIGHTNESS), ARKUI_ERROR_CODE_NO_ERROR);
7363     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_IMAGE_HDR_BRIGHTNESS), nullptr);
7364 
7365     ArkUI_NumberValue value2[] = {{.i32 = 200}, {.i32 = 300}}; // 200 300 means source size width height
7366     ArkUI_AttributeItem item1 = {value2, sizeof(value2) / sizeof(ArkUI_NumberValue)};
7367     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_SOURCE_SIZE, &item1), ARKUI_ERROR_CODE_NO_ERROR);
7368     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_IMAGE_SOURCE_SIZE), ARKUI_ERROR_CODE_NO_ERROR);
7369     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_IMAGE_SOURCE_SIZE), nullptr);
7370 
7371     ArkUI_NumberValue value16[] = {{.f32 = 1.0f}, {.f32 = 0.0f}, {.f32 = 0.0f}, {.f32 = 0.0f}, {.f32 = 0.0f},
7372         {.f32 = 0.0f}, {.f32 = 1.0f}, {.f32 = 0.0f}, {.f32 = 0.0f}, {.f32 = 0.0f}, {.f32 = 0.0f},
7373         {.f32 = 0.0f}, {.f32 = 1.0f}, {.f32 = 0.0f}, {.f32 = 0.0f}, {.f32 = 0.0f} };
7374     ArkUI_AttributeItem item2 = {value16, sizeof(value16) / sizeof(ArkUI_NumberValue)};
7375     EXPECT_EQ(nodeAPI->setAttribute(rootNode, NODE_IMAGE_IMAGE_MATRIX, &item2), ARKUI_ERROR_CODE_NO_ERROR);
7376     EXPECT_EQ(nodeAPI->resetAttribute(rootNode, NODE_IMAGE_IMAGE_MATRIX), ARKUI_ERROR_CODE_NO_ERROR);
7377     EXPECT_NE(nodeAPI->getAttribute(rootNode, NODE_IMAGE_IMAGE_MATRIX), nullptr);
7378     nodeAPI->disposeNode(rootNode);
7379 }
7380 
7381 /**
7382  * @tc.name: NativeNodeTest_SetForceDarkConfig_001
7383  * @tc.desc: Test OH_ArkUI_SetForceDarkConfig
7384  * @tc.type: FUNC
7385  */
7386 HWTEST_F(NativeNodeTest, NativeNodeTest_SetForceDarkConfig_001, TestSize.Level1)
7387 {
7388     ArkUI_ContextHandle uiContext = new ArkUI_Context({ .id = 0 });
7389     EXPECT_EQ(OH_ArkUI_SetForceDarkConfig(nullptr, true, ARKUI_NODE_LIST, nullptr), ARKUI_ERROR_CODE_NO_ERROR);
7390     EXPECT_EQ(OH_ArkUI_SetForceDarkConfig(uiContext, true, ARKUI_NODE_LIST, nullptr), ARKUI_ERROR_CODE_NO_ERROR);
__anonc6a477b60202(uint32_t color) 7391     EXPECT_EQ(OH_ArkUI_SetForceDarkConfig(nullptr, true, ARKUI_NODE_LIST, [](uint32_t color) { return color; }),
7392         ARKUI_ERROR_CODE_NO_ERROR);
__anonc6a477b60302(uint32_t color) 7393     EXPECT_EQ(OH_ArkUI_SetForceDarkConfig(uiContext, true, ARKUI_NODE_LIST, [](uint32_t color) { return color; }),
7394         ARKUI_ERROR_CODE_NO_ERROR);
7395     EXPECT_EQ(OH_ArkUI_SetForceDarkConfig(nullptr, true, ARKUI_NODE_UNDEFINED, nullptr), ARKUI_ERROR_CODE_NO_ERROR);
7396     EXPECT_EQ(OH_ArkUI_SetForceDarkConfig(uiContext, true, ARKUI_NODE_UNDEFINED, nullptr), ARKUI_ERROR_CODE_NO_ERROR);
__anonc6a477b60402(uint32_t color) 7397     EXPECT_EQ(OH_ArkUI_SetForceDarkConfig(nullptr, true, ARKUI_NODE_UNDEFINED, [](uint32_t color) { return color; }),
7398         ARKUI_ERROR_CODE_NO_ERROR);
__anonc6a477b60502(uint32_t color) 7399     EXPECT_EQ(OH_ArkUI_SetForceDarkConfig(uiContext, true, ARKUI_NODE_UNDEFINED, [](uint32_t color) { return color; }),
7400         ARKUI_ERROR_CODE_NO_ERROR);
7401 
7402     EXPECT_EQ(OH_ArkUI_SetForceDarkConfig(nullptr, false, ARKUI_NODE_LIST, nullptr), ARKUI_ERROR_CODE_NO_ERROR);
7403     EXPECT_EQ(OH_ArkUI_SetForceDarkConfig(uiContext, false, ARKUI_NODE_LIST, nullptr), ARKUI_ERROR_CODE_NO_ERROR);
7404     EXPECT_EQ(OH_ArkUI_SetForceDarkConfig(nullptr, false, ARKUI_NODE_UNDEFINED, nullptr), ARKUI_ERROR_CODE_NO_ERROR);
7405     EXPECT_EQ(OH_ArkUI_SetForceDarkConfig(uiContext, false, ARKUI_NODE_UNDEFINED, nullptr), ARKUI_ERROR_CODE_NO_ERROR);
__anonc6a477b60602(uint32_t color) 7406     EXPECT_EQ(OH_ArkUI_SetForceDarkConfig(nullptr, false, ARKUI_NODE_LIST, [](uint32_t color) { return color; }),
7407         ARKUI_ERROR_CODE_FORCE_DARK_CONFIG_INVALID);
__anonc6a477b60702(uint32_t color) 7408     EXPECT_EQ(OH_ArkUI_SetForceDarkConfig(uiContext, false, ARKUI_NODE_LIST, [](uint32_t color) { return color; }),
7409         ARKUI_ERROR_CODE_FORCE_DARK_CONFIG_INVALID);
__anonc6a477b60802(uint32_t color) 7410     EXPECT_EQ(OH_ArkUI_SetForceDarkConfig(uiContext, false, ARKUI_NODE_UNDEFINED, [](uint32_t color) { return color; }),
7411         ARKUI_ERROR_CODE_FORCE_DARK_CONFIG_INVALID);
7412 }
7413 
7414 /**
7415  * @tc.name: NativeNodeTest_GetNodeHandleByUniqueId_001
7416  * @tc.desc: Test OH_ArkUI_NodeUtils_GetNodeHandleByUniqueId and OH_ArkUI_NodeUtils_GetNodeUniqueId.
7417  * @tc.type: FUNC
7418  */
7419 HWTEST_F(NativeNodeTest, NativeNodeTest_GetNodeHandleByUniqueId_001, TestSize.Level1)
7420 {
7421     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
7422         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
7423     ArkUI_NodeHandle column = nodeAPI->createNode(ARKUI_NODE_COLUMN);
7424     ArkUI_NumberValue value[] = { 480 };
7425     ArkUI_AttributeItem item = { value, 1 };
7426     nodeAPI->setAttribute(column, NODE_WIDTH, &item);
7427     value[0].f32 = 720;
7428     nodeAPI->setAttribute(column, NODE_HEIGHT, &item);
7429     int32_t uniqueId = 1;
7430     EXPECT_EQ(OH_ArkUI_NodeUtils_GetNodeUniqueId(column, &uniqueId), ARKUI_ERROR_CODE_NO_ERROR);
7431     EXPECT_EQ(OH_ArkUI_NodeUtils_GetNodeHandleByUniqueId(uniqueId, &column), ARKUI_ERROR_CODE_NO_ERROR);
7432 }
7433 
7434 /**
7435  * @tc.name: NativeNodeTest_GetNodeHandleByUniqueId_002
7436  * @tc.desc: Test OH_ArkUI_NodeUtils_GetNodeHandleByUniqueId and OH_ArkUI_NodeUtils_GetNodeUniqueId.
7437  * @tc.type: FUNC
7438  */
7439 HWTEST_F(NativeNodeTest, NativeNodeTest_GetNodeHandleByUniqueId_002, TestSize.Level1)
7440 {
7441     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
7442         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
7443     ArkUI_NodeHandle column = nodeAPI->createNode(ARKUI_NODE_COLUMN);
7444     ArkUI_NumberValue value[] = { 480 };
7445     ArkUI_AttributeItem item = { value, 1 };
7446     nodeAPI->setAttribute(column, NODE_WIDTH, &item);
7447     value[0].f32 = 720;
7448     nodeAPI->setAttribute(column, NODE_HEIGHT, &item);
7449     auto columnId = 0;
7450     auto* currentNode = reinterpret_cast<NG::UINode*>(column->uiNodeHandle);
7451     currentNode->SetUndefinedNodeId();
7452     OH_ArkUI_NodeUtils_GetNodeUniqueId(column, &columnId);
7453     EXPECT_EQ(columnId, -1);
7454 }
7455 
7456 /**
7457  * @tc.name: NativeNodeTest_GetNodeHandleByUniqueId_003
7458  * @tc.desc: Test OH_ArkUI_NodeUtils_GetNodeHandleByUniqueId and OH_ArkUI_NodeUtils_GetNodeUniqueId.
7459  * @tc.type: FUNC
7460  */
7461 HWTEST_F(NativeNodeTest, NativeNodeTest_GetNodeHandleByUniqueId_003, TestSize.Level1)
7462 {
7463     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
7464         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
7465     ArkUI_NodeHandle button = nodeAPI->createNode(ARKUI_NODE_BUTTON);
7466     ArkUI_NumberValue value[] = { 480 };
7467     ArkUI_AttributeItem item = { value, 1 };
7468     nodeAPI->setAttribute(button, NODE_WIDTH, &item);
7469     value[0].f32 = 320;
7470     nodeAPI->setAttribute(button, NODE_HEIGHT, &item);
7471     nodeAPI->disposeNode(button);
7472     button = nullptr;
7473     auto buttonId = 0;
7474     OH_ArkUI_NodeUtils_GetNodeUniqueId(button, &buttonId);
7475     EXPECT_EQ(buttonId, -1);
7476 }
7477 
7478 /**
7479  * @tc.name: NativeThreadSafeNodeTest001
7480  * @tc.desc: Test IsValidArkUINode
7481  * @tc.type: FUNC
7482  */
7483 HWTEST_F(NativeNodeTest, NativeThreadSafeNodeTest001, TestSize.Level1)
7484 {
7485     EXPECT_EQ(NodeModel::IsValidArkUINode(nullptr), false);
7486 
7487     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
7488         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
7489     auto notThreadSafeNode = nodeAPI->createNode(ARKUI_NODE_STACK);
7490     EXPECT_EQ(NodeModel::IsValidArkUINode(notThreadSafeNode), true);
7491     nodeAPI->disposeNode(notThreadSafeNode);
7492 
7493     auto nodeAPI2 = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
7494         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_MULTI_THREAD_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
7495     auto threadSafeNode = nodeAPI2->createNode(ARKUI_NODE_STACK);
7496     EXPECT_EQ(NodeModel::IsValidArkUINode(threadSafeNode), true);
7497     nodeAPI2->disposeNode(threadSafeNode);
7498 }
7499 
7500 /**
7501  * @tc.name: NativeThreadSafeNodeTest002
7502  * @tc.desc: Test GetNativeNodeEventType
7503  * @tc.type: FUNC
7504  */
7505 HWTEST_F(NativeNodeTest, NativeThreadSafeNodeTest002, TestSize.Level1)
7506 {
7507     ArkUINodeEvent event;
7508     event.extraParam = reinterpret_cast<ArkUI_Int64>(nullptr);
7509     EXPECT_EQ(NodeModel::GetNativeNodeEventType(&event), -1);
7510 
7511     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
7512         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
7513     auto notThreadSafeNode = nodeAPI->createNode(ARKUI_NODE_STACK);
7514     ArkUINodeEvent event1;
7515     event1.extraParam = reinterpret_cast<ArkUI_Int64>(notThreadSafeNode);
7516     EXPECT_EQ(NodeModel::GetNativeNodeEventType(&event1), -1);
7517     nodeAPI->disposeNode(notThreadSafeNode);
7518 
7519     auto nodeAPI2 = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
7520         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_MULTI_THREAD_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
7521     auto threadSafeNode = nodeAPI2->createNode(ARKUI_NODE_STACK);
7522     ArkUINodeEvent event2;
7523     event2.extraParam = reinterpret_cast<ArkUI_Int64>(threadSafeNode);
7524     EXPECT_EQ(NodeModel::GetNativeNodeEventType(&event2), -1);
7525     nodeAPI2->disposeNode(threadSafeNode);
7526 }
7527 
7528 /**
7529  * @tc.name: NativeThreadSafeNodeTest003
7530  * @tc.desc: Test clearChildren
7531  * @tc.type: FUNC
7532  */
7533 HWTEST_F(NativeNodeTest, NativeThreadSafeNodeTest003, TestSize.Level1)
7534 {
7535     /**
7536      * @tc.steps: step1. create not thread safe native node
7537      */
7538     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
7539         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));\
7540     ASSERT_NE(nodeAPI, nullptr);
7541     auto notThreadSafeNode = nodeAPI->createNode(ARKUI_NODE_STACK);
7542     auto notThreadSafeChildNode = nodeAPI->createNode(ARKUI_NODE_STACK);
7543     ASSERT_NE(notThreadSafeNode, nullptr);
7544     ASSERT_NE(notThreadSafeChildNode, nullptr);
7545     /**
7546      * @tc.steps: step2. add not thread safe child
7547      */
7548     nodeAPI->addChild(notThreadSafeNode, notThreadSafeChildNode);
7549     EXPECT_EQ(nodeAPI->getTotalChildCount(notThreadSafeNode), 1);
7550     /**
7551      * @tc.steps: step3. not thread safe native node remove all children
7552      */
7553     nodeAPI->removeAllChildren(notThreadSafeNode);
7554     ASSERT_NE(notThreadSafeChildNode->uiNodeHandle, nullptr);
7555     auto* childNode = reinterpret_cast<NG::UINode*>(notThreadSafeChildNode->uiNodeHandle);
7556     ASSERT_NE(childNode, nullptr);
7557     EXPECT_EQ(childNode->isRemoving_, true);
7558     EXPECT_EQ(nodeAPI->getTotalChildCount(notThreadSafeNode), 0);
7559     nodeAPI->disposeNode(notThreadSafeNode);
7560     nodeAPI->disposeNode(notThreadSafeChildNode);
7561 
7562     /**
7563      * @tc.steps: step4. create thread safe native node
7564      */
7565     auto nodeAPI2 = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
7566         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_MULTI_THREAD_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
7567     ASSERT_NE(nodeAPI2, nullptr);
7568     auto threadSafeNode = nodeAPI2->createNode(ARKUI_NODE_STACK);
7569     auto threadSafeChildNode = nodeAPI2->createNode(ARKUI_NODE_STACK);
7570     ASSERT_NE(threadSafeNode, nullptr);
7571     ASSERT_NE(threadSafeChildNode, nullptr);
7572     /**
7573      * @tc.steps: step5. add thread safe child
7574      */
7575     nodeAPI2->addChild(threadSafeNode, threadSafeChildNode);
7576     EXPECT_EQ(nodeAPI2->getTotalChildCount(threadSafeNode), 1);
7577     /**
7578      * @tc.steps: step6. thread safe native node remove all children
7579      */
7580     nodeAPI2->removeAllChildren(threadSafeNode);
7581     ASSERT_NE(threadSafeChildNode->uiNodeHandle, nullptr);
7582     auto* freeChildUINode = reinterpret_cast<NG::UINode*>(threadSafeChildNode->uiNodeHandle);
7583     ASSERT_NE(freeChildUINode, nullptr);
7584     EXPECT_EQ(freeChildUINode->isRemoving_, false);
7585     EXPECT_EQ(nodeAPI2->getTotalChildCount(threadSafeNode), 0);
7586     nodeAPI2->disposeNode(threadSafeNode);
7587     nodeAPI2->disposeNode(threadSafeChildNode);
7588 }
7589 
7590 /**
7591  * @tc.name: NativeThreadSafeNodeTest004
7592  * @tc.desc: Test removeChild
7593  * @tc.type: FUNC
7594  */
7595 HWTEST_F(NativeNodeTest, NativeThreadSafeNodeTest004, TestSize.Level1)
7596 {
7597     /**
7598      * @tc.steps: step1. create not thread safe native node
7599      */
7600     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
7601         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));\
7602     ASSERT_NE(nodeAPI, nullptr);
7603     auto notThreadSafeNode = nodeAPI->createNode(ARKUI_NODE_STACK);
7604     auto notThreadSafeChildNode = nodeAPI->createNode(ARKUI_NODE_STACK);
7605     ASSERT_NE(notThreadSafeNode, nullptr);
7606     ASSERT_NE(notThreadSafeChildNode, nullptr);
7607     /**
7608      * @tc.steps: step2. add not thread safe child
7609      */
7610     nodeAPI->addChild(notThreadSafeNode, notThreadSafeChildNode);
7611     EXPECT_EQ(nodeAPI->getTotalChildCount(notThreadSafeNode), 1);
7612     /**
7613      * @tc.steps: step3. remove not thread safe child
7614      */
7615     nodeAPI->removeChild(notThreadSafeNode, notThreadSafeChildNode);
7616     ASSERT_NE(notThreadSafeChildNode->uiNodeHandle, nullptr);
7617     auto* childNode = reinterpret_cast<NG::UINode*>(notThreadSafeChildNode->uiNodeHandle);
7618     ASSERT_NE(childNode, nullptr);
7619     EXPECT_EQ(childNode->isRemoving_, true);
7620     EXPECT_EQ(nodeAPI->getTotalChildCount(notThreadSafeNode), 0);
7621     nodeAPI->disposeNode(notThreadSafeNode);
7622     nodeAPI->disposeNode(notThreadSafeChildNode);
7623 
7624     /**
7625      * @tc.steps: step4. create thread safe native node
7626      */
7627     auto nodeAPI2 = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
7628         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_MULTI_THREAD_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
7629     ASSERT_NE(nodeAPI2, nullptr);
7630     auto threadSafeNode = nodeAPI2->createNode(ARKUI_NODE_STACK);
7631     auto threadSafeChildNode = nodeAPI2->createNode(ARKUI_NODE_STACK);
7632     ASSERT_NE(threadSafeNode, nullptr);
7633     ASSERT_NE(threadSafeChildNode, nullptr);
7634     /**
7635      * @tc.steps: step5. add thread safe child
7636      */
7637     nodeAPI->addChild(threadSafeNode, threadSafeChildNode);
7638     EXPECT_EQ(nodeAPI2->getTotalChildCount(threadSafeNode), 1);
7639     /**
7640      * @tc.steps: step6. remove thread safe child
7641      */
7642     nodeAPI2->removeChild(threadSafeNode, threadSafeChildNode);
7643     ASSERT_NE(threadSafeChildNode->uiNodeHandle, nullptr);
7644     auto* freeChildUINode = reinterpret_cast<NG::UINode*>(threadSafeChildNode->uiNodeHandle);
7645     ASSERT_NE(freeChildUINode, nullptr);
7646     EXPECT_EQ(freeChildUINode->isRemoving_, false);
7647     EXPECT_EQ(nodeAPI2->getTotalChildCount(threadSafeNode), 0);
7648     nodeAPI2->disposeNode(threadSafeNode);
7649     nodeAPI2->disposeNode(threadSafeChildNode);
7650 }
7651 
7652 /**
7653  * @tc.name: NativeNodeTest147
7654  * @tc.desc: Test OH_ArkUI_NodeUtils_GetLayoutPositionInGlobalDisplay function.
7655  * @tc.type: FUNC
7656  */
7657 HWTEST_F(NativeNodeTest, NativeNodeTest147, TestSize.Level1)
7658 {
7659     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
7660         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
7661     auto node = nodeAPI->createNode(ARKUI_NODE_STACK);
7662     ArkUI_IntOffset offset = {0, 0};
7663     auto ret = OH_ArkUI_NodeUtils_GetLayoutPositionInGlobalDisplay(node, &offset);
7664     EXPECT_EQ(ret, ERROR_CODE_NO_ERROR);
7665     ret = OH_ArkUI_NodeUtils_GetLayoutPositionInGlobalDisplay(nullptr, &offset);
7666     EXPECT_EQ(ret, ERROR_CODE_PARAM_INVALID);
7667 }
7668 
7669 /**
7670  * @tc.name: NativeNodeTest_OutlineColor001
7671  * @tc.desc: Test customNode function.
7672  * @tc.type: FUNC
7673  */
7674 HWTEST_F(NativeNodeTest, NativeNodeTest_OutlineColor001, TestSize.Level1)
7675 {
7676     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
7677         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
7678     auto rootNode = nodeAPI->createNode(ARKUI_NODE_STACK);
7679     auto childNode = nodeAPI->createNode(ARKUI_NODE_STACK);
7680     ASSERT_NE(rootNode, nullptr);
7681     int32_t ret1 = nodeAPI->addChild(rootNode, childNode);
7682     EXPECT_EQ(ret1, ARKUI_ERROR_CODE_NO_ERROR);
7683     uint32_t color0 = 0xFFFF0000;
7684     uint32_t color1 = 0xFFFF00FF;
7685     uint32_t color2 = 0xFFFFFF00;
7686     uint32_t color3 = 0xFF00FFFF;
7687 
7688     ArkUI_NumberValue value[] = {{.u32 = color0}};
7689     ArkUI_AttributeItem item = {value, sizeof(value) / sizeof(ArkUI_NumberValue)};
7690     ArkUI_NumberValue value4[] = {{.u32 = color0}, {.u32 = color1}, {.u32 = color2}, {.u32 = color3}};
7691     ArkUI_AttributeItem item4 = {value4, sizeof(value4) / sizeof(ArkUI_NumberValue)};
7692 
7693     nodeAPI->setAttribute(rootNode, NODE_OUTLINE_COLOR, &item);
7694     auto outlineColorVal = nodeAPI->getAttribute(rootNode, NODE_OUTLINE_COLOR);
7695     EXPECT_EQ(outlineColorVal->value[0].u32, color0);
7696 
7697     nodeAPI->setAttribute(rootNode, NODE_OUTLINE_COLOR, &item4);
7698     auto outlineColorVal4 = nodeAPI->getAttribute(rootNode, NODE_OUTLINE_COLOR);
7699     EXPECT_EQ(outlineColorVal4->value[0].u32, color0);
7700     EXPECT_EQ(outlineColorVal4->value[1].u32, color1);
7701     EXPECT_EQ(outlineColorVal4->value[2].u32, color2);
7702     EXPECT_EQ(outlineColorVal4->value[3].u32, color3);
7703 }
7704 
7705 /**
7706  * @tc.name: NativeNodeScrollZoomTest001
7707  * @tc.desc: Test Scroll zoom attribute.
7708  * @tc.type: FUNC
7709  */
7710 HWTEST_F(NativeNodeTest, NativeNodeScrollZoomTest001, TestSize.Level1)
7711 {
7712     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
7713         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
7714     auto scroll = nodeAPI->createNode(ARKUI_NODE_SCROLL);
7715     ASSERT_NE(scroll, nullptr);
7716     ArkUI_AttributeItem item0 = { nullptr, 0 };
7717     ArkUI_NumberValue value1[] = { { .f32 = 2.0f } };
7718     ArkUI_AttributeItem item1 = { value1, sizeof(value1) / sizeof(ArkUI_NumberValue) };
7719     EXPECT_EQ(nodeAPI->setAttribute(scroll, NODE_SCROLL_MAX_ZOOM_SCALE, &item1), ARKUI_ERROR_CODE_NO_ERROR);
7720     auto ret = nodeAPI->getAttribute(scroll, NODE_SCROLL_MAX_ZOOM_SCALE);
7721     EXPECT_EQ(ret->value[0].f32, 2.0f);
7722     EXPECT_EQ(nodeAPI->resetAttribute(scroll, NODE_SCROLL_MAX_ZOOM_SCALE), ARKUI_ERROR_CODE_NO_ERROR);
7723     ret = nodeAPI->getAttribute(scroll, NODE_SCROLL_MAX_ZOOM_SCALE);
7724     EXPECT_EQ(ret->value[0].f32, 1.0f);
7725     EXPECT_EQ(nodeAPI->setAttribute(scroll, NODE_SCROLL_MAX_ZOOM_SCALE, &item0), ERROR_CODE_PARAM_INVALID);
7726 
7727     ArkUI_NumberValue value2[] = { { .f32 = 0.5f } };
7728     ArkUI_AttributeItem item2 = { value2, sizeof(value2) / sizeof(ArkUI_NumberValue) };
7729     EXPECT_EQ(nodeAPI->setAttribute(scroll, NODE_SCROLL_MIN_ZOOM_SCALE, &item2), ARKUI_ERROR_CODE_NO_ERROR);
7730     ret = nodeAPI->getAttribute(scroll, NODE_SCROLL_MIN_ZOOM_SCALE);
7731     EXPECT_EQ(ret->value[0].f32, 0.5f);
7732     EXPECT_EQ(nodeAPI->resetAttribute(scroll, NODE_SCROLL_MIN_ZOOM_SCALE), ARKUI_ERROR_CODE_NO_ERROR);
7733     ret = nodeAPI->getAttribute(scroll, NODE_SCROLL_MIN_ZOOM_SCALE);
7734     EXPECT_EQ(ret->value[0].f32, 1.0f);
7735     EXPECT_EQ(nodeAPI->setAttribute(scroll, NODE_SCROLL_MIN_ZOOM_SCALE, &item0), ERROR_CODE_PARAM_INVALID);
7736 
7737     ArkUI_NumberValue value3[] = { { .f32 = 1.5f } };
7738     ArkUI_AttributeItem item3 = { value3, sizeof(value3) / sizeof(ArkUI_NumberValue) };
7739     EXPECT_EQ(nodeAPI->setAttribute(scroll, NODE_SCROLL_ZOOM_SCALE, &item3), ARKUI_ERROR_CODE_NO_ERROR);
7740     ret = nodeAPI->getAttribute(scroll, NODE_SCROLL_ZOOM_SCALE);
7741     EXPECT_EQ(ret->value[0].f32, 1.5f);
7742     EXPECT_EQ(nodeAPI->resetAttribute(scroll, NODE_SCROLL_ZOOM_SCALE), ARKUI_ERROR_CODE_NO_ERROR);
7743     ret = nodeAPI->getAttribute(scroll, NODE_SCROLL_ZOOM_SCALE);
7744     EXPECT_EQ(ret->value[0].f32, 1.0f);
7745     EXPECT_EQ(nodeAPI->setAttribute(scroll, NODE_SCROLL_ZOOM_SCALE, &item0), ERROR_CODE_PARAM_INVALID);
7746 
7747     nodeAPI->disposeNode(scroll);
7748 }
7749 
7750 /**
7751  * @tc.name: NativeNodeScrollZoomTest002
7752  * @tc.desc: Test Test Scroll zoom event.
7753  * @tc.type: FUNC
7754  */
7755 HWTEST_F(NativeNodeTest, NativeNodeScrollZoomTest002, TestSize.Level1)
7756 {
7757     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
7758         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
7759     auto scroll = nodeAPI->createNode(ARKUI_NODE_SCROLL);
7760 
7761     auto ret = nodeAPI->registerNodeEvent(scroll, NODE_SCROLL_EVENT_ON_DID_ZOOM, 1, nullptr);
7762     EXPECT_EQ(ret, ARKUI_ERROR_CODE_NO_ERROR);
7763     nodeAPI->unregisterNodeEvent(scroll, NODE_SCROLL_EVENT_ON_DID_ZOOM);
7764 
7765     ret = nodeAPI->registerNodeEvent(scroll, NODE_SCROLL_EVENT_ON_ZOOM_START, 1, nullptr);
7766     EXPECT_EQ(ret, ARKUI_ERROR_CODE_NO_ERROR);
7767     nodeAPI->unregisterNodeEvent(scroll, NODE_SCROLL_EVENT_ON_ZOOM_START);
7768 
7769     ret = nodeAPI->registerNodeEvent(scroll, NODE_SCROLL_EVENT_ON_ZOOM_STOP, 1, nullptr);
7770     EXPECT_EQ(ret, ARKUI_ERROR_CODE_NO_ERROR);
7771     nodeAPI->unregisterNodeEvent(scroll, NODE_SCROLL_EVENT_ON_ZOOM_STOP);
7772     nodeAPI->disposeNode(scroll);
7773 }
7774 
7775 /**
7776  * @tc.name: NativeNodeScrollOnWillStopDraggingTest001
7777  * @tc.desc: Test Scroll onWillStopDragging event.
7778  * @tc.type: FUNC
7779  */
7780 HWTEST_F(NativeNodeTest, NativeNodeScrollOnWillStopDraggingTest001, TestSize.Level1)
7781 {
7782     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
7783         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
7784     auto scroll = nodeAPI->createNode(ARKUI_NODE_SCROLL);
7785 
7786     auto ret = nodeAPI->registerNodeEvent(scroll, NODE_SCROLL_EVENT_ON_WILL_STOP_DRAGGING, 1, nullptr);
7787     EXPECT_EQ(ret, ARKUI_ERROR_CODE_NO_ERROR);
7788     nodeAPI->unregisterNodeEvent(scroll, NODE_SCROLL_EVENT_ON_WILL_STOP_DRAGGING);
7789     nodeAPI->disposeNode(scroll);
7790 }
7791 
7792 /**
7793  * @tc.name: NativeNodeScrollOnWillStopDraggingTest002
7794  * @tc.desc: Test Grid onWillStopDragging event.
7795  * @tc.type: FUNC
7796  */
7797 HWTEST_F(NativeNodeTest, NativeNodeScrollOnWillStopDraggingTest002, TestSize.Level1)
7798 {
7799     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
7800         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
7801     auto grid = nodeAPI->createNode(ARKUI_NODE_GRID);
7802 
7803     auto ret = nodeAPI->registerNodeEvent(grid, NODE_SCROLL_EVENT_ON_WILL_STOP_DRAGGING, 1, nullptr);
7804     EXPECT_EQ(ret, ARKUI_ERROR_CODE_NO_ERROR);
7805     nodeAPI->unregisterNodeEvent(grid, NODE_SCROLL_EVENT_ON_WILL_STOP_DRAGGING);
7806     nodeAPI->disposeNode(grid);
7807 }
7808 
7809 /**
7810  * @tc.name: NativeNodeScrollOnWillStopDraggingTest003
7811  * @tc.desc: Test List onWillStopDragging event.
7812  * @tc.type: FUNC
7813  */
7814 HWTEST_F(NativeNodeTest, NativeNodeScrollOnWillStopDraggingTest003, TestSize.Level1)
7815 {
7816     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
7817         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
7818     auto list = nodeAPI->createNode(ARKUI_NODE_LIST);
7819 
7820     auto ret = nodeAPI->registerNodeEvent(list, NODE_SCROLL_EVENT_ON_WILL_STOP_DRAGGING, 1, nullptr);
7821     EXPECT_EQ(ret, ARKUI_ERROR_CODE_NO_ERROR);
7822     nodeAPI->unregisterNodeEvent(list, NODE_SCROLL_EVENT_ON_WILL_STOP_DRAGGING);
7823     nodeAPI->disposeNode(list);
7824 }
7825 
7826 /**
7827  * @tc.name: NativeNodeScrollOnWillStopDraggingTest004
7828  * @tc.desc: Test Waterflow onWillStopDragging event.
7829  * @tc.type: FUNC
7830  */
7831 HWTEST_F(NativeNodeTest, NativeNodeScrollOnWillStopDraggingTest004, TestSize.Level1)
7832 {
7833     auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>(
7834         OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1"));
7835     auto scroll = nodeAPI->createNode(ARKUI_NODE_WATER_FLOW);
7836 
7837     auto ret = nodeAPI->registerNodeEvent(scroll, NODE_SCROLL_EVENT_ON_WILL_STOP_DRAGGING, 1, nullptr);
7838     EXPECT_EQ(ret, ARKUI_ERROR_CODE_NO_ERROR);
7839     nodeAPI->unregisterNodeEvent(scroll, NODE_SCROLL_EVENT_ON_WILL_STOP_DRAGGING);
7840     nodeAPI->disposeNode(scroll);
7841 }
7842 } // namespace OHOS::Ace