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

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

Merge "Add ktfmt to tests/Input" into main

parents d9dda7a7 75fa35ed
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -19,7 +19,7 @@ clang_format = --commit ${PREUPLOAD_COMMIT} --style file --extensions c,h,cc,cpp
               tests/
               tools/
bpfmt = -d
ktfmt = --kotlinlang-style --include-dirs=services/permission,packages/SystemUI,libs/WindowManager/Shell/src/com/android/wm/shell/freeform,libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode,libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode,apct-tests
ktfmt = --kotlinlang-style --include-dirs=services/permission,packages/SystemUI,libs/WindowManager/Shell/src/com/android/wm/shell/freeform,libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode,libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode,apct-tests,tests/Input

[Hook Scripts]
checkstyle_hook = ${REPO_ROOT}/prebuilts/checkstyle/checkstyle.py --sha ${PREUPLOAD_COMMIT}
+57 −44
Original line number Diff line number Diff line
@@ -44,14 +44,12 @@ import org.mockito.junit.MockitoJUnitRunner
/**
 * Tests for [InputManager.InputDeviceBatteryListener].
 *
 * Build/Install/Run:
 * atest InputTests:InputDeviceBatteryListenerTest
 * Build/Install/Run: atest InputTests:InputDeviceBatteryListenerTest
 */
@Presubmit
@RunWith(MockitoJUnitRunner::class)
class InputDeviceBatteryListenerTest {
    @get:Rule
    val rule = MockitoJUnit.rule()!!
    @get:Rule val rule = MockitoJUnit.rule()!!

