Index: cc/test/scheduler_test_common.h |
diff --git a/cc/test/scheduler_test_common.h b/cc/test/scheduler_test_common.h |
index 638cbb270ce9b24689d5095baf174ade4f4d1a13..2f6660bd7f3ba5478e4193b40669139924349ffa 100644 |
--- a/cc/test/scheduler_test_common.h |
+++ b/cc/test/scheduler_test_common.h |
@@ -1,3 +1,131 @@ |
-// Copyright 2012 The Chromium Authors. All rights reserved. |
+// Copyright 2011 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. |
+ |
+#ifndef CCSchedulerTestCommon_h |
+#define CCSchedulerTestCommon_h |
+ |
+#include "CCDelayBasedTimeSource.h" |
+#include "CCFrameRateController.h" |
+#include "CCThread.h" |
+#include "base/threading/platform_thread.h" |
+#include "testing/gtest/include/gtest/gtest.h" |
+#include <wtf/OwnPtr.h> |
+ |
+namespace WebKitTests { |
+ |
+class FakeCCTimeSourceClient : public cc::CCTimeSourceClient { |
+public: |
+ FakeCCTimeSourceClient() { reset(); } |
+ void reset() { m_tickCalled = false; } |
+ bool tickCalled() const { return m_tickCalled; } |
+ |
+ virtual void onTimerTick() OVERRIDE; |
+ |
+protected: |
+ bool m_tickCalled; |
+}; |
+ |
+class FakeCCThread : public cc::CCThread { |
+public: |
+ FakeCCThread(); |
+ virtual ~FakeCCThread(); |
+ |
+ void reset() |
+ { |
+ m_pendingTaskDelay = 0; |
+ m_pendingTask.clear(); |
+ m_runPendingTaskOnOverwrite = false; |
+ } |
+ |
+ void runPendingTaskOnOverwrite(bool enable) |
+ { |
+ m_runPendingTaskOnOverwrite = enable; |
+ } |
+ |
+ bool hasPendingTask() const { return m_pendingTask; } |
+ void runPendingTask() |
+ { |
+ ASSERT(m_pendingTask); |
+ OwnPtr<Task> task = m_pendingTask.release(); |
+ task->performTask(); |
+ } |
+ |
+ long long pendingDelayMs() const |
+ { |
+ EXPECT_TRUE(hasPendingTask()); |
+ return m_pendingTaskDelay; |
+ } |
+ |
+ virtual void postTask(PassOwnPtr<Task>) OVERRIDE; |
+ virtual void postDelayedTask(PassOwnPtr<Task> task, long long delay) OVERRIDE; |
+ virtual base::PlatformThreadId threadID() const OVERRIDE; |
+ |
+protected: |
+ OwnPtr<Task> m_pendingTask; |
+ long long m_pendingTaskDelay; |
+ bool m_runPendingTaskOnOverwrite; |
+}; |
+ |
+class FakeCCTimeSource : public cc::CCTimeSource { |
+public: |
+ FakeCCTimeSource() |
+ : m_active(false) |
+ , m_client(0) |
+ { |
+ turnOffVerifier(); |
+ } |
+ |
+ virtual ~FakeCCTimeSource() { } |
+ |
+ virtual void setClient(cc::CCTimeSourceClient* client) OVERRIDE; |
+ virtual void setActive(bool b) OVERRIDE; |
+ virtual bool active() const OVERRIDE; |
+ virtual void setTimebaseAndInterval(base::TimeTicks timebase, base::TimeDelta interval) OVERRIDE { } |
+ virtual base::TimeTicks lastTickTime() OVERRIDE; |
+ virtual base::TimeTicks nextTickTime() OVERRIDE; |
+ |
+ void tick() |
+ { |
+ ASSERT(m_active); |
+ if (m_client) |
+ m_client->onTimerTick(); |
+ } |
+ |
+ void setNextTickTime(base::TimeTicks nextTickTime) { m_nextTickTime = nextTickTime; } |
+ |
+protected: |
+ bool m_active; |
+ base::TimeTicks m_nextTickTime; |
+ cc::CCTimeSourceClient* m_client; |
+}; |
+ |
+class FakeCCDelayBasedTimeSource : public cc::CCDelayBasedTimeSource { |
+public: |
+ static PassRefPtr<FakeCCDelayBasedTimeSource> create(base::TimeDelta interval, cc::CCThread* thread) |
+ { |
+ return adoptRef(new FakeCCDelayBasedTimeSource(interval, thread)); |
+ } |
+ |
+ void setNow(base::TimeTicks time) { m_now = time; } |
+ virtual base::TimeTicks now() const OVERRIDE; |
+ |
+protected: |
+ FakeCCDelayBasedTimeSource(base::TimeDelta interval, cc::CCThread* thread) |
+ : CCDelayBasedTimeSource(interval, thread) |
+ { |
+ } |
+ |
+ base::TimeTicks m_now; |
+}; |
+ |
+class FakeCCFrameRateController : public cc::CCFrameRateController { |
+public: |
+ FakeCCFrameRateController(PassRefPtr<cc::CCTimeSource> timer) : cc::CCFrameRateController(timer) { } |
+ |
+ int numFramesPending() const { return m_numFramesPending; } |
+}; |
+ |
+} |
+ |
+#endif // CCSchedulerTestCommon_h |