| Index: chrome/common/extensions/extension_file_util_unittest.cc
|
| diff --git a/chrome/common/extensions/extension_file_util_unittest.cc b/chrome/common/extensions/extension_file_util_unittest.cc
|
| index f63a01c9ccb5e5462bd274a9ba8c3460e24619e0..64b8bc71fe1c6d947c3f6b5351297bce5dde9bda 100644
|
| --- a/chrome/common/extensions/extension_file_util_unittest.cc
|
| +++ b/chrome/common/extensions/extension_file_util_unittest.cc
|
| @@ -5,6 +5,7 @@
|
| #include "chrome/common/extensions/extension_file_util.h"
|
|
|
| #include <set>
|
| +#include <string>
|
|
|
| #include "base/path_service.h"
|
| #include "chrome/common/chrome_paths.h"
|
| @@ -38,4 +39,35 @@ TEST_F(ExtensionFileUtilTest, GetBrowserImagePaths) {
|
| EXPECT_EQ("icon.png", paths.begin()->BaseName().AsUTF8Unsafe());
|
| }
|
|
|
| +// Test that extensions with zero-length action icons will not load.
|
| +TEST_F(ExtensionFileUtilTest, CheckZeroLengthActionIconFiles) {
|
| + base::FilePath install_dir;
|
| + ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &install_dir));
|
| +
|
| + // Try to install an extension with a zero-length browser action icon file.
|
| + base::FilePath ext_dir = install_dir.AppendASCII("extensions")
|
| + .AppendASCII("bad")
|
| + .AppendASCII("Extensions")
|
| + .AppendASCII("gggggggggggggggggggggggggggggggg");
|
| +
|
| + std::string error;
|
| + scoped_refptr<Extension> extension2(file_util::LoadExtension(
|
| + ext_dir, Manifest::UNPACKED, Extension::NO_FLAGS, &error));
|
| + EXPECT_FALSE(extension2.get());
|
| + EXPECT_STREQ("Could not load icon 'icon.png' for browser action.",
|
| + error.c_str());
|
| +
|
| + // Try to install an extension with a zero-length page action icon file.
|
| + ext_dir = install_dir.AppendASCII("extensions")
|
| + .AppendASCII("bad")
|
| + .AppendASCII("Extensions")
|
| + .AppendASCII("hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh");
|
| +
|
| + scoped_refptr<Extension> extension3(file_util::LoadExtension(
|
| + ext_dir, Manifest::UNPACKED, Extension::NO_FLAGS, &error));
|
| + EXPECT_FALSE(extension3.get());
|
| + EXPECT_STREQ("Could not load icon 'icon.png' for page action.",
|
| + error.c_str());
|
| +}
|
| +
|
| } // namespace extensions
|
|
|