OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 #include "ui/gfx/icon_util.h" | 5 #include "ui/gfx/icon_util.h" |
6 | 6 |
7 #include "base/file_util.h" | 7 #include "base/file_util.h" |
8 #include "base/files/scoped_temp_dir.h" | 8 #include "base/files/scoped_temp_dir.h" |
9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
10 #include "base/path_service.h" | 10 #include "base/path_service.h" |
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
165 | 165 |
166 // The following test case makes sure IconUtil::CreateHICONFromSkBitmap fails | 166 // The following test case makes sure IconUtil::CreateHICONFromSkBitmap fails |
167 // gracefully when called with invalid input parameters. | 167 // gracefully when called with invalid input parameters. |
168 TEST_F(IconUtilTest, TestBitmapToIconInvalidParameters) { | 168 TEST_F(IconUtilTest, TestBitmapToIconInvalidParameters) { |
169 HICON icon = NULL; | 169 HICON icon = NULL; |
170 scoped_ptr<SkBitmap> bitmap; | 170 scoped_ptr<SkBitmap> bitmap; |
171 | 171 |
172 // Wrong bitmap format. | 172 // Wrong bitmap format. |
173 bitmap.reset(new SkBitmap); | 173 bitmap.reset(new SkBitmap); |
174 ASSERT_NE(bitmap.get(), static_cast<SkBitmap*>(NULL)); | 174 ASSERT_NE(bitmap.get(), static_cast<SkBitmap*>(NULL)); |
175 bitmap->setConfig(SkImageInfo::MakeA8(kSmallIconWidth, kSmallIconHeight)); | 175 bitmap->setInfo(SkImageInfo::MakeA8(kSmallIconWidth, kSmallIconHeight)); |
176 icon = IconUtil::CreateHICONFromSkBitmap(*bitmap); | 176 icon = IconUtil::CreateHICONFromSkBitmap(*bitmap); |
177 EXPECT_EQ(icon, static_cast<HICON>(NULL)); | 177 EXPECT_EQ(icon, static_cast<HICON>(NULL)); |
178 | 178 |
179 // Invalid bitmap size. | 179 // Invalid bitmap size. |
180 bitmap.reset(new SkBitmap); | 180 bitmap.reset(new SkBitmap); |
181 ASSERT_NE(bitmap.get(), static_cast<SkBitmap*>(NULL)); | 181 ASSERT_NE(bitmap.get(), static_cast<SkBitmap*>(NULL)); |
182 bitmap->setConfig(SkImageInfo::MakeN32Premul(0, 0)); | 182 bitmap->setInfo(SkImageInfo::MakeN32Premul(0, 0)); |
183 icon = IconUtil::CreateHICONFromSkBitmap(*bitmap); | 183 icon = IconUtil::CreateHICONFromSkBitmap(*bitmap); |
184 EXPECT_EQ(icon, static_cast<HICON>(NULL)); | 184 EXPECT_EQ(icon, static_cast<HICON>(NULL)); |
185 | 185 |
186 // Valid bitmap configuration but no pixels allocated. | 186 // Valid bitmap configuration but no pixels allocated. |
187 bitmap.reset(new SkBitmap); | 187 bitmap.reset(new SkBitmap); |
188 ASSERT_NE(bitmap.get(), static_cast<SkBitmap*>(NULL)); | 188 ASSERT_NE(bitmap.get(), static_cast<SkBitmap*>(NULL)); |
189 bitmap->setConfig(SkImageInfo::MakeN32Premul(kSmallIconWidth, | 189 bitmap->setInfo(SkImageInfo::MakeN32Premul(kSmallIconWidth, |
190 kSmallIconHeight)); | 190 kSmallIconHeight)); |
191 icon = IconUtil::CreateHICONFromSkBitmap(*bitmap); | 191 icon = IconUtil::CreateHICONFromSkBitmap(*bitmap); |
192 EXPECT_TRUE(icon == NULL); | 192 EXPECT_TRUE(icon == NULL); |
193 } | 193 } |
194 | 194 |
195 // The following test case makes sure IconUtil::CreateIconFileFromImageFamily | 195 // The following test case makes sure IconUtil::CreateIconFileFromImageFamily |
196 // fails gracefully when called with invalid input parameters. | 196 // fails gracefully when called with invalid input parameters. |
197 TEST_F(IconUtilTest, TestCreateIconFileInvalidParameters) { | 197 TEST_F(IconUtilTest, TestCreateIconFileInvalidParameters) { |
198 scoped_ptr<SkBitmap> bitmap; | 198 scoped_ptr<SkBitmap> bitmap; |
199 gfx::ImageFamily image_family; | 199 gfx::ImageFamily image_family; |
200 base::FilePath valid_icon_filename = temp_directory_.path().AppendASCII( | 200 base::FilePath valid_icon_filename = temp_directory_.path().AppendASCII( |
201 kTempIconFilename); | 201 kTempIconFilename); |
202 base::FilePath invalid_icon_filename = temp_directory_.path().AppendASCII( | 202 base::FilePath invalid_icon_filename = temp_directory_.path().AppendASCII( |
203 "<>?.ico"); | 203 "<>?.ico"); |
204 | 204 |
205 // Wrong bitmap format. | 205 // Wrong bitmap format. |
206 bitmap.reset(new SkBitmap); | 206 bitmap.reset(new SkBitmap); |
207 ASSERT_NE(bitmap.get(), static_cast<SkBitmap*>(NULL)); | 207 ASSERT_NE(bitmap.get(), static_cast<SkBitmap*>(NULL)); |
208 bitmap->setConfig(SkImageInfo::MakeA8(kSmallIconWidth, kSmallIconHeight)); | |
209 // Must allocate pixels or else ImageSkia will ignore the bitmap and just | 208 // Must allocate pixels or else ImageSkia will ignore the bitmap and just |
210 // return an empty image. | 209 // return an empty image. |
211 bitmap->allocPixels(); | 210 bitmap->allocPixels(SkImageInfo::MakeA8(kSmallIconWidth, kSmallIconHeight)); |
212 memset(bitmap->getPixels(), 0, bitmap->width() * bitmap->height()); | 211 memset(bitmap->getPixels(), 0, bitmap->width() * bitmap->height()); |
213 image_family.Add(gfx::Image::CreateFrom1xBitmap(*bitmap)); | 212 image_family.Add(gfx::Image::CreateFrom1xBitmap(*bitmap)); |
214 EXPECT_FALSE(IconUtil::CreateIconFileFromImageFamily(image_family, | 213 EXPECT_FALSE(IconUtil::CreateIconFileFromImageFamily(image_family, |
215 valid_icon_filename)); | 214 valid_icon_filename)); |
216 EXPECT_FALSE(base::PathExists(valid_icon_filename)); | 215 EXPECT_FALSE(base::PathExists(valid_icon_filename)); |
217 | 216 |
218 // Invalid bitmap size. | 217 // Invalid bitmap size. |
219 image_family.clear(); | 218 image_family.clear(); |
220 bitmap.reset(new SkBitmap); | 219 bitmap.reset(new SkBitmap); |
221 ASSERT_NE(bitmap.get(), static_cast<SkBitmap*>(NULL)); | 220 ASSERT_NE(bitmap.get(), static_cast<SkBitmap*>(NULL)); |
222 bitmap->setConfig(SkImageInfo::MakeN32Premul(0, 0)); | 221 bitmap->allocPixels(SkImageInfo::MakeN32Premul(0, 0)); |
223 bitmap->allocPixels(); | |
224 image_family.Add(gfx::Image::CreateFrom1xBitmap(*bitmap)); | 222 image_family.Add(gfx::Image::CreateFrom1xBitmap(*bitmap)); |
225 EXPECT_FALSE(IconUtil::CreateIconFileFromImageFamily(image_family, | 223 EXPECT_FALSE(IconUtil::CreateIconFileFromImageFamily(image_family, |
226 valid_icon_filename)); | 224 valid_icon_filename)); |
227 EXPECT_FALSE(base::PathExists(valid_icon_filename)); | 225 EXPECT_FALSE(base::PathExists(valid_icon_filename)); |
228 | 226 |
229 // Bitmap with no allocated pixels. | 227 // Bitmap with no allocated pixels. |
230 image_family.clear(); | 228 image_family.clear(); |
231 bitmap.reset(new SkBitmap); | 229 bitmap.reset(new SkBitmap); |
232 ASSERT_NE(bitmap.get(), static_cast<SkBitmap*>(NULL)); | 230 ASSERT_NE(bitmap.get(), static_cast<SkBitmap*>(NULL)); |
233 bitmap->setConfig(SkImageInfo::MakeN32Premul(kSmallIconWidth, | 231 bitmap->setInfo(SkImageInfo::MakeN32Premul(kSmallIconWidth, |
234 kSmallIconHeight)); | 232 kSmallIconHeight)); |
235 image_family.Add(gfx::Image::CreateFrom1xBitmap(*bitmap)); | 233 image_family.Add(gfx::Image::CreateFrom1xBitmap(*bitmap)); |
236 EXPECT_FALSE(IconUtil::CreateIconFileFromImageFamily(image_family, | 234 EXPECT_FALSE(IconUtil::CreateIconFileFromImageFamily(image_family, |
237 valid_icon_filename)); | 235 valid_icon_filename)); |
238 EXPECT_FALSE(base::PathExists(valid_icon_filename)); | 236 EXPECT_FALSE(base::PathExists(valid_icon_filename)); |
239 | 237 |
240 // Invalid file name. | 238 // Invalid file name. |
241 image_family.clear(); | 239 image_family.clear(); |
242 bitmap->allocPixels(); | 240 bitmap->allocPixels(); |
243 // Setting the pixels to black. | 241 // Setting the pixels to black. |
244 memset(bitmap->getPixels(), 0, bitmap->width() * bitmap->height() * 4); | 242 memset(bitmap->getPixels(), 0, bitmap->width() * bitmap->height() * 4); |
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
424 } | 422 } |
425 | 423 |
426 // This tests that kNumIconDimensionsUpToMediumSize has the correct value. | 424 // This tests that kNumIconDimensionsUpToMediumSize has the correct value. |
427 TEST_F(IconUtilTest, TestNumIconDimensionsUpToMediumSize) { | 425 TEST_F(IconUtilTest, TestNumIconDimensionsUpToMediumSize) { |
428 ASSERT_LE(IconUtil::kNumIconDimensionsUpToMediumSize, | 426 ASSERT_LE(IconUtil::kNumIconDimensionsUpToMediumSize, |
429 IconUtil::kNumIconDimensions); | 427 IconUtil::kNumIconDimensions); |
430 EXPECT_EQ(IconUtil::kMediumIconSize, | 428 EXPECT_EQ(IconUtil::kMediumIconSize, |
431 IconUtil::kIconDimensions[ | 429 IconUtil::kIconDimensions[ |
432 IconUtil::kNumIconDimensionsUpToMediumSize - 1]); | 430 IconUtil::kNumIconDimensionsUpToMediumSize - 1]); |
433 } | 431 } |
OLD | NEW |