blob: d9b7d7e9eb005f577b5a6cfddf394e751fe5557e [file] [log] [blame]
Avi Drissmane4622aa2022-09-08 20:36:061// Copyright 2014 The Chromium Authors
[email protected]9df013b2014-03-13 22:04:392// 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
Shintaro Kawamuraccefc5a2023-05-08 16:46:1827 // OneShotTimer::FireNow requires no task runner is set. Override FireNow to
28 // bypass the check.
29 void FireNow() override;
30
tzik28b5e292018-06-19 08:13:3531 private:
32 // Timer implementation.
33 // MockOneShotTimer doesn't support SetTaskRunner. Do not use this.
34 void SetTaskRunner(scoped_refptr<SequencedTaskRunner> task_runner) override;
35
36 SimpleTestTickClock clock_;
37 scoped_refptr<TestSimpleTaskRunner> test_task_runner_;
38};
39
tzik143508c2018-07-09 03:42:3040// See MockOneShotTimer's comment. Prefer using
Gabriel Charette694c3c332019-08-19 14:53:0541// TaskEnvironment::MOCK_TIME.
tzik28b5e292018-06-19 08:13:3542class MockRepeatingTimer : public RepeatingTimer {
43 public:
44 MockRepeatingTimer();
45 ~MockRepeatingTimer() override;
46
47 // Testing method.
48 void Fire();
49
50 private:
51 // Timer implementation.
52 // MockRepeatingTimer doesn't support SetTaskRunner. Do not use this.
53 void SetTaskRunner(scoped_refptr<SequencedTaskRunner> task_runner) override;
54
55 SimpleTestTickClock clock_;
56 scoped_refptr<TestSimpleTaskRunner> test_task_runner_;
57};
58
tzik143508c2018-07-09 03:42:3059// See MockOneShotTimer's comment. Prefer using
Gabriel Charette694c3c332019-08-19 14:53:0560// TaskEnvironment::MOCK_TIME.
tzik57c66e32018-07-02 08:02:5761class MockRetainingOneShotTimer : public RetainingOneShotTimer {
62 public:
63 MockRetainingOneShotTimer();
64 ~MockRetainingOneShotTimer() override;
65
66 // Testing method.
67 void Fire();
68
69 private:
70 // Timer implementation.
71 // MockRetainingOneShotTimer doesn't support SetTaskRunner. Do not use this.
72 void SetTaskRunner(scoped_refptr<SequencedTaskRunner> task_runner) override;
73
74 SimpleTestTickClock clock_;
75 scoped_refptr<TestSimpleTaskRunner> test_task_runner_;
76};
77
[email protected]9df013b2014-03-13 22:04:3978} // namespace base
79
danakj0a448602015-03-10 00:31:1680#endif // BASE_TIMER_MOCK_TIMER_H_