// chrome/browser/ui/webui/omnibox/omnibox_internals.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_UI_WEBUI_OMNIBOX_OMNIBOX_INTERNALS_MOJOM_TEST_UTILS_H_
#define CHROME_BROWSER_UI_WEBUI_OMNIBOX_OMNIBOX_INTERNALS_MOJOM_TEST_UTILS_H_

#include "chrome/browser/ui/webui/omnibox/omnibox_internals.mojom.h"


namespace mojom {


class  OmniboxPageHandlerInterceptorForTesting : public OmniboxPageHandler {
  virtual OmniboxPageHandler* GetForwardingInterface() = 0;
  void SetClientPage(::mojo::PendingRemote<OmniboxPage> page) override;
  void StartOmniboxQuery(const std::string& input_string, bool reset_autocomplete_controller, int32_t cursor_position, bool zero_suggest, bool prevent_inline_autocomplete, bool in_keyword_mode, const std::string& current_url, int32_t page_classification) override;
  void GetMlModelVersion(GetMlModelVersionCallback callback) override;
  void StartMl(const ::AutocompleteMatch::ScoringSignals& signals, StartMlCallback callback) override;
};
class  OmniboxPageHandlerAsyncWaiter {
 public:
  explicit OmniboxPageHandlerAsyncWaiter(OmniboxPageHandler* proxy);

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

  ~OmniboxPageHandlerAsyncWaiter();
  void GetMlModelVersion(
      int32_t* out_version);
  int32_t GetMlModelVersion();
  void StartMl(
      const ::AutocompleteMatch::ScoringSignals& signals, float* out_score);
  float StartMl(const ::AutocompleteMatch::ScoringSignals& signals);

 private:
  OmniboxPageHandler* const proxy_;
};


class  OmniboxPageInterceptorForTesting : public OmniboxPage {
  virtual OmniboxPage* GetForwardingInterface() = 0;
  void HandleNewAutocompleteQuery(AutocompleteControllerType autocomplete_controller_type, const std::string& input_text) override;
  void HandleNewAutocompleteResponse(AutocompleteControllerType autocomplete_controller_type, OmniboxResponsePtr response) override;
  void HandleNewMlResponse(AutocompleteControllerType autocomplete_controller_type, const std::string& input_text, const std::vector<::AutocompleteMatchWrapper>& matches) override;
  void HandleAnswerIconImageData(AutocompleteControllerType autocomplete_controller_type, const ::GURL& image_url, const std::string& image_data) override;
};
class  OmniboxPageAsyncWaiter {
 public:
  explicit OmniboxPageAsyncWaiter(OmniboxPage* proxy);

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

  ~OmniboxPageAsyncWaiter();

 private:
  OmniboxPage* const proxy_;
};




}  // mojom

#endif  // CHROME_BROWSER_UI_WEBUI_OMNIBOX_OMNIBOX_INTERNALS_MOJOM_TEST_UTILS_H_