From 91d7bb23a60dfd969a3f15e23a35a7f8ce669d6c Mon Sep 17 00:00:00 2001 From: c30053238 Date: Wed, 16 Jul 2025 22:01:17 +0800 Subject: [PATCH] add tdd Signed-off-by: c30053238 --- .../overlay/sheet_presentation_test_ng.cpp | 533 ++++++++++++++++++ .../overlay/sheet_showInSubwindow_test_ng.cpp | 114 ++++ 2 files changed, 647 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 fa659239899..8a1f67dd116 100644 --- a/test/unittest/core/pattern/overlay/sheet_presentation_test_ng.cpp +++ b/test/unittest/core/pattern/overlay/sheet_presentation_test_ng.cpp @@ -2830,4 +2830,537 @@ HWTEST_F(SheetPresentationTestNg, UpdateSheetObject001, TestSize.Level1) EXPECT_EQ(sheetObject->sheetType_, SheetType::SHEET_CENTER); SheetPresentationTestNg::TearDownTestCase(); } + +/** + * @tc.name: UpdateAccessibilityDetents001 + * @tc.desc: UpdateAccessibilityDetents true + * @tc.type: FUNC + */ +HWTEST_F(SheetPresentationTestNg, UpdateAccessibilityDetents001, TestSize.Level1) +{ + SheetPresentationTestNg::SetUpTestCase(); + auto callback = [](const std::string&) {}; + auto sheetNode = FrameNode::CreateFrameNode( + "Sheet", 101, AceType::MakeRefPtr(201, "SheetPresentation", std::move(callback))); + ASSERT_NE(sheetNode, nullptr); + auto sheetPattern = sheetNode->GetPattern(); + ASSERT_NE(sheetPattern, nullptr); + sheetPattern->sheetDetentHeight_.push_back(10.0f); + sheetPattern->sheetDetentHeight_.push_back(10.0f); + sheetPattern->sheetDetentHeight_.push_back(10.0f); + sheetPattern->sheetDetentHeight_.push_back(10.0f); + sheetPattern->sheetDetentHeight_.push_back(10.0f); + auto count = sheetPattern->sheetDetentHeight_.size(); + EXPECT_EQ(count, 5); + sheetPattern->sheetType_ = SheetType::SHEET_BOTTOM; + auto res = sheetPattern->UpdateAccessibilityDetents(10.0f); + EXPECT_TRUE(res); + SheetPresentationTestNg::TearDownTestCase(); +} + +/** + * @tc.name: OnCoordScrollUpdate001 + * @tc.desc: OnCoordScrollUpdate false + * @tc.type: FUNC + */ +HWTEST_F(SheetPresentationTestNg, OnCoordScrollUpdate001, TestSize.Level1) +{ + SheetPresentationTestNg::SetUpTestCase(); + auto callback = [](const std::string&) {}; + auto sheetNode = FrameNode::CreateFrameNode( + "Sheet", 101, AceType::MakeRefPtr(201, "SheetPresentation", std::move(callback))); + ASSERT_NE(sheetNode, nullptr); + auto sheetPattern = sheetNode->GetPattern(); + ASSERT_NE(sheetPattern, nullptr); + auto count = sheetPattern->sheetDetentHeight_.size(); + EXPECT_EQ(count, 0); + auto scrollNode = sheetPattern->GetSheetScrollNode(); + CHECK_NULL_VOID(scrollNode); + auto scrollPattern = scrollNode->GetPattern(); + CHECK_NULL_VOID(scrollPattern); + scrollPattern->scrollableDistance_ = 10.0f; + auto res = sheetPattern->OnCoordScrollUpdate(10.0f); + EXPECT_FALSE(res); + SheetPresentationTestNg::TearDownTestCase(); +} + +/** + * @tc.name: OnCoordScrollUpdate002 + * @tc.desc: OnCoordScrollUpdate false + * @tc.type: FUNC + */ +HWTEST_F(SheetPresentationTestNg, OnCoordScrollUpdate002, TestSize.Level1) +{ + SheetPresentationTestNg::SetUpTestCase(); + auto callback = [](const std::string&) {}; + auto sheetNode = FrameNode::CreateFrameNode( + "Sheet", 101, AceType::MakeRefPtr(201, "SheetPresentation", std::move(callback))); + ASSERT_NE(sheetNode, nullptr); + auto sheetPattern = sheetNode->GetPattern(); + ASSERT_NE(sheetPattern, nullptr); + sheetPattern->sheetDetentHeight_.push_back(10.0f); + sheetPattern->sheetDetentHeight_.push_back(10.0f); + sheetPattern->sheetDetentHeight_.push_back(10.0f); + sheetPattern->sheetDetentHeight_.push_back(10.0f); + sheetPattern->sheetDetentHeight_.push_back(0.0f); + auto count = sheetPattern->sheetDetentHeight_.size(); + EXPECT_EQ(count, 5); + sheetPattern->currentOffset_ = 0.0f; + auto scrollNode = sheetPattern->GetSheetScrollNode(); + CHECK_NULL_VOID(scrollNode); + auto scrollPattern = scrollNode->GetPattern(); + CHECK_NULL_VOID(scrollPattern); + scrollPattern->scrollableDistance_ = 10.0f; + auto res = sheetPattern->OnCoordScrollUpdate(0.0f); + EXPECT_FALSE(res); + SheetPresentationTestNg::TearDownTestCase(); +} + +/** + * @tc.name: OnCoordScrollUpdate003 + * @tc.desc: OnCoordScrollUpdate false + * @tc.type: FUNC + */ +HWTEST_F(SheetPresentationTestNg, OnCoordScrollUpdate003, TestSize.Level1) +{ + SheetPresentationTestNg::SetUpTestCase(); + auto callback = [](const std::string&) {}; + auto sheetNode = FrameNode::CreateFrameNode( + "Sheet", 101, AceType::MakeRefPtr(201, "SheetPresentation", std::move(callback))); + EXPECT_NE(sheetNode, nullptr); + auto sheetPattern = sheetNode->GetPattern(); + EXPECT_NE(sheetPattern, nullptr); + sheetPattern->sheetDetentHeight_.push_back(10.0f); + sheetPattern->sheetDetentHeight_.push_back(10.0f); + sheetPattern->sheetDetentHeight_.push_back(10.0f); + sheetPattern->sheetDetentHeight_.push_back(10.0f); + sheetPattern->sheetDetentHeight_.push_back(10.0f); + auto count = sheetPattern->sheetDetentHeight_.size(); + EXPECT_EQ(count, 5); + sheetPattern->pageHeight_ = 10.0f; + sheetPattern->height_ = 10.0f; + auto scrollNode = sheetPattern->GetSheetScrollNode(); + CHECK_NULL_VOID(scrollNode); + auto scrollPattern = scrollNode->GetPattern(); + CHECK_NULL_VOID(scrollPattern); + scrollPattern->scrollableDistance_ = 10.0f; + auto res = sheetPattern->OnCoordScrollUpdate(10.0f); + EXPECT_TRUE(sheetPattern->GetShowState()); + EXPECT_TRUE(sheetPattern->IsScrollable()); + EXPECT_TRUE(res); + SheetPresentationTestNg::TearDownTestCase(); +} + +/** + * @tc.name: HandleDragEndAccessibilityEvent001 + * @tc.desc: HandleDragEndAccessibilityEvent event.beforeText + * @tc.type: FUNC + */ +HWTEST_F(SheetPresentationTestNg, HandleDragEndAccessibilityEvent001, TestSize.Level1) +{ + SheetPresentationTestNg::SetUpTestCase(); + auto callback = [](const std::string&) {}; + auto sheetNode = FrameNode::CreateFrameNode( + "Sheet", 101, AceType::MakeRefPtr(201, "SheetPresentation", std::move(callback))); + ASSERT_NE(sheetNode, nullptr); + auto sheetPattern = sheetNode->GetPattern(); + ASSERT_NE(sheetPattern, nullptr); + sheetPattern->sheetDetentHeight_.push_back(10.0f); + sheetPattern->sheetDetentHeight_.push_back(10.0f); + sheetPattern->sheetDetentHeight_.push_back(10.0f); + sheetPattern->sheetDetentHeight_.push_back(10.0f); + sheetPattern->sheetDetentHeight_.push_back(10.0f); + auto count = sheetPattern->sheetDetentHeight_.size(); + EXPECT_EQ(count, 5); + sheetPattern->height_ = 10.0f; + sheetPattern->sheetType_ = SheetType::SHEET_BOTTOM; + auto res = sheetPattern->UpdateAccessibilityDetents(sheetPattern->GetSheetHeightBeforeDragUpdate()); + EXPECT_TRUE(res); + AceApplicationInfo::GetInstance().SetAccessibilityEnabled(true); + sheetPattern->HandleDragEndAccessibilityEvent(); + AccessibilityEvent event; + EXPECT_EQ(event.beforeText, ""); + SheetPresentationTestNg::TearDownTestCase(); +} + +/** + * @tc.name: GetWindowButtonRect001 + * @tc.desc: GetWindowButtonRect EXPECT TRUE + * @tc.type: FUNC + */ +HWTEST_F(SheetPresentationTestNg, GetWindowButtonRect001, TestSize.Level1) +{ + SheetPresentationTestNg::SetUpTestCase(); + auto callback = [](const std::string&) {}; + auto sheetNode = FrameNode::CreateFrameNode( + "Sheet", 101, AceType::MakeRefPtr(201, "SheetPresentation", std::move(callback))); + ASSERT_NE(sheetNode, nullptr); + auto sheetPattern = sheetNode->GetPattern(); + ASSERT_NE(sheetPattern, nullptr); + AceApplicationInfo::GetInstance().apiVersion_ = 1019; + auto pipeline = PipelineContext::GetCurrentContext(); + ASSERT_NE(pipeline, nullptr); + auto avoidInfoMgr = pipeline->GetAvoidInfoManager(); + ASSERT_NE(avoidInfoMgr, nullptr); + avoidInfoMgr->instanceId_ = 1001; + avoidInfoMgr->avoidInfo_.needAvoid = true; + NG::RectF floatButtons; + floatButtons.SetHeight(10.0f); + floatButtons.SetWidth(10.0f); + auto res = sheetPattern->GetWindowButtonRect(floatButtons); + EXPECT_TRUE(res); + SheetPresentationTestNg::TearDownTestCase(); +} + +/** + * @tc.name: InitialSingleGearHeight001 + * @tc.desc: InitialSingleGearHeight sheetHeight + * @tc.type: FUNC + */ +HWTEST_F(SheetPresentationTestNg, InitialSingleGearHeight001, TestSize.Level1) +{ + SheetPresentationTestNg::SetUpTestCase(); + auto callback = [](const std::string&) {}; + auto sheetNode = FrameNode::CreateFrameNode( + "Sheet", 101, AceType::MakeRefPtr(201, "SheetPresentation", std::move(callback))); + ASSERT_NE(sheetNode, nullptr); + auto sheetPattern = sheetNode->GetPattern(); + ASSERT_NE(sheetPattern, nullptr); + NG::SheetStyle sheetStyle; + sheetStyle.sheetHeight.sheetMode = SheetMode::MEDIUM; + Container::GreatOrEqualAPIVersion(PlatformVersion::VERSION_EIGHTEEN); + sheetPattern->pageHeight_ = 10.0f; + auto sheetHeight = sheetPattern->InitialSingleGearHeight(sheetStyle); + EXPECT_EQ(sheetHeight, 5.0f); + SheetPresentationTestNg::TearDownTestCase(); +} + +/** + * @tc.name: UpdateSheetTransitionOffset001 + * @tc.desc: UpdateSheetTransitionOffset sheetHeightUp_ + * @tc.type: FUNC + */ +HWTEST_F(SheetPresentationTestNg, UpdateSheetTransitionOffset001, TestSize.Level1) +{ + SheetPresentationTestNg::SetUpTestCase(); + auto callback = [](const std::string&) {}; + auto sheetNode = FrameNode::CreateFrameNode( + "Sheet", 101, AceType::MakeRefPtr(201, "SheetPresentation", std::move(callback))); + ASSERT_NE(sheetNode, nullptr); + auto sheetPattern = sheetNode->GetPattern(); + ASSERT_NE(sheetPattern, nullptr); + sheetPattern->isSpringBack_ = true; + sheetPattern->sheetDetentHeight_.push_back(10.0f); + sheetPattern->sheetDetentHeight_.push_back(10.0f); + sheetPattern->sheetDetentHeight_.push_back(10.0f); + sheetPattern->sheetDetentHeight_.push_back(10.0f); + sheetPattern->sheetDetentHeight_.push_back(10.0f); + auto count = sheetPattern->sheetDetentHeight_.size(); + EXPECT_EQ(count, 5); + sheetPattern->UpdateSheetTransitionOffset(); + EXPECT_EQ(sheetPattern->sheetHeightUp_, 0.0f); + SheetPresentationTestNg::TearDownTestCase(); +} + +/** + * @tc.name: SheetHeightNeedChanged001 + * @tc.desc: SheetHeightNeedChanged EXPECT TRUE + * @tc.type: FUNC + */ +HWTEST_F(SheetPresentationTestNg, SheetHeightNeedChanged001, TestSize.Level1) +{ + SheetPresentationTestNg::SetUpTestCase(); + auto callback = [](const std::string&) {}; + auto sheetNode = FrameNode::CreateFrameNode( + "Sheet", 101, AceType::MakeRefPtr(201, "SheetPresentation", std::move(callback))); + ASSERT_NE(sheetNode, nullptr); + + auto sheetPattern = sheetNode->GetPattern(); + ASSERT_NE(sheetPattern, nullptr); + auto sheetGeometryNode = sheetNode->GetGeometryNode(); + CHECK_NULL_VOID(sheetGeometryNode); + + auto size = sheetGeometryNode->GetFrameSize(); + size.SetHeight(100.0f); + sheetGeometryNode->SetFrameSize(size); + + CHECK_NULL_VOID(sheetPattern->sheetObject_); + sheetPattern->sheetObject_->SetSheetHeight(50.0f); + + auto res = sheetPattern->SheetHeightNeedChanged(); + EXPECT_TRUE(res); + SheetPresentationTestNg::TearDownTestCase(); +} + +/** + * @tc.name: CheckSheetHeightChange001 + * @tc.desc: isRenderDirtyMarked_ EXPECT TRUE + * @tc.type: FUNC + */ +HWTEST_F(SheetPresentationTestNg, CheckSheetHeightChange001, TestSize.Level1) +{ + SheetPresentationTestNg::SetUpTestCase(); + auto callback = [](const std::string&) {}; + auto sheetNode = FrameNode::CreateFrameNode( + "Sheet", 101, AceType::MakeRefPtr(201, "SheetPresentation", std::move(callback))); + ASSERT_NE(sheetNode, nullptr); + auto sheetPattern = sheetNode->GetPattern(); + ASSERT_NE(sheetPattern, nullptr); + sheetPattern->typeChanged_ = true; + sheetPattern->isFirstInit_ = false; + sheetPattern->sheetType_ = SheetType::SHEET_POPUP; + sheetNode->isRenderDirtyMarked_ = false; + sheetNode->isLayoutDirtyMarked_ = false; + auto sheetGeometryNode = sheetNode->GetGeometryNode(); + sheetGeometryNode->SetFrameSize(SizeF(100.0f, 200.0f)); + CHECK_NULL_VOID(sheetPattern->sheetObject_); + sheetPattern->CheckSheetHeightChange(); + EXPECT_TRUE(sheetNode->isRenderDirtyMarked_); + SheetPresentationTestNg::TearDownTestCase(); +} + +/** + * @tc.name: CheckSheetHeightChange002 + * @tc.desc: CheckSheetHeightChange PROPERTY_UPDATE_LAYOUT | PROPERTY_UPDATE_MEASURE + * @tc.type: FUNC + */ +HWTEST_F(SheetPresentationTestNg, CheckSheetHeightChange002, TestSize.Level1) +{ + SheetPresentationTestNg::SetUpTestCase(); + auto callback = [](const std::string&) {}; + auto sheetNode = FrameNode::CreateFrameNode( + "Sheet", 101, AceType::MakeRefPtr(201, "SheetPresentation", std::move(callback))); + ASSERT_NE(sheetNode, nullptr); + auto sheetPattern = sheetNode->GetPattern(); + ASSERT_NE(sheetPattern, nullptr); + sheetPattern->typeChanged_ = true; + sheetPattern->sheetType_ = SheetType::SHEET_BOTTOM; + auto layoutProperty = sheetPattern->GetLayoutProperty(); + ASSERT_NE(layoutProperty, nullptr); + auto sheetGeometryNode = sheetNode->GetGeometryNode(); + sheetGeometryNode->SetFrameSize(SizeF(100.0f, 200.0f)); + CHECK_NULL_VOID(sheetPattern->sheetObject_); + sheetPattern->CheckSheetHeightChange(); + EXPECT_EQ(layoutProperty->propertyChangeFlag_, PROPERTY_UPDATE_LAYOUT | PROPERTY_UPDATE_MEASURE); + SheetPresentationTestNg::TearDownTestCase(); +} + +/** + * @tc.name: IsCustomDetentsChanged001 + * @tc.desc: IsCustomDetentsChanged + * @tc.type: FUNC + */ +HWTEST_F(SheetPresentationTestNg, IsCustomDetentsChanged001, TestSize.Level1) +{ + SheetPresentationTestNg::SetUpTestCase(); + auto callback = [](const std::string&) {}; + auto sheetNode = FrameNode::CreateFrameNode( + "Sheet", 101, AceType::MakeRefPtr(201, "SheetPresentation", std::move(callback))); + ASSERT_NE(sheetNode, nullptr); + auto sheetPattern = sheetNode->GetPattern(); + ASSERT_NE(sheetPattern, nullptr); + sheetPattern->detentsFinalIndex_ = 1; + SheetHeight detent; + // detent.height = 10.0f; + detent.sheetMode = SheetMode::MEDIUM; + SheetStyle sheetStyle; + + SheetHeight preDetents; + // preDetents.height = 20.0f; + preDetents.sheetMode = SheetMode::LARGE; + sheetStyle.detents.emplace_back(detent); + sheetPattern->preDetents_.emplace_back(preDetents); + unsigned int preDetentsSize = sheetPattern->preDetents_.size(); + unsigned int userSetDetentsSize = sheetStyle.detents.size(); + EXPECT_EQ(preDetentsSize, 1); + EXPECT_EQ(userSetDetentsSize, 1); + sheetPattern->IsCustomDetentsChanged(sheetStyle); + EXPECT_EQ(sheetPattern->detentsFinalIndex_, 0); + SheetPresentationTestNg::TearDownTestCase(); +} + +/** + * @tc.name: IsCustomDetentsChanged002 + * @tc.desc: IsCustomDetentsChanged + * @tc.type: FUNC + */ +HWTEST_F(SheetPresentationTestNg, IsCustomDetentsChanged002, TestSize.Level1) +{ + SheetPresentationTestNg::SetUpTestCase(); + auto callback = [](const std::string&) {}; + auto sheetNode = FrameNode::CreateFrameNode( + "Sheet", 101, AceType::MakeRefPtr(201, "SheetPresentation", std::move(callback))); + ASSERT_NE(sheetNode, nullptr); + auto sheetPattern = sheetNode->GetPattern(); + sheetPattern->detentsFinalIndex_ = 1; + ASSERT_NE(sheetPattern, nullptr); + SheetHeight detent; + // detent.height = 10.0f; + detent.sheetMode = SheetMode::MEDIUM; + SheetStyle sheetStyle; + + SheetHeight preDetents; + // preDetents.height = 20.0f; + preDetents.sheetMode = SheetMode::MEDIUM; + sheetStyle.detents.emplace_back(detent); + sheetPattern->preDetents_.emplace_back(preDetents); + unsigned int preDetentsSize = sheetPattern->preDetents_.size(); + unsigned int userSetDetentsSize = sheetStyle.detents.size(); + EXPECT_EQ(preDetentsSize, 1); + EXPECT_EQ(userSetDetentsSize, 1); + sheetPattern->IsCustomDetentsChanged(sheetStyle); + EXPECT_EQ(sheetPattern->detentsFinalIndex_, 1); + SheetPresentationTestNg::TearDownTestCase(); +} + +/** + * @tc.name: GetSubWindowId001 + * @tc.desc: GetSubWindowId INVALID_SUBWINDOW_ID + * @tc.type: FUNC + */ +HWTEST_F(SheetPresentationTestNg, GetSubWindowId001, TestSize.Level1) +{ + SheetPresentationTestNg::SetUpTestCase(); + auto callback = [](const std::string&) {}; + auto sheetNode = FrameNode::CreateFrameNode(V2::SHEET_PAGE_TAG, ElementRegister::GetInstance()->MakeUniqueId(), + AceType::MakeRefPtr( + ElementRegister::GetInstance()->MakeUniqueId(), V2::TEXT_ETS_TAG, std::move(callback))); + auto sheetPattern = sheetNode->GetPattern(); + ASSERT_NE(sheetPattern, nullptr); + auto sheetWrapperNode = FrameNode::CreateFrameNode(V2::SHEET_WRAPPER_TAG, + ElementRegister::GetInstance()->MakeUniqueId(), AceType::MakeRefPtr()); + auto sheetWrapperPattern = sheetWrapperNode->GetPattern(); + ASSERT_NE(sheetWrapperPattern, nullptr); + EXPECT_EQ(sheetWrapperPattern->GetSubWindowId(), INVALID_SUBWINDOW_ID); + SheetPresentationTestNg::TearDownTestCase(); +} + +/** + * @tc.name: OnWindowSizeChanged001 + * @tc.desc: OnWindowSizeChanged EXPECT TRUE + * @tc.type: FUNC + */ +HWTEST_F(SheetPresentationTestNg, OnWindowSizeChanged001, TestSize.Level1) +{ + SheetPresentationTestNg::SetUpTestCase(); + auto callback = [](const std::string&) {}; + auto sheetNode = FrameNode::CreateFrameNode(V2::SHEET_PAGE_TAG, ElementRegister::GetInstance()->MakeUniqueId(), + AceType::MakeRefPtr( + ElementRegister::GetInstance()->MakeUniqueId(), V2::TEXT_ETS_TAG, std::move(callback))); + auto sheetPattern = sheetNode->GetPattern(); + ASSERT_NE(sheetPattern, nullptr); + sheetPattern->windowSize_ = SizeT(1600, 800); + sheetPattern->OnWindowSizeChanged(100, 100, WindowSizeChangeReason::UNDEFINED); + EXPECT_TRUE(sheetPattern->windowChanged_); + SheetPresentationTestNg::TearDownTestCase(); +} + +/** + * @tc.name: AdditionalScrollTo001 + * @tc.desc: AdditionalScrollTo EXPECT TRUE + * @tc.type: FUNC + */ +HWTEST_F(SheetPresentationTestNg, AdditionalScrollTo001, TestSize.Level1) +{ + SheetPresentationTestNg::SetUpTestCase(); + auto callback = [](const std::string&) {}; + auto sheetNode = FrameNode::CreateFrameNode(V2::SHEET_PAGE_TAG, ElementRegister::GetInstance()->MakeUniqueId(), + AceType::MakeRefPtr( + ElementRegister::GetInstance()->MakeUniqueId(), V2::TEXT_ETS_TAG, std::move(callback))); + auto sheetPattern = sheetNode->GetPattern(); + ASSERT_NE(sheetPattern, nullptr); + auto scrollNode = FrameNode::CreateFrameNode("Scroll", 501, AceType::MakeRefPtr()); + ASSERT_NE(scrollNode, nullptr); + + auto scrollGeometryNode = scrollNode->GetGeometryNode(); + ASSERT_NE(scrollGeometryNode, nullptr); + auto size = scrollGeometryNode->GetFrameSize(); + size.SetHeight(100.0f); + scrollGeometryNode->SetFrameSize(size); + + auto buildContent = sheetPattern->GetFirstFrameNodeOfBuilder(); + CHECK_NULL_VOID(buildContent); + auto buildContentGeometryNode = buildContent->GetGeometryNode(); + ASSERT_NE(buildContentGeometryNode, nullptr); + auto size1 = buildContentGeometryNode->GetFrameSize(); + size1.SetHeight(50.0f); + buildContentGeometryNode->SetFrameSize(size1); + auto res = sheetPattern->AdditionalScrollTo(scrollNode, 10.0f); + EXPECT_TRUE(res); + SheetPresentationTestNg::TearDownTestCase(); +} + +/** + * @tc.name: GetOverlayManagertest001 + * @tc.desc: GetOverlayManager OverlayManager + * @tc.type: FUNC + */ +HWTEST_F(SheetPresentationTestNg, GetOverlayManagertest001, TestSize.Level1) +{ + SheetPresentationTestNg::SetUpTestCase(); + auto callback = [](const std::string&) {}; + auto sheetNode = FrameNode::CreateFrameNode(V2::SHEET_PAGE_TAG, ElementRegister::GetInstance()->MakeUniqueId(), + AceType::MakeRefPtr( + ElementRegister::GetInstance()->MakeUniqueId(), V2::TEXT_ETS_TAG, std::move(callback))); + auto sheetPattern = sheetNode->GetPattern(); + ASSERT_NE(sheetPattern, nullptr); + + auto layoutProperty = sheetPattern->GetLayoutProperty(); + ASSERT_NE(layoutProperty, nullptr); + + SheetStyle currentStyle = layoutProperty->GetSheetStyleValue(SheetStyle()); + currentStyle.showInSubWindow = false; + auto OverlayManager = sheetPattern->GetOverlayManager(); + ASSERT_NE(OverlayManager, nullptr); + SheetPresentationTestNg::TearDownTestCase(); +} + +/** + * @tc.name: GetCurrentScrollHeight001 + * @tc.desc: GetCurrentScrollHeight scrollHeight_ + * @tc.type: FUNC + */ +HWTEST_F(SheetPresentationTestNg, GetCurrentScrollHeight001, TestSize.Level1) +{ + SheetPresentationTestNg::SetUpTestCase(); + auto callback = [](const std::string&) {}; + auto sheetNode = FrameNode::CreateFrameNode(V2::SHEET_PAGE_TAG, ElementRegister::GetInstance()->MakeUniqueId(), + AceType::MakeRefPtr( + ElementRegister::GetInstance()->MakeUniqueId(), V2::TEXT_ETS_TAG, std::move(callback))); + auto sheetPattern = sheetNode->GetPattern(); + ASSERT_NE(sheetPattern, nullptr); + auto scrollNode = sheetPattern->GetSheetScrollNode(); + CHECK_NULL_VOID(scrollNode); + auto scrollPattern = scrollNode->GetPattern(); + CHECK_NULL_VOID(scrollPattern); + scrollPattern->currentOffset_ = -100.0f; + sheetPattern->scrollHeight_ = 200.0f; + + sheetPattern->GetCurrentScrollHeight(); + EXPECT_EQ(sheetPattern->scrollHeight_, 100.0f); + SheetPresentationTestNg::TearDownTestCase(); +} + +/** + * @tc.name: UpdateSheetWhenSheetTypeChanged001 + * @tc.desc: UpdateSheetWhenSheetTypeChanged + * @tc.type: FUNC + */ +HWTEST_F(SheetPresentationTestNg, UpdateSheetWhenSheetTypeChanged001, TestSize.Level1) +{ + SheetPresentationTestNg::SetUpTestCase(); + auto callback = [](const std::string&) {}; + auto sheetNode = FrameNode::CreateFrameNode(V2::SHEET_PAGE_TAG, ElementRegister::GetInstance()->MakeUniqueId(), + AceType::MakeRefPtr( + ElementRegister::GetInstance()->MakeUniqueId(), V2::TEXT_ETS_TAG, std::move(callback))); + auto sheetPattern = sheetNode->GetPattern(); + ASSERT_NE(sheetPattern, nullptr); + sheetPattern->sheetType_ = SheetType::SHEET_POPUP; + sheetNode->isRenderDirtyMarked_ = false; + sheetNode->isLayoutDirtyMarked_ = false; + + sheetPattern->UpdateSheetWhenSheetTypeChanged(); + EXPECT_TRUE(sheetNode->isRenderDirtyMarked_); + SheetPresentationTestNg::TearDownTestCase(); +} } // 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 2eee3c3613e..6ecbdce1c29 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 -- Gitee