fake_feature_state_observer.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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_OBSERVER_H_
  5. #define ASH_SERVICES_MULTIDEVICE_SETUP_FAKE_FEATURE_STATE_OBSERVER_H_
  6. #include "ash/services/multidevice_setup/public/mojom/multidevice_setup.mojom.h"
  7. #include "base/containers/flat_map.h"
  8. #include "mojo/public/cpp/bindings/pending_remote.h"
  9. #include "mojo/public/cpp/bindings/receiver_set.h"
  10. namespace ash {
  11. namespace multidevice_setup {
  12. // Fake mojom::FeatureStateObserver implementation for tests.
  13. class FakeFeatureStateObserver : public mojom::FeatureStateObserver {
  14. public:
  15. FakeFeatureStateObserver();
  16. FakeFeatureStateObserver(const FakeFeatureStateObserver&) = delete;
  17. FakeFeatureStateObserver& operator=(const FakeFeatureStateObserver&) = delete;
  18. ~FakeFeatureStateObserver() override;
  19. mojo::PendingRemote<mojom::FeatureStateObserver> GenerateRemote();
  20. const std::vector<base::flat_map<mojom::Feature, mojom::FeatureState>>&
  21. feature_state_updates() {
  22. return feature_state_updates_;
  23. }
  24. private:
  25. // mojom::FeatureStateObserver:
  26. void OnFeatureStatesChanged(
  27. const base::flat_map<mojom::Feature, mojom::FeatureState>&
  28. feature_states_map) override;
  29. std::vector<base::flat_map<mojom::Feature, mojom::FeatureState>>
  30. feature_state_updates_;
  31. mojo::ReceiverSet<mojom::FeatureStateObserver> receivers_;
  32. };
  33. } // namespace multidevice_setup
  34. } // namespace ash
  35. #endif // ASH_SERVICES_MULTIDEVICE_SETUP_FAKE_FEATURE_STATE_OBSERVER_H_