OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Because the unit tests for gfx::Image are spread across multiple | 5 // Because the unit tests for gfx::Image are spread across multiple |
6 // implementation files, this header contains the reusable components. | 6 // implementation files, this header contains the reusable components. |
7 | 7 |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 #include "ui/base/layout.h" | 9 #include "ui/base/layout.h" |
10 #include "ui/gfx/image/image_unittest_util.h" | 10 #include "ui/gfx/image/image_unittest_util.h" |
11 #include "testing/gtest/include/gtest/gtest.h" | 11 #include "testing/gtest/include/gtest/gtest.h" |
12 #include "third_party/skia/include/core/SkBitmap.h" | 12 #include "third_party/skia/include/core/SkBitmap.h" |
13 | 13 |
14 #if defined(TOOLKIT_GTK) | 14 #if defined(TOOLKIT_GTK) |
| 15 #include <gtk/gtk.h> |
15 #include "ui/gfx/gtk_util.h" | 16 #include "ui/gfx/gtk_util.h" |
16 #elif defined(OS_MACOSX) | 17 #elif defined(OS_MACOSX) |
17 #include "base/mac/mac_util.h" | 18 #include "base/mac/mac_util.h" |
18 #include "skia/ext/skia_utils_mac.h" | 19 #include "skia/ext/skia_utils_mac.h" |
19 #endif | 20 #endif |
20 | 21 |
21 namespace gfx { | 22 namespace gfx { |
22 namespace test { | 23 namespace test { |
23 | 24 |
24 #if defined(OS_MACOSX) | 25 #if defined(OS_MACOSX) |
25 | 26 |
26 void SetSupportedScaleFactorsTo1xAnd2x() { | 27 void SetSupportedScaleFactorsTo1xAnd2x() { |
27 std::vector<ui::ScaleFactor> supported_scale_factors; | 28 std::vector<ui::ScaleFactor> supported_scale_factors; |
28 supported_scale_factors.push_back(ui::SCALE_FACTOR_100P); | 29 supported_scale_factors.push_back(ui::SCALE_FACTOR_100P); |
29 supported_scale_factors.push_back(ui::SCALE_FACTOR_200P); | 30 supported_scale_factors.push_back(ui::SCALE_FACTOR_200P); |
30 ui::test::SetSupportedScaleFactors(supported_scale_factors); | 31 ui::test::SetSupportedScaleFactors(supported_scale_factors); |
31 } | 32 } |
32 | 33 |
33 #endif // OS_MACOSX | 34 #endif // OS_MACOSX |
34 | 35 |
35 const SkBitmap CreateBitmap(int width, int height) { | 36 const SkBitmap CreateBitmap(int width, int height) { |
36 SkBitmap bitmap; | 37 SkBitmap bitmap; |
37 bitmap.setConfig(SkBitmap::kARGB_8888_Config, width, height); | 38 bitmap.setConfig(SkBitmap::kARGB_8888_Config, width, height); |
38 bitmap.allocPixels(); | 39 bitmap.allocPixels(); |
39 bitmap.eraseRGB(255, 0, 0); | 40 bitmap.eraseRGB(0, 255, 0); |
40 return bitmap; | 41 return bitmap; |
41 } | 42 } |
42 | 43 |
43 gfx::Image CreateImage() { | 44 gfx::Image CreateImage() { |
44 return CreateImage(100, 50); | 45 return CreateImage(100, 50); |
45 } | 46 } |
46 | 47 |
47 gfx::Image CreateImage(int width, int height) { | 48 gfx::Image CreateImage(int width, int height) { |
48 return gfx::Image(CreateBitmap(width, height)); | 49 return gfx::Image(CreateBitmap(width, height)); |
49 } | 50 } |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
106 PlatformImage ToPlatformType(const gfx::Image& image) { | 107 PlatformImage ToPlatformType(const gfx::Image& image) { |
107 #if defined(OS_MACOSX) | 108 #if defined(OS_MACOSX) |
108 return image.ToNSImage(); | 109 return image.ToNSImage(); |
109 #elif defined(TOOLKIT_GTK) | 110 #elif defined(TOOLKIT_GTK) |
110 return image.ToGdkPixbuf(); | 111 return image.ToGdkPixbuf(); |
111 #else | 112 #else |
112 return *image.ToSkBitmap(); | 113 return *image.ToSkBitmap(); |
113 #endif | 114 #endif |
114 } | 115 } |
115 | 116 |
| 117 PlatformImage CopyPlatformType(const gfx::Image& image) { |
| 118 #if defined(OS_MACOSX) |
| 119 return image.CopyNSImage(); |
| 120 #elif defined(TOOLKIT_GTK) |
| 121 return image.CopyGdkPixbuf(); |
| 122 #else |
| 123 return *image.ToSkBitmap(); |
| 124 #endif |
| 125 } |
| 126 |
| 127 #if defined(OS_MACOSX) |
| 128 // Defined in image_unittest_util_mac.mm. |
| 129 #elif defined(TOOLKIT_GTK) |
| 130 SkColor GetPlatformImageColor(PlatformImage image) { |
| 131 guchar* gdk_pixels = gdk_pixbuf_get_pixels(image); |
| 132 guchar alpha = gdk_pixbuf_get_has_alpha(image) ? gdk_pixels[3] : 255; |
| 133 return SkColorSetARGB(alpha, gdk_pixels[0], gdk_pixels[1], gdk_pixels[2]); |
| 134 } |
| 135 #else |
| 136 SkColor GetPlatformImageColor(PlatformImage image) { |
| 137 SkAutoLockPixels auto_lock(image); |
| 138 return image.getColor(10, 10); |
| 139 } |
| 140 #endif |
| 141 |
| 142 void CheckColor(SkColor color, bool is_red) { |
| 143 // Be tolerant of floating point rounding and lossy color space conversions. |
| 144 if (is_red) { |
| 145 EXPECT_GT(SkColorGetR(color), 0.95); |
| 146 EXPECT_LT(SkColorGetG(color), 0.05); |
| 147 } else { |
| 148 EXPECT_GT(SkColorGetG(color), 0.95); |
| 149 EXPECT_LT(SkColorGetR(color), 0.05); |
| 150 } |
| 151 EXPECT_LT(SkColorGetB(color), 0.05); |
| 152 EXPECT_GT(SkColorGetA(color), 0.95); |
| 153 } |
| 154 |
116 bool IsPlatformImageValid(PlatformImage image) { | 155 bool IsPlatformImageValid(PlatformImage image) { |
117 #if defined(OS_MACOSX) || defined(TOOLKIT_GTK) | 156 #if defined(OS_MACOSX) || defined(TOOLKIT_GTK) |
118 return image != NULL; | 157 return image != NULL; |
119 #else | 158 #else |
120 return !image.isNull(); | 159 return !image.isNull(); |
121 #endif | 160 #endif |
122 } | 161 } |
123 | 162 |
124 bool PlatformImagesEqual(PlatformImage image1, PlatformImage image2) { | 163 bool PlatformImagesEqual(PlatformImage image1, PlatformImage image2) { |
125 #if defined(OS_MACOSX) || defined(TOOLKIT_GTK) | 164 #if defined(OS_MACOSX) || defined(TOOLKIT_GTK) |
126 return image1 == image2; | 165 return image1 == image2; |
127 #else | 166 #else |
128 return image1.getPixels() == image2.getPixels(); | 167 return image1.getPixels() == image2.getPixels(); |
129 #endif | 168 #endif |
130 } | 169 } |
131 | 170 |
132 } // namespace test | 171 } // namespace test |
133 } // namespace gfx | 172 } // namespace gfx |
OLD | NEW |