From 4dcbb03f1f5db1cb9abd8433711bda27d0d2df1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BD=9C=E7=A7=8B=E5=AE=8F?= Date: Sat, 13 Sep 2025 15:16:13 +0800 Subject: [PATCH] =?UTF-8?q?bgImagePositionCapi=E5=8F=82=E6=95=B0=E8=B6=85?= =?UTF-8?q?=E8=BF=87=E8=8C=83=E5=9B=B4=E8=BF=94=E5=9B=9E=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 潜秋宏 Change-Id: Ibf7d0f3703eca497358d9c9aa95f950e16e8fc4a --- interfaces/native/node/style_modifier.cpp | 12 ++++++++-- .../interfaces/native_node_napi_test.cpp | 24 +++++++------------ 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/interfaces/native/node/style_modifier.cpp b/interfaces/native/node/style_modifier.cpp index 7b7ac11b10b..44d9b31a17b 100644 --- a/interfaces/native/node/style_modifier.cpp +++ b/interfaces/native/node/style_modifier.cpp @@ -2881,11 +2881,19 @@ int32_t SetBackgroundImagePosition(ArkUI_NodeHandle node, const ArkUI_AttributeI ArkUI_Int32 alignMode[] = { ArkUI_Alignment::ARKUI_ALIGNMENT_TOP_START, ArkUI_Direction::ARKUI_DIRECTION_AUTO }; auto isAlign = false; if (actualSize >= 3) { + int32_t alignment = item->value[NUM_2].i32; + if (alignment < 0 || alignment > 8) { + return ERROR_CODE_PARAM_INVALID; + } isAlign = true; - alignMode[0] = item->value[NUM_2].i32; + alignMode[0] = alignment; } if (actualSize == 4) { - alignMode[1] = item->value[NUM_3].i32; + int32_t direction = item->value[NUM_3].i32; + if (direction < 0 || (direction > 1 && direction != 3)) { + return ERROR_CODE_PARAM_INVALID; + } + alignMode[1] = direction; } fullImpl->getNodeModifiers()->getCommonModifier()->setBackgroundImagePosition( node->uiNodeHandle, values, units, alignMode, isAlign, actualSize, nullptr, nullptr); diff --git a/test/unittest/interfaces/native_node_napi_test.cpp b/test/unittest/interfaces/native_node_napi_test.cpp index 148ef3b3242..3c2f6ead07c 100644 --- a/test/unittest/interfaces/native_node_napi_test.cpp +++ b/test/unittest/interfaces/native_node_napi_test.cpp @@ -731,17 +731,13 @@ HWTEST_F(NativeNodeNapiTest, NativeBackgroundImagePositionTest003, TestSize.Leve nodeAPI->resetAttribute(row, NODE_BACKGROUND_IMAGE_POSITION); value[2].i32 = -1; ArkUI_AttributeItem backgroundImagePosition2 = { .value = value, .size = 3 }; - nodeAPI->setAttribute(row, NODE_BACKGROUND_IMAGE_POSITION, &backgroundImagePosition2); - auto ret2 = nodeAPI->getAttribute(row, NODE_BACKGROUND_IMAGE_POSITION); - EXPECT_EQ(ret2->value[2].i32, 0); - EXPECT_EQ(ret2->value[3].i32, 3); + auto ret2 = nodeAPI->setAttribute(row, NODE_BACKGROUND_IMAGE_POSITION, &backgroundImagePosition2); + EXPECT_EQ(ret2, ARKUI_ERROR_CODE_PARAM_INVALID); nodeAPI->resetAttribute(row, NODE_BACKGROUND_IMAGE_POSITION); value[2].i32 = 9; ArkUI_AttributeItem backgroundImagePosition3 = { .value = value, .size = 3 }; - nodeAPI->setAttribute(row, NODE_BACKGROUND_IMAGE_POSITION, &backgroundImagePosition3); - auto ret3 = nodeAPI->getAttribute(row, NODE_BACKGROUND_IMAGE_POSITION); - EXPECT_EQ(ret3->value[2].i32, 0); - EXPECT_EQ(ret3->value[3].i32, 3); + auto ret3 = nodeAPI->setAttribute(row, NODE_BACKGROUND_IMAGE_POSITION, &backgroundImagePosition3); + EXPECT_EQ(ret3, ARKUI_ERROR_CODE_PARAM_INVALID); } /** @@ -792,15 +788,11 @@ HWTEST_F(NativeNodeNapiTest, NativeBackgroundImagePositionTest004, TestSize.Leve nodeAPI->resetAttribute(row, NODE_BACKGROUND_IMAGE_POSITION); value[3].i32 = -1; ArkUI_AttributeItem backgroundImagePosition2 = { .value = value, .size = 4 }; - nodeAPI->setAttribute(row, NODE_BACKGROUND_IMAGE_POSITION, &backgroundImagePosition2); - auto ret2 = nodeAPI->getAttribute(row, NODE_BACKGROUND_IMAGE_POSITION); - EXPECT_EQ(ret2->value[2].i32, 0); - EXPECT_EQ(ret2->value[3].i32, 3); + auto ret2 = nodeAPI->setAttribute(row, NODE_BACKGROUND_IMAGE_POSITION, &backgroundImagePosition2); + EXPECT_EQ(ret2, ARKUI_ERROR_CODE_PARAM_INVALID); nodeAPI->resetAttribute(row, NODE_BACKGROUND_IMAGE_POSITION); value[3].i32 = 2; ArkUI_AttributeItem backgroundImagePosition3 = { .value = value, .size = 4 }; - nodeAPI->setAttribute(row, NODE_BACKGROUND_IMAGE_POSITION, &backgroundImagePosition3); - auto ret3 = nodeAPI->getAttribute(row, NODE_BACKGROUND_IMAGE_POSITION); - EXPECT_EQ(ret3->value[2].i32, 0); - EXPECT_EQ(ret3->value[3].i32, 3); + auto ret3 = nodeAPI->setAttribute(row, NODE_BACKGROUND_IMAGE_POSITION, &backgroundImagePosition3); + EXPECT_EQ(ret3, ARKUI_ERROR_CODE_PARAM_INVALID); } \ No newline at end of file -- Gitee