/* * Copyright 2024 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.test.input import android.hardware.input.IInputManager import android.hardware.input.InputManagerGlobal import org.junit.rules.ExternalResource import org.mockito.Mockito /** * A test rule that temporarily replaces the [IInputManager] connection to the server with a mock to * be used for testing. */ class MockInputManagerRule : ExternalResource() { private lateinit var session: InputManagerGlobal.TestSession val mock: IInputManager = Mockito.mock(IInputManager::class.java) override fun before() { session = InputManagerGlobal.createTestSession(mock) } override fun after() { if (this::session.isInitialized) { session.close() } } }