diff --git a/test/unittest/core/pattern/xcomponent/xcomponent_property_test_ng.cpp b/test/unittest/core/pattern/xcomponent/xcomponent_property_test_ng.cpp index 42c2ec14c6bb0f028d3af7c76e798fa25437b5d4..201b9a47be195dcf700adfa46a15ee2f6ed80bac 100644 --- a/test/unittest/core/pattern/xcomponent/xcomponent_property_test_ng.cpp +++ b/test/unittest/core/pattern/xcomponent/xcomponent_property_test_ng.cpp @@ -1995,4 +1995,181 @@ HWTEST_F(XComponentPropertyTestNg, XComponentModelNGTest050, TestSize.Level1) xComponent.SetRenderFit(RENDER_FIT); EXPECT_EQ(pattern->handlingSurfaceRenderContext_, nullptr); } + +/** + * @tc.name: XComponentModelNGTest051 + * @tc.desc: Test XComponentModelNG SetRenderFit for FrameNode, type = XComponentType::SURFACE + * @tc.type: FUNC + */ +HWTEST_F(XComponentPropertyTestNg, XComponentModelNGTest051, TestSize.Level1) +{ + /** + * @tc.steps: step1. create xcomponent frameNode. + * case: type = XComponentType::SURFACE + * @tc.expected: xcomponent frameNode create successfully + */ + ArkUI_Int32 nodeId = 0; + auto frameNode = XComponentModelNG::CreateFrameNode( + nodeId, XCOMPONENT_ID, XCOMPONENT_SURFACE_TYPE_VALUE, XCOMPONENT_LIBRARY_NAME); + EXPECT_TRUE(frameNode != nullptr && frameNode->GetTag() == V2::XCOMPONENT_ETS_TAG); + + /** + * @tc.steps: step2. call SetRenderFit for xcomponent framenode. + * case: renderFit = RenderFit::BOTTOM_RIGHT + * @tc.expected: handlingSurfaceRenderContext_->SetRenderFit(renderFit) is called + */ + auto pattern = frameNode->GetPattern(); + ASSERT_TRUE(pattern); + EXPECT_CALL(*AceType::DynamicCast(pattern->handlingSurfaceRenderContext_), + SetRenderFit(RenderFit::BOTTOM_RIGHT)).WillOnce(Return()); + XComponentModelNG::SetRenderFit(frameNode.GetRawPtr(), RenderFit::BOTTOM_RIGHT); +} + +/** + * @tc.name: XComponentModelNGTest052 + * @tc.desc: Test XComponentModelNG SetRenderFit for FrameNode, type = XComponentType::TEXTURE + * @tc.type: FUNC + */ +HWTEST_F(XComponentPropertyTestNg, XComponentModelNGTest052, TestSize.Level1) +{ + /** + * @tc.steps: step1. create xcomponent framenode. + * case: type = XComponentType::TEXTURE + * @tc.expected: xcomponent frameNode create successfully + */ + ArkUI_Int32 nodeId = 0; + auto frameNode = XComponentModelNG::CreateFrameNode( + nodeId, XCOMPONENT_ID, XCOMPONENT_TEXTURE_TYPE_VALUE, XCOMPONENT_LIBRARY_NAME); + EXPECT_TRUE(frameNode != nullptr && frameNode->GetTag() == V2::XCOMPONENT_ETS_TAG); + + /** + * @tc.steps: step2. call SetRenderFit for xcomponent framenode. + * case: renderFit = RenderFit::BOTTOM_RIGHT + * @tc.expected: handlingSurfaceRenderContext_->SetRenderFit(renderFit) is not called + */ + auto pattern = frameNode->GetPattern(); + ASSERT_TRUE(pattern); + XComponentModelNG::SetRenderFit(frameNode.GetRawPtr(), RenderFit::BOTTOM_RIGHT); + EXPECT_EQ(pattern->handlingSurfaceRenderContext_, nullptr); +} + +/** + * @tc.name: XComponentModelNGTest053 + * @tc.desc: Test XComponentModelNG EnableSecure for FrameNode, type != XComponentType::SURFACE + * @tc.type: FUNC + */ +HWTEST_F(XComponentPropertyTestNg, XComponentModelNGTest053, TestSize.Level1) +{ + /** + * @tc.steps: step1. create xcomponent framenode. + * case: type = XComponentType::TEXTURE + * @tc.expected: xcomponent frameNode create successfully + */ + ArkUI_Int32 nodeId = 0; + auto frameNode = XComponentModelNG::CreateFrameNode( + nodeId, XCOMPONENT_ID, XCOMPONENT_TEXTURE_TYPE_VALUE, XCOMPONENT_LIBRARY_NAME); + EXPECT_TRUE(frameNode != nullptr && frameNode->GetTag() == V2::XCOMPONENT_ETS_TAG); + + /** + * @tc.steps: step2. call EnableSecure for xcomponent framenode. + * case: isSecure = true + * @tc.expected: renderContextForSurface_->SetSecurityLayer(isSecure) is not called + */ + auto pattern = frameNode->GetPattern(); + ASSERT_TRUE(pattern); + XComponentModelNG::EnableSecure(frameNode.GetRawPtr(), true); + EXPECT_EQ(pattern->renderContextForSurface_, nullptr); +} + +/** + * @tc.name: XComponentModelNGTest054 + * @tc.desc: Test XComponentModelNG EnableSecure for FrameNode, type = XComponentType::SURFACE + * @tc.type: FUNC + */ +HWTEST_F(XComponentPropertyTestNg, XComponentModelNGTest054, TestSize.Level1) +{ + /** + * @tc.steps: step1. create xcomponent framenode. + * case: type = XComponentType::SURFACE + * @tc.expected: xcomponent frameNode create successfully + */ + ArkUI_Int32 nodeId = 0; + auto frameNode = XComponentModelNG::CreateFrameNode( + nodeId, XCOMPONENT_ID, XCOMPONENT_SURFACE_TYPE_VALUE, XCOMPONENT_LIBRARY_NAME); + EXPECT_TRUE(frameNode != nullptr && frameNode->GetTag() == V2::XCOMPONENT_ETS_TAG); + + /** + * @tc.steps: step2. call EnableSecure for xcomponent framenode. + * case: isSecure = true + * @tc.expected: renderContextForSurface_->SetSecurityLayer(isSecure) is called + */ + auto pattern = frameNode->GetPattern(); + ASSERT_TRUE(pattern); + EXPECT_CALL(*AceType::DynamicCast(pattern->renderContextForSurface_), SetSecurityLayer(true)) + .WillOnce(Return()); + XComponentModelNG::EnableSecure(frameNode.GetRawPtr(), true); +} + +/** + * @tc.name: XComponentModelNGTest055 + * @tc.desc: Test XComponentModelNG EnableSecure, type = XComponentType::SURFACE + * @tc.type: FUNC + */ +HWTEST_F(XComponentPropertyTestNg, XComponentModelNGTest055, TestSize.Level1) +{ + /** + * @tc.steps: step1. create ComponentController. + * case: type = XComponentType::SURFACE + * @tc.expected: xcomponent frameNode create successfully + */ + auto xComponentController = std::make_shared(); + XComponentModelNG xComponent; + xComponent.Create(XCOMPONENT_ID, XCOMPONENT_SURFACE_TYPE_VALUE, XCOMPONENT_LIBRARY_NAME, xComponentController); + xComponent.SetSoPath(XCOMPONENT_SO_PATH); + + auto frameNode = AceType::Claim(ViewStackProcessor::GetInstance()->GetMainFrameNode()); + EXPECT_TRUE(frameNode != nullptr && frameNode->GetTag() == V2::XCOMPONENT_ETS_TAG); + + /** + * @tc.steps: step2. call EnableSecure. + * case: isSecure = true + * @tc.expected: renderContextForSurface_->SetSecurityLayer(isSecure) is called + */ + auto pattern = frameNode->GetPattern(); + ASSERT_TRUE(pattern); + EXPECT_CALL(*AceType::DynamicCast(pattern->renderContextForSurface_), SetSecurityLayer(true)) + .WillOnce(Return()); + xComponent.EnableSecure(true); +} + +/** + * @tc.name: XComponentModelNGTest056 + * @tc.desc: Test XComponentModelNG EnableSecure, type != XComponentType::SURFACE + * @tc.type: FUNC + */ +HWTEST_F(XComponentPropertyTestNg, XComponentModelNGTest056, TestSize.Level1) +{ + /** + * @tc.steps: step1. create ComponentController. + * case: type = XComponentType::TEXTURE + * @tc.expected: xcomponent frameNode create successfully + */ + auto xComponentController = std::make_shared(); + XComponentModelNG xComponent; + xComponent.Create(XCOMPONENT_ID, XCOMPONENT_TEXTURE_TYPE_VALUE, XCOMPONENT_LIBRARY_NAME, xComponentController); + xComponent.SetSoPath(XCOMPONENT_SO_PATH); + + auto frameNode = AceType::Claim(ViewStackProcessor::GetInstance()->GetMainFrameNode()); + EXPECT_TRUE(frameNode != nullptr && frameNode->GetTag() == V2::XCOMPONENT_ETS_TAG); + + /** + * @tc.steps: step2. call EnableSecure. + * case: isSecure = true + * @tc.expected: renderContextForSurface_->SetSecurityLayer(isSecure) is not called + */ + auto pattern = frameNode->GetPattern(); + ASSERT_TRUE(pattern); + xComponent.EnableSecure(true); + EXPECT_EQ(pattern->renderContextForSurface_, nullptr); +} } // namespace OHOS::Ace::NG diff --git a/test/unittest/core/pattern/xcomponent/xcomponent_test_ng.cpp b/test/unittest/core/pattern/xcomponent/xcomponent_test_ng.cpp index 924f3a2bcd11a1a6d3352b8c55a78973ad6651d4..aa17b1d640fcd13c258bdec97961e8e6f0b444bf 100644 --- a/test/unittest/core/pattern/xcomponent/xcomponent_test_ng.cpp +++ b/test/unittest/core/pattern/xcomponent/xcomponent_test_ng.cpp @@ -1362,4 +1362,72 @@ HWTEST_F(XComponentTestNg, XComponentSurfaceLifeCycleCallback, TestSize.Level1) pattern->OnDetachFromFrameNode(AceType::RawPtr(frameNode)); EXPECT_STREQ(SURFACE_ID.c_str(), onSurfaceDestroyedSurfaceId.c_str()); } + +/** + * @tc.name: XComponentCreateTypeNodeTest001 + * @tc.desc: Test create typeNode xcomponent, type = XComponentType::SURFACE + * @tc.type: FUNC + */ +HWTEST_F(XComponentTestNg, XComponentCreateTypeNodeTest001, TestSize.Level1) +{ + /** + * @tc.steps: step1. create typeNode xcomponent. + * case: type = XComponentType::SURFACE + * @tc.expected: xcomponent frameNode create successfully + */ + auto xComponentController = std::make_shared(); + ArkUI_XComponent_Params xcParams = { + .id = XCOMPONENT_ID, + .type = XCOMPONENT_SURFACE_TYPE_VALUE, + .libraryName = XCOMPONENT_LIBRARY_NAME, + .controller = xComponentController + }; + ArkUI_Int32 nodeId = 0; + + auto frameNode = XComponentModelNG::CreateTypeNode(nodeId, &xcParams); + EXPECT_TRUE(frameNode != nullptr && frameNode->GetTag() == V2::XCOMPONENT_ETS_TAG); + + /** + * @tc.steps: step2. get xcomponent type. + * @tc.expected: xcomponent type is XComponentType::SURFACE + */ + auto pattern = frameNode->GetPattern(); + ASSERT_TRUE(pattern); + auto xcType = pattern->GetType(); + EXPECT_EQ(xcType, XComponentType::SURFACE); +} + +/** + * @tc.name: XComponentCreateTypeNodeTest002 + * @tc.desc: Test create typeNode xcomponent, type = XComponentType::TEXTURE + * @tc.type: FUNC + */ +HWTEST_F(XComponentTestNg, XComponentCreateTypeNodeTest002, TestSize.Level1) +{ + /** + * @tc.steps: step1. create typeNode xcomponent. + * case: type = XComponentType::TEXTURE + * @tc.expected: xcomponent frameNode create successfully + */ + auto xComponentController = std::make_shared(); + ArkUI_XComponent_Params xcParams = { + .id = XCOMPONENT_ID, + .type = XCOMPONENT_TEXTURE_TYPE_VALUE, + .libraryName = XCOMPONENT_LIBRARY_NAME, + .controller = xComponentController + }; + ArkUI_Int32 nodeId = 0; + + auto frameNode = XComponentModelNG::CreateTypeNode(nodeId, &xcParams); + EXPECT_TRUE(frameNode != nullptr && frameNode->GetTag() == V2::XCOMPONENT_ETS_TAG); + + /** + * @tc.steps: step2. get xcomponent type. + * @tc.expected: xcomponent type is XComponentType::TEXTURE + */ + auto pattern = frameNode->GetPattern(); + ASSERT_TRUE(pattern); + auto xcType = pattern->GetType(); + EXPECT_EQ(xcType, XComponentType::TEXTURE); +} } // namespace OHOS::Ace::NG