summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/extension_unittest.cc
diff options
context:
space:
mode:
authoraa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-01-22 20:03:30 +0000
committeraa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-01-22 20:03:30 +0000
commit1712232b6e2beffa413af6d97cf63b30a3b6e7c7 (patch)
tree7346e88a8fa9d4c8bfc6aa417de8b30c60763e5f /chrome/browser/extensions/extension_unittest.cc
parentd938aed98c3e683586d37b6dcbb1b20d95eb771a (diff)
downloadchromium_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.cc226
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));
}