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 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.Context;
|
||||||
|
import android.content.res.Resources;
|
||||||
|
|
||||||
|
import androidx.test.core.app.ApplicationProvider;
|
||||||
|
|
||||||
|
import com.android.settings.R;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.robolectric.RobolectricTestRunner;
|
import org.robolectric.RobolectricTestRunner;
|
||||||
import org.robolectric.RuntimeEnvironment;
|
|
||||||
import org.robolectric.annotation.Config;
|
|
||||||
|
|
||||||
@RunWith(RobolectricTestRunner.class)
|
@RunWith(RobolectricTestRunner.class)
|
||||||
public class TopLevelAccessibilityPreferenceControllerTest {
|
public class TopLevelAccessibilityPreferenceControllerTest {
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
|
private Resources mResources;
|
||||||
private TopLevelAccessibilityPreferenceController mController;
|
private TopLevelAccessibilityPreferenceController mController;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
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");
|
mController = new TopLevelAccessibilityPreferenceController(mContext, "test_key");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -48,8 +57,9 @@ public class TopLevelAccessibilityPreferenceControllerTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@Config(qualifiers = "mcc999")
|
|
||||||
public void getAvailabilityStatus_unsupportedWhenSet() {
|
public void getAvailabilityStatus_unsupportedWhenSet() {
|
||||||
|
when(mResources.getBoolean(R.bool.config_show_top_level_accessibility)).thenReturn(false);
|
||||||
|
|
||||||
assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
|
assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user