diff options
author | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-01-22 20:03:30 +0000 |
---|---|---|
committer | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-01-22 20:03:30 +0000 |
commit | 1712232b6e2beffa413af6d97cf63b30a3b6e7c7 (patch) | |
tree | 7346e88a8fa9d4c8bfc6aa417de8b30c60763e5f /chrome/browser/extensions/extension_unittest.cc | |
parent | d938aed98c3e683586d37b6dcbb1b20d95eb771a (diff) | |
download | chromium_src-1712232b6e2beffa413af6d97cf63b30a3b6e7c7.zip chromium_src-1712232b6e2beffa413af6d97cf63b30a3b6e7c7.tar.gz chromium_src-1712232b6e2beffa413af6d97cf63b30a3b6e7c7.tar.bz2 |
Revert "Parse more user script info out of the manifest and expose"
This reverts commit fc3fd1062c06f803775c16d11f742d85d540e415.
Review URL: http://codereview.chromium.org/18681
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8494 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extension_unittest.cc')
-rw-r--r-- | chrome/browser/extensions/extension_unittest.cc | 226 |
1 files changed, 55 insertions, 171 deletions
diff --git a/chrome/browser/extensions/extension_unittest.cc b/chrome/browser/extensions/extension_unittest.cc index 83973dd..71812b9 100644 --- a/chrome/browser/extensions/extension_unittest.cc +++ b/chrome/browser/extensions/extension_unittest.cc @@ -3,211 +3,95 @@ // found in the LICENSE file. #include "base/string_util.h" -#include "base/path_service.h" #include "chrome/browser/extensions/extension.h" -#include "chrome/common/chrome_paths.h" -#include "chrome/common/json_value_serializer.h" #include "testing/gtest/include/gtest/gtest.h" class ExtensionTest : public testing::Test { }; TEST(ExtensionTest, InitFromValueInvalid) { -#if defined(OS_WIN) - FilePath path(FILE_PATH_LITERAL("c:\\foo")); -#elif defined(OS_POSIX) - FilePath path(FILE_PATH_LITERAL("/foo")); -#endif - Extension extension(path); + Extension extension; std::string error; - // Start with a valid extension manifest - std::wstring extensions_dir; - ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &extensions_dir)); - FilePath extensions_path = FilePath::FromWStringHack(extensions_dir) - .Append(FILE_PATH_LITERAL("extensions")) - .Append(FILE_PATH_LITERAL("extension1")) - .Append(FILE_PATH_LITERAL("manifest")); - - JSONFileValueSerializer serializer(extensions_path.ToWStringHack()); - scoped_ptr<DictionaryValue> valid_value( - static_cast<DictionaryValue*>(serializer.Deserialize(&error))); - ASSERT_TRUE(valid_value.get()); - ASSERT_EQ("", error); - ASSERT_TRUE(extension.InitFromValue(*valid_value, &error)); - ASSERT_EQ("", error); - - scoped_ptr<DictionaryValue> input_value; - - // Test missing and invalid format versions - input_value.reset(static_cast<DictionaryValue*>(valid_value->DeepCopy())); - input_value->Remove(Extension::kFormatVersionKey, NULL); - EXPECT_FALSE(extension.InitFromValue(*input_value, &error)); - EXPECT_EQ(Extension::kInvalidFormatVersionError, error); - - input_value->SetString(Extension::kFormatVersionKey, "foo"); - EXPECT_FALSE(extension.InitFromValue(*input_value, &error)); - EXPECT_EQ(Extension::kInvalidFormatVersionError, error); - - input_value->SetInteger(Extension::kFormatVersionKey, 2); - EXPECT_FALSE(extension.InitFromValue(*input_value, &error)); + // Test invalid format version + DictionaryValue input_value; + input_value.SetInteger(Extension::kFormatVersionKey, 2); + EXPECT_FALSE(extension.InitFromValue(input_value, &error)); EXPECT_EQ(Extension::kInvalidFormatVersionError, error); + input_value.SetInteger(Extension::kFormatVersionKey, 1); // Test missing and invalid ids - input_value.reset(static_cast<DictionaryValue*>(valid_value->DeepCopy())); - input_value->Remove(Extension::kIdKey, NULL); - EXPECT_FALSE(extension.InitFromValue(*input_value, &error)); + EXPECT_FALSE(extension.InitFromValue(input_value, &error)); EXPECT_EQ(Extension::kInvalidIdError, error); - - input_value->SetInteger(Extension::kIdKey, 42); - EXPECT_FALSE(extension.InitFromValue(*input_value, &error)); + input_value.SetInteger(Extension::kIdKey, 42); + EXPECT_FALSE(extension.InitFromValue(input_value, &error)); EXPECT_EQ(Extension::kInvalidIdError, error); + input_value.SetString(Extension::kIdKey, L"com.google.myextension"); // Test missing and invalid versions - input_value.reset(static_cast<DictionaryValue*>(valid_value->DeepCopy())); - input_value->Remove(Extension::kVersionKey, NULL); - EXPECT_FALSE(extension.InitFromValue(*input_value, &error)); + EXPECT_FALSE(extension.InitFromValue(input_value, &error)); EXPECT_EQ(Extension::kInvalidVersionError, error); - - input_value->SetInteger(Extension::kVersionKey, 42); - EXPECT_FALSE(extension.InitFromValue(*input_value, &error)); + input_value.SetInteger(Extension::kVersionKey, 42); + EXPECT_FALSE(extension.InitFromValue(input_value, &error)); EXPECT_EQ(Extension::kInvalidVersionError, error); + input_value.SetString(Extension::kVersionKey, L"1.0"); // Test missing and invalid names - input_value.reset(static_cast<DictionaryValue*>(valid_value->DeepCopy())); - input_value->Remove(Extension::kNameKey, NULL); - EXPECT_FALSE(extension.InitFromValue(*input_value, &error)); + EXPECT_FALSE(extension.InitFromValue(input_value, &error)); EXPECT_EQ(Extension::kInvalidNameError, error); - - input_value->SetInteger(Extension::kNameKey, 42); - EXPECT_FALSE(extension.InitFromValue(*input_value, &error)); + input_value.SetInteger(Extension::kNameKey, 42); + EXPECT_FALSE(extension.InitFromValue(input_value, &error)); EXPECT_EQ(Extension::kInvalidNameError, error); + input_value.SetString(Extension::kNameKey, L"my extension"); // Test invalid description - input_value.reset(static_cast<DictionaryValue*>(valid_value->DeepCopy())); - input_value->SetInteger(Extension::kDescriptionKey, 42); - EXPECT_FALSE(extension.InitFromValue(*input_value, &error)); + input_value.SetInteger(Extension::kDescriptionKey, 42); + EXPECT_FALSE(extension.InitFromValue(input_value, &error)); EXPECT_EQ(Extension::kInvalidDescriptionError, error); - - // Test invalid user scripts list - input_value.reset(static_cast<DictionaryValue*>(valid_value->DeepCopy())); - input_value->SetInteger(Extension::kUserScriptsKey, 42); - EXPECT_FALSE(extension.InitFromValue(*input_value, &error)); - EXPECT_EQ(Extension::kInvalidUserScriptsListError, error); - - // Test invalid user script item - input_value.reset(static_cast<DictionaryValue*>(valid_value->DeepCopy())); - ListValue* user_scripts = NULL; - input_value->GetList(Extension::kUserScriptsKey, &user_scripts); - user_scripts->Set(0, Value::CreateIntegerValue(42)); - EXPECT_FALSE(extension.InitFromValue(*input_value, &error)); - EXPECT_TRUE(MatchPattern(error, Extension::kInvalidUserScriptError)); - - // Test missing and invalid matches array - input_value.reset(static_cast<DictionaryValue*>(valid_value->DeepCopy())); - input_value->GetList(Extension::kUserScriptsKey, &user_scripts); - DictionaryValue* user_script = NULL; - user_scripts->GetDictionary(0, &user_script); - user_script->Remove(Extension::kMatchesKey, NULL); - EXPECT_FALSE(extension.InitFromValue(*input_value, &error)); - EXPECT_TRUE(MatchPattern(error, Extension::kInvalidMatchesError)); - - user_script->Set(Extension::kMatchesKey, Value::CreateIntegerValue(42)); - EXPECT_FALSE(extension.InitFromValue(*input_value, &error)); - EXPECT_TRUE(MatchPattern(error, Extension::kInvalidMatchesError)); - - ListValue* matches = new ListValue; - user_script->Set(Extension::kMatchesKey, matches); - EXPECT_FALSE(extension.InitFromValue(*input_value, &error)); - EXPECT_TRUE(MatchPattern(error, Extension::kInvalidMatchCountError)); - - // Test invalid match element - matches->Set(0, Value::CreateIntegerValue(42)); - EXPECT_FALSE(extension.InitFromValue(*input_value, &error)); - EXPECT_TRUE(MatchPattern(error, Extension::kInvalidMatchError)); - - // Test missing and invalid files array - input_value.reset(static_cast<DictionaryValue*>(valid_value->DeepCopy())); - input_value->GetList(Extension::kUserScriptsKey, &user_scripts); - user_scripts->GetDictionary(0, &user_script); - user_script->Remove(Extension::kFilesKey, NULL); - EXPECT_FALSE(extension.InitFromValue(*input_value, &error)); - EXPECT_TRUE(MatchPattern(error, Extension::kInvalidFilesError)); - - user_script->Set(Extension::kFilesKey, Value::CreateIntegerValue(42)); - EXPECT_FALSE(extension.InitFromValue(*input_value, &error)); - EXPECT_TRUE(MatchPattern(error, Extension::kInvalidFilesError)); - - ListValue* files = new ListValue; - user_script->Set(Extension::kFilesKey, files); - EXPECT_FALSE(extension.InitFromValue(*input_value, &error)); - EXPECT_TRUE(MatchPattern(error, Extension::kInvalidFileCountError)); - - // Test invalid file element - files->Set(0, Value::CreateIntegerValue(42)); - EXPECT_FALSE(extension.InitFromValue(*input_value, &error)); - EXPECT_TRUE(MatchPattern(error, Extension::kInvalidFileError)); - - // Test too many file elements (more than one not yet supported) - files->Set(0, Value::CreateStringValue("foo.js")); - files->Set(1, Value::CreateStringValue("bar.js")); - EXPECT_FALSE(extension.InitFromValue(*input_value, &error)); - EXPECT_TRUE(MatchPattern(error, Extension::kInvalidFileCountError)); + input_value.Remove(Extension::kDescriptionKey, NULL); + + // Test invalid content scripts list + input_value.SetInteger(Extension::kContentScriptsKey, 42); + EXPECT_FALSE(extension.InitFromValue(input_value, &error)); + EXPECT_EQ(Extension::kInvalidContentScriptsListError, error); + + // Test invalid content script item + ListValue* content_scripts = new ListValue; + input_value.Set(Extension::kContentScriptsKey, content_scripts); + content_scripts->Set(0, Value::CreateIntegerValue(42)); + EXPECT_FALSE(extension.InitFromValue(input_value, &error)); + EXPECT_EQ(0u, error.find(Extension::kInvalidContentScriptError)); } TEST(ExtensionTest, InitFromValueValid) { -#if defined(OS_WIN) - FilePath path(FILE_PATH_LITERAL("C:\\foo")); -#elif defined(OS_POSIX) - FilePath path(FILE_PATH_LITERAL("/foo")); -#endif - Extension extension(path); + Extension extension; std::string error; DictionaryValue input_value; + DictionaryValue output_value; // Test minimal extension input_value.SetInteger(Extension::kFormatVersionKey, 1); - input_value.SetString(Extension::kIdKey, "com.google.myextension"); - input_value.SetString(Extension::kVersionKey, "1.0"); - input_value.SetString(Extension::kNameKey, "my extension"); + input_value.SetString(Extension::kIdKey, L"com.google.myextension"); + input_value.SetString(Extension::kVersionKey, L"1.0"); + input_value.SetString(Extension::kNameKey, L"my extension"); EXPECT_TRUE(extension.InitFromValue(input_value, &error)); - EXPECT_EQ("", error); - EXPECT_EQ("com.google.myextension", extension.id()); - EXPECT_EQ("1.0", extension.version()); - EXPECT_EQ("my extension", extension.name()); - EXPECT_EQ("chrome-extension://com.google.myextension/", - extension.url().spec()); - EXPECT_EQ(path.value(), extension.path().value()); -} - -TEST(ExtensionTest, GetResourceURLAndPath) { -#if defined(OS_WIN) - FilePath path(FILE_PATH_LITERAL("C:\\foo")); -#elif defined(OS_POSIX) - FilePath path(FILE_PATH_LITERAL("/foo")); -#endif - Extension extension(path); - DictionaryValue input_value; - input_value.SetInteger(Extension::kFormatVersionKey, 1); - input_value.SetString(Extension::kIdKey, "com.google.myextension"); - input_value.SetString(Extension::kVersionKey, "1.0"); - input_value.SetString(Extension::kNameKey, "my extension"); - EXPECT_TRUE(extension.InitFromValue(input_value, NULL)); + extension.CopyToValue(&output_value); + EXPECT_TRUE(input_value.Equals(&output_value)); - EXPECT_EQ(extension.url().spec() + "bar/baz.js", - Extension::GetResourceURL(extension.url(), "bar/baz.js").spec()); - EXPECT_EQ(extension.url().spec() + "baz.js", - Extension::GetResourceURL(extension.url(), "bar/../baz.js").spec()); - EXPECT_EQ(extension.url().spec() + "baz.js", - Extension::GetResourceURL(extension.url(), "../baz.js").spec()); - - EXPECT_EQ(path.Append(FILE_PATH_LITERAL("bar")) - .Append(FILE_PATH_LITERAL("baz.js")).value(), - Extension::GetResourcePath(extension.path(), "bar/baz.js").value()); - EXPECT_EQ(path.Append(FILE_PATH_LITERAL("baz.js")).value(), - Extension::GetResourcePath(extension.path(), "bar/../baz.js") - .value()); - EXPECT_EQ(FilePath().value(), - Extension::GetResourcePath(extension.path(), "../baz.js").value()); + // Test with a description + input_value.SetString(Extension::kDescriptionKey, + L"my extension does things"); + EXPECT_TRUE(extension.InitFromValue(input_value, &error)); + extension.CopyToValue(&output_value); + EXPECT_TRUE(input_value.Equals(&output_value)); + + // Test content_scripts + ListValue* content_scripts = new ListValue(); + input_value.Set(Extension::kContentScriptsKey, content_scripts); + content_scripts->Set(0, Value::CreateStringValue(L"foo/bar.js")); + content_scripts->Set(1, Value::CreateStringValue(L"hot/dog.js")); + EXPECT_TRUE(extension.InitFromValue(input_value, &error)); + extension.CopyToValue(&output_value); + EXPECT_TRUE(input_value.Equals(&output_value)); } |