1 /* 2 * Copyright (c) 2025 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #include <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_render.h" 24 #include "native_type.h" 25 #include "interfaces/native/node/node_extened.h" 26 #include "interfaces/native/node/node_model.h" 27 #include "interfaces/native/node/render_node.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 NativeRenderNodeTest : 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: NativeRenderNodeTest001 62 * @tc.desc: Test renderNode function. 63 * @tc.type: FUNC 64 */ 65 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest001, TestSize.Level1) 66 { 67 auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>( 68 OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1")); 69 auto rootCustomNode = nodeAPI->createNode(ARKUI_NODE_CUSTOM); 70 ASSERT_NE(rootCustomNode, nullptr); 71 auto rootRenderNode = OH_ArkUI_RenderNodeUtils_CreateNode(); 72 ASSERT_NE(rootRenderNode, nullptr); 73 auto result = OH_ArkUI_RenderNodeUtils_AddRenderNode(rootCustomNode, rootRenderNode); 74 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 75 auto button = nodeAPI->createNode(ARKUI_NODE_BUTTON); 76 result = OH_ArkUI_RenderNodeUtils_AddRenderNode(button, rootRenderNode); 77 ASSERT_EQ(result, ERROR_CODE_PARAM_INVALID); 78 result = OH_ArkUI_RenderNodeUtils_RemoveRenderNode(rootCustomNode, rootRenderNode); 79 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 80 } 81 82 /** 83 * @tc.name: NativeRenderNodeTest002 84 * @tc.desc: Test renderNode function. 85 * @tc.type: FUNC 86 */ 87 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest002, TestSize.Level1) 88 { 89 auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>( 90 OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1")); 91 auto rootCustomNode = nodeAPI->createNode(ARKUI_NODE_CUSTOM); 92 ASSERT_NE(rootCustomNode, nullptr); 93 auto rootRenderNode = OH_ArkUI_RenderNodeUtils_CreateNode(); 94 ASSERT_NE(rootRenderNode, nullptr); 95 auto result = OH_ArkUI_RenderNodeUtils_AddRenderNode(rootCustomNode, rootRenderNode); 96 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 97 result = OH_ArkUI_RenderNodeUtils_ClearRenderNodeChildren(rootCustomNode); 98 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 99 } 100 101 /** 102 * @tc.name: NativeRenderNodeTest003 103 * @tc.desc: Test renderNode function. 104 * @tc.type: FUNC 105 */ 106 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest003, TestSize.Level1) 107 { 108 auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>( 109 OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1")); 110 auto rootCustomNode = nodeAPI->createNode(ARKUI_NODE_CUSTOM); 111 ASSERT_NE(rootCustomNode, nullptr); 112 auto rootRenderNode = OH_ArkUI_RenderNodeUtils_CreateNode(); 113 ASSERT_NE(rootRenderNode, nullptr); 114 auto result = OH_ArkUI_RenderNodeUtils_AddRenderNode(rootCustomNode, rootRenderNode); 115 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 116 result = OH_ArkUI_RenderNodeUtils_Invalidate(rootCustomNode); 117 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 118 auto rsNodeFirstChild = OH_ArkUI_RenderNodeUtils_CreateNode(); 119 ASSERT_NE(rsNodeFirstChild, nullptr); 120 auto rsNodeSecondChild = OH_ArkUI_RenderNodeUtils_CreateNode(); 121 ASSERT_NE(rsNodeSecondChild, nullptr); 122 auto rsNodeThirdChild = OH_ArkUI_RenderNodeUtils_CreateNode(); 123 ASSERT_NE(rsNodeThirdChild, nullptr); 124 result = OH_ArkUI_RenderNodeUtils_AddChild(rootRenderNode, rsNodeFirstChild); 125 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 126 result = OH_ArkUI_RenderNodeUtils_AddChild(rootRenderNode, rsNodeSecondChild); 127 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 128 int count = 0; 129 result = OH_ArkUI_RenderNodeUtils_GetChildrenCount(rootRenderNode, &count); 130 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 131 ASSERT_EQ(count, 2); //2 represents the number of sub-nodes that have been added by the sub-nodes. 132 auto nodeForDispose = OH_ArkUI_RenderNodeUtils_CreateNode(); 133 ASSERT_NE(nodeForDispose, nullptr); 134 result = OH_ArkUI_RenderNodeUtils_DisposeNode(nodeForDispose); 135 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 136 OH_ArkUI_RenderNodeUtils_InsertChildAfter(rootRenderNode, rsNodeThirdChild, rsNodeSecondChild); 137 result = OH_ArkUI_RenderNodeUtils_GetChildrenCount(rootRenderNode, &count); 138 ASSERT_EQ(count, 3); //3 represents the number of sub-nodes that have been added by the sub-nodes. 139 OH_ArkUI_RenderNodeUtils_RemoveChild(rootRenderNode, rsNodeThirdChild); 140 OH_ArkUI_RenderNodeUtils_GetChildrenCount(rootRenderNode, &count); 141 ASSERT_EQ(count, 2); //2 represents the number of sub-nodes that have been added by the sub-nodes. 142 OH_ArkUI_RenderNodeUtils_ClearChildren(rootRenderNode); 143 OH_ArkUI_RenderNodeUtils_GetChildrenCount(rootRenderNode, &count); 144 ASSERT_EQ(count, 0); //0 represents the number of sub-nodes that have been added by the sub-nodes. 145 } 146 147 /** 148 * @tc.name: NativeRenderNodeTest004 149 * @tc.desc: Test renderNode function. 150 * @tc.type: FUNC 151 */ 152 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest004, TestSize.Level1) 153 { 154 auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>( 155 OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1")); 156 auto rootCustomNode = nodeAPI->createNode(ARKUI_NODE_CUSTOM); 157 ASSERT_NE(rootCustomNode, nullptr); 158 auto rootRenderNode = OH_ArkUI_RenderNodeUtils_CreateNode(); 159 ASSERT_NE(rootRenderNode, nullptr); 160 auto result = OH_ArkUI_RenderNodeUtils_AddRenderNode(rootCustomNode, rootRenderNode); 161 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 162 auto rsNodeFirstChild = OH_ArkUI_RenderNodeUtils_CreateNode(); 163 auto rsNodeSecondChild = OH_ArkUI_RenderNodeUtils_CreateNode(); 164 auto rsNodeThirdChild = OH_ArkUI_RenderNodeUtils_CreateNode(); 165 OH_ArkUI_RenderNodeUtils_AddChild(rootRenderNode, rsNodeFirstChild); 166 OH_ArkUI_RenderNodeUtils_AddChild(rootRenderNode, rsNodeSecondChild); 167 OH_ArkUI_RenderNodeUtils_AddChild(rootRenderNode, rsNodeThirdChild); 168 169 OH_ArkUI_RenderNodeUtils_SetSize(rootRenderNode, 300, 300); // size 300 marker node. 170 OH_ArkUI_RenderNodeUtils_SetSize(rsNodeFirstChild, 100, 100); // size 100 marker node. 171 OH_ArkUI_RenderNodeUtils_SetSize(rsNodeSecondChild, 200, 200); // size 200 marker node. 172 OH_ArkUI_RenderNodeUtils_SetSize(rsNodeThirdChild, 250, 250); // size 250 marker node. 173 174 int w = 0; 175 ArkUI_RenderNodeHandle nodeTemp; 176 result = OH_ArkUI_RenderNodeUtils_GetFirstChild(rootRenderNode, &nodeTemp); 177 OH_ArkUI_RenderNodeUtils_GetSize(nodeTemp, &w, &w); 178 ASSERT_EQ(w, 100); //100 represents rsNodeFirstChild. 179 result = OH_ArkUI_RenderNodeUtils_GetChild(rootRenderNode, 1, &nodeTemp); 180 OH_ArkUI_RenderNodeUtils_GetSize(nodeTemp, &w, &w); 181 ASSERT_EQ(w, 200); //200 represents rsNodeSecondChild. 182 result = OH_ArkUI_RenderNodeUtils_GetNextSibling(rsNodeSecondChild, &nodeTemp); 183 OH_ArkUI_RenderNodeUtils_GetSize(nodeTemp, &w, &w); 184 ASSERT_EQ(w, 250); //250 represents rsNodeThirdChild. 185 result = OH_ArkUI_RenderNodeUtils_GetPreviousSibling(rsNodeSecondChild, &nodeTemp); 186 OH_ArkUI_RenderNodeUtils_GetSize(nodeTemp, &w, &w); 187 ASSERT_EQ(w, 100); //100 represents rsNodeFirstChild. 188 189 ArkUI_RenderNodeHandle* nodeList; 190 int count = 0; 191 OH_ArkUI_RenderNodeUtils_GetChildren(rootRenderNode, &nodeList, &count); 192 ASSERT_EQ(count, 3); //3 represents the number of sub-nodes that have been added by the sub-nodes. 193 OH_ArkUI_RenderNodeUtils_GetSize(nodeList[0], &w, &w); 194 ASSERT_EQ(w, 100); //100 represents rsNodeFirstChild. 195 } 196 197 /** 198 * @tc.name: NativeRenderNodeTest005 199 * @tc.desc: Test renderNode function. 200 * @tc.type: FUNC 201 */ 202 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest005, TestSize.Level1) 203 { 204 auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>( 205 OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1")); 206 auto rootCustomNode = nodeAPI->createNode(ARKUI_NODE_CUSTOM); 207 ASSERT_NE(rootCustomNode, nullptr); 208 auto rootRenderNode = OH_ArkUI_RenderNodeUtils_CreateNode(); 209 ASSERT_NE(rootRenderNode, nullptr); 210 auto rootRenderNode1 = OH_ArkUI_RenderNodeUtils_CreateNode(); 211 ASSERT_NE(rootRenderNode1, nullptr); 212 auto result = OH_ArkUI_RenderNodeUtils_AddRenderNode(rootCustomNode, rootRenderNode); 213 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 214 result = OH_ArkUI_RenderNodeUtils_AddRenderNode(rootCustomNode, rootRenderNode1); 215 ASSERT_EQ(result, ERROR_CODE_CHILD_EXISTED); 216 } 217 218 /** 219 * @tc.name: NativeRenderNodeTest006 220 * @tc.desc: Test renderNode function. 221 * @tc.type: FUNC 222 */ 223 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest006, TestSize.Level1) 224 { 225 auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>( 226 OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1")); 227 auto rootCustomNode = nodeAPI->createNode(ARKUI_NODE_CUSTOM); 228 ASSERT_NE(rootCustomNode, nullptr); 229 auto rootRenderNode = OH_ArkUI_RenderNodeUtils_CreateNode(); 230 ASSERT_NE(rootRenderNode, nullptr); 231 auto rootRenderNode1 = OH_ArkUI_RenderNodeUtils_CreateNode(); 232 ASSERT_NE(rootRenderNode1, nullptr); 233 auto result = OH_ArkUI_RenderNodeUtils_AddChild(rootRenderNode, rootRenderNode1); 234 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 235 result = OH_ArkUI_RenderNodeUtils_AddRenderNode(rootCustomNode, rootRenderNode1); 236 ASSERT_EQ(result, ERROR_CODE_RENDER_PARENT_EXISTED); 237 } 238 239 /** 240 * @tc.name: NativeRenderNodeTest090 241 * @tc.desc: Test CreateFloatProperty and SetFloatPropertyValue functions. 242 * @tc.type: FUNC 243 */ 244 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest090, TestSize.Level1) 245 { 246 auto floatProperty = OH_ArkUI_RenderNodeUtils_CreateFloatProperty(2.0f); 247 ASSERT_NE(floatProperty, nullptr); 248 auto result = OH_ArkUI_RenderNodeUtils_SetFloatPropertyValue(floatProperty, 3.0f); 249 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 250 OH_ArkUI_RenderNodeUtils_DisposeFloatProperty(floatProperty); 251 } 252 253 /** 254 * @tc.name: NativeRenderNodeTest091 255 * @tc.desc: Test GetFloatPropertyValue function. 256 * @tc.type: FUNC 257 */ 258 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest091, TestSize.Level1) 259 { 260 auto floatProperty = OH_ArkUI_RenderNodeUtils_CreateFloatProperty(4.0f); 261 ASSERT_NE(floatProperty, nullptr); 262 float value = 0.0f; 263 auto result = OH_ArkUI_RenderNodeUtils_GetFloatPropertyValue(floatProperty, &value); 264 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 265 ASSERT_EQ(value, 4.0f); 266 OH_ArkUI_RenderNodeUtils_DisposeFloatProperty(floatProperty); 267 } 268 269 /** 270 * @tc.name: NativeRenderNodeTest092 271 * @tc.desc: Test AttachFloatProperty and AttachVector2Property functions. 272 * @tc.type: FUNC 273 */ 274 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest092, TestSize.Level1) 275 { 276 auto contentModifier = OH_ArkUI_RenderNodeUtils_CreateContentModifier(); 277 ASSERT_NE(contentModifier, nullptr); 278 279 auto floatProperty = OH_ArkUI_RenderNodeUtils_CreateFloatProperty(1.0f); 280 ASSERT_NE(floatProperty, nullptr); 281 auto result = OH_ArkUI_RenderNodeUtils_AttachFloatProperty(contentModifier, floatProperty); 282 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 283 284 auto vector2Property = OH_ArkUI_RenderNodeUtils_CreateVector2Property(10.0f, 20.0f); 285 ASSERT_NE(vector2Property, nullptr); 286 result = OH_ArkUI_RenderNodeUtils_AttachVector2Property(contentModifier, vector2Property); 287 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 288 289 OH_ArkUI_RenderNodeUtils_DisposeVector2Property(vector2Property); 290 OH_ArkUI_RenderNodeUtils_DisposeFloatProperty(floatProperty); 291 OH_ArkUI_RenderNodeUtils_DisposeContentModifier(contentModifier); 292 } 293 294 /** 295 * @tc.name: NativeRenderNodeTest093 296 * @tc.desc: Test AttachColorProperty and AttachFloatAnimatableProperty functions. 297 * @tc.type: FUNC 298 */ 299 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest093, TestSize.Level1) 300 { 301 auto contentModifier = OH_ArkUI_RenderNodeUtils_CreateContentModifier(); 302 ASSERT_NE(contentModifier, nullptr); 303 304 auto colorProperty = OH_ArkUI_RenderNodeUtils_CreateColorProperty(0xFF0000FF); 305 ASSERT_NE(colorProperty, nullptr); 306 auto result = OH_ArkUI_RenderNodeUtils_AttachColorProperty(contentModifier, colorProperty); 307 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 308 309 auto floatAnimProperty = OH_ArkUI_RenderNodeUtils_CreateFloatAnimatableProperty(2.5f); 310 ASSERT_NE(floatAnimProperty, nullptr); 311 result = OH_ArkUI_RenderNodeUtils_AttachFloatAnimatableProperty(contentModifier, floatAnimProperty); 312 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 313 314 OH_ArkUI_RenderNodeUtils_DisposeFloatAnimatableProperty(floatAnimProperty); 315 OH_ArkUI_RenderNodeUtils_DisposeColorProperty(colorProperty); 316 OH_ArkUI_RenderNodeUtils_DisposeContentModifier(contentModifier); 317 } 318 319 /** 320 * @tc.name: NativeRenderNodeTest094 321 * @tc.desc: Test AttachVector2AnimatableProperty and AttachColorAnimatableProperty functions. 322 * @tc.type: FUNC 323 */ 324 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest094, TestSize.Level1) 325 { 326 auto contentModifier = OH_ArkUI_RenderNodeUtils_CreateContentModifier(); 327 ASSERT_NE(contentModifier, nullptr); 328 329 auto vector2AnimProperty = OH_ArkUI_RenderNodeUtils_CreateVector2AnimatableProperty(100.0f, 200.0f); 330 ASSERT_NE(vector2AnimProperty, nullptr); 331 auto result = OH_ArkUI_RenderNodeUtils_AttachVector2AnimatableProperty(contentModifier, vector2AnimProperty); 332 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 333 334 auto colorAnimProperty = OH_ArkUI_RenderNodeUtils_CreateColorAnimatableProperty(0xFF00FFFF); 335 ASSERT_NE(colorAnimProperty, nullptr); 336 result = OH_ArkUI_RenderNodeUtils_AttachColorAnimatableProperty(contentModifier, colorAnimProperty); 337 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 338 339 OH_ArkUI_RenderNodeUtils_DisposeColorAnimatableProperty(colorAnimProperty); 340 OH_ArkUI_RenderNodeUtils_DisposeVector2AnimatableProperty(vector2AnimProperty); 341 OH_ArkUI_RenderNodeUtils_DisposeContentModifier(contentModifier); 342 } 343 344 /** 345 * @tc.name: NativeRenderNodeTest100 346 * @tc.desc: Test DisposeFloatProperty function. 347 * @tc.type: FUNC 348 */ 349 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest100, TestSize.Level1) 350 { 351 auto floatProperty = OH_ArkUI_RenderNodeUtils_CreateFloatProperty(1.5f); 352 ASSERT_NE(floatProperty, nullptr); 353 OH_ArkUI_RenderNodeUtils_DisposeFloatProperty(floatProperty); 354 } 355 356 /** 357 * @tc.name: NativeRenderNodeTest101 358 * @tc.desc: Test CreateVector2Property and SetVector2PropertyValue functions. 359 * @tc.type: FUNC 360 */ 361 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest101, TestSize.Level1) 362 { 363 auto vector2Property = OH_ArkUI_RenderNodeUtils_CreateVector2Property(10.0f, 20.0f); 364 ASSERT_NE(vector2Property, nullptr); 365 auto result = OH_ArkUI_RenderNodeUtils_SetVector2PropertyValue(vector2Property, 30.0f, 40.0f); 366 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 367 OH_ArkUI_RenderNodeUtils_DisposeVector2Property(vector2Property); 368 } 369 370 /** 371 * @tc.name: NativeRenderNodeTest102 372 * @tc.desc: Test GetVector2PropertyValue and DisposeVector2Property functions. 373 * @tc.type: FUNC 374 */ 375 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest102, TestSize.Level1) 376 { 377 auto vector2Property = OH_ArkUI_RenderNodeUtils_CreateVector2Property(50.0f, 60.0f); 378 ASSERT_NE(vector2Property, nullptr); 379 float x = 0.0f, y = 0.0f; 380 auto result = OH_ArkUI_RenderNodeUtils_GetVector2PropertyValue(vector2Property, &x, &y); 381 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 382 ASSERT_EQ(x, 50.0f); 383 ASSERT_EQ(y, 60.0f); 384 OH_ArkUI_RenderNodeUtils_DisposeVector2Property(vector2Property); 385 } 386 387 /** 388 * @tc.name: NativeRenderNodeTest103 389 * @tc.desc: Test CreateColorProperty and SetColorPropertyValue functions. 390 * @tc.type: FUNC 391 */ 392 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest103, TestSize.Level1) 393 { 394 auto colorProperty = OH_ArkUI_RenderNodeUtils_CreateColorProperty(0xFF0000FF); 395 ASSERT_NE(colorProperty, nullptr); 396 auto result = OH_ArkUI_RenderNodeUtils_SetColorPropertyValue(colorProperty, 0xFF00FF00); 397 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 398 OH_ArkUI_RenderNodeUtils_DisposeColorProperty(colorProperty); 399 } 400 401 /** 402 * @tc.name: NativeRenderNodeTest104 403 * @tc.desc: Test GetColorPropertyValue and DisposeColorProperty functions. 404 * @tc.type: FUNC 405 */ 406 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest104, TestSize.Level1) 407 { 408 auto colorProperty = OH_ArkUI_RenderNodeUtils_CreateColorProperty(0xFFFF0000); 409 ASSERT_NE(colorProperty, nullptr); 410 uint32_t color = 0; 411 auto result = OH_ArkUI_RenderNodeUtils_GetColorPropertyValue(colorProperty, &color); 412 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 413 OH_ArkUI_RenderNodeUtils_DisposeColorProperty(colorProperty); 414 } 415 416 /** 417 * @tc.name: NativeRenderNodeTest105 418 * @tc.desc: Test CreateFloatAnimatableProperty and SetFloatAnimatablePropertyValue functions. 419 * @tc.type: FUNC 420 */ 421 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest105, TestSize.Level1) 422 { 423 auto floatAnimProperty = OH_ArkUI_RenderNodeUtils_CreateFloatAnimatableProperty(2.5f); 424 ASSERT_NE(floatAnimProperty, nullptr); 425 auto result = OH_ArkUI_RenderNodeUtils_SetFloatAnimatablePropertyValue(floatAnimProperty, 3.5f); 426 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 427 OH_ArkUI_RenderNodeUtils_DisposeFloatAnimatableProperty(floatAnimProperty); 428 } 429 430 /** 431 * @tc.name: NativeRenderNodeTest106 432 * @tc.desc: Test GetFloatAnimatablePropertyValue and DisposeFloatAnimatableProperty functions. 433 * @tc.type: FUNC 434 */ 435 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest106, TestSize.Level1) 436 { 437 auto floatAnimProperty = OH_ArkUI_RenderNodeUtils_CreateFloatAnimatableProperty(4.5f); 438 ASSERT_NE(floatAnimProperty, nullptr); 439 float value = 0.0f; 440 auto result = OH_ArkUI_RenderNodeUtils_GetFloatAnimatablePropertyValue(floatAnimProperty, &value); 441 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 442 ASSERT_EQ(value, 4.5f); 443 OH_ArkUI_RenderNodeUtils_DisposeFloatAnimatableProperty(floatAnimProperty); 444 } 445 446 /** 447 * @tc.name: NativeRenderNodeTest107 448 * @tc.desc: Test CreateVector2AnimatableProperty and SetVector2AnimatablePropertyValue functions. 449 * @tc.type: FUNC 450 */ 451 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest107, TestSize.Level1) 452 { 453 auto vector2AnimProperty = OH_ArkUI_RenderNodeUtils_CreateVector2AnimatableProperty(100.0f, 200.0f); 454 ASSERT_NE(vector2AnimProperty, nullptr); 455 auto result = OH_ArkUI_RenderNodeUtils_SetVector2AnimatablePropertyValue(vector2AnimProperty, 300.0f, 400.0f); 456 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 457 OH_ArkUI_RenderNodeUtils_DisposeVector2AnimatableProperty(vector2AnimProperty); 458 } 459 460 /** 461 * @tc.name: NativeRenderNodeTest108 462 * @tc.desc: Test GetVector2AnimatablePropertyValue and DisposeVector2AnimatableProperty functions. 463 * @tc.type: FUNC 464 */ 465 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest108, TestSize.Level1) 466 { 467 auto vector2AnimProperty = OH_ArkUI_RenderNodeUtils_CreateVector2AnimatableProperty(500.0f, 600.0f); 468 ASSERT_NE(vector2AnimProperty, nullptr); 469 float x = 0.0f, y = 0.0f; 470 auto result = OH_ArkUI_RenderNodeUtils_GetVector2AnimatablePropertyValue(vector2AnimProperty, &x, &y); 471 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 472 ASSERT_EQ(x, 500.0f); 473 ASSERT_EQ(y, 600.0f); 474 OH_ArkUI_RenderNodeUtils_DisposeVector2AnimatableProperty(vector2AnimProperty); 475 } 476 477 /** 478 * @tc.name: NativeRenderNodeTest109 479 * @tc.desc: Test CreateColorAnimatableProperty and SetColorAnimatablePropertyValue functions. 480 * @tc.type: FUNC 481 */ 482 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest109, TestSize.Level1) 483 { 484 auto colorAnimProperty = OH_ArkUI_RenderNodeUtils_CreateColorAnimatableProperty(0xFF00FFFF); 485 ASSERT_NE(colorAnimProperty, nullptr); 486 OH_ArkUI_RenderNodeUtils_SetColorAnimatablePropertyValue(colorAnimProperty, 0xFFFFFF00); 487 OH_ArkUI_RenderNodeUtils_DisposeColorAnimatableProperty(colorAnimProperty); 488 } 489 490 /** 491 * @tc.name: NativeRenderNodeTest110 492 * @tc.desc: Test GetColorAnimatablePropertyValue and DisposeColorAnimatableProperty functions. 493 * @tc.type: FUNC 494 */ 495 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest110, TestSize.Level1) 496 { 497 auto colorAnimProperty = OH_ArkUI_RenderNodeUtils_CreateColorAnimatableProperty(0xFFFF00FF); 498 ASSERT_NE(colorAnimProperty, nullptr); 499 uint32_t color = 0; 500 auto result = OH_ArkUI_RenderNodeUtils_GetColorAnimatablePropertyValue(colorAnimProperty, &color); 501 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 502 OH_ArkUI_RenderNodeUtils_DisposeColorAnimatableProperty(colorAnimProperty); 503 } 504 505 /** 506 * @tc.name: NativeRenderNodeTest111 507 * @tc.desc: Test SetContentModifierOnDraw function. 508 * @tc.type: FUNC 509 */ 510 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest111, TestSize.Level1) 511 { 512 auto contentModifier = OH_ArkUI_RenderNodeUtils_CreateContentModifier(); 513 ASSERT_NE(contentModifier, nullptr); 514 515 static bool drawCallbackCalled = false; __anona84139950102(ArkUI_DrawContext* context, void* userData) 516 auto drawCallback = [](ArkUI_DrawContext* context, void* userData) { 517 drawCallbackCalled = true; 518 }; 519 520 int userData = 123; 521 auto result = OH_ArkUI_RenderNodeUtils_SetContentModifierOnDraw(contentModifier, &userData, drawCallback); 522 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 523 OH_ArkUI_RenderNodeUtils_DisposeContentModifier(contentModifier); 524 } 525 526 /** 527 * @tc.name: NativeRenderNodeTest112 528 * @tc.desc: Test CreateRectShapeOption and DisposeRectShapeOption functions. 529 * @tc.type: FUNC 530 */ 531 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest112, TestSize.Level1) 532 { 533 auto rectShape = OH_ArkUI_RenderNodeUtils_CreateRectShapeOption(); 534 ASSERT_NE(rectShape, nullptr); 535 OH_ArkUI_RenderNodeUtils_DisposeRectShapeOption(rectShape); 536 } 537 538 /** 539 * @tc.name: NativeRenderNodeTest113 540 * @tc.desc: Test SetRectShapeOptionEdgeValue function. 541 * @tc.type: FUNC 542 */ 543 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest113, TestSize.Level1) 544 { 545 auto rectShape = OH_ArkUI_RenderNodeUtils_CreateRectShapeOption(); 546 ASSERT_NE(rectShape, nullptr); 547 OH_ArkUI_RenderNodeUtils_SetRectShapeOptionEdgeValue(rectShape, 10.0f, 0.0f, 0.0f, 20.0f); 548 OH_ArkUI_RenderNodeUtils_DisposeRectShapeOption(rectShape); 549 } 550 551 /** 552 * @tc.name: NativeRenderNodeTest114 553 * @tc.desc: Test CreateNodeBorderStyleOption and DisposeNodeBorderStyleOption functions. 554 * @tc.type: FUNC 555 */ 556 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest114, TestSize.Level1) 557 { 558 auto borderStyle = OH_ArkUI_RenderNodeUtils_CreateNodeBorderStyleOption(); 559 ASSERT_NE(borderStyle, nullptr); 560 OH_ArkUI_RenderNodeUtils_DisposeNodeBorderStyleOption(borderStyle); 561 } 562 563 /** 564 * @tc.name: NativeRenderNodeTest115 565 * @tc.desc: Test SetNodeBorderStyleOptionEdgeStyle function. 566 * @tc.type: FUNC 567 */ 568 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest115, TestSize.Level1) 569 { 570 auto borderStyle = OH_ArkUI_RenderNodeUtils_CreateNodeBorderStyleOption(); 571 ASSERT_NE(borderStyle, nullptr); 572 OH_ArkUI_RenderNodeUtils_SetNodeBorderStyleOptionEdgeStyle( 573 borderStyle, ARKUI_BORDER_STYLE_SOLID, ARKUI_EDGE_DIRECTION_TOP); 574 OH_ArkUI_RenderNodeUtils_SetNodeBorderStyleOptionEdgeStyle( 575 borderStyle, ARKUI_BORDER_STYLE_DASHED, ARKUI_EDGE_DIRECTION_LEFT); 576 OH_ArkUI_RenderNodeUtils_DisposeNodeBorderStyleOption(borderStyle); 577 } 578 579 /** 580 * @tc.name: NativeRenderNodeTest116 581 * @tc.desc: Test CreateNodeBorderWidthOption and DisposeNodeBorderWidthOption functions. 582 * @tc.type: FUNC 583 */ 584 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest116, TestSize.Level1) 585 { 586 auto borderWidth = OH_ArkUI_RenderNodeUtils_CreateNodeBorderWidthOption(); 587 ASSERT_NE(borderWidth, nullptr); 588 OH_ArkUI_RenderNodeUtils_DisposeNodeBorderWidthOption(borderWidth); 589 } 590 591 /** 592 * @tc.name: NativeRenderNodeTest117 593 * @tc.desc: Test SetNodeBorderWidthOptionEdgeWidth function. 594 * @tc.type: FUNC 595 */ 596 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest117, TestSize.Level1) 597 { 598 auto borderWidth = OH_ArkUI_RenderNodeUtils_CreateNodeBorderWidthOption(); 599 ASSERT_NE(borderWidth, nullptr); 600 OH_ArkUI_RenderNodeUtils_SetNodeBorderWidthOptionEdgeWidth(borderWidth, 5.0f, ARKUI_EDGE_DIRECTION_TOP); 601 OH_ArkUI_RenderNodeUtils_SetNodeBorderWidthOptionEdgeWidth(borderWidth, 8.0f, ARKUI_EDGE_DIRECTION_RIGHT); 602 OH_ArkUI_RenderNodeUtils_SetNodeBorderWidthOptionEdgeWidth(borderWidth, -1.0f, ARKUI_EDGE_DIRECTION_RIGHT); 603 OH_ArkUI_RenderNodeUtils_DisposeNodeBorderWidthOption(borderWidth); 604 } 605 606 /** 607 * @tc.name: NativeRenderNodeTest118 608 * @tc.desc: Test CreateNodeBorderColorOption and DisposeNodeBorderColorOption functions. 609 * @tc.type: FUNC 610 */ 611 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest118, TestSize.Level1) 612 { 613 auto borderColor = OH_ArkUI_RenderNodeUtils_CreateNodeBorderColorOption(); 614 ASSERT_NE(borderColor, nullptr); 615 OH_ArkUI_RenderNodeUtils_DisposeNodeBorderColorOption(borderColor); 616 } 617 618 /** 619 * @tc.name: NativeRenderNodeTest119 620 * @tc.desc: Test SetNodeBorderColorOptionEdgeColor function. 621 * @tc.type: FUNC 622 */ 623 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest119, TestSize.Level1) 624 { 625 auto borderColor = OH_ArkUI_RenderNodeUtils_CreateNodeBorderColorOption(); 626 ASSERT_NE(borderColor, nullptr); 627 OH_ArkUI_RenderNodeUtils_SetNodeBorderColorOptionEdgeColor(borderColor, 0xFF0000FF, ARKUI_EDGE_DIRECTION_TOP); 628 OH_ArkUI_RenderNodeUtils_SetNodeBorderColorOptionEdgeColor(borderColor, 0xFF00FF00, ARKUI_EDGE_DIRECTION_BOTTOM); 629 OH_ArkUI_RenderNodeUtils_DisposeNodeBorderColorOption(borderColor); 630 } 631 632 /** 633 * @tc.name: NativeRenderNodeTest120 634 * @tc.desc: Test CreateNodeBorderRadiusOption and DisposeNodeBorderRadiusOption functions. 635 * @tc.type: FUNC 636 */ 637 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest120, TestSize.Level1) 638 { 639 auto borderRadius = OH_ArkUI_RenderNodeUtils_CreateNodeBorderRadiusOption(); 640 ASSERT_NE(borderRadius, nullptr); 641 OH_ArkUI_RenderNodeUtils_DisposeNodeBorderRadiusOption(borderRadius); 642 } 643 644 /** 645 * @tc.name: NativeRenderNodeTest121 646 * @tc.desc: Test SetNodeBorderRadiusOptionEdgeRadius function. 647 * @tc.type: FUNC 648 */ 649 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest121, TestSize.Level1) 650 { 651 auto borderRadius = OH_ArkUI_RenderNodeUtils_CreateNodeBorderRadiusOption(); 652 ASSERT_NE(borderRadius, nullptr); 653 OH_ArkUI_RenderNodeUtils_SetNodeBorderRadiusOptionCornerRadius(borderRadius, 10, ARKUI_CORNER_DIRECTION_TOP_LEFT); 654 OH_ArkUI_RenderNodeUtils_SetNodeBorderRadiusOptionCornerRadius(borderRadius, 15, ARKUI_CORNER_DIRECTION_TOP_RIGHT); 655 OH_ArkUI_RenderNodeUtils_DisposeNodeBorderRadiusOption(borderRadius); 656 } 657 658 /** 659 * @tc.name: NativeRenderNodeTest122 660 * @tc.desc: Test CreateCircleShapeOption and DisposeCircleShapeOption functions. 661 * @tc.type: FUNC 662 */ 663 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest122, TestSize.Level1) 664 { 665 auto circleShape = OH_ArkUI_RenderNodeUtils_CreateCircleShapeOption(); 666 ASSERT_NE(circleShape, nullptr); 667 OH_ArkUI_RenderNodeUtils_DisposeCircleShapeOption(circleShape); 668 } 669 670 /** 671 * @tc.name: NativeRenderNodeTest123 672 * @tc.desc: Test SetCircleShapeOptionCenterX and SetCircleShapeOptionCenterY functions. 673 * @tc.type: FUNC 674 */ 675 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest123, TestSize.Level1) 676 { 677 auto circleShape = OH_ArkUI_RenderNodeUtils_CreateCircleShapeOption(); 678 ASSERT_NE(circleShape, nullptr); 679 OH_ArkUI_RenderNodeUtils_SetCircleShapeOptionCenterX(circleShape, 100.0f); 680 OH_ArkUI_RenderNodeUtils_SetCircleShapeOptionCenterY(circleShape, 200.0f); 681 OH_ArkUI_RenderNodeUtils_DisposeCircleShapeOption(circleShape); 682 } 683 684 /** 685 * @tc.name: NativeRenderNodeTest124 686 * @tc.desc: Test SetCircleShapeOptionRadius function. 687 * @tc.type: FUNC 688 */ 689 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest124, TestSize.Level1) 690 { 691 auto circleShape = OH_ArkUI_RenderNodeUtils_CreateCircleShapeOption(); 692 ASSERT_NE(circleShape, nullptr); 693 OH_ArkUI_RenderNodeUtils_SetCircleShapeOptionRadius(circleShape, 50.0f); 694 OH_ArkUI_RenderNodeUtils_DisposeCircleShapeOption(circleShape); 695 } 696 697 /** 698 * @tc.name: NativeRenderNodeTest125 699 * @tc.desc: Test CreateRoundRectShapeOption and DisposeRoundRectShapeOption functions. 700 * @tc.type: FUNC 701 */ 702 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest125, TestSize.Level1) 703 { 704 auto roundRectShape = OH_ArkUI_RenderNodeUtils_CreateRoundRectShapeOption(); 705 ASSERT_NE(roundRectShape, nullptr); 706 OH_ArkUI_RenderNodeUtils_DisposeRoundRectShapeOption(roundRectShape); 707 } 708 709 /** 710 * @tc.name: NativeRenderNodeTest126 711 * @tc.desc: Test SetRoundRectShapeOptionEdgeValue and SetRoundRectShapeOptionCornerXY functions. 712 * @tc.type: FUNC 713 */ 714 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest126, TestSize.Level1) 715 { 716 auto roundRectShape = OH_ArkUI_RenderNodeUtils_CreateRoundRectShapeOption(); 717 ASSERT_NE(roundRectShape, nullptr); 718 OH_ArkUI_RenderNodeUtils_SetRoundRectShapeOptionEdgeValue(roundRectShape, 100.0f, 0.0f, 0.0f, 0.0f); 719 OH_ArkUI_RenderNodeUtils_SetRoundRectShapeOptionCornerXY( 720 roundRectShape, 10.0f, 10.0f, ARKUI_CORNER_DIRECTION_TOP_LEFT); 721 OH_ArkUI_RenderNodeUtils_DisposeRoundRectShapeOption(roundRectShape); 722 } 723 724 /** 725 * @tc.name: NativeRenderNodeTest127 726 * @tc.desc: Test CreateCommandPathOption and DisposeCommandPathOption functions. 727 * @tc.type: FUNC 728 */ 729 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest127, TestSize.Level1) 730 { 731 auto commandPath = OH_ArkUI_RenderNodeUtils_CreateCommandPathOption(); 732 ASSERT_NE(commandPath, nullptr); 733 OH_ArkUI_RenderNodeUtils_DisposeCommandPathOption(commandPath); 734 } 735 736 /** 737 * @tc.name: NativeRenderNodeTest128 738 * @tc.desc: Test SetCommandPathOptionCommands function. 739 * @tc.type: FUNC 740 */ 741 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest128, TestSize.Level1) 742 { 743 auto commandPath = OH_ArkUI_RenderNodeUtils_CreateCommandPathOption(); 744 ASSERT_NE(commandPath, nullptr); 745 char* commands = const_cast<char*>("M 100 100 L 200 100 L 200 200 Z"); 746 OH_ArkUI_RenderNodeUtils_SetCommandPathOptionCommands(commandPath, commands); 747 OH_ArkUI_RenderNodeUtils_DisposeCommandPathOption(commandPath); 748 } 749 750 /** 751 * @tc.name: NativeRenderNodeTest129 752 * @tc.desc: Test CreateRenderNodeMaskOptionFromRectShape and CreateRenderNodeMaskOptionFromRoundRectShape functions. 753 * @tc.type: FUNC 754 */ 755 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest129, TestSize.Level1) 756 { 757 auto rectShape = OH_ArkUI_RenderNodeUtils_CreateRectShapeOption(); 758 ASSERT_NE(rectShape, nullptr); 759 auto maskFromRect = OH_ArkUI_RenderNodeUtils_CreateRenderNodeMaskOptionFromRectShape(rectShape); 760 ASSERT_NE(maskFromRect, nullptr); 761 762 auto roundRectShape = OH_ArkUI_RenderNodeUtils_CreateRoundRectShapeOption(); 763 ASSERT_NE(roundRectShape, nullptr); 764 auto maskFromRoundRect = OH_ArkUI_RenderNodeUtils_CreateRenderNodeMaskOptionFromRoundRectShape(roundRectShape); 765 ASSERT_NE(maskFromRoundRect, nullptr); 766 767 OH_ArkUI_RenderNodeUtils_DisposeRenderNodeMaskOption(maskFromRect); 768 OH_ArkUI_RenderNodeUtils_DisposeRenderNodeMaskOption(maskFromRoundRect); 769 OH_ArkUI_RenderNodeUtils_DisposeRectShapeOption(rectShape); 770 OH_ArkUI_RenderNodeUtils_DisposeRoundRectShapeOption(roundRectShape); 771 } 772 773 /** 774 * @tc.name: NativeRenderNodeTest130 775 * @tc.desc: Test CreateRenderNodeMaskOptionFromCircleShape and CreateRenderNodeMaskOptionFromOvalShape functions. 776 * @tc.type: FUNC 777 */ 778 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest130, TestSize.Level1) 779 { 780 auto circleShape = OH_ArkUI_RenderNodeUtils_CreateCircleShapeOption(); 781 ASSERT_NE(circleShape, nullptr); 782 auto maskFromCircle = OH_ArkUI_RenderNodeUtils_CreateRenderNodeMaskOptionFromCircleShape(circleShape); 783 ASSERT_NE(maskFromCircle, nullptr); 784 785 auto ovalShape = OH_ArkUI_RenderNodeUtils_CreateRectShapeOption(); 786 ASSERT_NE(ovalShape, nullptr); 787 auto maskFromOval = OH_ArkUI_RenderNodeUtils_CreateRenderNodeMaskOptionFromOvalShape(ovalShape); 788 ASSERT_NE(maskFromOval, nullptr); 789 790 OH_ArkUI_RenderNodeUtils_DisposeRenderNodeMaskOption(maskFromCircle); 791 OH_ArkUI_RenderNodeUtils_DisposeRenderNodeMaskOption(maskFromOval); 792 OH_ArkUI_RenderNodeUtils_DisposeCircleShapeOption(circleShape); 793 OH_ArkUI_RenderNodeUtils_DisposeRectShapeOption(ovalShape); 794 } 795 796 /** 797 * @tc.name: NativeRenderNodeTest131 798 * @tc.desc: Test CreateRenderNodeMaskOptionFromCommandPath and DisposeRenderNodeMaskOption functions. 799 * @tc.type: FUNC 800 */ 801 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest131, TestSize.Level1) 802 { 803 auto commandPath = OH_ArkUI_RenderNodeUtils_CreateCommandPathOption(); 804 ASSERT_NE(commandPath, nullptr); 805 auto maskFromPath = OH_ArkUI_RenderNodeUtils_CreateRenderNodeMaskOptionFromCommandPath(commandPath); 806 ASSERT_NE(maskFromPath, nullptr); 807 808 OH_ArkUI_RenderNodeUtils_DisposeRenderNodeMaskOption(maskFromPath); 809 OH_ArkUI_RenderNodeUtils_DisposeCommandPathOption(commandPath); 810 } 811 812 /** 813 * @tc.name: NativeRenderNodeTest132 814 * @tc.desc: Test SetRenderNodeMaskOptionFillColor and SetRenderNodeMaskOptionStrokeColor functions. 815 * @tc.type: FUNC 816 */ 817 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest132, TestSize.Level1) 818 { 819 auto rectShape = OH_ArkUI_RenderNodeUtils_CreateRectShapeOption(); 820 ASSERT_NE(rectShape, nullptr); 821 auto mask = OH_ArkUI_RenderNodeUtils_CreateRenderNodeMaskOptionFromRectShape(rectShape); 822 ASSERT_NE(mask, nullptr); 823 824 OH_ArkUI_RenderNodeUtils_SetRenderNodeMaskOptionFillColor(mask, 0xFF0000FF); 825 OH_ArkUI_RenderNodeUtils_SetRenderNodeMaskOptionStrokeColor(mask, 0xFF00FF00); 826 827 OH_ArkUI_RenderNodeUtils_DisposeRenderNodeMaskOption(mask); 828 OH_ArkUI_RenderNodeUtils_DisposeRectShapeOption(rectShape); 829 } 830 831 /** 832 * @tc.name: NativeRenderNodeTest133 833 * @tc.desc: Test SetRenderNodeMaskOptionStrokeWidth function. 834 * @tc.type: FUNC 835 */ 836 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest133, TestSize.Level1) 837 { 838 auto rectShape = OH_ArkUI_RenderNodeUtils_CreateRectShapeOption(); 839 ASSERT_NE(rectShape, nullptr); 840 auto mask = OH_ArkUI_RenderNodeUtils_CreateRenderNodeMaskOptionFromRectShape(rectShape); 841 ASSERT_NE(mask, nullptr); 842 843 OH_ArkUI_RenderNodeUtils_SetRenderNodeMaskOptionStrokeWidth(mask, 5.0f); 844 845 OH_ArkUI_RenderNodeUtils_DisposeRenderNodeMaskOption(mask); 846 OH_ArkUI_RenderNodeUtils_DisposeRectShapeOption(rectShape); 847 } 848 849 /** 850 * @tc.name: NativeRenderNodeTest134 851 * @tc.desc: Test CreateRenderNodeClipOptionFromRectShape and CreateRenderNodeClipOptionFromRoundRectShape functions. 852 * @tc.type: FUNC 853 */ 854 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest134, TestSize.Level1) 855 { 856 auto rectShape = OH_ArkUI_RenderNodeUtils_CreateRectShapeOption(); 857 ASSERT_NE(rectShape, nullptr); 858 auto clipFromRect = OH_ArkUI_RenderNodeUtils_CreateRenderNodeClipOptionFromRectShape(rectShape); 859 ASSERT_NE(clipFromRect, nullptr); 860 861 auto roundRectShape = OH_ArkUI_RenderNodeUtils_CreateRoundRectShapeOption(); 862 ASSERT_NE(roundRectShape, nullptr); 863 auto clipFromRoundRect = OH_ArkUI_RenderNodeUtils_CreateRenderNodeClipOptionFromRoundRectShape(roundRectShape); 864 ASSERT_NE(clipFromRoundRect, nullptr); 865 866 OH_ArkUI_RenderNodeUtils_DisposeRenderNodeClipOption(clipFromRect); 867 OH_ArkUI_RenderNodeUtils_DisposeRenderNodeClipOption(clipFromRoundRect); 868 OH_ArkUI_RenderNodeUtils_DisposeRectShapeOption(rectShape); 869 OH_ArkUI_RenderNodeUtils_DisposeRoundRectShapeOption(roundRectShape); 870 } 871 872 /** 873 * @tc.name: NativeRenderNodeTest135 874 * @tc.desc: Test CreateRenderNodeClipOptionFromCircleShape and CreateRenderNodeClipOptionFromOvalShape functions. 875 * @tc.type: FUNC 876 */ 877 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest135, TestSize.Level1) 878 { 879 auto circleShape = OH_ArkUI_RenderNodeUtils_CreateCircleShapeOption(); 880 ASSERT_NE(circleShape, nullptr); 881 auto clipFromCircle = OH_ArkUI_RenderNodeUtils_CreateRenderNodeClipOptionFromCircleShape(circleShape); 882 ASSERT_NE(clipFromCircle, nullptr); 883 884 auto ovalShape = OH_ArkUI_RenderNodeUtils_CreateRectShapeOption(); 885 ASSERT_NE(ovalShape, nullptr); 886 auto clipFromOval = OH_ArkUI_RenderNodeUtils_CreateRenderNodeClipOptionFromOvalShape(ovalShape); 887 ASSERT_NE(clipFromOval, nullptr); 888 889 OH_ArkUI_RenderNodeUtils_DisposeRenderNodeClipOption(clipFromCircle); 890 OH_ArkUI_RenderNodeUtils_DisposeRenderNodeClipOption(clipFromOval); 891 OH_ArkUI_RenderNodeUtils_DisposeCircleShapeOption(circleShape); 892 OH_ArkUI_RenderNodeUtils_DisposeRectShapeOption(ovalShape); 893 } 894 895 /** 896 * @tc.name: NativeRenderNodeTest136 897 * @tc.desc: Test CreateRenderNodeClipOptionFromCommandPath and DisposeRenderNodeClipOption functions. 898 * @tc.type: FUNC 899 */ 900 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest136, TestSize.Level1) 901 { 902 auto commandPath = OH_ArkUI_RenderNodeUtils_CreateCommandPathOption(); 903 ASSERT_NE(commandPath, nullptr); 904 auto clipFromPath = OH_ArkUI_RenderNodeUtils_CreateRenderNodeClipOptionFromCommandPath(commandPath); 905 ASSERT_NE(clipFromPath, nullptr); 906 907 OH_ArkUI_RenderNodeUtils_DisposeRenderNodeClipOption(clipFromPath); 908 OH_ArkUI_RenderNodeUtils_DisposeCommandPathOption(commandPath); 909 } 910 911 /** 912 * @tc.name: NativeRenderNodeTest137 913 * @tc.desc: Test SetMask function. 914 * @tc.type: FUNC 915 */ 916 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest137, TestSize.Level1) 917 { 918 auto renderNode = OH_ArkUI_RenderNodeUtils_CreateNode(); 919 ASSERT_NE(renderNode, nullptr); 920 921 auto rectShape = OH_ArkUI_RenderNodeUtils_CreateRectShapeOption(); 922 ASSERT_NE(rectShape, nullptr); 923 OH_ArkUI_RenderNodeUtils_SetRectShapeOptionEdgeValue(rectShape, 100.0f, 200.0f, 200.0f, 100.0f); 924 925 auto maskOption = OH_ArkUI_RenderNodeUtils_CreateRenderNodeMaskOptionFromRectShape(rectShape); 926 ASSERT_NE(maskOption, nullptr); 927 OH_ArkUI_RenderNodeUtils_SetRenderNodeMaskOptionFillColor(maskOption, 0xFF0000FF); 928 OH_ArkUI_RenderNodeUtils_SetRenderNodeMaskOptionStrokeColor(maskOption, 0xFF00FF00); 929 OH_ArkUI_RenderNodeUtils_SetRenderNodeMaskOptionStrokeWidth(maskOption, 2.0f); 930 931 auto result = OH_ArkUI_RenderNodeUtils_SetMask(renderNode, maskOption); 932 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 933 934 OH_ArkUI_RenderNodeUtils_DisposeRenderNodeMaskOption(maskOption); 935 OH_ArkUI_RenderNodeUtils_DisposeRectShapeOption(rectShape); 936 OH_ArkUI_RenderNodeUtils_DisposeNode(renderNode); 937 } 938 939 /** 940 * @tc.name: NativeRenderNodeTest138 941 * @tc.desc: Test SetClip function. 942 * @tc.type: FUNC 943 */ 944 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest138, TestSize.Level1) 945 { 946 auto renderNode = OH_ArkUI_RenderNodeUtils_CreateNode(); 947 ASSERT_NE(renderNode, nullptr); 948 949 auto circleShape = OH_ArkUI_RenderNodeUtils_CreateCircleShapeOption(); 950 ASSERT_NE(circleShape, nullptr); 951 OH_ArkUI_RenderNodeUtils_SetCircleShapeOptionCenterX(circleShape, 50.0f); 952 OH_ArkUI_RenderNodeUtils_SetCircleShapeOptionCenterY(circleShape, 50.0f); 953 OH_ArkUI_RenderNodeUtils_SetCircleShapeOptionRadius(circleShape, 30.0f); 954 auto result = OH_ArkUI_RenderNodeUtils_SetClip(renderNode, nullptr); 955 ASSERT_EQ(result, ERROR_CODE_PARAM_INVALID); 956 957 auto clipOption = OH_ArkUI_RenderNodeUtils_CreateRenderNodeClipOptionFromCircleShape(circleShape); 958 ASSERT_NE(clipOption, nullptr); 959 960 result = OH_ArkUI_RenderNodeUtils_SetClip(renderNode, clipOption); 961 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 962 963 OH_ArkUI_RenderNodeUtils_DisposeRenderNodeClipOption(clipOption); 964 OH_ArkUI_RenderNodeUtils_DisposeCircleShapeOption(circleShape); 965 OH_ArkUI_RenderNodeUtils_DisposeNode(renderNode); 966 } 967 968 /** 969 * @tc.name: NativeRenderNodeTest201 970 * @tc.desc: Test renderNode function. 971 * @tc.type: FUNC 972 */ 973 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest201, TestSize.Level1) 974 { 975 auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>( 976 OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1")); 977 auto rootCustomNode = nodeAPI->createNode(ARKUI_NODE_CUSTOM); 978 ASSERT_NE(rootCustomNode, nullptr); 979 auto rootRenderNode = OH_ArkUI_RenderNodeUtils_CreateNode(); 980 ASSERT_NE(rootRenderNode, nullptr); 981 auto result = OH_ArkUI_RenderNodeUtils_AddRenderNode(rootCustomNode, rootRenderNode); 982 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 983 984 ArkUI_NodeBorderStyleOption* borderStyle = OH_ArkUI_RenderNodeUtils_CreateNodeBorderStyleOption(); 985 ASSERT_NE(borderStyle, nullptr); 986 result = OH_ArkUI_RenderNodeUtils_SetBorderStyle(rootRenderNode, borderStyle); 987 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 988 OH_ArkUI_RenderNodeUtils_DisposeNodeBorderStyleOption(borderStyle); 989 990 ArkUI_NodeBorderStyleOption* borderStyle1 = OH_ArkUI_RenderNodeUtils_CreateNodeBorderStyleOption(); 991 ASSERT_NE(borderStyle1, nullptr); 992 result = OH_ArkUI_RenderNodeUtils_GetBorderStyle(rootRenderNode, &borderStyle1); 993 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 994 ASSERT_EQ(borderStyle1->leftStyle, ArkUI_BorderStyle::ARKUI_BORDER_STYLE_SOLID); 995 ASSERT_EQ(borderStyle1->rightStyle, ArkUI_BorderStyle::ARKUI_BORDER_STYLE_SOLID); 996 ASSERT_EQ(borderStyle1->topStyle, ArkUI_BorderStyle::ARKUI_BORDER_STYLE_SOLID); 997 ASSERT_EQ(borderStyle1->bottomStyle, ArkUI_BorderStyle::ARKUI_BORDER_STYLE_SOLID); 998 OH_ArkUI_RenderNodeUtils_DisposeNodeBorderStyleOption(borderStyle1); 999 } 1000 1001 /** 1002 * @tc.name: NativeRenderNodeTest202 1003 * @tc.desc: Test renderNode function. 1004 * @tc.type: FUNC 1005 */ 1006 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest202, TestSize.Level1) 1007 { 1008 auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>( 1009 OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1")); 1010 auto rootCustomNode = nodeAPI->createNode(ARKUI_NODE_CUSTOM); 1011 ASSERT_NE(rootCustomNode, nullptr); 1012 auto rootRenderNode = OH_ArkUI_RenderNodeUtils_CreateNode(); 1013 ASSERT_NE(rootRenderNode, nullptr); 1014 auto result = OH_ArkUI_RenderNodeUtils_AddRenderNode(rootCustomNode, rootRenderNode); 1015 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1016 1017 ArkUI_NodeBorderWidthOption* borderWidth = OH_ArkUI_RenderNodeUtils_CreateNodeBorderWidthOption(); 1018 ASSERT_NE(borderWidth, nullptr); 1019 result = OH_ArkUI_RenderNodeUtils_SetBorderWidth(rootRenderNode, borderWidth); 1020 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1021 OH_ArkUI_RenderNodeUtils_DisposeNodeBorderWidthOption(borderWidth); 1022 1023 ArkUI_NodeBorderWidthOption* borderWidth1 = OH_ArkUI_RenderNodeUtils_CreateNodeBorderWidthOption(); 1024 ASSERT_NE(borderWidth1, nullptr); 1025 result = OH_ArkUI_RenderNodeUtils_GetBorderWidth(rootRenderNode, &borderWidth1); 1026 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1027 ASSERT_EQ(borderWidth1->leftWidth, 0.0f); 1028 ASSERT_EQ(borderWidth1->rightWidth, 0.0f); 1029 ASSERT_EQ(borderWidth1->topWidth, 0.0f); 1030 ASSERT_EQ(borderWidth1->bottomWidth, 0.0f); 1031 OH_ArkUI_RenderNodeUtils_DisposeNodeBorderWidthOption(borderWidth1); 1032 } 1033 1034 /** 1035 * @tc.name: NativeRenderNodeTest203 1036 * @tc.desc: Test renderNode function. 1037 * @tc.type: FUNC 1038 */ 1039 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest203, TestSize.Level1) 1040 { 1041 auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>( 1042 OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1")); 1043 auto rootCustomNode = nodeAPI->createNode(ARKUI_NODE_CUSTOM); 1044 ASSERT_NE(rootCustomNode, nullptr); 1045 auto rootRenderNode = OH_ArkUI_RenderNodeUtils_CreateNode(); 1046 ASSERT_NE(rootRenderNode, nullptr); 1047 auto result = OH_ArkUI_RenderNodeUtils_AddRenderNode(rootCustomNode, rootRenderNode); 1048 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1049 1050 ArkUI_NodeBorderColorOption* borderColor = OH_ArkUI_RenderNodeUtils_CreateNodeBorderColorOption(); 1051 ASSERT_NE(borderColor, nullptr); 1052 result = OH_ArkUI_RenderNodeUtils_SetBorderColor(rootRenderNode, borderColor); 1053 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1054 OH_ArkUI_RenderNodeUtils_DisposeNodeBorderColorOption(borderColor); 1055 1056 ArkUI_NodeBorderColorOption* borderColor1 = OH_ArkUI_RenderNodeUtils_CreateNodeBorderColorOption(); 1057 ASSERT_NE(borderColor1, nullptr); 1058 result = OH_ArkUI_RenderNodeUtils_GetBorderColor(rootRenderNode, &borderColor1); 1059 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1060 ASSERT_EQ(borderColor1->leftColor, 0); 1061 ASSERT_EQ(borderColor1->rightColor, 0); 1062 ASSERT_EQ(borderColor1->topColor, 0); 1063 ASSERT_EQ(borderColor1->bottomColor, 0); 1064 OH_ArkUI_RenderNodeUtils_DisposeNodeBorderColorOption(borderColor1); 1065 } 1066 1067 /** 1068 * @tc.name: NativeRenderNodeTest204 1069 * @tc.desc: Test renderNode function. 1070 * @tc.type: FUNC 1071 */ 1072 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest204, TestSize.Level1) 1073 { 1074 auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>( 1075 OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1")); 1076 auto rootCustomNode = nodeAPI->createNode(ARKUI_NODE_CUSTOM); 1077 ASSERT_NE(rootCustomNode, nullptr); 1078 auto rootRenderNode = OH_ArkUI_RenderNodeUtils_CreateNode(); 1079 ASSERT_NE(rootRenderNode, nullptr); 1080 auto result = OH_ArkUI_RenderNodeUtils_AddRenderNode(rootCustomNode, rootRenderNode); 1081 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1082 1083 ArkUI_NodeBorderRadiusOption* borderRadius = OH_ArkUI_RenderNodeUtils_CreateNodeBorderRadiusOption(); 1084 ASSERT_NE(borderRadius, nullptr); 1085 result = OH_ArkUI_RenderNodeUtils_SetBorderRadius(rootRenderNode, borderRadius); 1086 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1087 OH_ArkUI_RenderNodeUtils_DisposeNodeBorderRadiusOption(borderRadius); 1088 1089 ArkUI_NodeBorderRadiusOption* borderRadius1 = OH_ArkUI_RenderNodeUtils_CreateNodeBorderRadiusOption(); 1090 ASSERT_NE(borderRadius1, nullptr); 1091 result = OH_ArkUI_RenderNodeUtils_GetBorderRadius(rootRenderNode, &borderRadius1); 1092 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1093 ASSERT_EQ(borderRadius1->topLeftRadius, 0.0f); 1094 ASSERT_EQ(borderRadius1->topRightRadius, 0.0f); 1095 ASSERT_EQ(borderRadius1->bottomLeftRadius, 0.0f); 1096 ASSERT_EQ(borderRadius1->bottomRightRadius, 0.0f); 1097 OH_ArkUI_RenderNodeUtils_DisposeNodeBorderRadiusOption(borderRadius1); 1098 } 1099 1100 /** 1101 * @tc.name: NativeRenderNodeTest205 1102 * @tc.desc: Test renderNode function. 1103 * @tc.type: FUNC 1104 */ 1105 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest205, TestSize.Level1) 1106 { 1107 auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>( 1108 OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1")); 1109 auto rootCustomNode = nodeAPI->createNode(ARKUI_NODE_CUSTOM); 1110 ASSERT_NE(rootCustomNode, nullptr); 1111 auto rootRenderNode = OH_ArkUI_RenderNodeUtils_CreateNode(); 1112 ASSERT_NE(rootRenderNode, nullptr); 1113 auto result = OH_ArkUI_RenderNodeUtils_AddRenderNode(rootCustomNode, rootRenderNode); 1114 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1115 1116 result = OH_ArkUI_RenderNodeUtils_SetMarkNodeGroup(rootRenderNode, true); 1117 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1118 } 1119 1120 /** 1121 * @tc.name: NativeRenderNodeTest206 1122 * @tc.desc: Test renderNode function. 1123 * @tc.type: FUNC 1124 */ 1125 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest206, TestSize.Level1) 1126 { 1127 auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>( 1128 OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1")); 1129 auto rootCustomNode = nodeAPI->createNode(ARKUI_NODE_CUSTOM); 1130 ASSERT_NE(rootCustomNode, nullptr); 1131 auto rootRenderNode = OH_ArkUI_RenderNodeUtils_CreateNode(); 1132 ASSERT_NE(rootRenderNode, nullptr); 1133 auto result = OH_ArkUI_RenderNodeUtils_AddRenderNode(rootCustomNode, rootRenderNode); 1134 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1135 1136 result = OH_ArkUI_RenderNodeUtils_SetBounds(rootRenderNode, 50, 50, 100, 100); // set x, y=50, width, height=100 1137 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1138 1139 int32_t x = 0; 1140 int32_t y = 0; 1141 int32_t width = 0; 1142 int32_t height = 0; 1143 result = OH_ArkUI_RenderNodeUtils_GetBounds(rootRenderNode, &x, &y, &width, &height); 1144 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1145 ASSERT_EQ(x, 50); // expect x equals to 50 1146 ASSERT_EQ(y, 50); // expect y equals to 50 1147 ASSERT_EQ(width, 100); // expect width equals to 100 1148 ASSERT_EQ(height, 100); // expect height equals to 100 1149 } 1150 1151 /** 1152 * @tc.name: NativeRenderNodeTest207 1153 * @tc.desc: Test renderNode function. 1154 * @tc.type: FUNC 1155 */ 1156 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest207, TestSize.Level1) 1157 { 1158 auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>( 1159 OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1")); 1160 auto rootCustomNode = nodeAPI->createNode(ARKUI_NODE_CUSTOM); 1161 ASSERT_NE(rootCustomNode, nullptr); 1162 auto rootRenderNode = OH_ArkUI_RenderNodeUtils_CreateNode(); 1163 ASSERT_NE(rootRenderNode, nullptr); 1164 auto result = OH_ArkUI_RenderNodeUtils_AddRenderNode(rootCustomNode, rootRenderNode); 1165 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1166 1167 result = OH_ArkUI_RenderNodeUtils_SetDrawRegion(rootRenderNode, 50, 50, 100, 100); // set x, y=50, w, h=100 1168 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1169 } 1170 1171 /** 1172 * @tc.name: NativeRenderNodeTest208 1173 * @tc.desc: Test renderNode function. 1174 * @tc.type: FUNC 1175 */ 1176 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest208, TestSize.Level1) 1177 { 1178 auto nodeAPI = reinterpret_cast<ArkUI_NativeNodeAPI_1*>( 1179 OH_ArkUI_QueryModuleInterfaceByName(ARKUI_NATIVE_NODE, "ArkUI_NativeNodeAPI_1")); 1180 auto rootCustomNode = nodeAPI->createNode(ARKUI_NODE_CUSTOM); 1181 ASSERT_NE(rootCustomNode, nullptr); 1182 auto rootRenderNode = OH_ArkUI_RenderNodeUtils_CreateNode(); 1183 ASSERT_NE(rootRenderNode, nullptr); 1184 auto result = OH_ArkUI_RenderNodeUtils_AddRenderNode(rootCustomNode, rootRenderNode); 1185 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1186 1187 ArkUI_RenderContentModifierHandle modifier = OH_ArkUI_RenderNodeUtils_CreateContentModifier(); 1188 ASSERT_NE(modifier, nullptr); 1189 result = OH_ArkUI_RenderNodeUtils_AttachContentModifier(rootRenderNode, modifier); 1190 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1191 OH_ArkUI_RenderNodeUtils_DisposeContentModifier(modifier); 1192 } 1193 1194 /** 1195 * @tc.name: NativeRenderNodeTest209 1196 * @tc.desc: Test renderNode function. 1197 * @tc.type: FUNC 1198 */ 1199 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest209, TestSize.Level1) 1200 { 1201 ArkUI_RenderContentModifierHandle modifier = OH_ArkUI_RenderNodeUtils_CreateContentModifier(); 1202 ASSERT_NE(modifier, nullptr); 1203 1204 ArkUI_FloatPropertyHandle property = OH_ArkUI_RenderNodeUtils_CreateFloatProperty(0.5f); // set value=0.5f 1205 ASSERT_NE(property, nullptr); 1206 float value = 0.0f; 1207 auto result = OH_ArkUI_RenderNodeUtils_GetFloatPropertyValue(property, &value); 1208 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1209 ASSERT_EQ(value, 0.5f); // expect value equals to 0.5f 1210 result = OH_ArkUI_RenderNodeUtils_SetFloatPropertyValue(property, 1.5f); // set value=1.5f 1211 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1212 result = OH_ArkUI_RenderNodeUtils_GetFloatPropertyValue(property, &value); 1213 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1214 ASSERT_EQ(value, 1.5f); // expect value equals to 1.5f 1215 1216 result = OH_ArkUI_RenderNodeUtils_AttachFloatProperty(modifier, property); 1217 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1218 OH_ArkUI_RenderNodeUtils_DisposeFloatProperty(property); 1219 OH_ArkUI_RenderNodeUtils_DisposeContentModifier(modifier); 1220 } 1221 1222 /** 1223 * @tc.name: NativeRenderNodeTest210 1224 * @tc.desc: Test renderNode function. 1225 * @tc.type: FUNC 1226 */ 1227 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest210, TestSize.Level1) 1228 { 1229 ArkUI_RenderContentModifierHandle modifier = OH_ArkUI_RenderNodeUtils_CreateContentModifier(); 1230 ASSERT_NE(modifier, nullptr); 1231 1232 ArkUI_Vector2PropertyHandle property = OH_ArkUI_RenderNodeUtils_CreateVector2Property(0.5f, 0.5f); // set x, y=0.5f 1233 ASSERT_NE(property, nullptr); 1234 float x = 0.0f; 1235 float y = 0.0f; 1236 auto result = OH_ArkUI_RenderNodeUtils_GetVector2PropertyValue(property, &x, &y); 1237 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1238 ASSERT_EQ(x, 0.5f); // expect x equals to 0.5f 1239 ASSERT_EQ(y, 0.5f); // expect y equals to 0.5f 1240 result = OH_ArkUI_RenderNodeUtils_SetVector2PropertyValue(property, 1.5f, 1.5f); // set x, y=1.5f 1241 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1242 result = OH_ArkUI_RenderNodeUtils_GetVector2PropertyValue(property, &x, &y); 1243 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1244 ASSERT_EQ(x, 1.5f); // expect x equals to 1.5f 1245 ASSERT_EQ(y, 1.5f); // expect y equals to 1.5f 1246 1247 result = OH_ArkUI_RenderNodeUtils_AttachVector2Property(modifier, property); 1248 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1249 OH_ArkUI_RenderNodeUtils_DisposeVector2Property(property); 1250 OH_ArkUI_RenderNodeUtils_DisposeContentModifier(modifier); 1251 } 1252 1253 /** 1254 * @tc.name: NativeRenderNodeTest211 1255 * @tc.desc: Test renderNode function. 1256 * @tc.type: FUNC 1257 */ 1258 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest211, TestSize.Level1) 1259 { 1260 ArkUI_RenderContentModifierHandle modifier = OH_ArkUI_RenderNodeUtils_CreateContentModifier(); 1261 ASSERT_NE(modifier, nullptr); 1262 1263 ArkUI_ColorPropertyHandle property = 1264 OH_ArkUI_RenderNodeUtils_CreateColorProperty(0xFF0000FF); // set value=0xFF0000FF 1265 ASSERT_NE(property, nullptr); 1266 uint32_t value = 0; 1267 auto result = OH_ArkUI_RenderNodeUtils_GetColorPropertyValue(property, &value); 1268 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1269 result = OH_ArkUI_RenderNodeUtils_SetColorPropertyValue(property, 0xFF00FF00); // set value=0xFF00FF00 1270 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1271 result = OH_ArkUI_RenderNodeUtils_GetColorPropertyValue(property, &value); 1272 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1273 1274 result = OH_ArkUI_RenderNodeUtils_AttachColorProperty(modifier, property); 1275 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1276 OH_ArkUI_RenderNodeUtils_DisposeColorProperty(property); 1277 OH_ArkUI_RenderNodeUtils_DisposeContentModifier(modifier); 1278 } 1279 1280 /** 1281 * @tc.name: NativeRenderNodeTest212 1282 * @tc.desc: Test renderNode function. 1283 * @tc.type: FUNC 1284 */ 1285 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest212, TestSize.Level1) 1286 { 1287 ArkUI_RenderContentModifierHandle modifier = OH_ArkUI_RenderNodeUtils_CreateContentModifier(); 1288 ASSERT_NE(modifier, nullptr); 1289 1290 ArkUI_FloatAnimatablePropertyHandle property = 1291 OH_ArkUI_RenderNodeUtils_CreateFloatAnimatableProperty(0.5f); // set value=0.5f 1292 ASSERT_NE(property, nullptr); 1293 float value = 0.0f; 1294 auto result = OH_ArkUI_RenderNodeUtils_GetFloatAnimatablePropertyValue(property, &value); 1295 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1296 ASSERT_EQ(value, 0.5f); // expect value equals to 0.5f 1297 result = OH_ArkUI_RenderNodeUtils_SetFloatAnimatablePropertyValue(property, 1.5f); // set value=1.5f 1298 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1299 result = OH_ArkUI_RenderNodeUtils_GetFloatAnimatablePropertyValue(property, &value); 1300 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1301 ASSERT_EQ(value, 1.5f); // expect value equals to 1.5f 1302 1303 result = OH_ArkUI_RenderNodeUtils_AttachFloatAnimatableProperty(modifier, property); 1304 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1305 OH_ArkUI_RenderNodeUtils_DisposeFloatAnimatableProperty(property); 1306 OH_ArkUI_RenderNodeUtils_DisposeContentModifier(modifier); 1307 } 1308 1309 /** 1310 * @tc.name: NativeRenderNodeTest213 1311 * @tc.desc: Test renderNode function. 1312 * @tc.type: FUNC 1313 */ 1314 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest213, TestSize.Level1) 1315 { 1316 ArkUI_RenderContentModifierHandle modifier = OH_ArkUI_RenderNodeUtils_CreateContentModifier(); 1317 ASSERT_NE(modifier, nullptr); 1318 1319 ArkUI_Vector2AnimatablePropertyHandle property = 1320 OH_ArkUI_RenderNodeUtils_CreateVector2AnimatableProperty(0.5f, 0.5f); // set x, y=0.5f 1321 ASSERT_NE(property, nullptr); 1322 float x = 0.0f; 1323 float y = 0.0f; 1324 auto result = OH_ArkUI_RenderNodeUtils_GetVector2AnimatablePropertyValue(property, &x, &y); 1325 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1326 ASSERT_EQ(x, 0.5f); // expect x equals to 0.5f 1327 ASSERT_EQ(y, 0.5f); // expect y equals to 0.5f 1328 result = OH_ArkUI_RenderNodeUtils_SetVector2AnimatablePropertyValue(property, 1.5f, 1.5f); // set x, y=1.5f 1329 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1330 result = OH_ArkUI_RenderNodeUtils_GetVector2AnimatablePropertyValue(property, &x, &y); 1331 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1332 ASSERT_EQ(x, 1.5f); // expect x equals to 1.5f 1333 ASSERT_EQ(y, 1.5f); // expect y equals to 1.5f 1334 1335 result = OH_ArkUI_RenderNodeUtils_AttachVector2AnimatableProperty(modifier, property); 1336 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1337 OH_ArkUI_RenderNodeUtils_DisposeVector2AnimatableProperty(property); 1338 OH_ArkUI_RenderNodeUtils_DisposeContentModifier(modifier); 1339 } 1340 1341 /** 1342 * @tc.name: NativeRenderNodeTest214 1343 * @tc.desc: Test renderNode function. 1344 * @tc.type: FUNC 1345 */ 1346 HWTEST_F(NativeRenderNodeTest, NativeRenderNodeTest214, TestSize.Level1) 1347 { 1348 ArkUI_RenderContentModifierHandle modifier = OH_ArkUI_RenderNodeUtils_CreateContentModifier(); 1349 ASSERT_NE(modifier, nullptr); 1350 1351 ArkUI_ColorAnimatablePropertyHandle property = 1352 OH_ArkUI_RenderNodeUtils_CreateColorAnimatableProperty(0xFF0000FF); // set value=0xFF0000FF 1353 ASSERT_NE(property, nullptr); 1354 uint32_t value = 0; 1355 auto result = OH_ArkUI_RenderNodeUtils_GetColorAnimatablePropertyValue(property, &value); 1356 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1357 result = OH_ArkUI_RenderNodeUtils_SetColorAnimatablePropertyValue(property, 0xFF00FF00); // set value=0xFF00FF00 1358 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1359 result = OH_ArkUI_RenderNodeUtils_GetColorAnimatablePropertyValue(property, &value); 1360 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1361 1362 result = OH_ArkUI_RenderNodeUtils_AttachColorAnimatableProperty(modifier, property); 1363 ASSERT_EQ(result, ARKUI_ERROR_CODE_NO_ERROR); 1364 OH_ArkUI_RenderNodeUtils_DisposeColorAnimatableProperty(property); 1365 OH_ArkUI_RenderNodeUtils_DisposeContentModifier(modifier); 1366 } 1367 1368 } // namespace OHOS::Ace