diff --git a/src/font_collection.h b/src/font_collection.h index b5ba03ea92f..865af8b3807 100644 --- a/src/font_collection.h +++ b/src/font_collection.h @@ -89,8 +89,6 @@ class FontCollection { size_t cache_capacity_ = DEFAULT_CACHE_CAPACITY; // Cache minikin font collections to prevent slow disk reads. - // TODO(garyq): Implement optional low-memory optimized system to prevent - // fonts building up in memory. std::unordered_map> minikin_font_collection_map_; @@ -105,8 +103,6 @@ class FontCollection { static const std::string GetDefaultFamilyName() { return DEFAULT_FAMILY_NAME; }; - - // TODO(chinmaygarde): Caches go here. }; } // namespace txt diff --git a/src/paragraph.cc b/src/paragraph.cc index 8f4221e6188..3b07c4ee70a 100644 --- a/src/paragraph.cc +++ b/src/paragraph.cc @@ -98,7 +98,6 @@ void GetFontAndMinikinPaint(const TextStyle& style, paint->size = style.font_size; paint->letterSpacing = style.letter_spacing; paint->wordSpacing = style.word_spacing; - // TODO(abarth): word_spacing. } void GetPaint(const TextStyle& style, SkPaint* paint) { @@ -187,8 +186,6 @@ void Paragraph::Layout(double width, bool force) { for (size_t i = 0; i < x_queue.size(); ++i) { record_index = records_.size() - (x_queue.size() - i); records_[record_index].SetOffset(SkPoint::Make(x_queue[i], y)); - // TODO(garyq): Fix alignment for paragraphs with multiple styles per - // line. switch (paragraph_style_.text_align) { case TextAlign::left: break; @@ -303,8 +300,6 @@ void Paragraph::Layout(double width, bool force) { // TODO(abarth): We could keep the same SkTextBlobBuilder as long as the // color stayed the same. - // TODO(garyq): Ensure that the typeface does not change throughout a - // run. SkPaint::FontMetrics metrics; paint.getFontMetrics(&metrics); // Apply additional word spacing if the text is justified. @@ -471,6 +466,7 @@ void Paragraph::PaintDecorations(SkCanvas* canvas, // This is set to 2 for the double line style int decoration_count = 1; + // Filled when drawing wavy decorations. std::vector wave_coords; double width = blob->bounds().fRight + blob->bounds().fLeft; @@ -525,9 +521,9 @@ void Paragraph::PaintDecorations(SkCanvas* canvas, // Underline if (style.decoration & 0x1) { if (style.decoration_style != TextDecorationStyle::kWavy) - canvas->drawLine(x, y + metrics.fUnderlineThickness + y_offset, - x + width, - y + metrics.fUnderlineThickness + y_offset, paint); + canvas->drawLine(x, y + metrics.fUnderlinePosition + y_offset, + x + width, y + metrics.fUnderlinePosition + y_offset, + paint); else PaintWavyDecoration(canvas, wave_coords, paint, x, y, metrics.fUnderlineThickness, width); diff --git a/src/paragraph.h b/src/paragraph.h index 85b45811eb2..04ed7e7a60b 100644 --- a/src/paragraph.h +++ b/src/paragraph.h @@ -72,6 +72,7 @@ class Paragraph { FRIEND_TEST(RenderTest, JustifyAlignParagraph); FRIEND_TEST(RenderTest, DecorationsParagraph); FRIEND_TEST(RenderTest, ItalicsParagraph); + FRIEND_TEST(RenderTest, ChineseParagraph); std::vector text_; StyledRuns runs_; diff --git a/src/styled_runs.h b/src/styled_runs.h index eedd9e7a89e..d61ea1c57f6 100644 --- a/src/styled_runs.h +++ b/src/styled_runs.h @@ -66,6 +66,7 @@ class StyledRuns { FRIEND_TEST(RenderTest, JustifyAlignParagraph); FRIEND_TEST(RenderTest, DecorationsParagraph); FRIEND_TEST(RenderTest, ItalicsParagraph); + FRIEND_TEST(RenderTest, ChineseParagraph); struct IndexedRun { size_t style_index = 0; diff --git a/tests/txt/paragraph_unittests.cc b/tests/txt/paragraph_unittests.cc index 7509e2e05d5..5cb2a75bc64 100644 --- a/tests/txt/paragraph_unittests.cc +++ b/tests/txt/paragraph_unittests.cc @@ -750,4 +750,48 @@ TEST_F(RenderTest, ItalicsParagraph) { ASSERT_TRUE(Snapshot()); } +TEST_F(RenderTest, ChineseParagraph) { + const char* text = + "左線読設重説切後碁給能上目秘使約。満毎冠行来昼本可必図将発確年。今属場育" + "図情闘陰野高備込制詩西校客。審対江置講今固残必託地集済決維駆年策。立得庭" + "際輝求佐抗蒼提夜合逃表。注統天言件自謙雅載報紙喪。作画稿愛器灯女書利変探" + "訃第金線朝開化建。子戦年帝励害表月幕株漠新期刊人秘。図的海力生禁挙保天戦" + "聞条年所在口。"; + auto icu_text = icu::UnicodeString::fromUTF8(text); + std::u16string u16_text(icu_text.getBuffer(), + icu_text.getBuffer() + icu_text.length()); + + txt::ParagraphStyle paragraph_style; + paragraph_style.max_lines = 14; + auto font_collection = FontCollection::GetFontCollection(txt::GetFontDir()); + txt::ParagraphBuilder builder(paragraph_style, &font_collection); + + txt::TextStyle text_style; + text_style.color = SK_ColorBLACK; + text_style.font_size = 35; + text_style.letter_spacing = 2; + text_style.font_family = "Source Han Serif CN"; + text_style.decoration = txt::TextDecoration(0x1 | 0x2 | 0x4); + text_style.decoration_style = txt::TextDecorationStyle::kSolid; + text_style.decoration_color = SK_ColorBLACK; + builder.PushStyle(text_style); + + builder.AddText(u16_text); + + builder.Pop(); + + auto paragraph = builder.Build(); + paragraph->Layout(GetTestCanvasWidth() - 100); + + paragraph->Paint(GetCanvas(), 0, 0); + + ASSERT_EQ(paragraph->runs_.runs_.size(), 1ull); + ASSERT_EQ(paragraph->runs_.styles_.size(), 1ull); + ASSERT_TRUE(paragraph->runs_.styles_[0].equals(text_style)); + ASSERT_EQ(paragraph->records_[0].style().color, text_style.color); + ASSERT_EQ(paragraph->records_.size(), 7ull); + + ASSERT_TRUE(Snapshot()); +} + } // namespace txt diff --git a/tests/data/Bold.ttf b/third_party/fonts/Bold.ttf similarity index 100% rename from tests/data/Bold.ttf rename to third_party/fonts/Bold.ttf diff --git a/tests/data/Bold.ttx b/third_party/fonts/Bold.ttx similarity index 100% rename from tests/data/Bold.ttx rename to third_party/fonts/Bold.ttx diff --git a/tests/data/BoldItalic.ttf b/third_party/fonts/BoldItalic.ttf similarity index 100% rename from tests/data/BoldItalic.ttf rename to third_party/fonts/BoldItalic.ttf diff --git a/tests/data/BoldItalic.ttx b/third_party/fonts/BoldItalic.ttx similarity index 100% rename from tests/data/BoldItalic.ttx rename to third_party/fonts/BoldItalic.ttx diff --git a/tests/data/ColorEmojiFont.ttf b/third_party/fonts/ColorEmojiFont.ttf similarity index 100% rename from tests/data/ColorEmojiFont.ttf rename to third_party/fonts/ColorEmojiFont.ttf diff --git a/tests/data/ColorEmojiFont.ttx b/third_party/fonts/ColorEmojiFont.ttx similarity index 100% rename from tests/data/ColorEmojiFont.ttx rename to third_party/fonts/ColorEmojiFont.ttx diff --git a/tests/data/ColorTextMixedEmojiFont.ttf b/third_party/fonts/ColorTextMixedEmojiFont.ttf similarity index 100% rename from tests/data/ColorTextMixedEmojiFont.ttf rename to third_party/fonts/ColorTextMixedEmojiFont.ttf diff --git a/tests/data/ColorTextMixedEmojiFont.ttx b/third_party/fonts/ColorTextMixedEmojiFont.ttx similarity index 100% rename from tests/data/ColorTextMixedEmojiFont.ttx rename to third_party/fonts/ColorTextMixedEmojiFont.ttx diff --git a/tests/data/Emoji.ttf b/third_party/fonts/Emoji.ttf similarity index 100% rename from tests/data/Emoji.ttf rename to third_party/fonts/Emoji.ttf diff --git a/tests/data/Emoji.ttx b/third_party/fonts/Emoji.ttx similarity index 100% rename from tests/data/Emoji.ttx rename to third_party/fonts/Emoji.ttx diff --git a/tests/data/HomemadeApple-LICENSE.txt b/third_party/fonts/HomemadeApple-LICENSE.txt similarity index 100% rename from tests/data/HomemadeApple-LICENSE.txt rename to third_party/fonts/HomemadeApple-LICENSE.txt diff --git a/tests/data/HomemadeApple.ttf b/third_party/fonts/HomemadeApple.ttf similarity index 100% rename from tests/data/HomemadeApple.ttf rename to third_party/fonts/HomemadeApple.ttf diff --git a/tests/data/Italic.ttf b/third_party/fonts/Italic.ttf similarity index 100% rename from tests/data/Italic.ttf rename to third_party/fonts/Italic.ttf diff --git a/tests/data/Italic.ttx b/third_party/fonts/Italic.ttx similarity index 100% rename from tests/data/Italic.ttx rename to third_party/fonts/Italic.ttx diff --git a/tests/data/Ja.ttf b/third_party/fonts/Ja.ttf similarity index 100% rename from tests/data/Ja.ttf rename to third_party/fonts/Ja.ttf diff --git a/tests/data/Ja.ttx b/third_party/fonts/Ja.ttx similarity index 100% rename from tests/data/Ja.ttx rename to third_party/fonts/Ja.ttx diff --git a/third_party/fonts/Katibeh-LICENSE.txt b/third_party/fonts/Katibeh-LICENSE.txt new file mode 100644 index 00000000000..b66a0c31aab --- /dev/null +++ b/third_party/fonts/Katibeh-LICENSE.txt @@ -0,0 +1,92 @@ +Copyright 2015, 2016 KB-Studio (www.k-b-studio.com|tarobish@gmail.com). Copyright 2015, 2016 Lasse Fister (lasse@graphicore.de). Copyright 2015, 2016 Eduardo Tunni(edu@tipo.net.ar). +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/third_party/fonts/Katibeh-Regular.ttf b/third_party/fonts/Katibeh-Regular.ttf new file mode 100644 index 00000000000..ccbb8f0de2a Binary files /dev/null and b/third_party/fonts/Katibeh-Regular.ttf differ diff --git a/tests/data/Ko.ttf b/third_party/fonts/Ko.ttf similarity index 100% rename from tests/data/Ko.ttf rename to third_party/fonts/Ko.ttf diff --git a/tests/data/Ko.ttx b/third_party/fonts/Ko.ttx similarity index 100% rename from tests/data/Ko.ttx rename to third_party/fonts/Ko.ttx diff --git a/tests/data/MultiAxis.ttf b/third_party/fonts/MultiAxis.ttf similarity index 100% rename from tests/data/MultiAxis.ttf rename to third_party/fonts/MultiAxis.ttf diff --git a/tests/data/MultiAxis.ttx b/third_party/fonts/MultiAxis.ttx similarity index 100% rename from tests/data/MultiAxis.ttx rename to third_party/fonts/MultiAxis.ttx diff --git a/tests/data/NoCmapFormat14.ttf b/third_party/fonts/NoCmapFormat14.ttf similarity index 100% rename from tests/data/NoCmapFormat14.ttf rename to third_party/fonts/NoCmapFormat14.ttf diff --git a/tests/data/NoCmapFormat14.ttx b/third_party/fonts/NoCmapFormat14.ttx similarity index 100% rename from tests/data/NoCmapFormat14.ttx rename to third_party/fonts/NoCmapFormat14.ttx diff --git a/tests/data/NoGlyphFont.ttf b/third_party/fonts/NoGlyphFont.ttf similarity index 100% rename from tests/data/NoGlyphFont.ttf rename to third_party/fonts/NoGlyphFont.ttf diff --git a/tests/data/NoGlyphFont.ttx b/third_party/fonts/NoGlyphFont.ttx similarity index 100% rename from tests/data/NoGlyphFont.ttx rename to third_party/fonts/NoGlyphFont.ttx diff --git a/tests/data/Regular.ttf b/third_party/fonts/Regular.ttf similarity index 100% rename from tests/data/Regular.ttf rename to third_party/fonts/Regular.ttf diff --git a/tests/data/Regular.ttx b/third_party/fonts/Regular.ttx similarity index 100% rename from tests/data/Regular.ttx rename to third_party/fonts/Regular.ttx diff --git a/tests/data/Roboto-Black.ttf b/third_party/fonts/Roboto-Black.ttf similarity index 100% rename from tests/data/Roboto-Black.ttf rename to third_party/fonts/Roboto-Black.ttf diff --git a/tests/data/Roboto-BlackItalic.ttf b/third_party/fonts/Roboto-BlackItalic.ttf similarity index 100% rename from tests/data/Roboto-BlackItalic.ttf rename to third_party/fonts/Roboto-BlackItalic.ttf diff --git a/tests/data/Roboto-Bold.ttf b/third_party/fonts/Roboto-Bold.ttf similarity index 100% rename from tests/data/Roboto-Bold.ttf rename to third_party/fonts/Roboto-Bold.ttf diff --git a/tests/data/Roboto-BoldItalic.ttf b/third_party/fonts/Roboto-BoldItalic.ttf similarity index 100% rename from tests/data/Roboto-BoldItalic.ttf rename to third_party/fonts/Roboto-BoldItalic.ttf diff --git a/tests/data/Roboto-Italic.ttf b/third_party/fonts/Roboto-Italic.ttf similarity index 100% rename from tests/data/Roboto-Italic.ttf rename to third_party/fonts/Roboto-Italic.ttf diff --git a/tests/data/Roboto-Light.ttf b/third_party/fonts/Roboto-Light.ttf similarity index 100% rename from tests/data/Roboto-Light.ttf rename to third_party/fonts/Roboto-Light.ttf diff --git a/tests/data/Roboto-LightItalic.ttf b/third_party/fonts/Roboto-LightItalic.ttf similarity index 100% rename from tests/data/Roboto-LightItalic.ttf rename to third_party/fonts/Roboto-LightItalic.ttf diff --git a/tests/data/Roboto-Medium.ttf b/third_party/fonts/Roboto-Medium.ttf similarity index 100% rename from tests/data/Roboto-Medium.ttf rename to third_party/fonts/Roboto-Medium.ttf diff --git a/tests/data/Roboto-MediumItalic.ttf b/third_party/fonts/Roboto-MediumItalic.ttf similarity index 100% rename from tests/data/Roboto-MediumItalic.ttf rename to third_party/fonts/Roboto-MediumItalic.ttf diff --git a/tests/data/Roboto-Regular.ttf b/third_party/fonts/Roboto-Regular.ttf similarity index 100% rename from tests/data/Roboto-Regular.ttf rename to third_party/fonts/Roboto-Regular.ttf diff --git a/tests/data/Roboto-Thin.ttf b/third_party/fonts/Roboto-Thin.ttf similarity index 100% rename from tests/data/Roboto-Thin.ttf rename to third_party/fonts/Roboto-Thin.ttf diff --git a/tests/data/Roboto-ThinItalic.ttf b/third_party/fonts/Roboto-ThinItalic.ttf similarity index 100% rename from tests/data/Roboto-ThinItalic.ttf rename to third_party/fonts/Roboto-ThinItalic.ttf diff --git a/third_party/fonts/SourceHanSerif-LICENSE.txt b/third_party/fonts/SourceHanSerif-LICENSE.txt new file mode 100644 index 00000000000..d952d62c065 --- /dev/null +++ b/third_party/fonts/SourceHanSerif-LICENSE.txt @@ -0,0 +1,92 @@ +This Font Software is licensed under the SIL Open Font License, +Version 1.1. + +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font +creation efforts of academic and linguistic communities, and to +provide a free and open framework in which fonts may be shared and +improved in partnership with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply to +any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software +components as distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, +deleting, or substituting -- in part or in whole -- any of the +components of the Original Version, by changing formats or by porting +the Font Software to a new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, +modify, redistribute, and sell modified and unmodified copies of the +Font Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, in +Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the +corresponding Copyright Holder. This restriction only applies to the +primary font name as presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created using +the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/third_party/fonts/SourceHanSerifCN-Bold.otf b/third_party/fonts/SourceHanSerifCN-Bold.otf new file mode 100644 index 00000000000..77656b1999c Binary files /dev/null and b/third_party/fonts/SourceHanSerifCN-Bold.otf differ diff --git a/third_party/fonts/SourceHanSerifCN-Regular.otf b/third_party/fonts/SourceHanSerifCN-Regular.otf new file mode 100644 index 00000000000..c5930e7d277 Binary files /dev/null and b/third_party/fonts/SourceHanSerifCN-Regular.otf differ diff --git a/tests/data/TextEmojiFont.ttf b/third_party/fonts/TextEmojiFont.ttf similarity index 100% rename from tests/data/TextEmojiFont.ttf rename to third_party/fonts/TextEmojiFont.ttf diff --git a/tests/data/TextEmojiFont.ttx b/third_party/fonts/TextEmojiFont.ttx similarity index 100% rename from tests/data/TextEmojiFont.ttx rename to third_party/fonts/TextEmojiFont.ttx diff --git a/tests/data/UnicodeBMPOnly.ttf b/third_party/fonts/UnicodeBMPOnly.ttf similarity index 100% rename from tests/data/UnicodeBMPOnly.ttf rename to third_party/fonts/UnicodeBMPOnly.ttf diff --git a/tests/data/UnicodeBMPOnly.ttx b/third_party/fonts/UnicodeBMPOnly.ttx similarity index 100% rename from tests/data/UnicodeBMPOnly.ttx rename to third_party/fonts/UnicodeBMPOnly.ttx diff --git a/tests/data/UnicodeBMPOnly2.ttf b/third_party/fonts/UnicodeBMPOnly2.ttf similarity index 100% rename from tests/data/UnicodeBMPOnly2.ttf rename to third_party/fonts/UnicodeBMPOnly2.ttf diff --git a/tests/data/UnicodeBMPOnly2.ttx b/third_party/fonts/UnicodeBMPOnly2.ttx similarity index 100% rename from tests/data/UnicodeBMPOnly2.ttx rename to third_party/fonts/UnicodeBMPOnly2.ttx diff --git a/tests/data/UnicodeUCS4.ttf b/third_party/fonts/UnicodeUCS4.ttf similarity index 100% rename from tests/data/UnicodeUCS4.ttf rename to third_party/fonts/UnicodeUCS4.ttf diff --git a/tests/data/UnicodeUCS4.ttx b/third_party/fonts/UnicodeUCS4.ttx similarity index 100% rename from tests/data/UnicodeUCS4.ttx rename to third_party/fonts/UnicodeUCS4.ttx diff --git a/tests/data/VariationSelectorTest-Regular.ttf b/third_party/fonts/VariationSelectorTest-Regular.ttf similarity index 100% rename from tests/data/VariationSelectorTest-Regular.ttf rename to third_party/fonts/VariationSelectorTest-Regular.ttf diff --git a/tests/data/VariationSelectorTest-Regular.ttx b/third_party/fonts/VariationSelectorTest-Regular.ttx similarity index 100% rename from tests/data/VariationSelectorTest-Regular.ttx rename to third_party/fonts/VariationSelectorTest-Regular.ttx diff --git a/tests/data/ZhHans.ttf b/third_party/fonts/ZhHans.ttf similarity index 100% rename from tests/data/ZhHans.ttf rename to third_party/fonts/ZhHans.ttf diff --git a/tests/data/ZhHans.ttx b/third_party/fonts/ZhHans.ttx similarity index 100% rename from tests/data/ZhHans.ttx rename to third_party/fonts/ZhHans.ttx diff --git a/tests/data/ZhHant.ttf b/third_party/fonts/ZhHant.ttf similarity index 100% rename from tests/data/ZhHant.ttf rename to third_party/fonts/ZhHant.ttf diff --git a/tests/data/ZhHant.ttx b/third_party/fonts/ZhHant.ttx similarity index 100% rename from tests/data/ZhHant.ttx rename to third_party/fonts/ZhHant.ttx diff --git a/tests/data/emoji.xml b/third_party/fonts/emoji.xml similarity index 100% rename from tests/data/emoji.xml rename to third_party/fonts/emoji.xml diff --git a/tests/data/itemize.xml b/third_party/fonts/itemize.xml similarity index 100% rename from tests/data/itemize.xml rename to third_party/fonts/itemize.xml