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

Commit faa6e62e authored by Prabir Pradhan's avatar Prabir Pradhan Committed by Android (Google) Code Review
Browse files

Merge "InputManagerServiceTests: Release virtual displays after use" into main

parents d42f8e3d 376409fc
Loading
Loading
Loading
Loading
+82 −70
Original line number Diff line number Diff line
@@ -314,7 +314,17 @@ class InputManagerServiceTests {
        }
    }

    private fun createVirtualDisplays(count: Int): List<VirtualDisplay> {
    private class AutoClosingVirtualDisplays(val displays: List<VirtualDisplay>) : AutoCloseable {
        operator fun get(i: Int): VirtualDisplay = displays[i]

        override fun close() {
            for (display in displays) {
                display.release()
            }
        }
    }

    private fun createVirtualDisplays(count: Int): AutoClosingVirtualDisplays {
        val displayManager: DisplayManager = context.getSystemService(
                DisplayManager::class.java
        ) as DisplayManager
@@ -329,7 +339,7 @@ class InputManagerServiceTests {
                    /* flags= */ 0
            ))
        }
        return virtualDisplays
        return AutoClosingVirtualDisplays(virtualDisplays)
    }

    // Helper function that creates a KeyEvent with Keycode A with the given action
@@ -374,8 +384,7 @@ class InputManagerServiceTests {
        val mockSurfaceHolder2 = mock(SurfaceHolder::class.java)
        `when`(mockSurfaceView2.holder).thenReturn(mockSurfaceHolder2)

        val virtualDisplays = createVirtualDisplays(2)

        createVirtualDisplays(2).use { virtualDisplays ->
            // Simulate an InputDevice
            val inputDevice = createInputDevice()

@@ -401,7 +410,8 @@ class InputManagerServiceTests {

            // Verify that the onKey method was called with the expected arguments
            verify(mockOnKeyListener).onKey(mockSurfaceView1, KeyEvent.KEYCODE_A, downEvent)
        verify(mockOnKeyListener, never()).onKey(mockSurfaceView2, KeyEvent.KEYCODE_A, downEvent)
            verify(mockOnKeyListener, never())
                .onKey(mockSurfaceView2, KeyEvent.KEYCODE_A, downEvent)

            // Remove association
            service.removeUniqueIdAssociationByDescriptor(inputDevice.descriptor)
@@ -419,6 +429,7 @@ class InputManagerServiceTests {
            verify(mockOnKeyListener).onKey(mockSurfaceView2, KeyEvent.KEYCODE_A, upEvent)
            verify(mockOnKeyListener, never()).onKey(mockSurfaceView1, KeyEvent.KEYCODE_A, upEvent)
        }
    }

    @Test
    fun addUniqueIdAssociationByPort_verifyAssociations() {
@@ -436,8 +447,7 @@ class InputManagerServiceTests {
        val mockSurfaceHolder2 = mock(SurfaceHolder::class.java)
        `when`(mockSurfaceView2.holder).thenReturn(mockSurfaceHolder2)

        val virtualDisplays = createVirtualDisplays(2)

        createVirtualDisplays(2).use { virtualDisplays ->
            // Simulate an InputDevice
            val inputDevice = createInputDevice()

@@ -463,7 +473,8 @@ class InputManagerServiceTests {

            // Verify that the onKey method was called with the expected arguments
            verify(mockOnKeyListener).onKey(mockSurfaceView1, KeyEvent.KEYCODE_A, downEvent)
        verify(mockOnKeyListener, never()).onKey(mockSurfaceView2, KeyEvent.KEYCODE_A, downEvent)
            verify(mockOnKeyListener, never())
                .onKey(mockSurfaceView2, KeyEvent.KEYCODE_A, downEvent)

            // Remove association
            service.removeUniqueIdAssociationByPort(inputDevice.name)
@@ -481,6 +492,7 @@ class InputManagerServiceTests {
            verify(mockOnKeyListener).onKey(mockSurfaceView2, KeyEvent.KEYCODE_A, upEvent)
            verify(mockOnKeyListener, never()).onKey(mockSurfaceView1, KeyEvent.KEYCODE_A, upEvent)
        }
    }

    @Test
    fun handleKeyGestures_keyboardBacklight() {