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

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

Issue 377753003: Remove GetContexts() from the public interface of extensions::Feature. It was (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 years, 5 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
« no previous file with comments | « no previous file | chrome/test/data/extensions/extension_api_unittest/privileged_api_features.json » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 bdd8313b6bccee5c053b9a122e2367b0dd808f22..58c72ac362f6ea7785235ef66838cd0dacb63248 100644
--- a/chrome/common/extensions/api/extension_api_unittest.cc
+++ b/chrome/common/extensions/api/extension_api_unittest.cc
@@ -85,43 +85,73 @@ TEST(ExtensionAPITest, SplitDependencyName) {
}
}
-TEST(ExtensionAPITest, IsPrivileged) {
+TEST(ExtensionAPITest, IsAvailableInUntrustedContext) {
scoped_ptr<ExtensionAPI> extension_api(
ExtensionAPI::CreateWithDefaultConfiguration());
-
- EXPECT_FALSE(extension_api->IsPrivileged("runtime.connect"));
- EXPECT_FALSE(extension_api->IsPrivileged("runtime.onConnect"));
- EXPECT_FALSE(extension_api->IsPrivileged("runtime.lastError"));
+ scoped_refptr<const Extension> extension =
+ ExtensionBuilder()
+ .SetManifest(DictionaryBuilder()
+ .Set("name", "extension")
+ .Set("version", "1")
+ .Set("permissions", ListBuilder().Append("storage"))
+ .Set("manifest_version", 2))
+ .Build();
+
+ EXPECT_TRUE(extension_api->IsAvailableInUntrustedContext("runtime.connect",
+ extension.get()));
+ EXPECT_TRUE(extension_api->IsAvailableInUntrustedContext("runtime.onConnect",
+ extension.get()));
+ EXPECT_TRUE(extension_api->IsAvailableInUntrustedContext("runtime.lastError",
+ extension.get()));
// Exists, but privileged.
- EXPECT_TRUE(extension_api->IsPrivileged("extension.getViews"));
- EXPECT_TRUE(extension_api->IsPrivileged("history.search"));
+ EXPECT_FALSE(extension_api->IsAvailableInUntrustedContext(
+ "extension.getViews", extension.get()));
+ EXPECT_FALSE(extension_api->IsAvailableInUntrustedContext("history.search",
+ extension.get()));
// Whole APIs that are unprivileged.
- EXPECT_FALSE(extension_api->IsPrivileged("app.getDetails"));
- EXPECT_FALSE(extension_api->IsPrivileged("app.isInstalled"));
- EXPECT_FALSE(extension_api->IsPrivileged("storage.local"));
- EXPECT_FALSE(extension_api->IsPrivileged("storage.local.onChanged"));
- EXPECT_FALSE(extension_api->IsPrivileged("storage.local.set"));
- EXPECT_FALSE(extension_api->IsPrivileged("storage.local.MAX_ITEMS"));
- EXPECT_FALSE(extension_api->IsPrivileged("storage.set"));
+ EXPECT_TRUE(
+ extension_api->IsAvailableInUntrustedContext("app", extension.get()));
+ EXPECT_TRUE(extension_api->IsAvailableInUntrustedContext("app.getDetails",
+ extension.get()));
+ // There is no feature "app.isInstalled" (it's "app.getIsInstalled") but
+ // this should be available nonetheless.
+ EXPECT_TRUE(extension_api->IsAvailableInUntrustedContext("app.isInstalled",
+ extension.get()));
+ EXPECT_TRUE(extension_api->IsAvailableInUntrustedContext("storage.local",
+ extension.get()));
+ EXPECT_TRUE(extension_api->IsAvailableInUntrustedContext(
+ "storage.local.onChanged", extension.get()));
+ EXPECT_TRUE(extension_api->IsAvailableInUntrustedContext("storage.local.set",
+ extension.get()));
+ EXPECT_TRUE(extension_api->IsAvailableInUntrustedContext(
+ "storage.local.MAX_ITEMS", extension.get()));
+ EXPECT_TRUE(extension_api->IsAvailableInUntrustedContext("storage.set",
+ extension.get()));
+
+ // APIs which override unprivileged APIs.
+ EXPECT_FALSE(extension_api->IsAvailableInUntrustedContext("app.runtime",
+ extension.get()));
+ EXPECT_FALSE(extension_api->IsAvailableInUntrustedContext("app.window",
+ extension.get()));
}
-TEST(ExtensionAPITest, IsPrivilegedFeatures) {
+TEST(ExtensionAPITest, IsAvailableInUntrustedContextFeatures) {
struct {
std::string api_full_name;
- bool expect_is_privilged;
- } test_data[] = {
- { "test1", false },
- { "test1.foo", true },
- { "test2", true },
- { "test2.foo", false },
- { "test2.bar", false },
- { "test2.baz", true },
- { "test3", false },
- { "test3.foo", true },
- { "test4", false }
- };
+ bool expect_is_available;
+ } test_data[] = {{"test1", true},
+ {"test1.foo", false},
+ {"test2", false},
+ {"test2.foo", true},
+ {"test2.bar", true},
+ {"test2.baz", false},
+ {"test2.qux", false},
+ {"test3", true},
+ {"test3.foo", false},
+ {"test4", true},
+ {"test5", true}};
base::FilePath api_features_path;
PathService::Get(chrome::DIR_TEST_DATA, &api_features_path);
@@ -137,11 +167,16 @@ TEST(ExtensionAPITest, IsPrivilegedFeatures) {
base::JSONReader::Read(api_features_str)));
BaseFeatureProvider api_feature_provider(*value, CreateAPIFeature);
+ scoped_refptr<Extension> extension =
+ BuildExtension(ExtensionBuilder().Pass()).Build();
+
for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) {
ExtensionAPI api;
api.RegisterDependencyProvider("api", &api_feature_provider);
- EXPECT_EQ(test_data[i].expect_is_privilged,
- api.IsPrivileged(test_data[i].api_full_name)) << i;
+ EXPECT_EQ(test_data[i].expect_is_available,
+ api.IsAvailableInUntrustedContext(test_data[i].api_full_name,
+ extension.get()))
+ << i;
}
}
@@ -708,10 +743,6 @@ TEST(ExtensionAPITest, DefaultConfigurationFeatures) {
EXPECT_TRUE(feature->whitelist()->empty());
EXPECT_TRUE(feature->extension_types()->empty());
- EXPECT_EQ(1u, feature->GetContexts()->size());
- EXPECT_TRUE(feature->GetContexts()->count(
- Feature::BLESSED_EXTENSION_CONTEXT));
-
EXPECT_EQ(SimpleFeature::UNSPECIFIED_LOCATION, feature->location());
EXPECT_TRUE(feature->platforms()->empty());
EXPECT_EQ(0, feature->min_manifest_version());
« no previous file with comments | « no previous file | chrome/test/data/extensions/extension_api_unittest/privileged_api_features.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698