// components/omnibox/browser/searchbox.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_OMNIBOX_BROWSER_SEARCHBOX_MOJOM_TEST_UTILS_H_
#define COMPONENTS_OMNIBOX_BROWSER_SEARCHBOX_MOJOM_TEST_UTILS_H_

#include "components/omnibox/browser/searchbox.mojom.h"


namespace searchbox::mojom {


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

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

  ~PageHandlerFactoryAsyncWaiter();

 private:
  PageHandlerFactory* const proxy_;
};


class  PageHandlerInterceptorForTesting : public PageHandler {
  virtual PageHandler* GetForwardingInterface() = 0;
  void OnFocusChanged(bool focused) override;
  void QueryAutocomplete(int32_t query_id, std::optional<int32_t> tab_id, const ::std::u16string& input, bool prevent_inline_autocomplete, uint32_t cursor_position, ::omnibox::SuggestInventory suggest_inventory, bool is_on_focus, const std::string& keyword, InputMethod input_method) override;
  void StopAutocomplete(bool clear_result) override;
  void OpenAutocompleteMatch(uint8_t line, const ::GURL& url, bool are_matches_showing, uint8_t mouse_button, ActionModifiersPtr modifiers, bool via_keyboard) override;
  void SetSmartComposeStats(SmartComposeStatsPtr smart_compose_stats) override;
  void SetPopupSelection(OmniboxPopupSelectionPtr selection) override;
  void OpenPopupSelection(uint32_t result_sequence_id, OmniboxPopupSelectionPtr selection, ::WindowOpenDisposition disposition) override;
  void OnNavigationLikely(uint8_t line, const ::GURL& url, ::omnibox::mojom::NavigationPredictor navigation_predictor) override;
  void DeleteAutocompleteMatch(uint8_t line, const ::GURL& url) override;
  void ActivateKeyword(uint8_t line, const ::GURL& url, ::base::TimeTicks match_selection_timestamp, bool is_mouse_event) override;
  void ExecuteAction(uint8_t line, uint8_t action_index, const ::GURL& url, ::base::TimeTicks match_selection_timestamp, uint8_t mouse_button, bool alt_key, bool ctrl_key, bool meta_key, bool shift_key) override;
  void OnThumbnailRemoved() override;
  void GetCyclingPlaceholderConfig(GetCyclingPlaceholderConfigCallback callback) override;
  void GetRecentTabs(GetRecentTabsCallback callback) override;
  void GetTabPreview(int32_t tab_id, GetTabPreviewCallback callback) override;
  void WaitForTabFaviconLoad(int32_t tab_id, WaitForTabFaviconLoadCallback callback) override;
  void GetInputState(GetInputStateCallback callback) override;
  void NotifySessionStarted() override;
  void NotifySessionAbandoned() override;
  void AddFileContext(SelectedFileInfoPtr file_info, ::mojo_base::BigBuffer file_bytes, AddFileContextCallback callback) override;
  void AddTabContext(int32_t tab_id, bool delay_upload, TabAttachmentSource source, AddTabContextCallback callback) override;
  void DeleteContext(const ::base::UnguessableToken& token, bool from_automatic_chip) override;
  void DeleteTabContext(int32_t tab_id) override;
  void ClearFiles(bool should_block_auto_suggested_tabs) override;
  void SubmitQuery(const std::string& query_text, uint8_t mouse_button, bool alt_key, bool ctrl_key, bool meta_key, bool shift_key, bool is_voice_search) override;
  void OpenLensSearch() override;
  void SetActiveToolMode(::omnibox::ToolMode tool, bool is_set_by_aim) override;
  void SetActiveModelMode(::omnibox::ModelMode model, bool is_set_by_aim) override;
  void ActivateMetricsFunnel(const std::string& funnel_name) override;
  void RecordToolSelectionAction(::omnibox::ToolMode tool) override;
  void RecordModelSelectionAction(::omnibox::ModelMode model) override;
  void GetDriveDisclaimerStatus(GetDriveDisclaimerStatusCallback callback) override;
  void OnDriveDisclaimerAccepted() override;
  void OnDriveUploadClicked(OnDriveUploadClickedCallback callback) override;
  void OpenProfilePicker() override;
  void ShowScreenshotMenu(const ::gfx::Rect& anchor_rect) override;
  void StartScreenshare(bool prefer_entire_screen, StartScreenshareCallback callback) override;
  void CaptureRegionScreenshot(CaptureRegionScreenshotCallback callback) override;
  void GetPageClassification(GetPageClassificationCallback callback) override;
};
class  PageHandlerAsyncWaiter {
 public:
  explicit PageHandlerAsyncWaiter(PageHandler* proxy);

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

