| Index: extensions/common/features/base_feature_provider_unittest.cc
|
| diff --git a/extensions/common/features/base_feature_provider_unittest.cc b/extensions/common/features/base_feature_provider_unittest.cc
|
| index f856b35d3a2787cca787c02dd0229f216b081439..0d19fd47457e2fae171666e2b4373d4649aa42f2 100644
|
| --- a/extensions/common/features/base_feature_provider_unittest.cc
|
| +++ b/extensions/common/features/base_feature_provider_unittest.cc
|
| @@ -14,6 +14,18 @@ using chrome::VersionInfo;
|
|
|
| namespace extensions {
|
|
|
| +namespace {
|
| +
|
| +template <class FeatureClass>
|
| +SimpleFeature* CreateFeature() {
|
| + SimpleFeature* feature = new FeatureClass();
|
| + feature->AddFilter(
|
| + scoped_ptr<SimpleFeatureFilter>(new ChromeChannelFeatureFilter(feature)));
|
| + return feature;
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| TEST(BaseFeatureProviderTest, ManifestFeatures) {
|
| FeatureProvider* provider = BaseFeatureProvider::GetByName("manifest");
|
| SimpleFeature* feature =
|
| @@ -98,13 +110,6 @@ TEST(BaseFeatureProviderTest, PermissionFeatures) {
|
| extension.get(), Feature::UNSPECIFIED_CONTEXT).result());
|
| }
|
|
|
| -SimpleFeature* CreatePermissionFeature() {
|
| - SimpleFeature* feature = new PermissionFeature();
|
| - feature->AddFilter(
|
| - scoped_ptr<SimpleFeatureFilter>(new ChromeChannelFeatureFilter(feature)));
|
| - return feature;
|
| -}
|
| -
|
| TEST(BaseFeatureProviderTest, Validation) {
|
| scoped_ptr<base::DictionaryValue> value(new base::DictionaryValue());
|
|
|
| @@ -123,19 +128,21 @@ TEST(BaseFeatureProviderTest, Validation) {
|
| value->Set("feature2", feature2);
|
|
|
| scoped_ptr<BaseFeatureProvider> provider(
|
| - new BaseFeatureProvider(*value, CreatePermissionFeature));
|
| + new BaseFeatureProvider(*value, CreateFeature<PermissionFeature>));
|
|
|
| // feature1 won't validate because it lacks an extension type.
|
| EXPECT_FALSE(provider->GetFeature("feature1"));
|
|
|
| // If we add one, it works.
|
| feature1->Set("extension_types", extension_types->DeepCopy());
|
| - provider.reset(new BaseFeatureProvider(*value, CreatePermissionFeature));
|
| + provider.reset(
|
| + new BaseFeatureProvider(*value, CreateFeature<PermissionFeature>));
|
| EXPECT_TRUE(provider->GetFeature("feature1"));
|
|
|
| // Remove the channel, and feature1 won't validate.
|
| feature1->Remove("channel", NULL);
|
| - provider.reset(new BaseFeatureProvider(*value, CreatePermissionFeature));
|
| + provider.reset(
|
| + new BaseFeatureProvider(*value, CreateFeature<PermissionFeature>));
|
| EXPECT_FALSE(provider->GetFeature("feature1"));
|
|
|
| // feature2 won't validate because of the presence of "contexts".
|
| @@ -143,7 +150,8 @@ TEST(BaseFeatureProviderTest, Validation) {
|
|
|
| // If we remove it, it works.
|
| feature2->Remove("contexts", NULL);
|
| - provider.reset(new BaseFeatureProvider(*value, CreatePermissionFeature));
|
| + provider.reset(
|
| + new BaseFeatureProvider(*value, CreateFeature<PermissionFeature>));
|
| EXPECT_TRUE(provider->GetFeature("feature2"));
|
| }
|
|
|
| @@ -162,7 +170,7 @@ TEST(BaseFeatureProviderTest, ComplexFeatures) {
|
| .Build());
|
|
|
| scoped_ptr<BaseFeatureProvider> provider(
|
| - new BaseFeatureProvider(*rule, NULL));
|
| + new BaseFeatureProvider(*rule, CreateFeature<SimpleFeature>));
|
|
|
| Feature* feature = provider->GetFeature("feature1");
|
| EXPECT_TRUE(feature);
|
|
|