Chromium Code Reviews| Index: chrome/common/extensions/api/common_extension_api_unittest.cc |
| diff --git a/chrome/common/extensions/api/common_extension_api_unittest.cc b/chrome/common/extensions/api/common_extension_api_unittest.cc |
| index c451ea414898e5c766f2fce9873471a7d8d9fe70..b2cde04aa97b2b2bf55a8a6118cc1d1ad2f6b604 100644 |
| --- a/chrome/common/extensions/api/common_extension_api_unittest.cc |
| +++ b/chrome/common/extensions/api/common_extension_api_unittest.cc |
| @@ -13,18 +13,15 @@ |
| #include "base/files/file_path.h" |
| #include "base/files/file_util.h" |
| -#include "base/json/json_reader.h" |
| -#include "base/json/json_writer.h" |
| #include "base/macros.h" |
| #include "base/memory/ref_counted.h" |
| #include "base/path_service.h" |
| #include "base/strings/stringprintf.h" |
| #include "base/values.h" |
| #include "chrome/common/chrome_paths.h" |
| +#include "chrome/common/extensions/extension_features_unittest.h" |
| #include "extensions/common/extension.h" |
| #include "extensions/common/extension_builder.h" |
| -#include "extensions/common/features/api_feature.h" |
| -#include "extensions/common/features/json_feature_provider.h" |
| #include "extensions/common/features/simple_feature.h" |
| #include "extensions/common/manifest.h" |
| #include "extensions/common/manifest_constants.h" |
| @@ -36,10 +33,6 @@ namespace extensions { |
| using test_util::BuildExtension; |
| -SimpleFeature* CreateAPIFeature() { |
| - return new APIFeature(); |
| -} |
| - |
| TEST(ExtensionAPITest, Creation) { |
| ExtensionAPI* shared_instance = ExtensionAPI::GetSharedInstance(); |
| EXPECT_EQ(shared_instance, ExtensionAPI::GetSharedInstance()); |
| @@ -164,31 +157,20 @@ TEST(ExtensionAPITest, APIFeatures) { |
| GURL() } |
| }; |
| - 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(base::ReadFileToString( |
| - api_features_path, &api_features_str)) << "api_features.json"; |
| + const char* test_features[] = { |
|
Lei Zhang
2016/08/16 19:41:57
const char* const kTestFeatures[]
Devlin
2016/08/17 01:10:35
Done.
|
| + "test1", "test2", "test3", "test4", "test5", |
| + "test6", "test7", "parent1", "parent2", "parent3", |
| + }; |
| - std::unique_ptr<base::DictionaryValue> value( |
| - static_cast<base::DictionaryValue*>( |
| - base::JSONReader::Read(api_features_str).release())); |
| - JSONFeatureProvider api_feature_provider(*value, CreateAPIFeature); |
| + UnittestFeatureProvider api_feature_provider; |
| for (size_t i = 0; i < arraysize(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.RegisterSchemaResource(iter.key(), 0); |
| - } |
| - |
| + for (const auto& key : test_features) |
| + api.RegisterSchemaResource(key, 0); |
| ExtensionAPI::OverrideSharedInstanceForTest scope(&api); |
| + |
| bool expected = test_data[i].expect_is_available; |
| Feature::Availability availability = |
| api.IsAvailable(test_data[i].api_full_name, |
| @@ -258,29 +240,19 @@ TEST(ExtensionAPITest, IsAnyFeatureAvailableToContext) { |
| { "test7", false, Feature::WEB_PAGE_CONTEXT, NULL, 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(base::ReadFileToString( |
| - api_features_path, &api_features_str)) << "api_features.json"; |
| + const char* test_features[] = { |
|
Lei Zhang
2016/08/16 19:41:57
Ditto, or just declare this once in an anonymous n
Devlin
2016/08/17 01:10:35
Done.
|
| + "test1", "test2", "test3", "test4", "test5", |
| + "test6", "test7", "parent1", "parent2", "parent3", |
| + }; |
| - std::unique_ptr<base::DictionaryValue> value( |
| - static_cast<base::DictionaryValue*>( |
| - base::JSONReader::Read(api_features_str).release())); |
| - JSONFeatureProvider api_feature_provider(*value, CreateAPIFeature); |
| + UnittestFeatureProvider api_feature_provider; |
| for (size_t i = 0; i < arraysize(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.RegisterSchemaResource(iter.key(), 0); |
| - } |
| + for (const auto& key : test_features) |
| + api.RegisterSchemaResource(key, 0); |
| + ExtensionAPI::OverrideSharedInstanceForTest scope(&api); |
| Feature* test_feature = |
| api_feature_provider.GetFeature(test_data[i].api_full_name); |
| @@ -676,18 +648,6 @@ TEST(ExtensionAPITest, DefaultConfigurationFeatures) { |
| } |
| } |
| -TEST(ExtensionAPITest, JSONFeatureProviderDoesNotStoreInvalidFeatures) { |
| - base::DictionaryValue features; |
| - std::unique_ptr<base::DictionaryValue> feature_value( |
| - new base::DictionaryValue()); |
| - // This feature is invalid (it needs an extension context), so the |
| - // JSONFeatureProvider should not store it. |
| - feature_value->SetString("channel", "stable"); |
| - features.Set("test", std::move(feature_value)); |
| - JSONFeatureProvider api_feature_provider(features, CreateAPIFeature); |
| - EXPECT_FALSE(api_feature_provider.GetFeature("test")); |
| -} |
| - |
| static void GetDictionaryFromList(const base::DictionaryValue* schema, |
| const std::string& list_name, |
| const int list_index, |