Index: ui/gfx/image/image_unittest_util.cc |
diff --git a/ui/gfx/image/image_unittest_util.cc b/ui/gfx/image/image_unittest_util.cc |
deleted file mode 100644 |
index 0d173a63acdf8c5922b77ecf72a3c61c032d45c1..0000000000000000000000000000000000000000 |
--- a/ui/gfx/image/image_unittest_util.cc |
+++ /dev/null |
@@ -1,263 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-// Because the unit tests for gfx::Image are spread across multiple |
-// implementation files, this header contains the reusable components. |
- |
-#include "ui/gfx/image/image_unittest_util.h" |
- |
-#include <cmath> |
- |
-#include "base/memory/scoped_ptr.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
-#include "third_party/skia/include/core/SkBitmap.h" |
-#include "ui/gfx/codec/png_codec.h" |
-#include "ui/gfx/image/image_skia.h" |
- |
-#if defined(OS_IOS) |
-#include "base/mac/foundation_util.h" |
-#include "base/mac/scoped_cftyperef.h" |
-#include "skia/ext/skia_utils_ios.h" |
-#elif defined(OS_MACOSX) |
-#include "base/mac/mac_util.h" |
-#include "skia/ext/skia_utils_mac.h" |
-#endif |
- |
-namespace gfx { |
-namespace test { |
- |
-namespace { |
- |
-bool ColorComponentsClose(SkColor component1, SkColor component2) { |
- int c1 = static_cast<int>(component1); |
- int c2 = static_cast<int>(component2); |
- return std::abs(c1 - c2) <= 40; |
-} |
- |
-bool ColorsClose(SkColor color1, SkColor color2) { |
- // Be tolerant of floating point rounding and lossy color space conversions. |
- return ColorComponentsClose(SkColorGetR(color1), SkColorGetR(color2)) && |
- ColorComponentsClose(SkColorGetG(color1), SkColorGetG(color2)) && |
- ColorComponentsClose(SkColorGetB(color1), SkColorGetB(color2)) && |
- ColorComponentsClose(SkColorGetA(color1), SkColorGetA(color2)); |
-} |
- |
-} // namespace |
- |
-std::vector<float> Get1xAnd2xScales() { |
- std::vector<float> scales; |
- scales.push_back(1.0f); |
- scales.push_back(2.0f); |
- return scales; |
-} |
- |
-const SkBitmap CreateBitmap(int width, int height) { |
- SkBitmap bitmap; |
- bitmap.allocN32Pixels(width, height); |
- bitmap.eraseARGB(255, 0, 255, 0); |
- return bitmap; |
-} |
- |
-gfx::ImageSkia CreateImageSkia(int width, int height) { |
- return gfx::ImageSkia::CreateFrom1xBitmap(CreateBitmap(width, height)); |
-} |
- |
-scoped_refptr<base::RefCountedMemory> CreatePNGBytes(int edge_size) { |
- SkBitmap bitmap = CreateBitmap(edge_size, edge_size); |
- scoped_refptr<base::RefCountedBytes> bytes(new base::RefCountedBytes()); |
- PNGCodec::EncodeBGRASkBitmap(bitmap, false, &bytes->data()); |
- return bytes; |
-} |
- |
-gfx::Image CreateImage() { |
- return CreateImage(100, 50); |
-} |
- |
-gfx::Image CreateImage(int width, int height) { |
- return gfx::Image::CreateFrom1xBitmap(CreateBitmap(width, height)); |
-} |
- |
-bool IsEqual(const gfx::Image& img1, const gfx::Image& img2) { |
- img1.AsImageSkia().EnsureRepsForSupportedScales(); |
- img2.AsImageSkia().EnsureRepsForSupportedScales(); |
- std::vector<gfx::ImageSkiaRep> img1_reps = img1.AsImageSkia().image_reps(); |
- gfx::ImageSkia image_skia2 = img2.AsImageSkia(); |
- if (image_skia2.image_reps().size() != img1_reps.size()) |
- return false; |
- |
- for (size_t i = 0; i < img1_reps.size(); ++i) { |
- float scale = img1_reps[i].scale(); |
- const gfx::ImageSkiaRep& image_rep2 = image_skia2.GetRepresentation(scale); |
- if (image_rep2.scale() != scale || |
- !IsEqual(img1_reps[i].sk_bitmap(), image_rep2.sk_bitmap())) { |
- return false; |
- } |
- } |
- return true; |
-} |
- |
-bool IsEqual(const SkBitmap& bmp1, const SkBitmap& bmp2) { |
- if (bmp1.isNull() && bmp2.isNull()) |
- return true; |
- |
- if (bmp1.width() != bmp2.width() || |
- bmp1.height() != bmp2.height() || |
- bmp1.colorType() != kN32_SkColorType || |
- bmp2.colorType() != kN32_SkColorType) { |
- return false; |
- } |
- |
- SkAutoLockPixels lock1(bmp1); |
- SkAutoLockPixels lock2(bmp2); |
- if (!bmp1.getPixels() || !bmp2.getPixels()) |
- return false; |
- |
- for (int y = 0; y < bmp1.height(); ++y) { |
- for (int x = 0; x < bmp1.width(); ++x) { |
- if (!ColorsClose(bmp1.getColor(x,y), bmp2.getColor(x,y))) |
- return false; |
- } |
- } |
- |
- return true; |
-} |
- |
-bool IsEqual(const scoped_refptr<base::RefCountedMemory>& bytes, |
- const SkBitmap& bitmap) { |
- SkBitmap decoded; |
- if (!bytes.get() || |
- !PNGCodec::Decode(bytes->front(), bytes->size(), &decoded)) { |
- return bitmap.isNull(); |
- } |
- |
- return IsEqual(bitmap, decoded); |
-} |
- |
-void CheckImageIndicatesPNGDecodeFailure(const gfx::Image& image) { |
- SkBitmap bitmap = image.AsBitmap(); |
- EXPECT_FALSE(bitmap.isNull()); |
- EXPECT_LE(16, bitmap.width()); |
- EXPECT_LE(16, bitmap.height()); |
- SkAutoLockPixels auto_lock(bitmap); |
- CheckColors(bitmap.getColor(10, 10), SK_ColorRED); |
-} |
- |
-bool ImageSkiaStructureMatches( |
- const gfx::ImageSkia& image_skia, |
- int width, |
- int height, |
- const std::vector<float>& scales) { |
- if (image_skia.isNull() || |
- image_skia.width() != width || |
- image_skia.height() != height || |
- image_skia.image_reps().size() != scales.size()) { |
- return false; |
- } |
- |
- for (size_t i = 0; i < scales.size(); ++i) { |
- gfx::ImageSkiaRep image_rep = |
- image_skia.GetRepresentation(scales[i]); |
- if (image_rep.is_null() || image_rep.scale() != scales[i]) |
- return false; |
- |
- if (image_rep.pixel_width() != static_cast<int>(width * scales[i]) || |
- image_rep.pixel_height() != static_cast<int>(height * scales[i])) { |
- return false; |
- } |
- } |
- return true; |
-} |
- |
-bool IsEmpty(const gfx::Image& image) { |
- const SkBitmap& bmp = *image.ToSkBitmap(); |
- return bmp.isNull() || |
- (bmp.width() == 0 && bmp.height() == 0); |
-} |
- |
-PlatformImage CreatePlatformImage() { |
- const SkBitmap bitmap(CreateBitmap(25, 25)); |
-#if defined(OS_IOS) |
- float scale = ImageSkia::GetMaxSupportedScale(); |
- |
- base::ScopedCFTypeRef<CGColorSpaceRef> color_space( |
- CGColorSpaceCreateDeviceRGB()); |
- UIImage* image = |
- gfx::SkBitmapToUIImageWithColorSpace(bitmap, scale, color_space); |
- base::mac::NSObjectRetain(image); |
- return image; |
-#elif defined(OS_MACOSX) |
- NSImage* image = gfx::SkBitmapToNSImage(bitmap); |
- base::mac::NSObjectRetain(image); |
- return image; |
-#else |
- return gfx::ImageSkia::CreateFrom1xBitmap(bitmap); |
-#endif |
-} |
- |
-gfx::Image::RepresentationType GetPlatformRepresentationType() { |
-#if defined(OS_IOS) |
- return gfx::Image::kImageRepCocoaTouch; |
-#elif defined(OS_MACOSX) |
- return gfx::Image::kImageRepCocoa; |
-#else |
- return gfx::Image::kImageRepSkia; |
-#endif |
-} |
- |
-PlatformImage ToPlatformType(const gfx::Image& image) { |
-#if defined(OS_IOS) |
- return image.ToUIImage(); |
-#elif defined(OS_MACOSX) |
- return image.ToNSImage(); |
-#else |
- return image.AsImageSkia(); |
-#endif |
-} |
- |
-PlatformImage CopyPlatformType(const gfx::Image& image) { |
-#if defined(OS_IOS) |
- return image.CopyUIImage(); |
-#elif defined(OS_MACOSX) |
- return image.CopyNSImage(); |
-#else |
- return image.AsImageSkia(); |
-#endif |
-} |
- |
-#if defined(OS_MACOSX) |
-// Defined in image_unittest_util_mac.mm. |
-#else |
-SkColor GetPlatformImageColor(PlatformImage image, int x, int y) { |
- SkBitmap bitmap = *image.bitmap(); |
- SkAutoLockPixels auto_lock(bitmap); |
- return bitmap.getColor(x, y); |
-} |
-#endif |
- |
-void CheckColors(SkColor color1, SkColor color2) { |
- EXPECT_TRUE(ColorsClose(color1, color2)); |
-} |
- |
-void CheckIsTransparent(SkColor color) { |
- EXPECT_LT(SkColorGetA(color) / 255.0, 0.05); |
-} |
- |
-bool IsPlatformImageValid(PlatformImage image) { |
-#if defined(OS_MACOSX) |
- return image != NULL; |
-#else |
- return !image.isNull(); |
-#endif |
-} |
- |
-bool PlatformImagesEqual(PlatformImage image1, PlatformImage image2) { |
-#if defined(OS_MACOSX) |
- return image1 == image2; |
-#else |
- return image1.BackedBySameObjectAs(image2); |
-#endif |
-} |
- |
-} // namespace test |
-} // namespace gfx |