Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Unified Diff: sky/engine/platform/graphics/RecordingImageBufferSurfaceTest.cpp

Issue 678483002: Remove RecordingImageBufferSurface (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: sky/engine/platform/graphics/RecordingImageBufferSurfaceTest.cpp
diff --git a/sky/engine/platform/graphics/RecordingImageBufferSurfaceTest.cpp b/sky/engine/platform/graphics/RecordingImageBufferSurfaceTest.cpp
deleted file mode 100644
index 66a10d6f9574c2d0cbb2e50b283e564ee6a5f524..0000000000000000000000000000000000000000
--- a/sky/engine/platform/graphics/RecordingImageBufferSurfaceTest.cpp
+++ /dev/null
@@ -1,361 +0,0 @@
-// Copyright 2014 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.
-
-#include "config.h"
-
-#include "platform/graphics/RecordingImageBufferSurface.h"
-
-#include "platform/graphics/GraphicsContext.h"
-#include "platform/graphics/ImageBuffer.h"
-#include "platform/graphics/ImageBufferClient.h"
-#include "public/platform/Platform.h"
-#include "public/platform/WebThread.h"
-#include "third_party/skia/include/core/SkCanvas.h"
-#include "third_party/skia/include/core/SkPictureRecorder.h"
-#include "wtf/OwnPtr.h"
-#include "wtf/PassOwnPtr.h"
-#include "wtf/RefPtr.h"
-
-#include <gmock/gmock.h>
-#include <gtest/gtest.h>
-
-using namespace blink;
-using testing::Test;
-
-namespace {
-
-class FakeImageBufferClient : public ImageBufferClient, public WebThread::TaskObserver {
-public:
- FakeImageBufferClient(ImageBuffer* imageBuffer)
- : m_isDirty(false)
- , m_imageBuffer(imageBuffer)
- , m_frameCount(0)
- { }
-
- virtual ~FakeImageBufferClient() { }
-
- // ImageBufferClient implementation
- virtual void notifySurfaceInvalid() { }
- virtual bool isDirty() { return m_isDirty; };
- virtual void didFinalizeFrame()
- {
- if (m_isDirty) {
- Platform::current()->currentThread()->removeTaskObserver(this);
- m_isDirty = false;
- }
- ++m_frameCount;
- }
-
- // TaskObserver implementation
- virtual void willProcessTask() OVERRIDE { ASSERT_NOT_REACHED(); }
- virtual void didProcessTask() OVERRIDE
- {
- ASSERT_TRUE(m_isDirty);
- FloatRect dirtyRect(0, 0, 1, 1);
- m_imageBuffer->finalizeFrame(dirtyRect);
- ASSERT_FALSE(m_isDirty);
- }
-
- void fakeDraw()
- {
- if (m_isDirty)
- return;
- m_isDirty = true;
- Platform::current()->currentThread()->addTaskObserver(this);
- }
-
- int frameCount() { return m_frameCount; }
-
-private:
- bool m_isDirty;
- ImageBuffer* m_imageBuffer;
- int m_frameCount;
-};
-
-} // unnamed namespace
-
-class RecordingImageBufferSurfaceTest : public Test {
-protected:
- RecordingImageBufferSurfaceTest()
- {
- OwnPtr<RecordingImageBufferSurface> testSurface = adoptPtr(new RecordingImageBufferSurface(IntSize(10, 10)));
- m_testSurface = testSurface.get();
- // We create an ImageBuffer in order for the testSurface to be
- // properly initialized with a GraphicsContext
- m_imageBuffer = ImageBuffer::create(testSurface.release());
- m_fakeImageBufferClient = adoptPtr(new FakeImageBufferClient(m_imageBuffer.get()));
- m_imageBuffer->setClient(m_fakeImageBufferClient.get());
- }
-
-public:
- void testEmptyPicture()
- {
- m_testSurface->initializeCurrentFrame();
- RefPtr<SkPicture> picture = m_testSurface->getPicture();
- EXPECT_TRUE((bool)picture.get());
- EXPECT_EQ(1, m_fakeImageBufferClient->frameCount());
- expectDisplayListEnabled(true);
- }
-
- void testNoFallbackWithClear()
- {
- m_testSurface->initializeCurrentFrame();
- m_testSurface->didClearCanvas();
- m_testSurface->getPicture();
- EXPECT_EQ(1, m_fakeImageBufferClient->frameCount());
- expectDisplayListEnabled(true);
- }
-
- void testNonAnimatedCanvasUpdate()
- {
- m_testSurface->initializeCurrentFrame();
- // acquire picture twice to simulate a static canvas: nothing drawn between updates
- m_fakeImageBufferClient->fakeDraw();
- m_testSurface->getPicture();
- m_testSurface->getPicture();
- EXPECT_EQ(2, m_fakeImageBufferClient->frameCount());
- expectDisplayListEnabled(true);
- }
-
- void testAnimatedWithoutClear()
- {
- m_testSurface->initializeCurrentFrame();
- m_fakeImageBufferClient->fakeDraw();
- m_testSurface->getPicture();
- EXPECT_EQ(1, m_fakeImageBufferClient->frameCount());
- expectDisplayListEnabled(true); // first frame has an implicit clear
- m_fakeImageBufferClient->fakeDraw();
- m_testSurface->getPicture();
- EXPECT_EQ(2, m_fakeImageBufferClient->frameCount());
- expectDisplayListEnabled(false);
- }
-
- void testFrameFinalizedByTaskObserver1()
- {
- m_testSurface->initializeCurrentFrame();
- expectDisplayListEnabled(true);
- m_testSurface->getPicture();
- EXPECT_EQ(1, m_fakeImageBufferClient->frameCount());
- expectDisplayListEnabled(true);
- m_fakeImageBufferClient->fakeDraw();
- EXPECT_EQ(1, m_fakeImageBufferClient->frameCount());
- expectDisplayListEnabled(true);
- m_testSurface->getPicture();
- EXPECT_EQ(2, m_fakeImageBufferClient->frameCount());
- expectDisplayListEnabled(true);
- m_fakeImageBufferClient->fakeDraw();
- EXPECT_EQ(2, m_fakeImageBufferClient->frameCount());
- expectDisplayListEnabled(true);
- // Display list will be disabled only after exiting the runLoop
- }
- void testFrameFinalizedByTaskObserver2()
- {
- EXPECT_EQ(3, m_fakeImageBufferClient->frameCount());
- expectDisplayListEnabled(false);
- m_testSurface->getPicture();
- EXPECT_EQ(4, m_fakeImageBufferClient->frameCount());
- expectDisplayListEnabled(false);
- m_fakeImageBufferClient->fakeDraw();
- EXPECT_EQ(4, m_fakeImageBufferClient->frameCount());
- expectDisplayListEnabled(false);
- }
-
- void testAnimatedWithClear()
- {
- m_testSurface->initializeCurrentFrame();
- m_testSurface->getPicture();
- m_testSurface->didClearCanvas();
- m_fakeImageBufferClient->fakeDraw();
- EXPECT_EQ(1, m_fakeImageBufferClient->frameCount());
- m_testSurface->getPicture();
- EXPECT_EQ(2, m_fakeImageBufferClient->frameCount());
- expectDisplayListEnabled(true);
- // clear after use
- m_fakeImageBufferClient->fakeDraw();
- m_testSurface->didClearCanvas();
- EXPECT_EQ(2, m_fakeImageBufferClient->frameCount());
- m_testSurface->getPicture();
- EXPECT_EQ(3, m_fakeImageBufferClient->frameCount());
- expectDisplayListEnabled(true);
- }
-
- void testClearRect()
- {
- m_testSurface->initializeCurrentFrame();
- m_testSurface->getPicture();
- m_imageBuffer->context()->clearRect(FloatRect(FloatPoint(0, 0), FloatSize(m_testSurface->size())));
- m_fakeImageBufferClient->fakeDraw();
- EXPECT_EQ(1, m_fakeImageBufferClient->frameCount());
- m_testSurface->getPicture();
- EXPECT_EQ(2, m_fakeImageBufferClient->frameCount());
- expectDisplayListEnabled(true);
- }
-
- void expectDisplayListEnabled(bool displayListEnabled)
- {
- EXPECT_EQ(displayListEnabled, (bool)m_testSurface->m_currentFrame.get());
- EXPECT_EQ(!displayListEnabled, (bool)m_testSurface->m_rasterCanvas.get());
- }
-
-private:
- RecordingImageBufferSurface* m_testSurface;
- OwnPtr<FakeImageBufferClient> m_fakeImageBufferClient;
- OwnPtr<ImageBuffer> m_imageBuffer;
-};
-
-namespace {
-
-// The following test helper class installs a mock platform that provides a mock WebThread
-// for the current thread. The Mock thread is capable of queuing a single non-delayed task
-// and registering a single task observer. The run loop exits immediately after running
-// the single task.
-class AutoInstallCurrentThreadPlatformMock {
-public:
- AutoInstallCurrentThreadPlatformMock()
- {
- m_oldPlatform = Platform::current();
- Platform::initialize(&m_mockPlatform);
- }
-
- ~AutoInstallCurrentThreadPlatformMock()
- {
- Platform::initialize(m_oldPlatform);
- }
-
-private:
- class CurrentThreadMock : public WebThread {
- public:
- CurrentThreadMock() : m_taskObserver(0), m_task(0) { }
-
- virtual ~CurrentThreadMock()
- {
- EXPECT_EQ((Task*)0, m_task);
- }
-
- virtual void postTask(Task* task)
- {
- EXPECT_EQ((Task*)0, m_task);
- m_task = task;
- }
-
- virtual void postDelayedTask(Task*, long long delayMs) OVERRIDE { ASSERT_NOT_REACHED(); };
-
- virtual bool isCurrentThread() const OVERRIDE { return true; }
- virtual PlatformThreadId threadId() const OVERRIDE
- {
- ASSERT_NOT_REACHED();
- return 0;
- }
-
- virtual void addTaskObserver(TaskObserver* taskObserver) OVERRIDE
- {
- EXPECT_EQ((TaskObserver*)0, m_taskObserver);
- m_taskObserver = taskObserver;
- }
-
- virtual void removeTaskObserver(TaskObserver* taskObserver) OVERRIDE
- {
- EXPECT_EQ(m_taskObserver, taskObserver);
- m_taskObserver = 0;
- }
-
- virtual void enterRunLoop() OVERRIDE
- {
- if (m_taskObserver)
- m_taskObserver->willProcessTask();
- if (m_task) {
- m_task->run();
- delete m_task;
- m_task = 0;
- }
- if (m_taskObserver)
- m_taskObserver->didProcessTask();
- }
-
- virtual void exitRunLoop() OVERRIDE { ASSERT_NOT_REACHED(); }
-
- private:
- TaskObserver* m_taskObserver;
- Task* m_task;
- };
-
- class CurrentThreadPlatformMock : public Platform {
- public:
- CurrentThreadPlatformMock() { }
- virtual void cryptographicallyRandomValues(unsigned char* buffer, size_t length) { ASSERT_NOT_REACHED(); }
- virtual WebThread* currentThread() OVERRIDE { return &m_currentThread; }
- private:
- CurrentThreadMock m_currentThread;
- };
-
- CurrentThreadPlatformMock m_mockPlatform;
- Platform* m_oldPlatform;
-};
-
-
-#define DEFINE_TEST_TASK_WRAPPER_CLASS(TEST_METHOD) \
-class TestWrapperTask_ ## TEST_METHOD : public WebThread::Task { \
- public: \
- TestWrapperTask_ ## TEST_METHOD(RecordingImageBufferSurfaceTest* test) : m_test(test) { } \
- virtual void run() OVERRIDE { m_test->TEST_METHOD(); } \
- private: \
- RecordingImageBufferSurfaceTest* m_test; \
-};
-
-#define CALL_TEST_TASK_WRAPPER(TEST_METHOD) \
- { \
- AutoInstallCurrentThreadPlatformMock ctpm; \
- Platform::current()->currentThread()->postTask(new TestWrapperTask_ ## TEST_METHOD(this)); \
- Platform::current()->currentThread()->enterRunLoop(); \
- }
-
-TEST_F(RecordingImageBufferSurfaceTest, testEmptyPicture)
-{
- testEmptyPicture();
-}
-
-TEST_F(RecordingImageBufferSurfaceTest, testNoFallbackWithClear)
-{
- testNoFallbackWithClear();
-}
-
-DEFINE_TEST_TASK_WRAPPER_CLASS(testNonAnimatedCanvasUpdate)
-TEST_F(RecordingImageBufferSurfaceTest, testNonAnimatedCanvasUpdate)
-{
- CALL_TEST_TASK_WRAPPER(testNonAnimatedCanvasUpdate)
- expectDisplayListEnabled(true);
-}
-
-DEFINE_TEST_TASK_WRAPPER_CLASS(testAnimatedWithoutClear)
-TEST_F(RecordingImageBufferSurfaceTest, testAnimatedWithoutClear)
-{
- CALL_TEST_TASK_WRAPPER(testAnimatedWithoutClear)
- expectDisplayListEnabled(false);
-}
-
-DEFINE_TEST_TASK_WRAPPER_CLASS(testFrameFinalizedByTaskObserver1)
-DEFINE_TEST_TASK_WRAPPER_CLASS(testFrameFinalizedByTaskObserver2)
-TEST_F(RecordingImageBufferSurfaceTest, testFrameFinalizedByTaskObserver)
-{
- CALL_TEST_TASK_WRAPPER(testFrameFinalizedByTaskObserver1)
- expectDisplayListEnabled(false);
- CALL_TEST_TASK_WRAPPER(testFrameFinalizedByTaskObserver2)
- expectDisplayListEnabled(false);
-}
-
-DEFINE_TEST_TASK_WRAPPER_CLASS(testAnimatedWithClear)
-TEST_F(RecordingImageBufferSurfaceTest, testAnimatedWithClear)
-{
- CALL_TEST_TASK_WRAPPER(testAnimatedWithClear)
- expectDisplayListEnabled(true);
-}
-
-DEFINE_TEST_TASK_WRAPPER_CLASS(testClearRect)
-TEST_F(RecordingImageBufferSurfaceTest, testClearRect)
-{
- CALL_TEST_TASK_WRAPPER(testClearRect);
- expectDisplayListEnabled(true);
-}
-
-} // namespace
« no previous file with comments | « sky/engine/platform/graphics/RecordingImageBufferSurface.cpp ('k') | sky/engine/public/web/WebRuntimeFeatures.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698