diff options
Diffstat (limited to 'chromium/cc/tiles/picture_layer_tiling_unittest.cc')
-rw-r--r-- | chromium/cc/tiles/picture_layer_tiling_unittest.cc | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/chromium/cc/tiles/picture_layer_tiling_unittest.cc b/chromium/cc/tiles/picture_layer_tiling_unittest.cc index ec3b87024d7..bab33fef1ff 100644 --- a/chromium/cc/tiles/picture_layer_tiling_unittest.cc +++ b/chromium/cc/tiles/picture_layer_tiling_unittest.cc @@ -57,6 +57,7 @@ class TestablePictureLayerTiling : public PictureLayerTiling { using PictureLayerTiling::ComputeSkewport; using PictureLayerTiling::RemoveTileAt; + using PictureLayerTiling::RemoveTilesInRegion; protected: TestablePictureLayerTiling(WhichTree tree, @@ -445,6 +446,30 @@ TEST_F(PictureLayerTilingIteratorTest, ResizeOverBorderPixelsDeletesTiles) { tiling_->TilingDataForTesting().TileBounds(0, 0)); } +TEST_F(PictureLayerTilingIteratorTest, RemoveOutsideLayerKeepsTiles) { + gfx::Size tile_size(100, 100); + gfx::Size layer_size(100, 100); + InitializeActive(tile_size, 1.f, layer_size); + SetLiveRectAndVerifyTiles(gfx::Rect(layer_size)); + + // In all cases here, the tiling should remain with one tile, since the remove + // region doesn't intersect it. + + bool recreate_tiles = false; + // Top + tiling_->RemoveTilesInRegion(gfx::Rect(50, -1, 1, 1), recreate_tiles); + EXPECT_TRUE(tiling_->TileAt(0, 0)); + // Bottom + tiling_->RemoveTilesInRegion(gfx::Rect(50, 100, 1, 1), recreate_tiles); + EXPECT_TRUE(tiling_->TileAt(0, 0)); + // Left + tiling_->RemoveTilesInRegion(gfx::Rect(-1, 50, 1, 1), recreate_tiles); + EXPECT_TRUE(tiling_->TileAt(0, 0)); + // Right + tiling_->RemoveTilesInRegion(gfx::Rect(100, 50, 1, 1), recreate_tiles); + EXPECT_TRUE(tiling_->TileAt(0, 0)); +} + TEST_F(PictureLayerTilingIteratorTest, LiveTilesExactlyCoverLiveTileRect) { Initialize(gfx::Size(100, 100), 1.f, gfx::Size(1099, 801)); SetLiveRectAndVerifyTiles(gfx::Rect(100, 100)); |