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, ÷rItem);
2814 nodeAPI->setAttribute(groupNode, NODE_LIST_ITEM_GROUP_SET_DIVIDER, ÷rItem);
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