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 |
index 24418217f909a42f5158f0b2f7044434704a8445..92c5ce46e77ef7f47473e5b5adbfb8fcaeff2089 100644 |
--- a/ui/gfx/image/image_unittest_util.cc |
+++ b/ui/gfx/image/image_unittest_util.cc |
@@ -7,6 +7,8 @@ |
#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" |
@@ -28,6 +30,24 @@ |
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 |
+ |
void SetSupportedScaleFactorsTo1xAnd2x() { |
std::vector<ui::ScaleFactor> supported_scale_factors; |
supported_scale_factors.push_back(ui::SCALE_FACTOR_100P); |
@@ -94,7 +114,7 @@ bool IsEqual(const SkBitmap& bmp1, const SkBitmap& bmp2) { |
for (int y = 0; y < bmp1.height(); ++y) { |
for (int x = 0; x < bmp1.width(); ++x) { |
- if (*bmp1.getAddr32(x,y) != *bmp2.getAddr32(x,y)) |
+ if (!ColorsClose(bmp1.getColor(x,y), bmp2.getColor(x,y))) |
return false; |
} |
} |
@@ -119,7 +139,7 @@ void CheckImageIndicatesPNGDecodeFailure(const gfx::Image& image) { |
EXPECT_LE(16, bitmap.width()); |
EXPECT_LE(16, bitmap.height()); |
SkAutoLockPixels auto_lock(bitmap); |
- CheckColor(bitmap.getColor(10, 10), true); |
+ CheckColors(bitmap.getColor(10, 10), SK_ColorRED); |
} |
bool ImageSkiaStructureMatches( |
@@ -234,17 +254,8 @@ SkColor GetPlatformImageColor(PlatformImage image, int x, int y) { |
} |
#endif |
-void CheckColor(SkColor color, bool is_red) { |
- // Be tolerant of floating point rounding and lossy color space conversions. |
- if (is_red) { |
- EXPECT_GT(SkColorGetR(color) / 255.0, 0.95); |
- EXPECT_LT(SkColorGetG(color) / 255.0, 0.05); |
- } else { |
- EXPECT_GT(SkColorGetG(color) / 255.0, 0.95); |
- EXPECT_LT(SkColorGetR(color) / 255.0, 0.05); |
- } |
- EXPECT_LT(SkColorGetB(color) / 255.0, 0.05); |
- EXPECT_GT(SkColorGetA(color) / 255.0, 0.95); |
+void CheckColors(SkColor color1, SkColor color2) { |
+ EXPECT_TRUE(ColorsClose(color1, color2)); |
} |
void CheckIsTransparent(SkColor color) { |