// chrome/browser/glic/host/glic_webui.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 CHROME_BROWSER_GLIC_HOST_GLIC_WEBUI_MOJOM_TEST_UTILS_H_
#define CHROME_BROWSER_GLIC_HOST_GLIC_WEBUI_MOJOM_TEST_UTILS_H_

#include "chrome/browser/glic/host/glic_webui.mojom.h"


namespace glic::mojom {


class  PreloadPageInterceptorForTesting : public PreloadPage {
  virtual PreloadPage* GetForwardingInterface() = 0;
  void SetProfileReadyState(ProfileReadyState ready_state) override;
  void OnGuestNavigationStarted() override;
  void OnGuestNavigated(const ::GURL& url, bool is_api_allowed, GuestPageType page_type, bool is_initial_commit) override;
  void OnGuestProcessGone() override;
  void WebClientStateChanged(WebClientState state) override;
};
class  PreloadPageAsyncWaiter {
 public:
  explicit PreloadPageAsyncWaiter(PreloadPage* proxy);

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

  ~PreloadPageAsyncWaiter();

 private:
  PreloadPage* const proxy_;
};


class  PageInterceptorForTesting : public Page {
  virtual Page* GetForwardingInterface() = 0;
  void IntentToShow() override;
  void SetProfileReadyState(ProfileReadyState ready_state) override;
  void UpdatePageState(::glic::mojom::PanelStateKind panelStateKind) override;
  void ClientReadyStateChanged(bool ready) override;
  void Zoom(ZoomAction action) override;
};
class  PageAsyncWaiter {
 public:
  explicit PageAsyncWaiter(Page* proxy);

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

  ~PageAsyncWaiter();

 private:
  Page* const proxy_;
};


class  GlicPreloadHandlerInterceptorForTesting : public GlicPreloadHandler {
  virtual GlicPreloadHandler* GetForwardingInterface() = 0;
  void PrepareForClient(PrepareForClientCallback callback) override;
};
class  GlicPreloadHandlerAsyncWaiter {
 public:
  explicit GlicPreloadHandlerAsyncWaiter(GlicPreloadHandler* proxy);

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

  ~GlicPreloadHandlerAsyncWaiter();
  void PrepareForClient(
      PrepareForClientResult* out_result);
  PrepareForClientResult PrepareForClient();

 private:
  GlicPreloadHandler* const proxy_;
};


class  GlicPreloadHandlerFactoryInterceptorForTesting : public GlicPreloadHandlerFactory {
  virtual GlicPreloadHandlerFactory* GetForwardingInterface() = 0;
  void CreatePreloadHandler(::mojo::PendingReceiver<GlicPreloadHandler> receiver, ::mojo::PendingRemote<PreloadPage> page) override;
};
class  GlicPreloadHandlerFactoryAsyncWaiter {
 public:
  explicit GlicPreloadHandlerFactoryAsyncWaiter(GlicPreloadHandlerFactory* proxy);

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

  ~GlicPreloadHandlerFactoryAsyncWaiter();

 private:
  GlicPreloadHandlerFactory* const proxy_;
};


class  PageHandlerFactoryInterceptorForTesting : public PageHandlerFactory {
  virtual PageHandlerFactory* GetForwardingInterface() = 0;
  void CreatePageHandler(::mojo::PendingReceiver<PageHandler> receiver, ::mojo::PendingRemote<Page> page, CreatePageHandlerCallback callback) override;
};
class  PageHandlerFactoryAsyncWaiter {
 public:
  explicit PageHandlerFactoryAsyncWaiter(PageHandlerFactory* proxy);

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

  ~PageHandlerFactoryAsyncWaiter();
  void CreatePageHandler(
      ::mojo::PendingReceiver<PageHandler> receiver, ::mojo::PendingRemote<Page> page, std::string* out_instance_id);
  std::string CreatePageHandler(::mojo::PendingReceiver<PageHandler> receiver, ::mojo::PendingRemote<Page> page);

 private:
  PageHandlerFactory* const proxy_;
};


class  PageHandlerInterceptorForTesting : public PageHandler {
  virtual PageHandler* GetForwardingInterface() = 0;
  void CreateWebClient(::mojo::PendingReceiver<::glic::mojom::WebClientHandler> web_client_receiver) override;
  void PrepareForClient(PrepareForClientCallback callback) override;
  void WebviewCommitted(const ::GURL& url) override;
  void OnZoomLevelChange(double zoom_factor) override;
  void ClosePanel(ClosePanelCallback callback) override;
  void OpenHelpCenterTopicAndClosePanel(HelpCenterTopic topic) override;
  void OpenProfilePickerAndClosePanel() override;
  void OpenDisabledByAdminLinkAndClosePanel() override;
  void SignInAndClosePanel() override;
  void ResizeWidget(const ::gfx::Size& size, ::base::TimeDelta duration, ResizeWidgetCallback callback) override;
  void EnableDragResize(bool enabled) override;
  void OnWebUiStateChanged(WebUiState new_state) override;
};
class  PageHandlerAsyncWaiter {
 public:
  explicit PageHandlerAsyncWaiter(PageHandler* proxy);

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

  ~PageHandlerAsyncWaiter();
  void PrepareForClient(
      PrepareForClientResult* out_result);
  PrepareForClientResult PrepareForClient();
  void ClosePanel(
      );
  
  void ResizeWidget(
      const ::gfx::Size& size, ::base::TimeDelta duration);
  

 private:
  PageHandler* const proxy_;
};




}  // glic::mojom

#endif  // CHROME_BROWSER_GLIC_HOST_GLIC_WEBUI_MOJOM_TEST_UTILS_H_