Chromium Code Reviews| Index: cc/test/scheduler_test_common.h |
| diff --git a/cc/test/scheduler_test_common.h b/cc/test/scheduler_test_common.h |
| index 596358a205877ad26517cbcd54182ab602348254..a50233653410836c44189d5d53381dfaf0d6d3b3 100644 |
| --- a/cc/test/scheduler_test_common.h |
| +++ b/cc/test/scheduler_test_common.h |
| @@ -5,10 +5,14 @@ |
| #ifndef CC_TEST_SCHEDULER_TEST_COMMON_H_ |
| #define CC_TEST_SCHEDULER_TEST_COMMON_H_ |
| +#include <string> |
| + |
| #include "base/basictypes.h" |
| #include "base/memory/scoped_ptr.h" |
| #include "base/time/time.h" |
| #include "cc/scheduler/delay_based_time_source.h" |
| +#include "cc/scheduler/scheduler.h" |
| +#include "cc/test/ordered_simple_task_runner.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| namespace cc { |
| @@ -46,6 +50,76 @@ class FakeDelayBasedTimeSource : public DelayBasedTimeSource { |
| base::TimeTicks now_; |
| }; |
| +class TestDelayBasedTimeSource : public DelayBasedTimeSource { |
| + public: |
| + static scoped_refptr<TestDelayBasedTimeSource> Create( |
| + scoped_refptr<TestNowSource> now_src, |
| + base::TimeDelta interval, |
| + OrderedSimpleTaskRunner* task_runner) { |
| + return make_scoped_refptr( |
| + new TestDelayBasedTimeSource(now_src, interval, task_runner)); |
| + } |
| + |
| + protected: |
| + TestDelayBasedTimeSource(scoped_refptr<TestNowSource> now_src, |
| + base::TimeDelta interval, |
| + OrderedSimpleTaskRunner* task_runner); |
| + |
| + // Overridden from DelayBasedTimeSource |
| + virtual ~TestDelayBasedTimeSource(); |
| + virtual base::TimeTicks Now() const OVERRIDE; |
| + virtual std::string TypeString() const OVERRIDE; |
| + |
| + scoped_refptr<TestNowSource> now_src_; |
| +}; |
| + |
| +class TestScheduler : public Scheduler { |
| + public: |
| + static scoped_ptr<TestScheduler> Create( |
| + scoped_refptr<TestNowSource> now_src, |
| + SchedulerClient* client, |
| + const SchedulerSettings& scheduler_settings, |
| + int layer_tree_host_id) { |
|
brianderson
2014/08/21 21:48:52
Should this body move to the cc file?
|
| + // A bunch of tests require Now() to be > BeginFrameArgs::DefaultInterval() |
|
brianderson
2014/08/21 21:48:52
Please describe why in the comment.
|
| + now_src->AdvanceNow(base::TimeDelta::FromMilliseconds(100)); |
| + |
| + scoped_refptr<OrderedSimpleTaskRunner> test_task_runner = |
| + new OrderedSimpleTaskRunner(now_src, true); |
|
brianderson
2014/08/21 21:48:52
bool automatically_advance_now = true;
...
new Ord
|
| + return make_scoped_ptr(new TestScheduler(now_src, |
| + client, |
| + scheduler_settings, |
| + layer_tree_host_id, |
| + test_task_runner)); |
| + } |
| + |
| + // Extra test helper functionality |
| + bool IsBeginRetroFrameArgsEmpty() const { |
| + return begin_retro_frame_args_.empty(); |
| + } |
| + |
| + bool IsSyntheticBeginFrameSourceActive() const { |
| + return synthetic_begin_frame_source_->IsActive(); |
| + } |
| + |
| + OrderedSimpleTaskRunner& task_runner() { return *test_task_runner_; } |
| + |
| + virtual ~TestScheduler(); |
| + |
| + protected: |
| + // Overridden from Scheduler. |
| + virtual base::TimeTicks Now() const OVERRIDE; |
| + |
| + private: |
| + TestScheduler(scoped_refptr<TestNowSource> now_src, |
| + SchedulerClient* client, |
| + const SchedulerSettings& scheduler_settings, |
| + int layer_tree_host_id, |
| + const scoped_refptr<OrderedSimpleTaskRunner>& test_task_runner); |
| + |
| + scoped_refptr<TestNowSource> now_src_; |
| + OrderedSimpleTaskRunner* test_task_runner_; |
| +}; |
| + |
| } // namespace cc |
| #endif // CC_TEST_SCHEDULER_TEST_COMMON_H_ |