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

Commit fe6aed24 authored by dshivangi's avatar dshivangi
Browse files

Fix DeviceStateAutoRotateSettingControllerTest to adapt to refactored settingManager

Fixes: 419454779
Fixes: 419381437
Test: atest DeviceStateAutoRotateSettingControllerTest
Flag: TEST_ONLY
Change-Id: Ibdf8b2e4a92e81518c562e9bdc7953870e1c81e1
parent b3249129
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -56,20 +56,21 @@ public class DeviceStateAutoRotateSettingController extends TogglePreferenceCont
    @VisibleForTesting
    DeviceStateAutoRotateSettingController(Context context, int deviceState,
            String deviceStateDescription, int order,
            MetricsFeatureProvider metricsFeatureProvider) {
            MetricsFeatureProvider metricsFeatureProvider,
            DeviceStateAutoRotateSettingManager deviceStateAutoRotateSettingManager) {
        super(context, getPreferenceKeyForDeviceState(deviceState));
        mMetricsFeatureProvider = metricsFeatureProvider;
        mDeviceState = deviceState;
        mDeviceStateDescription = deviceStateDescription;
        mAutoRotateSettingsManager =
                DeviceStateAutoRotateSettingManagerProvider.getSingletonInstance(context);
        mAutoRotateSettingsManager = deviceStateAutoRotateSettingManager;
        mOrder = order;
    }

    public DeviceStateAutoRotateSettingController(Context context, int deviceState,
            String deviceStateDescription, int order) {
        this(context, deviceState, deviceStateDescription, order,
                FeatureFactory.getFeatureFactory().getMetricsFeatureProvider());
                FeatureFactory.getFeatureFactory().getMetricsFeatureProvider(),
                DeviceStateAutoRotateSettingManagerProvider.getSingletonInstance(context));
    }

    void init(Lifecycle lifecycle) {
+40 −16
Original line number Diff line number Diff line
@@ -22,6 +22,8 @@ import static com.android.settings.testutils.DeviceStateAutoRotateSettingTestUti

import static com.google.common.truth.Truth.assertThat;

import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -40,11 +42,14 @@ import com.android.settings.R;
import com.android.settings.testutils.shadow.ShadowRotationPolicy;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.devicestate.DeviceStateAutoRotateSettingManager;
import com.android.settingslib.devicestate.DeviceStateAutoRotateSettingManager.DeviceStateAutoRotateSettingListener;
import com.android.settingslib.search.SearchIndexableRaw;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
import org.mockito.Captor;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
@@ -65,7 +70,10 @@ public class DeviceStateAutoRotateSettingControllerTest {
    private static final int DEFAULT_ORDER = -10;

    private final Context mContext = Mockito.spy(RuntimeEnvironment.application);
    private DeviceStateAutoRotateSettingManager mAutoRotateSettingsManager;
    private DeviceStateAutoRotateSettingManager mSpyAutoRotateSettingsManager;

    @Captor private ArgumentCaptor<DeviceStateAutoRotateSettingListener>
            mDeviceStateAutoRotateSettingListenerCaptor;

    @Mock private MetricsFeatureProvider mMetricsFeatureProvider;
    @Mock private DeviceStateManager mDeviceStateManager;
@@ -83,15 +91,17 @@ public class DeviceStateAutoRotateSettingControllerTest {
        doReturn(List.of(DEFAULT_DEVICE_STATE)).when(
                mDeviceStateManager).getSupportedDeviceStates();
        setDeviceStateRotationLockEnabled(false, mResources);
        mAutoRotateSettingsManager =
                DeviceStateAutoRotateSettingManagerProvider.getSingletonInstance(mContext);
        mSpyAutoRotateSettingsManager =
                Mockito.spy(
                        DeviceStateAutoRotateSettingManagerProvider.getSingletonInstance(mContext));

        mController = new DeviceStateAutoRotateSettingController(
                mContext,
                DEFAULT_DEVICE_STATE.getIdentifier(),
                DEFAULT_DEVICE_STATE_DESCRIPTION,
                DEFAULT_ORDER,
                mMetricsFeatureProvider
                mMetricsFeatureProvider,
                mSpyAutoRotateSettingsManager
        );
    }

@@ -148,38 +158,52 @@ public class DeviceStateAutoRotateSettingControllerTest {

    @Test
    public void isChecked_settingForStateIsUnlocked_returnsTrue() {
        mAutoRotateSettingsManager.updateSetting(
                DEFAULT_DEVICE_STATE.getIdentifier(), /* rotationLocked= */ false);
        mController.onStart();
        verify(mSpyAutoRotateSettingsManager, atLeastOnce()).registerListener(
                mDeviceStateAutoRotateSettingListenerCaptor.capture());
        when(mSpyAutoRotateSettingsManager.isRotationLocked(
                eq(DEFAULT_DEVICE_STATE.getIdentifier()))).thenReturn(false);

        mDeviceStateAutoRotateSettingListenerCaptor.getValue().onSettingsChanged();

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

    @Test
    public void isChecked_settingForStateIsLocked_returnsFalse() {
        mAutoRotateSettingsManager.updateSetting(
                DEFAULT_DEVICE_STATE.getIdentifier(), /* rotationLocked= */ true);
        mController.onStart();
        verify(mSpyAutoRotateSettingsManager, atLeastOnce()).registerListener(
                mDeviceStateAutoRotateSettingListenerCaptor.capture());
        when(mSpyAutoRotateSettingsManager.isRotationLocked(
                eq(DEFAULT_DEVICE_STATE.getIdentifier()))).thenReturn(true);

        mDeviceStateAutoRotateSettingListenerCaptor.getValue().onSettingsChanged();

        assertThat(mController.isChecked()).isFalse();
    }

    @Test
    public void setChecked_true_deviceStateSettingIsUnlocked() {
        mController.setChecked(true);
        mController.onStart();
        verify(mSpyAutoRotateSettingsManager, atLeastOnce()).registerListener(
                mDeviceStateAutoRotateSettingListenerCaptor.capture());

        boolean rotationLocked = mAutoRotateSettingsManager.isRotationLocked(
                DEFAULT_DEVICE_STATE.getIdentifier());
        mController.setChecked(true);

        assertThat(rotationLocked).isFalse();
        verify(mSpyAutoRotateSettingsManager, atLeastOnce()).updateSetting(
                eq(DEFAULT_DEVICE_STATE.getIdentifier()), eq(false));
    }

    @Test
    public void setChecked_false_deviceStateSettingIsLocked() {
        mController.setChecked(false);
        mController.onStart();
        verify(mSpyAutoRotateSettingsManager, atLeastOnce()).registerListener(
                mDeviceStateAutoRotateSettingListenerCaptor.capture());

        boolean rotationLocked = mAutoRotateSettingsManager.isRotationLocked(
                DEFAULT_DEVICE_STATE.getIdentifier());
        mController.setChecked(false);

        assertThat(rotationLocked).isTrue();
        verify(mSpyAutoRotateSettingsManager, atLeastOnce()).updateSetting(
                eq(DEFAULT_DEVICE_STATE.getIdentifier()), eq(true));
    }

    @Test