Merge "[1/n] Aspect ratio settings app list refinement" into udc-qpr-dev am: a3108d5b14
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/24854937 Change-Id: I9ed3cf613ae4b20c1465403be0c989a00be425fe Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
committed by
Automerger Merge Worker
commit
2595f32076
@@ -17,10 +17,10 @@
|
||||
package com.android.settings.spa.app.appcompat
|
||||
|
||||
import android.content.Context
|
||||
import android.content.pm.ActivityInfo
|
||||
import android.content.pm.ApplicationInfo
|
||||
import android.content.pm.LauncherActivityInfo
|
||||
import android.content.pm.LauncherApps
|
||||
import android.content.pm.PackageManager
|
||||
import android.content.pm.ResolveInfo
|
||||
import android.provider.DeviceConfig.NAMESPACE_WINDOW_MANAGER
|
||||
import android.view.WindowManager.PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE
|
||||
import androidx.compose.runtime.CompositionLocalProvider
|
||||
@@ -46,9 +46,9 @@ import org.junit.Before
|
||||
import org.junit.Rule
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.mockito.ArgumentMatchers.anyString
|
||||
import org.mockito.Mock
|
||||
import org.mockito.Mockito.any
|
||||
import org.mockito.Mockito.anyInt
|
||||
import org.mockito.MockitoSession
|
||||
import org.mockito.Spy
|
||||
import org.mockito.quality.Strictness
|
||||
@@ -76,6 +76,12 @@ class UserAspectRatioAppPreferenceTest {
|
||||
@Mock
|
||||
private lateinit var packageManager: PackageManager
|
||||
|
||||
@Mock
|
||||
private lateinit var launcherApps: LauncherApps
|
||||
|
||||
@Mock
|
||||
private lateinit var launcherActivities: List<LauncherActivityInfo>
|
||||
|
||||
@Before
|
||||
fun setUp() {
|
||||
mockSession = ExtendedMockito.mockitoSession()
|
||||
@@ -86,6 +92,8 @@ class UserAspectRatioAppPreferenceTest {
|
||||
.startMocking()
|
||||
whenever(context.resources).thenReturn(resources)
|
||||
whenever(context.packageManager).thenReturn(packageManager)
|
||||
whenever(context.getSystemService(Context.LAUNCHER_APPS_SERVICE)).thenReturn(launcherApps)
|
||||
whenever(launcherApps.getActivityList(anyString(), any())).thenReturn(launcherActivities)
|
||||
// True is ignored but need this here or getBoolean will complain null object
|
||||
mockProperty(PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE, true)
|
||||
}
|
||||
@@ -107,6 +115,8 @@ class UserAspectRatioAppPreferenceTest {
|
||||
|
||||
@Test
|
||||
fun whenCannotDisplayAspectRatioUi_notDisplayed() {
|
||||
whenever(launcherActivities.isEmpty()).thenReturn(true)
|
||||
|
||||
setContent()
|
||||
|
||||
composeTestRule.onRoot().assertIsNotDisplayed()
|
||||
@@ -115,8 +125,7 @@ class UserAspectRatioAppPreferenceTest {
|
||||
@Test
|
||||
fun whenCanDisplayAspectRatioUiAndConfigFalse_notDisplayed() {
|
||||
setConfig(false)
|
||||
whenever(packageManager.queryIntentActivities(any(), anyInt()))
|
||||
.thenReturn(listOf(RESOLVE_INFO))
|
||||
whenever(launcherActivities.isEmpty()).thenReturn(false)
|
||||
|
||||
setContent()
|
||||
|
||||
@@ -127,6 +136,8 @@ class UserAspectRatioAppPreferenceTest {
|
||||
fun whenCannotDisplayAspectRatioUiAndConfigTrue_notDisplayed() {
|
||||
setConfig(true)
|
||||
|
||||
whenever(launcherActivities.isEmpty()).thenReturn(true)
|
||||
|
||||
setContent()
|
||||
|
||||
composeTestRule.onRoot().assertIsNotDisplayed()
|
||||
@@ -135,9 +146,7 @@ class UserAspectRatioAppPreferenceTest {
|
||||
@Test
|
||||
fun whenCanDisplayAspectRatioUiAndConfigTrue_Displayed() {
|
||||
setConfig(true)
|
||||
whenever(packageManager.queryIntentActivities(any(), anyInt()))
|
||||
.thenReturn(listOf(RESOLVE_INFO))
|
||||
|
||||
whenever(launcherActivities.isEmpty()).thenReturn(false)
|
||||
setContent()
|
||||
|
||||
composeTestRule.onNode(
|
||||
@@ -151,8 +160,7 @@ class UserAspectRatioAppPreferenceTest {
|
||||
@Test
|
||||
fun onClick_startActivity() {
|
||||
setConfig(true)
|
||||
whenever(packageManager.queryIntentActivities(any(), anyInt()))
|
||||
.thenReturn(listOf(RESOLVE_INFO))
|
||||
whenever(launcherActivities.isEmpty()).thenReturn(false)
|
||||
|
||||
setContent()
|
||||
composeTestRule.onRoot().performClick()
|
||||
@@ -196,10 +204,5 @@ class UserAspectRatioAppPreferenceTest {
|
||||
packageName = PACKAGE_NAME
|
||||
uid = UID
|
||||
}
|
||||
private val RESOLVE_INFO = ResolveInfo().apply {
|
||||
activityInfo = ActivityInfo().apply {
|
||||
packageName = PACKAGE_NAME
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -32,15 +32,18 @@ import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.anyString;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.pm.ActivityInfo;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.LauncherActivityInfo;
|
||||
import android.content.pm.LauncherApps;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.content.res.Resources;
|
||||
import android.provider.DeviceConfig;
|
||||
|
||||
@@ -55,6 +58,8 @@ import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* To run this test: atest SettingsUnitTests:UserAspectRatioManagerTest
|
||||
*/
|
||||
@@ -67,14 +72,23 @@ public class UserAspectRatioManagerTest {
|
||||
private String mOriginalSettingsFlag;
|
||||
private String mOriginalFullscreenFlag;
|
||||
private String mPackageName = "com.test.mypackage";
|
||||
|
||||
private LauncherApps mLauncherApps;
|
||||
private List<LauncherActivityInfo> mLauncherActivities;
|
||||
@Before
|
||||
public void setUp() {
|
||||
mContext = spy(ApplicationProvider.getApplicationContext());
|
||||
mResources = spy(mContext.getResources());
|
||||
mUtils = new UserAspectRatioManager(mContext);
|
||||
mLauncherApps = mock(LauncherApps.class);
|
||||
mLauncherActivities = mock(List.class);
|
||||
mUtils = new UserAspectRatioManager(mContext) {
|
||||
@Override
|
||||
LauncherApps getLauncherApps() {
|
||||
return mLauncherApps;
|
||||
}
|
||||
};
|
||||
|
||||
when(mContext.getResources()).thenReturn(mResources);
|
||||
doReturn(mLauncherActivities).when(mLauncherApps).getActivityList(anyString(), any());
|
||||
|
||||
mOriginalSettingsFlag = DeviceConfig.getProperty(
|
||||
DeviceConfig.NAMESPACE_WINDOW_MANAGER, KEY_ENABLE_USER_ASPECT_RATIO_SETTINGS);
|
||||
@@ -98,13 +112,14 @@ public class UserAspectRatioManagerTest {
|
||||
public void testCanDisplayAspectRatioUi() {
|
||||
final ApplicationInfo canDisplay = new ApplicationInfo();
|
||||
canDisplay.packageName = "com.app.candisplay";
|
||||
addResolveInfoLauncherEntry(canDisplay.packageName);
|
||||
|
||||
doReturn(false).when(mLauncherActivities).isEmpty();
|
||||
assertTrue(mUtils.canDisplayAspectRatioUi(canDisplay));
|
||||
|
||||
final ApplicationInfo noLauncherEntry = new ApplicationInfo();
|
||||
noLauncherEntry.packageName = "com.app.nolauncherentry";
|
||||
|
||||
doReturn(true).when(mLauncherActivities).isEmpty();
|
||||
assertFalse(mUtils.canDisplayAspectRatioUi(noLauncherEntry));
|
||||
}
|
||||
|
||||
@@ -112,10 +127,10 @@ public class UserAspectRatioManagerTest {
|
||||
public void testCanDisplayAspectRatioUi_hasLauncher_propertyFalse_returnFalse()
|
||||
throws PackageManager.NameNotFoundException {
|
||||
mockProperty(PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE, false);
|
||||
doReturn(true).when(mLauncherActivities).isEmpty();
|
||||
|
||||
final ApplicationInfo canDisplay = new ApplicationInfo();
|
||||
canDisplay.packageName = mPackageName;
|
||||
addResolveInfoLauncherEntry(canDisplay.packageName);
|
||||
|
||||
assertFalse(mUtils.canDisplayAspectRatioUi(canDisplay));
|
||||
}
|
||||
@@ -124,6 +139,7 @@ public class UserAspectRatioManagerTest {
|
||||
public void testCanDisplayAspectRatioUi_noLauncher_propertyTrue_returnFalse()
|
||||
throws PackageManager.NameNotFoundException {
|
||||
mockProperty(PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE, true);
|
||||
doReturn(true).when(mLauncherActivities).isEmpty();
|
||||
|
||||
final ApplicationInfo noLauncherEntry = new ApplicationInfo();
|
||||
noLauncherEntry.packageName = mPackageName;
|
||||
@@ -267,12 +283,4 @@ public class UserAspectRatioManagerTest {
|
||||
DeviceConfig.setProperty(DeviceConfig.NAMESPACE_WINDOW_MANAGER,
|
||||
KEY_ENABLE_USER_ASPECT_RATIO_FULLSCREEN, enabled, makeDefault);
|
||||
}
|
||||
|
||||
private void addResolveInfoLauncherEntry(String packageName) {
|
||||
final ResolveInfo resolveInfo = mock(ResolveInfo.class);
|
||||
final ActivityInfo activityInfo = mock(ActivityInfo.class);
|
||||
activityInfo.packageName = packageName;
|
||||
resolveInfo.activityInfo = activityInfo;
|
||||
mUtils.addInfoHasLauncherEntry(resolveInfo);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user