diff --git a/third_party/txt/BUILD.gn b/third_party/txt/BUILD.gn index e5d97d024b249..76163e19269a4 100644 --- a/third_party/txt/BUILD.gn +++ b/third_party/txt/BUILD.gn @@ -147,6 +147,7 @@ if (enable_unittests) { sources = [ "tests/font_collection_tests.cc", + "tests/paragraph_builder_skia_tests.cc", "tests/paragraph_unittests.cc", "tests/txt_run_all_unittests.cc", ] diff --git a/third_party/txt/src/skia/paragraph_builder_skia.cc b/third_party/txt/src/skia/paragraph_builder_skia.cc index 443c2b9ca2b08..8c6381a6b8a5b 100644 --- a/third_party/txt/src/skia/paragraph_builder_skia.cc +++ b/third_party/txt/src/skia/paragraph_builder_skia.cc @@ -119,6 +119,7 @@ skt::ParagraphStyle ParagraphBuilderSkia::TxtToSkia(const ParagraphStyle& txt) { strut_style.setFontSize(SkDoubleToScalar(txt.strut_font_size)); strut_style.setHeight(SkDoubleToScalar(txt.strut_height)); strut_style.setHeightOverride(txt.strut_has_height_override); + strut_style.setHalfLeading(txt.strut_half_leading); std::vector strut_fonts; std::transform(txt.strut_font_families.begin(), txt.strut_font_families.end(), diff --git a/third_party/txt/src/skia/paragraph_builder_skia.h b/third_party/txt/src/skia/paragraph_builder_skia.h index f14f7fe41f591..6269285899f58 100644 --- a/third_party/txt/src/skia/paragraph_builder_skia.h +++ b/third_party/txt/src/skia/paragraph_builder_skia.h @@ -45,6 +45,8 @@ class ParagraphBuilderSkia : public ParagraphBuilder { virtual std::unique_ptr Build() override; private: + friend class SkiaParagraphBuilderTests_ParagraphStrutStyle_Test; + skia::textlayout::ParagraphPainter::PaintID CreatePaintID( const flutter::DlPaint& dl_paint); skia::textlayout::ParagraphStyle TxtToSkia(const ParagraphStyle& txt); diff --git a/third_party/txt/tests/paragraph_builder_skia_tests.cc b/third_party/txt/tests/paragraph_builder_skia_tests.cc new file mode 100644 index 0000000000000..3131624be0a66 --- /dev/null +++ b/third_party/txt/tests/paragraph_builder_skia_tests.cc @@ -0,0 +1,45 @@ +/* + * Copyright 2017 Google, Inc. + * + * 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 "gtest/gtest.h" + +#include + +#include "skia/paragraph_builder_skia.h" +#include "txt/paragraph_style.h" + +namespace txt { + +class SkiaParagraphBuilderTests : public ::testing::Test { + public: + SkiaParagraphBuilderTests() {} + + void SetUp() override {} +}; + +TEST_F(SkiaParagraphBuilderTests, ParagraphStrutStyle) { + ParagraphStyle style = ParagraphStyle(); + auto collection = std::make_shared(); + auto builder = ParagraphBuilderSkia(style, collection, false); + + auto strut_style = builder.TxtToSkia(style).getStrutStyle(); + ASSERT_FALSE(strut_style.getHalfLeading()); + + style.strut_half_leading = true; + strut_style = builder.TxtToSkia(style).getStrutStyle(); + ASSERT_TRUE(strut_style.getHalfLeading()); +} +} // namespace txt