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 fa6592398998387b9faebbcf6449e31677bbbc27..b429ec8ae94079531370fa2db71b897dbd62a139 100644 --- a/test/unittest/core/pattern/overlay/sheet_presentation_test_ng.cpp +++ b/test/unittest/core/pattern/overlay/sheet_presentation_test_ng.cpp @@ -2801,33 +2801,116 @@ HWTEST_F(SheetPresentationTestNg, UpdateTitleTextColor002, TestSize.Level1) } /** - * @tc.name: UpdateSheetObject001 - * @tc.desc: Test UpdateSheetObject Function. + * @tc.name: ComputeWidthAndHeight001 + * @tc.desc: ComputeWidthAndHeight sheetHeight, sheetWidth * @tc.type: FUNC */ -HWTEST_F(SheetPresentationTestNg, UpdateSheetObject001, TestSize.Level1) +HWTEST_F(SheetShowInSubwindowTestNg, ComputeWidthAndHeight001, TestSize.Level1) { - /** - * @tc.steps: step1. create sheet node and pattern. - */ - SheetPresentationTestNg::SetUpTestCase(); auto callback = [](const std::string&) {}; - auto sheetNode = FrameNode::CreateFrameNode( - "Sheet", 101, AceType::MakeRefPtr(201, "SheetPresentation", std::move(callback))); + 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); - /** - * @tc.steps: step2. set sheetType_ is SheetType::SHEET_BOTTOM, create sheetObject. - */ - sheetPattern->sheetType_ = SheetType::SHEET_BOTTOM; - sheetPattern->InitSheetObject(); - auto sheetObject = sheetPattern->GetSheetObject(); - /** - * @tc.steps: step3. set newType is SheetType::SHEET_CENTER, UpdateSheetObject. - * @tc.expected: sheetType_ = SheetType::SHEET_CENTER. - */ - sheetPattern->UpdateSheetObject(SheetType::SHEET_CENTER); - EXPECT_EQ(sheetObject->sheetType_, SheetType::SHEET_CENTER); - SheetPresentationTestNg::TearDownTestCase(); + 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 2eee3c3613ea30769c2296c0e3c6f6f2857a146d..6ecbdce1c29308f73ccddc20e236cbf081e8c27e 100644 --- a/test/unittest/core/pattern/overlay/sheet_showInSubwindow_test_ng.cpp +++ b/test/unittest/core/pattern/overlay/sheet_showInSubwindow_test_ng.cpp @@ -1714,4 +1714,118 @@ HWTEST_F(SheetShowInSubwindowTestNg, UpdateDragBarStatus001, TestSize.Level1) object->UpdateDragBarStatus(); EXPECT_EQ(dragBarLayoutProperty->propVisibility_, VisibleType::INVISIBLE); } + +/** + * @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