From cdf2aaf177618bdfd5ce5554af1e3ce7a31adec0 Mon Sep 17 00:00:00 2001 From: liuyongkai2 Date: Tue, 15 Jul 2025 21:54:36 +0800 Subject: [PATCH] =?UTF-8?q?test:=E8=A1=A5=E5=85=85TDD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: liuyongkai2 --- .../overlay/sheet_presentation_test_ng.cpp | 114 ++++++++++++++++++ .../overlay/sheet_showInSubwindow_test_ng.cpp | 114 ++++++++++++++++++ 2 files changed, 228 insertions(+) diff --git a/test/unittest/core/pattern/overlay/sheet_presentation_test_ng.cpp b/test/unittest/core/pattern/overlay/sheet_presentation_test_ng.cpp index 69de361994b..a1c6b2169ac 100644 --- a/test/unittest/core/pattern/overlay/sheet_presentation_test_ng.cpp +++ b/test/unittest/core/pattern/overlay/sheet_presentation_test_ng.cpp @@ -2794,4 +2794,118 @@ HWTEST_F(SheetPresentationTestNg, UpdateTitleTextColor002, TestSize.Level1) SheetPresentationTestNg::TearDownTestCase(); } + +/** + * @tc.name: ComputeWidthAndHeight001 + * @tc.desc: ComputeWidthAndHeight sheetHeight, sheetWidth + * @tc.type: FUNC + */ +HWTEST_F(SheetShowInSubwindowTestNg, ComputeWidthAndHeight001, TestSize.Level1) +{ + auto callback = [](const std::string&) {}; + auto sheetNode = FrameNode::CreateFrameNode(V2::SHEET_PAGE_TAG, ElementRegister::GetInstance()->MakeUniqueId(), + AceType::MakeRefPtr(0, "", std::move(callback))); + ASSERT_NE(sheetNode, nullptr); + auto* layoutWrapper = new LayoutWrapperNode( + sheetNode, sheetNode->GetGeometryNode(), sheetNode->GetLayoutProperty()); + ASSERT_NE(layoutWrapper, nullptr); + auto sheetPageLayoutAlgorithm = AceType::MakeRefPtr(); + sheetPageLayoutAlgorithm->sheetStyle_.showInSubWindow = true; + + auto host = layoutWrapper->GetHostNode(); + CHECK_NULL_VOID(host); + auto sheetWrapper = AceType::DynamicCast(host->GetParent()); + CHECK_NULL_VOID(sheetWrapper); + auto sheetWrapperPattern = sheetWrapper->GetPattern(); + CHECK_NULL_VOID(sheetWrapperPattern); + auto mainWindowRect = sheetWrapperPattern->GetMainWindowRect(); + mainWindowRect.SetHeight(100.0f); + mainWindowRect.SetWidth(100.0f); + sheetPageLayoutAlgorithm->ComputeWidthAndHeight(layoutWrapper); + EXPECT_FLOAT_EQ(sheetPageLayoutAlgorithm->sheetHeight_, 100.0f); + EXPECT_FLOAT_EQ(sheetPageLayoutAlgorithm->sheetWidth_, 100.0f); +} + +/** + * @tc.name: ComputeMaxHeight001 + * @tc.desc: ComputeMaxHeight + * @tc.type: FUNC + */ +HWTEST_F(SheetShowInSubwindowTestNg, ComputeMaxHeight001, TestSize.Level1) +{ + float parentConstraintHeight = 100.0f; + float parentConstraintWidth = 100.0f; + auto callback = [](const std::string&) {}; + auto sheetNode = FrameNode::CreateFrameNode(V2::SHEET_PAGE_TAG, ElementRegister::GetInstance()->MakeUniqueId(), + AceType::MakeRefPtr(0, "", std::move(callback))); + ASSERT_NE(sheetNode, nullptr); + auto sheetPattern = sheetNode->GetPattern(); + ASSERT_NE(sheetPattern, nullptr); + auto* layoutWrapper = + new LayoutWrapperNode(sheetNode, sheetNode->GetGeometryNode(), sheetNode->GetLayoutProperty()); + ASSERT_NE(layoutWrapper, nullptr); + NG::RectF floatButtons; + floatButtons.SetHeight(10.0f); + auto pipeline = PipelineContext::GetCurrentContext(); + ASSERT_NE(pipeline, nullptr); + auto avoidInfoMgr = pipeline->GetAvoidInfoManager(); + ASSERT_NE(avoidInfoMgr, nullptr); + avoidInfoMgr->instanceId_ = 1001; + avoidInfoMgr->avoidInfo_.needAvoid = true; + + auto sheetPageLayoutAlgorithm = AceType::MakeRefPtr(); + auto maxHeight = + sheetPageLayoutAlgorithm->ComputeMaxHeight(parentConstraintHeight, parentConstraintWidth, layoutWrapper); + EXPECT_FLOAT_EQ(maxHeight, 90.0f); +} + +/** + * @tc.name: ComputePopupStyleOffset002 + * @tc.desc: ComputeMaxHeight + * @tc.type: FUNC + */ +HWTEST_F(SheetShowInSubwindowTestNg, ComputePopupStyleOffset002, TestSize.Level1) +{ + float parentConstraintHeight = 100.0f; + float parentConstraintWidth = 100.0f; + auto callback = [](const std::string&) {}; + auto sheetNode = FrameNode::CreateFrameNode(V2::SHEET_PAGE_TAG, ElementRegister::GetInstance()->MakeUniqueId(), + AceType::MakeRefPtr(0, "", std::move(callback))); + ASSERT_NE(sheetNode, nullptr); + auto sheetPattern = sheetNode->GetPattern(); + ASSERT_NE(sheetPattern, nullptr); + auto* layoutWrapper = + new LayoutWrapperNode(sheetNode, sheetNode->GetGeometryNode(), sheetNode->GetLayoutProperty()); + ASSERT_NE(layoutWrapper, nullptr); + auto sheetPageLayoutAlgorithm = AceType::MakeRefPtr(); + sheetPageLayoutAlgorithm->sheetStyle_.showInSubWindow = false; + auto maxHeight = + sheetPageLayoutAlgorithm->ComputeMaxHeight(parentConstraintHeight, parentConstraintWidth, layoutWrapper); + EXPECT_FLOAT_EQ(maxHeight, 90.0f); +} + +/** + * @tc.name: ComputePopupStyleOffset003 + * @tc.desc: ComputeMaxHeight + * @tc.type: FUNC + */ +HWTEST_F(SheetShowInSubwindowTestNg, ComputePopupStyleOffset003, TestSize.Level1) +{ + float parentConstraintHeight = 100.0f; + float parentConstraintWidth = 100.0f; + auto callback = [](const std::string&) {}; + auto sheetNode = FrameNode::CreateFrameNode(V2::SHEET_PAGE_TAG, ElementRegister::GetInstance()->MakeUniqueId(), + AceType::MakeRefPtr(0, "", std::move(callback))); + ASSERT_NE(sheetNode, nullptr); + auto sheetPattern = sheetNode->GetPattern(); + ASSERT_NE(sheetPattern, nullptr); + auto* layoutWrapper = + new LayoutWrapperNode(sheetNode, sheetNode->GetGeometryNode(), sheetNode->GetLayoutProperty()); + ASSERT_NE(layoutWrapper, nullptr); + auto sheetPageLayoutAlgorithm = AceType::MakeRefPtr(); + sheetPageLayoutAlgorithm->sheetStyle_.showInSubWindow = false; + auto maxHeight = + sheetPageLayoutAlgorithm->ComputeMaxHeight(parentConstraintHeight, parentConstraintWidth, layoutWrapper); + EXPECT_FLOAT_EQ(maxHeight, 90.0f); +} } // namespace OHOS::Ace::NG \ No newline at end of file diff --git a/test/unittest/core/pattern/overlay/sheet_showInSubwindow_test_ng.cpp b/test/unittest/core/pattern/overlay/sheet_showInSubwindow_test_ng.cpp index 99543c12319..6b7718c6ac8 100644 --- a/test/unittest/core/pattern/overlay/sheet_showInSubwindow_test_ng.cpp +++ b/test/unittest/core/pattern/overlay/sheet_showInSubwindow_test_ng.cpp @@ -2348,4 +2348,118 @@ HWTEST_F(SheetShowInSubwindowTestNg, ContentCoverSheetLayoutAlgorithm2, TestSize EXPECT_FLOAT_EQ(buildGeometryNode->GetMarginFrameOffset().GetX(), 0.0f); EXPECT_FLOAT_EQ(buildGeometryNode->GetMarginFrameOffset().GetY(), padding.top.value_or(0.0f)); } + +/** + * @tc.name: ComputeWidthAndHeight001 + * @tc.desc: ComputeWidthAndHeight sheetHeight, sheetWidth + * @tc.type: FUNC + */ +HWTEST_F(SheetShowInSubwindowTestNg, ComputeWidthAndHeight001, TestSize.Level1) +{ + auto callback = [](const std::string&) {}; + auto sheetNode = FrameNode::CreateFrameNode(V2::SHEET_PAGE_TAG, ElementRegister::GetInstance()->MakeUniqueId(), + AceType::MakeRefPtr(0, "", std::move(callback))); + ASSERT_NE(sheetNode, nullptr); + auto* layoutWrapper = new LayoutWrapperNode( + sheetNode, sheetNode->GetGeometryNode(), sheetNode->GetLayoutProperty()); + ASSERT_NE(layoutWrapper, nullptr); + auto sheetPageLayoutAlgorithm = AceType::MakeRefPtr(); + sheetPageLayoutAlgorithm->sheetStyle_.showInSubWindow = true; + + auto host = layoutWrapper->GetHostNode(); + CHECK_NULL_VOID(host); + auto sheetWrapper = AceType::DynamicCast(host->GetParent()); + CHECK_NULL_VOID(sheetWrapper); + auto sheetWrapperPattern = sheetWrapper->GetPattern(); + CHECK_NULL_VOID(sheetWrapperPattern); + auto mainWindowRect = sheetWrapperPattern->GetMainWindowRect(); + mainWindowRect.SetHeight(100.0f); + mainWindowRect.SetWidth(100.0f); + sheetPageLayoutAlgorithm->ComputeWidthAndHeight(layoutWrapper); + EXPECT_FLOAT_EQ(sheetPageLayoutAlgorithm->sheetHeight_, 100.0f); + EXPECT_FLOAT_EQ(sheetPageLayoutAlgorithm->sheetWidth_, 100.0f); +} + +/** + * @tc.name: ComputeMaxHeight001 + * @tc.desc: ComputeMaxHeight + * @tc.type: FUNC + */ +HWTEST_F(SheetShowInSubwindowTestNg, ComputeMaxHeight001, TestSize.Level1) +{ + float parentConstraintHeight = 100.0f; + float parentConstraintWidth = 100.0f; + auto callback = [](const std::string&) {}; + auto sheetNode = FrameNode::CreateFrameNode(V2::SHEET_PAGE_TAG, ElementRegister::GetInstance()->MakeUniqueId(), + AceType::MakeRefPtr(0, "", std::move(callback))); + ASSERT_NE(sheetNode, nullptr); + auto sheetPattern = sheetNode->GetPattern(); + ASSERT_NE(sheetPattern, nullptr); + auto* layoutWrapper = + new LayoutWrapperNode(sheetNode, sheetNode->GetGeometryNode(), sheetNode->GetLayoutProperty()); + ASSERT_NE(layoutWrapper, nullptr); + NG::RectF floatButtons; + floatButtons.SetHeight(10.0f); + auto pipeline = PipelineContext::GetCurrentContext(); + ASSERT_NE(pipeline, nullptr); + auto avoidInfoMgr = pipeline->GetAvoidInfoManager(); + ASSERT_NE(avoidInfoMgr, nullptr); + avoidInfoMgr->instanceId_ = 1001; + avoidInfoMgr->avoidInfo_.needAvoid = true; + + auto sheetPageLayoutAlgorithm = AceType::MakeRefPtr(); + auto maxHeight = + sheetPageLayoutAlgorithm->ComputeMaxHeight(parentConstraintHeight, parentConstraintWidth, layoutWrapper); + EXPECT_FLOAT_EQ(maxHeight, 90.0f); +} + +/** + * @tc.name: ComputePopupStyleOffset002 + * @tc.desc: ComputeMaxHeight + * @tc.type: FUNC + */ +HWTEST_F(SheetShowInSubwindowTestNg, ComputePopupStyleOffset002, TestSize.Level1) +{ + float parentConstraintHeight = 100.0f; + float parentConstraintWidth = 100.0f; + auto callback = [](const std::string&) {}; + auto sheetNode = FrameNode::CreateFrameNode(V2::SHEET_PAGE_TAG, ElementRegister::GetInstance()->MakeUniqueId(), + AceType::MakeRefPtr(0, "", std::move(callback))); + ASSERT_NE(sheetNode, nullptr); + auto sheetPattern = sheetNode->GetPattern(); + ASSERT_NE(sheetPattern, nullptr); + auto* layoutWrapper = + new LayoutWrapperNode(sheetNode, sheetNode->GetGeometryNode(), sheetNode->GetLayoutProperty()); + ASSERT_NE(layoutWrapper, nullptr); + auto sheetPageLayoutAlgorithm = AceType::MakeRefPtr(); + sheetPageLayoutAlgorithm->sheetStyle_.showInSubWindow = false; + auto maxHeight = + sheetPageLayoutAlgorithm->ComputeMaxHeight(parentConstraintHeight, parentConstraintWidth, layoutWrapper); + EXPECT_FLOAT_EQ(maxHeight, 90.0f); +} + +/** + * @tc.name: ComputePopupStyleOffset003 + * @tc.desc: ComputeMaxHeight + * @tc.type: FUNC + */ +HWTEST_F(SheetShowInSubwindowTestNg, ComputePopupStyleOffset003, TestSize.Level1) +{ + float parentConstraintHeight = 100.0f; + float parentConstraintWidth = 100.0f; + auto callback = [](const std::string&) {}; + auto sheetNode = FrameNode::CreateFrameNode(V2::SHEET_PAGE_TAG, ElementRegister::GetInstance()->MakeUniqueId(), + AceType::MakeRefPtr(0, "", std::move(callback))); + ASSERT_NE(sheetNode, nullptr); + auto sheetPattern = sheetNode->GetPattern(); + ASSERT_NE(sheetPattern, nullptr); + auto* layoutWrapper = + new LayoutWrapperNode(sheetNode, sheetNode->GetGeometryNode(), sheetNode->GetLayoutProperty()); + ASSERT_NE(layoutWrapper, nullptr); + auto sheetPageLayoutAlgorithm = AceType::MakeRefPtr(); + sheetPageLayoutAlgorithm->sheetStyle_.showInSubWindow = false; + auto maxHeight = + sheetPageLayoutAlgorithm->ComputeMaxHeight(parentConstraintHeight, parentConstraintWidth, layoutWrapper); + EXPECT_FLOAT_EQ(maxHeight, 90.0f); +} } // namespace OHOS::Ace::NG \ No newline at end of file -- Gitee