// content/common/input/input_injector.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 CONTENT_COMMON_INPUT_INPUT_INJECTOR_MOJOM_TEST_UTILS_H_
#define CONTENT_COMMON_INPUT_INPUT_INJECTOR_MOJOM_TEST_UTILS_H_

#include "content/common/input/input_injector.mojom.h"
#include "content/common/content_export.h"


namespace content::mojom {


class CONTENT_EXPORT InputInjectorInterceptorForTesting : public InputInjector {
  virtual InputInjector* GetForwardingInterface() = 0;
  void QueueSyntheticSmoothDrag(const ::content::SyntheticSmoothDragGestureParams& drag, QueueSyntheticSmoothDragCallback callback) override;
  void QueueSyntheticSmoothScroll(const ::content::SyntheticSmoothScrollGestureParams& scroll, QueueSyntheticSmoothScrollCallback callback) override;
  void QueueSyntheticPinch(const ::content::SyntheticPinchGestureParams& pinch, QueueSyntheticPinchCallback callback) override;
  void QueueSyntheticTap(const ::content::SyntheticTapGestureParams& tap, QueueSyntheticTapCallback callback) override;
  void QueueSyntheticPointerAction(const ::content::SyntheticPointerActionListParams& pointer_action, QueueSyntheticPointerActionCallback callback) override;
};
class CONTENT_EXPORT InputInjectorAsyncWaiter {
 public:
  explicit InputInjectorAsyncWaiter(InputInjector* proxy);

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

  ~InputInjectorAsyncWaiter();
  void QueueSyntheticSmoothDrag(
      const ::content::SyntheticSmoothDragGestureParams& drag);
  
  void QueueSyntheticSmoothScroll(
      const ::content::SyntheticSmoothScrollGestureParams& scroll);
  
  void QueueSyntheticPinch(
      const ::content::SyntheticPinchGestureParams& pinch);
  
  void QueueSyntheticTap(
      const ::content::SyntheticTapGestureParams& tap);
  
  void QueueSyntheticPointerAction(
      const ::content::SyntheticPointerActionListParams& pointer_action);
  

 private:
  InputInjector* const proxy_;
};




}  // content::mojom

#endif  // CONTENT_COMMON_INPUT_INPUT_INJECTOR_MOJOM_TEST_UTILS_H_