diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2021-09-03 19:59:52 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2021-09-03 19:59:52 +0000 |
commit | 2d88769f5e51d6421ffcf91064fa82297a1a9a49 (patch) | |
tree | 14e26932349bc14ca1fb8de30c47f45db4efce69 /core/tests | |
parent | d9a873a20e19962a8c225e512714d7200118681a (diff) | |
parent | 4ed687a48f6d9b3b20989ec1290c163db8265925 (diff) |
Merge "Filter Alias which points non-existing font family name" into sc-qpr1-dev
Diffstat (limited to 'core/tests')
-rw-r--r-- | core/tests/coretests/src/android/graphics/FontListParserTest.java | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/core/tests/coretests/src/android/graphics/FontListParserTest.java b/core/tests/coretests/src/android/graphics/FontListParserTest.java index 22f6ec0b24b1..701e6194d4ee 100644 --- a/core/tests/coretests/src/android/graphics/FontListParserTest.java +++ b/core/tests/coretests/src/android/graphics/FontListParserTest.java @@ -27,6 +27,7 @@ import static com.google.common.truth.Truth.assertThat; import static junit.framework.Assert.fail; +import android.graphics.fonts.FontCustomizationParser; import android.graphics.fonts.FontStyle; import android.os.LocaleList; import android.text.FontConfig; @@ -46,6 +47,7 @@ import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; import java.util.Arrays; +import java.util.List; @SmallTest @RunWith(AndroidJUnit4.class) @@ -318,6 +320,52 @@ public final class FontListParserTest { } } + @Test + public void alias() throws Exception { + String xml = "<?xml version='1.0' encoding='UTF-8'?>" + + "<familyset>" + + " <family name='sans-serif'>" + + " <font>test.ttf</font>" + + " </family>" + + " <family name='custom-family'>" + + " <font>missing.ttf</font>" + + " </family>" + + " <alias name='custom-alias' to='sans-serif'/>" + + "</familyset>"; + FontConfig config = readFamilies(xml, true /* include non-existing font files */); + List<FontConfig.Alias> aliases = config.getAliases(); + assertThat(aliases.size()).isEqualTo(1); + assertThat(aliases.get(0).getName()).isEqualTo("custom-alias"); + assertThat(aliases.get(0).getOriginal()).isEqualTo("sans-serif"); + } + + @Test + public void dropped_FamilyAlias() throws Exception { + String xml = "<?xml version='1.0' encoding='UTF-8'?>" + + "<familyset>" + + " <family name='sans-serif'>" + + " <font>test.ttf</font>" + + " </family>" + + " <family name='custom-family'>" + + " <font>missing.ttf</font>" + + " </family>" + + " <alias name='custom-alias' to='custom-family'/>" + + "</familyset>"; + FontConfig config = readFamilies(xml, false /* exclude not existing file */); + assertThat(config.getAliases()).isEmpty(); + } + + private FontConfig readFamilies(String xml, boolean allowNonExisting) + throws IOException, XmlPullParserException { + ByteArrayInputStream buffer = new ByteArrayInputStream( + xml.getBytes(StandardCharsets.UTF_8)); + XmlPullParser parser = Xml.newPullParser(); + parser.setInput(buffer, "UTF-8"); + parser.nextTag(); + return FontListParser.readFamilies(parser, "", new FontCustomizationParser.Result(), null, + 0L /* last modified date */, 0 /* config version */, allowNonExisting); + } + private FontConfig.FontFamily readFamily(String xml) throws IOException, XmlPullParserException { ByteArrayInputStream buffer = new ByteArrayInputStream( |