chromium/ash/public/cpp/test/mock_input_device_settings_controller.h

// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef ASH_PUBLIC_CPP_TEST_MOCK_INPUT_DEVICE_SETTINGS_CONTROLLER_H_
#define ASH_PUBLIC_CPP_TEST_MOCK_INPUT_DEVICE_SETTINGS_CONTROLLER_H_

#include "ash/public/cpp/ash_public_export.h"
#include "ash/public/cpp/input_device_settings_controller.h"
#include "ash/public/mojom/input_device_settings.mojom.h"
#include "testing/gmock/include/gmock/gmock.h"

namespace ash {

class ASH_PUBLIC_EXPORT MockInputDeviceSettingsController
    : public InputDeviceSettingsController {
 public:
  MockInputDeviceSettingsController();
  MockInputDeviceSettingsController(const MockInputDeviceSettingsController&) =
      delete;
  MockInputDeviceSettingsController& operator=(
      const MockInputDeviceSettingsController&) = delete;
  ~MockInputDeviceSettingsController() override;

  // InputDeviceSettingsController:
  MOCK_METHOD(std::vector<mojom::KeyboardPtr>,
              GetConnectedKeyboards,
              (),
              (override));
  MOCK_METHOD(std::vector<mojom::TouchpadPtr>,
              GetConnectedTouchpads,
              (),
              (override));
  MOCK_METHOD(std::vector<mojom::MousePtr>, GetConnectedMice, (), (override));
  MOCK_METHOD(std::vector<mojom::PointingStickPtr>,
              GetConnectedPointingSticks,
              (),
              (override));
  MOCK_METHOD(std::vector<mojom::GraphicsTabletPtr>,
              GetConnectedGraphicsTablets,
              (),
              (override));
  MOCK_METHOD(const mojom::KeyboardSettings*,
              GetKeyboardSettings,
              (DeviceId id),
              (override));
  MOCK_METHOD(const mojom::MouseSettings*,
              GetMouseSettings,
              (DeviceId id),
              (override));
  MOCK_METHOD(const mojom::TouchpadSettings*,
              GetTouchpadSettings,
              (DeviceId id),
              (override));
  MOCK_METHOD(const mojom::PointingStickSettings*,
              GetPointingStickSettings,
              (DeviceId id),
              (override));
  MOCK_METHOD(const mojom::GraphicsTabletSettings*,
              GetGraphicsTabletSettings,
              (DeviceId id),
              (override));
  MOCK_METHOD(const mojom::Keyboard*, GetKeyboard, (DeviceId id), (override));
  MOCK_METHOD(const mojom::Mouse*, GetMouse, (DeviceId id), (override));
  MOCK_METHOD(const mojom::Touchpad*, GetTouchpad, (DeviceId id), (override));
  MOCK_METHOD(const mojom::PointingStick*,
              GetPointingStick,
              (DeviceId id),
              (override));
  MOCK_METHOD(const mojom::GraphicsTablet*,
              GetGraphicsTablet,
              (DeviceId id),
              (override));
  MOCK_METHOD(const mojom::KeyboardPolicies&,
              GetKeyboardPolicies,
              (),
              (override));
  MOCK_METHOD(const mojom::MousePolicies&, GetMousePolicies, (), (override));
  MOCK_METHOD(bool,
              SetKeyboardSettings,
              (DeviceId id, mojom::KeyboardSettingsPtr settings),
              (override));
  MOCK_METHOD(void,
              RestoreDefaultKeyboardRemappings,
              (DeviceId id),
              (override));
  MOCK_METHOD(bool,
              SetTouchpadSettings,
              (DeviceId id, mojom::TouchpadSettingsPtr settings),
              (override));
  MOCK_METHOD(bool,
              SetMouseSettings,
              (DeviceId id, mojom::MouseSettingsPtr settings),
              (override));
  MOCK_METHOD(bool,
              SetPointingStickSettings,
              (DeviceId id, mojom::PointingStickSettingsPtr settings),
              (override));
  MOCK_METHOD(bool,
              SetGraphicsTabletSettings,
              (DeviceId id, mojom::GraphicsTabletSettingsPtr settings),
              (override));
  MOCK_METHOD(void,
              OnLoginScreenFocusedPodChanged,
              (const AccountId&),
              (override));
  MOCK_METHOD(void, StartObservingButtons, (DeviceId id), (override));
  MOCK_METHOD(void, StopObservingButtons, (), (override));
  MOCK_METHOD(void,
              OnMouseButtonPressed,
              (DeviceId device_id, const mojom::Button& button),
              (override));
  MOCK_METHOD(void,
              OnGraphicsTabletButtonPressed,
              (DeviceId device_id, const mojom::Button& button),
              (override));
  MOCK_METHOD(
      void,
      GetDeviceImageDataUrl,
      (const std::string& device_key,
       base::OnceCallback<void(const std::optional<std::string>&)> callback),
      (override));
  MOCK_METHOD(void, ResetNotificationDeviceTracking, (), (override));
  MOCK_METHOD(void, AddObserver, (Observer * observer), (override));
  MOCK_METHOD(void, RemoveObserver, (Observer * observer), (override));
};

}  // namespace ash

#endif  // ASH_PUBLIC_CPP_TEST_MOCK_INPUT_DEVICE_SETTINGS_CONTROLLER_H_