1 // Copyright (c) 2012 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_TEST_NULL_TASK_RUNNER_H_
6 #define BASE_TEST_NULL_TASK_RUNNER_H_
7 
8 #include "base/callback.h"
9 #include "base/compiler_specific.h"
10 #include "base/macros.h"
11 #include "base/single_thread_task_runner.h"
12 
13 namespace base {
14 
15 // Helper class for tests that need to provide an implementation of a
16 // *TaskRunner class but don't actually care about tasks being run.
17 
18 class NullTaskRunner : public base::SingleThreadTaskRunner {
19  public:
20   NullTaskRunner();
21 
22   bool PostDelayedTask(const Location& from_here,
23                        base::OnceClosure task,
24                        base::TimeDelta delay) override;
25   bool PostNonNestableDelayedTask(const Location& from_here,
26                                   base::OnceClosure task,
27                                   base::TimeDelta delay) override;
28   // Always returns true to avoid triggering DCHECKs.
29   bool RunsTasksInCurrentSequence() const override;
30 
31  protected:
32   ~NullTaskRunner() override;
33 
34   DISALLOW_COPY_AND_ASSIGN(NullTaskRunner);
35 };
36 
37 }  // namespace base
38 
39 #endif  // BASE_TEST_NULL_TASK_RUNNER_H_
40