1// 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
8#include "base/timer/timer.h"
9
10namespace base {
11
12class BASE_EXPORT MockTimer : public Timer {
13 public:
14  MockTimer(bool retain_user_task, bool is_repeating);
15  MockTimer(const tracked_objects::Location& posted_from,
16            TimeDelta delay,
17            const base::Closure& user_task,
18            bool is_repeating);
19  ~MockTimer() override;
20
21  // base::Timer implementation.
22  bool IsRunning() const override;
23  base::TimeDelta GetCurrentDelay() const override;
24  void Start(const tracked_objects::Location& posted_from,
25             base::TimeDelta delay,
26             const base::Closure& user_task) override;
27  void Stop() override;
28  void Reset() override;
29
30  // Testing methods.
31  void Fire();
32
33 private:
34  base::Closure user_task_;
35  TimeDelta delay_;
36  bool is_running_;
37};
38
39}  // namespace base
40
41#endif  // BASE_TIMER_MOCK_TIMER_H_
42