fake_feature_state_manager.h 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. // Copyright 2018 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_SERVICES_MULTIDEVICE_SETUP_FAKE_FEATURE_STATE_MANAGER_H_
  5. #define ASH_SERVICES_MULTIDEVICE_SETUP_FAKE_FEATURE_STATE_MANAGER_H_
  6. #include "ash/services/multidevice_setup/feature_state_manager.h"
  7. #include "ash/services/multidevice_setup/public/mojom/multidevice_setup.mojom.h"
  8. namespace ash {
  9. namespace multidevice_setup {
  10. // Test FeatureStateManager implementation. This class initializes all features
  11. // to be state mojom::FeatureState::kUnavailableNoVerifiedHost_NoEligibleHosts.
  12. class FakeFeatureStateManager : public FeatureStateManager {
  13. public:
  14. FakeFeatureStateManager();
  15. FakeFeatureStateManager(const FakeFeatureStateManager&) = delete;
  16. FakeFeatureStateManager& operator=(const FakeFeatureStateManager&) = delete;
  17. ~FakeFeatureStateManager() override;
  18. mojom::FeatureState GetFeatureState(mojom::Feature feature);
  19. void SetFeatureState(mojom::Feature feature, mojom::FeatureState state);
  20. void SetFeatureStates(const FeatureStatesMap& feature_states_map);
  21. using FeatureStateManager::NotifyFeatureStatesChange;
  22. private:
  23. // FeatureStateManager:
  24. FeatureStatesMap GetFeatureStates() override;
  25. void PerformSetFeatureEnabledState(mojom::Feature feature,
  26. bool enabled) override;
  27. FeatureStatesMap feature_states_map_;
  28. };
  29. // Test FeatureStateManager::Observer implementation.
  30. class FakeFeatureStateManagerObserver : public FeatureStateManager::Observer {
  31. public:
  32. FakeFeatureStateManagerObserver();
  33. FakeFeatureStateManagerObserver(const FakeFeatureStateManagerObserver&) =
  34. delete;
  35. FakeFeatureStateManagerObserver& operator=(
  36. const FakeFeatureStateManagerObserver&) = delete;
  37. ~FakeFeatureStateManagerObserver() override;
  38. const std::vector<FeatureStateManager::FeatureStatesMap>&
  39. feature_state_updates() const {
  40. return feature_state_updates_;
  41. }
  42. private:
  43. // FeatureStateManager::Observer:
  44. void OnFeatureStatesChange(
  45. const FeatureStateManager::FeatureStatesMap& feature_states_map) override;
  46. std::vector<FeatureStateManager::FeatureStatesMap> feature_state_updates_;
  47. };
  48. } // namespace multidevice_setup
  49. } // namespace ash
  50. #endif // ASH_SERVICES_MULTIDEVICE_SETUP_FAKE_FEATURE_STATE_MANAGER_H_