From a85577054bc958f880aadf5a6b716c88e873129c Mon Sep 17 00:00:00 2001 From: Pierre Barbier de Reuille Date: Fri, 31 Jan 2025 23:39:33 +0000 Subject: [PATCH] Desktop Experience needs the device to be eligible The Desktop Experience is only available (and therefore the freeform on secondary display disabled) if the device is eligible for Desktop Mode. Correcting the test to make it correct. Fix: 393547201 Test: atest DesktopModeSecondaryDisplayPreferenceControllerTest Flag: EXEMPT (bug fix) Change-Id: I36a031487d8a6f6d681a2cb46a1fa50e47d870cc --- ...deSecondaryDisplayPreferenceControllerTest.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/tests/robotests/src/com/android/settings/development/DesktopModeSecondaryDisplayPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/DesktopModeSecondaryDisplayPreferenceControllerTest.java index c4e8f489ca5..dc6ac3fafba 100644 --- a/tests/robotests/src/com/android/settings/development/DesktopModeSecondaryDisplayPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/development/DesktopModeSecondaryDisplayPreferenceControllerTest.java @@ -26,10 +26,12 @@ import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.content.Context; +import android.content.res.Resources; import android.platform.test.annotations.DisableFlags; import android.platform.test.annotations.EnableFlags; import android.platform.test.flag.junit.SetFlagsRule; @@ -41,6 +43,7 @@ import androidx.fragment.app.FragmentTransaction; import androidx.preference.PreferenceScreen; import androidx.preference.SwitchPreference; +import com.android.internal.R; import com.android.window.flags.Flags; import org.junit.Before; @@ -78,18 +81,22 @@ public class DesktopModeSecondaryDisplayPreferenceControllerTest { private FragmentTransaction mTransaction; private Context mContext; + private Resources mResources; private DesktopModeSecondaryDisplayPreferenceController mController; @Before - public void setup() { + public void setup() throws Exception { MockitoAnnotations.initMocks(this); - mContext = RuntimeEnvironment.application; + mContext = spy(RuntimeEnvironment.application); + mResources = spy(mContext.getResources()); + when(mContext.getResources()).thenReturn(mResources); doReturn(mTransaction).when(mFragmentManager).beginTransaction(); doReturn(mFragmentManager).when(mActivity).getSupportFragmentManager(); doReturn(mActivity).when(mFragment).getActivity(); mController = new DesktopModeSecondaryDisplayPreferenceController(mContext, mFragment); when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference); mController.displayPreference(mScreen); + when(mResources.getBoolean(R.bool.config_isDesktopModeSupported)).thenReturn(false); } @DisableFlags(Flags.FLAG_SHOW_DESKTOP_EXPERIENCE_DEV_OPTION) @@ -101,6 +108,8 @@ public class DesktopModeSecondaryDisplayPreferenceControllerTest { @EnableFlags(Flags.FLAG_SHOW_DESKTOP_EXPERIENCE_DEV_OPTION) @Test public void isAvailable_whenDesktopExperienceDevOptionIsEnabled_shouldBeFalse() { + when(mResources.getBoolean(R.bool.config_isDesktopModeSupported)).thenReturn(true); + assertThat(mController.isAvailable()).isFalse(); } @@ -174,4 +183,5 @@ public class DesktopModeSecondaryDisplayPreferenceControllerTest { assertThat(mode).isEqualTo(SETTING_VALUE_OFF); verify(mPreference).setEnabled(false); } + }