  ~PageHandlerAsyncWaiter();
  void GetCyclingPlaceholderConfig(
      PlaceholderConfigPtr* out_config);
  PlaceholderConfigPtr GetCyclingPlaceholderConfig();
  void GetRecentTabs(
      std::vector<TabInfoPtr>* out_tabs);
  std::vector<TabInfoPtr> GetRecentTabs();
  void GetTabPreview(
      int32_t tab_id, std::optional<std::string>* out_preview_data_url);
  std::optional<std::string> GetTabPreview(int32_t tab_id);
  void WaitForTabFaviconLoad(
      int32_t tab_id, std::optional<::GURL>* out_favicon_data_url);
  std::optional<::GURL> WaitForTabFaviconLoad(int32_t tab_id);
  void GetInputState(
      std::optional<::omnibox::InputState>* out_state);
  std::optional<::omnibox::InputState> GetInputState();
  void AddFileContext(
      SelectedFileInfoPtr file_info, ::mojo_base::BigBuffer file_bytes,
base::expected<
  ::base::UnguessableToken,
  ::contextual_search::ContextUploadErrorType>* out_result);
  PageHandler_AddFileContext_ResponseParam_ResultPtr AddFileContext(SelectedFileInfoPtr file_info, ::mojo_base::BigBuffer file_bytes);
  void AddTabContext(
      int32_t tab_id, bool delay_upload, TabAttachmentSource source,
base::expected<
  ::base::UnguessableToken,
  ::contextual_search::ContextUploadErrorType>* out_result);
  PageHandler_AddTabContext_ResponseParam_ResultPtr AddTabContext(int32_t tab_id, bool delay_upload, TabAttachmentSource source);
  void GetDriveDisclaimerStatus(
      DriveDisclaimerStatus* out_status);
  DriveDisclaimerStatus GetDriveDisclaimerStatus();
  void OnDriveUploadClicked(
      DriveUploadResponsePtr* out_response);
  DriveUploadResponsePtr OnDriveUploadClicked();
  void StartScreenshare(
      bool prefer_entire_screen, std::optional<::base::UnguessableToken>* out_token);
  std::optional<::base::UnguessableToken> StartScreenshare(bool prefer_entire_screen);
  void CaptureRegionScreenshot(
      std::optional<::base::UnguessableToken>* out_token);
  std::optional<::base::UnguessableToken> CaptureRegionScreenshot();
  void GetPageClassification(
      std::string* out_metricSource);
  std::string GetPageClassification();

 private:
  PageHandler* const proxy_;
};


class  PageInterceptorForTesting : public Page {
  virtual Page* GetForwardingInterface() = 0;
  void AutocompleteResultChanged(AutocompleteResultPtr result) override;
  void UpdateSelection(OmniboxPopupSelectionPtr old_selection, OmniboxPopupSelectionPtr selection) override;
  void StepSelection(SelectionDirection direction, SelectionStep step) override;
  void OpenCurrentSelection(::WindowOpenDisposition disposition) override;
  void SetAimButtonVisible(bool visible) override;
  void SetAimButtonConfig(const std::string& text, const std::string& tooltip, const std::string& a11y_label, const ::GURL& icon_url) override;
  void SetInputText(const std::string& input) override;
  void SetThumbnail(const std::string& thumbnail_url, bool is_deletable) override;
  void OnContextualInputStatusChanged(const ::base::UnguessableToken& token, ::contextual_search::ContextUploadStatus status, std::optional<::contextual_search::ContextUploadErrorType> error_type) override;
  void OnTabStripChanged() override;
  void OnInputStateChanged(const ::omnibox::InputState& input_state) override;
  void AddFileContext(const ::base::UnguessableToken& token, SelectedFileInfoPtr file_info) override;
  void UpdateAutoSuggestedTabContext(TabInfoPtr tab, const std::optional<std::string>& invocation_source) override;
  void UpdateLensSearchEligibility(bool eligible) override;
  void UpdateContentSharingPolicy(bool enabled) override;
  void UpdateAimPopupEligibility(bool eligible) override;
  void OnPermissionPromptChanged(bool is_showing, const ::gfx::Size& prompt_size) override;
  void SetRestoredTabIds(const std::vector<int32_t>& ids) override;
  void SetAimThreadRestoredTabs(std::vector<TabInfoPtr> tabs) override;
  void OnScreenshotMenuClosed() override;
};
class  PageAsyncWaiter {
 public:
  explicit PageAsyncWaiter(Page* proxy);

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

  ~PageAsyncWaiter();

 private:
  Page* const proxy_;
};




}  // searchbox::mojom

#endif  // COMPONENTS_OMNIBOX_BROWSER_SEARCHBOX_MOJOM_TEST_UTILS_H_