diff options
Diffstat (limited to 'chromium/net/quic/test_tools/test_task_runner.h')
-rw-r--r-- | chromium/net/quic/test_tools/test_task_runner.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/chromium/net/quic/test_tools/test_task_runner.h b/chromium/net/quic/test_tools/test_task_runner.h new file mode 100644 index 00000000000..e25bf2aef46 --- /dev/null +++ b/chromium/net/quic/test_tools/test_task_runner.h @@ -0,0 +1,54 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +// +// Common utilities for Quic tests + +#ifndef NET_QUIC_TEST_TOOLS_TEST_TASK_RUNNER_H_ +#define NET_QUIC_TEST_TOOLS_TEST_TASK_RUNNER_H_ + +#include <vector> + +#include "base/basictypes.h" +#include "base/task_runner.h" +#include "base/test/test_pending_task.h" + +namespace net { + +class MockClock; + +namespace test { + +typedef base::TestPendingTask PostedTask; + +class TestTaskRunner : public base::TaskRunner { + public: + explicit TestTaskRunner(MockClock* clock); + + // base::TaskRunner implementation. + virtual bool PostDelayedTask(const tracked_objects::Location& from_here, + const base::Closure& task, + base::TimeDelta delay) OVERRIDE; + virtual bool RunsTasksOnCurrentThread() const OVERRIDE; + + const std::vector<PostedTask>& GetPostedTasks() const; + + void RunNextTask(); + + protected: + virtual ~TestTaskRunner(); + + private: + std::vector<PostedTask>::iterator FindNextTask(); + + MockClock* const clock_; + std::vector<PostedTask> tasks_; + + DISALLOW_COPY_AND_ASSIGN(TestTaskRunner); +}; + +} // namespace test + +} // namespace net + +#endif // NET_QUIC_TEST_TOOLS_TEST_TASK_RUNNER_H_ |