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

Commit cc44113e authored by Brian Isganitis's avatar Brian Isganitis
Browse files

Add context for sandboxing Taskbar window contexts.

Otherwise, the contexts leave the sandbox, which blocks testing.

Test: TaskbarWindowSandboxContextTest
Bug: 230027385
Flag: TEST_ONLY
Change-Id: I4c7a60858821c8959be2c82dc61a83b7e2f4d1ed
parent c0da5435
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ import com.android.launcher3.notification.NotificationKeyData
import com.android.launcher3.taskbar.overlay.TaskbarOverlayController
import com.android.launcher3.taskbar.rules.TaskbarUnitTestRule
import com.android.launcher3.taskbar.rules.TaskbarUnitTestRule.InjectController
import com.android.launcher3.taskbar.rules.TaskbarWindowSandboxContext
import com.android.launcher3.util.LauncherMultivalentJUnit
import com.android.launcher3.util.LauncherMultivalentJUnit.EmulatedDevices
import com.android.launcher3.util.PackageUserKey
@@ -43,7 +44,11 @@ import org.junit.runner.RunWith
class TaskbarAllAppsControllerTest {

    @get:Rule
    val taskbarUnitTestRule = TaskbarUnitTestRule(this, getInstrumentation().targetContext)
    val taskbarUnitTestRule =
        TaskbarUnitTestRule(
            this,
            TaskbarWindowSandboxContext.create(getInstrumentation().targetContext),
        )
    @get:Rule val animatorTestRule = AnimatorTestRule(this)

    @InjectController lateinit var allAppsController: TaskbarAllAppsController
+6 −1
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import com.android.launcher3.AbstractFloatingView.hasOpenView
import com.android.launcher3.taskbar.TaskbarActivityContext
import com.android.launcher3.taskbar.rules.TaskbarUnitTestRule
import com.android.launcher3.taskbar.rules.TaskbarUnitTestRule.InjectController
import com.android.launcher3.taskbar.rules.TaskbarWindowSandboxContext
import com.android.launcher3.util.LauncherMultivalentJUnit
import com.android.launcher3.util.LauncherMultivalentJUnit.EmulatedDevices
import com.android.launcher3.views.BaseDragLayer
@@ -42,7 +43,11 @@ import org.junit.runner.RunWith
class TaskbarOverlayControllerTest {

    @get:Rule
    val taskbarUnitTestRule = TaskbarUnitTestRule(this, getInstrumentation().targetContext)
    val taskbarUnitTestRule =
        TaskbarUnitTestRule(
            this,
            TaskbarWindowSandboxContext.create(getInstrumentation().targetContext),
        )
    @InjectController lateinit var overlayController: TaskbarOverlayController

    private val taskbarContext: TaskbarActivityContext
+2 −3
Original line number Diff line number Diff line
@@ -20,7 +20,6 @@ import com.android.launcher3.taskbar.rules.TaskbarModeRule.Mode
import com.android.launcher3.taskbar.rules.TaskbarModeRule.TaskbarMode
import com.android.launcher3.util.DisplayController
import com.android.launcher3.util.MainThreadInitializedObject
import com.android.launcher3.util.MainThreadInitializedObject.SandboxContext
import com.android.launcher3.util.NavigationMode
import org.junit.rules.TestRule
import org.junit.runner.Description
@@ -40,7 +39,7 @@ import org.mockito.kotlin.spy
 * Make sure this rule precedes any rules that depend on [DisplayController], or else the instance
 * might be inconsistent across the test lifecycle.
 */
class TaskbarModeRule(private val context: SandboxContext) : TestRule {
class TaskbarModeRule(private val context: TaskbarWindowSandboxContext) : TestRule {
    /** The selected Taskbar mode. */
    enum class Mode {
        TRANSIENT,
@@ -60,7 +59,7 @@ class TaskbarModeRule(private val context: SandboxContext) : TestRule {
            override fun evaluate() {
                val mode = taskbarMode.mode

                context.putObject(
                context.applicationContext.putObject(
                    DisplayController.INSTANCE,
                    object : DisplayController(context) {
                        override fun getInfo(): Info {
+1 −2
Original line number Diff line number Diff line
@@ -24,7 +24,6 @@ import com.android.launcher3.taskbar.rules.TaskbarModeRule.Mode.TRANSIENT
import com.android.launcher3.taskbar.rules.TaskbarModeRule.TaskbarMode
import com.android.launcher3.util.DisplayController
import com.android.launcher3.util.LauncherMultivalentJUnit
import com.android.launcher3.util.MainThreadInitializedObject.SandboxContext
import com.android.launcher3.util.NavigationMode
import com.google.common.truth.Truth.assertThat
import org.junit.Rule
@@ -34,7 +33,7 @@ import org.junit.runner.RunWith
@RunWith(LauncherMultivalentJUnit::class)
class TaskbarModeRuleTest {

    private val context = SandboxContext(getInstrumentation().targetContext)
    private val context = TaskbarWindowSandboxContext.create(getInstrumentation().targetContext)

    @get:Rule val taskbarModeRule = TaskbarModeRule(context)

+5 −2
Original line number Diff line number Diff line
@@ -18,7 +18,6 @@ package com.android.launcher3.taskbar.rules

import android.app.Instrumentation
import android.app.PendingIntent
import android.content.Context
import android.content.IIntentSender
import android.content.Intent
import androidx.test.platform.app.InstrumentationRegistry
@@ -64,7 +63,11 @@ import org.junit.runners.model.Statement
 * }
 * ```
 */
class TaskbarUnitTestRule(private val testInstance: Any, private val context: Context) : TestRule {
class TaskbarUnitTestRule(
    private val testInstance: Any,
    private val context: TaskbarWindowSandboxContext,
) : TestRule {

    private val instrumentation = InstrumentationRegistry.getInstrumentation()
    private val serviceTestRule = ServiceTestRule()

Loading