From 7e868fa69036558dfba5f635f25171f990346db2 Mon Sep 17 00:00:00 2001 From: Chun-Ku Lin Date: Sat, 3 Jun 2023 06:21:16 +0000 Subject: [PATCH] Use spy to inject the return value of a boolean resource **Root cause** The test was failing because it was not grabbing the boolean resource from the values-mc999 folder. I'm not sure what changed in Robolectric that causes it not able to find the resources based on the qualifiers. Bug: 279082331 Test: atest TopLevelAccessibilityPreferenceControllerTest Change-Id: Ie738d1ada1a87b48f34efb7e0477c691c4d44d1e --- ...lAccessibilityPreferenceControllerTest.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/tests/robotests/src/com/android/settings/accessibility/TopLevelAccessibilityPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/TopLevelAccessibilityPreferenceControllerTest.java index 3acc02c4c18..1249894dc45 100644 --- a/tests/robotests/src/com/android/settings/accessibility/TopLevelAccessibilityPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/TopLevelAccessibilityPreferenceControllerTest.java @@ -21,24 +21,33 @@ import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_ import static com.google.common.truth.Truth.assertThat; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.when; + import android.content.Context; +import android.content.res.Resources; + +import androidx.test.core.app.ApplicationProvider; + +import com.android.settings.R; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RobolectricTestRunner; -import org.robolectric.RuntimeEnvironment; -import org.robolectric.annotation.Config; @RunWith(RobolectricTestRunner.class) public class TopLevelAccessibilityPreferenceControllerTest { private Context mContext; + private Resources mResources; private TopLevelAccessibilityPreferenceController mController; @Before public void setUp() { - mContext = RuntimeEnvironment.application; + mContext = spy(ApplicationProvider.getApplicationContext()); + mResources = spy(mContext.getResources()); + when(mContext.getResources()).thenReturn(mResources); mController = new TopLevelAccessibilityPreferenceController(mContext, "test_key"); } @@ -48,8 +57,9 @@ public class TopLevelAccessibilityPreferenceControllerTest { } @Test - @Config(qualifiers = "mcc999") public void getAvailabilityStatus_unsupportedWhenSet() { + when(mResources.getBoolean(R.bool.config_show_top_level_accessibility)).thenReturn(false); + assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE); } }