    private lateinit var testLooper: TestLooper
    private var registeredListener: IInputDeviceBatteryListener? = null
@@ -60,8 +58,7 @@ class InputDeviceBatteryListenerTest {
    private lateinit var context: Context
    private lateinit var inputManager: InputManager

    @get:Rule
    val inputManagerRule = MockInputManagerRule()
    @get:Rule val inputManagerRule = MockInputManagerRule()

    @Before
    fun setUp() {
@@ -71,15 +68,16 @@ class InputDeviceBatteryListenerTest {
        registeredListener = null
        monitoredDevices.clear()
        inputManager = InputManager(context)
        `when`(context.getSystemService(Mockito.eq(Context.INPUT_SERVICE)))
                .thenReturn(inputManager)
        `when`(context.getSystemService(Mockito.eq(Context.INPUT_SERVICE))).thenReturn(inputManager)

        // Handle battery listener registration.
        doAnswer {
                val deviceId = it.getArgument(0) as Int
                val listener = it.getArgument(1) as IInputDeviceBatteryListener
            if (registeredListener != null &&
                    registeredListener!!.asBinder() != listener.asBinder()) {
                if (
                    registeredListener != null &&
                        registeredListener!!.asBinder() != listener.asBinder()
                ) {
                    // There can only be one registered battery listener per process.
                    fail("Trying to register a new listener when one already exists")
                }
@@ -89,14 +87,18 @@ class InputDeviceBatteryListenerTest {
                monitoredDevices.add(deviceId)
                registeredListener = listener
                null
        }.`when`(inputManagerRule.mock).registerBatteryListener(anyInt(), any())
            }
            .`when`(inputManagerRule.mock)
            .registerBatteryListener(anyInt(), any())

        // Handle battery listener being unregistered.
        doAnswer {
                val deviceId = it.getArgument(0) as Int
                val listener = it.getArgument(1) as IInputDeviceBatteryListener
            if (registeredListener == null ||
                    registeredListener!!.asBinder() != listener.asBinder()) {
                if (
                    registeredListener == null ||
                        registeredListener!!.asBinder() != listener.asBinder()
                ) {
                    fail("Trying to unregister a listener that is not registered")
                }
                if (!monitoredDevices.remove(deviceId)) {
@@ -105,7 +107,9 @@ class InputDeviceBatteryListenerTest {
                if (monitoredDevices.isEmpty()) {
                    registeredListener = null
                }
        }.`when`(inputManagerRule.mock).unregisterBatteryListener(anyInt(), any())
            }
            .`when`(inputManagerRule.mock)
            .unregisterBatteryListener(anyInt(), any())
    }

    private fun notifyBatteryStateChanged(
@@ -113,15 +117,17 @@ class InputDeviceBatteryListenerTest {
        isPresent: Boolean = true,
        status: Int = BatteryState.STATUS_FULL,
        capacity: Float = 1.0f,
        eventTime: Long = 12345L
        eventTime: Long = 12345L,
    ) {
        registeredListener!!.onBatteryStateChanged(IInputDeviceBatteryState().apply {
        registeredListener!!.onBatteryStateChanged(
            IInputDeviceBatteryState().apply {
                this.deviceId = deviceId
                this.updateTime = eventTime
                this.isPresent = isPresent
                this.status = status
                this.capacity = capacity
        })
            }
        )
    }

    @Test
@@ -130,7 +136,9 @@ class InputDeviceBatteryListenerTest {

        // Add a battery listener to monitor battery changes.
        inputManager.addInputDeviceBatteryListener(1 /*deviceId*/, executor) {
                deviceId: Int, eventTime: Long, batteryState: BatteryState ->
            deviceId: Int,
            eventTime: Long,
            batteryState: BatteryState ->
            callbackCount++
            assertEquals(1, deviceId)
            assertEquals(true, batteryState.isPresent)
@@ -149,8 +157,13 @@ class InputDeviceBatteryListenerTest {
        assertEquals(0, callbackCount)

        // Notifying battery change for the registered device will notify the listener.
        notifyBatteryStateChanged(1 /*deviceId*/, true /*isPresent*/,
            BatteryState.STATUS_DISCHARGING, 0.5f /*capacity*/, 8675309L /*eventTime*/)
        notifyBatteryStateChanged(
            1 /*deviceId*/,
            true /*isPresent*/,
            BatteryState.STATUS_DISCHARGING,
            0.5f /*capacity*/,
            8675309L, /*eventTime*/
        )
        testLooper.dispatchNext()
        assertEquals(1, callbackCount)
    }
+6 −9
Original line number Diff line number Diff line
@@ -38,8 +38,7 @@ import org.mockito.junit.MockitoJUnitRunner
/**
 * Tests for [InputManager].
 *
 * Build/Install/Run:
 * atest InputTests:InputManagerTest
 * Build/Install/Run: atest InputTests:InputManagerTest
 */
@Presubmit
@RunWith(MockitoJUnitRunner::class)
@@ -51,8 +50,7 @@ class InputManagerTest {
        const val THIRD_DEVICE_ID = 99
    }

    @get:Rule
    val inputManagerRule = MockInputManagerRule()
    @get:Rule val inputManagerRule = MockInputManagerRule()

    private lateinit var devicesChangedListener: IInputDevicesChangedListener
    private val deviceGenerationMap = mutableMapOf<Int /*deviceId*/, Int /*generation*/>()
@@ -64,9 +62,7 @@ class InputManagerTest {
        context = Mockito.spy(ContextWrapper(ApplicationProvider.getApplicationContext()))
        inputManager = InputManager(context)
        `when`(context.getSystemService(eq(Context.INPUT_SERVICE))).thenReturn(inputManager)
        `when`(inputManagerRule.mock.inputDeviceIds).then {
            deviceGenerationMap.keys.toIntArray()
        }
        `when`(inputManagerRule.mock.inputDeviceIds).then { deviceGenerationMap.keys.toIntArray() }
    }

    private fun notifyDeviceChanged(
@@ -74,7 +70,8 @@ class InputManagerTest {
        associatedDisplayId: Int,
        usiVersion: HostUsiVersion?,
    ) {
        val generation = deviceGenerationMap[deviceId]?.plus(1)
        val generation =
            deviceGenerationMap[deviceId]?.plus(1)
                ?: throw IllegalArgumentException("Device $deviceId was never added!")
        deviceGenerationMap[deviceId] = generation

+68 −58
Original line number Diff line number Diff line
@@ -23,6 +23,11 @@ import android.platform.test.flag.junit.SetFlagsRule
import android.view.KeyEvent
import androidx.test.core.app.ApplicationProvider
import com.android.test.input.MockInputManagerRule
import kotlin.test.assertEquals
import kotlin.test.assertNotNull
import kotlin.test.assertNull
import kotlin.test.fail
import org.junit.Assert.assertThrows
import org.junit.Before
import org.junit.Rule
import org.junit.Test
@@ -31,17 +36,11 @@ import org.mockito.Mockito
import org.mockito.Mockito.doAnswer
import org.mockito.Mockito.`when`
import org.mockito.junit.MockitoJUnitRunner
import kotlin.test.assertEquals
import kotlin.test.assertNotNull
import kotlin.test.assertNull
import kotlin.test.fail
import org.junit.Assert.assertThrows

/**
 * Tests for [InputManager.KeyGestureEventHandler].
 *
 * Build/Install/Run:
 * atest InputTests:KeyGestureEventHandlerTest
 * Build/Install/Run: atest InputTests:KeyGestureEventHandlerTest
 */
@Presubmit
@RunWith(MockitoJUnitRunner::class)
@@ -49,13 +48,15 @@ class KeyGestureEventHandlerTest {

    companion object {
        const val DEVICE_ID = 1
        val HOME_GESTURE_EVENT = KeyGestureEvent.Builder()
        val HOME_GESTURE_EVENT =
            KeyGestureEvent.Builder()
                .setDeviceId(DEVICE_ID)
                .setKeycodes(intArrayOf(KeyEvent.KEYCODE_H))
                .setModifierState(KeyEvent.META_META_ON or KeyEvent.META_META_LEFT_ON)
                .setKeyGestureType(KeyGestureEvent.KEY_GESTURE_TYPE_HOME)
                .build()
        val BACK_GESTURE_EVENT = KeyGestureEvent.Builder()
        val BACK_GESTURE_EVENT =
            KeyGestureEvent.Builder()
                .setDeviceId(DEVICE_ID)
                .setKeycodes(intArrayOf(KeyEvent.KEYCODE_DEL))
                .setModifierState(KeyEvent.META_META_ON or KeyEvent.META_META_LEFT_ON)
@@ -63,10 +64,8 @@ class KeyGestureEventHandlerTest {
                .build()
    }

    @get:Rule
    val rule = SetFlagsRule()
    @get:Rule
    val inputManagerRule = MockInputManagerRule()
    @get:Rule val rule = SetFlagsRule()
    @get:Rule val inputManagerRule = MockInputManagerRule()

    private var registeredListener: IKeyGestureHandler? = null
    private lateinit var context: Context
@@ -76,31 +75,38 @@ class KeyGestureEventHandlerTest {
    fun setUp() {
        context = Mockito.spy(ContextWrapper(ApplicationProvider.getApplicationContext()))
        inputManager = InputManager(context)
        `when`(context.getSystemService(Mockito.eq(Context.INPUT_SERVICE)))
                .thenReturn(inputManager)
        `when`(context.getSystemService(Mockito.eq(Context.INPUT_SERVICE))).thenReturn(inputManager)

        // Handle key gesture handler registration.
        doAnswer {
                val listener = it.getArgument(1) as IKeyGestureHandler
            if (registeredListener != null &&
                    registeredListener!!.asBinder() != listener.asBinder()) {
                if (
                    registeredListener != null &&
                        registeredListener!!.asBinder() != listener.asBinder()
                ) {
                    // There can only be one registered key gesture handler per process.
                    fail("Trying to register a new listener when one already exists")
                }
                registeredListener = listener
                null
        }.`when`(inputManagerRule.mock).registerKeyGestureHandler(Mockito.any(), Mockito.any())
            }
            .`when`(inputManagerRule.mock)
            .registerKeyGestureHandler(Mockito.any(), Mockito.any())

        // Handle key gesture handler being unregistered.
        doAnswer {
                val listener = it.getArgument(0) as IKeyGestureHandler
            if (registeredListener == null ||
                    registeredListener!!.asBinder() != listener.asBinder()) {
                if (
                    registeredListener == null ||
                        registeredListener!!.asBinder() != listener.asBinder()
                ) {
                    fail("Trying to unregister a listener that is not registered")
                }
                registeredListener = null
                null
        }.`when`(inputManagerRule.mock).unregisterKeyGestureHandler(Mockito.any())
            }
            .`when`(inputManagerRule.mock)
            .unregisterKeyGestureHandler(Mockito.any())
    }

    private fun handleKeyGestureEvent(event: KeyGestureEvent) {
@@ -143,7 +149,7 @@ class KeyGestureEventHandlerTest {
        // Adding the handler should register the callback with InputManagerService.
        inputManager.registerKeyGestureEventHandler(
            listOf(KeyGestureEvent.KEY_GESTURE_TYPE_HOME),
            callback1
            callback1,
        )
        assertNotNull(registeredListener)

@@ -151,7 +157,7 @@ class KeyGestureEventHandlerTest {
        val currListener = registeredListener
        inputManager.registerKeyGestureEventHandler(
            listOf(KeyGestureEvent.KEY_GESTURE_TYPE_BACK),
            callback2
            callback2,
        )
        assertEquals(currListener, registeredListener)
    }
@@ -164,11 +170,11 @@ class KeyGestureEventHandlerTest {

        inputManager.registerKeyGestureEventHandler(
            listOf(KeyGestureEvent.KEY_GESTURE_TYPE_HOME),
            callback1
            callback1,
        )
        inputManager.registerKeyGestureEventHandler(
            listOf(KeyGestureEvent.KEY_GESTURE_TYPE_BACK),
            callback2
            callback2,
        )

        // Only removing all handlers should remove the internal callback
@@ -184,12 +190,14 @@ class KeyGestureEventHandlerTest {
        var callbackCount1 = 0
        var callbackCount2 = 0
        // Handler 1 captures all home gestures
        val callback1 = InputManager.KeyGestureEventHandler { event, _ ->
        val callback1 =
            InputManager.KeyGestureEventHandler { event, _ ->
                callbackCount1++
                assertEquals(KeyGestureEvent.KEY_GESTURE_TYPE_HOME, event.keyGestureType)
            }
        // Handler 2 captures all back gestures
        val callback2 = InputManager.KeyGestureEventHandler { event, _ ->
        val callback2 =
            InputManager.KeyGestureEventHandler { event, _ ->
                callbackCount2++
                assertEquals(KeyGestureEvent.KEY_GESTURE_TYPE_BACK, event.keyGestureType)
            }
@@ -197,11 +205,11 @@ class KeyGestureEventHandlerTest {
        // Add both key gesture event handlers
        inputManager.registerKeyGestureEventHandler(
            listOf(KeyGestureEvent.KEY_GESTURE_TYPE_HOME),
            callback1
            callback1,
        )
        inputManager.registerKeyGestureEventHandler(
            listOf(KeyGestureEvent.KEY_GESTURE_TYPE_BACK),
            callback2
            callback2,
        )

        // Request handling for home key gesture event, should notify only callback1
@@ -228,12 +236,13 @@ class KeyGestureEventHandlerTest {

        inputManager.registerKeyGestureEventHandler(
            listOf(KeyGestureEvent.KEY_GESTURE_TYPE_HOME),
            handler
            handler,
        )

        assertThrows(IllegalArgumentException::class.java) {
            inputManager.registerKeyGestureEventHandler(
                listOf(KeyGestureEvent.KEY_GESTURE_TYPE_BACK), handler
                listOf(KeyGestureEvent.KEY_GESTURE_TYPE_BACK),
                handler,
            )
        }
    }
@@ -245,12 +254,13 @@ class KeyGestureEventHandlerTest {

        inputManager.registerKeyGestureEventHandler(
            listOf(KeyGestureEvent.KEY_GESTURE_TYPE_HOME),
            handler1
            handler1,
        )

        assertThrows(IllegalArgumentException::class.java) {
            inputManager.registerKeyGestureEventHandler(
                listOf(KeyGestureEvent.KEY_GESTURE_TYPE_HOME), handler2
                listOf(KeyGestureEvent.KEY_GESTURE_TYPE_HOME),
                handler2,
            )
        }
    }
+35 −31
Original line number Diff line number Diff line
@@ -43,8 +43,7 @@ import org.mockito.junit.MockitoJUnitRunner
/**
 * Tests for [InputManager.KeyGestureEventListener].
 *
 * Build/Install/Run:
 * atest InputTests:KeyGestureEventListenerTest
 * Build/Install/Run: atest InputTests:KeyGestureEventListenerTest
 */
@Presubmit
@RunWith(MockitoJUnitRunner::class)
@@ -52,7 +51,8 @@ class KeyGestureEventListenerTest {

    companion object {
        const val DEVICE_ID = 1
        val HOME_GESTURE_EVENT = KeyGestureEvent.Builder()
        val HOME_GESTURE_EVENT =
            KeyGestureEvent.Builder()
                .setDeviceId(DEVICE_ID)
                .setKeycodes(intArrayOf(KeyEvent.KEYCODE_H))
                .setModifierState(KeyEvent.META_META_ON or KeyEvent.META_META_LEFT_ON)
@@ -60,10 +60,8 @@ class KeyGestureEventListenerTest {
                .build()
    }

    @get:Rule
    val rule = SetFlagsRule()
    @get:Rule
    val inputManagerRule = MockInputManagerRule()
    @get:Rule val rule = SetFlagsRule()
    @get:Rule val inputManagerRule = MockInputManagerRule()

    private val testLooper = TestLooper()
    private val executor = HandlerExecutor(Handler(testLooper.looper))
@@ -75,31 +73,38 @@ class KeyGestureEventListenerTest {
    fun setUp() {
        context = Mockito.spy(ContextWrapper(ApplicationProvider.getApplicationContext()))
        inputManager = InputManager(context)
        `when`(context.getSystemService(Mockito.eq(Context.INPUT_SERVICE)))
                .thenReturn(inputManager)
        `when`(context.getSystemService(Mockito.eq(Context.INPUT_SERVICE))).thenReturn(inputManager)

        // Handle key gesture event listener registration.
        doAnswer {
                val listener = it.getArgument(0) as IKeyGestureEventListener
            if (registeredListener != null &&
                    registeredListener!!.asBinder() != listener.asBinder()) {
                if (
                    registeredListener != null &&
                        registeredListener!!.asBinder() != listener.asBinder()
                ) {
                    // There can only be one registered key gesture event listener per process.
                    fail("Trying to register a new listener when one already exists")
                }
                registeredListener = listener
                null
        }.`when`(inputManagerRule.mock).registerKeyGestureEventListener(any())
            }
            .`when`(inputManagerRule.mock)
            .registerKeyGestureEventListener(any())

        // Handle key gesture event listener being unregistered.
        doAnswer {
                val listener = it.getArgument(0) as IKeyGestureEventListener
            if (registeredListener == null ||
                    registeredListener!!.asBinder() != listener.asBinder()) {
                if (
                    registeredListener == null ||
                        registeredListener!!.asBinder() != listener.asBinder()
                ) {
                    fail("Trying to unregister a listener that is not registered")
                }
                registeredListener = null
                null
        }.`when`(inputManagerRule.mock).unregisterKeyGestureEventListener(any())
            }
            .`when`(inputManagerRule.mock)
            .unregisterKeyGestureEventListener(any())
    }

    private fun notifyKeyGestureEvent(event: KeyGestureEvent) {
@@ -119,8 +124,7 @@ class KeyGestureEventListenerTest {
        var callbackCount = 0

        // Add a key gesture event listener
        inputManager.registerKeyGestureEventListener(executor) {
            event: KeyGestureEvent ->
        inputManager.registerKeyGestureEventListener(executor) { event: KeyGestureEvent ->
            assertEquals(HOME_GESTURE_EVENT, event)
            callbackCount++
        }
Loading