// chrome/browser/glic/host/glic_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_GLIC_HOST_GLIC_INTERNALS_MOJOM_TEST_UTILS_H_
#define CHROME_BROWSER_GLIC_HOST_GLIC_INTERNALS_MOJOM_TEST_UTILS_H_

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


namespace glic::mojom {


class  InternalsPageHandlerInterceptorForTesting : public InternalsPageHandler {
  virtual InternalsPageHandler* GetForwardingInterface() = 0;
  void GetInternalsDataPayload(GetInternalsDataPayloadCallback callback) override;
  void SetGuestUrlPresets(const ::GURL& autopush, const ::GURL& staging, const ::GURL& preprod, const ::GURL& prod) override;
  void TriggerInvokeFromInternalsAction(TriggerInvokeFromInternalsOptionsPtr options, TriggerInvokeFromInternalsActionCallback callback) override;
  void GetOpenTabs(GetOpenTabsCallback callback) override;
  void SetWebContinuityOriginatingHostUrlPreset(const ::GURL& web_continuity_originating_host_url) override;
  void SetShowErrorAllowed(bool allowed) override;
  void ShowExperimentalOptIn() override;
  void RevokeExperimentalTriggeringConsent() override;
  void RevokeGlicConsent() override;
  void RevokeActuationConsent() override;
};
class  InternalsPageHandlerAsyncWaiter {
 public:
  explicit InternalsPageHandlerAsyncWaiter(InternalsPageHandler* proxy);

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

  ~InternalsPageHandlerAsyncWaiter();
  void GetInternalsDataPayload(
      InternalsDataPayloadPtr* out_internals_data);
  InternalsDataPayloadPtr GetInternalsDataPayload();
  void TriggerInvokeFromInternalsAction(
      TriggerInvokeFromInternalsOptionsPtr options, bool* out_success, std::string* out_error_message);
  
  void GetOpenTabs(
      std::vector<std::string>* out_tab_titles);
  std::vector<std::string> GetOpenTabs();

 private:
  InternalsPageHandler* const proxy_;
};


class  InternalsPageHandlerFactoryInterceptorForTesting : public InternalsPageHandlerFactory {
  virtual InternalsPageHandlerFactory* GetForwardingInterface() = 0;
  void CreateInternalsPageHandler(::mojo::PendingReceiver<InternalsPageHandler> receiver) override;
};
class  InternalsPageHandlerFactoryAsyncWaiter {
 public:
  explicit InternalsPageHandlerFactoryAsyncWaiter(InternalsPageHandlerFactory* proxy);

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

  ~InternalsPageHandlerFactoryAsyncWaiter();

 private:
  InternalsPageHandlerFactory* const proxy_;
};




}  // glic::mojom

#endif  // CHROME_BROWSER_GLIC_HOST_GLIC_INTERNALS_MOJOM_TEST_UTILS_H_