// services/device/public/mojom/screen_orientation.mojom-blink-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 SERVICES_DEVICE_PUBLIC_MOJOM_SCREEN_ORIENTATION_MOJOM_BLINK_TEST_UTILS_H_
#define SERVICES_DEVICE_PUBLIC_MOJOM_SCREEN_ORIENTATION_MOJOM_BLINK_TEST_UTILS_H_

#include "services/device/public/mojom/screen_orientation.mojom-blink.h"
#include "third_party/blink/public/platform/web_common.h"


namespace device::mojom::blink {


class BLINK_PLATFORM_EXPORT ScreenOrientationInterceptorForTesting : public ScreenOrientation {
  virtual ScreenOrientation* GetForwardingInterface() = 0;
  void LockOrientation(::device::mojom::blink::ScreenOrientationLockType orientation, LockOrientationCallback callback) override;
  void UnlockOrientation() override;
};
class BLINK_PLATFORM_EXPORT ScreenOrientationAsyncWaiter {
 public:
  explicit ScreenOrientationAsyncWaiter(ScreenOrientation* proxy);

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

  ~ScreenOrientationAsyncWaiter();
  void LockOrientation(
      ::device::mojom::blink::ScreenOrientationLockType orientation, ::device::mojom::blink::ScreenOrientationLockResult* out_result);
  ::device::mojom::blink::ScreenOrientationLockResult LockOrientation(::device::mojom::blink::ScreenOrientationLockType orientation);

 private:
  ScreenOrientation* const proxy_;
};


class BLINK_PLATFORM_EXPORT ScreenOrientationListenerInterceptorForTesting : public ScreenOrientationListener {
  virtual ScreenOrientationListener* GetForwardingInterface() = 0;
  void IsAutoRotateEnabledByUser(IsAutoRotateEnabledByUserCallback callback) override;
};
class BLINK_PLATFORM_EXPORT ScreenOrientationListenerAsyncWaiter {
 public:
  explicit ScreenOrientationListenerAsyncWaiter(ScreenOrientationListener* proxy);

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

  ~ScreenOrientationListenerAsyncWaiter();
  void IsAutoRotateEnabledByUser(
      bool* out_enabled);
  bool IsAutoRotateEnabledByUser();

 private:
  ScreenOrientationListener* const proxy_;
};




}  // device::mojom::blink

#endif  // SERVICES_DEVICE_PUBLIC_MOJOM_SCREEN_ORIENTATION_MOJOM_BLINK_TEST_UTILS_H_