Loading src/com/android/settings/display/DeviceStateAutoRotateSettingController.java +5 −4 Original line number Diff line number Diff line Loading @@ -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) { Loading tests/robotests/src/com/android/settings/display/DeviceStateAutoRotateSettingControllerTest.java +40 −16 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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; Loading @@ -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 ); } Loading Loading @@ -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 Loading Loading
src/com/android/settings/display/DeviceStateAutoRotateSettingController.java +5 −4 Original line number Diff line number Diff line Loading @@ -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) { Loading
tests/robotests/src/com/android/settings/display/DeviceStateAutoRotateSettingControllerTest.java +40 −16 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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; Loading @@ -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 ); } Loading Loading @@ -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 Loading