summaryrefslogtreecommitdiff
path: root/tests/UpdatableSystemFontTest
diff options
context:
space:
mode:
author Seigo Nonaka <nona@google.com> 2022-10-24 14:40:41 +0900
committer Seigo Nonaka <nona@google.com> 2022-12-15 23:50:13 +0900
commit9e233cd563fbb29234504ffe00cfc7faa76a6079 (patch)
treeef650d7898cd63becc71e69db5dbbe6ebbb5eab6 /tests/UpdatableSystemFontTest
parent3d43d701243f8bc99a2a6355541eaa318e3d7ce8 (diff)
Add family-list tag element to fonts_customization.xml
family-list can be used as a named font family definition. Multiple families can be used as a fallback for the named family. Bug: 249787583 Test: atest TypefaceSystemFallbackTest FontListParserTest Test: atest UpdatableFontDirTest UpdatableSystemFontTest Test: atest GtsFontHostTestCases FontManagerTest Change-Id: Ic459a533ac4b5081660c0a4a7519ef7e87a6b628
Diffstat (limited to 'tests/UpdatableSystemFontTest')
-rw-r--r--tests/UpdatableSystemFontTest/src/com/android/updatablesystemfont/UpdatableSystemFontTest.java25
1 files changed, 19 insertions, 6 deletions
diff --git a/tests/UpdatableSystemFontTest/src/com/android/updatablesystemfont/UpdatableSystemFontTest.java b/tests/UpdatableSystemFontTest/src/com/android/updatablesystemfont/UpdatableSystemFontTest.java
index 650686ff3b85..fa5b7c15a6fe 100644
--- a/tests/UpdatableSystemFontTest/src/com/android/updatablesystemfont/UpdatableSystemFontTest.java
+++ b/tests/UpdatableSystemFontTest/src/com/android/updatablesystemfont/UpdatableSystemFontTest.java
@@ -69,6 +69,7 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.regex.Pattern;
+import java.util.stream.Stream;
/**
* Tests if fonts can be updated by {@link FontManager} API.
@@ -246,7 +247,10 @@ public class UpdatableSystemFontTest {
@Test
public void updateFontFamily() throws Exception {
assertThat(updateNotoSerifAs("serif")).isEqualTo(FontManager.RESULT_SUCCESS);
- FontConfig.FontFamily family = findFontFamilyOrThrow("serif");
+ final FontConfig.NamedFamilyList namedFamilyList = findFontFamilyOrThrow("serif");
+ assertThat(namedFamilyList.getFamilies().size()).isEqualTo(1);
+ final FontConfig.FontFamily family = namedFamilyList.getFamilies().get(0);
+
assertThat(family.getFontList()).hasSize(2);
assertThat(family.getFontList().get(0).getPostScriptName())
.isEqualTo(NOTO_SERIF_REGULAR_POSTSCRIPT_NAME);
@@ -265,7 +269,10 @@ public class UpdatableSystemFontTest {
public void updateFontFamily_asNewFont() throws Exception {
assertThat(updateNotoSerifAs("UpdatableSystemFontTest-serif"))
.isEqualTo(FontManager.RESULT_SUCCESS);
- FontConfig.FontFamily family = findFontFamilyOrThrow("UpdatableSystemFontTest-serif");
+ final FontConfig.NamedFamilyList namedFamilyList =
+ findFontFamilyOrThrow("UpdatableSystemFontTest-serif");
+ assertThat(namedFamilyList.getFamilies().size()).isEqualTo(1);
+ final FontConfig.FontFamily family = namedFamilyList.getFamilies().get(0);
assertThat(family.getFontList()).hasSize(2);
assertThat(family.getFontList().get(0).getPostScriptName())
.isEqualTo(NOTO_SERIF_REGULAR_POSTSCRIPT_NAME);
@@ -434,9 +441,15 @@ public class UpdatableSystemFontTest {
private String getFontPath(String psName) {
FontConfig fontConfig =
SystemUtil.runWithShellPermissionIdentity(mFontManager::getFontConfig);
- return fontConfig.getFontFamilies().stream()
+ final List<FontConfig.FontFamily> namedFamilies = fontConfig.getNamedFamilyLists().stream()
+ .flatMap(namedFamily -> namedFamily.getFamilies().stream()).toList();
+
+ return Stream.concat(fontConfig.getFontFamilies().stream(), namedFamilies.stream())
.flatMap(family -> family.getFontList().stream())
- .filter(font -> psName.equals(font.getPostScriptName()))
+ .filter(font -> {
+ Log.e("Debug", "PsName = " + font.getPostScriptName());
+ return psName.equals(font.getPostScriptName());
+ })
// Return the last match, because the latter family takes precedence if two families
// have the same name.
.reduce((first, second) -> second)
@@ -445,10 +458,10 @@ public class UpdatableSystemFontTest {
.getAbsolutePath();
}
- private FontConfig.FontFamily findFontFamilyOrThrow(String familyName) {
+ private FontConfig.NamedFamilyList findFontFamilyOrThrow(String familyName) {
FontConfig fontConfig =
SystemUtil.runWithShellPermissionIdentity(mFontManager::getFontConfig);
- return fontConfig.getFontFamilies().stream()
+ return fontConfig.getNamedFamilyLists().stream()
.filter(family -> familyName.equals(family.getName()))
// Return the last match, because the latter family takes precedence if two families
// have the same name.