Merge "SettingsRoboTests: fix device state rotation related tests" into udc-dev

This commit is contained in:
TreeHugger Robot
2023-04-28 17:01:39 +00:00
committed by Android (Google) Code Review
3 changed files with 42 additions and 9 deletions

View File

@@ -16,6 +16,8 @@
package com.android.settings.display; package com.android.settings.display;
import static android.provider.Settings.Secure.DEVICE_STATE_ROTATION_LOCK_LOCKED;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.spy; import static org.mockito.Mockito.spy;
@@ -39,6 +41,10 @@ import java.util.List;
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
public class DeviceStateAutoRotateDetailsFragmentTest { public class DeviceStateAutoRotateDetailsFragmentTest {
private static final int FOLDED_STATE = 0;
private static final int HALF_FOLDED_STATE = 1;
private static final int UNFOLDED_STATE = 2;
private static final int REAR_DISPLAY_STATE = 3;
private final DeviceStateAutoRotateDetailsFragment mFragment = private final DeviceStateAutoRotateDetailsFragment mFragment =
spy(new DeviceStateAutoRotateDetailsFragment()); spy(new DeviceStateAutoRotateDetailsFragment());
@@ -51,6 +57,7 @@ public class DeviceStateAutoRotateDetailsFragmentTest {
when(mContext.getApplicationContext()).thenReturn(mContext); when(mContext.getApplicationContext()).thenReturn(mContext);
when(mFragment.getContext()).thenReturn(mContext); when(mFragment.getContext()).thenReturn(mContext);
when(mFragment.getResources()).thenReturn(mResources); when(mFragment.getResources()).thenReturn(mResources);
setUpPostureMappings();
} }
@Test @Test
@@ -67,7 +74,9 @@ public class DeviceStateAutoRotateDetailsFragmentTest {
@Test @Test
public void createPreferenceControllers_settableDeviceStates_returnsDeviceStateControllers() { public void createPreferenceControllers_settableDeviceStates_returnsDeviceStateControllers() {
enableDeviceStateSettableRotationStates(new String[]{"0:1", "1:1"}, enableDeviceStateSettableRotationStates(
new String[]{FOLDED_STATE + ":" + DEVICE_STATE_ROTATION_LOCK_LOCKED,
UNFOLDED_STATE + ":" + DEVICE_STATE_ROTATION_LOCK_LOCKED},
new String[]{"Folded", "Unfolded"}); new String[]{"Folded", "Unfolded"});
List<AbstractPreferenceController> preferenceControllers = List<AbstractPreferenceController> preferenceControllers =
@@ -102,4 +111,19 @@ public class DeviceStateAutoRotateDetailsFragmentTest {
DeviceStateRotationLockSettingsManager.getInstance(mContext) DeviceStateRotationLockSettingsManager.getInstance(mContext)
.resetStateForTesting(mResources); .resetStateForTesting(mResources);
} }
private void setUpPostureMappings() {
when(mResources.getIntArray(
com.android.internal.R.array.config_foldedDeviceStates)).thenReturn(
new int[]{FOLDED_STATE});
when(mResources.getIntArray(
com.android.internal.R.array.config_halfFoldedDeviceStates)).thenReturn(
new int[]{HALF_FOLDED_STATE});
when(mResources.getIntArray(
com.android.internal.R.array.config_openDeviceStates)).thenReturn(
new int[]{UNFOLDED_STATE});
when(mResources.getIntArray(
com.android.internal.R.array.config_rearDisplayDeviceStates)).thenReturn(
new int[]{REAR_DISPLAY_STATE});
}
} }

View File

@@ -53,6 +53,7 @@ import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner; import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment; import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config; import org.robolectric.annotation.Config;
import org.robolectric.shadow.api.Shadow;
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
@Config(shadows = ShadowSensorPrivacyManager.class) @Config(shadows = ShadowSensorPrivacyManager.class)
@@ -171,16 +172,14 @@ public class SmartAutoRotateControllerTest {
} }
private void lockDeviceStateRotation() { private void lockDeviceStateRotation() {
mDeviceStateAutoRotateSettingsManager.updateSetting( ShadowDeviceStateRotationLockSettingsManager shadowManager =
/* deviceState= */0, /* rotationLocked= */ true); Shadow.extract(mDeviceStateAutoRotateSettingsManager);
mDeviceStateAutoRotateSettingsManager.updateSetting( shadowManager.setRotationLockedForAllStates(true);
/* deviceState= */1, /* rotationLocked= */ true);
} }
private void unlockDeviceStateRotation() { private void unlockDeviceStateRotation() {
mDeviceStateAutoRotateSettingsManager.updateSetting( ShadowDeviceStateRotationLockSettingsManager shadowManager =
/* deviceState= */0, /* rotationLocked= */ false); Shadow.extract(mDeviceStateAutoRotateSettingsManager);
mDeviceStateAutoRotateSettingsManager.updateSetting( shadowManager.setRotationLockedForAllStates(false);
/* deviceState= */1, /* rotationLocked= */ true);
} }
} }

View File

@@ -27,6 +27,7 @@ import org.robolectric.annotation.Implements;
public class ShadowDeviceStateRotationLockSettingsManager { public class ShadowDeviceStateRotationLockSettingsManager {
private static boolean sDeviceStateRotationLockEnabled; private static boolean sDeviceStateRotationLockEnabled;
private boolean mIsRotationLockedForAllStates;
@Implementation @Implementation
public static boolean isDeviceStateRotationLockEnabled(Context context) { public static boolean isDeviceStateRotationLockEnabled(Context context) {
@@ -36,4 +37,13 @@ public class ShadowDeviceStateRotationLockSettingsManager {
public static void setDeviceStateRotationLockEnabled(boolean enabled) { public static void setDeviceStateRotationLockEnabled(boolean enabled) {
sDeviceStateRotationLockEnabled = enabled; sDeviceStateRotationLockEnabled = enabled;
} }
@Implementation
public boolean isRotationLockedForAllStates() {
return mIsRotationLockedForAllStates;
}
public void setRotationLockedForAllStates(boolean value) {
mIsRotationLockedForAllStates = value;
}
} }