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