Skip test if any font adjustment is applied
Bug: 401531860
Test: N/A
Flag: EXEMPT Test Only
Change-Id: Id35ce7a8495b0b49402671bd3c87a1d76a9690fa
diff --git a/tests/tests/widget/res/layout/textview_fontvariation_test_layout.xml b/tests/tests/widget/res/layout/textview_fontvariation_test_layout.xml
index 718e748..0800dd7 100644
--- a/tests/tests/widget/res/layout/textview_fontvariation_test_layout.xml
+++ b/tests/tests/widget/res/layout/textview_fontvariation_test_layout.xml
@@ -21,6 +21,11 @@
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:id="@+id/plainVanillaTextView" />
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
android:id="@+id/textView_fontVariation_wdth25"
android:fontVariationSettings="'wdth' 25"/>
diff --git a/tests/tests/widget/src/android/widget/cts/TextViewFontVariationTest.java b/tests/tests/widget/src/android/widget/cts/TextViewFontVariationTest.java
index 8957100..8ce305e 100644
--- a/tests/tests/widget/src/android/widget/cts/TextViewFontVariationTest.java
+++ b/tests/tests/widget/src/android/widget/cts/TextViewFontVariationTest.java
@@ -19,14 +19,19 @@
import static org.junit.Assert.assertEquals;
import android.content.Context;
+import android.graphics.fonts.FontVariationAxis;
+import android.graphics.text.PositionedGlyphs;
+import android.graphics.text.TextRunShaper;
+import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import android.widget.TextView;
-import androidx.test.InstrumentationRegistry;
import androidx.test.filters.SmallTest;
+import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.runner.AndroidJUnit4;
+import org.junit.Assume;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -45,8 +50,26 @@
return ((TextView) container.findViewById(id)).getFontVariationSettings();
}
+ private void assumeNoAdjustment() {
+ final Context context = InstrumentationRegistry.getInstrumentation().getTargetContext();
+ final LayoutInflater inflater = LayoutInflater.from(context);
+ final ViewGroup container =
+ (ViewGroup) inflater.inflate(R.layout.textview_fontvariation_test_layout, null);
+ TextView tv = (TextView) container.findViewById(R.id.plainVanillaTextView);
+ PositionedGlyphs glyphs =
+ TextRunShaper.shapeTextRun("a", 0, 1, 0, 1, 0f, 0f, false, tv.getPaint());
+ assertEquals(1, glyphs.glyphCount());
+ FontVariationAxis[] axes = glyphs.getFont(0).getAxes();
+ for (FontVariationAxis axis : axes) {
+ if (TextUtils.equals("wght", axis.getTag())) {
+ Assume.assumeTrue(axis.getStyleValue() == 400f);
+ }
+ }
+ }
+
@Test
public void testFontVariation() {
+ assumeNoAdjustment();
assertEquals("'wdth' 25",
getTextViewFontVariationSettings(R.id.textView_fontVariation_wdth25));
assertEquals("'wdth' 50",
@@ -67,6 +90,7 @@
@Test
public void testTextAppearance() {
+ assumeNoAdjustment();
assertEquals("'wdth' 25",
getTextViewFontVariationSettings(R.id.textAppearance_fontVariation_wdth25));
assertEquals("'wdth' 50",