chromium/ash/clipboard/test_support/mock_clipboard_history_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_CLIPBOARD_TEST_SUPPORT_MOCK_CLIPBOARD_HISTORY_CONTROLLER_H_
#define ASH_CLIPBOARD_TEST_SUPPORT_MOCK_CLIPBOARD_HISTORY_CONTROLLER_H_

#include <memory>
#include <string>
#include <vector>

#include "ash/public/cpp/clipboard_history_controller.h"
#include "ash/public/cpp/scoped_clipboard_history_pause.h"
#include "testing/gmock/include/gmock/gmock.h"

namespace crosapi::mojom {
enum class ClipboardHistoryControllerShowSource;
}  // namespace crosapi::mojom

namespace gfx {
class Rect;
}  // namespace gfx

namespace ui {
enum MenuSourceType;
}  // namespace ui

namespace ash {

class MockClipboardHistoryController : public ClipboardHistoryController {
 public:
  MockClipboardHistoryController();
  MockClipboardHistoryController(const MockClipboardHistoryController&) =
      delete;
  MockClipboardHistoryController& operator=(
      const MockClipboardHistoryController&) = delete;
  ~MockClipboardHistoryController() override;

  MOCK_METHOD(void, AddObserver, (Observer*), (override));
  MOCK_METHOD(void, RemoveObserver, (Observer*), (override));
  MOCK_METHOD(bool, HasAvailableHistoryItems, (), (const, override));
  MOCK_METHOD(bool,
              ShowMenu,
              (const gfx::Rect&,
               ui::MenuSourceType,
               crosapi::mojom::ClipboardHistoryControllerShowSource),
              (override));
  MOCK_METHOD(bool,
              ShowMenu,
              (const gfx::Rect&,
               ui::MenuSourceType,
               crosapi::mojom::ClipboardHistoryControllerShowSource,
               OnMenuClosingCallback),
              (override));
  MOCK_METHOD(void, OnScreenshotNotificationCreated, (), (override));
  MOCK_METHOD(std::unique_ptr<ScopedClipboardHistoryPause>,
              CreateScopedPause,
              (),
              (override));
  MOCK_METHOD(void,
              GetHistoryValues,
              (GetHistoryValuesCallback),
              (const, override));
  MOCK_METHOD(std::vector<std::string>,
              GetHistoryItemIds,
              (),
              (const, override));
  MOCK_METHOD(bool,
              PasteClipboardItemById,
              (const std::string&,
               int,
               crosapi::mojom::ClipboardHistoryControllerShowSource),
              (override));
  MOCK_METHOD(bool, DeleteClipboardItemById, (const std::string&), (override));
};

}  // namespace ash

#endif  // ASH_CLIPBOARD_TEST_SUPPORT_MOCK_CLIPBOARD_HISTORY_CONTROLLER_H_