test_scoped_offline_clock.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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 COMPONENTS_OFFLINE_PAGES_CORE_TEST_SCOPED_OFFLINE_CLOCK_H_
  5. #define COMPONENTS_OFFLINE_PAGES_CORE_TEST_SCOPED_OFFLINE_CLOCK_H_
  6. #include "base/test/simple_test_clock.h"
  7. namespace offline_pages {
  8. // Overrides |OfflineClock()| with |clock| upon construction. Returns
  9. // |OfflineClock()| to its original state upon destruction.
  10. class TestScopedOfflineClockOverride {
  11. public:
  12. explicit TestScopedOfflineClockOverride(const base::Clock* clock);
  13. TestScopedOfflineClockOverride(const TestScopedOfflineClockOverride&) =
  14. delete;
  15. TestScopedOfflineClockOverride& operator=(
  16. const TestScopedOfflineClockOverride&) = delete;
  17. ~TestScopedOfflineClockOverride();
  18. };
  19. // Overrides |OfflineClock()| with |this| upon construction. Returns
  20. // |OfflineClock()| to its original state upon destruction.
  21. class TestScopedOfflineClock : public base::SimpleTestClock {
  22. public:
  23. TestScopedOfflineClock();
  24. TestScopedOfflineClock(const TestScopedOfflineClock&) = delete;
  25. TestScopedOfflineClock& operator=(const TestScopedOfflineClock&) = delete;
  26. ~TestScopedOfflineClock() override;
  27. private:
  28. TestScopedOfflineClockOverride override_;
  29. };
  30. } // namespace offline_pages
  31. #endif // COMPONENTS_OFFLINE_PAGES_CORE_TEST_SCOPED_OFFLINE_CLOCK_H_