Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4e0d53ba authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Unit test for AppLocationPermissionPreferenceController"

parents 7a38a268 769a9fb0
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@ import android.location.LocationManager;
import android.permission.PermissionControllerManager;
import android.provider.Settings;

import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;

import com.android.settings.R;
@@ -24,9 +25,11 @@ public class AppLocationPermissionPreferenceController extends

    private static final String KEY_APP_LEVEL_PERMISSIONS = "app_level_permissions";
    /** Total number of apps that has location permission. */
    private int mNumTotal = -1;
    @VisibleForTesting
    int mNumTotal = -1;
    /** Total number of apps that has background location permission. */
    private int mNumBackground = -1;
    @VisibleForTesting
    int mNumBackground = -1;
    private final LocationManager mLocationManager;
    private Preference mPreference;

+40 −0
Original line number Diff line number Diff line
@@ -3,10 +3,12 @@ package com.android.settings.location;
import static com.google.common.truth.Truth.assertThat;

import android.content.Context;
import android.location.LocationManager;
import android.provider.Settings;

import androidx.lifecycle.LifecycleOwner;

import com.android.settings.R;
import com.android.settingslib.core.lifecycle.Lifecycle;

import org.junit.Before;
@@ -27,6 +29,7 @@ public class AppLocationPermissionPreferenceControllerTest {

    private LifecycleOwner mLifecycleOwner;
    private Lifecycle mLifecycle;
    private LocationManager mLocationManager;

    @Before
    public void setUp() {
@@ -35,6 +38,7 @@ public class AppLocationPermissionPreferenceControllerTest {
        mLifecycleOwner = () -> mLifecycle;
        mLifecycle = new Lifecycle(mLifecycleOwner);
        mController = new AppLocationPermissionPreferenceController(mContext, mLifecycle);
        mLocationManager = (LocationManager) mContext.getSystemService(Context.LOCATION_SERVICE);
    }

    @Test
@@ -52,4 +56,40 @@ public class AppLocationPermissionPreferenceControllerTest {

        assertThat(mController.isAvailable()).isTrue();
    }

    @Test
    public void getSummary_whenLocationIsOff_shouldReturnStringForOff() {
        mLocationManager.setLocationEnabledForUser(false, android.os.Process.myUserHandle());

        assertThat(mController.getSummary()).isEqualTo(
                mContext.getString(R.string.location_app_permission_summary_location_off));
    }

    @Test
    public void getSummary_whenLocationIsOn_shouldReturnLoadingString() {
        mLocationManager.setLocationEnabledForUser(true, android.os.Process.myUserHandle());

        assertThat(mController.getSummary()).isEqualTo(
                mContext.getString(R.string.location_settings_loading_app_permission_stats));
    }

    @Test
    public void getSummary_whenLocationAppCountIsOne_shouldShowSingularString() {
        mLocationManager.setLocationEnabledForUser(true, android.os.Process.myUserHandle());
        mController.mNumBackground = 1;
        mController.mNumTotal = 1;

        assertThat(mController.getSummary()).isEqualTo(mContext.getResources().getQuantityString(
                R.plurals.location_app_permission_summary_location_on, 1, 1, 1));
    }

    @Test
    public void getSummary_whenLocationAppCountIsGreaterThanOne_shouldShowPluralString() {
        mLocationManager.setLocationEnabledForUser(true, android.os.Process.myUserHandle());
        mController.mNumBackground = 5;
        mController.mNumTotal = 10;

        assertThat(mController.getSummary()).isEqualTo(mContext.getResources().getQuantityString(
                R.plurals.location_app_permission_summary_location_on, 5, 5, 10));
    }
}