test_optimization_guide_model_provider.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. // Copyright 2021 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 COMPONENTS_OPTIMIZATION_GUIDE_CORE_TEST_OPTIMIZATION_GUIDE_MODEL_PROVIDER_H_
  5. #define COMPONENTS_OPTIMIZATION_GUIDE_CORE_TEST_OPTIMIZATION_GUIDE_MODEL_PROVIDER_H_
  6. #include "components/optimization_guide/core/optimization_guide_model_provider.h"
  7. namespace optimization_guide {
  8. // An implementation of |OptimizationGuideModelProvider| that can be selectively
  9. // mocked out for unit testing features that rely on the Optimization Guide in
  10. // //components/...
  11. class TestOptimizationGuideModelProvider
  12. : public OptimizationGuideModelProvider {
  13. public:
  14. TestOptimizationGuideModelProvider();
  15. ~TestOptimizationGuideModelProvider() override;
  16. TestOptimizationGuideModelProvider(
  17. const TestOptimizationGuideModelProvider&) = delete;
  18. TestOptimizationGuideModelProvider& operator=(
  19. const TestOptimizationGuideModelProvider&) = delete;
  20. // OptimizationGuideModelProvider implementation:
  21. void AddObserverForOptimizationTargetModel(
  22. proto::OptimizationTarget optimization_target,
  23. const absl::optional<proto::Any>& model_metadata,
  24. OptimizationTargetModelObserver* observer) override;
  25. void RemoveObserverForOptimizationTargetModel(
  26. proto::OptimizationTarget optimization_target,
  27. OptimizationTargetModelObserver* observer) override;
  28. };
  29. } // namespace optimization_guide
  30. #endif // COMPONENTS_OPTIMIZATION_GUIDE_CORE_TEST_OPTIMIZATION_GUIDE_MODEL_PROVIDER_H_