Loading src/com/android/settings/location/LocationPreferenceController.java +15 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,9 @@ import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.core.PreferenceController; import com.android.settings.search.DatabaseIndexingUtils; import com.android.settings.search.InlineListPayload; import com.android.settings.search.ResultPayload; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnPause; Loading Loading @@ -120,4 +123,16 @@ public class LocationPreferenceController extends PreferenceController implement } return 0; } @Override public ResultPayload getResultPayload() { final Intent intent = DatabaseIndexingUtils.buildSubsettingIntent(mContext, LocationSettings.class.getName(), KEY_LOCATION, mContext.getString(R.string.location_settings_title)); return new InlineListPayload(Secure.LOCATION_MODE, ResultPayload.SettingsSource.SECURE, intent, isAvailable(), Secure.LOCATION_MODE_HIGH_ACCURACY + 1); } } tests/robotests/src/com/android/settings/location/LocationPreferenceControllerTest.java +45 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ */ package com.android.settings.location; import static android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE; import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.nullable; Loading @@ -23,17 +24,25 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.content.BroadcastReceiver; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.location.LocationManager; import android.provider.Settings; import android.provider.Settings.Secure; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.display.AutoBrightnessPreferenceController; import com.android.settings.search.InlineListPayload; import com.android.settings.search.InlinePayload; import com.android.settings.search.InlineSwitchPayload; import com.android.settings.search.ResultPayload; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.TestConfig; import com.android.settings.testutils.shadow.ShadowSecureSettings; import com.android.settingslib.core.lifecycle.Lifecycle; import org.junit.Before; Loading @@ -42,7 +51,9 @@ import org.junit.runner.RunWith; import org.mockito.Answers; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; import org.robolectric.shadows.ShadowApplication; @RunWith(SettingsRobolectricTestRunner.class) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) Loading Loading @@ -160,4 +171,38 @@ public class LocationPreferenceControllerTest { verify(mPreference).setSummary(any()); } @Test public void testPreferenceController_ProperResultPayloadType() { final Context context = RuntimeEnvironment.application; mController = new LocationPreferenceController(context, null /* lifecycle */); ResultPayload payload = mController.getResultPayload(); assertThat(payload).isInstanceOf(InlineListPayload.class); } @Test @Config(shadows = ShadowSecureSettings.class) public void testSetValue_updatesCorrectly() { int newValue = Secure.LOCATION_MODE_BATTERY_SAVING; ContentResolver resolver = mContext.getContentResolver(); Settings.Secure.putInt(resolver, Secure.LOCATION_MODE, Secure.LOCATION_MODE_OFF); ((InlinePayload) mController.getResultPayload()).setValue(mContext, newValue); int updatedValue = Settings.Secure.getInt(resolver, Secure.LOCATION_MODE, Secure.LOCATION_MODE_OFF); assertThat(updatedValue).isEqualTo(newValue); } @Test @Config(shadows = ShadowSecureSettings.class) public void testGetValue_correctValueReturned() { int expectedValue = Secure.LOCATION_MODE_BATTERY_SAVING; ContentResolver resolver = mContext.getContentResolver(); Settings.Secure.putInt(resolver, Secure.LOCATION_MODE, expectedValue); int newValue = ((InlinePayload) mController.getResultPayload()).getValue(mContext); assertThat(newValue).isEqualTo(expectedValue); } } Loading
src/com/android/settings/location/LocationPreferenceController.java +15 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,9 @@ import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.core.PreferenceController; import com.android.settings.search.DatabaseIndexingUtils; import com.android.settings.search.InlineListPayload; import com.android.settings.search.ResultPayload; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnPause; Loading Loading @@ -120,4 +123,16 @@ public class LocationPreferenceController extends PreferenceController implement } return 0; } @Override public ResultPayload getResultPayload() { final Intent intent = DatabaseIndexingUtils.buildSubsettingIntent(mContext, LocationSettings.class.getName(), KEY_LOCATION, mContext.getString(R.string.location_settings_title)); return new InlineListPayload(Secure.LOCATION_MODE, ResultPayload.SettingsSource.SECURE, intent, isAvailable(), Secure.LOCATION_MODE_HIGH_ACCURACY + 1); } }
tests/robotests/src/com/android/settings/location/LocationPreferenceControllerTest.java +45 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ */ package com.android.settings.location; import static android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE; import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.nullable; Loading @@ -23,17 +24,25 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.content.BroadcastReceiver; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.location.LocationManager; import android.provider.Settings; import android.provider.Settings.Secure; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.display.AutoBrightnessPreferenceController; import com.android.settings.search.InlineListPayload; import com.android.settings.search.InlinePayload; import com.android.settings.search.InlineSwitchPayload; import com.android.settings.search.ResultPayload; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.TestConfig; import com.android.settings.testutils.shadow.ShadowSecureSettings; import com.android.settingslib.core.lifecycle.Lifecycle; import org.junit.Before; Loading @@ -42,7 +51,9 @@ import org.junit.runner.RunWith; import org.mockito.Answers; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; import org.robolectric.shadows.ShadowApplication; @RunWith(SettingsRobolectricTestRunner.class) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) Loading Loading @@ -160,4 +171,38 @@ public class LocationPreferenceControllerTest { verify(mPreference).setSummary(any()); } @Test public void testPreferenceController_ProperResultPayloadType() { final Context context = RuntimeEnvironment.application; mController = new LocationPreferenceController(context, null /* lifecycle */); ResultPayload payload = mController.getResultPayload(); assertThat(payload).isInstanceOf(InlineListPayload.class); } @Test @Config(shadows = ShadowSecureSettings.class) public void testSetValue_updatesCorrectly() { int newValue = Secure.LOCATION_MODE_BATTERY_SAVING; ContentResolver resolver = mContext.getContentResolver(); Settings.Secure.putInt(resolver, Secure.LOCATION_MODE, Secure.LOCATION_MODE_OFF); ((InlinePayload) mController.getResultPayload()).setValue(mContext, newValue); int updatedValue = Settings.Secure.getInt(resolver, Secure.LOCATION_MODE, Secure.LOCATION_MODE_OFF); assertThat(updatedValue).isEqualTo(newValue); } @Test @Config(shadows = ShadowSecureSettings.class) public void testGetValue_correctValueReturned() { int expectedValue = Secure.LOCATION_MODE_BATTERY_SAVING; ContentResolver resolver = mContext.getContentResolver(); Settings.Secure.putInt(resolver, Secure.LOCATION_MODE, expectedValue); int newValue = ((InlinePayload) mController.getResultPayload()).getValue(mContext); assertThat(newValue).isEqualTo(expectedValue); } }