Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(832)

Unified Diff: chrome/common/extensions/api/extension_api_unittest.cc

Issue 14494013: Allow API functions and events to have entries in _api_features.json (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 f32d451e95275fc1a2cd7254bf4636aac8f73549..a7d9cf1e2a5cb4f174394c065b54ee70f84e22a9 100644
--- a/chrome/common/extensions/api/extension_api_unittest.cc
+++ b/chrome/common/extensions/api/extension_api_unittest.cc
@@ -93,9 +93,6 @@ TEST_F(ExtensionAPITest, IsPrivileged) {
EXPECT_FALSE(extension_api->IsPrivileged("runtime.connect"));
EXPECT_FALSE(extension_api->IsPrivileged("runtime.onConnect"));
- // Properties are not supported yet.
- EXPECT_TRUE(extension_api->IsPrivileged("runtime.lastError"));
not at google - send to devlin 2013/04/27 01:02:43 change to EXPECT_FALSE?
cduvall 2013/05/01 02:51:47 Done.
-
// Default unknown names to privileged for paranoia's sake.
EXPECT_TRUE(extension_api->IsPrivileged(std::string()));
EXPECT_TRUE(extension_api->IsPrivileged("<unknown-namespace>"));
@@ -225,6 +222,58 @@ TEST(ExtensionAPI, APIFeatures) {
}
}
+TEST(ExtensionAPI, IsPartAvailableToContext) {
+ struct {
+ std::string api_full_name;
+ bool expect_is_available;
+ Feature::Context context;
+ GURL url;
+ } test_data[] = {
+ { "test1", false, Feature::WEB_PAGE_CONTEXT, GURL() },
+ { "test1", true, Feature::UNBLESSED_EXTENSION_CONTEXT, GURL() },
+ { "test2", true, Feature::CONTENT_SCRIPT_CONTEXT, GURL() },
+ { "test2", true, Feature::WEB_PAGE_CONTEXT, GURL("http://google.com") },
+ { "test2.foo", false, Feature::WEB_PAGE_CONTEXT,
+ GURL("http://google.com") },
+ { "test3", true, Feature::CONTENT_SCRIPT_CONTEXT, GURL() },
+ { "test3", true, Feature::WEB_PAGE_CONTEXT, GURL("http://foo.com") },
+ { "test4.foo", true, Feature::CONTENT_SCRIPT_CONTEXT, GURL() },
+ { "test7", false, Feature::WEB_PAGE_CONTEXT, GURL("http://google.com") },
+ { "test7", true, Feature::WEB_PAGE_CONTEXT, GURL("http://foo.com") },
+ { "test7", false, Feature::WEB_PAGE_CONTEXT, GURL("http://bar.com") }
+ };
+
+ base::FilePath api_features_path;
+ PathService::Get(chrome::DIR_TEST_DATA, &api_features_path);
+ api_features_path = api_features_path.AppendASCII("extensions")
+ .AppendASCII("extension_api_unittest")
+ .AppendASCII("api_features.json");
+
+ std::string api_features_str;
+ ASSERT_TRUE(file_util::ReadFileToString(
+ api_features_path, &api_features_str)) << "api_features.json";
+
+ scoped_ptr<base::DictionaryValue> value(static_cast<DictionaryValue*>(
+ base::JSONReader::Read(api_features_str)));
+ BaseFeatureProvider api_feature_provider(*value, CreateAPIFeature);
+
+ for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) {
+ ExtensionAPI api;
+ api.RegisterDependencyProvider("api", &api_feature_provider);
+ for (base::DictionaryValue::Iterator iter(*value); !iter.IsAtEnd();
+ iter.Advance()) {
+ if (iter.key().find(".") == std::string::npos)
+ api.RegisterSchema(iter.key(), "");
+ }
+
+ EXPECT_EQ(test_data[i].expect_is_available,
+ api.IsPartAvailableToContext(
+ test_data[i].api_full_name,
+ test_data[i].context,
+ test_data[i].url).is_available()) << i;
+ }
+}
+
TEST_F(ExtensionAPITest, LazyGetSchema) {
scoped_ptr<ExtensionAPI> apis(ExtensionAPI::CreateWithDefaultConfiguration());

Powered by Google App Engine
This is Rietveld 408576698