diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-05-07 11:21:11 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-05-07 11:21:11 +0200 |
commit | 2cf6c8816a73e0132bd8fa3b509d62d7c51b6e47 (patch) | |
tree | 988e8c5b116dd0466244ae2fe5af8ee9be926d76 /Source/WebKit/chromium/tests/CCTiledLayerImplTest.cpp | |
parent | dd91e772430dc294e3bf478c119ef8d43c0a3358 (diff) | |
download | qtwebkit-2cf6c8816a73e0132bd8fa3b509d62d7c51b6e47.tar.gz |
Imported WebKit commit 7e538425aa020340619e927792f3d895061fb54b (http://svn.webkit.org/repository/webkit/trunk@116286)
Diffstat (limited to 'Source/WebKit/chromium/tests/CCTiledLayerImplTest.cpp')
-rw-r--r-- | Source/WebKit/chromium/tests/CCTiledLayerImplTest.cpp | 128 |
1 files changed, 35 insertions, 93 deletions
diff --git a/Source/WebKit/chromium/tests/CCTiledLayerImplTest.cpp b/Source/WebKit/chromium/tests/CCTiledLayerImplTest.cpp index ff7daa3c9..48a46dae1 100644 --- a/Source/WebKit/chromium/tests/CCTiledLayerImplTest.cpp +++ b/Source/WebKit/chromium/tests/CCTiledLayerImplTest.cpp @@ -27,6 +27,7 @@ #include "cc/CCTiledLayerImpl.h" #include "CCLayerTestCommon.h" +#include "MockCCQuadCuller.h" #include "cc/CCSingleThreadProxy.h" #include "cc/CCTileDrawQuad.h" #include <gmock/gmock.h> @@ -69,11 +70,12 @@ TEST(CCTiledLayerImplTest, emptyQuadList) // Verify default layer does creates quads { OwnPtr<CCTiledLayerImpl> layer = createLayer(tileSize, layerSize, CCLayerTilingData::NoBorderTexels); - CCQuadList quads; + MockCCQuadCuller quadCuller; OwnPtr<CCSharedQuadState> sharedQuadState = layer->createSharedQuadState(); - layer->appendQuads(quads, sharedQuadState.get()); + bool hadMissingTiles = false; + layer->appendQuads(quadCuller, sharedQuadState.get(), hadMissingTiles); const unsigned numTiles = numTilesX * numTilesY; - EXPECT_EQ(quads.size(), numTiles); + EXPECT_EQ(quadCuller.quadList().size(), numTiles); } // Layer with empty visible layer rect produces no quads @@ -81,10 +83,11 @@ TEST(CCTiledLayerImplTest, emptyQuadList) OwnPtr<CCTiledLayerImpl> layer = createLayer(tileSize, layerSize, CCLayerTilingData::NoBorderTexels); layer->setVisibleLayerRect(IntRect()); - CCQuadList quads; + MockCCQuadCuller quadCuller; OwnPtr<CCSharedQuadState> sharedQuadState = layer->createSharedQuadState(); - layer->appendQuads(quads, sharedQuadState.get()); - EXPECT_EQ(quads.size(), 0u); + bool hadMissingTiles = false; + layer->appendQuads(quadCuller, sharedQuadState.get(), hadMissingTiles); + EXPECT_EQ(quadCuller.quadList().size(), 0u); } // Layer with non-intersecting visible layer rect produces no quads @@ -94,10 +97,11 @@ TEST(CCTiledLayerImplTest, emptyQuadList) IntRect outsideBounds(IntPoint(-100, -100), IntSize(50, 50)); layer->setVisibleLayerRect(outsideBounds); - CCQuadList quads; + MockCCQuadCuller quadCuller; OwnPtr<CCSharedQuadState> sharedQuadState = layer->createSharedQuadState(); - layer->appendQuads(quads, sharedQuadState.get()); - EXPECT_EQ(quads.size(), 0u); + bool hadMissingTiles = false; + layer->appendQuads(quadCuller, sharedQuadState.get(), hadMissingTiles); + EXPECT_EQ(quadCuller.quadList().size(), 0u); } // Layer with skips draw produces no quads @@ -105,10 +109,11 @@ TEST(CCTiledLayerImplTest, emptyQuadList) OwnPtr<CCTiledLayerImpl> layer = createLayer(tileSize, layerSize, CCLayerTilingData::NoBorderTexels); layer->setSkipsDraw(true); - CCQuadList quads; + MockCCQuadCuller quadCuller; OwnPtr<CCSharedQuadState> sharedQuadState = layer->createSharedQuadState(); - layer->appendQuads(quads, sharedQuadState.get()); - EXPECT_EQ(quads.size(), 0u); + bool hadMissingTiles = false; + layer->appendQuads(quadCuller, sharedQuadState.get(), hadMissingTiles); + EXPECT_EQ(quadCuller.quadList().size(), 0u); } } @@ -126,12 +131,14 @@ TEST(CCTiledLayerImplTest, checkerboarding) // No checkerboarding { - CCQuadList quads; - layer->appendQuads(quads, sharedQuadState.get()); - EXPECT_EQ(quads.size(), 4u); - - for (size_t i = 0; i < quads.size(); ++i) - EXPECT_EQ(quads[i]->material(), CCDrawQuad::TiledContent); + MockCCQuadCuller quadCuller; + bool hadMissingTiles = false; + layer->appendQuads(quadCuller, sharedQuadState.get(), hadMissingTiles); + EXPECT_EQ(quadCuller.quadList().size(), 4u); + EXPECT_FALSE(hadMissingTiles); + + for (size_t i = 0; i < quadCuller.quadList().size(); ++i) + EXPECT_EQ(quadCuller.quadList()[i]->material(), CCDrawQuad::TiledContent); } for (int i = 0; i < numTilesX; ++i) @@ -140,11 +147,13 @@ TEST(CCTiledLayerImplTest, checkerboarding) // All checkerboarding { - CCQuadList quads; - layer->appendQuads(quads, sharedQuadState.get()); - EXPECT_EQ(quads.size(), 4u); - for (size_t i = 0; i < quads.size(); ++i) - EXPECT_EQ(quads[i]->material(), CCDrawQuad::SolidColor); + MockCCQuadCuller quadCuller; + bool hadMissingTiles = false; + layer->appendQuads(quadCuller, sharedQuadState.get(), hadMissingTiles); + EXPECT_TRUE(hadMissingTiles); + EXPECT_EQ(quadCuller.quadList().size(), 4u); + for (size_t i = 0; i < quadCuller.quadList().size(); ++i) + EXPECT_NE(quadCuller.quadList()[i]->material(), CCDrawQuad::TiledContent); } } @@ -154,8 +163,10 @@ static PassOwnPtr<CCSharedQuadState> getQuads(CCQuadList& quads, IntSize tileSiz layer->setVisibleLayerRect(visibleLayerRect); layer->setBounds(layerSize); + MockCCQuadCuller quadCuller(quads); OwnPtr<CCSharedQuadState> sharedQuadState = layer->createSharedQuadState(); - layer->appendQuads(quads, sharedQuadState.get()); + bool hadMissingTiles = false; + layer->appendQuads(quadCuller, sharedQuadState.get(), hadMissingTiles); return sharedQuadState.release(); // The shared data must be owned as long as the quad list exists. } @@ -251,73 +262,4 @@ TEST(CCTiledLayerImplTest, tileOpaqueRectForLayerNoBorders) } } -TEST(CCTiledLayerImplTest, backgroundCoversViewport) -{ - DebugScopedSetImplThread scopedImplThread; - - const IntSize tileSize(10, 10); - const int numTilesX = 2; - const int numTilesY = 2; - const unsigned numTiles = numTilesX * numTilesY; - const IntSize layerSize(tileSize.width() * numTilesX, tileSize.height() * numTilesY); - OwnPtr<CCTiledLayerImpl> layer = createLayer(tileSize, layerSize, CCLayerTilingData::NoBorderTexels); - layer->setBackgroundColor(Color::gray); - layer->setBackgroundCoversViewport(true); - - // No gutter rects - { - IntRect clipRect = IntRect(IntPoint(), layerSize); - layer->setClipRect(clipRect); - layer->setVisibleLayerRect(IntRect(IntPoint(), layerSize)); - - OwnPtr<CCSharedQuadState> sharedQuadState = layer->createSharedQuadState(); - - CCQuadList quads; - layer->appendQuads(quads, sharedQuadState.get()); - EXPECT_EQ(quads.size(), numTiles); - - for (size_t i = 0; i < quads.size(); ++i) - EXPECT_EQ(quads[i]->material(), CCDrawQuad::TiledContent); - } - - // Empty visible content area (fullscreen gutter rect) - { - IntRect clipRect = IntRect(100, 100, 100, 100); - layer->setClipRect(clipRect); - layer->setVisibleLayerRect(IntRect()); - - OwnPtr<CCSharedQuadState> sharedQuadState = layer->createSharedQuadState(); - CCQuadList quads; - layer->appendQuads(quads, sharedQuadState.get()); - - for (size_t i = 0; i < quads.size(); ++i) - EXPECT_EQ(quads[i]->material(), CCDrawQuad::SolidColor); - - verifyQuadsExactlyCoverRect(quads, clipRect); - } - - // Content area in middle of clip rect (four surrounding gutter rects) - { - IntRect clipRect = IntRect(-50, -50, 100, 100); - layer->setClipRect(clipRect); - layer->setVisibleLayerRect(IntRect(IntPoint(), layerSize)); - - OwnPtr<CCSharedQuadState> sharedQuadState = layer->createSharedQuadState(); - CCQuadList quads; - layer->appendQuads(quads, sharedQuadState.get()); - - unsigned numContentTiles = 0, numGutterTiles = 0; - for (size_t i = 0; i < quads.size(); ++i) { - if (quads[i]->material() == CCDrawQuad::TiledContent) - numContentTiles++; - else if (quads[i]->material() == CCDrawQuad::SolidColor) - numGutterTiles++; - } - EXPECT_EQ(numContentTiles, numTiles); - EXPECT_GE(numGutterTiles, 4u); - - verifyQuadsExactlyCoverRect(quads, clipRect); - } -} - } // namespace |