// chrome/browser/contextual_tasks/contextual_tasks.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_CONTEXTUAL_TASKS_CONTEXTUAL_TASKS_MOJOM_TEST_UTILS_H_
#define CHROME_BROWSER_CONTEXTUAL_TASKS_CONTEXTUAL_TASKS_MOJOM_TEST_UTILS_H_

#include "chrome/browser/contextual_tasks/contextual_tasks.mojom.h"


namespace contextual_tasks::mojom {


class  PageHandlerInterceptorForTesting : public PageHandler {
  virtual PageHandler* GetForwardingInterface() = 0;
  void GetThreadUrl(GetThreadUrlCallback callback) override;
  void GetUrlForTask(const ::base::Uuid& uuid, GetUrlForTaskCallback callback) override;
  void SetTaskId(const ::base::Uuid& uuid) override;
  void IsZeroState(const ::GURL& url, IsZeroStateCallback callback) override;
  void IsAiPage(const ::GURL& url, IsAiPageCallback callback) override;
  void IsPendingErrorPage(const ::base::Uuid& task_id, IsPendingErrorPageCallback callback) override;
  void IsEmbeddedPageErrorDocument(IsEmbeddedPageErrorDocumentCallback callback) override;
  void SetThreadTitle(const std::string& title) override;
  void CloseSidePanel() override;
  void ShowThreadHistory() override;
  void IsShownInTab(IsShownInTabCallback callback) override;
  void OpenMyActivityUi() override;
  void OpenFeedbackUi() override;
  void OpenOnboardingHelpUi() override;
  void OpenOverflowMenuHelpUi() override;
  void OpenUrl(const ::GURL& url, ::WindowOpenDisposition disposition) override;
  void MoveTaskUiToNewTab() override;
  void OnTabClickedFromSourcesMenu(int32_t tab_id, const ::GURL& url) override;
  void OnFileClickedFromSourcesMenu(const ::GURL& url) override;
  void OnImageClickedFromSourcesMenu(const ::GURL& url) override;
  void OnWebviewMessage(const std::vector<uint8_t>& message) override;
  void GetCommonSearchParams(bool is_dark_mode, bool is_side_panel, GetCommonSearchParamsCallback callback) override;
  void OnboardingTooltipDismissed() override;
  void LensSearchTooltipDismissed() override;
  void AskGTooltipDismissed() override;
  void ReopenTabs() override;
  void PinSidePanel() override;
  void UnpinSidePanel() override;
  void OnContextMenuOpened() override;
  void NotifySmartTabSharingTryItIphResult(bool accepted) override;
  void NotifySmartTabSharingDefaultOnIphResult(bool accepted) override;
  void RegisterWindow(const ::contextual_tasks::ContextualTaskId& task_id, const ::GURL& url, const ::contextual_tasks::ContextualWindowId& window_id) override;
  void CloseWindow(const ::contextual_tasks::ContextualWindowId& window_id) override;
  void MaybeTriggerPinningPromo() override;
  void ShowPageInfoBubble(bool is_pointer_interaction) override;
  void OnLogoPointerDown() override;
  void CreateNewThread() override;
};
class  PageHandlerAsyncWaiter {
 public:
  explicit PageHandlerAsyncWaiter(PageHandler* proxy);

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

  ~PageHandlerAsyncWaiter();
  void GetThreadUrl(
      ::GURL* out_url);
  ::GURL GetThreadUrl();
  void GetUrlForTask(
      const ::base::Uuid& uuid, ::GURL* out_url);
  ::GURL GetUrlForTask(const ::base::Uuid& uuid);
  void IsZeroState(
      const ::GURL& url, bool* out_is_zero_state);
  bool IsZeroState(const ::GURL& url);
  void IsAiPage(
      const ::GURL& url, bool* out_is_ai_page);
  bool IsAiPage(const ::GURL& url);
  void IsPendingErrorPage(
      const ::base::Uuid& task_id, bool* out_is_pending_error_page);
  bool IsPendingErrorPage(const ::base::Uuid& task_id);
  void IsEmbeddedPageErrorDocument(
      bool* out_is_error_document);
  bool IsEmbeddedPageErrorDocument();
  void IsShownInTab(
      bool* out_is_in_tab);
  bool IsShownInTab();
  void GetCommonSearchParams(
      bool is_dark_mode, bool is_side_panel, base::flat_map<std::string, std::string>* out_params);
  base::flat_map<std::string, std::string> GetCommonSearchParams(bool is_dark_mode, bool is_side_panel);

