Make pref unsearchable for more availibility status.

Bug: 72748524
Test: robotest
Change-Id: I12b13ac3503f851857787df98a2d2f599c71b9b7
This commit is contained in:
Fan Zhang
2018-05-10 14:11:49 -07:00
parent b02c4a18fc
commit 80376a5b46
4 changed files with 54 additions and 16 deletions

View File

@@ -16,12 +16,12 @@
package com.android.settings.core;
import static com.android.settings.core.BasePreferenceController.AVAILABLE;
import static com.android.settings.core.BasePreferenceController.AVAILABLE_UNSEARCHABLE;
import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
import static com.android.settings.core.BasePreferenceController.DISABLED_DEPENDENT_SETTING;
import static com.android.settings.core.BasePreferenceController.DISABLED_FOR_USER;
import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -36,8 +36,10 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RuntimeEnvironment;
import java.util.ArrayList;
import java.util.List;
import androidx.preference.Preference;
import androidx.preference.PreferenceGroup;
import androidx.preference.PreferenceScreen;
@RunWith(SettingsRobolectricTestRunner.class)
@@ -72,6 +74,13 @@ public class BasePreferenceControllerTest {
assertThat(mPreferenceController.isAvailable()).isTrue();
}
@Test
public void isAvailable_availableStatusUnSearchable_returnsTrue() {
mPreferenceController.setAvailability(AVAILABLE_UNSEARCHABLE);
assertThat(mPreferenceController.isAvailable()).isTrue();
}
@Test
public void isAvailable_availableStatusUnsupportedOnDevice_returnsFalse() {
mPreferenceController.setAvailability(UNSUPPORTED_ON_DEVICE);
@@ -159,6 +168,36 @@ public class BasePreferenceControllerTest {
assertThat(preference.isEnabled()).isFalse();
}
@Test
public void updateNonIndexableKeys_controllerUnavailable_shouldAddKey() {
final List<String> keys = new ArrayList<>();
mPreferenceController.setAvailability(UNSUPPORTED_ON_DEVICE);
mPreferenceController.updateNonIndexableKeys(keys);
assertThat(keys).containsExactly(mPreferenceController.getPreferenceKey());
}
@Test
public void updateNonIndexableKeys_controllerUnsearchable_shouldAddKey() {
final List<String> keys = new ArrayList<>();
mPreferenceController.setAvailability(AVAILABLE_UNSEARCHABLE);
mPreferenceController.updateNonIndexableKeys(keys);
assertThat(keys).containsExactly(mPreferenceController.getPreferenceKey());
}
@Test
public void updateNonIndexableKeys_controllerAvailable_shouldNotAddKey() {
final List<String> keys = new ArrayList<>();
mPreferenceController.setAvailability(AVAILABLE);
mPreferenceController.updateNonIndexableKeys(keys);
assertThat(keys).isEmpty();
}
private class FakeBasePreferenceController extends BasePreferenceController {
public int mAvailable;