// ui/webui/resources/cr_components/help_bubble/help_bubble.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 UI_WEBUI_RESOURCES_CR_COMPONENTS_HELP_BUBBLE_HELP_BUBBLE_MOJOM_TEST_UTILS_H_
#define UI_WEBUI_RESOURCES_CR_COMPONENTS_HELP_BUBBLE_HELP_BUBBLE_MOJOM_TEST_UTILS_H_

#include "ui/webui/resources/cr_components/help_bubble/help_bubble.mojom.h"


namespace help_bubble::mojom {


class  HelpBubbleHandlerFactoryInterceptorForTesting : public HelpBubbleHandlerFactory {
  virtual HelpBubbleHandlerFactory* GetForwardingInterface() = 0;
  void CreateHelpBubbleHandler(::mojo::PendingRemote<HelpBubbleClient> client, ::mojo::PendingReceiver<HelpBubbleHandler> handler) override;
};
class  HelpBubbleHandlerFactoryAsyncWaiter {
 public:
  explicit HelpBubbleHandlerFactoryAsyncWaiter(HelpBubbleHandlerFactory* proxy);

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

  ~HelpBubbleHandlerFactoryAsyncWaiter();

 private:
  HelpBubbleHandlerFactory* const proxy_;
};


class  PdfHelpBubbleHandlerFactoryInterceptorForTesting : public PdfHelpBubbleHandlerFactory {
  virtual PdfHelpBubbleHandlerFactory* GetForwardingInterface() = 0;
  void CreateHelpBubbleHandler(::mojo::PendingRemote<HelpBubbleClient> client, ::mojo::PendingReceiver<HelpBubbleHandler> help_bubble_handler, ::mojo::PendingReceiver<::tracked_element::mojom::TrackedElementHandler> tracked_element_handler) override;
};
class  PdfHelpBubbleHandlerFactoryAsyncWaiter {
 public:
  explicit PdfHelpBubbleHandlerFactoryAsyncWaiter(PdfHelpBubbleHandlerFactory* proxy);

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

  ~PdfHelpBubbleHandlerFactoryAsyncWaiter();

 private:
  PdfHelpBubbleHandlerFactory* const proxy_;
};


class  HelpBubbleHandlerInterceptorForTesting : public HelpBubbleHandler {
  virtual HelpBubbleHandler* GetForwardingInterface() = 0;
  void HelpBubbleButtonPressed(::tracked_element::mojom::TrackedElementIdentifierPtr id, uint8_t button_index) override;
  void HelpBubbleClosed(::tracked_element::mojom::TrackedElementIdentifierPtr id, HelpBubbleClosedReason reason) override;
};
class  HelpBubbleHandlerAsyncWaiter {
 public:
  explicit HelpBubbleHandlerAsyncWaiter(HelpBubbleHandler* proxy);

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

  ~HelpBubbleHandlerAsyncWaiter();

 private:
  HelpBubbleHandler* const proxy_;
};


class  HelpBubbleClientInterceptorForTesting : public HelpBubbleClient {
  virtual HelpBubbleClient* GetForwardingInterface() = 0;
  void ShowHelpBubble(HelpBubbleParamsPtr params) override;
  void ToggleFocusForAccessibility(::tracked_element::mojom::TrackedElementIdentifierPtr id) override;
  void HideHelpBubble(::tracked_element::mojom::TrackedElementIdentifierPtr id) override;
  void ExternalHelpBubbleUpdated(::tracked_element::mojom::TrackedElementIdentifierPtr id, bool shown) override;
};
class  HelpBubbleClientAsyncWaiter {
 public:
  explicit HelpBubbleClientAsyncWaiter(HelpBubbleClient* proxy);

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

  ~HelpBubbleClientAsyncWaiter();

 private:
  HelpBubbleClient* const proxy_;
};




}  // help_bubble::mojom

#endif  // UI_WEBUI_RESOURCES_CR_COMPONENTS_HELP_BUBBLE_HELP_BUBBLE_MOJOM_TEST_UTILS_H_