Further status logic tweaks
Change the SettingsUI logic slightly: All other things being equal, pick the "worst" location dependency status to show. Some renaming and annotations for clarity. Also fixes the mocking behavior in the tests around resources, which were accidentally using the real strings and therefore dependent on real resource string values. Tests are made more explicit. Bug: 266921482 Test: atest tests/robotests/src/com/android/settings/datetime/LocationProviderStatusPreferenceControllerTest.java Change-Id: Ifd96c543dad692884be23bf94e3f1294eed291d5
This commit is contained in:
@@ -21,6 +21,7 @@ import static android.app.time.DetectorStatusTypes.DETECTOR_STATUS_RUNNING;
|
||||
import static android.app.time.LocationTimeZoneAlgorithmStatus.PROVIDER_STATUS_IS_CERTAIN;
|
||||
import static android.app.time.LocationTimeZoneAlgorithmStatus.PROVIDER_STATUS_IS_UNCERTAIN;
|
||||
import static android.service.timezone.TimeZoneProviderStatus.DEPENDENCY_STATUS_BLOCKED_BY_SETTINGS;
|
||||
import static android.service.timezone.TimeZoneProviderStatus.DEPENDENCY_STATUS_DEGRADED_BY_SETTINGS;
|
||||
import static android.service.timezone.TimeZoneProviderStatus.DEPENDENCY_STATUS_OK;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
@@ -72,44 +73,9 @@ public class LocationProviderStatusPreferenceControllerTest {
|
||||
when(mContext.getString(
|
||||
R.string.location_time_zone_detection_status_summary_blocked_by_settings))
|
||||
.thenReturn("BBS");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCapabilityStatus() {
|
||||
LocationProviderStatusPreferenceController controller =
|
||||
new LocationProviderStatusPreferenceController(mContext, "LPSPC");
|
||||
|
||||
TimeZoneCapabilitiesAndConfig capabilitiesAndConfig = createCapabilitiesAndConfig(false,
|
||||
PROVIDER_STATUS_IS_CERTAIN, DEPENDENCY_STATUS_OK,
|
||||
PROVIDER_STATUS_IS_CERTAIN, DEPENDENCY_STATUS_OK);
|
||||
when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
|
||||
|
||||
assertThat(controller.getAvailabilityStatus()).isEqualTo(
|
||||
BasePreferenceController.CONDITIONALLY_UNAVAILABLE);
|
||||
|
||||
capabilitiesAndConfig = createCapabilitiesAndConfig(true,
|
||||
PROVIDER_STATUS_IS_CERTAIN, DEPENDENCY_STATUS_OK,
|
||||
PROVIDER_STATUS_IS_CERTAIN, DEPENDENCY_STATUS_OK);
|
||||
when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
|
||||
|
||||
assertThat(controller.getAvailabilityStatus()).isEqualTo(
|
||||
BasePreferenceController.CONDITIONALLY_UNAVAILABLE);
|
||||
|
||||
capabilitiesAndConfig = createCapabilitiesAndConfig(false,
|
||||
PROVIDER_STATUS_IS_UNCERTAIN, DEPENDENCY_STATUS_BLOCKED_BY_SETTINGS,
|
||||
PROVIDER_STATUS_IS_CERTAIN, DEPENDENCY_STATUS_OK);
|
||||
when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
|
||||
|
||||
assertThat(controller.getAvailabilityStatus()).isEqualTo(
|
||||
BasePreferenceController.AVAILABLE_UNSEARCHABLE);
|
||||
|
||||
capabilitiesAndConfig = createCapabilitiesAndConfig(true,
|
||||
PROVIDER_STATUS_IS_UNCERTAIN, DEPENDENCY_STATUS_BLOCKED_BY_SETTINGS,
|
||||
PROVIDER_STATUS_IS_CERTAIN, DEPENDENCY_STATUS_OK);
|
||||
when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
|
||||
|
||||
assertThat(controller.getAvailabilityStatus()).isEqualTo(
|
||||
BasePreferenceController.AVAILABLE_UNSEARCHABLE);
|
||||
when(mContext.getString(
|
||||
R.string.location_time_zone_detection_status_summary_degraded_by_settings))
|
||||
.thenReturn("DBS");
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -138,6 +104,41 @@ public class LocationProviderStatusPreferenceControllerTest {
|
||||
PROVIDER_STATUS_IS_UNCERTAIN, DEPENDENCY_STATUS_BLOCKED_BY_SETTINGS);
|
||||
when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
|
||||
|
||||
assertThat(controller.getAvailabilityStatus()).isEqualTo(
|
||||
BasePreferenceController.AVAILABLE_UNSEARCHABLE);
|
||||
|
||||
// Test whether reportable statuses that can still result in the LTZP being "certain" are
|
||||
// reported.
|
||||
|
||||
capabilitiesAndConfig = createCapabilitiesAndConfig(false,
|
||||
PROVIDER_STATUS_IS_CERTAIN, DEPENDENCY_STATUS_DEGRADED_BY_SETTINGS,
|
||||
PROVIDER_STATUS_IS_CERTAIN, DEPENDENCY_STATUS_OK);
|
||||
when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
|
||||
|
||||
assertThat(controller.getAvailabilityStatus()).isEqualTo(
|
||||
BasePreferenceController.AVAILABLE_UNSEARCHABLE);
|
||||
|
||||
capabilitiesAndConfig = createCapabilitiesAndConfig(false,
|
||||
PROVIDER_STATUS_IS_CERTAIN, DEPENDENCY_STATUS_DEGRADED_BY_SETTINGS,
|
||||
PROVIDER_STATUS_IS_CERTAIN, DEPENDENCY_STATUS_DEGRADED_BY_SETTINGS);
|
||||
when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
|
||||
|
||||
assertThat(controller.getAvailabilityStatus()).isEqualTo(
|
||||
BasePreferenceController.AVAILABLE_UNSEARCHABLE);
|
||||
|
||||
capabilitiesAndConfig = createCapabilitiesAndConfig(false,
|
||||
PROVIDER_STATUS_IS_CERTAIN, DEPENDENCY_STATUS_DEGRADED_BY_SETTINGS,
|
||||
PROVIDER_STATUS_IS_UNCERTAIN, DEPENDENCY_STATUS_BLOCKED_BY_SETTINGS);
|
||||
when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
|
||||
|
||||
assertThat(controller.getAvailabilityStatus()).isEqualTo(
|
||||
BasePreferenceController.AVAILABLE_UNSEARCHABLE);
|
||||
|
||||
capabilitiesAndConfig = createCapabilitiesAndConfig(false,
|
||||
PROVIDER_STATUS_IS_CERTAIN, DEPENDENCY_STATUS_OK,
|
||||
PROVIDER_STATUS_IS_CERTAIN, DEPENDENCY_STATUS_DEGRADED_BY_SETTINGS);
|
||||
when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
|
||||
|
||||
assertThat(controller.getAvailabilityStatus()).isEqualTo(
|
||||
BasePreferenceController.AVAILABLE_UNSEARCHABLE);
|
||||
}
|
||||
|
Reference in New Issue
Block a user