 private:
  PageHandler* const proxy_;
};


class  PageInterceptorForTesting : public Page {
  virtual Page* GetForwardingInterface() = 0;
  void SetThreadTitle(const std::string& title) override;
  void SetTaskDetails(const ::base::Uuid& uuid, const ::GURL& url, bool replace_navigation_entry) override;
  void OnSidePanelStateChanged() override;
  void PostAimMessage(const std::vector<uint8_t>& message) override;
  void OnHandshakeComplete() override;
  void SetOAuthToken(const std::string& oauth_token) override;
  void OnCookieSyncCompleted() override;
  void OnContextUpdated(std::vector<ContextInfoPtr> context) override;
  void HideInput() override;
  void RestoreInput() override;
  void EnterBasicMode() override;
  void ExitBasicMode() override;
  void InjectInput(InjectedInputPtr input) override;
  void RemoveInjectedInput(const ::base::UnguessableToken& file_token) override;
  void OnZeroStateChange(bool is_zero_state) override;
  void SetInNlm(bool in_nlm) override;
  void OnAiPageStatusChanged(bool is_ai_page) override;
  void OnLensOverlayStateChanged(bool is_showing, bool maybe_show_overlay_hint_text) override;
  void ShowErrorPage() override;
  void HideErrorPage() override;
  void ShowOauthErrorDialog() override;
  void UpdateComposeboxPosition(ComposeboxPositionPtr position) override;
  void LockInput() override;
  void UnlockInput() override;
  void SetShowReopenTabs(bool show) override;
  void OnSidePanelPinStateChanged(bool is_pinned) override;
  void SetExpandButtonEnabled(bool enabled) override;
  void TurnOnSmartTabSharing() override;
  void ShowSmartTabSharingTryItIph() override;
  void ShowSmartTabSharingDefaultOnIph() override;
  void OnWindowClosed(const ::contextual_tasks::ContextualWindowId& window_id) override;
};
class  PageAsyncWaiter {
 public:
  explicit PageAsyncWaiter(Page* proxy);

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

  ~PageAsyncWaiter();

 private:
  Page* const proxy_;
};


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

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

  ~PageHandlerFactoryAsyncWaiter();

 private:
  PageHandlerFactory* const proxy_;
};


class  ExtensionPageHandlerFactoryInterceptorForTesting : public ExtensionPageHandlerFactory {
  virtual ExtensionPageHandlerFactory* GetForwardingInterface() = 0;
  void CreateExtensionPageHandler(::mojo::PendingRemote<ExtensionPage> page, ::mojo::PendingReceiver<ExtensionPageHandler> receiver) override;
};
class  ExtensionPageHandlerFactoryAsyncWaiter {
 public:
  explicit ExtensionPageHandlerFactoryAsyncWaiter(ExtensionPageHandlerFactory* proxy);

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

  ~ExtensionPageHandlerFactoryAsyncWaiter();

 private:
  ExtensionPageHandlerFactory* const proxy_;
};


class  ExtensionPageHandlerInterceptorForTesting : public ExtensionPageHandler {
  virtual ExtensionPageHandler* GetForwardingInterface() = 0;
  void GetHandshakeMessage(GetHandshakeMessageCallback callback) override;
  void OnWebviewMessage(const std::vector<uint8_t>& message) override;
  void SetTaskId(const ::base::Uuid& uuid) override;
};
class  ExtensionPageHandlerAsyncWaiter {
 public:
  explicit ExtensionPageHandlerAsyncWaiter(ExtensionPageHandler* proxy);

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

  ~ExtensionPageHandlerAsyncWaiter();
  void GetHandshakeMessage(
      ::mojo_base::ProtoWrapper* out_message);
  ::mojo_base::ProtoWrapper GetHandshakeMessage();

 private:
  ExtensionPageHandler* const proxy_;
};


class  ExtensionPageInterceptorForTesting : public ExtensionPage {
  virtual ExtensionPage* GetForwardingInterface() = 0;
  void PostAimMessage(const std::vector<uint8_t>& message) override;
  void OnHandshakeComplete() override;
  void HideInput() override;
  void RestoreInput() override;
  void EnterBasicMode() override;
  void ExitBasicMode() override;
  void LockInput() override;
  void UnlockInput() override;
};
class  ExtensionPageAsyncWaiter {
 public:
  explicit ExtensionPageAsyncWaiter(ExtensionPage* proxy);

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

  ~ExtensionPageAsyncWaiter();

 private:
  ExtensionPage* const proxy_;
};




}  // contextual_tasks::mojom

#endif  // CHROME_BROWSER_CONTEXTUAL_TASKS_CONTEXTUAL_TASKS_MOJOM_TEST_UTILS_H_