From 6a8aca7e4a6ed39d9bb12e8aea08e56aa1d0e75d Mon Sep 17 00:00:00 2001 From: xuyue Date: Wed, 9 Jul 2025 15:07:35 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90RichEditor=E3=80=91=E8=A1=A5=E5=85=85I?= =?UTF-8?q?mageHover=E3=80=81DeleteToMaxLength=E7=94=A8=E4=BE=8B=E8=A6=86?= =?UTF-8?q?=E7=9B=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: xuyue Change-Id: I6648edd5b849e4e20f34a8652e717f8911811d45 --- .../rich_editor/rich_editor_common_test_ng.h | 1 + .../rich_editor/rich_editor_mouse_test.cpp | 50 +++++++++++++++++++ .../rich_editor_pattern_test_ng.cpp | 27 ++++++++++ 3 files changed, 78 insertions(+) diff --git a/test/unittest/core/pattern/rich_editor/rich_editor_common_test_ng.h b/test/unittest/core/pattern/rich_editor/rich_editor_common_test_ng.h index d1a02c96c1d2..5c418c02e81e 100644 --- a/test/unittest/core/pattern/rich_editor/rich_editor_common_test_ng.h +++ b/test/unittest/core/pattern/rich_editor/rich_editor_common_test_ng.h @@ -69,6 +69,7 @@ const CalcLength CALC_LENGTH_CALC { 10.0, DimensionUnit::CALC }; const CalcLength ERROR_CALC_LENGTH_CALC { -10.0, DimensionUnit::CALC }; const Dimension CALC_TEST { 10.0, DimensionUnit::CALC }; const Dimension ERROR_CALC_TEST { -10.0, DimensionUnit::CALC }; +const Offset MOUSE_LOCAL_LOCATION = { 1, 1 }; const Offset MOUSE_GLOBAL_LOCATION = { 100, 200 }; constexpr int32_t WORD_LIMIT_LEN = 6; constexpr int32_t WORD_LIMIT_RETURN = 2; diff --git a/test/unittest/core/pattern/rich_editor/rich_editor_mouse_test.cpp b/test/unittest/core/pattern/rich_editor/rich_editor_mouse_test.cpp index b150cbdd00ca..0b0a23933c9c 100644 --- a/test/unittest/core/pattern/rich_editor/rich_editor_mouse_test.cpp +++ b/test/unittest/core/pattern/rich_editor/rich_editor_mouse_test.cpp @@ -1207,4 +1207,54 @@ HWTEST_F(RichEditorMouseTest, AdjustMouseLocalOffset, TestSize.Level1) EXPECT_EQ(richEditorPattern->textSelector_.GetTextEnd(), 6); } +/** + * @tc.name: HandleImageHoverEventTest001 + * @tc.desc: test HandleImageHoverEvent + * @tc.type: FUNC + */ +HWTEST_F(RichEditorMouseTest, HandleImageHoverEvent001, TestSize.Level1) +{ + ASSERT_NE(richEditorNode_, nullptr); + auto richEditorPattern = richEditorNode_->GetPattern(); + ASSERT_NE(richEditorPattern, nullptr); + + MouseInfo mouseInfo; + mouseInfo.SetAction(MouseAction::MOVE); + mouseInfo.SetLocalLocation(MOUSE_LOCAL_LOCATION); + richEditorPattern->isMousePressed_ = false; + OffsetF frameOffset{ 0.0f, 0.0f }; + SizeF frameSize{ 10.0f, 10.0f }; + + WeakPtr hoverableNode1; + + auto imageSpanNode2 = AceType::MakeRefPtr(V2::IMAGE_ETS_TAG, 0); + WeakPtr hoverableNode2 = imageSpanNode2; + + auto imageSpanNode3 = AceType::MakeRefPtr(V2::IMAGE_ETS_TAG, 0); + imageSpanNode3->SetImageItem(nullptr); + WeakPtr hoverableNode3 = imageSpanNode3; + + auto imageSpanNode4 = AceType::MakeRefPtr(V2::IMAGE_ETS_TAG, 0); + imageSpanNode4->GetSpanItem()->onHover_ = [](bool inHover, HoverInfo& info) {}; + WeakPtr hoverableNode4 = imageSpanNode4; + + auto imageSpanNode5 = AceType::MakeRefPtr(V2::IMAGE_ETS_TAG, 0); + imageSpanNode5->GetSpanItem()->onHover_ = [](bool inHover, HoverInfo& info) {}; + imageSpanNode5->GetGeometryNode()->SetFrameOffset(frameOffset); + imageSpanNode5->GetGeometryNode()->SetFrameSize(frameSize); + WeakPtr hoverableNode5 = imageSpanNode5; + + richEditorPattern->hoverableNodes.push_back(hoverableNode1); + richEditorPattern->hoverableNodes.push_back(hoverableNode2); + richEditorPattern->hoverableNodes.push_back(hoverableNode3); + richEditorPattern->hoverableNodes.push_back(hoverableNode4); + richEditorPattern->hoverableNodes.push_back(hoverableNode5); + + richEditorPattern->lastHoverSpanItem_ = nullptr; + richEditorPattern->HandleImageHoverEvent(mouseInfo); + + richEditorPattern->lastHoverSpanItem_ = imageSpanNode4->GetSpanItem(); + richEditorPattern->HandleImageHoverEvent(mouseInfo); +} + } \ No newline at end of file diff --git a/test/unittest/core/pattern/rich_editor/rich_editor_pattern_test_ng.cpp b/test/unittest/core/pattern/rich_editor/rich_editor_pattern_test_ng.cpp index 64d9d5d7b8bc..0f3068386a35 100644 --- a/test/unittest/core/pattern/rich_editor/rich_editor_pattern_test_ng.cpp +++ b/test/unittest/core/pattern/rich_editor/rich_editor_pattern_test_ng.cpp @@ -448,6 +448,33 @@ HWTEST_F(RichEditorPatternTestNg, DeleteToMaxLength002, TestSize.Level1) ASSERT_EQ(richEditorPattern->previewLongPress_, false); } +/** + * @tc.name: DeleteToMaxLength003 + * @tc.desc: test DeleteToMaxLength003 + * @tc.type: FUNC + */ +HWTEST_F(RichEditorPatternTestNg, DeleteToMaxLength003, TestSize.Level1) +{ + ASSERT_NE(richEditorNode_, nullptr); + auto richEditorPattern = richEditorNode_->GetPattern(); + ASSERT_NE(richEditorPattern, nullptr); + int32_t maxLen = 5; + // make textLength to 6 + ClearSpan(); + richEditorPattern->AddTextSpan(TEXT_SPAN_OPTIONS_1); + ASSERT_EQ(richEditorPattern->GetTextContentLength(), static_cast(INIT_VALUE_1.length())); + richEditorPattern->isSpanStringMode_ = true; + richEditorPattern->DeleteToMaxLength(maxLen); + richEditorPattern->isSpanStringMode_ = false; + + // make textLength to 6 + ClearSpan(); + richEditorPattern->AddTextSpan(TEXT_SPAN_OPTIONS_1); + ASSERT_EQ(richEditorPattern->GetTextContentLength(), static_cast(INIT_VALUE_1.length())); + richEditorPattern->DeleteToMaxLength(maxLen); + ASSERT_EQ(richEditorPattern->GetTextContentLength(), maxLen); +} + /** * @tc.name: RichEditorScopeTest * @tc.desc: test RichEditorScope -- Gitee