| Index: ui/gfx/image/image_unittest.cc
|
| diff --git a/ui/gfx/image/image_unittest.cc b/ui/gfx/image/image_unittest.cc
|
| index c0ee6c96af13b1c9371c063777116263d6bf1d66..73e98363256ee8e8c4c80461ee17e2908dd7250d 100644
|
| --- a/ui/gfx/image/image_unittest.cc
|
| +++ b/ui/gfx/image/image_unittest.cc
|
| @@ -93,6 +93,68 @@ TEST_F(ImageTest, SkiaToSkiaRef) {
|
| EXPECT_FALSE(image.HasRepresentation(gt::GetPlatformRepresentationType()));
|
| }
|
|
|
| +TEST_F(ImageTest, SkiaToPNGEncodeAndDecode) {
|
| + gfx::Image image(gt::CreateBitmap(25, 25));
|
| + const std::vector<unsigned char>* png = image.ToImagePNG();
|
| + EXPECT_TRUE(png);
|
| + EXPECT_FALSE(png->empty());
|
| + EXPECT_TRUE(image.HasRepresentation(gfx::Image::kImageRepPNG));
|
| +
|
| + gfx::Image from_png(&png->front(), png->size());
|
| + EXPECT_TRUE(image.HasRepresentation(gfx::Image::kImageRepPNG));
|
| + EXPECT_TRUE(gt::IsEqual(from_png, image));
|
| +}
|
| +
|
| +TEST_F(ImageTest, PlatformToPNGEncodeAndDecode) {
|
| + gfx::Image image(gt::CreatePlatformImage());
|
| + const std::vector<unsigned char>* png = image.ToImagePNG();
|
| + EXPECT_TRUE(png);
|
| + EXPECT_FALSE(png->empty());
|
| + EXPECT_TRUE(image.HasRepresentation(gfx::Image::kImageRepPNG));
|
| +
|
| + gfx::Image from_png(&png->front(), png->size());
|
| + EXPECT_TRUE(image.HasRepresentation(gfx::Image::kImageRepPNG));
|
| + EXPECT_TRUE(gt::IsPlatformImageValid(gt::ToPlatformType(image)));
|
| +}
|
| +
|
| +// The platform types use the platform provided encoding/decoding of PNGs. Make
|
| +// sure these work with the Skia Encode/Decode.
|
| +TEST_F(ImageTest, PNGEncodeFromSkiaDecodeToPlatform) {
|
| + // Force the conversion sequence skia to png to platform_type.
|
| + gfx::Image from_skia(gt::CreateBitmap(25, 25));
|
| + const std::vector<unsigned char>* png = from_skia.ToImagePNG();
|
| + gfx::Image from_png(&png->front(), png->size());
|
| + gfx::Image from_platform(gt::CopyPlatformType(from_png));
|
| +
|
| + EXPECT_TRUE(gt::IsPlatformImageValid(gt::ToPlatformType(from_platform)));
|
| + EXPECT_TRUE(gt::IsEqual(from_skia, from_platform));
|
| +}
|
| +
|
| +TEST_F(ImageTest, PNGEncodeFromPlatformDecodeToSkia) {
|
| + // Force the conversion sequence platform_type to png to skia.
|
| + gfx::Image from_platform(gt::CreatePlatformImage());
|
| + const std::vector<unsigned char>* png = from_platform.ToImagePNG();
|
| + gfx::Image from_png(&png->front(), png->size());
|
| + gfx::Image from_skia(*from_png.ToImageSkia());
|
| +
|
| + EXPECT_TRUE(gt::IsEqual(from_skia, from_platform));
|
| +}
|
| +
|
| +TEST_F(ImageTest, PNGDecodeToSkiaFailure) {
|
| + std::vector<unsigned char> png(100, 0);
|
| + gfx::Image image(&png.front(), png.size());
|
| + const SkBitmap* bitmap = image.ToSkBitmap();
|
| +
|
| + SkAutoLockPixels auto_lock(*bitmap);
|
| + gt::CheckColor(bitmap->getColor(10, 10), true);
|
| +}
|
| +
|
| +TEST_F(ImageTest, PNGDecodeToPlatformFailure) {
|
| + std::vector<unsigned char> png(100, 0);
|
| + gfx::Image image(&png.front(), png.size());
|
| + gt::CheckColor(gt::GetPlatformImageColor(gt::ToPlatformType(image)), true);
|
| +}
|
| +
|
| TEST_F(ImageTest, SkiaToPlatform) {
|
| gfx::Image image(gt::CreateBitmap(25, 25));
|
| const size_t kRepCount = kUsesSkiaNatively ? 1U : 2U;
|
| @@ -196,11 +258,10 @@ TEST_F(ImageTest, SkiaToCocoaCopy) {
|
|
|
| TEST_F(ImageTest, CheckSkiaColor) {
|
| gfx::Image image(gt::CreatePlatformImage());
|
| - const SkBitmap* bitmap = image.ToSkBitmap();
|
|
|
| + const SkBitmap* bitmap = image.ToSkBitmap();
|
| SkAutoLockPixels auto_lock(*bitmap);
|
| - uint32_t* pixel = bitmap->getAddr32(10, 10);
|
| - EXPECT_EQ(SK_ColorRED, *pixel);
|
| + gt::CheckColor(bitmap->getColor(10, 10), false);
|
| }
|
|
|
| TEST_F(ImageTest, SwapRepresentations) {
|
|
|