Index: ui/gfx/image/image_util_unittest.cc |
diff --git a/ui/gfx/image/image_util_unittest.cc b/ui/gfx/image/image_util_unittest.cc |
index 4816891cda183b294e1beb01f7807d1d68ac8161..c31874766a012f42bef0bc2429e194d8837bb41c 100644 |
--- a/ui/gfx/image/image_util_unittest.cc |
+++ b/ui/gfx/image/image_util_unittest.cc |
@@ -26,73 +26,110 @@ TEST(ImageUtilTest, JPEGEncodeAndDecode) { |
EXPECT_FALSE(decoded.IsEmpty()); |
} |
-TEST(ImageUtilTest, TestVisibleMargins) { |
- // Image with non-transparent piece should return margins at those |
- // columns. |
- SkBitmap bitmap1; |
- bitmap1.allocN32Pixels(16, 16); |
- bitmap1.eraseColor(SK_ColorTRANSPARENT); |
- bitmap1.eraseArea(SkIRect::MakeLTRB(3, 3, 14, 14), SK_ColorYELLOW); |
- gfx::ImageSkia img = gfx::ImageSkia::CreateFrom1xBitmap(bitmap1); |
- int x = 0; |
- int y = 0; |
- gfx::VisibleMargins(img, &x, &y); |
- EXPECT_EQ(3, x); |
- EXPECT_EQ(13, y); |
- EXPECT_EQ(16, img.width()); |
- |
- // Full-width-transparent image should return margins in the center |
- // of the image. |
- SkBitmap bitmap2; |
- bitmap2.allocN32Pixels(16, 16); |
- bitmap2.eraseColor(SK_ColorTRANSPARENT); |
- gfx::ImageSkia img_transparent = gfx::ImageSkia::CreateFrom1xBitmap(bitmap2); |
- x = 0; |
- y = 0; |
- gfx::VisibleMargins(img_transparent, &x, &y); |
- EXPECT_EQ(8, x); |
- EXPECT_EQ(9, y); |
- EXPECT_EQ(16, img_transparent.width()); |
- |
- // Image with non-transparent piece that is skewed to one side should |
- // return margins at those columns. |
- SkBitmap bitmap3; |
- bitmap3.allocN32Pixels(16, 16); |
- bitmap3.eraseColor(SK_ColorTRANSPARENT); |
- bitmap3.eraseArea(SkIRect::MakeLTRB(3, 3, 5, 5), SK_ColorYELLOW); |
- gfx::ImageSkia img3 = gfx::ImageSkia::CreateFrom1xBitmap(bitmap3); |
- x = 0; |
- y = 0; |
- gfx::VisibleMargins(img3, &x, &y); |
- EXPECT_EQ(3, x); |
- EXPECT_EQ(4, y); |
- EXPECT_EQ(16, img3.width()); |
- |
- // Image with non-transparent piece that is at one edge should |
- // return margins at those columns. |
- SkBitmap bitmap4; |
- bitmap4.allocN32Pixels(16, 16); |
- bitmap4.eraseColor(SK_ColorTRANSPARENT); |
- bitmap4.eraseArea(SkIRect::MakeLTRB(0, 3, 5, 5), SK_ColorYELLOW); |
- gfx::ImageSkia img4 = gfx::ImageSkia::CreateFrom1xBitmap(bitmap4); |
- x = 0; |
- y = 0; |
- gfx::VisibleMargins(img4, &x, &y); |
- EXPECT_EQ(0, x); |
- EXPECT_EQ(4, y); |
- EXPECT_EQ(16, img4.width()); |
- |
- // Image with non-transparent piece that is at trailing edge should |
- // return margins at those columns. |
- SkBitmap bitmap5; |
- bitmap5.allocN32Pixels(16, 16); |
- bitmap5.eraseColor(SK_ColorTRANSPARENT); |
- bitmap5.eraseArea(SkIRect::MakeLTRB(4, 3, 16, 16), SK_ColorYELLOW); |
- gfx::ImageSkia img5 = gfx::ImageSkia::CreateFrom1xBitmap(bitmap5); |
- x = 0; |
- y = 0; |
- gfx::VisibleMargins(img5, &x, &y); |
- EXPECT_EQ(4, x); |
- EXPECT_EQ(15, y); |
- EXPECT_EQ(16, img5.width()); |
+TEST(ImageUtilTest, GetVisibleMargins) { |
+ int left, right; |
+ |
+ // Fully transparent image. |
+ { |
+ SkBitmap bitmap; |
+ bitmap.allocN32Pixels(16, 16); |
danakj
2016/03/25 23:35:28
less symmetry would be nice, what if the code conf
Peter Kasting
2016/03/26 01:01:57
Sure, I can go through these and ensure that heigh
|
+ bitmap.eraseColor(SK_ColorTRANSPARENT); |
+ gfx::ImageSkia img(gfx::ImageSkia::CreateFrom1xBitmap(bitmap)); |
+ gfx::GetVisibleMargins(img, &left, &right); |
+ EXPECT_EQ(8, left); |
+ EXPECT_EQ(8, right); |
+ } |
+ |
+ // Fully non-transparent image. |
+ { |
+ SkBitmap bitmap; |
+ bitmap.allocN32Pixels(16, 16); |
+ bitmap.eraseColor(SK_ColorYELLOW); |
+ gfx::ImageSkia img(gfx::ImageSkia::CreateFrom1xBitmap(bitmap)); |
+ gfx::GetVisibleMargins(img, &left, &right); |
+ EXPECT_EQ(0, left); |
+ EXPECT_EQ(0, right); |
+ } |
+ |
+ // Image with non-transparent section in center. |
+ { |
+ SkBitmap bitmap; |
+ bitmap.allocN32Pixels(16, 16); |
+ bitmap.eraseColor(SK_ColorTRANSPARENT); |
+ bitmap.eraseArea(SkIRect::MakeLTRB(3, 3, 13, 13), SK_ColorYELLOW); |
+ gfx::ImageSkia img(gfx::ImageSkia::CreateFrom1xBitmap(bitmap)); |
+ gfx::GetVisibleMargins(img, &left, &right); |
+ EXPECT_EQ(3, left); |
+ EXPECT_EQ(3, right); |
+ } |
+ |
+ // Image with non-transparent section skewed to one side. |
+ { |
+ SkBitmap bitmap; |
+ bitmap.allocN32Pixels(16, 16); |
+ bitmap.eraseColor(SK_ColorTRANSPARENT); |
+ bitmap.eraseArea(SkIRect::MakeLTRB(3, 3, 5, 5), SK_ColorYELLOW); |
+ gfx::ImageSkia img(gfx::ImageSkia::CreateFrom1xBitmap(bitmap)); |
+ gfx::GetVisibleMargins(img, &left, &right); |
+ EXPECT_EQ(3, left); |
+ EXPECT_EQ(11, right); |
+ } |
+ |
+ // Image with non-transparent section at leading edge. |
+ { |
+ SkBitmap bitmap; |
+ bitmap.allocN32Pixels(16, 16); |
+ bitmap.eraseColor(SK_ColorTRANSPARENT); |
+ bitmap.eraseArea(SkIRect::MakeLTRB(0, 3, 5, 5), SK_ColorYELLOW); |
+ gfx::ImageSkia img(gfx::ImageSkia::CreateFrom1xBitmap(bitmap)); |
+ gfx::GetVisibleMargins(img, &left, &right); |
+ EXPECT_EQ(0, left); |
+ EXPECT_EQ(11, right); |
+ } |
+ |
+ // Image with non-transparent section at trailing edge. |
+ { |
+ SkBitmap bitmap; |
+ bitmap.allocN32Pixels(16, 16); |
+ bitmap.eraseColor(SK_ColorTRANSPARENT); |
+ bitmap.eraseArea(SkIRect::MakeLTRB(4, 3, 16, 16), SK_ColorYELLOW); |
+ gfx::ImageSkia img(gfx::ImageSkia::CreateFrom1xBitmap(bitmap)); |
+ gfx::GetVisibleMargins(img, &left, &right); |
+ EXPECT_EQ(4, left); |
+ EXPECT_EQ(0, right); |
+ } |
+ |
+ // Image with narrow non-transparent section. |
+ { |
+ SkBitmap bitmap; |
+ bitmap.allocN32Pixels(16, 16); |
+ bitmap.eraseColor(SK_ColorTRANSPARENT); |
+ bitmap.eraseArea(SkIRect::MakeLTRB(8, 3, 9, 5), SK_ColorYELLOW); |
+ gfx::ImageSkia img(gfx::ImageSkia::CreateFrom1xBitmap(bitmap)); |
+ gfx::GetVisibleMargins(img, &left, &right); |
+ EXPECT_EQ(8, left); |
+ EXPECT_EQ(7, right); |
+ } |
+ |
+ // Image with faint pixels. |
+ { |
+ SkBitmap bitmap; |
+ bitmap.allocN32Pixels(16, 16); |
+ bitmap.eraseColor(SkColorSetA(SK_ColorYELLOW, 0x02)); |
+ gfx::ImageSkia img(gfx::ImageSkia::CreateFrom1xBitmap(bitmap)); |
+ gfx::GetVisibleMargins(img, &left, &right); |
+ EXPECT_EQ(8, left); |
+ EXPECT_EQ(8, right); |
+ } |
+ |
+ // Fully transparent image with odd width. |
+ { |
+ SkBitmap bitmap; |
+ bitmap.allocN32Pixels(17, 16); |
+ bitmap.eraseColor(SK_ColorTRANSPARENT); |
+ gfx::ImageSkia img(gfx::ImageSkia::CreateFrom1xBitmap(bitmap)); |
+ gfx::GetVisibleMargins(img, &left, &right); |
+ EXPECT_EQ(9, left); |
+ EXPECT_EQ(8, right); |
+ } |
} |