| 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 "base/file_util.h" | 5 #include "base/file_util.h" |
| 6 #include "base/files/scoped_temp_dir.h" | 6 #include "base/files/scoped_temp_dir.h" |
| 7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
| 8 #include "base/path_service.h" | 8 #include "base/path_service.h" |
| 9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
| 10 #include "third_party/skia/include/core/SkBitmap.h" | 10 #include "third_party/skia/include/core/SkBitmap.h" |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 66 protected: | 66 protected: |
| 67 // The root directory for test files. This should be treated as read-only. | 67 // The root directory for test files. This should be treated as read-only. |
| 68 base::FilePath test_data_directory_; | 68 base::FilePath test_data_directory_; |
| 69 | 69 |
| 70 // Directory for creating files by this test. | 70 // Directory for creating files by this test. |
| 71 base::ScopedTempDir temp_directory_; | 71 base::ScopedTempDir temp_directory_; |
| 72 }; | 72 }; |
| 73 | 73 |
| 74 void IconUtilTest::CheckAllIconSizes(const base::FilePath& icon_filename, | 74 void IconUtilTest::CheckAllIconSizes(const base::FilePath& icon_filename, |
| 75 int max_icon_size) { | 75 int max_icon_size) { |
| 76 ASSERT_TRUE(file_util::PathExists(icon_filename)); | 76 ASSERT_TRUE(base::PathExists(icon_filename)); |
| 77 | 77 |
| 78 // Determine how many icons to expect, based on |max_icon_size|. | 78 // Determine how many icons to expect, based on |max_icon_size|. |
| 79 int expected_num_icons = 0; | 79 int expected_num_icons = 0; |
| 80 for (size_t i = 0; i < IconUtil::kNumIconDimensions; ++i) { | 80 for (size_t i = 0; i < IconUtil::kNumIconDimensions; ++i) { |
| 81 if (IconUtil::kIconDimensions[i] > max_icon_size) | 81 if (IconUtil::kIconDimensions[i] > max_icon_size) |
| 82 break; | 82 break; |
| 83 ++expected_num_icons; | 83 ++expected_num_icons; |
| 84 } | 84 } |
| 85 | 85 |
| 86 // First, use the Windows API to load the icon, a basic validity test. | 86 // First, use the Windows API to load the icon, a basic validity test. |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 207 bitmap.reset(new SkBitmap); | 207 bitmap.reset(new SkBitmap); |
| 208 ASSERT_NE(bitmap.get(), static_cast<SkBitmap*>(NULL)); | 208 ASSERT_NE(bitmap.get(), static_cast<SkBitmap*>(NULL)); |
| 209 bitmap->setConfig(SkBitmap::kA8_Config, kSmallIconWidth, kSmallIconHeight); | 209 bitmap->setConfig(SkBitmap::kA8_Config, kSmallIconWidth, kSmallIconHeight); |
| 210 // Must allocate pixels or else ImageSkia will ignore the bitmap and just | 210 // Must allocate pixels or else ImageSkia will ignore the bitmap and just |
| 211 // return an empty image. | 211 // return an empty image. |
| 212 bitmap->allocPixels(); | 212 bitmap->allocPixels(); |
| 213 memset(bitmap->getPixels(), 0, bitmap->width() * bitmap->height()); | 213 memset(bitmap->getPixels(), 0, bitmap->width() * bitmap->height()); |
| 214 image_family.Add(gfx::Image::CreateFrom1xBitmap(*bitmap)); | 214 image_family.Add(gfx::Image::CreateFrom1xBitmap(*bitmap)); |
| 215 EXPECT_FALSE(IconUtil::CreateIconFileFromImageFamily(image_family, | 215 EXPECT_FALSE(IconUtil::CreateIconFileFromImageFamily(image_family, |
| 216 valid_icon_filename)); | 216 valid_icon_filename)); |
| 217 EXPECT_FALSE(file_util::PathExists(valid_icon_filename)); | 217 EXPECT_FALSE(base::PathExists(valid_icon_filename)); |
| 218 | 218 |
| 219 // Invalid bitmap size. | 219 // Invalid bitmap size. |
| 220 image_family.clear(); | 220 image_family.clear(); |
| 221 bitmap.reset(new SkBitmap); | 221 bitmap.reset(new SkBitmap); |
| 222 ASSERT_NE(bitmap.get(), static_cast<SkBitmap*>(NULL)); | 222 ASSERT_NE(bitmap.get(), static_cast<SkBitmap*>(NULL)); |
| 223 bitmap->setConfig(SkBitmap::kARGB_8888_Config, 0, 0); | 223 bitmap->setConfig(SkBitmap::kARGB_8888_Config, 0, 0); |
| 224 bitmap->allocPixels(); | 224 bitmap->allocPixels(); |
| 225 image_family.Add(gfx::Image::CreateFrom1xBitmap(*bitmap)); | 225 image_family.Add(gfx::Image::CreateFrom1xBitmap(*bitmap)); |
| 226 EXPECT_FALSE(IconUtil::CreateIconFileFromImageFamily(image_family, | 226 EXPECT_FALSE(IconUtil::CreateIconFileFromImageFamily(image_family, |
| 227 valid_icon_filename)); | 227 valid_icon_filename)); |
| 228 EXPECT_FALSE(file_util::PathExists(valid_icon_filename)); | 228 EXPECT_FALSE(base::PathExists(valid_icon_filename)); |
| 229 | 229 |
| 230 // Bitmap with no allocated pixels. | 230 // Bitmap with no allocated pixels. |
| 231 image_family.clear(); | 231 image_family.clear(); |
| 232 bitmap.reset(new SkBitmap); | 232 bitmap.reset(new SkBitmap); |
| 233 ASSERT_NE(bitmap.get(), static_cast<SkBitmap*>(NULL)); | 233 ASSERT_NE(bitmap.get(), static_cast<SkBitmap*>(NULL)); |
| 234 bitmap->setConfig(SkBitmap::kARGB_8888_Config, | 234 bitmap->setConfig(SkBitmap::kARGB_8888_Config, |
| 235 kSmallIconWidth, | 235 kSmallIconWidth, |
| 236 kSmallIconHeight); | 236 kSmallIconHeight); |
| 237 image_family.Add(gfx::Image::CreateFrom1xBitmap(*bitmap)); | 237 image_family.Add(gfx::Image::CreateFrom1xBitmap(*bitmap)); |
| 238 EXPECT_FALSE(IconUtil::CreateIconFileFromImageFamily(image_family, | 238 EXPECT_FALSE(IconUtil::CreateIconFileFromImageFamily(image_family, |
| 239 valid_icon_filename)); | 239 valid_icon_filename)); |
| 240 EXPECT_FALSE(file_util::PathExists(valid_icon_filename)); | 240 EXPECT_FALSE(base::PathExists(valid_icon_filename)); |
| 241 | 241 |
| 242 // Invalid file name. | 242 // Invalid file name. |
| 243 image_family.clear(); | 243 image_family.clear(); |
| 244 bitmap->allocPixels(); | 244 bitmap->allocPixels(); |
| 245 // Setting the pixels to black. | 245 // Setting the pixels to black. |
| 246 memset(bitmap->getPixels(), 0, bitmap->width() * bitmap->height() * 4); | 246 memset(bitmap->getPixels(), 0, bitmap->width() * bitmap->height() * 4); |
| 247 image_family.Add(gfx::Image::CreateFrom1xBitmap(*bitmap)); | 247 image_family.Add(gfx::Image::CreateFrom1xBitmap(*bitmap)); |
| 248 EXPECT_FALSE(IconUtil::CreateIconFileFromImageFamily(image_family, | 248 EXPECT_FALSE(IconUtil::CreateIconFileFromImageFamily(image_family, |
| 249 invalid_icon_filename)); | 249 invalid_icon_filename)); |
| 250 EXPECT_FALSE(file_util::PathExists(invalid_icon_filename)); | 250 EXPECT_FALSE(base::PathExists(invalid_icon_filename)); |
| 251 } | 251 } |
| 252 | 252 |
| 253 // This test case makes sure IconUtil::CreateIconFileFromImageFamily fails if | 253 // This test case makes sure IconUtil::CreateIconFileFromImageFamily fails if |
| 254 // the image family is empty or invalid. | 254 // the image family is empty or invalid. |
| 255 TEST_F(IconUtilTest, TestCreateIconFileEmptyImageFamily) { | 255 TEST_F(IconUtilTest, TestCreateIconFileEmptyImageFamily) { |
| 256 base::FilePath icon_filename = temp_directory_.path().AppendASCII( | 256 base::FilePath icon_filename = temp_directory_.path().AppendASCII( |
| 257 kTempIconFilename); | 257 kTempIconFilename); |
| 258 | 258 |
| 259 // Empty image family. | 259 // Empty image family. |
| 260 EXPECT_FALSE(IconUtil::CreateIconFileFromImageFamily(gfx::ImageFamily(), | 260 EXPECT_FALSE(IconUtil::CreateIconFileFromImageFamily(gfx::ImageFamily(), |
| 261 icon_filename)); | 261 icon_filename)); |
| 262 EXPECT_FALSE(file_util::PathExists(icon_filename)); | 262 EXPECT_FALSE(base::PathExists(icon_filename)); |
| 263 | 263 |
| 264 // Image family with only an empty image. | 264 // Image family with only an empty image. |
| 265 gfx::ImageFamily image_family; | 265 gfx::ImageFamily image_family; |
| 266 image_family.Add(gfx::Image()); | 266 image_family.Add(gfx::Image()); |
| 267 EXPECT_FALSE(IconUtil::CreateIconFileFromImageFamily(image_family, | 267 EXPECT_FALSE(IconUtil::CreateIconFileFromImageFamily(image_family, |
| 268 icon_filename)); | 268 icon_filename)); |
| 269 EXPECT_FALSE(file_util::PathExists(icon_filename)); | 269 EXPECT_FALSE(base::PathExists(icon_filename)); |
| 270 } | 270 } |
| 271 | 271 |
| 272 // This test case makes sure that when we load an icon from disk and convert | 272 // This test case makes sure that when we load an icon from disk and convert |
| 273 // the HICON into a bitmap, the bitmap has the expected format and dimensions. | 273 // the HICON into a bitmap, the bitmap has the expected format and dimensions. |
| 274 TEST_F(IconUtilTest, TestCreateSkBitmapFromHICON) { | 274 TEST_F(IconUtilTest, TestCreateSkBitmapFromHICON) { |
| 275 scoped_ptr<SkBitmap> bitmap; | 275 scoped_ptr<SkBitmap> bitmap; |
| 276 base::FilePath small_icon_filename = test_data_directory_.AppendASCII( | 276 base::FilePath small_icon_filename = test_data_directory_.AppendASCII( |
| 277 kSmallIconName); | 277 kSmallIconName); |
| 278 gfx::Size small_icon_size(kSmallIconWidth, kSmallIconHeight); | 278 gfx::Size small_icon_size(kSmallIconWidth, kSmallIconHeight); |
| 279 HICON small_icon = LoadIconFromFile(small_icon_filename, | 279 HICON small_icon = LoadIconFromFile(small_icon_filename, |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 426 } | 426 } |
| 427 | 427 |
| 428 // This tests that kNumIconDimensionsUpToMediumSize has the correct value. | 428 // This tests that kNumIconDimensionsUpToMediumSize has the correct value. |
| 429 TEST_F(IconUtilTest, TestNumIconDimensionsUpToMediumSize) { | 429 TEST_F(IconUtilTest, TestNumIconDimensionsUpToMediumSize) { |
| 430 ASSERT_LE(IconUtil::kNumIconDimensionsUpToMediumSize, | 430 ASSERT_LE(IconUtil::kNumIconDimensionsUpToMediumSize, |
| 431 IconUtil::kNumIconDimensions); | 431 IconUtil::kNumIconDimensions); |
| 432 EXPECT_EQ(IconUtil::kMediumIconSize, | 432 EXPECT_EQ(IconUtil::kMediumIconSize, |
| 433 IconUtil::kIconDimensions[ | 433 IconUtil::kIconDimensions[ |
| 434 IconUtil::kNumIconDimensionsUpToMediumSize - 1]); | 434 IconUtil::kNumIconDimensionsUpToMediumSize - 1]); |
| 435 } | 435 } |
| OLD | NEW |