blob: f530c88e9ea534321cfe2b0bc6da011e2cc1c637 [file] [log] [blame]
[email protected]9df013b2014-03-13 22:04:391// Copyright 2014 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
5#ifndef BASE_TIMER_MOCK_TIMER_H_
6#define BASE_TIMER_MOCK_TIMER_H_
7
tzik84db8912018-06-19 06:08:548#include "base/test/simple_test_tick_clock.h"
[email protected]9df013b2014-03-13 22:04:399#include "base/timer/timer.h"
10
11namespace base {
12
tzik84db8912018-06-19 06:08:5413class TestSimpleTaskRunner;
14
tzikd93bb0862018-07-19 11:54:1415// A mock implementation of base::OneShotTimer which requires being explicitly
tzik84db8912018-06-19 06:08:5416// Fire()'d.
Gabriel Charette694c3c332019-08-19 14:53:0517// Prefer using TaskEnvironment::MOCK_TIME + FastForward*() to this when
tzik143508c2018-07-09 03:42:3018// possible.
tzik28b5e292018-06-19 08:13:3519class MockOneShotTimer : public OneShotTimer {
20 public:
21 MockOneShotTimer();
22 ~MockOneShotTimer() override;
23
24 // Testing method.
25 void Fire();
26
27 private:
28 // Timer implementation.
29 // MockOneShotTimer doesn't support SetTaskRunner. Do not use this.
30 void SetTaskRunner(scoped_refptr<SequencedTaskRunner> task_runner) override;
31
32 SimpleTestTickClock clock_;
33 scoped_refptr<TestSimpleTaskRunner> test_task_runner_;
34};
35
tzik143508c2018-07-09 03:42:3036// See MockOneShotTimer's comment. Prefer using
Gabriel Charette694c3c332019-08-19 14:53:0537// TaskEnvironment::MOCK_TIME.
tzik28b5e292018-06-19 08:13:3538class MockRepeatingTimer : public RepeatingTimer {
39 public:
40 MockRepeatingTimer();
41 ~MockRepeatingTimer() override;
42
43 // Testing method.
44 void Fire();
45
46 private:
47 // Timer implementation.
48 // MockRepeatingTimer doesn't support SetTaskRunner. Do not use this.
49 void SetTaskRunner(scoped_refptr<SequencedTaskRunner> task_runner) override;
50
51 SimpleTestTickClock clock_;
52 scoped_refptr<TestSimpleTaskRunner> test_task_runner_;
53};
54
tzik143508c2018-07-09 03:42:3055// See MockOneShotTimer's comment. Prefer using
Gabriel Charette694c3c332019-08-19 14:53:0556// TaskEnvironment::MOCK_TIME.
tzik57c66e32018-07-02 08:02:5757class MockRetainingOneShotTimer : public RetainingOneShotTimer {
58 public:
59 MockRetainingOneShotTimer();
60 ~MockRetainingOneShotTimer() override;
61
62 // Testing method.
63 void Fire();
64
65 private:
66 // Timer implementation.
67 // MockRetainingOneShotTimer doesn't support SetTaskRunner. Do not use this.
68 void SetTaskRunner(scoped_refptr<SequencedTaskRunner> task_runner) override;
69
70 SimpleTestTickClock clock_;
71 scoped_refptr<TestSimpleTaskRunner> test_task_runner_;
72};
73
[email protected]9df013b2014-03-13 22:04:3974} // namespace base
75
danakj0a448602015-03-10 00:31:1676#endif // BASE_TIMER_MOCK_TIMER_H_