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

Commit ed0b063a authored by Pierre Barbier de Reuille's avatar Pierre Barbier de Reuille
Browse files

Correct DesktopMode tests to be less dependent on flags.

The tests assume the use of the Settings.Global while for Desktop
Experiences they do not anymore. Instead, we update the cache to avoid
reading the underlying data.

Fix: 396640696
Bug: 389092752
Flag: EXEMPT (Bug fix)
Test: atest DesktopModeStatusTest
Test: atest DesktopModeHelperTest
Change-Id: I1da82d2e8e96355c16a1ddc33489d68e4f92a1be
parent 2b8c7701
Loading
Loading
Loading
Loading
+4 −15
Original line number Diff line number Diff line
@@ -22,8 +22,6 @@ import android.platform.test.annotations.DisableFlags
import android.platform.test.annotations.EnableFlags
import android.platform.test.annotations.Presubmit
import android.platform.test.flag.junit.SetFlagsRule
import android.provider.Settings
import android.provider.Settings.Global.DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES
import android.window.DesktopModeFlags
import androidx.test.filters.SmallTest
import com.android.internal.R
@@ -63,14 +61,12 @@ class DesktopModeStatusTest : ShellTestCase() {
        doReturn(context.contentResolver).whenever(mockContext).contentResolver
        resetDesktopModeFlagsCache()
        resetEnforceDeviceRestriction()
        resetFlagOverride()
    }

    @After
    fun tearDown() {
        resetDesktopModeFlagsCache()
        resetEnforceDeviceRestriction()
        resetFlagOverride()
    }

    @DisableFlags(
@@ -246,18 +242,11 @@ class DesktopModeStatusTest : ShellTestCase() {
        cachedToggleOverride.set(null, null)
    }

    private fun resetFlagOverride() {
        Settings.Global.putString(
            context.contentResolver,
            DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES, null
        )
    }

    private fun setFlagOverride(override: DesktopModeFlags.ToggleOverride) {
        Settings.Global.putInt(
            context.contentResolver,
            DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES, override.setting
        )
        val cachedToggleOverride =
            DesktopModeFlags::class.java.getDeclaredField("sCachedToggleOverride")
        cachedToggleOverride.isAccessible = true
        cachedToggleOverride.set(null, override)
    }

    private fun setDeviceEligibleForDesktopMode(eligible: Boolean) {
+7 −14
Original line number Diff line number Diff line
@@ -16,8 +16,6 @@

package com.android.server.wm;

import static android.provider.Settings.Global.DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES;

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

import static org.mockito.Mockito.doReturn;
@@ -30,7 +28,6 @@ import android.platform.test.annotations.DisableFlags;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.annotations.Presubmit;
import android.platform.test.flag.junit.SetFlagsRule;
import android.provider.Settings;
import android.window.DesktopModeFlags;

import androidx.test.filters.SmallTest;
@@ -74,14 +71,12 @@ public class DesktopModeHelperTest {
        doReturn(mContext.getContentResolver()).when(mMockContext).getContentResolver();
        resetDesktopModeFlagsCache();
        resetEnforceDeviceRestriction();
        resetFlagOverride();
    }

    @After
    public void tearDown() throws Exception {
        resetDesktopModeFlagsCache();
        resetEnforceDeviceRestriction();
        resetFlagOverride();
    }

    @DisableFlags({Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODE,
@@ -167,7 +162,8 @@ public class DesktopModeHelperTest {
    @DisableFlags(Flags.FLAG_ENABLE_DESKTOP_MODE_THROUGH_DEV_OPTION)
    @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODE)
    @Test
    public void canEnterDesktopMode_DWFlagEnabled_configDevOptionOn_flagOverrideOn_returnsTrue() {
    public void canEnterDesktopMode_DWFlagEnabled_configDevOptionOn_flagOverrideOn_returnsTrue()
            throws Exception {
        doReturn(true).when(mMockResources).getBoolean(
                eq(R.bool.config_isDesktopModeDevOptionSupported)
        );
@@ -246,13 +242,10 @@ public class DesktopModeHelperTest {
        cachedToggleOverride.set(/* obj= */ null, /* value= */ null);
    }

    private void resetFlagOverride() {
        Settings.Global.putString(mContext.getContentResolver(),
                DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES, null);
    }

    private void setFlagOverride(DesktopModeFlags.ToggleOverride override) {
        Settings.Global.putInt(mContext.getContentResolver(),
                DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES, override.getSetting());
    private void setFlagOverride(DesktopModeFlags.ToggleOverride override) throws Exception {
        Field cachedToggleOverride = DesktopModeFlags.class.getDeclaredField(
                "sCachedToggleOverride");
        cachedToggleOverride.setAccessible(true);
        cachedToggleOverride.set(/* obj= */ null, /* value= */ override);
    }
}
 No newline at end of file