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

Commit 1ff8d517 authored by Matt Pape's avatar Matt Pape Committed by Android (Google) Code Review
Browse files

Merge "Fix the BaseSettingsProviderTest to correctly verify broadcasts that...

Merge "Fix the BaseSettingsProviderTest to correctly verify broadcasts that don't arrive immediately. Update the location settings permission related tests that had subtle problems masked by the missing verification step."
parents c6ccdcfc 701954d3
Loading
Loading
Loading
Loading
+50 −39
Original line number Diff line number Diff line
@@ -613,7 +613,7 @@ public class SettingsProviderTest extends BaseSettingsProviderTest {
            final String name, final String value, final int userId) throws Exception {
        ContentResolver contentResolver = getContext().getContentResolver();

        final Uri settingUri = getBaseUriForType(type);
        final Uri settingUri = getBaseUriForType(type).buildUpon().appendPath(name).build();

        final AtomicBoolean success = new AtomicBoolean();

@@ -640,6 +640,7 @@ public class SettingsProviderTest extends BaseSettingsProviderTest {

            final long startTimeMillis = SystemClock.uptimeMillis();
            synchronized (mLock) {
                while (true) {
                    if (success.get()) {
                        return;
                    }
@@ -656,6 +657,7 @@ public class SettingsProviderTest extends BaseSettingsProviderTest {
                        /* ignore */
                    }
                }
            }
        } finally {
            contentResolver.unregisterContentObserver(contentObserver);
        }
@@ -689,39 +691,50 @@ public class SettingsProviderTest extends BaseSettingsProviderTest {
    }

    @Test
    public void testUpdateLocationProvidersAllowedLocked_enableProviders() throws Exception {
        setSettingViaFrontEndApiAndAssertSuccessfulChange(
    public void testLocationModeChanges_viaFrontEndApi() throws Exception {
        setStringViaFrontEndApiSetting(
                SETTING_TYPE_SECURE,
                Settings.Secure.LOCATION_MODE,
                String.valueOf(Settings.Secure.LOCATION_MODE_OFF),
                UserHandle.USER_SYSTEM);

        // Enable one provider
        updateStringViaProviderApiSetting(
                SETTING_TYPE_SECURE, Settings.Secure.LOCATION_PROVIDERS_ALLOWED, "+gps");

        assertEquals(
                "Wrong location providers",
                "gps",
                queryStringViaProviderApi(
                        SETTING_TYPE_SECURE, Settings.Secure.LOCATION_PROVIDERS_ALLOWED));
                "",
                getStringViaFrontEndApiSetting(
                        SETTING_TYPE_SECURE,
                        Settings.Secure.LOCATION_PROVIDERS_ALLOWED,
                        UserHandle.USER_SYSTEM));

        // Enable a list of providers, including the one that is already enabled
        updateStringViaProviderApiSetting(
        setStringViaFrontEndApiSetting(
                SETTING_TYPE_SECURE,
                Settings.Secure.LOCATION_MODE,
                String.valueOf(Settings.Secure.LOCATION_MODE_BATTERY_SAVING),
                UserHandle.USER_SYSTEM);
        assertEquals(
                "Wrong location providers",
                "network",
                getStringViaFrontEndApiSetting(
                        SETTING_TYPE_SECURE,
                        Settings.Secure.LOCATION_PROVIDERS_ALLOWED,
                "+gps,+network,+network");
                        UserHandle.USER_SYSTEM));

        setStringViaFrontEndApiSetting(
                SETTING_TYPE_SECURE,
                Settings.Secure.LOCATION_MODE,
                String.valueOf(Settings.Secure.LOCATION_MODE_HIGH_ACCURACY),
                UserHandle.USER_SYSTEM);
        assertEquals(
                "Wrong location providers",
                "gps,network",
                queryStringViaProviderApi(
                        SETTING_TYPE_SECURE, Settings.Secure.LOCATION_PROVIDERS_ALLOWED));
                getStringViaFrontEndApiSetting(
                        SETTING_TYPE_SECURE,
                        Settings.Secure.LOCATION_PROVIDERS_ALLOWED,
                        UserHandle.USER_SYSTEM));
    }

    @Test
    public void testUpdateLocationProvidersAllowedLocked_disableProviders() throws Exception {
        setSettingViaFrontEndApiAndAssertSuccessfulChange(
    public void testLocationProvidersAllowed_disableProviders() throws Exception {
        setStringViaFrontEndApiSetting(
                SETTING_TYPE_SECURE,
                Settings.Secure.LOCATION_MODE,
                String.valueOf(Settings.Secure.LOCATION_MODE_HIGH_ACCURACY),
@@ -732,7 +745,6 @@ public class SettingsProviderTest extends BaseSettingsProviderTest {
                SETTING_TYPE_SECURE,
                Settings.Secure.LOCATION_PROVIDERS_ALLOWED,
                "-gps,-network");

        assertEquals(
                "Wrong location providers",
                "",
@@ -744,7 +756,6 @@ public class SettingsProviderTest extends BaseSettingsProviderTest {
                SETTING_TYPE_SECURE,
                Settings.Secure.LOCATION_PROVIDERS_ALLOWED,
                "-test");

        assertEquals(
                "Wrong location providers",
                "",
@@ -753,8 +764,8 @@ public class SettingsProviderTest extends BaseSettingsProviderTest {
    }

    @Test
    public void testUpdateLocationProvidersAllowedLocked_enableAndDisable() throws Exception {
        setSettingViaFrontEndApiAndAssertSuccessfulChange(
    public void testLocationProvidersAllowed_enableAndDisable() throws Exception {
        setStringViaFrontEndApiSetting(
                SETTING_TYPE_SECURE,
                Settings.Secure.LOCATION_MODE,
                String.valueOf(Settings.Secure.LOCATION_MODE_OFF),
@@ -775,8 +786,8 @@ public class SettingsProviderTest extends BaseSettingsProviderTest {
    }

    @Test
    public void testUpdateLocationProvidersAllowedLocked_invalidInput() throws Exception {
        setSettingViaFrontEndApiAndAssertSuccessfulChange(
    public void testLocationProvidersAllowedLocked_invalidInput() throws Exception {
        setStringViaFrontEndApiSetting(
                SETTING_TYPE_SECURE,
                Settings.Secure.LOCATION_MODE,
                String.valueOf(Settings.Secure.LOCATION_MODE_OFF),