1 /* 2 * Copyright (c) 2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef FOUNDATION_ACE_TEST_MOCK_CORE_RENDER_MOCK_PARAGRAPH_H 17 #define FOUNDATION_ACE_TEST_MOCK_CORE_RENDER_MOCK_PARAGRAPH_H 18 19 #include "gmock/gmock.h" 20 21 #include "core/components_ng/render/paragraph.h" 22 23 namespace OHOS::Ace::NG { 24 class MockParagraph : public Paragraph { 25 DECLARE_ACE_TYPE(MockParagraph, Paragraph); 26 27 public: 28 MockParagraph() = default; 29 ~MockParagraph() override = default; 30 31 MOCK_METHOD0(IsValid, bool()); 32 MOCK_METHOD0(PopStyle, void()); 33 MOCK_METHOD0(Build, void()); 34 MOCK_METHOD0(Reset, void()); 35 MOCK_METHOD0(GetHeight, float()); 36 MOCK_METHOD0(GetTextWidth, float()); 37 MOCK_METHOD0(GetLineCount, size_t()); 38 MOCK_METHOD0(GetMaxIntrinsicWidth, float()); 39 MOCK_METHOD0(DidExceedMaxLines, bool()); 40 MOCK_METHOD0(GetLongestLine, float()); 41 MOCK_METHOD0(GetLongestLineWithIndent, float()); 42 MOCK_METHOD0(GetMaxWidth, float()); 43 MOCK_METHOD0(GetAlphabeticBaseline, float()); 44 MOCK_METHOD0(GetParagraphText, std::u16string()); 45 MOCK_CONST_METHOD0(GetParagraphStyle, const ParagraphStyle&()); 46 MOCK_METHOD1(PushStyle, void(const TextStyle& style)); 47 MOCK_METHOD1(AddText, void(const std::u16string& text)); 48 MOCK_METHOD1(AddSymbol, void(const uint32_t& symbolId)); 49 MOCK_METHOD1(Layout, void(float width)); 50 MOCK_METHOD1(AddPlaceholder, int32_t(const PlaceholderRun& span)); 51 MOCK_METHOD1(GetRectsForPlaceholders, void(std::vector<RectF>& selectedRects)); 52 MOCK_METHOD1(SetIndents, void(const std::vector<float>& indents)); 53 MOCK_METHOD1(GetCharacterWidth, float(int32_t index)); 54 MOCK_METHOD1(SetParagraphSymbolAnimation, void(const RefPtr<FrameNode>& frameNode)); 55 MOCK_METHOD1(GetLineMetrics, TextLineMetrics(size_t lineNumber)); 56 MOCK_METHOD1(GetGlyphPositionAtCoordinate, PositionWithAffinity(const Offset& offset)); 57 MOCK_METHOD2(GetGlyphIndexByCoordinate, int32_t(const Offset& offset, bool isSelectionPos)); 58 MOCK_METHOD3(ComputeOffsetForCaretDownstream, bool(int32_t extent, CaretMetricsF& result, 59 bool needLineHighest)); 60 MOCK_METHOD3(ComputeOffsetForCaretUpstream, bool(int32_t extent, CaretMetricsF& result, 61 bool needLineHighest)); 62 MOCK_METHOD3(GetRectsForRange, void(int32_t start, int32_t end, std::vector<RectF>& selectedRects)); 63 MOCK_METHOD3(GetTightRectsForRange, void(int32_t start, int32_t end, std::vector<RectF>& selectedRects)); 64 MOCK_METHOD3(Paint, void(RSCanvas& canvas, float x, float y)); 65 #ifndef USE_ROSEN_DRAWING 66 MOCK_METHOD3(Paint, void(SkCanvas* skCanvas, float x, float y)); 67 #endif 68 MOCK_METHOD3(GetWordBoundary, bool(int32_t offset, int32_t& start, int32_t& end)); 69 CalcCaretMetricsByPosition(int32_t extent,CaretMetricsF & caretCaretMetric,TextAffinity textAffinity,bool needLineHighest)70 bool CalcCaretMetricsByPosition( 71 int32_t extent, CaretMetricsF& caretCaretMetric, TextAffinity textAffinity, bool needLineHighest) override 72 { 73 return false; 74 } 75 CalcCaretMetricsByPosition(int32_t extent,CaretMetricsF & caretCaretMetric,const OffsetF & lastTouchOffsetF,TextAffinity & textAffinity)76 bool CalcCaretMetricsByPosition(int32_t extent, CaretMetricsF& caretCaretMetric, const OffsetF& lastTouchOffsetF, 77 TextAffinity& textAffinity) override 78 { 79 return false; 80 } 81 GetLineMetricsByRectF(RectF & rect)82 LineMetrics GetLineMetricsByRectF(RectF& rect) override 83 { 84 LineMetrics lineMetrics; 85 return lineMetrics; 86 } 87 GetLineMetricsByCoordinate(const Offset & offset,LineMetrics & lineMetrics)88 bool GetLineMetricsByCoordinate(const Offset& offset, LineMetrics& lineMetrics) override 89 { 90 return true; 91 } 92 93 void UpdateColor(size_t from, size_t to, const Color& color) override; 94 95 static RefPtr<MockParagraph> GetOrCreateMockParagraph(); 96 static void TearDown(); 97 98 static RefPtr<MockParagraph> paragraph_; 99 static bool enabled_; 100 }; 101 } // namespace OHOS::Ace::NG 102 #endif // FOUNDATION_ACE_TEST_MOCK_CORE_RENDER_MOCK_PARAGRAPH_H 103