Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(793)

Unified Diff: ui/gfx/image/image_unittest.cc

Issue 10799014: Add support for PNG representation in gfx::Image (Closed) Base URL: http://git.chromium.org/chromium/src.git@bookmark-sync
Patch Set: Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/gfx/image/image_unittest.cc
diff --git a/ui/gfx/image/image_unittest.cc b/ui/gfx/image/image_unittest.cc
index 0cdc237fabb3c356077697b766f71facb7b98cb4..239bc9b91249ae0b3af26cd8146abdd3cd1cdb75 100644
--- a/ui/gfx/image/image_unittest.cc
+++ b/ui/gfx/image/image_unittest.cc
@@ -93,6 +93,54 @@ 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));
+}
+
Robert Sesek 2012/07/31 14:07:17 nit: extra blank lines. Also, do you think it's po
cjhopman 2012/08/03 22:15:25 Done. Added tests for the failure cases also.
+
TEST_F(ImageTest, SkiaToPlatform) {
gfx::Image image(gt::CreateBitmap(25, 25));
const size_t kRepCount = kUsesSkiaNatively ? 1U : 2U;

Powered by Google App Engine
This is Rietveld 408576698