Update Settings tests to new DeviceStateManager API
Updates tests that use PosturesHelper to return both the correct configuration values as well as the values returned through the DeviceStateManager APIs Flag: android.hardware.devicestate.feature.flags.device_state_property_migration Bug: 336640888 Test: atest SettingsRoboTests Change-Id: I23e7446de719f11c99a4f747e189e11405b203ef
This commit is contained in:
@@ -16,16 +16,26 @@
|
||||
|
||||
package com.android.settings.display;
|
||||
|
||||
import static android.hardware.devicestate.DeviceState.PROPERTY_EMULATED_ONLY;
|
||||
import static android.hardware.devicestate.DeviceState.PROPERTY_FEATURE_REAR_DISPLAY;
|
||||
import static android.hardware.devicestate.DeviceState.PROPERTY_FOLDABLE_DISPLAY_CONFIGURATION_INNER_PRIMARY;
|
||||
import static android.hardware.devicestate.DeviceState.PROPERTY_FOLDABLE_DISPLAY_CONFIGURATION_OUTER_PRIMARY;
|
||||
import static android.hardware.devicestate.DeviceState.PROPERTY_FOLDABLE_HARDWARE_CONFIGURATION_FOLD_IN_CLOSED;
|
||||
import static android.hardware.devicestate.DeviceState.PROPERTY_FOLDABLE_HARDWARE_CONFIGURATION_FOLD_IN_HALF_OPEN;
|
||||
import static android.hardware.devicestate.DeviceState.PROPERTY_FOLDABLE_HARDWARE_CONFIGURATION_FOLD_IN_OPEN;
|
||||
import static android.provider.Settings.Secure.DEVICE_STATE_ROTATION_LOCK_LOCKED;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.app.settings.SettingsEnums;
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.hardware.devicestate.DeviceState;
|
||||
import android.hardware.devicestate.DeviceStateManager;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settingslib.core.AbstractPreferenceController;
|
||||
@@ -34,29 +44,61 @@ import com.android.settingslib.devicestate.DeviceStateRotationLockSettingsManage
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
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 static final DeviceState DEVICE_STATE_FOLDED = new DeviceState(
|
||||
new DeviceState.Configuration.Builder(/* identifier= */ 0, "FOLDED")
|
||||
.setSystemProperties(Set.of(
|
||||
PROPERTY_FOLDABLE_DISPLAY_CONFIGURATION_OUTER_PRIMARY))
|
||||
.setPhysicalProperties(Set.of(
|
||||
PROPERTY_FOLDABLE_HARDWARE_CONFIGURATION_FOLD_IN_CLOSED))
|
||||
.build());
|
||||
private static final DeviceState DEVICE_STATE_HALF_FOLDED = new DeviceState(
|
||||
new DeviceState.Configuration.Builder(/* identifier= */ 1, "HALF_FOLDED")
|
||||
.setSystemProperties(Set.of(
|
||||
PROPERTY_FOLDABLE_DISPLAY_CONFIGURATION_INNER_PRIMARY))
|
||||
.setPhysicalProperties(Set.of(
|
||||
PROPERTY_FOLDABLE_HARDWARE_CONFIGURATION_FOLD_IN_HALF_OPEN))
|
||||
.build());
|
||||
private static final DeviceState DEVICE_STATE_UNFOLDED = new DeviceState(
|
||||
new DeviceState.Configuration.Builder(/* identifier= */ 2, "UNFOLDED")
|
||||
.setSystemProperties(Set.of(
|
||||
PROPERTY_FOLDABLE_DISPLAY_CONFIGURATION_INNER_PRIMARY))
|
||||
.setPhysicalProperties(Set.of(
|
||||
PROPERTY_FOLDABLE_HARDWARE_CONFIGURATION_FOLD_IN_OPEN))
|
||||
.build());
|
||||
private static final DeviceState DEVICE_STATE_REAR_DISPLAY = new DeviceState(
|
||||
new DeviceState.Configuration.Builder(/* identifier= */ 3, "REAR_DISPLAY")
|
||||
.setSystemProperties(Set.of(
|
||||
PROPERTY_FOLDABLE_DISPLAY_CONFIGURATION_OUTER_PRIMARY,
|
||||
PROPERTY_FEATURE_REAR_DISPLAY, PROPERTY_EMULATED_ONLY))
|
||||
.setPhysicalProperties(Set.of(
|
||||
PROPERTY_FOLDABLE_HARDWARE_CONFIGURATION_FOLD_IN_CLOSED))
|
||||
.build());
|
||||
|
||||
private final DeviceStateAutoRotateDetailsFragment mFragment =
|
||||
spy(new DeviceStateAutoRotateDetailsFragment());
|
||||
private final Context mContext = spy(RuntimeEnvironment.application);
|
||||
private final Resources mResources = spy(mContext.getResources());
|
||||
@Mock
|
||||
private DeviceStateManager mDeviceStateManager;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
when(mContext.getResources()).thenReturn(mResources);
|
||||
when(mContext.getApplicationContext()).thenReturn(mContext);
|
||||
when(mFragment.getContext()).thenReturn(mContext);
|
||||
when(mFragment.getResources()).thenReturn(mResources);
|
||||
doReturn(mDeviceStateManager).when(mContext).getSystemService(DeviceStateManager.class);
|
||||
setUpPostureMappings();
|
||||
}
|
||||
|
||||
@@ -75,8 +117,10 @@ public class DeviceStateAutoRotateDetailsFragmentTest {
|
||||
@Test
|
||||
public void createPreferenceControllers_settableDeviceStates_returnsDeviceStateControllers() {
|
||||
enableDeviceStateSettableRotationStates(
|
||||
new String[]{FOLDED_STATE + ":" + DEVICE_STATE_ROTATION_LOCK_LOCKED,
|
||||
UNFOLDED_STATE + ":" + DEVICE_STATE_ROTATION_LOCK_LOCKED},
|
||||
new String[]{DEVICE_STATE_FOLDED.getIdentifier() + ":"
|
||||
+ DEVICE_STATE_ROTATION_LOCK_LOCKED,
|
||||
DEVICE_STATE_UNFOLDED.getIdentifier() + ":"
|
||||
+ DEVICE_STATE_ROTATION_LOCK_LOCKED},
|
||||
new String[]{"Folded", "Unfolded"});
|
||||
|
||||
List<AbstractPreferenceController> preferenceControllers =
|
||||
@@ -112,18 +156,22 @@ public class DeviceStateAutoRotateDetailsFragmentTest {
|
||||
.resetStateForTesting(mResources);
|
||||
}
|
||||
|
||||
// Sets up posture mappings for PosturesHelper
|
||||
private void setUpPostureMappings() {
|
||||
when(mResources.getIntArray(
|
||||
com.android.internal.R.array.config_foldedDeviceStates)).thenReturn(
|
||||
new int[]{FOLDED_STATE});
|
||||
new int[]{DEVICE_STATE_FOLDED.getIdentifier()});
|
||||
when(mResources.getIntArray(
|
||||
com.android.internal.R.array.config_halfFoldedDeviceStates)).thenReturn(
|
||||
new int[]{HALF_FOLDED_STATE});
|
||||
new int[]{DEVICE_STATE_HALF_FOLDED.getIdentifier()});
|
||||
when(mResources.getIntArray(
|
||||
com.android.internal.R.array.config_openDeviceStates)).thenReturn(
|
||||
new int[]{UNFOLDED_STATE});
|
||||
new int[]{DEVICE_STATE_UNFOLDED.getIdentifier()});
|
||||
when(mResources.getIntArray(
|
||||
com.android.internal.R.array.config_rearDisplayDeviceStates)).thenReturn(
|
||||
new int[]{REAR_DISPLAY_STATE});
|
||||
new int[]{DEVICE_STATE_REAR_DISPLAY.getIdentifier()});
|
||||
when(mDeviceStateManager.getSupportedDeviceStates()).thenReturn(
|
||||
List.of(DEVICE_STATE_FOLDED, DEVICE_STATE_HALF_FOLDED, DEVICE_STATE_UNFOLDED,
|
||||
DEVICE_STATE_REAR_DISPLAY));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user