From ed0b063ac7a17e63699de477d80e99a4e458e10d Mon Sep 17 00:00:00 2001 From: Pierre Barbier de Reuille Date: Fri, 14 Feb 2025 16:59:55 +0000 Subject: 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 --- .../shared/desktopmode/DesktopModeStatusTest.kt | 19 ++++--------------- .../android/server/wm/DesktopModeHelperTest.java | 21 +++++++-------------- 2 files changed, 11 insertions(+), 29 deletions(-) diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/shared/desktopmode/DesktopModeStatusTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/shared/desktopmode/DesktopModeStatusTest.kt index 741a0fdcf63c..4082ffd4ac0a 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/shared/desktopmode/DesktopModeStatusTest.kt +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/shared/desktopmode/DesktopModeStatusTest.kt @@ -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) { diff --git a/services/tests/wmtests/src/com/android/server/wm/DesktopModeHelperTest.java b/services/tests/wmtests/src/com/android/server/wm/DesktopModeHelperTest.java index e6c3fb369b91..1e91bedb5c18 100644 --- a/services/tests/wmtests/src/com/android/server/wm/DesktopModeHelperTest.java +++ b/services/tests/wmtests/src/com/android/server/wm/DesktopModeHelperTest.java @@ -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 -- cgit v1.2.3-59-g8ed1b