diff options
author | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-06 06:17:54 +0000 |
---|---|---|
committer | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-06 06:17:54 +0000 |
commit | 84ac7f362e565c096851a783ca7163b78e19b659 (patch) | |
tree | 7f671e9c025e4e4b37468240e9be7a28926f6a7c /chrome/common/extensions/extension_unittest.cc | |
parent | 17492f531825be1522991579c1a1bd6af2d8c4b1 (diff) | |
download | chromium_src-84ac7f362e565c096851a783ca7163b78e19b659.zip chromium_src-84ac7f362e565c096851a783ca7163b78e19b659.tar.gz chromium_src-84ac7f362e565c096851a783ca7163b78e19b659.tar.bz2 |
Generate IDs for --load-extension by hashing the path instead
of incrementing a static counter.
BUG=21281
TEST=Load an unpacked extension from chrome://extensions/ that
does not have an ID in its manifest. The resulting ID should
be random-looking, not something like "aaaaaa".
Review URL: http://codereview.chromium.org/256049
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28095 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/common/extensions/extension_unittest.cc')
-rw-r--r-- | chrome/common/extensions/extension_unittest.cc | 34 |
1 files changed, 23 insertions, 11 deletions
diff --git a/chrome/common/extensions/extension_unittest.cc b/chrome/common/extensions/extension_unittest.cc index fc024ab..466f27a 100644 --- a/chrome/common/extensions/extension_unittest.cc +++ b/chrome/common/extensions/extension_unittest.cc @@ -227,8 +227,6 @@ TEST(ExtensionTest, InitFromValueValid) { #elif defined(OS_POSIX) FilePath path(FILE_PATH_LITERAL("/foo")); #endif - Extension::ResetGeneratedIdCounter(); - Extension extension(path); std::string error; DictionaryValue input_value; @@ -239,11 +237,10 @@ TEST(ExtensionTest, InitFromValueValid) { EXPECT_TRUE(extension.InitFromValue(input_value, false, &error)); EXPECT_EQ("", error); - EXPECT_EQ("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", extension.id()); + EXPECT_TRUE(Extension::IdIsValid(extension.id())); EXPECT_EQ("1.0.0.0", extension.VersionString()); EXPECT_EQ("my extension", extension.name()); - EXPECT_EQ("chrome-extension://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/", - extension.url().spec()); + EXPECT_EQ(extension.id(), extension.url().host()); EXPECT_EQ(path.value(), extension.path().value()); } @@ -277,7 +274,12 @@ TEST(ExtensionTest, GetResourceURLAndPath) { } TEST(ExtensionTest, LoadPageActionHelper) { - Extension extension; +#if defined(OS_WIN) + FilePath path(StringPrintf(L"c:\\extension")); +#else + FilePath path(StringPrintf("/extension")); +#endif + Extension extension(path); std::string error_msg; scoped_ptr<ExtensionAction> action; DictionaryValue input; @@ -424,7 +426,7 @@ TEST(ExtensionTest, IdIsValid) { EXPECT_FALSE(Extension::IdIsValid("abcdefghijklmnopabcdefghijklmno0")); } -TEST(ExtensionTest, GenerateIDFromPublicKey) { +TEST(ExtensionTest, GenerateID) { const uint8 public_key_info[] = { 0x30, 0x81, 0x9f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x81, 0x8d, 0x00, 0x30, 0x81, @@ -444,7 +446,7 @@ TEST(ExtensionTest, GenerateIDFromPublicKey) { std::string extension_id; EXPECT_TRUE( - Extension::GenerateIdFromPublicKey( + Extension::GenerateId( std::string(reinterpret_cast<const char*>(&public_key_info[0]), arraysize(public_key_info)), &extension_id)); @@ -463,7 +465,12 @@ TEST(ExtensionTest, UpdateUrls) { EXPECT_TRUE(url.is_valid()); DictionaryValue input_value; - Extension extension; +#if defined(OS_WIN) + FilePath path(StringPrintf(L"c:\\extension%i", i)); +#else + FilePath path(StringPrintf("/extension%i", i)); +#endif + Extension extension(path); std::string error; input_value.SetString(keys::kVersion, "1.0"); @@ -480,7 +487,12 @@ TEST(ExtensionTest, UpdateUrls) { valid.push_back("http://test.com/update#whatever"); for (size_t i = 0; i < invalid.size(); i++) { DictionaryValue input_value; - Extension extension; +#if defined(OS_WIN) + FilePath path(StringPrintf(L"c:\\extension%i", i)); +#else + FilePath path(StringPrintf("/extension%i", i)); +#endif + Extension extension(path); std::string error; input_value.SetString(keys::kVersion, "1.0"); input_value.SetString(keys::kName, "Test"); @@ -529,7 +541,7 @@ static Extension* LoadManifest(const std::string& dir, return NULL; std::string error; - scoped_ptr<Extension> extension(new Extension); + scoped_ptr<Extension> extension(new Extension(path.DirName())); extension->InitFromValue(*static_cast<DictionaryValue*>(result.get()), false, &error); |