From e8728c5a4e4d4548a6b6ae05f7940ac6d428496b Mon Sep 17 00:00:00 2001 From: Maurice Lam Date: Fri, 1 Jun 2018 18:40:24 -0700 Subject: [PATCH] Fix testSuwGlifButtonTertiary Use AppCompatButton when available, and set app-namespace textAllCaps attribute to make the tests pass. Test: ./gradlew connectedAndroidTest Bug: 78472674 Change-Id: I21e767c870ea9d26f33e4ba61063ed805ba57dd2 --- library/gingerbread/res/values-v21/styles.xml | 27 +++++++++++++++ library/gingerbread/res/values/styles.xml | 7 ++++ library/main/res/values-v21/styles.xml | 4 --- library/main/res/values/styles.xml | 5 --- library/platform/res/values-v27/styles.xml | 7 ++++ .../setupwizardlib/util/GlifStyleTest.java | 33 ++++++++++++------- 6 files changed, 62 insertions(+), 21 deletions(-) create mode 100644 library/gingerbread/res/values-v21/styles.xml diff --git a/library/gingerbread/res/values-v21/styles.xml b/library/gingerbread/res/values-v21/styles.xml new file mode 100644 index 0000000..3c0c254 --- /dev/null +++ b/library/gingerbread/res/values-v21/styles.xml @@ -0,0 +1,27 @@ + + + + + + + + + + diff --git a/library/gingerbread/res/values/styles.xml b/library/gingerbread/res/values/styles.xml index 956b6cd..d12f802 100644 --- a/library/gingerbread/res/values/styles.xml +++ b/library/gingerbread/res/values/styles.xml @@ -262,6 +262,13 @@ @color/suw_flat_button_highlight + + + - - - + + + diff --git a/library/test/robotest/src/com/android/setupwizardlib/util/GlifStyleTest.java b/library/test/robotest/src/com/android/setupwizardlib/util/GlifStyleTest.java index 7321915..195fc9b 100644 --- a/library/test/robotest/src/com/android/setupwizardlib/util/GlifStyleTest.java +++ b/library/test/robotest/src/com/android/setupwizardlib/util/GlifStyleTest.java @@ -28,6 +28,7 @@ import android.content.Context; import android.os.Build.VERSION; import android.os.Build.VERSION_CODES; import android.os.Bundle; +import android.util.AttributeSet; import android.view.ContextThemeWrapper; import android.widget.Button; import android.widget.ProgressBar; @@ -37,29 +38,21 @@ import androidx.annotation.Nullable; import com.android.setupwizardlib.R; import com.android.setupwizardlib.robolectric.SuwLibRobolectricTestRunner; -import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.Robolectric; import org.robolectric.annotation.Config; +import org.robolectric.util.ReflectionHelpers; +import org.robolectric.util.ReflectionHelpers.ClassParameter; @RunWith(SuwLibRobolectricTestRunner.class) @Config(sdk = {Config.OLDEST_SDK, Config.NEWEST_SDK}) public class GlifStyleTest { - private Context mContext; - - @Before - public void setUp() { - mContext = new ContextThemeWrapper(application, R.style.SuwThemeGlif_Light); - } - - @Ignore("b/78472674") @Test public void testSuwGlifButtonTertiary() { - Button button = new Button( - mContext, + Button button = createButton( + new ContextThemeWrapper(application, R.style.SuwThemeGlif_Light), Robolectric.buildAttributeSet() .setStyleAttribute("@style/SuwGlifButton.Tertiary") .build()); @@ -89,6 +82,22 @@ public class GlifStyleTest { activity.findViewById(R.id.suw_large_progress_bar) instanceof ProgressBar); } + private Button createButton(Context context, AttributeSet attrs) { + Class buttonClass; + try { + // Use AppCompatButton in builds that have them (i.e. gingerbreadCompat) + // noinspection unchecked + buttonClass = (Class) + Class.forName("androidx.appcompat.widget.AppCompatButton"); + } catch (ClassNotFoundException e) { + buttonClass = Button.class; + } + return ReflectionHelpers.callConstructor( + buttonClass, + ClassParameter.from(Context.class, context), + ClassParameter.from(AttributeSet.class, attrs)); + } + private static class GlifThemeActivity extends Activity { @Override