Loading packages/SystemUI/tests/src/com/android/systemui/mediaprojection/taskswitcher/data/repository/ActivityTaskManagerTasksRepositoryTest.kt +10 −17 Original line number Diff line number Diff line Loading @@ -21,32 +21,25 @@ import android.testing.AndroidTestingRunner import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.coroutines.collectLastValue import com.android.systemui.mediaprojection.taskswitcher.data.repository.FakeActivityTaskManager.Companion.createTask import com.android.systemui.mediaprojection.taskswitcher.data.repository.FakeActivityTaskManager.Companion.createToken import com.android.systemui.kosmos.testScope import com.android.systemui.mediaprojection.taskswitcher.FakeActivityTaskManager.Companion.createTask import com.android.systemui.mediaprojection.taskswitcher.FakeActivityTaskManager.Companion.createToken import com.android.systemui.mediaprojection.taskswitcher.activityTaskManagerTasksRepository import com.android.systemui.mediaprojection.taskswitcher.fakeActivityTaskManager import com.android.systemui.mediaprojection.taskswitcher.taskSwitcherKosmos import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.UnconfinedTestDispatcher import kotlinx.coroutines.test.runTest import org.junit.Test import org.junit.runner.RunWith @OptIn(ExperimentalCoroutinesApi::class) @RunWith(AndroidTestingRunner::class) @SmallTest class ActivityTaskManagerTasksRepositoryTest : SysuiTestCase() { private val fakeActivityTaskManager = FakeActivityTaskManager() private val dispatcher = UnconfinedTestDispatcher() private val testScope = TestScope(dispatcher) private val repo = ActivityTaskManagerTasksRepository( activityTaskManager = fakeActivityTaskManager.activityTaskManager, applicationScope = testScope.backgroundScope, backgroundDispatcher = dispatcher ) private val kosmos = taskSwitcherKosmos() private val fakeActivityTaskManager = kosmos.fakeActivityTaskManager private val testScope = kosmos.testScope private val repo = kosmos.activityTaskManagerTasksRepository @Test fun launchRecentTask_taskIsMovedToForeground() = Loading packages/SystemUI/tests/src/com/android/systemui/mediaprojection/taskswitcher/data/repository/MediaProjectionManagerRepositoryTest.kt +14 −29 Original line number Diff line number Diff line Loading @@ -17,50 +17,35 @@ package com.android.systemui.mediaprojection.taskswitcher.data.repository import android.os.Binder import android.os.Handler import android.testing.AndroidTestingRunner import android.view.ContentRecordingSession import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.coroutines.collectLastValue import com.android.systemui.kosmos.testScope import com.android.systemui.mediaprojection.taskswitcher.FakeActivityTaskManager.Companion.createTask import com.android.systemui.mediaprojection.taskswitcher.FakeActivityTaskManager.Companion.createToken import com.android.systemui.mediaprojection.taskswitcher.data.model.MediaProjectionState import com.android.systemui.mediaprojection.taskswitcher.data.repository.FakeActivityTaskManager.Companion.createTask import com.android.systemui.mediaprojection.taskswitcher.data.repository.FakeActivityTaskManager.Companion.createToken import com.android.systemui.mediaprojection.taskswitcher.fakeActivityTaskManager import com.android.systemui.mediaprojection.taskswitcher.fakeMediaProjectionManager import com.android.systemui.mediaprojection.taskswitcher.mediaProjectionManagerRepository import com.android.systemui.mediaprojection.taskswitcher.taskSwitcherKosmos import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.UnconfinedTestDispatcher import kotlinx.coroutines.test.runTest import org.junit.Test import org.junit.runner.RunWith @OptIn(ExperimentalCoroutinesApi::class) @RunWith(AndroidTestingRunner::class) @SmallTest class MediaProjectionManagerRepositoryTest : SysuiTestCase() { private val dispatcher = UnconfinedTestDispatcher() private val testScope = TestScope(dispatcher) private val kosmos = taskSwitcherKosmos() private val testScope = kosmos.testScope private val fakeMediaProjectionManager = FakeMediaProjectionManager() private val fakeActivityTaskManager = FakeActivityTaskManager() private val fakeMediaProjectionManager = kosmos.fakeMediaProjectionManager private val fakeActivityTaskManager = kosmos.fakeActivityTaskManager private val tasksRepo = ActivityTaskManagerTasksRepository( activityTaskManager = fakeActivityTaskManager.activityTaskManager, applicationScope = testScope.backgroundScope, backgroundDispatcher = dispatcher ) private val repo = MediaProjectionManagerRepository( mediaProjectionManager = fakeMediaProjectionManager.mediaProjectionManager, handler = Handler.getMain(), applicationScope = testScope.backgroundScope, tasksRepository = tasksRepo, backgroundDispatcher = dispatcher, mediaProjectionServiceHelper = fakeMediaProjectionManager.helper ) private val repo = kosmos.mediaProjectionManagerRepository @Test fun switchProjectedTask_stateIsUpdatedWithNewTask() = Loading packages/SystemUI/tests/src/com/android/systemui/mediaprojection/taskswitcher/domain/interactor/TaskSwitchInteractorTest.kt +13 −35 Original line number Diff line number Diff line Loading @@ -17,55 +17,33 @@ package com.android.systemui.mediaprojection.taskswitcher.domain.interactor import android.content.Intent import android.os.Handler import android.testing.AndroidTestingRunner import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.coroutines.collectLastValue import com.android.systemui.mediaprojection.taskswitcher.data.repository.ActivityTaskManagerTasksRepository import com.android.systemui.mediaprojection.taskswitcher.data.repository.FakeActivityTaskManager import com.android.systemui.mediaprojection.taskswitcher.data.repository.FakeActivityTaskManager.Companion.createTask import com.android.systemui.mediaprojection.taskswitcher.data.repository.FakeMediaProjectionManager import com.android.systemui.mediaprojection.taskswitcher.data.repository.FakeMediaProjectionManager.Companion.createSingleTaskSession import com.android.systemui.mediaprojection.taskswitcher.data.repository.MediaProjectionManagerRepository import com.android.systemui.kosmos.testScope import com.android.systemui.mediaprojection.taskswitcher.FakeActivityTaskManager.Companion.createTask import com.android.systemui.mediaprojection.taskswitcher.FakeMediaProjectionManager import com.android.systemui.mediaprojection.taskswitcher.FakeMediaProjectionManager.Companion.createSingleTaskSession import com.android.systemui.mediaprojection.taskswitcher.domain.model.TaskSwitchState import com.android.systemui.mediaprojection.taskswitcher.fakeActivityTaskManager import com.android.systemui.mediaprojection.taskswitcher.fakeMediaProjectionManager import com.android.systemui.mediaprojection.taskswitcher.taskSwitcherInteractor import com.android.systemui.mediaprojection.taskswitcher.taskSwitcherKosmos import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.UnconfinedTestDispatcher import kotlinx.coroutines.test.runTest import org.junit.Test import org.junit.runner.RunWith @OptIn(ExperimentalCoroutinesApi::class) @RunWith(AndroidTestingRunner::class) @SmallTest class TaskSwitchInteractorTest : SysuiTestCase() { private val dispatcher = UnconfinedTestDispatcher() private val testScope = TestScope(dispatcher) private val fakeActivityTaskManager = FakeActivityTaskManager() private val fakeMediaProjectionManager = FakeMediaProjectionManager() private val tasksRepo = ActivityTaskManagerTasksRepository( activityTaskManager = fakeActivityTaskManager.activityTaskManager, applicationScope = testScope.backgroundScope, backgroundDispatcher = dispatcher ) private val mediaRepo = MediaProjectionManagerRepository( mediaProjectionManager = fakeMediaProjectionManager.mediaProjectionManager, handler = Handler.getMain(), applicationScope = testScope.backgroundScope, tasksRepository = tasksRepo, backgroundDispatcher = dispatcher, mediaProjectionServiceHelper = fakeMediaProjectionManager.helper, ) private val interactor = TaskSwitchInteractor(mediaRepo, tasksRepo) private val kosmos = taskSwitcherKosmos() private val testScope = kosmos.testScope private val fakeActivityTaskManager = kosmos.fakeActivityTaskManager private val fakeMediaProjectionManager = kosmos.fakeMediaProjectionManager private val interactor = kosmos.taskSwitcherInteractor @Test fun taskSwitchChanges_notProjecting_foregroundTaskChange_emitsNotProjectingTask() = Loading packages/SystemUI/tests/src/com/android/systemui/mediaprojection/taskswitcher/ui/TaskSwitcherNotificationCoordinatorTest.kt +12 −39 Original line number Diff line number Diff line Loading @@ -18,26 +18,22 @@ package com.android.systemui.mediaprojection.taskswitcher.ui import android.app.Notification import android.app.NotificationManager import android.os.Handler import android.testing.AndroidTestingRunner import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.mediaprojection.taskswitcher.data.repository.ActivityTaskManagerTasksRepository import com.android.systemui.mediaprojection.taskswitcher.data.repository.FakeActivityTaskManager import com.android.systemui.mediaprojection.taskswitcher.data.repository.FakeActivityTaskManager.Companion.createTask import com.android.systemui.mediaprojection.taskswitcher.data.repository.FakeMediaProjectionManager import com.android.systemui.mediaprojection.taskswitcher.data.repository.MediaProjectionManagerRepository import com.android.systemui.mediaprojection.taskswitcher.domain.interactor.TaskSwitchInteractor import com.android.systemui.mediaprojection.taskswitcher.ui.viewmodel.TaskSwitcherNotificationViewModel import com.android.systemui.kosmos.testScope import com.android.systemui.mediaprojection.taskswitcher.FakeActivityTaskManager.Companion.createTask import com.android.systemui.mediaprojection.taskswitcher.FakeMediaProjectionManager import com.android.systemui.mediaprojection.taskswitcher.fakeActivityTaskManager import com.android.systemui.mediaprojection.taskswitcher.fakeMediaProjectionManager import com.android.systemui.mediaprojection.taskswitcher.taskSwitcherKosmos import com.android.systemui.mediaprojection.taskswitcher.taskSwitcherViewModel import com.android.systemui.res.R import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.argumentCaptor import com.android.systemui.util.mockito.mock import com.google.common.truth.Truth.assertThat import junit.framework.Assert.assertEquals import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.UnconfinedTestDispatcher import kotlinx.coroutines.test.runTest import org.junit.Before import org.junit.Test Loading @@ -46,39 +42,16 @@ import org.mockito.ArgumentCaptor import org.mockito.Mockito.never import org.mockito.Mockito.verify @OptIn(ExperimentalCoroutinesApi::class) @RunWith(AndroidTestingRunner::class) @SmallTest class TaskSwitcherNotificationCoordinatorTest : SysuiTestCase() { private val notificationManager = mock<NotificationManager>() private val dispatcher = UnconfinedTestDispatcher() private val testScope = TestScope(dispatcher) private val fakeActivityTaskManager = FakeActivityTaskManager() private val fakeMediaProjectionManager = FakeMediaProjectionManager() private val tasksRepo = ActivityTaskManagerTasksRepository( activityTaskManager = fakeActivityTaskManager.activityTaskManager, applicationScope = testScope.backgroundScope, backgroundDispatcher = dispatcher ) private val mediaRepo = MediaProjectionManagerRepository( mediaProjectionManager = fakeMediaProjectionManager.mediaProjectionManager, handler = Handler.getMain(), applicationScope = testScope.backgroundScope, tasksRepository = tasksRepo, backgroundDispatcher = dispatcher, mediaProjectionServiceHelper = fakeMediaProjectionManager.helper, ) private val interactor = TaskSwitchInteractor(mediaRepo, tasksRepo) private val viewModel = TaskSwitcherNotificationViewModel(interactor, backgroundDispatcher = dispatcher) private val kosmos = taskSwitcherKosmos() private val testScope = kosmos.testScope private val fakeActivityTaskManager = kosmos.fakeActivityTaskManager private val fakeMediaProjectionManager = kosmos.fakeMediaProjectionManager private val viewModel = kosmos.taskSwitcherViewModel private lateinit var coordinator: TaskSwitcherNotificationCoordinator Loading packages/SystemUI/tests/src/com/android/systemui/mediaprojection/taskswitcher/ui/viewmodel/TaskSwitcherNotificationViewModelTest.kt +13 −42 Original line number Diff line number Diff line Loading @@ -17,64 +17,35 @@ package com.android.systemui.mediaprojection.taskswitcher.ui.viewmodel import android.content.Intent import android.os.Handler import android.testing.AndroidTestingRunner import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.coroutines.collectLastValue import com.android.systemui.mediaprojection.taskswitcher.data.repository.ActivityTaskManagerTasksRepository import com.android.systemui.mediaprojection.taskswitcher.data.repository.FakeActivityTaskManager import com.android.systemui.mediaprojection.taskswitcher.data.repository.FakeActivityTaskManager.Companion.createTask import com.android.systemui.mediaprojection.taskswitcher.data.repository.FakeMediaProjectionManager import com.android.systemui.mediaprojection.taskswitcher.data.repository.FakeMediaProjectionManager.Companion.createDisplaySession import com.android.systemui.mediaprojection.taskswitcher.data.repository.FakeMediaProjectionManager.Companion.createSingleTaskSession import com.android.systemui.mediaprojection.taskswitcher.data.repository.MediaProjectionManagerRepository import com.android.systemui.mediaprojection.taskswitcher.domain.interactor.TaskSwitchInteractor import com.android.systemui.kosmos.testScope import com.android.systemui.mediaprojection.taskswitcher.FakeActivityTaskManager.Companion.createTask import com.android.systemui.mediaprojection.taskswitcher.FakeMediaProjectionManager.Companion.createDisplaySession import com.android.systemui.mediaprojection.taskswitcher.FakeMediaProjectionManager.Companion.createSingleTaskSession import com.android.systemui.mediaprojection.taskswitcher.fakeActivityTaskManager import com.android.systemui.mediaprojection.taskswitcher.fakeMediaProjectionManager import com.android.systemui.mediaprojection.taskswitcher.taskSwitcherKosmos import com.android.systemui.mediaprojection.taskswitcher.taskSwitcherViewModel import com.android.systemui.mediaprojection.taskswitcher.ui.model.TaskSwitcherNotificationUiState import com.android.systemui.mediaprojection.taskswitcher.ui.viewmodel.TaskSwitcherNotificationViewModel.Companion.NOTIFICATION_MAX_SHOW_DURATION import com.google.common.truth.Truth.assertThat import kotlin.time.Duration.Companion.milliseconds import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.TestCoroutineScheduler import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.UnconfinedTestDispatcher import kotlinx.coroutines.test.runTest import org.junit.Test import org.junit.runner.RunWith @OptIn(ExperimentalCoroutinesApi::class) @RunWith(AndroidTestingRunner::class) @SmallTest class TaskSwitcherNotificationViewModelTest : SysuiTestCase() { private val scheduler = TestCoroutineScheduler() private val dispatcher = UnconfinedTestDispatcher(scheduler) private val testScope = TestScope(dispatcher) private val fakeActivityTaskManager = FakeActivityTaskManager() private val fakeMediaProjectionManager = FakeMediaProjectionManager() private val tasksRepo = ActivityTaskManagerTasksRepository( activityTaskManager = fakeActivityTaskManager.activityTaskManager, applicationScope = testScope.backgroundScope, backgroundDispatcher = dispatcher ) private val mediaRepo = MediaProjectionManagerRepository( mediaProjectionManager = fakeMediaProjectionManager.mediaProjectionManager, handler = Handler.getMain(), applicationScope = testScope.backgroundScope, tasksRepository = tasksRepo, backgroundDispatcher = dispatcher, mediaProjectionServiceHelper = fakeMediaProjectionManager.helper, ) private val interactor = TaskSwitchInteractor(mediaRepo, tasksRepo) private val viewModel = TaskSwitcherNotificationViewModel(interactor, backgroundDispatcher = dispatcher) private val kosmos = taskSwitcherKosmos() private val testScope = kosmos.testScope private val fakeActivityTaskManager = kosmos.fakeActivityTaskManager private val fakeMediaProjectionManager = kosmos.fakeMediaProjectionManager private val viewModel = kosmos.taskSwitcherViewModel @Test fun uiState_notProjecting_emitsNotShowing() = Loading Loading
packages/SystemUI/tests/src/com/android/systemui/mediaprojection/taskswitcher/data/repository/ActivityTaskManagerTasksRepositoryTest.kt +10 −17 Original line number Diff line number Diff line Loading @@ -21,32 +21,25 @@ import android.testing.AndroidTestingRunner import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.coroutines.collectLastValue import com.android.systemui.mediaprojection.taskswitcher.data.repository.FakeActivityTaskManager.Companion.createTask import com.android.systemui.mediaprojection.taskswitcher.data.repository.FakeActivityTaskManager.Companion.createToken import com.android.systemui.kosmos.testScope import com.android.systemui.mediaprojection.taskswitcher.FakeActivityTaskManager.Companion.createTask import com.android.systemui.mediaprojection.taskswitcher.FakeActivityTaskManager.Companion.createToken import com.android.systemui.mediaprojection.taskswitcher.activityTaskManagerTasksRepository import com.android.systemui.mediaprojection.taskswitcher.fakeActivityTaskManager import com.android.systemui.mediaprojection.taskswitcher.taskSwitcherKosmos import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.UnconfinedTestDispatcher import kotlinx.coroutines.test.runTest import org.junit.Test import org.junit.runner.RunWith @OptIn(ExperimentalCoroutinesApi::class) @RunWith(AndroidTestingRunner::class) @SmallTest class ActivityTaskManagerTasksRepositoryTest : SysuiTestCase() { private val fakeActivityTaskManager = FakeActivityTaskManager() private val dispatcher = UnconfinedTestDispatcher() private val testScope = TestScope(dispatcher) private val repo = ActivityTaskManagerTasksRepository( activityTaskManager = fakeActivityTaskManager.activityTaskManager, applicationScope = testScope.backgroundScope, backgroundDispatcher = dispatcher ) private val kosmos = taskSwitcherKosmos() private val fakeActivityTaskManager = kosmos.fakeActivityTaskManager private val testScope = kosmos.testScope private val repo = kosmos.activityTaskManagerTasksRepository @Test fun launchRecentTask_taskIsMovedToForeground() = Loading
packages/SystemUI/tests/src/com/android/systemui/mediaprojection/taskswitcher/data/repository/MediaProjectionManagerRepositoryTest.kt +14 −29 Original line number Diff line number Diff line Loading @@ -17,50 +17,35 @@ package com.android.systemui.mediaprojection.taskswitcher.data.repository import android.os.Binder import android.os.Handler import android.testing.AndroidTestingRunner import android.view.ContentRecordingSession import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.coroutines.collectLastValue import com.android.systemui.kosmos.testScope import com.android.systemui.mediaprojection.taskswitcher.FakeActivityTaskManager.Companion.createTask import com.android.systemui.mediaprojection.taskswitcher.FakeActivityTaskManager.Companion.createToken import com.android.systemui.mediaprojection.taskswitcher.data.model.MediaProjectionState import com.android.systemui.mediaprojection.taskswitcher.data.repository.FakeActivityTaskManager.Companion.createTask import com.android.systemui.mediaprojection.taskswitcher.data.repository.FakeActivityTaskManager.Companion.createToken import com.android.systemui.mediaprojection.taskswitcher.fakeActivityTaskManager import com.android.systemui.mediaprojection.taskswitcher.fakeMediaProjectionManager import com.android.systemui.mediaprojection.taskswitcher.mediaProjectionManagerRepository import com.android.systemui.mediaprojection.taskswitcher.taskSwitcherKosmos import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.UnconfinedTestDispatcher import kotlinx.coroutines.test.runTest import org.junit.Test import org.junit.runner.RunWith @OptIn(ExperimentalCoroutinesApi::class) @RunWith(AndroidTestingRunner::class) @SmallTest class MediaProjectionManagerRepositoryTest : SysuiTestCase() { private val dispatcher = UnconfinedTestDispatcher() private val testScope = TestScope(dispatcher) private val kosmos = taskSwitcherKosmos() private val testScope = kosmos.testScope private val fakeMediaProjectionManager = FakeMediaProjectionManager() private val fakeActivityTaskManager = FakeActivityTaskManager() private val fakeMediaProjectionManager = kosmos.fakeMediaProjectionManager private val fakeActivityTaskManager = kosmos.fakeActivityTaskManager private val tasksRepo = ActivityTaskManagerTasksRepository( activityTaskManager = fakeActivityTaskManager.activityTaskManager, applicationScope = testScope.backgroundScope, backgroundDispatcher = dispatcher ) private val repo = MediaProjectionManagerRepository( mediaProjectionManager = fakeMediaProjectionManager.mediaProjectionManager, handler = Handler.getMain(), applicationScope = testScope.backgroundScope, tasksRepository = tasksRepo, backgroundDispatcher = dispatcher, mediaProjectionServiceHelper = fakeMediaProjectionManager.helper ) private val repo = kosmos.mediaProjectionManagerRepository @Test fun switchProjectedTask_stateIsUpdatedWithNewTask() = Loading
packages/SystemUI/tests/src/com/android/systemui/mediaprojection/taskswitcher/domain/interactor/TaskSwitchInteractorTest.kt +13 −35 Original line number Diff line number Diff line Loading @@ -17,55 +17,33 @@ package com.android.systemui.mediaprojection.taskswitcher.domain.interactor import android.content.Intent import android.os.Handler import android.testing.AndroidTestingRunner import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.coroutines.collectLastValue import com.android.systemui.mediaprojection.taskswitcher.data.repository.ActivityTaskManagerTasksRepository import com.android.systemui.mediaprojection.taskswitcher.data.repository.FakeActivityTaskManager import com.android.systemui.mediaprojection.taskswitcher.data.repository.FakeActivityTaskManager.Companion.createTask import com.android.systemui.mediaprojection.taskswitcher.data.repository.FakeMediaProjectionManager import com.android.systemui.mediaprojection.taskswitcher.data.repository.FakeMediaProjectionManager.Companion.createSingleTaskSession import com.android.systemui.mediaprojection.taskswitcher.data.repository.MediaProjectionManagerRepository import com.android.systemui.kosmos.testScope import com.android.systemui.mediaprojection.taskswitcher.FakeActivityTaskManager.Companion.createTask import com.android.systemui.mediaprojection.taskswitcher.FakeMediaProjectionManager import com.android.systemui.mediaprojection.taskswitcher.FakeMediaProjectionManager.Companion.createSingleTaskSession import com.android.systemui.mediaprojection.taskswitcher.domain.model.TaskSwitchState import com.android.systemui.mediaprojection.taskswitcher.fakeActivityTaskManager import com.android.systemui.mediaprojection.taskswitcher.fakeMediaProjectionManager import com.android.systemui.mediaprojection.taskswitcher.taskSwitcherInteractor import com.android.systemui.mediaprojection.taskswitcher.taskSwitcherKosmos import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.UnconfinedTestDispatcher import kotlinx.coroutines.test.runTest import org.junit.Test import org.junit.runner.RunWith @OptIn(ExperimentalCoroutinesApi::class) @RunWith(AndroidTestingRunner::class) @SmallTest class TaskSwitchInteractorTest : SysuiTestCase() { private val dispatcher = UnconfinedTestDispatcher() private val testScope = TestScope(dispatcher) private val fakeActivityTaskManager = FakeActivityTaskManager() private val fakeMediaProjectionManager = FakeMediaProjectionManager() private val tasksRepo = ActivityTaskManagerTasksRepository( activityTaskManager = fakeActivityTaskManager.activityTaskManager, applicationScope = testScope.backgroundScope, backgroundDispatcher = dispatcher ) private val mediaRepo = MediaProjectionManagerRepository( mediaProjectionManager = fakeMediaProjectionManager.mediaProjectionManager, handler = Handler.getMain(), applicationScope = testScope.backgroundScope, tasksRepository = tasksRepo, backgroundDispatcher = dispatcher, mediaProjectionServiceHelper = fakeMediaProjectionManager.helper, ) private val interactor = TaskSwitchInteractor(mediaRepo, tasksRepo) private val kosmos = taskSwitcherKosmos() private val testScope = kosmos.testScope private val fakeActivityTaskManager = kosmos.fakeActivityTaskManager private val fakeMediaProjectionManager = kosmos.fakeMediaProjectionManager private val interactor = kosmos.taskSwitcherInteractor @Test fun taskSwitchChanges_notProjecting_foregroundTaskChange_emitsNotProjectingTask() = Loading
packages/SystemUI/tests/src/com/android/systemui/mediaprojection/taskswitcher/ui/TaskSwitcherNotificationCoordinatorTest.kt +12 −39 Original line number Diff line number Diff line Loading @@ -18,26 +18,22 @@ package com.android.systemui.mediaprojection.taskswitcher.ui import android.app.Notification import android.app.NotificationManager import android.os.Handler import android.testing.AndroidTestingRunner import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.mediaprojection.taskswitcher.data.repository.ActivityTaskManagerTasksRepository import com.android.systemui.mediaprojection.taskswitcher.data.repository.FakeActivityTaskManager import com.android.systemui.mediaprojection.taskswitcher.data.repository.FakeActivityTaskManager.Companion.createTask import com.android.systemui.mediaprojection.taskswitcher.data.repository.FakeMediaProjectionManager import com.android.systemui.mediaprojection.taskswitcher.data.repository.MediaProjectionManagerRepository import com.android.systemui.mediaprojection.taskswitcher.domain.interactor.TaskSwitchInteractor import com.android.systemui.mediaprojection.taskswitcher.ui.viewmodel.TaskSwitcherNotificationViewModel import com.android.systemui.kosmos.testScope import com.android.systemui.mediaprojection.taskswitcher.FakeActivityTaskManager.Companion.createTask import com.android.systemui.mediaprojection.taskswitcher.FakeMediaProjectionManager import com.android.systemui.mediaprojection.taskswitcher.fakeActivityTaskManager import com.android.systemui.mediaprojection.taskswitcher.fakeMediaProjectionManager import com.android.systemui.mediaprojection.taskswitcher.taskSwitcherKosmos import com.android.systemui.mediaprojection.taskswitcher.taskSwitcherViewModel import com.android.systemui.res.R import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.argumentCaptor import com.android.systemui.util.mockito.mock import com.google.common.truth.Truth.assertThat import junit.framework.Assert.assertEquals import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.UnconfinedTestDispatcher import kotlinx.coroutines.test.runTest import org.junit.Before import org.junit.Test Loading @@ -46,39 +42,16 @@ import org.mockito.ArgumentCaptor import org.mockito.Mockito.never import org.mockito.Mockito.verify @OptIn(ExperimentalCoroutinesApi::class) @RunWith(AndroidTestingRunner::class) @SmallTest class TaskSwitcherNotificationCoordinatorTest : SysuiTestCase() { private val notificationManager = mock<NotificationManager>() private val dispatcher = UnconfinedTestDispatcher() private val testScope = TestScope(dispatcher) private val fakeActivityTaskManager = FakeActivityTaskManager() private val fakeMediaProjectionManager = FakeMediaProjectionManager() private val tasksRepo = ActivityTaskManagerTasksRepository( activityTaskManager = fakeActivityTaskManager.activityTaskManager, applicationScope = testScope.backgroundScope, backgroundDispatcher = dispatcher ) private val mediaRepo = MediaProjectionManagerRepository( mediaProjectionManager = fakeMediaProjectionManager.mediaProjectionManager, handler = Handler.getMain(), applicationScope = testScope.backgroundScope, tasksRepository = tasksRepo, backgroundDispatcher = dispatcher, mediaProjectionServiceHelper = fakeMediaProjectionManager.helper, ) private val interactor = TaskSwitchInteractor(mediaRepo, tasksRepo) private val viewModel = TaskSwitcherNotificationViewModel(interactor, backgroundDispatcher = dispatcher) private val kosmos = taskSwitcherKosmos() private val testScope = kosmos.testScope private val fakeActivityTaskManager = kosmos.fakeActivityTaskManager private val fakeMediaProjectionManager = kosmos.fakeMediaProjectionManager private val viewModel = kosmos.taskSwitcherViewModel private lateinit var coordinator: TaskSwitcherNotificationCoordinator Loading
packages/SystemUI/tests/src/com/android/systemui/mediaprojection/taskswitcher/ui/viewmodel/TaskSwitcherNotificationViewModelTest.kt +13 −42 Original line number Diff line number Diff line Loading @@ -17,64 +17,35 @@ package com.android.systemui.mediaprojection.taskswitcher.ui.viewmodel import android.content.Intent import android.os.Handler import android.testing.AndroidTestingRunner import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.coroutines.collectLastValue import com.android.systemui.mediaprojection.taskswitcher.data.repository.ActivityTaskManagerTasksRepository import com.android.systemui.mediaprojection.taskswitcher.data.repository.FakeActivityTaskManager import com.android.systemui.mediaprojection.taskswitcher.data.repository.FakeActivityTaskManager.Companion.createTask import com.android.systemui.mediaprojection.taskswitcher.data.repository.FakeMediaProjectionManager import com.android.systemui.mediaprojection.taskswitcher.data.repository.FakeMediaProjectionManager.Companion.createDisplaySession import com.android.systemui.mediaprojection.taskswitcher.data.repository.FakeMediaProjectionManager.Companion.createSingleTaskSession import com.android.systemui.mediaprojection.taskswitcher.data.repository.MediaProjectionManagerRepository import com.android.systemui.mediaprojection.taskswitcher.domain.interactor.TaskSwitchInteractor import com.android.systemui.kosmos.testScope import com.android.systemui.mediaprojection.taskswitcher.FakeActivityTaskManager.Companion.createTask import com.android.systemui.mediaprojection.taskswitcher.FakeMediaProjectionManager.Companion.createDisplaySession import com.android.systemui.mediaprojection.taskswitcher.FakeMediaProjectionManager.Companion.createSingleTaskSession import com.android.systemui.mediaprojection.taskswitcher.fakeActivityTaskManager import com.android.systemui.mediaprojection.taskswitcher.fakeMediaProjectionManager import com.android.systemui.mediaprojection.taskswitcher.taskSwitcherKosmos import com.android.systemui.mediaprojection.taskswitcher.taskSwitcherViewModel import com.android.systemui.mediaprojection.taskswitcher.ui.model.TaskSwitcherNotificationUiState import com.android.systemui.mediaprojection.taskswitcher.ui.viewmodel.TaskSwitcherNotificationViewModel.Companion.NOTIFICATION_MAX_SHOW_DURATION import com.google.common.truth.Truth.assertThat import kotlin.time.Duration.Companion.milliseconds import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.TestCoroutineScheduler import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.UnconfinedTestDispatcher import kotlinx.coroutines.test.runTest import org.junit.Test import org.junit.runner.RunWith @OptIn(ExperimentalCoroutinesApi::class) @RunWith(AndroidTestingRunner::class) @SmallTest class TaskSwitcherNotificationViewModelTest : SysuiTestCase() { private val scheduler = TestCoroutineScheduler() private val dispatcher = UnconfinedTestDispatcher(scheduler) private val testScope = TestScope(dispatcher) private val fakeActivityTaskManager = FakeActivityTaskManager() private val fakeMediaProjectionManager = FakeMediaProjectionManager() private val tasksRepo = ActivityTaskManagerTasksRepository( activityTaskManager = fakeActivityTaskManager.activityTaskManager, applicationScope = testScope.backgroundScope, backgroundDispatcher = dispatcher ) private val mediaRepo = MediaProjectionManagerRepository( mediaProjectionManager = fakeMediaProjectionManager.mediaProjectionManager, handler = Handler.getMain(), applicationScope = testScope.backgroundScope, tasksRepository = tasksRepo, backgroundDispatcher = dispatcher, mediaProjectionServiceHelper = fakeMediaProjectionManager.helper, ) private val interactor = TaskSwitchInteractor(mediaRepo, tasksRepo) private val viewModel = TaskSwitcherNotificationViewModel(interactor, backgroundDispatcher = dispatcher) private val kosmos = taskSwitcherKosmos() private val testScope = kosmos.testScope private val fakeActivityTaskManager = kosmos.fakeActivityTaskManager private val fakeMediaProjectionManager = kosmos.fakeMediaProjectionManager private val viewModel = kosmos.taskSwitcherViewModel @Test fun uiState_notProjecting_emitsNotShowing() = Loading