1 package com.android.settings.location; 2 3 import static com.google.common.truth.Truth.assertThat; 4 5 import android.content.Context; 6 import android.provider.Settings; 7 8 import com.android.settings.testutils.SettingsRobolectricTestRunner; 9 10 import org.junit.Before; 11 import org.junit.Test; 12 import org.junit.runner.RunWith; 13 import org.mockito.Mock; 14 import org.mockito.MockitoAnnotations; 15 import org.robolectric.RuntimeEnvironment; 16 17 @RunWith(SettingsRobolectricTestRunner.class) 18 public class AppLocationPermissionPreferenceControllerTest { 19 20 private AppLocationPermissionPreferenceController mController; 21 22 @Mock 23 private Context mContext; 24 25 @Before setUp()26 public void setUp() { 27 MockitoAnnotations.initMocks(this); 28 mContext = RuntimeEnvironment.application; 29 mController = new AppLocationPermissionPreferenceController(mContext); 30 } 31 32 @Test isAvailable_noLocationLinkPermission_shouldReturnFalse()33 public void isAvailable_noLocationLinkPermission_shouldReturnFalse() { 34 Settings.System.putInt(mContext.getContentResolver(), 35 android.provider.Settings.Global.LOCATION_SETTINGS_LINK_TO_PERMISSIONS_ENABLED, 0); 36 37 assertThat(mController.isAvailable()).isFalse(); 38 } 39 40 @Test displayPreference_hasLocationLinkPermission_shouldReturnTrue()41 public void displayPreference_hasLocationLinkPermission_shouldReturnTrue() { 42 Settings.System.putInt(mContext.getContentResolver(), 43 android.provider.Settings.Global.LOCATION_SETTINGS_LINK_TO_PERMISSIONS_ENABLED, 1); 44 45 assertThat(mController.isAvailable()).isTrue(); 46 } 47 } 48