Index: media/video/capture/screen/screen_capturer_helper_unittest.cc |
diff --git a/media/video/capture/screen/screen_capturer_helper_unittest.cc b/media/video/capture/screen/screen_capturer_helper_unittest.cc |
index dc222316c8dc04382c26f8a01b3318fc2ea91fbd..747778650910354e852ae876bcc7937d2bc8d010 100644 |
--- a/media/video/capture/screen/screen_capturer_helper_unittest.cc |
+++ b/media/video/capture/screen/screen_capturer_helper_unittest.cc |
@@ -7,6 +7,10 @@ |
#include "base/memory/scoped_ptr.h" |
#include "testing/gtest/include/gtest/gtest.h" |
+using webrtc::DesktopRect; |
+using webrtc::DesktopRegion; |
+using webrtc::DesktopSize; |
+ |
namespace media { |
class ScreenCapturerHelperTest : public testing::Test { |
@@ -14,114 +18,120 @@ class ScreenCapturerHelperTest : public testing::Test { |
ScreenCapturerHelper capturer_helper_; |
}; |
+bool Equals(const DesktopRegion& region1, const DesktopRegion& region2) { |
+ DesktopRegion::Iterator iter1(region1); |
+ DesktopRegion::Iterator iter2(region2); |
+ while (!iter1.IsAtEnd() && !iter1.IsAtEnd()) { |
+ if (!iter1.rect().equals(iter2.rect())) { |
+ return false; |
+ } |
+ iter1.Advance(); |
+ iter2.Advance(); |
+ } |
+ return iter1.IsAtEnd() && iter2.IsAtEnd(); |
+} |
+ |
bool Equals(const SkRegion& region1, const SkRegion& region2) { |
SkRegion::Iterator iter1(region1); |
SkRegion::Iterator iter2(region2); |
- while (!iter1.done()) { |
- SkIRect rect1 = iter1.rect(); |
- iter1.next(); |
- if (iter2.done()) { |
+ while (!iter1.done() && !iter2.done()) { |
+ if (iter1.rect() != iter2.rect()) { |
return false; |
} |
- SkIRect rect2 = iter2.rect(); |
+ iter1.next(); |
iter2.next(); |
- if (rect1 != rect2) { |
- return false; |
- } |
} |
- if (!iter2.done()) { |
- return false; |
- } |
- return true; |
+ return iter1.done() && iter2.done(); |
+} |
+ |
+DesktopRegion RectToRegion(const DesktopRect& rect) { |
+ webrtc::DesktopRegion result; |
+ result.SetRect(rect); |
+ return result; |
} |
TEST_F(ScreenCapturerHelperTest, ClearInvalidRegion) { |
- SkRegion region; |
- capturer_helper_.InvalidateRegion(SkRegion(SkIRect::MakeXYWH(1, 2, 3, 4))); |
+ DesktopRegion region; |
+ region.SetRect(DesktopRect::MakeXYWH(1, 2, 3, 4)); |
+ capturer_helper_.InvalidateRegion(region); |
capturer_helper_.ClearInvalidRegion(); |
- capturer_helper_.SwapInvalidRegion(®ion); |
- ASSERT_TRUE(region.isEmpty()); |
+ capturer_helper_.TakeInvalidRegion(®ion); |
+ ASSERT_TRUE(region.is_empty()); |
} |
TEST_F(ScreenCapturerHelperTest, InvalidateRegion) { |
- SkRegion region; |
- capturer_helper_.SwapInvalidRegion(®ion); |
- ASSERT_TRUE(Equals(SkRegion(SkIRect::MakeEmpty()), region)); |
- |
- capturer_helper_.InvalidateRegion(SkRegion(SkIRect::MakeXYWH(1, 2, 3, 4))); |
- region.setEmpty(); |
- capturer_helper_.SwapInvalidRegion(®ion); |
- ASSERT_TRUE(Equals(SkRegion(SkIRect::MakeXYWH(1, 2, 3, 4)), region)); |
- |
- capturer_helper_.InvalidateRegion(SkRegion(SkIRect::MakeXYWH(1, 2, 3, 4))); |
- capturer_helper_.InvalidateRegion(SkRegion(SkIRect::MakeXYWH(4, 2, 3, 4))); |
- region.setEmpty(); |
- capturer_helper_.SwapInvalidRegion(®ion); |
- ASSERT_TRUE(Equals(SkRegion(SkIRect::MakeXYWH(1, 2, 6, 4)), region)); |
+ DesktopRegion region; |
+ capturer_helper_.TakeInvalidRegion(®ion); |
+ ASSERT_TRUE(region.is_empty()); |
+ |
+ region.SetRect(DesktopRect::MakeXYWH(1, 2, 3, 4)); |
+ capturer_helper_.InvalidateRegion(region); |
+ capturer_helper_.TakeInvalidRegion(®ion); |
+ ASSERT_TRUE(Equals(RectToRegion(DesktopRect::MakeXYWH(1, 2, 3, 4)), region)); |
+ |
+ capturer_helper_.InvalidateRegion( |
+ RectToRegion(DesktopRect::MakeXYWH(1, 2, 3, 4))); |
+ capturer_helper_.InvalidateRegion( |
+ RectToRegion(DesktopRect::MakeXYWH(4, 2, 3, 4))); |
+ capturer_helper_.TakeInvalidRegion(®ion); |
+ ASSERT_TRUE(Equals(RectToRegion(DesktopRect::MakeXYWH(1, 2, 6, 4)), region)); |
} |
TEST_F(ScreenCapturerHelperTest, InvalidateScreen) { |
- SkRegion region; |
- capturer_helper_.InvalidateScreen(SkISize::Make(12, 34)); |
- capturer_helper_.SwapInvalidRegion(®ion); |
- ASSERT_TRUE(Equals(SkRegion(SkIRect::MakeWH(12, 34)), region)); |
-} |
- |
-TEST_F(ScreenCapturerHelperTest, InvalidateFullScreen) { |
- SkRegion region; |
- capturer_helper_.set_size_most_recent(SkISize::Make(12, 34)); |
- capturer_helper_.InvalidateFullScreen(); |
- capturer_helper_.SwapInvalidRegion(®ion); |
- ASSERT_TRUE(Equals(SkRegion(SkIRect::MakeWH(12, 34)), region)); |
+ DesktopRegion region; |
+ capturer_helper_.InvalidateScreen(DesktopSize(12, 34)); |
+ capturer_helper_.TakeInvalidRegion(®ion); |
+ ASSERT_TRUE(Equals(RectToRegion(DesktopRect::MakeWH(12, 34)), region)); |
} |
TEST_F(ScreenCapturerHelperTest, SizeMostRecent) { |
- ASSERT_EQ(SkISize::Make(0, 0), capturer_helper_.size_most_recent()); |
- capturer_helper_.set_size_most_recent(SkISize::Make(12, 34)); |
- ASSERT_EQ(SkISize::Make(12, 34), capturer_helper_.size_most_recent()); |
+ ASSERT_TRUE(capturer_helper_.size_most_recent().is_empty()); |
+ capturer_helper_.set_size_most_recent(DesktopSize(12, 34)); |
+ ASSERT_TRUE( |
+ DesktopSize(12, 34).equals(capturer_helper_.size_most_recent())); |
} |
TEST_F(ScreenCapturerHelperTest, SetLogGridSize) { |
- capturer_helper_.set_size_most_recent(SkISize::Make(10, 10)); |
+ capturer_helper_.set_size_most_recent(DesktopSize(10, 10)); |
- SkRegion region; |
- capturer_helper_.SwapInvalidRegion(®ion); |
- ASSERT_TRUE(Equals(SkRegion(SkIRect::MakeEmpty()), region)); |
+ DesktopRegion region; |
+ capturer_helper_.TakeInvalidRegion(®ion); |
+ ASSERT_TRUE(Equals(RectToRegion(DesktopRect()), region)); |
- capturer_helper_.InvalidateRegion(SkRegion(SkIRect::MakeXYWH(7, 7, 1, 1))); |
- region.setEmpty(); |
- capturer_helper_.SwapInvalidRegion(®ion); |
- ASSERT_TRUE(Equals(SkRegion(SkIRect::MakeXYWH(7, 7, 1, 1)), region)); |
+ capturer_helper_.InvalidateRegion( |
+ RectToRegion(DesktopRect::MakeXYWH(7, 7, 1, 1))); |
+ capturer_helper_.TakeInvalidRegion(®ion); |
+ ASSERT_TRUE(Equals(RectToRegion(DesktopRect::MakeXYWH(7, 7, 1, 1)), region)); |
capturer_helper_.SetLogGridSize(-1); |
- capturer_helper_.InvalidateRegion(SkRegion(SkIRect::MakeXYWH(7, 7, 1, 1))); |
- region.setEmpty(); |
- capturer_helper_.SwapInvalidRegion(®ion); |
- ASSERT_TRUE(Equals(SkRegion(SkIRect::MakeXYWH(7, 7, 1, 1)), region)); |
+ capturer_helper_.InvalidateRegion( |
+ RectToRegion(DesktopRect::MakeXYWH(7, 7, 1, 1))); |
+ capturer_helper_.TakeInvalidRegion(®ion); |
+ ASSERT_TRUE(Equals(RectToRegion(DesktopRect::MakeXYWH(7, 7, 1, 1)), region)); |
capturer_helper_.SetLogGridSize(0); |
- capturer_helper_.InvalidateRegion(SkRegion(SkIRect::MakeXYWH(7, 7, 1, 1))); |
- region.setEmpty(); |
- capturer_helper_.SwapInvalidRegion(®ion); |
- ASSERT_TRUE(Equals(SkRegion(SkIRect::MakeXYWH(7, 7, 1, 1)), region)); |
+ capturer_helper_.InvalidateRegion( |
+ RectToRegion(DesktopRect::MakeXYWH(7, 7, 1, 1))); |
+ capturer_helper_.TakeInvalidRegion(®ion); |
+ ASSERT_TRUE(Equals(RectToRegion(DesktopRect::MakeXYWH(7, 7, 1, 1)), region)); |
capturer_helper_.SetLogGridSize(1); |
- capturer_helper_.InvalidateRegion(SkRegion(SkIRect::MakeXYWH(7, 7, 1, 1))); |
- region.setEmpty(); |
- capturer_helper_.SwapInvalidRegion(®ion); |
- ASSERT_TRUE(Equals(SkRegion(SkIRect::MakeXYWH(6, 6, 2, 2)), region)); |
+ capturer_helper_.InvalidateRegion( |
+ RectToRegion(DesktopRect::MakeXYWH(7, 7, 1, 1))); |
+ capturer_helper_.TakeInvalidRegion(®ion); |
+ ASSERT_TRUE(Equals(RectToRegion(DesktopRect::MakeXYWH(6, 6, 2, 2)), region)); |
capturer_helper_.SetLogGridSize(2); |
- capturer_helper_.InvalidateRegion(SkRegion(SkIRect::MakeXYWH(7, 7, 1, 1))); |
- region.setEmpty(); |
- capturer_helper_.SwapInvalidRegion(®ion); |
- ASSERT_TRUE(Equals(SkRegion(SkIRect::MakeXYWH(4, 4, 4, 4)), region)); |
+ capturer_helper_.InvalidateRegion( |
+ RectToRegion(DesktopRect::MakeXYWH(7, 7, 1, 1))); |
+ capturer_helper_.TakeInvalidRegion(®ion); |
+ ASSERT_TRUE(Equals(RectToRegion(DesktopRect::MakeXYWH(4, 4, 4, 4)), region)); |
capturer_helper_.SetLogGridSize(0); |
- capturer_helper_.InvalidateRegion(SkRegion(SkIRect::MakeXYWH(7, 7, 1, 1))); |
- region.setEmpty(); |
- capturer_helper_.SwapInvalidRegion(®ion); |
- ASSERT_TRUE(Equals(SkRegion(SkIRect::MakeXYWH(7, 7, 1, 1)), region)); |
+ capturer_helper_.InvalidateRegion( |
+ RectToRegion(DesktopRect::MakeXYWH(7, 7, 1, 1))); |
+ capturer_helper_.TakeInvalidRegion(®ion); |
+ ASSERT_TRUE(Equals(RectToRegion(DesktopRect::MakeXYWH(7, 7, 1, 1)), region)); |
} |
void TestExpandRegionToGrid(const SkRegion& region, int log_grid_size, |