aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Ben Wagner <bungeman@google.com>2017-11-13 11:14:36 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-11-13 17:00:31 +0000
commitf1729a79379d65d7d373594e4f0d713d99beb1f2 (patch)
tree4e04e21c85b9cadf93dca3cc9e48394066050459
parentf44754a42b9d5ced2e6f075b4bd058a498488d3a (diff)
Extract Android FontMgr part of Typeface test.
Part of the Typeface test is Android specific and tests that the Android legacyMakeTypeface returns nullptr when called with a non-null family name and there is no match. A new FontMgrAndroidLegacyMakeTypeface test is introduced to test this and also properly test creating one with SkFontMgr_Android_CustomFonts. Change-Id: Iceb8b9b5490f5eeeaeac30a68daf2c4daac53c86 Reviewed-on: https://skia-review.googlesource.com/70660 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Ben Wagner <bungeman@google.com>
-rw-r--r--resources/fonts/fonts.xml32
-rw-r--r--tests/FontMgrAndroidParserTest.cpp18
-rw-r--r--tests/TypefaceTest.cpp6
3 files changed, 50 insertions, 6 deletions
diff --git a/resources/fonts/fonts.xml b/resources/fonts/fonts.xml
new file mode 100644
index 0000000000..a60d322359
--- /dev/null
+++ b/resources/fonts/fonts.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<familyset version="21">
+ <!-- first font is default -->
+ <family name="sans-serif">
+ <font weight="100" style="normal"><axis tag="wght" stylevalue="0.5"/>Distortable.ttf</font>
+ <font weight="200" style="normal"><axis tag="wght" stylevalue="0.65"/>Distortable.ttf</font>
+ <font weight="300" style="normal"><axis tag="wght" stylevalue="0.85"/>Distortable.ttf</font>
+ <font weight="400" style="normal"><axis tag="wght" stylevalue="1.0"/>Distortable.ttf</font>
+ <font weight="500" style="normal"><axis tag="wght" stylevalue="1.2"/>Distortable.ttf</font>
+ <font weight="600" style="normal"><axis tag="wght" stylevalue="1.4"/>Distortable.ttf</font>
+ <font weight="700" style="normal"><axis tag="wght" stylevalue="1.6"/>Distortable.ttf</font>
+ <font weight="800" style="normal"><axis tag="wght" stylevalue="1.8"/>Distortable.ttf</font>
+ <font weight="900" style="normal"><axis tag="wght" stylevalue="2.0"/>Distortable.ttf</font>
+ </family>
+ <alias name="sans-serif-thin" to="sans-serif" weight="100" />
+ <alias name="sans-serif-light" to="sans-serif" weight="300" />
+ <alias name="sans-serif-black" to="sans-serif" weight="900" />
+ <alias name="arial" to="sans-serif" />
+ <alias name="helvetica" to="sans-serif" />
+ <alias name="tahoma" to="sans-serif" />
+ <alias name="verdana" to="sans-serif" />
+
+ <!-- fallback fonts -->
+ <family name="Em"><font weight="400" style="normal">Em.ttf</font></family>
+ <family name="HangingS"><font weight="400" style="normal">HangingS.ttf</font></family>
+ <family name="HintGasp"><font weight="400" style="normal">hintgasp.ttf</font></family>
+ <family name="RTeallyBigA"><font weight="400" style="normal">ReallyBigA.ttf</font></family>
+ <family name="Spider"><font weight="400" style="normal">SpiderSymbol.ttf</font></family>
+ <family name="TestTTC0"><font weight="400" style="normal" index="0">test.ttc</font></family>
+ <family name="TestTTC1"><font weight="400" style="normal" index="1">test.ttc</font></family>
+ <family name="Funkster"><font weight="400" style="normal">Funkster.ttf</font></family>
+</familyset>
diff --git a/tests/FontMgrAndroidParserTest.cpp b/tests/FontMgrAndroidParserTest.cpp
index b5346ef5b6..cd10d04dc6 100644
--- a/tests/FontMgrAndroidParserTest.cpp
+++ b/tests/FontMgrAndroidParserTest.cpp
@@ -8,7 +8,9 @@
#include "Resources.h"
#include "SkCommandLineFlags.h"
#include "SkFixed.h"
+#include "SkFontMgr_android.h"
#include "SkFontMgr_android_parser.h"
+#include "SkTypeface.h"
#include "Test.h"
#include <cmath>
@@ -220,3 +222,19 @@ DEF_TEST(FontMgrAndroidParser, reporter) {
SkDebugf("---- Resource files missing for FontConfigParser test\n");
}
}
+
+DEF_TEST(FontMgrAndroidLegacyMakeTypeface, reporter) {
+ SkString basePath = GetResourcePath("fonts/");
+ SkString fontsXml = GetResourcePath("fonts/fonts.xml");
+
+ SkFontMgr_Android_CustomFonts custom;
+ custom.fSystemFontUse = SkFontMgr_Android_CustomFonts::kOnlyCustom;
+ custom.fBasePath = basePath.c_str();
+ custom.fFontsXml = fontsXml.c_str();
+ custom.fFallbackFontsXml = nullptr;
+ custom.fIsolated = false;
+
+ sk_sp<SkFontMgr> fm(SkFontMgr_New_Android(&custom));
+ sk_sp<SkTypeface> t(fm->legacyMakeTypeface("non-existent-font", SkFontStyle()));
+ REPORTER_ASSERT(reporter, nullptr == t);
+}
diff --git a/tests/TypefaceTest.cpp b/tests/TypefaceTest.cpp
index 4ab8c5eec6..591b437ca5 100644
--- a/tests/TypefaceTest.cpp
+++ b/tests/TypefaceTest.cpp
@@ -184,12 +184,6 @@ DEF_TEST(Typeface, reporter) {
REPORTER_ASSERT(reporter, SkTypeface::Equal(nullptr, t2.get()));
REPORTER_ASSERT(reporter, SkTypeface::Equal(t1.get(), nullptr));
REPORTER_ASSERT(reporter, SkTypeface::Equal(t2.get(), nullptr));
-
- // Disabled temporarily. TODO(mtklein): test Android SkFontMgr directly?
-#if 0 && defined(SK_BUILD_FOR_ANDROID)
- sk_sp<SkTypeface> t3(SkTypeface::MakeFromName("non-existent-font", SkFontStyle()));
- REPORTER_ASSERT(reporter, nullptr == t3);
-#endif
}
namespace {