diff options
Diffstat (limited to 'chrome/browser/extensions/extension_icon_manager_unittest.cc')
-rw-r--r-- | chrome/browser/extensions/extension_icon_manager_unittest.cc | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/chrome/browser/extensions/extension_icon_manager_unittest.cc b/chrome/browser/extensions/extension_icon_manager_unittest.cc index 5fb32d7..b058153 100644 --- a/chrome/browser/extensions/extension_icon_manager_unittest.cc +++ b/chrome/browser/extensions/extension_icon_manager_unittest.cc @@ -137,3 +137,45 @@ TEST_F(ExtensionIconManagerTest, LoadRemoveLoad) { EXPECT_TRUE(gfx::BitmapsAreEqual(first_icon, second_icon)); } + +#if defined(FILE_MANAGER_EXTENSION) +// Tests loading an icon for a component extension. +TEST_F(ExtensionIconManagerTest, LoadComponentExtensionResource) { + SkBitmap default_icon = GetDefaultIcon(); + + FilePath test_dir; + ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_dir)); + FilePath manifest_path = test_dir.AppendASCII( + "extensions/file_manager/app.json"); + + JSONFileValueSerializer serializer(manifest_path); + scoped_ptr<DictionaryValue> manifest( + static_cast<DictionaryValue*>(serializer.Deserialize(NULL, NULL))); + ASSERT_TRUE(manifest.get() != NULL); + + std::string error; + scoped_refptr<Extension> extension(Extension::Create( + manifest_path.DirName(), Extension::COMPONENT, *manifest.get(), + Extension::STRICT_ERROR_CHECKS, &error)); + ASSERT_TRUE(extension.get()); + + TestIconManager icon_manager(this); + // Load the icon and grab the bitmap. + icon_manager.LoadIcon(extension.get()); + WaitForImageLoad(); + SkBitmap first_icon = icon_manager.GetIcon(extension->id()); + EXPECT_FALSE(gfx::BitmapsAreEqual(first_icon, default_icon)); + + // Remove the icon from the manager. + icon_manager.RemoveIcon(extension->id()); + + // Now re-load the icon - we should get the same result bitmap (and not the + // default icon). + icon_manager.LoadIcon(extension.get()); + WaitForImageLoad(); + SkBitmap second_icon = icon_manager.GetIcon(extension->id()); + EXPECT_FALSE(gfx::BitmapsAreEqual(second_icon, default_icon)); + + EXPECT_TRUE(gfx::BitmapsAreEqual(first_icon, second_icon)); +} +#endif |