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
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user