Index: Source/platform/graphics/RecordingImageBufferSurfaceTest.cpp |
diff --git a/Source/platform/graphics/RecordingImageBufferSurfaceTest.cpp b/Source/platform/graphics/RecordingImageBufferSurfaceTest.cpp |
index d3f94995d90e41a88cf77f8edbdb7ee190005f9c..e9251bde55dfb86ada44922ae7b2dcdd9c3b80a1 100644 |
--- a/Source/platform/graphics/RecordingImageBufferSurfaceTest.cpp |
+++ b/Source/platform/graphics/RecordingImageBufferSurfaceTest.cpp |
@@ -9,6 +9,7 @@ |
#include "platform/graphics/GraphicsContext.h" |
#include "platform/graphics/ImageBuffer.h" |
#include "platform/graphics/ImageBufferClient.h" |
+#include "platform/graphics/UnacceleratedImageBufferSurface.h" |
#include "public/platform/Platform.h" |
#include "public/platform/WebThread.h" |
#include "third_party/skia/include/core/SkCanvas.h" |
@@ -73,13 +74,33 @@ private: |
int m_frameCount; |
}; |
+class MockSurfaceFactory : public RecordingImageBufferFallbackSurfaceFactory { |
+public: |
+ MockSurfaceFactory() : m_createSurfaceCount(0) { } |
+ |
+ virtual PassOwnPtr<ImageBufferSurface> createSurface(const IntSize& size, OpacityMode opacityMode) |
+ { |
+ m_createSurfaceCount++; |
+ return adoptPtr(new UnacceleratedImageBufferSurface(size, opacityMode)); |
+ } |
+ |
+ virtual ~MockSurfaceFactory() { } |
+ |
+ int createSurfaceCount() { return m_createSurfaceCount; } |
+ |
+private: |
+ int m_createSurfaceCount; |
+}; |
+ |
} // unnamed namespace |
class RecordingImageBufferSurfaceTest : public Test { |
protected: |
RecordingImageBufferSurfaceTest() |
{ |
- OwnPtr<RecordingImageBufferSurface> testSurface = adoptPtr(new RecordingImageBufferSurface(IntSize(10, 10))); |
+ OwnPtr<MockSurfaceFactory> surfaceFactory = adoptPtr(new MockSurfaceFactory()); |
+ m_surfaceFactory = surfaceFactory.get(); |
+ OwnPtr<RecordingImageBufferSurface> testSurface = adoptPtr(new RecordingImageBufferSurface(IntSize(10, 10), surfaceFactory.release())); |
m_testSurface = testSurface.get(); |
// We create an ImageBuffer in order for the testSurface to be |
// properly initialized with a GraphicsContext |
@@ -125,6 +146,7 @@ public: |
m_fakeImageBufferClient->fakeDraw(); |
m_testSurface->getPicture(); |
EXPECT_EQ(1, m_fakeImageBufferClient->frameCount()); |
+ EXPECT_EQ(0, m_surfaceFactory->createSurfaceCount()); |
expectDisplayListEnabled(true); // first frame has an implicit clear |
m_fakeImageBufferClient->fakeDraw(); |
m_testSurface->getPicture(); |
@@ -155,10 +177,10 @@ public: |
EXPECT_EQ(3, m_fakeImageBufferClient->frameCount()); |
expectDisplayListEnabled(false); |
m_testSurface->getPicture(); |
- EXPECT_EQ(4, m_fakeImageBufferClient->frameCount()); |
+ EXPECT_EQ(3, m_fakeImageBufferClient->frameCount()); |
expectDisplayListEnabled(false); |
m_fakeImageBufferClient->fakeDraw(); |
- EXPECT_EQ(4, m_fakeImageBufferClient->frameCount()); |
+ EXPECT_EQ(3, m_fakeImageBufferClient->frameCount()); |
expectDisplayListEnabled(false); |
} |
@@ -196,10 +218,13 @@ public: |
void expectDisplayListEnabled(bool displayListEnabled) |
{ |
EXPECT_EQ(displayListEnabled, (bool)m_testSurface->m_currentFrame.get()); |
- EXPECT_EQ(!displayListEnabled, (bool)m_testSurface->m_rasterCanvas.get()); |
+ EXPECT_EQ(!displayListEnabled, (bool)m_testSurface->m_fallbackSurface.get()); |
+ int expectedSurfaceCreationCount = displayListEnabled ? 0 : 1; |
+ EXPECT_EQ(expectedSurfaceCreationCount, m_surfaceFactory->createSurfaceCount()); |
} |
private: |
+ MockSurfaceFactory* m_surfaceFactory; |
RecordingImageBufferSurface* m_testSurface; |
OwnPtr<FakeImageBufferClient> m_fakeImageBufferClient; |
OwnPtr<ImageBuffer> m_imageBuffer; |