From 0cba4f552814fd8c164ca1f75e7009ae7eb1ab20 Mon Sep 17 00:00:00 2001 From: caocan Date: Mon, 30 Jun 2025 17:46:22 +0800 Subject: [PATCH] add Text tdd 0630 Signed-off-by: caocan --- .../unittest/core/pattern/text_input/BUILD.gn | 1 + .../text_input/text_field_pattern_testten.cpp | 183 ++++++++++++++++++ .../core/pattern/text_input/text_input_base.h | 5 + 3 files changed, 189 insertions(+) create mode 100755 test/unittest/core/pattern/text_input/text_field_pattern_testten.cpp diff --git a/test/unittest/core/pattern/text_input/BUILD.gn b/test/unittest/core/pattern/text_input/BUILD.gn index 3e25d8a40f0..110032f8c9d 100644 --- a/test/unittest/core/pattern/text_input/BUILD.gn +++ b/test/unittest/core/pattern/text_input/BUILD.gn @@ -37,6 +37,7 @@ ace_unittest("TextInputTest") { "text_field_pattern_testnine.cpp", "text_field_pattern_testseven.cpp", "text_field_pattern_testsix.cpp", + "text_field_pattern_testten.cpp", "text_field_pattern_testthree.cpp", "text_field_pattern_testtwo.cpp", "text_input_area_model_test.cpp", diff --git a/test/unittest/core/pattern/text_input/text_field_pattern_testten.cpp b/test/unittest/core/pattern/text_input/text_field_pattern_testten.cpp new file mode 100755 index 00000000000..2b5311542b4 --- /dev/null +++ b/test/unittest/core/pattern/text_input/text_field_pattern_testten.cpp @@ -0,0 +1,183 @@ +/* + * Copyright (c) 2022-2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#include "test/mock/base/mock_task_executor.h" +#include "test/mock/core/render/mock_paragraph.h" +#include "text_input_base.h" + +#include "base/memory/ace_type.h" +#include "core/components_ng/pattern/text/span/span_object.h" +#include "core/components_ng/pattern/text/span_node.h" + +namespace OHOS::Ace::NG { + +void TextFieldPatternTestten::SetUp() {} + +void TextFieldPatternTestten::TearDown() {} + +/** + * @tc.name: HandleTouchEvent001 + * @tc.desc: Test HandleTouchEvent + * @tc.type: FUNC + */ +HWTEST_F(TextFieldPatternTestten, HandleTouchEvent001, TestSize.Level1) +{ + auto frameNode = FrameNode::CreateFrameNode(V2::TEXT_ETS_TAG, 0, AceType::MakeRefPtr()); + ASSERT_NE(frameNode, nullptr); + auto textFieldPattern = frameNode->GetPattern(); + ASSERT_NE(textFieldPattern, nullptr); + TouchEventInfo info = TouchEventInfo("touch"); + auto touchInfo = textFieldPattern->GetAcceptedTouchLocationInfo(info); + touchInfo->SetTouchType(TouchType::MOVE); + textFieldPattern->selectOverlay_->isUsingMouse_ = true; + textFieldPattern->HandleTouchEvent(info); + EXPECT_EQ(textFieldPattern->moveCaretState_.isTouchCaret, false); +} + +/** + * @tc.name: HandleTouchEvent002 + * @tc.desc: Test HandleTouchEvent + * @tc.type: FUNC + */ +HWTEST_F(TextFieldPatternTestten, HandleTouchEvent002, TestSize.Level1) +{ + auto frameNode = FrameNode::CreateFrameNode(V2::TEXT_ETS_TAG, 0, AceType::MakeRefPtr()); + ASSERT_NE(frameNode, nullptr); + auto textFieldPattern = frameNode->GetPattern(); + ASSERT_NE(textFieldPattern, nullptr); + TouchEventInfo info = TouchEventInfo("touch"); + auto touchInfo = textFieldPattern->GetAcceptedTouchLocationInfo(info); + touchInfo->SetTouchType(TouchType::CANCEL); + textFieldPattern->magnifierController_->magnifierNodeExist_ = true; + textFieldPattern->HandleTouchEvent(info); + EXPECT_NE(textFieldPattern->magnifierController_->magnifierNodeExist_, false); +} + +/** + * @tc.name: HandleTouchDown001 + * @tc.desc: Test HandleTouchDown + * @tc.type: FUNC + */ +HWTEST_F(TextFieldPatternTestten, HandleTouchDown001, TestSize.Level1) +{ + auto textFieldPattern = AceType::MakeRefPtr(); + ASSERT_NE(textFieldPattern, nullptr); + Offset offset; + textFieldPattern->HandleTouchDown(offset); + EXPECT_EQ(textFieldPattern->magnifierController_->magnifierNodeExist_, false); +} + +/** + * @tc.name: HandleTouchUp001 + * @tc.desc: Test HandleTouchUp + * @tc.type: FUNC + */ +HWTEST_F(TextFieldPatternTestten, HandleTouchUp001, TestSize.Level1) +{ + auto frameNode = FrameNode::CreateFrameNode(V2::TEXT_ETS_TAG, 0, AceType::MakeRefPtr()); + ASSERT_NE(frameNode, nullptr); + auto textFieldPattern = frameNode->GetPattern(); + ASSERT_NE(textFieldPattern, nullptr); + textFieldPattern->magnifierController_ = AIWriteAdapter::MakeRefPtr(AIWriteAdapter::WeakClaim(AceType::RawPtr(textFieldPattern))); + textFieldPattern->HandleTouchUp(); + EXPECT_EQ(textFieldPattern->magnifierController_->magnifierNodeExist_, false); +} + +/** + * @tc.name: HandleTouchMove001 + * @tc.desc: Test HandleTouchMove + * @tc.type: FUNC + */ +HWTEST_F(TextFieldPatternTestten, HandleTouchMove001, TestSize.Level1) +{ + auto frameNode = FrameNode::CreateFrameNode(V2::TEXT_ETS_TAG, 0, AceType::MakeRefPtr()); + ASSERT_NE(frameNode, nullptr); + auto textFieldPattern = frameNode->GetPattern(); + ASSERT_NE(textFieldPattern, nullptr); + TouchLocationInfo info(100); + textFieldPattern->moveCaretState_.isMoveCaret = false; + textFieldPattern->HandleTouchMove(info); + EXPECT_NE(textFieldPattern->moveCaretState_.touchFingerId, 0); +} + +/** + * @tc.name: SetMagnifierLocalOffsetToFloatingCaretPos001 + * @tc.desc: Test SetMagnifierLocalOffsetToFloatingCaretPos + * @tc.type: FUNC + */ +HWTEST_F(TextFieldPatternTestten, SetMagnifierLocalOffsetToFloatingCaretPos001, TestSize.Level1) +{ + auto frameNode = FrameNode::CreateFrameNode(V2::TEXT_ETS_TAG, 0, AceType::MakeRefPtr()); + ASSERT_NE(frameNode, nullptr); + auto textFieldPattern = frameNode->GetPattern(); + ASSERT_NE(textFieldPattern, nullptr); + textFieldPattern->floatCaretState_.lastFloatingCursorY = 2.0f; + textFieldPattern->selectController_->floatingCaretInfo_.rect = {2, 2, 2, 2}; + textFieldPattern->SetMagnifierLocalOffsetToFloatingCaretPos(); + EXPECT_NE(textFieldPattern->magnifierController_, nullptr); +} + +/** + * @tc.name: HandleClickEvent001 + * @tc.desc: Test HandleClickEvent + * @tc.type: FUNC + */ +HWTEST_F(TextFieldPatternTestten, HandleClickEvent001, TestSize.Level1) +{ + auto frameNode = FrameNode::CreateFrameNode(V2::TEXT_ETS_TAG, 0, AceType::MakeRefPtr()); + ASSERT_NE(frameNode, nullptr); + auto textFieldPattern = frameNode->GetPattern(); + ASSERT_NE(textFieldPattern, nullptr); + GestureEvent info; + textFieldPattern->firstClickAfterLosingFocus_ = false; + textFieldPattern->hasMousePressed_ = true; + textFieldPattern->selectController_->floatingCaretInfo_.rect = {2, 2, 2, 2}; + textFieldPattern->HandleClickEvent(info); + EXPECT_NE(textFieldPattern->magnifierController_, nullptr); +} + +/** + * @tc.name: HandleBetweenSelectedPosition001 + * @tc.desc: Test HandleBetweenSelectedPosition + * @tc.type: FUNC + */ +HWTEST_F(TextFieldPatternTestten, HandleBetweenSelectedPosition001, TestSize.Level1) +{ + auto frameNode = FrameNode::CreateFrameNode(V2::TEXT_ETS_TAG, 0, AceType::MakeRefPtr()); + ASSERT_NE(frameNode, nullptr); + auto textFieldPattern = frameNode->GetPattern(); + ASSERT_NE(textFieldPattern, nullptr); + auto manager = SelectContentOverlayManager::GetOverlayManager(); + GestureEvent info; + textFieldPattern->selectOverlay_->isUsingMouse_ = false; + auto result = textFieldPattern->HandleBetweenSelectedPosition(info); + EXPECT_NE(result, true); +} + +/** + * @tc.name: ScheduleCursorTwinkling001 + * @tc.desc: Test ScheduleCursorTwinkling + * @tc.type: FUNC + */ +HWTEST_F(TextFieldPatternTestten, ScheduleCursorTwinkling001, TestSize.Level1) +{ + // auto frameNode = FrameNode::CreateFrameNode(V2::TEXT_ETS_TAG, 0, AceType::MakeRefPtr()); + // ASSERT_NE(frameNode, nullptr); + auto textFieldPattern = AceType::MakeRefPtr(); + ASSERT_NE(textFieldPattern, nullptr); + textFieldPattern->dragRecipientStatus_ = DragStatus::DRAGGING; + textFieldPattern->ScheduleCursorTwinkling(); + EXPECT_EQ(textFieldPattern->selectOverlay_, 1); +} +} // namespace OHOS::Ace::NG diff --git a/test/unittest/core/pattern/text_input/text_input_base.h b/test/unittest/core/pattern/text_input/text_input_base.h index 7abdbae59c5..47a22181cd4 100644 --- a/test/unittest/core/pattern/text_input/text_input_base.h +++ b/test/unittest/core/pattern/text_input/text_input_base.h @@ -111,6 +111,11 @@ protected: RefPtr layoutProperty_; RefPtr accessibilityProperty_; }; + +class TextFieldPatternTestten : public TestNG { + void SetUp() override; + void TearDown() override; +}; } // namespace OHOS::Ace::NG #endif // FOUNDATION_ACE_TEST_UNITTEST_CORE_PATTERN_TEXTFIELD_TEXTINPUT_TEST_NG_H \ No newline at end of file -- Gitee