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

// Copyright 2021 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_PROJECTOR_CONTROLLER_H_
#define ASH_PUBLIC_CPP_TEST_MOCK_PROJECTOR_CONTROLLER_H_

#include "ash/public/cpp/projector/projector_controller.h"
#include "ash/public/cpp/projector/projector_new_screencast_precondition.h"
#include "testing/gmock/include/gmock/gmock.h"

namespace ash {

class MockProjectorController : public ash::ProjectorController {
 public:
  MockProjectorController();
  MockProjectorController(const MockProjectorController&) = delete;
  MockProjectorController& operator=(const MockProjectorController&) = delete;
  ~MockProjectorController() override;

  // ProjectorController:
  MOCK_METHOD1(StartProjectorSession,
               void(const base::SafeBaseName& storageDir));
  MOCK_METHOD1(SetClient, void(ash::ProjectorClient* client));
  MOCK_METHOD0(OnSpeechRecognitionAvailabilityChanged, void());
  MOCK_METHOD1(OnTranscription,
               void(const media::SpeechRecognitionResult& result));
  MOCK_METHOD0(OnTranscriptionError, void());
  MOCK_METHOD1(OnSpeechRecognitionStopped, void(bool forced));
  MOCK_METHOD1(SetProjectorToolsVisible, void(bool is_visible));
  MOCK_CONST_METHOD0(GetNewScreencastPrecondition, NewScreencastPrecondition());
  MOCK_METHOD2(OnUndoRedoAvailabilityChanged,
               void(bool undo_available, bool redo_available));
  MOCK_METHOD1(OnCanvasInitialized, void(bool success));
  MOCK_METHOD0(GetAnnotatorAvailability, bool());
  MOCK_METHOD0(ToggleAnnotationTray, void());
};

}  // namespace ash

#endif  // ASH_PUBLIC_CPP_TEST_MOCK_PROJECTOR_CONTROLLER_H_