// components/printing/common/print.mojom-test-utils.h is auto generated by mojom_bindings_generator.py, do not edit

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

#ifndef COMPONENTS_PRINTING_COMMON_PRINT_MOJOM_TEST_UTILS_H_
#define COMPONENTS_PRINTING_COMMON_PRINT_MOJOM_TEST_UTILS_H_

#include "components/printing/common/print.mojom.h"


namespace printing::mojom {


class  PrintPreviewUIInterceptorForTesting : public PrintPreviewUI {
  virtual PrintPreviewUI* GetForwardingInterface() = 0;
};
class  PrintPreviewUIAsyncWaiter {
 public:
  explicit PrintPreviewUIAsyncWaiter(PrintPreviewUI* proxy);

  PrintPreviewUIAsyncWaiter(const PrintPreviewUIAsyncWaiter&) = delete;
  PrintPreviewUIAsyncWaiter& operator=(const PrintPreviewUIAsyncWaiter&) = delete;

  ~PrintPreviewUIAsyncWaiter();

 private:
  PrintPreviewUI* const proxy_;
};


class  PrintRenderFrameInterceptorForTesting : public PrintRenderFrame {
  virtual PrintRenderFrame* GetForwardingInterface() = 0;
  void PrintRequestedPages() override;
  void PrintWithParams(PrintPagesParamsPtr params, PrintWithParamsCallback callback) override;
  void PrintFrameContent(PrintFrameContentParamsPtr params, PrintFrameContentCallback callback) override;
  void ConnectToPdfRenderer() override;
  void PrintingDone(bool success) override;
  void PrintNodeUnderContextMenu() override;
};
class  PrintRenderFrameAsyncWaiter {
 public:
  explicit PrintRenderFrameAsyncWaiter(PrintRenderFrame* proxy);

  PrintRenderFrameAsyncWaiter(const PrintRenderFrameAsyncWaiter&) = delete;
  PrintRenderFrameAsyncWaiter& operator=(const PrintRenderFrameAsyncWaiter&) = delete;

  ~PrintRenderFrameAsyncWaiter();
  void PrintWithParams(
      PrintPagesParamsPtr params,
base::expected<
  PrintWithParamsResultDataPtr,
  PrintFailureReason>* out_result);
  PrintRenderFrame_PrintWithParams_ResponseParam_ResultPtr PrintWithParams(PrintPagesParamsPtr params);
  void PrintFrameContent(
      PrintFrameContentParamsPtr params, int32_t* out_document_cookie, DidPrintContentParamsPtr* out_params);
  

 private:
  PrintRenderFrame* const proxy_;
};


class  PrintManagerHostInterceptorForTesting : public PrintManagerHost {
  virtual PrintManagerHost* GetForwardingInterface() = 0;
  void DidGetPrintedPagesCount(int32_t cookie, uint32_t number_pages) override;
  void GetDefaultPrintSettings(GetDefaultPrintSettingsCallback callback) override;
  void DidShowPrintDialog() override;
  void DidPrintDocument(DidPrintDocumentParamsPtr params, DidPrintDocumentCallback callback) override;
  void IsPrintingEnabled(IsPrintingEnabledCallback callback) override;
  void ScriptedPrint(ScriptedPrintParamsPtr params, ScriptedPrintCallback callback) override;
  void PrintingFailed(int32_t cookie, PrintFailureReason reason) override;
  void SetupScriptedPrintAndroid(SetupScriptedPrintAndroidCallback callback) override;
};
class  PrintManagerHostAsyncWaiter {
 public:
  explicit PrintManagerHostAsyncWaiter(PrintManagerHost* proxy);

  PrintManagerHostAsyncWaiter(const PrintManagerHostAsyncWaiter&) = delete;
  PrintManagerHostAsyncWaiter& operator=(const PrintManagerHostAsyncWaiter&) = delete;

  ~PrintManagerHostAsyncWaiter();
  void GetDefaultPrintSettings(
      PrintParamsPtr* out_default_settings);
  PrintParamsPtr GetDefaultPrintSettings();
  void DidPrintDocument(
      DidPrintDocumentParamsPtr params, bool* out_completed);
  bool DidPrintDocument(DidPrintDocumentParamsPtr params);
  void IsPrintingEnabled(
      bool* out_printing_enabled);
  bool IsPrintingEnabled();
  void ScriptedPrint(
      ScriptedPrintParamsPtr params, PrintPagesParamsPtr* out_settings);
  PrintPagesParamsPtr ScriptedPrint(ScriptedPrintParamsPtr params);
  void SetupScriptedPrintAndroid(
      );
  

 private:
  PrintManagerHost* const proxy_;
};




}  // printing::mojom

#endif  // COMPONENTS_PRINTING_COMMON_PRINT_MOJOM_TEST_UTILS_H_