fake_multidevice_feature_access_manager.h 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. // Copyright 2020 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #ifndef ASH_COMPONENTS_PHONEHUB_FAKE_MULTIDEVICE_FEATURE_ACCESS_MANAGER_H_
  5. #define ASH_COMPONENTS_PHONEHUB_FAKE_MULTIDEVICE_FEATURE_ACCESS_MANAGER_H_
  6. #include <vector>
  7. #include "ash/components/phonehub/multidevice_feature_access_manager.h"
  8. #include "ash/services/multidevice_setup/public/mojom/multidevice_setup.mojom.h"
  9. namespace ash {
  10. namespace phonehub {
  11. namespace {
  12. using multidevice_setup::mojom::Feature;
  13. } // namespace
  14. class FakeMultideviceFeatureAccessManager
  15. : public MultideviceFeatureAccessManager {
  16. public:
  17. explicit FakeMultideviceFeatureAccessManager(
  18. AccessStatus notification_access_status =
  19. AccessStatus::kAvailableButNotGranted,
  20. AccessStatus camera_roll_access_status =
  21. AccessStatus::kAvailableButNotGranted,
  22. AccessStatus apps_access_status = AccessStatus::kAvailableButNotGranted,
  23. AccessProhibitedReason reason = AccessProhibitedReason::kWorkProfile);
  24. ~FakeMultideviceFeatureAccessManager() override;
  25. using MultideviceFeatureAccessManager::IsCombinedSetupOperationInProgress;
  26. using MultideviceFeatureAccessManager::IsNotificationSetupOperationInProgress;
  27. void SetNotificationAccessStatusInternal(
  28. AccessStatus notification_access_status,
  29. AccessProhibitedReason reason) override;
  30. AccessStatus GetNotificationAccessStatus() const override;
  31. void SetNotificationSetupOperationStatus(
  32. NotificationAccessSetupOperation::Status new_status);
  33. AccessProhibitedReason GetNotificationAccessProhibitedReason() const override;
  34. bool HasMultideviceFeatureSetupUiBeenDismissed() const override;
  35. void DismissSetupRequiredUi() override;
  36. void ResetHasMultideviceFeatureSetupUiBeenDismissed();
  37. void SetCameraRollAccessStatusInternal(
  38. AccessStatus camera_roll_access_status) override;
  39. AccessStatus GetCameraRollAccessStatus() const override;
  40. void SetCombinedSetupOperationStatus(
  41. CombinedAccessSetupOperation::Status new_status);
  42. AccessStatus GetAppsAccessStatus() const override;
  43. bool IsAccessRequestAllowed(Feature feature) override;
  44. // Test-only.
  45. void SetAppsAccessStatusInternal(AccessStatus apps_access_status);
  46. void SetFeatureReadyForAccess(Feature feature);
  47. void SetFeatureSetupRequestSupportedInternal(bool supported) override;
  48. bool GetFeatureSetupRequestSupported() const override;
  49. private:
  50. friend class MultideviceSetupStateUpdaterTest;
  51. AccessStatus notification_access_status_;
  52. AccessStatus camera_roll_access_status_;
  53. AccessStatus apps_access_status_;
  54. AccessProhibitedReason access_prohibited_reason_;
  55. bool has_notification_setup_ui_been_dismissed_ = false;
  56. std::vector<Feature> ready_for_access_features_;
  57. bool is_feature_setup_request_supported_ = false;
  58. };
  59. } // namespace phonehub
  60. } // namespace ash
  61. // TODO(https://crbug.com/1164001): remove after the migration is finished.
  62. namespace chromeos {
  63. namespace phonehub {
  64. using ::ash::phonehub::FakeMultideviceFeatureAccessManager;
  65. }
  66. } // namespace chromeos
  67. #endif // ASH_COMPONENTS_PHONEHUB_FAKE_MULTIDEVICE_FEATURE_ACCESS_MANAGER_H_