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

Commit 1e12296f authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Screen capture: Update tests to assert UI closes after screenshot" into main

parents c5404d95 30c7967d
Loading
Loading
Loading
Loading
+50 −9
Original line number Diff line number Diff line
@@ -86,6 +86,19 @@ class PreCaptureViewModelTest : SysuiTestCase() {
        viewModel.activateIn(kosmos.testScope)
    }

    private fun assertUiClosed() {
        with(kosmos) {
            val uiState by
                collectLastValue(
                    kosmos.screenCaptureUiRepository.uiState(
                        com.android.systemui.screencapture.common.shared.model.ScreenCaptureType
                            .RECORD
                    )
                )
            assertThat(uiState).isEqualTo(ScreenCaptureUiState.Invisible)
        }
    }

    @Before
    fun setUp() {
        MockitoAnnotations.openMocks(this)
@@ -263,6 +276,19 @@ class PreCaptureViewModelTest : SysuiTestCase() {
            assertThat(capturedRequest.displayId).isEqualTo(displayId)
        }

    @Test
    fun beginCapture_forFullscreenScreenshot_closesUi() =
        kosmos.runTest {
            setupViewModel()

            viewModel.updateCaptureType(ScreenCaptureType.SCREENSHOT)
            viewModel.updateCaptureRegion(ScreenCaptureRegion.FULLSCREEN)

            viewModel.beginCapture()

            assertUiClosed()
        }

    @Test
    fun beginCapture_forPartialScreenshot_makesCorrectRequest() =
        kosmos.runTest {
@@ -295,6 +321,29 @@ class PreCaptureViewModelTest : SysuiTestCase() {
            assertThat(capturedRequest.displayId).isEqualTo(displayId)
        }

    @Test
    fun beginCapture_forPartialScreenshot_closesUi() =
        kosmos.runTest {
            setupViewModel()

            viewModel.updateCaptureType(ScreenCaptureType.SCREENSHOT)
            viewModel.updateCaptureRegion(ScreenCaptureRegion.PARTIAL)

            val regionBox = Rect(0, 0, 100, 100)
            viewModel.updateRegionBoxBounds(regionBox)

            whenever(kosmos.mockImageCapture.captureDisplay(any(), eq(regionBox)))
                .thenReturn(mockBitmap)

            viewModel.beginCapture()

            // Account for the delay (temporary fix b/435225255)
            advanceTimeBy(100)
            runCurrent()

            assertUiClosed()
        }

    @Test
    fun beginCapture_forFullScreenRecording_startsRecordingWithCorrectParameters() =
        kosmos.runTest {
@@ -408,17 +457,9 @@ class PreCaptureViewModelTest : SysuiTestCase() {
        kosmos.runTest {
            setupViewModel()

            val uiState by
                collectLastValue(
                    kosmos.screenCaptureUiRepository.uiState(
                        com.android.systemui.screencapture.common.shared.model.ScreenCaptureType
                            .RECORD
                    )
                )

            viewModel.closeFromToolbar()

            assertThat(uiState).isEqualTo(ScreenCaptureUiState.Invisible)
            assertUiClosed()
        }

    @Test