| Index: chrome/common/extensions/api/extension_api_unittest.cc
|
| diff --git a/chrome/common/extensions/api/extension_api_unittest.cc b/chrome/common/extensions/api/extension_api_unittest.cc
|
| index e25adb0768bca746cf486fcec4e3cb29ad7c57a5..ff0de63e59583f9b1a887e67993f612be65b8d8a 100644
|
| --- a/chrome/common/extensions/api/extension_api_unittest.cc
|
| +++ b/chrome/common/extensions/api/extension_api_unittest.cc
|
| @@ -99,13 +99,16 @@ TEST(ExtensionAPI, IsPrivileged) {
|
| EXPECT_FALSE(extension_api->IsPrivileged("extension.connect"));
|
| EXPECT_FALSE(extension_api->IsPrivileged("extension.onConnect"));
|
|
|
| - // Properties are not supported yet.
|
| - EXPECT_TRUE(extension_api->IsPrivileged("extension.lastError"));
|
| + // Properties are not supported yet, but the default for this module is
|
| + // unprivileged, so that's what we see.
|
| + EXPECT_FALSE(extension_api->IsPrivileged("extension.lastError"));
|
|
|
| - // Default unknown names to privileged for paranoia's sake.
|
| + // Default unknown modules to privileged for paranoia's sake.
|
| EXPECT_TRUE(extension_api->IsPrivileged(""));
|
| EXPECT_TRUE(extension_api->IsPrivileged("<unknown-namespace>"));
|
| - EXPECT_TRUE(extension_api->IsPrivileged("extension.<unknown-member>"));
|
| +
|
| + // Default unknown names within a module to the parent's value.
|
| + EXPECT_FALSE(extension_api->IsPrivileged("extension.<unknown-member>"));
|
|
|
| // Exists, but privileged.
|
| EXPECT_TRUE(extension_api->IsPrivileged("extension.getViews"));
|
| @@ -134,11 +137,14 @@ TEST(ExtensionAPI, IsPrivilegedFeatures) {
|
| Feature::UNSPECIFIED_CONTEXT },
|
| { "is_privileged_features_3.json", "test", false,
|
| Feature::UNSPECIFIED_CONTEXT },
|
| - { "is_privileged_features_4.json", "test.bar", false,
|
| - Feature::UNSPECIFIED_CONTEXT },
|
| { "is_privileged_features_5.json", "test.bar", true,
|
| Feature::BLESSED_EXTENSION_CONTEXT },
|
| - { "is_privileged_features_5.json", "test.bar", false,
|
| + // These are privileged because a child always depends on its parent. So
|
| + // even if the child is more permissive than its parent, it still ends up
|
| + // having the same requirements.
|
| + { "is_privileged_features_4.json", "test.bar", true,
|
| + Feature::UNSPECIFIED_CONTEXT },
|
| + { "is_privileged_features_5.json", "test.bar", true,
|
| Feature::UNBLESSED_EXTENSION_CONTEXT }
|
| };
|
|
|
| @@ -350,71 +356,5 @@ TEST(ExtensionAPI, GetAPINameFromFullName) {
|
| }
|
| }
|
|
|
| -TEST(ExtensionAPI, DefaultConfigurationFeatures) {
|
| - scoped_ptr<ExtensionAPI> api(ExtensionAPI::CreateWithDefaultConfiguration());
|
| -
|
| - Feature* bookmarks = api->GetFeature("bookmarks");
|
| - Feature* bookmarks_create = api->GetFeature("bookmarks.create");
|
| -
|
| - struct {
|
| - Feature* feature;
|
| - // TODO(aa): More stuff to test over time.
|
| - } test_data[] = {
|
| - { bookmarks },
|
| - { bookmarks_create }
|
| - };
|
| -
|
| - for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) {
|
| - Feature* feature = test_data[i].feature;
|
| - ASSERT_TRUE(feature) << i;
|
| -
|
| - EXPECT_TRUE(feature->whitelist()->empty());
|
| - EXPECT_TRUE(feature->extension_types()->empty());
|
| -
|
| - EXPECT_EQ(1u, feature->contexts()->size());
|
| - EXPECT_TRUE(feature->contexts()->count(
|
| - Feature::BLESSED_EXTENSION_CONTEXT));
|
| -
|
| - EXPECT_EQ(Feature::UNSPECIFIED_LOCATION, feature->location());
|
| - EXPECT_EQ(Feature::UNSPECIFIED_PLATFORM, feature->platform());
|
| - EXPECT_EQ(0, feature->min_manifest_version());
|
| - EXPECT_EQ(0, feature->max_manifest_version());
|
| - }
|
| -}
|
| -
|
| -TEST(ExtensionAPI, FeaturesRequireContexts) {
|
| - scoped_ptr<ListValue> schema1(new ListValue());
|
| - DictionaryValue* feature_definition = new DictionaryValue();
|
| - schema1->Append(feature_definition);
|
| - feature_definition->SetString("namespace", "test");
|
| - feature_definition->SetBoolean("uses_feature_system", true);
|
| -
|
| - scoped_ptr<ListValue> schema2(schema1->DeepCopy());
|
| -
|
| - ListValue* contexts = new ListValue();
|
| - contexts->Append(Value::CreateStringValue("content_script"));
|
| - feature_definition->Set("contexts", contexts);
|
| -
|
| - struct {
|
| - ListValue* schema;
|
| - bool expect_success;
|
| - } test_data[] = {
|
| - { schema1.get(), true },
|
| - { schema2.get(), false }
|
| - };
|
| -
|
| - for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) {
|
| - std::string schema_source;
|
| - base::JSONWriter::Write(test_data[i].schema, &schema_source);
|
| -
|
| - ExtensionAPI api;
|
| - api.RegisterSchema("test", base::StringPiece(schema_source));
|
| - api.LoadAllSchemas();
|
| -
|
| - Feature* feature = api.GetFeature("test");
|
| - EXPECT_EQ(test_data[i].expect_success, feature != NULL) << i;
|
| - }
|
| -}
|
| -
|
| } // namespace
|
| } // namespace extensions
|
|
|