Fix Test supporting HSUM
Flag: EXEMPT Test fix Fix: 403558856 Test: atest NexusLauncherTests:com.android.quickstep.DesktopSystemShortcutTest Change-Id: I2a2ff6bc4cee978267ec19fca32bc1f7f80b1bbd
This commit is contained in:
@@ -16,9 +16,11 @@
|
||||
|
||||
package com.android.quickstep
|
||||
|
||||
import android.Manifest.permission.SYSTEM_ALERT_WINDOW
|
||||
import android.content.ComponentName
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.pm.PackageInfo
|
||||
import android.content.pm.PackageManager
|
||||
import android.platform.test.annotations.DisableFlags
|
||||
import android.platform.test.annotations.EnableFlags
|
||||
@@ -45,6 +47,7 @@ import com.android.quickstep.views.TaskContainer
|
||||
import com.android.quickstep.views.TaskThumbnailViewDeprecated
|
||||
import com.android.quickstep.views.TaskView
|
||||
import com.android.quickstep.views.TaskViewIcon
|
||||
import com.android.quickstep.views.TaskViewType
|
||||
import com.android.systemui.shared.recents.model.Task
|
||||
import com.android.systemui.shared.recents.model.Task.TaskKey
|
||||
import com.android.window.flags.Flags
|
||||
@@ -55,6 +58,8 @@ import org.junit.After
|
||||
import org.junit.Before
|
||||
import org.junit.Rule
|
||||
import org.junit.Test
|
||||
import org.mockito.ArgumentMatchers.anyInt
|
||||
import org.mockito.ArgumentMatchers.anyString
|
||||
import org.mockito.Mockito.`when`
|
||||
import org.mockito.kotlin.any
|
||||
import org.mockito.kotlin.doReturn
|
||||
@@ -75,12 +80,12 @@ class DesktopSystemShortcutTest {
|
||||
private val statsLogManager: StatsLogManager = mock()
|
||||
private val statsLogger: StatsLogManager.StatsLogger = mock()
|
||||
private val recentsView: LauncherRecentsView = mock()
|
||||
private val taskView: TaskView = mock()
|
||||
private val abstractFloatingViewHelper: AbstractFloatingViewHelper = mock()
|
||||
private val overlayFactory: TaskOverlayFactory = mock()
|
||||
private val factory: TaskShortcutFactory =
|
||||
DesktopSystemShortcut.createFactory(abstractFloatingViewHelper)
|
||||
private val context: Context = spy(InstrumentationRegistry.getInstrumentation().targetContext)
|
||||
private val taskView: TaskView = createTaskViewMock()
|
||||
|
||||
private lateinit var mockitoSession: StaticMockitoSession
|
||||
|
||||
@@ -135,6 +140,64 @@ class DesktopSystemShortcutTest {
|
||||
assertThat(shortcuts).isNull()
|
||||
}
|
||||
|
||||
@Test
|
||||
@EnableFlags(
|
||||
Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODALS_POLICY,
|
||||
Flags.FLAG_ENABLE_MODALS_FULLSCREEN_WITH_PERMISSION,
|
||||
)
|
||||
fun createDesktopTaskShortcutFactoryPermissionEnabledAllowed_transparentTask() {
|
||||
val packageManager: PackageManager = mock()
|
||||
setUpTransparentPermission(packageManager, isAllowed = true)
|
||||
val baseComponent = ComponentName("", /* class */ "")
|
||||
val taskKey =
|
||||
TaskKey(
|
||||
/* id */ 1,
|
||||
/* windowingMode */ 0,
|
||||
Intent(),
|
||||
baseComponent,
|
||||
/* userId */ 0,
|
||||
/* lastActiveTime */ 2000,
|
||||
DEFAULT_DISPLAY,
|
||||
baseComponent,
|
||||
/* numActivities */ 1,
|
||||
/* isTopActivityNoDisplay */ false,
|
||||
/* isActivityStackTransparent */ true,
|
||||
)
|
||||
val taskContainer = createTaskContainer(Task(taskKey))
|
||||
val shortcuts = factory.getShortcuts(launcher, taskContainer)
|
||||
assertThat(shortcuts).isNull()
|
||||
}
|
||||
|
||||
@Test
|
||||
@EnableFlags(
|
||||
Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODALS_POLICY,
|
||||
Flags.FLAG_ENABLE_MODALS_FULLSCREEN_WITH_PERMISSION,
|
||||
)
|
||||
fun createDesktopTaskShortcutFactoryPermissionEnabledNotAllowed_transparentTask() {
|
||||
val packageManager: PackageManager = mock()
|
||||
setUpTransparentPermission(packageManager, isAllowed = false)
|
||||
val baseComponent = ComponentName("", /* class */ "")
|
||||
val homeActivities = ComponentName("defaultHomePackage", /* class */ "")
|
||||
whenever(packageManager.getHomeActivities(any())).thenReturn(homeActivities)
|
||||
val taskKey =
|
||||
TaskKey(
|
||||
/* id */ 1,
|
||||
/* windowingMode */ 0,
|
||||
Intent(),
|
||||
baseComponent,
|
||||
/* userId */ 0,
|
||||
/* lastActiveTime */ 2000,
|
||||
DEFAULT_DISPLAY,
|
||||
baseComponent,
|
||||
/* numActivities */ 1,
|
||||
/* isTopActivityNoDisplay */ false,
|
||||
/* isActivityStackTransparent */ true,
|
||||
)
|
||||
val taskContainer = createTaskContainer(Task(taskKey).apply { isDockable = true })
|
||||
val shortcuts = factory.getShortcuts(launcher, taskContainer)
|
||||
assertThat(shortcuts).isNotEmpty()
|
||||
}
|
||||
|
||||
@Test
|
||||
@EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODALS_POLICY)
|
||||
fun createDesktopTaskShortcutFactory_systemUiTask() {
|
||||
@@ -163,8 +226,8 @@ class DesktopSystemShortcutTest {
|
||||
@EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODALS_POLICY)
|
||||
fun createDesktopTaskShortcutFactory_defaultHomeTask() {
|
||||
val packageManager: PackageManager = mock()
|
||||
val homeActivities = ComponentName("defaultHomePackage", /* class */ "")
|
||||
whenever(context.packageManager).thenReturn(packageManager)
|
||||
val homeActivities = ComponentName("defaultHomePackage", /* class */ "")
|
||||
whenever(packageManager.getHomeActivities(any())).thenReturn(homeActivities)
|
||||
val taskKey =
|
||||
TaskKey(
|
||||
@@ -264,4 +327,27 @@ class DesktopSystemShortcutTest {
|
||||
showWindowsView = null,
|
||||
overlayFactory,
|
||||
)
|
||||
|
||||
private fun setUpTransparentPermission(packageManager: PackageManager, isAllowed: Boolean) {
|
||||
val packageInfo: PackageInfo = mock()
|
||||
if (isAllowed) {
|
||||
packageInfo.requestedPermissions = arrayOf(SYSTEM_ALERT_WINDOW)
|
||||
}
|
||||
whenever(context.packageManager).thenReturn(packageManager)
|
||||
whenever(
|
||||
packageManager.getPackageInfoAsUser(
|
||||
anyString(),
|
||||
eq(PackageManager.GET_PERMISSIONS),
|
||||
anyInt(),
|
||||
)
|
||||
)
|
||||
.thenReturn(packageInfo)
|
||||
}
|
||||
|
||||
private fun createTaskViewMock(): TaskView {
|
||||
val taskView: TaskView = mock()
|
||||
whenever(taskView.type).thenReturn(TaskViewType.SINGLE)
|
||||
whenever(taskView.context).thenReturn(context)
|
||||
return taskView
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user