| Index: remoting/host/differ_unittest.cc
|
| ===================================================================
|
| --- remoting/host/differ_unittest.cc (revision 55264)
|
| +++ remoting/host/differ_unittest.cc (working copy)
|
| @@ -9,9 +9,10 @@
|
| namespace remoting {
|
|
|
| // 96x96 screen gives a 3x3 grid of blocks.
|
| -const int kScreenWidth = 96;
|
| +const int kScreenWidth= 96;
|
| const int kScreenHeight = 96;
|
| const int kBytesPerPixel = 3;
|
| +const int kBytesPerRow = (kBytesPerPixel * kScreenWidth);
|
|
|
| class DifferTest : public testing::Test {
|
| public:
|
| @@ -20,18 +21,17 @@
|
|
|
| protected:
|
| virtual void SetUp() {
|
| - InitDiffer(kScreenWidth, kScreenHeight, kBytesPerPixel);
|
| + InitDiffer(kScreenWidth, kScreenHeight, kBytesPerPixel, kBytesPerRow);
|
| }
|
|
|
| - void InitDiffer(int width, int height, int bpp) {
|
| + void InitDiffer(int width, int height, int bpp, int stride) {
|
| width_ = width;
|
| height_ = height;
|
| bytes_per_pixel_ = bpp;
|
| -
|
| - stride_ = width_ * bytes_per_pixel_;
|
| + stride_ = stride;
|
| buffer_size_ = width_ * height_ * bytes_per_pixel_;
|
|
|
| - differ_.reset(new Differ(width_, height_, bytes_per_pixel_));
|
| + differ_.reset(new Differ(width_, height_, bytes_per_pixel_, stride_));
|
|
|
| prev_.reset(new uint8[buffer_size_]);
|
| memset(prev_.get(), 0, buffer_size_);
|
| @@ -126,12 +126,11 @@
|
| // Verify that the given dirty rect matches the expected |x|, |y|, |width|
|
| // and |height|.
|
| // |x|, |y|, |width| and |height| are specified in block (not pixel) units.
|
| - void CheckDirtyRect(const gfx::Rect& rect, int x, int y,
|
| + void CheckDirtyRect(const InvalidRects& rects, int x, int y,
|
| int width, int height) {
|
| - EXPECT_EQ(x * kBlockSize, rect.x());
|
| - EXPECT_EQ(y * kBlockSize, rect.y());
|
| - EXPECT_EQ(width * kBlockSize, rect.width());
|
| - EXPECT_EQ(height * kBlockSize, rect.height());
|
| + gfx::Rect r(x * kBlockSize, y * kBlockSize,
|
| + width * kBlockSize, height * kBlockSize);
|
| + EXPECT_TRUE(rects.find(r) != rects.end());
|
| }
|
|
|
| // Mark the range of blocks specified and then verify that they are
|
| @@ -142,11 +141,11 @@
|
| ClearDiffInfo();
|
| MarkBlocks(x_origin, y_origin, width, height);
|
|
|
| - scoped_ptr<DirtyRects> dirty(new DirtyRects());
|
| + scoped_ptr<InvalidRects> dirty(new InvalidRects());
|
| differ_->MergeBlocks(dirty.get());
|
|
|
| ASSERT_EQ(1UL, dirty->size());
|
| - CheckDirtyRect(dirty->at(0), x_origin, y_origin, width, height);
|
| + CheckDirtyRect(*dirty.get(), x_origin, y_origin, width, height);
|
| }
|
|
|
| // The differ class we're testing.
|
| @@ -269,7 +268,7 @@
|
| // +---+---+---+---+
|
| ClearDiffInfo();
|
|
|
| - scoped_ptr<DirtyRects> dirty(new DirtyRects());
|
| + scoped_ptr<InvalidRects> dirty(new InvalidRects());
|
| differ_->MergeBlocks(dirty.get());
|
|
|
| EXPECT_EQ(0UL, dirty->size());
|
| @@ -416,7 +415,7 @@
|
| // The exact rects returned depend on the current implementation, so these
|
| // may need to be updated if we modify how we merge blocks.
|
| TEST_F(DifferTest, MergeBlocks_MultiRect) {
|
| - scoped_ptr<DirtyRects> dirty;
|
| + scoped_ptr<InvalidRects> dirty;
|
|
|
| // +---+---+---+---+ +---+---+---+
|
| // | | X | | _ | | | 0 | |
|
| @@ -432,13 +431,13 @@
|
| MarkBlocks(0, 1, 1, 1);
|
| MarkBlocks(2, 2, 1, 1);
|
|
|
| - dirty.reset(new DirtyRects());
|
| + dirty.reset(new InvalidRects());
|
| differ_->MergeBlocks(dirty.get());
|
|
|
| ASSERT_EQ(3UL, dirty->size());
|
| - CheckDirtyRect(dirty->at(0), 1, 0, 1, 1);
|
| - CheckDirtyRect(dirty->at(1), 0, 1, 1, 1);
|
| - CheckDirtyRect(dirty->at(2), 2, 2, 1, 1);
|
| + CheckDirtyRect(*dirty.get(), 1, 0, 1, 1);
|
| + CheckDirtyRect(*dirty.get(), 0, 1, 1, 1);
|
| + CheckDirtyRect(*dirty.get(), 2, 2, 1, 1);
|
|
|
| // +---+---+---+---+ +---+---+---+
|
| // | | | X | _ | | | | 0 |
|
| @@ -453,12 +452,12 @@
|
| MarkBlocks(2, 0, 1, 3);
|
| MarkBlocks(0, 1, 2, 2);
|
|
|
| - dirty.reset(new DirtyRects());
|
| + dirty.reset(new InvalidRects());
|
| differ_->MergeBlocks(dirty.get());
|
|
|
| ASSERT_EQ(2UL, dirty->size());
|
| - CheckDirtyRect(dirty->at(0), 2, 0, 1, 3);
|
| - CheckDirtyRect(dirty->at(1), 0, 1, 2, 2);
|
| + CheckDirtyRect(*dirty.get(), 2, 0, 1, 3);
|
| + CheckDirtyRect(*dirty.get(), 0, 1, 2, 2);
|
|
|
| // +---+---+---+---+ +---+---+---+
|
| // | | | | _ | | | | |
|
| @@ -474,13 +473,13 @@
|
| MarkBlocks(2, 1, 1, 1);
|
| MarkBlocks(0, 2, 3, 1);
|
|
|
| - dirty.reset(new DirtyRects());
|
| + dirty.reset(new InvalidRects());
|
| differ_->MergeBlocks(dirty.get());
|
|
|
| ASSERT_EQ(3UL, dirty->size());
|
| - CheckDirtyRect(dirty->at(0), 0, 1, 1, 2);
|
| - CheckDirtyRect(dirty->at(1), 2, 1, 1, 2);
|
| - CheckDirtyRect(dirty->at(2), 1, 2, 1, 1);
|
| + CheckDirtyRect(*dirty.get(), 0, 1, 1, 2);
|
| + CheckDirtyRect(*dirty.get(), 2, 1, 1, 2);
|
| + CheckDirtyRect(*dirty.get(), 1, 2, 1, 1);
|
|
|
| // +---+---+---+---+ +---+---+---+
|
| // | X | X | X | _ | | 0 0 0 |
|
| @@ -497,14 +496,14 @@
|
| MarkBlocks(2, 1, 1, 1);
|
| MarkBlocks(0, 2, 3, 1);
|
|
|
| - dirty.reset(new DirtyRects());
|
| + dirty.reset(new InvalidRects());
|
| differ_->MergeBlocks(dirty.get());
|
|
|
| ASSERT_EQ(4UL, dirty->size());
|
| - CheckDirtyRect(dirty->at(0), 0, 0, 3, 1);
|
| - CheckDirtyRect(dirty->at(1), 0, 1, 1, 2);
|
| - CheckDirtyRect(dirty->at(2), 2, 1, 1, 2);
|
| - CheckDirtyRect(dirty->at(3), 1, 2, 1, 1);
|
| + CheckDirtyRect(*dirty.get(), 0, 0, 3, 1);
|
| + CheckDirtyRect(*dirty.get(), 0, 1, 1, 2);
|
| + CheckDirtyRect(*dirty.get(), 2, 1, 1, 2);
|
| + CheckDirtyRect(*dirty.get(), 1, 2, 1, 1);
|
|
|
| // +---+---+---+---+ +---+---+---+
|
| // | X | X | | _ | | 0 0 | |
|
| @@ -519,12 +518,12 @@
|
| MarkBlocks(0, 0, 2, 2);
|
| MarkBlocks(1, 2, 1, 1);
|
|
|
| - dirty.reset(new DirtyRects());
|
| + dirty.reset(new InvalidRects());
|
| differ_->MergeBlocks(dirty.get());
|
|
|
| ASSERT_EQ(2UL, dirty->size());
|
| - CheckDirtyRect(dirty->at(0), 0, 0, 2, 2);
|
| - CheckDirtyRect(dirty->at(1), 1, 2, 1, 1);
|
| + CheckDirtyRect(*dirty.get(), 0, 0, 2, 2);
|
| + CheckDirtyRect(*dirty.get(), 1, 2, 1, 1);
|
| }
|
|
|
| } // namespace remoting
|
|
|