// webui_factory.test-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 WEBUI_FACTORY_TEST_MOJOM_TEST_UTILS_H_
#define WEBUI_FACTORY_TEST_MOJOM_TEST_UTILS_H_

#include "webui_factory.test-mojom.h"


namespace golden {


class  PageInterceptorForTesting : public Page {
  virtual Page* GetForwardingInterface() = 0;
  void OnSomethingHappened() override;
};
class  PageAsyncWaiter {
 public:
  explicit PageAsyncWaiter(Page* proxy);

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

  ~PageAsyncWaiter();

 private:
  Page* const proxy_;
};


class  PageHandlerInterceptorForTesting : public PageHandler {
  virtual PageHandler* GetForwardingInterface() = 0;
  void DoSomething() override;
};
class  PageHandlerAsyncWaiter {
 public:
  explicit PageHandlerAsyncWaiter(PageHandler* proxy);

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

  ~PageHandlerAsyncWaiter();

 private:
  PageHandler* const proxy_;
};


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

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

  ~WebUiPageHandlerFactoryAsyncWaiter();

 private:
  WebUiPageHandlerFactory* const proxy_;
};




}  // golden

#endif  // WEBUI_FACTORY_TEST_MOJOM_TEST_UTILS_H_