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

Unified Diff: extensions/common/features/base_feature_provider_unittest.cc

Issue 246423002: Split feature definitions into extensions and chrome features. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: repack2 Created 6 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
« no previous file with comments | « extensions/common/features/base_feature_provider.cc ('k') | extensions/common/features/feature_provider.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
« no previous file with comments | « extensions/common/features/base_feature_provider.cc ('k') | extensions/common/features/feature_provider.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698