Add prerelease driver to graphics driver preference dashboard.

To facilitate better development, add prerelease driver choice to graphics
driver preferences dashboard. This patch also makes sure that when game driver
or developer driver is not shipped, the choice doesn't show up.

Minor: Add tests.

Bug: b/148626177
Test: make RunSettingsRoboTests ROBOTEST_FILTER=GraphicsDriver
Change-Id: Iad398cd663300086d3f4802ffab34531e11dfb17
This commit is contained in:
Peiyong Lin
2020-02-14 16:32:13 -08:00
parent ef83d26558
commit b94e6b9e4e
3 changed files with 59 additions and 8 deletions

View File

@@ -56,8 +56,9 @@ import java.util.Arrays;
public class GraphicsDriverAppPreferenceControllerTest {
private static final int DEFAULT = 0;
private static final int GAME_DRIVER = 1;
private static final int SYSTEM = 2;
private static final int PRERELEASE_DRIVER = 1;
private static final int GAME_DRIVER = 2;
private static final int SYSTEM = 3;
private static final String TEST_APP_NAME = "testApp";
private static final String TEST_PKG_NAME = "testPkg";
@@ -116,7 +117,7 @@ public class GraphicsDriverAppPreferenceControllerTest {
}
@Test
public void getAvailability_gameDriverOff_conditionallyUnavailable() {
public void getAvailability_graphicsDriverOff_conditionallyUnavailable() {
loadDefaultConfig();
Settings.Global.putInt(mResolver, Settings.Global.GAME_DRIVER_ALL_APPS, GAME_DRIVER_OFF);
@@ -163,7 +164,7 @@ public class GraphicsDriverAppPreferenceControllerTest {
}
@Test
public void updateState_gameDriverOff_notVisible() {
public void updateState_graphicsDriverOff_notVisible() {
Settings.Global.putInt(mResolver, Settings.Global.GAME_DRIVER_ALL_APPS, GAME_DRIVER_OFF);
loadDefaultConfig();
@@ -213,6 +214,8 @@ public class GraphicsDriverAppPreferenceControllerTest {
assertThat(preference.getDialogTitle()).isEqualTo(mDialogTitle);
assertThat(preference.getEntries()).isEqualTo(mValueList);
assertThat(preference.getEntryValues()).isEqualTo(mValueList);
assertThat(preference.getEntry()).isEqualTo(mValueList[PRERELEASE_DRIVER]);
assertThat(preference.getValue()).isEqualTo(mValueList[PRERELEASE_DRIVER]);
assertThat(preference.getSummary()).isEqualTo(mPreferencePrereleaseDriver);
}
@@ -248,6 +251,23 @@ public class GraphicsDriverAppPreferenceControllerTest {
.isEqualTo("");
}
@Test
public void onPreferenceChange_selectPRERELEASE_DRIVER_shouldUpdateAttrAndSettingsGlobal() {
loadDefaultConfig();
final ListPreference preference =
mController.createListPreference(mContext, TEST_PKG_NAME, TEST_APP_NAME);
mController.onPreferenceChange(preference, mValueList[PRERELEASE_DRIVER]);
assertThat(preference.getEntry()).isEqualTo(mValueList[PRERELEASE_DRIVER]);
assertThat(preference.getValue()).isEqualTo(mValueList[PRERELEASE_DRIVER]);
assertThat(preference.getSummary()).isEqualTo(mValueList[PRERELEASE_DRIVER]);
assertThat(Settings.Global.getString(mResolver,
Settings.Global.GAME_DRIVER_PRERELEASE_OPT_IN_APPS))
.isEqualTo(TEST_PKG_NAME);
assertThat(Settings.Global.getString(mResolver, Settings.Global.GAME_DRIVER_OPT_OUT_APPS))
.isEqualTo("");
}
@Test
public void onPreferenceChange_selectGAME_DRIVER_shouldUpdateAttributesAndSettingsGlobal() {
loadDefaultConfig();
@@ -306,6 +326,8 @@ public class GraphicsDriverAppPreferenceControllerTest {
Settings.Global.putString(mResolver, Settings.Global.GAME_DRIVER_OPT_OUT_APPS, optOut);
mController = new GraphicsDriverAppPreferenceController(mContext, "testKey");
mController.mEntryList = mContext.getResources().getStringArray(
R.array.graphics_driver_app_preference_values);
mGroup = spy(new PreferenceCategory(mContext));
final PreferenceManager preferenceManager = new PreferenceManager(mContext);
when(mGroup.getContext()).thenReturn(mContext);