Chromium Code Reviews| 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()); |