chromium/ash/webui/eche_app_ui/fake_apps_access_manager.h

// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef ASH_WEBUI_ECHE_APP_UI_FAKE_APPS_ACCESS_MANAGER_H_
#define ASH_WEBUI_ECHE_APP_UI_FAKE_APPS_ACCESS_MANAGER_H_

#include "ash/webui/eche_app_ui/apps_access_manager.h"
#include "chromeos/ash/components/phonehub/multidevice_feature_access_manager.h"

namespace ash::settings {
class MultideviceHandlerTest;
}

namespace ash {
namespace eche_app {

using AccessStatus =
    ash::phonehub::MultideviceFeatureAccessManager::AccessStatus;

class FakeAppsAccessManager : public AppsAccessManager {
 public:
  explicit FakeAppsAccessManager(
      AccessStatus access_status = AccessStatus::kAvailableButNotGranted);
  ~FakeAppsAccessManager() override;

  void SetAppsSetupOperationStatus(AppsAccessSetupOperation::Status new_status);

  using AppsAccessManager::IsSetupOperationInProgress;

  // AppsAccessManager:
  AccessStatus GetAccessStatus() const override;
  void OnSetupRequested() override;

 private:
  friend class ::ash::settings::MultideviceHandlerTest;
  // AppsAccessManager:
  void SetAccessStatusInternal(AccessStatus access_status) override;
  void NotifyAppsAccessCanceled() override;

  AccessStatus access_status_;
};

}  // namespace eche_app
}  // namespace ash

#endif  // ASH_WEBUI_ECHE_APP_UI_FAKE_APPS_ACCESS_MANAGER_H_