summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/extension_icon_manager_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/extensions/extension_icon_manager_unittest.cc')
-rw-r--r--chrome/browser/extensions/extension_icon_manager_unittest.cc42
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