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 0047d5677b85813bb3c136ada5770dd5ceeaeb67..92ef9103eaf0aad7da5e03375ad4b219496f711d 100644 |
--- a/chrome/common/extensions/api/extension_api_unittest.cc |
+++ b/chrome/common/extensions/api/extension_api_unittest.cc |
@@ -26,7 +26,6 @@ |
#include "testing/gtest/include/gtest/gtest.h" |
namespace extensions { |
-namespace { |
SimpleFeature* CreateAPIFeature() { |
return new APIFeature(); |
@@ -91,11 +90,6 @@ TEST(ExtensionAPITest, IsPrivileged) { |
EXPECT_FALSE(extension_api->IsPrivileged("runtime.onConnect")); |
EXPECT_FALSE(extension_api->IsPrivileged("runtime.lastError")); |
- // Default unknown names to privileged for paranoia's sake. |
- EXPECT_TRUE(extension_api->IsPrivileged(std::string())); |
- EXPECT_TRUE(extension_api->IsPrivileged("<unknown-namespace>")); |
- EXPECT_TRUE(extension_api->IsPrivileged("extension.<unknown-member>")); |
- |
// Exists, but privileged. |
EXPECT_TRUE(extension_api->IsPrivileged("extension.getViews")); |
EXPECT_TRUE(extension_api->IsPrivileged("history.search")); |
@@ -148,7 +142,7 @@ TEST(ExtensionAPITest, IsPrivilegedFeatures) { |
} |
} |
-TEST(ExtensionAPI, APIFeatures) { |
+TEST(ExtensionAPITest, APIFeatures) { |
struct { |
std::string api_full_name; |
bool expect_is_available; |
@@ -186,7 +180,24 @@ TEST(ExtensionAPI, APIFeatures) { |
{ "test7.foo", false, Feature::WEB_PAGE_CONTEXT, GURL("http://bar.com") }, |
{ "test7.foo", true, Feature::WEB_PAGE_CONTEXT, GURL("http://foo.com") }, |
{ "test7.bar", false, Feature::WEB_PAGE_CONTEXT, GURL("http://bar.com") }, |
- { "test7.bar", false, Feature::WEB_PAGE_CONTEXT, GURL("http://foo.com") } |
+ { "test7.bar", false, Feature::WEB_PAGE_CONTEXT, GURL("http://foo.com") }, |
+ |
+ // Test parent/child. |
+ { "parent1", true, Feature::CONTENT_SCRIPT_CONTEXT, GURL() }, |
+ { "parent1", false, Feature::WEB_PAGE_CONTEXT, GURL("http://foo.com") }, |
+ { "child1", false, Feature::CONTENT_SCRIPT_CONTEXT, GURL() }, |
+ { "child1", true, Feature::WEB_PAGE_CONTEXT, GURL("http://foo.com") }, |
+ { "child2", true, Feature::CONTENT_SCRIPT_CONTEXT, GURL() }, |
+ { "child2", false, Feature::WEB_PAGE_CONTEXT, GURL("http://foo.com") }, |
+ { "parent2", true, Feature::CONTENT_SCRIPT_CONTEXT, GURL() }, |
+ { "parent2", true, Feature::BLESSED_EXTENSION_CONTEXT, GURL() }, |
+ { "parent2", true, Feature::UNBLESSED_EXTENSION_CONTEXT, GURL() }, |
+ { "child3", false, Feature::CONTENT_SCRIPT_CONTEXT, GURL() }, |
+ { "child3", true, Feature::BLESSED_EXTENSION_CONTEXT, GURL() }, |
+ { "child3", false, Feature::UNBLESSED_EXTENSION_CONTEXT, GURL() }, |
+ { "child.child", true, Feature::CONTENT_SCRIPT_CONTEXT, GURL() }, |
+ { "child.child", false, Feature::BLESSED_EXTENSION_CONTEXT, GURL() }, |
+ { "child.child", true, Feature::UNBLESSED_EXTENSION_CONTEXT, GURL() } |
}; |
base::FilePath api_features_path; |
@@ -209,7 +220,7 @@ TEST(ExtensionAPI, APIFeatures) { |
for (base::DictionaryValue::Iterator iter(*value); !iter.IsAtEnd(); |
iter.Advance()) { |
if (iter.key().find(".") == std::string::npos) |
- api.RegisterSchema(iter.key(), ""); |
+ api.RegisterSchemaResource(iter.key(), 0); |
} |
EXPECT_EQ(test_data[i].expect_is_available, |
@@ -220,7 +231,7 @@ TEST(ExtensionAPI, APIFeatures) { |
} |
} |
-TEST(ExtensionAPI, IsAnyFeatureAvailableToContext) { |
+TEST(ExtensionAPITest, IsAnyFeatureAvailableToContext) { |
struct { |
std::string api_full_name; |
bool expect_is_available; |
@@ -261,7 +272,7 @@ TEST(ExtensionAPI, IsAnyFeatureAvailableToContext) { |
for (base::DictionaryValue::Iterator iter(*value); !iter.IsAtEnd(); |
iter.Advance()) { |
if (iter.key().find(".") == std::string::npos) |
- api.RegisterSchema(iter.key(), ""); |
+ api.RegisterSchemaResource(iter.key(), 0); |
} |
EXPECT_EQ(test_data[i].expect_is_available, |
@@ -339,65 +350,65 @@ TEST(ExtensionAPITest, ExtensionWithUnprivilegedAPIs) { |
// "runtime" has privileged parts that should not be accessed by content |
// scripts. |
- EXPECT_FALSE(extension_api->IsAvailable("runtime", |
- extension.get(), |
- Feature::CONTENT_SCRIPT_CONTEXT, |
- GURL()).is_available()); |
- EXPECT_FALSE(extension_api->IsAvailable("runtime.sendNativeMessage", |
- extension.get(), |
- Feature::CONTENT_SCRIPT_CONTEXT, |
- GURL()).is_available()); |
+ EXPECT_FALSE(extension_api->IsAnyFeatureAvailableToContext( |
+ "runtime.getBackgroundPage", |
+ Feature::CONTENT_SCRIPT_CONTEXT, |
+ GURL())); |
+ EXPECT_FALSE(extension_api->IsAnyFeatureAvailableToContext( |
+ "runtime.sendNativeMessage", |
+ Feature::CONTENT_SCRIPT_CONTEXT, |
+ GURL())); |
// "runtime" also has unprivileged parts. |
- EXPECT_TRUE(extension_api->IsAvailable("runtime.sendMessage", |
- extension.get(), |
- Feature::CONTENT_SCRIPT_CONTEXT, |
- GURL()).is_available()); |
- EXPECT_TRUE(extension_api->IsAvailable("runtime.id", |
- extension.get(), |
- Feature::CONTENT_SCRIPT_CONTEXT, |
- GURL()).is_available()); |
+ EXPECT_TRUE(extension_api->IsAnyFeatureAvailableToContext( |
+ "runtime.sendMessage", |
+ Feature::CONTENT_SCRIPT_CONTEXT, |
+ GURL())); |
+ EXPECT_TRUE(extension_api->IsAnyFeatureAvailableToContext( |
+ "runtime.id", |
+ Feature::CONTENT_SCRIPT_CONTEXT, |
+ GURL())); |
// "storage" is completely unprivileged. |
- EXPECT_TRUE(extension_api->IsAvailable("storage", |
- extension.get(), |
- Feature::BLESSED_EXTENSION_CONTEXT, |
- GURL()).is_available()); |
- EXPECT_TRUE(extension_api->IsAvailable("storage", |
- extension.get(), |
- Feature::UNBLESSED_EXTENSION_CONTEXT, |
- GURL()).is_available()); |
- EXPECT_TRUE(extension_api->IsAvailable("storage", |
- extension.get(), |
- Feature::CONTENT_SCRIPT_CONTEXT, |
- GURL()).is_available()); |
+ EXPECT_TRUE(extension_api->IsAnyFeatureAvailableToContext( |
+ "storage", |
+ Feature::BLESSED_EXTENSION_CONTEXT, |
+ GURL())); |
+ EXPECT_TRUE(extension_api->IsAnyFeatureAvailableToContext( |
+ "storage", |
+ Feature::UNBLESSED_EXTENSION_CONTEXT, |
+ GURL())); |
+ EXPECT_TRUE(extension_api->IsAnyFeatureAvailableToContext( |
+ "storage", |
+ Feature::CONTENT_SCRIPT_CONTEXT, |
+ GURL())); |
// "extension" is partially unprivileged. |
- EXPECT_TRUE(extension_api->IsAvailable("extension", |
- extension.get(), |
- Feature::BLESSED_EXTENSION_CONTEXT, |
- GURL()).is_available()); |
- EXPECT_TRUE(extension_api->IsAvailable("extension", |
- extension.get(), |
- Feature::UNBLESSED_EXTENSION_CONTEXT, |
- GURL()).is_available()); |
- EXPECT_TRUE(extension_api->IsAvailable("extension", |
- extension.get(), |
- Feature::CONTENT_SCRIPT_CONTEXT, |
- GURL()).is_available()); |
+ EXPECT_TRUE(extension_api->IsAnyFeatureAvailableToContext( |
+ "extension", |
+ Feature::BLESSED_EXTENSION_CONTEXT, |
+ GURL())); |
+ EXPECT_TRUE(extension_api->IsAnyFeatureAvailableToContext( |
+ "extension", |
+ Feature::UNBLESSED_EXTENSION_CONTEXT, |
+ GURL())); |
+ EXPECT_TRUE(extension_api->IsAnyFeatureAvailableToContext( |
+ "extension", |
+ Feature::CONTENT_SCRIPT_CONTEXT, |
+ GURL())); |
// "history" is entirely privileged. |
- EXPECT_TRUE(extension_api->IsAvailable("history", |
- extension.get(), |
- Feature::BLESSED_EXTENSION_CONTEXT, |
- GURL()).is_available()); |
- EXPECT_FALSE(extension_api->IsAvailable("history", |
- extension.get(), |
- Feature::UNBLESSED_EXTENSION_CONTEXT, |
- GURL()).is_available()); |
- EXPECT_FALSE(extension_api->IsAvailable("history", |
- extension.get(), |
- Feature::CONTENT_SCRIPT_CONTEXT, |
- GURL()).is_available()); |
+ EXPECT_TRUE(extension_api->IsAnyFeatureAvailableToContext( |
+ "history", |
+ Feature::BLESSED_EXTENSION_CONTEXT, |
+ GURL())); |
+ EXPECT_FALSE(extension_api->IsAnyFeatureAvailableToContext( |
+ "history", |
+ Feature::UNBLESSED_EXTENSION_CONTEXT, |
+ GURL())); |
+ EXPECT_FALSE(extension_api->IsAnyFeatureAvailableToContext( |
+ "history", |
+ Feature::CONTENT_SCRIPT_CONTEXT, |
+ GURL())); |
} |
scoped_refptr<Extension> CreateHostedApp() { |
@@ -622,7 +633,8 @@ TEST(ExtensionAPITest, TypesHaveNamespace) { |
<< "Failed to load: " << manifest_path.value(); |
ExtensionAPI api; |
- api.RegisterSchema("test.foo", manifest_str); |
+ api.RegisterSchemaResource("test.foo", 0); |
+ api.LoadSchema("test.foo", manifest_str); |
const base::DictionaryValue* schema = api.GetSchema("test.foo"); |
@@ -669,5 +681,4 @@ TEST(ExtensionAPITest, TypesHaveNamespace) { |
EXPECT_EQ("fully.qualified.Type", type); |
} |
-} // namespace |
} // namespace extensions |