Make PreferenceController a mixin

Bug: 62912136
Test: Existing tests in BaseSearchIndexProviderTest
Change-Id: Ieda359806c09a019840b2005446c7ec8b61fdb00
This commit is contained in:
Tony Mantler
2017-06-13 13:09:25 -07:00
parent 4bac421538
commit 1d583e125f
203 changed files with 1027 additions and 782 deletions

View File

@@ -1,11 +1,14 @@
package com.android.settings;
import static com.google.common.truth.Truth.assertThat;
import android.content.Context;
import com.android.settings.core.PreferenceController;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.XmlTestUtils;
import com.android.settings.testutils.shadow.ShadowPowerManagerWrapper;
import com.android.settingslib.core.AbstractPreferenceController;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RuntimeEnvironment;
@@ -14,10 +17,6 @@ import org.robolectric.annotation.Config;
import java.util.ArrayList;
import java.util.List;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.mock;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class DisplaySettingsTest {
@@ -33,7 +32,7 @@ public class DisplaySettingsTest {
fragment.getPreferenceScreenResId());
final List<String> preferenceKeys = new ArrayList<>();
for (PreferenceController controller : fragment.getPreferenceControllers(context)) {
for (AbstractPreferenceController controller : fragment.getPreferenceControllers(context)) {
preferenceKeys.add(controller.getPreferenceKey());
}
// Nightmode is currently hidden

View File

@@ -34,9 +34,9 @@ import android.support.v7.preference.Preference;
import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.core.PreferenceController;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.bluetooth.LocalBluetoothAdapter;
import com.android.settingslib.core.AbstractPreferenceController;
import org.junit.Before;
import org.junit.Test;
@@ -208,7 +208,7 @@ public class DeviceListPreferenceFragmentTest {
}
@Override
protected List<PreferenceController> getPreferenceControllers(Context context) {
protected List<AbstractPreferenceController> getPreferenceControllers(Context context) {
return null;
}
}

View File

@@ -19,9 +19,9 @@ package com.android.settings.dashboard;
import android.app.Fragment;
import android.content.Context;
import com.android.settings.core.PreferenceController;
import com.android.settings.search.Indexable;
import com.android.settings.search.DatabaseIndexingUtils;
import com.android.settings.search.Indexable;
import com.android.settingslib.core.AbstractPreferenceController;
import org.robolectric.RuntimeEnvironment;
@@ -47,8 +47,8 @@ public class DashboardFragmentSearchIndexProviderInspector {
if (provider == null) {
return true;
}
final List<PreferenceController> controllersFromSearchIndexProvider;
final List<PreferenceController> controllersFromFragment;
final List<AbstractPreferenceController> controllersFromSearchIndexProvider;
final List<AbstractPreferenceController> controllersFromFragment;
try {
controllersFromSearchIndexProvider = provider.getPreferenceControllers(context);
} catch (Throwable e) {

View File

@@ -32,10 +32,11 @@ import android.support.v7.preference.PreferenceScreen;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.core.PreferenceController;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.core.instrumentation.VisibilityLoggerMixin;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.drawer.DashboardCategory;
import com.android.settingslib.drawer.Tile;
@@ -126,7 +127,7 @@ public class DashboardFragmentTest {
@Test
public void onAttach_shouldCreatePlaceholderPreferenceController() {
final PreferenceController controller = mTestFragment.getPreferenceController(
final AbstractPreferenceController controller = mTestFragment.getPreferenceController(
DashboardTilePlaceholderPreferenceController.class);
assertThat(controller).isNotNull();
@@ -134,9 +135,11 @@ public class DashboardFragmentTest {
@Test
public void updateState_skipUnavailablePrefs() {
final List<PreferenceController> preferenceControllers = mTestFragment.mControllers;
final PreferenceController mockController1 = mock(PreferenceController.class);
final PreferenceController mockController2 = mock(PreferenceController.class);
final List<AbstractPreferenceController> preferenceControllers = mTestFragment.mControllers;
final AbstractPreferenceController mockController1 =
mock(AbstractPreferenceController.class);
final AbstractPreferenceController mockController2 =
mock(AbstractPreferenceController.class);
preferenceControllers.add(mockController1);
preferenceControllers.add(mockController2);
when(mockController1.isAvailable()).thenReturn(false);
@@ -149,7 +152,8 @@ public class DashboardFragmentTest {
verify(mockController2).getPreferenceKey();
}
public static class TestPreferenceController extends PreferenceController {
public static class TestPreferenceController extends AbstractPreferenceController
implements PreferenceControllerMixin {
public TestPreferenceController(Context context) {
super(context);
@@ -180,7 +184,7 @@ public class DashboardFragmentTest {
private final PreferenceManager mPreferenceManager;
private final Context mContext;
private final List<PreferenceController> mControllers;
private final List<AbstractPreferenceController> mControllers;
public final PreferenceScreen mScreen;
@@ -221,7 +225,7 @@ public class DashboardFragmentTest {
}
@Override
protected List<PreferenceController> getPreferenceControllers(Context context) {
protected List<AbstractPreferenceController> getPreferenceControllers(Context context) {
return mControllers;
}

View File

@@ -16,9 +16,10 @@
package com.android.settings.deviceinfo.storage;
import static com.google.common.truth.Truth.assertThat;
import static com.android.settings.utils.FileSizeFormatter.MEGABYTE_IN_BYTES;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -36,9 +37,9 @@ import android.util.SparseArray;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.applications.UserManagerWrapper;
import com.android.settings.core.PreferenceController;
import com.android.settingslib.R;
import com.android.settingslib.applications.StorageStatsSource;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.drawable.UserIconDrawable;
import org.junit.Before;
@@ -112,7 +113,7 @@ public class SecondaryUserControllerTest {
userInfos.add(mPrimaryUser);
when(mUserManager.getPrimaryUser()).thenReturn(mPrimaryUser);
when(mUserManager.getUsers()).thenReturn(userInfos);
List<PreferenceController> controllers =
List<AbstractPreferenceController> controllers =
SecondaryUserController.getSecondaryUserControllers(mContext, mUserManager);
assertThat(controllers).hasSize(1);
@@ -130,7 +131,7 @@ public class SecondaryUserControllerTest {
userInfos.add(secondaryUser);
when(mUserManager.getPrimaryUser()).thenReturn(mPrimaryUser);
when(mUserManager.getUsers()).thenReturn(userInfos);
List<PreferenceController> controllers =
List<AbstractPreferenceController> controllers =
SecondaryUserController.getSecondaryUserControllers(mContext, mUserManager);
assertThat(controllers).hasSize(1);
@@ -147,7 +148,7 @@ public class SecondaryUserControllerTest {
when(mUserManager.getPrimaryUser()).thenReturn(mPrimaryUser);
when(mUserManager.getUsers()).thenReturn(userInfos);
List<PreferenceController> controllers =
List<AbstractPreferenceController> controllers =
SecondaryUserController.getSecondaryUserControllers(mContext, mUserManager);
assertThat(controllers).hasSize(2);
@@ -190,7 +191,7 @@ public class SecondaryUserControllerTest {
userInfos.add(primaryUserRenamed);
when(mUserManager.getPrimaryUser()).thenReturn(mPrimaryUser);
when(mUserManager.getUsers()).thenReturn(userInfos);
List<PreferenceController> controllers =
List<AbstractPreferenceController> controllers =
SecondaryUserController.getSecondaryUserControllers(mContext, mUserManager);
assertThat(controllers).hasSize(1);

View File

@@ -16,6 +16,13 @@
package com.android.settings.enterprise;
import static com.android.settings.testutils.ApplicationTestUtils.buildInfo;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Answers.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.when;
import android.content.Context;
import android.content.pm.UserInfo;
import android.support.v7.preference.PreferenceManager;
@@ -27,7 +34,7 @@ import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.applications.ApplicationFeatureProvider;
import com.android.settings.applications.UserAppInfo;
import com.android.settings.core.PreferenceController;
import com.android.settingslib.core.AbstractPreferenceController;
import org.junit.Before;
import org.junit.Test;
@@ -40,11 +47,6 @@ import org.robolectric.shadows.ShadowApplication;
import java.util.ArrayList;
import java.util.List;
import static com.android.settings.testutils.ApplicationTestUtils.buildInfo;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Answers.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.when;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class ApplicationListFragmentTest {
@@ -84,7 +86,7 @@ public class ApplicationListFragmentTest {
@Test
public void getPreferenceControllers() {
final List<PreferenceController> controllers = mFragment.getPreferenceControllers(mContext);
final List<AbstractPreferenceController> controllers = mFragment.getPreferenceControllers(mContext);
assertThat(controllers).isNotNull();
assertThat(controllers.size()).isEqualTo(1);
int position = 0;

View File

@@ -16,16 +16,20 @@
package com.android.settings.enterprise;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.when;
import android.content.Context;
import android.content.res.XmlResourceParser;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.core.DynamicAvailabilityPreferenceController;
import com.android.settings.core.PreferenceController;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settingslib.core.AbstractPreferenceController;
import org.junit.Before;
import org.junit.Test;
@@ -42,9 +46,6 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.when;
/**
* Tests for {@link EnterprisePrivacySettings}.
*/
@@ -111,20 +112,20 @@ public final class EnterprisePrivacySettingsTest {
@Test
public void getPreferenceControllers() throws Exception {
final List<PreferenceController> controllers = mSettings.getPreferenceControllers(
final List<AbstractPreferenceController> controllers = mSettings.getPreferenceControllers(
ShadowApplication.getInstance().getApplicationContext());
verifyPreferenceControllers(controllers);
}
@Test
public void getSearchIndexProviderPreferenceControllers() throws Exception {
final List<PreferenceController> controllers
final List<AbstractPreferenceController> controllers
= EnterprisePrivacySettings.SEARCH_INDEX_DATA_PROVIDER.getPreferenceControllers(
ShadowApplication.getInstance().getApplicationContext());
verifyPreferenceControllers(controllers);
}
private void verifyPreferenceControllers(List<PreferenceController> controllers)
private void verifyPreferenceControllers(List<AbstractPreferenceController> controllers)
throws Exception {
assertThat(controllers).isNotNull();
assertThat(controllers.size()).isEqualTo(16);
@@ -152,7 +153,8 @@ public final class EnterprisePrivacySettingsTest {
GlobalHttpProxyPreferenceController.class);
assertThat(controllers.get(position++)).isInstanceOf(
CaCertsPreferenceController.class);
final PreferenceController exposureChangesCategoryController = controllers.get(position);
final AbstractPreferenceController exposureChangesCategoryController =
controllers.get(position);
final int exposureChangesCategoryControllerIndex = position;
assertThat(controllers.get(position++)).isInstanceOf(
ExposureChangesCategoryPreferenceController.class);
@@ -200,7 +202,7 @@ public final class EnterprisePrivacySettingsTest {
final Set<String> actualObserved = new HashSet<>();
int maxObservedIndex = -1;
for (int i = 0; i < controllers.size(); i++) {
final PreferenceController controller = controllers.get(i);
final AbstractPreferenceController controller = controllers.get(i);
if (controller instanceof DynamicAvailabilityPreferenceController &&
((DynamicAvailabilityPreferenceController) controller).getAvailabilityObserver()
== exposureChangesCategoryController) {

View File

@@ -16,14 +16,21 @@
package com.android.settings.enterprise;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Answers.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.when;
import android.content.Context;
import android.support.v7.preference.PreferenceManager;
import android.support.v7.preference.PreferenceScreen;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.core.PreferenceController;
import com.android.settingslib.core.AbstractPreferenceController;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -34,10 +41,6 @@ import org.robolectric.shadows.ShadowApplication;
import java.util.List;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Answers.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.when;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class EnterpriseSetDefaultAppsListFragmentTest {
@@ -77,7 +80,7 @@ public class EnterpriseSetDefaultAppsListFragmentTest {
@Test
public void getPreferenceControllers() {
final List<PreferenceController> controllers = mFragment.getPreferenceControllers(mContext);
final List<AbstractPreferenceController> controllers = mFragment.getPreferenceControllers(mContext);
assertThat(controllers).isNotNull();
assertThat(controllers.size()).isEqualTo(1);
int position = 0;

View File

@@ -15,12 +15,28 @@
*/
package com.android.settings.fuelgauge;
import java.util.List;
import static com.android.settings.fuelgauge.PowerUsageSummary.MENU_ADDITIONAL_BATTERY_INFO;
import static com.android.settings.fuelgauge.PowerUsageSummary.MENU_HIGH_POWER_APPS;
import static com.android.settings.fuelgauge.PowerUsageSummary.MENU_TOGGLE_APPS;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.anyLong;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.app.LoaderManager;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.content.ContentResolver;
import android.os.PowerManager;
import android.support.v7.preference.PreferenceGroup;
import android.support.v7.preference.PreferenceScreen;
@@ -39,17 +55,17 @@ import com.android.internal.os.BatteryStatsHelper;
import com.android.internal.os.BatteryStatsImpl;
import com.android.settings.R;
import com.android.settings.SettingsActivity;
import com.android.settings.fuelgauge.anomaly.AnomalyDetectionPolicy;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.Utils;
import com.android.settings.applications.LayoutPreference;
import com.android.settings.core.PreferenceController;
import com.android.settings.fuelgauge.anomaly.Anomaly;
import com.android.settings.fuelgauge.anomaly.AnomalyDetectionPolicy;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.XmlTestUtils;
import com.android.settings.testutils.shadow.SettingsShadowResources;
import com.android.settings.testutils.shadow.ShadowDynamicIndexableContentMonitor;
import com.android.settings.testutils.XmlTestUtils;
import com.android.settingslib.core.AbstractPreferenceController;
import org.junit.Before;
import org.junit.Test;
@@ -57,28 +73,12 @@ import org.junit.runner.RunWith;
import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config;
import org.robolectric.Robolectric;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import java.util.ArrayList;
import static com.android.settings.fuelgauge.PowerUsageSummary.MENU_ADDITIONAL_BATTERY_INFO;
import static com.android.settings.fuelgauge.PowerUsageSummary.MENU_HIGH_POWER_APPS;
import static com.android.settings.fuelgauge.PowerUsageSummary.MENU_TOGGLE_APPS;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyLong;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import java.util.List;
/**
* Unit tests for {@link PowerUsageSummary}.
@@ -440,7 +440,7 @@ public class PowerUsageSummaryTest {
fragment.getPreferenceScreenResId());
final List<String> preferenceKeys = new ArrayList<>();
for (PreferenceController controller : fragment.getPreferenceControllers(context)) {
for (AbstractPreferenceController controller : fragment.getPreferenceControllers(context)) {
preferenceKeys.add(controller.getPreferenceKey());
}

View File

@@ -16,14 +16,18 @@
package com.android.settings.gestures;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.when;
import android.content.Context;
import android.provider.SearchIndexableResource;
import com.android.settings.R;
import com.android.settings.TestConfig;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.core.PreferenceController;
import com.android.settingslib.core.AbstractPreferenceController;
import org.junit.Before;
import org.junit.Test;
@@ -35,9 +39,6 @@ import org.robolectric.shadows.ShadowApplication;
import java.util.List;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.when;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class AssistGestureSettingsTest {
@@ -64,7 +65,7 @@ public class AssistGestureSettingsTest {
@Test
public void testGetPreferenceControllers_shouldAllBeCreated() {
final List<PreferenceController> controllers =
final List<AbstractPreferenceController> controllers =
mSettings.getPreferenceControllers(mContext);
assertThat(controllers.isEmpty()).isFalse();
}

View File

@@ -16,13 +16,15 @@
package com.android.settings.gestures;
import static com.google.common.truth.Truth.assertThat;
import android.content.Context;
import android.provider.SearchIndexableResource;
import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.core.PreferenceController;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settingslib.core.AbstractPreferenceController;
import org.junit.Before;
import org.junit.Test;
@@ -34,8 +36,6 @@ import org.robolectric.shadows.ShadowApplication;
import java.util.List;
import static com.google.common.truth.Truth.assertThat;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class SwipeToNotificationSettingsTest {
@@ -58,7 +58,8 @@ public class SwipeToNotificationSettingsTest {
@Test
public void testGetPreferenceControllers_shouldAllBeCreated() {
final List<PreferenceController> controllers = mFragment.getPreferenceControllers(mContext);
final List<AbstractPreferenceController> controllers =
mFragment.getPreferenceControllers(mContext);
assertThat(controllers.isEmpty()).isFalse();
}

View File

@@ -16,6 +16,16 @@
package com.android.settings.language;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.app.Activity;
import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
@@ -32,13 +42,13 @@ import android.view.textservice.TextServicesManager;
import com.android.internal.hardware.AmbientDisplayConfiguration;
import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.core.PreferenceController;
import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.XmlTestUtils;
import com.android.settings.testutils.shadow.ShadowSecureSettings;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
@@ -54,15 +64,6 @@ import org.robolectric.annotation.Config;
import java.util.ArrayList;
import java.util.List;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class LanguageAndInputSettingsTest {
@@ -107,10 +108,10 @@ public class LanguageAndInputSettingsTest {
@Test
public void testGetPreferenceControllers_shouldRegisterLifecycleObservers() {
final List<PreferenceController> controllers =
final List<AbstractPreferenceController> controllers =
mFragment.getPreferenceControllers(mActivity);
int lifecycleObserverCount = 0;
for (PreferenceController controller : controllers) {
for (AbstractPreferenceController controller : controllers) {
if (controller instanceof LifecycleObserver) {
lifecycleObserverCount++;
}
@@ -121,7 +122,7 @@ public class LanguageAndInputSettingsTest {
@Test
public void testGetPreferenceControllers_shouldAllBeCreated() {
final List<PreferenceController> controllers =
final List<AbstractPreferenceController> controllers =
mFragment.getPreferenceControllers(mActivity);
assertThat(controllers.isEmpty()).isFalse();
@@ -203,7 +204,7 @@ public class LanguageAndInputSettingsTest {
fragment.getPreferenceScreenResId());
final List<String> preferenceKeys = new ArrayList<>();
for (PreferenceController controller : fragment.getPreferenceControllers(context)) {
for (AbstractPreferenceController controller : fragment.getPreferenceControllers(context)) {
preferenceKeys.add(controller.getPreferenceKey());
}

View File

@@ -17,13 +17,19 @@
package com.android.settings.search;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import android.content.Context;
import android.provider.SearchIndexableResource;
import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.core.PreferenceController;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
import org.junit.Before;
import org.junit.Test;
@@ -38,10 +44,6 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class BaseSearchIndexProviderTest {
@@ -63,39 +65,53 @@ public class BaseSearchIndexProviderTest {
assertThat(mIndexProvider.getNonIndexableKeys(mContext)).isEmpty();
}
public static class AvailablePreferenceController extends AbstractPreferenceController
implements PreferenceControllerMixin {
public AvailablePreferenceController(Context context) {
super(context);
}
@Override
public boolean isAvailable() {
return true;
}
@Override
public String getPreferenceKey() {
return TEST_PREF_KEY;
}
}
@Test
public void getNonIndexableKeys_preferenceIsAvailable_shouldReturnEmptyList() {
List<PreferenceController> controllers = new ArrayList<>();
controllers.add(new PreferenceController(mContext) {
@Override
public boolean isAvailable() {
return true;
}
@Override
public String getPreferenceKey() {
return TEST_PREF_KEY;
}
});
List<AbstractPreferenceController> controllers = new ArrayList<>();
controllers.add(new AvailablePreferenceController(mContext));
doReturn(controllers).when(mIndexProvider).getPreferenceControllers(mContext);
assertThat(mIndexProvider.getNonIndexableKeys(mContext)).isEqualTo(Collections.EMPTY_LIST);
}
public static class NotAvailablePreferenceController extends AbstractPreferenceController
implements PreferenceControllerMixin {
public NotAvailablePreferenceController(Context context) {
super(context);
}
@Override
public boolean isAvailable() {
return false;
}
@Override
public String getPreferenceKey() {
return TEST_PREF_KEY;
}
}
@Test
public void getNonIndexableKeys_preferenceIsNotAvailable_shouldReturnKey() {
List<PreferenceController> controllers = new ArrayList<>();
controllers.add(new PreferenceController(mContext) {
@Override
public boolean isAvailable() {
return false;
}
@Override
public String getPreferenceKey() {
return TEST_PREF_KEY;
}
});
List<AbstractPreferenceController> controllers = new ArrayList<>();
controllers.add(new NotAvailablePreferenceController(mContext));
doReturn(controllers).when(mIndexProvider).getPreferenceControllers(mContext);
assertThat(mIndexProvider.getNonIndexableKeys(mContext)).contains(TEST_PREF_KEY);

View File

@@ -25,7 +25,7 @@ import android.util.ArrayMap;
import com.android.internal.hardware.AmbientDisplayConfiguration;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.core.PreferenceController;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.deviceinfo.SystemUpdatePreferenceController;
import org.junit.Before;
@@ -67,7 +67,7 @@ public class DatabaseIndexingUtilsTest {
@Test
public void testGetPreferenceControllerUriMap_CompatibleClass_ReturnsValidMap() {
final String className = "com.android.settings.system.SystemDashboardFragment";
final Map<String, PreferenceController> map =
final Map<String, PreferenceControllerMixin> map =
DatabaseIndexingUtils.getPreferenceControllerUriMap(className, mContext);
assertThat(map.get("system_update_settings"))
.isInstanceOf(SystemUpdatePreferenceController.class);
@@ -82,23 +82,13 @@ public class DatabaseIndexingUtilsTest {
@Test
public void testGetPayloadFromMap_MatchingKey_ReturnsPayload() {
final String key = "key";
PreferenceController prefController = new PreferenceController(mContext) {
@Override
public boolean isAvailable() {
return false;
}
@Override
public String getPreferenceKey() {
return key;
}
PreferenceControllerMixin prefController = new PreferenceControllerMixin() {
@Override
public ResultPayload getResultPayload() {
return new ResultPayload(null);
}
};
ArrayMap<String, PreferenceController> map = new ArrayMap<>();
ArrayMap<String, PreferenceControllerMixin> map = new ArrayMap<>();
map.put(key, prefController);
ResultPayload payload = DatabaseIndexingUtils.getPayloadFromUriMap(map, key);

View File

@@ -20,7 +20,7 @@ package com.android.settings.search;
import android.content.Context;
import android.provider.SearchIndexableResource;
import com.android.settings.core.PreferenceController;
import com.android.settingslib.core.AbstractPreferenceController;
import java.util.List;
@@ -44,7 +44,7 @@ public class FakeIndexProvider implements Indexable {
}
@Override
public List<PreferenceController> getPreferenceControllers(Context context) {
public List<AbstractPreferenceController> getPreferenceControllers(Context context) {
return null;
}
};