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

Commit 54ae227e authored by Lais Andrade's avatar Lais Andrade
Browse files

Fix flaky VibratorSettingsTest

Remove calls to AudioManager.reloadAudioSettings that could change ring
mode during the test execution.

Fix: 173113971
Test: atest FrameworksServicesTests:VibrationSettingsTest
Change-Id: I1ae8a984071f7cb308e7a3c584bda9424b0a01d7
parent 6b83aec2
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -152,8 +152,8 @@ public final class VibrationSettings {
    /**
    /**
     * Return {@code true} if the device should vibrate for ringtones.
     * Return {@code true} if the device should vibrate for ringtones.
     *
     *
     * <p>This checks the current {@link AudioManager#getRingerMode()} against user settings for
     * <p>This checks the current {@link AudioManager#getRingerModeInternal()} against user settings
     * vibrations while ringing.
     * for vibrations while ringing.
     */
     */
    public boolean shouldVibrateForRingtone() {
    public boolean shouldVibrateForRingtone() {
        int ringerMode = mAudioManager.getRingerModeInternal();
        int ringerMode = mAudioManager.getRingerModeInternal();
+1 −1
Original line number Original line Diff line number Diff line
@@ -806,7 +806,7 @@ public class VibratorServiceTest {
    private void setRingerMode(int ringerMode) {
    private void setRingerMode(int ringerMode) {
        AudioManager audioManager = mContextSpy.getSystemService(AudioManager.class);
        AudioManager audioManager = mContextSpy.getSystemService(AudioManager.class);
        audioManager.setRingerModeInternal(ringerMode);
        audioManager.setRingerModeInternal(ringerMode);
        assertEquals(ringerMode, audioManager.getRingerMode());
        assertEquals(ringerMode, audioManager.getRingerModeInternal());
    }
    }


    private void setUserSetting(String settingName, int value) {
    private void setUserSetting(String settingName, int value) {
+17 −25
Original line number Original line Diff line number Diff line
@@ -133,20 +133,16 @@ public class VibrationSettingsTest {
    public void shouldVibrateForRingtones_withVibrateWhenRinging_onlyIgnoreSettingsForSilentMode() {
    public void shouldVibrateForRingtones_withVibrateWhenRinging_onlyIgnoreSettingsForSilentMode() {
        setUserSetting(Settings.System.VIBRATE_WHEN_RINGING, 1);
        setUserSetting(Settings.System.VIBRATE_WHEN_RINGING, 1);


        mAudioManager.setRingerModeInternal(AudioManager.RINGER_MODE_SILENT);
        setRingerMode(AudioManager.RINGER_MODE_SILENT);
        assertEquals(AudioManager.RINGER_MODE_SILENT, mAudioManager.getRingerMode());
        assertFalse(mVibrationSettings.shouldVibrateForRingtone());
        assertFalse(mVibrationSettings.shouldVibrateForRingtone());


        mAudioManager.setRingerModeInternal(AudioManager.RINGER_MODE_MAX);
        setRingerMode(AudioManager.RINGER_MODE_MAX);
        assertEquals(AudioManager.RINGER_MODE_MAX, mAudioManager.getRingerMode());
        assertTrue(mVibrationSettings.shouldVibrateForRingtone());
        assertTrue(mVibrationSettings.shouldVibrateForRingtone());


        mAudioManager.setRingerModeInternal(AudioManager.RINGER_MODE_NORMAL);
        setRingerMode(AudioManager.RINGER_MODE_NORMAL);
        assertEquals(AudioManager.RINGER_MODE_NORMAL, mAudioManager.getRingerMode());
        assertTrue(mVibrationSettings.shouldVibrateForRingtone());
        assertTrue(mVibrationSettings.shouldVibrateForRingtone());


        mAudioManager.setRingerModeInternal(AudioManager.RINGER_MODE_VIBRATE);
        setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
        assertEquals(AudioManager.RINGER_MODE_VIBRATE, mAudioManager.getRingerMode());
        assertTrue(mVibrationSettings.shouldVibrateForRingtone());
        assertTrue(mVibrationSettings.shouldVibrateForRingtone());
    }
    }


@@ -155,20 +151,16 @@ public class VibrationSettingsTest {
        setUserSetting(Settings.System.VIBRATE_WHEN_RINGING, 0);
        setUserSetting(Settings.System.VIBRATE_WHEN_RINGING, 0);
        setGlobalSetting(Settings.Global.APPLY_RAMPING_RINGER, 1);
        setGlobalSetting(Settings.Global.APPLY_RAMPING_RINGER, 1);


        mAudioManager.setRingerModeInternal(AudioManager.RINGER_MODE_SILENT);
        setRingerMode(AudioManager.RINGER_MODE_SILENT);
        assertEquals(AudioManager.RINGER_MODE_SILENT, mAudioManager.getRingerMode());
        assertFalse(mVibrationSettings.shouldVibrateForRingtone());
        assertFalse(mVibrationSettings.shouldVibrateForRingtone());


        mAudioManager.setRingerModeInternal(AudioManager.RINGER_MODE_MAX);
        setRingerMode(AudioManager.RINGER_MODE_MAX);
        assertEquals(AudioManager.RINGER_MODE_MAX, mAudioManager.getRingerMode());
        assertTrue(mVibrationSettings.shouldVibrateForRingtone());
        assertTrue(mVibrationSettings.shouldVibrateForRingtone());


        mAudioManager.setRingerModeInternal(AudioManager.RINGER_MODE_NORMAL);
        setRingerMode(AudioManager.RINGER_MODE_NORMAL);
        assertEquals(AudioManager.RINGER_MODE_NORMAL, mAudioManager.getRingerMode());
        assertTrue(mVibrationSettings.shouldVibrateForRingtone());
        assertTrue(mVibrationSettings.shouldVibrateForRingtone());


        mAudioManager.setRingerModeInternal(AudioManager.RINGER_MODE_VIBRATE);
        setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
        assertEquals(AudioManager.RINGER_MODE_VIBRATE, mAudioManager.getRingerMode());
        assertTrue(mVibrationSettings.shouldVibrateForRingtone());
        assertTrue(mVibrationSettings.shouldVibrateForRingtone());
    }
    }


@@ -177,20 +169,16 @@ public class VibrationSettingsTest {
        setUserSetting(Settings.System.VIBRATE_WHEN_RINGING, 0);
        setUserSetting(Settings.System.VIBRATE_WHEN_RINGING, 0);
        setGlobalSetting(Settings.Global.APPLY_RAMPING_RINGER, 0);
        setGlobalSetting(Settings.Global.APPLY_RAMPING_RINGER, 0);


        mAudioManager.setRingerModeInternal(AudioManager.RINGER_MODE_VIBRATE);
        setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
        assertEquals(AudioManager.RINGER_MODE_VIBRATE, mAudioManager.getRingerMode());
        assertTrue(mVibrationSettings.shouldVibrateForRingtone());
        assertTrue(mVibrationSettings.shouldVibrateForRingtone());


        mAudioManager.setRingerModeInternal(AudioManager.RINGER_MODE_SILENT);
        setRingerMode(AudioManager.RINGER_MODE_SILENT);
        assertEquals(AudioManager.RINGER_MODE_SILENT, mAudioManager.getRingerMode());
        assertFalse(mVibrationSettings.shouldVibrateForRingtone());
        assertFalse(mVibrationSettings.shouldVibrateForRingtone());


        mAudioManager.setRingerModeInternal(AudioManager.RINGER_MODE_MAX);
        setRingerMode(AudioManager.RINGER_MODE_MAX);
        assertEquals(AudioManager.RINGER_MODE_MAX, mAudioManager.getRingerMode());
        assertFalse(mVibrationSettings.shouldVibrateForRingtone());
        assertFalse(mVibrationSettings.shouldVibrateForRingtone());


        mAudioManager.setRingerModeInternal(AudioManager.RINGER_MODE_NORMAL);
        setRingerMode(AudioManager.RINGER_MODE_NORMAL);
        assertEquals(AudioManager.RINGER_MODE_NORMAL, mAudioManager.getRingerMode());
        assertFalse(mVibrationSettings.shouldVibrateForRingtone());
        assertFalse(mVibrationSettings.shouldVibrateForRingtone());
    }
    }


@@ -294,6 +282,10 @@ public class VibrationSettingsTest {
        Settings.Global.putInt(mContextSpy.getContentResolver(), settingName, value);
        Settings.Global.putInt(mContextSpy.getContentResolver(), settingName, value);
        // FakeSettingsProvider don't support testing triggering ContentObserver yet.
        // FakeSettingsProvider don't support testing triggering ContentObserver yet.
        mVibrationSettings.updateSettings();
        mVibrationSettings.updateSettings();
        mAudioManager.reloadAudioSettings();
    }

    private void setRingerMode(int ringerMode) {
        mAudioManager.setRingerModeInternal(ringerMode);
        assertEquals(ringerMode, mAudioManager.getRingerModeInternal());
    }
    }
}
}