| Index: chrome/common/extensions/simple_feature_provider_unittest.cc
|
| diff --git a/chrome/common/extensions/simple_feature_provider_unittest.cc b/chrome/common/extensions/simple_feature_provider_unittest.cc
|
| index f6bffef710822d94a2b61b5c019c2e67e3010ee4..401828e3922a1a524a4270afe5d5ecc70cc99f0b 100644
|
| --- a/chrome/common/extensions/simple_feature_provider_unittest.cc
|
| +++ b/chrome/common/extensions/simple_feature_provider_unittest.cc
|
| @@ -12,9 +12,79 @@ using extensions::SimpleFeatureProvider;
|
| TEST(SimpleFeatureProvider, ManifestFeatures) {
|
| SimpleFeatureProvider* provider =
|
| SimpleFeatureProvider::GetManifestFeatures();
|
| - scoped_ptr<Feature> feature = provider->GetFeature("name");
|
| + scoped_ptr<Feature> feature = provider->GetFeature("description");
|
| ASSERT_TRUE(feature.get());
|
| EXPECT_EQ(5u, feature->extension_types()->size());
|
| + EXPECT_EQ(1u, feature->extension_types()->count(Extension::TYPE_EXTENSION));
|
| + EXPECT_EQ(1u,
|
| + feature->extension_types()->count(Extension::TYPE_PACKAGED_APP));
|
| + EXPECT_EQ(1u,
|
| + feature->extension_types()->count(Extension::TYPE_PLATFORM_APP));
|
| + EXPECT_EQ(1u, feature->extension_types()->count(Extension::TYPE_HOSTED_APP));
|
| + EXPECT_EQ(1u, feature->extension_types()->count(Extension::TYPE_THEME));
|
| +
|
| + DictionaryValue manifest;
|
| + manifest.SetString("name", "test extension");
|
| + manifest.SetString("version", "1");
|
| + manifest.SetString("description", "hello there");
|
| +
|
| + std::string error;
|
| + scoped_refptr<const Extension> extension(Extension::Create(
|
| + FilePath(), Extension::INTERNAL, manifest, Extension::NO_FLAGS,
|
| + &error));
|
| +
|
| + ASSERT_TRUE(extension.get());
|
| + EXPECT_EQ(Feature::IS_AVAILABLE, feature->IsAvailableToContext(
|
| + extension.get(), Feature::UNSPECIFIED_CONTEXT));
|
| +
|
| + feature = provider->GetFeature("theme");
|
| + ASSERT_TRUE(feature.get());
|
| + EXPECT_EQ(Feature::INVALID_TYPE, feature->IsAvailableToContext(
|
| + extension.get(), Feature::UNSPECIFIED_CONTEXT));
|
| +
|
| + feature = provider->GetFeature("devtools_page");
|
| + ASSERT_TRUE(feature.get());
|
| + EXPECT_EQ(Feature::NOT_PRESENT, feature->IsAvailableToContext(
|
| + extension.get(), Feature::UNSPECIFIED_CONTEXT));
|
| +}
|
| +
|
| +TEST(SimpleFeatureProvider, PermissionFeatures) {
|
| + SimpleFeatureProvider* provider =
|
| + SimpleFeatureProvider::GetPermissionFeatures();
|
| + scoped_ptr<Feature> feature = provider->GetFeature("browsingData");
|
| + ASSERT_TRUE(feature.get());
|
| + EXPECT_EQ(3u, feature->extension_types()->size());
|
| + EXPECT_EQ(1u, feature->extension_types()->count(Extension::TYPE_EXTENSION));
|
| + EXPECT_EQ(1u,
|
| + feature->extension_types()->count(Extension::TYPE_PACKAGED_APP));
|
| + EXPECT_EQ(1u,
|
| + feature->extension_types()->count(Extension::TYPE_PLATFORM_APP));
|
| +
|
| + DictionaryValue manifest;
|
| + manifest.SetString("name", "test extension");
|
| + manifest.SetString("version", "1");
|
| + ListValue* permissions = new ListValue();
|
| + manifest.Set("permissions", permissions);
|
| + permissions->Append(Value::CreateStringValue("browsingData"));
|
| +
|
| + std::string error;
|
| + scoped_refptr<const Extension> extension(Extension::Create(
|
| + FilePath(), Extension::INTERNAL, manifest, Extension::NO_FLAGS,
|
| + &error));
|
| +
|
| + ASSERT_TRUE(extension.get());
|
| + EXPECT_EQ(Feature::IS_AVAILABLE, feature->IsAvailableToContext(
|
| + extension.get(), Feature::UNSPECIFIED_CONTEXT));
|
| +
|
| + feature = provider->GetFeature("chromePrivate");
|
| + ASSERT_TRUE(feature.get());
|
| + EXPECT_EQ(Feature::NOT_FOUND_IN_WHITELIST, feature->IsAvailableToContext(
|
| + extension.get(), Feature::UNSPECIFIED_CONTEXT));
|
| +
|
| + feature = provider->GetFeature("clipboardWrite");
|
| + ASSERT_TRUE(feature.get());
|
| + EXPECT_EQ(Feature::NOT_PRESENT, feature->IsAvailableToContext(
|
| + extension.get(), Feature::UNSPECIFIED_CONTEXT));
|
| }
|
|
|
| TEST(SimpleFeatureProvider, Validation) {
|
| @@ -32,7 +102,7 @@ TEST(SimpleFeatureProvider, Validation) {
|
| feature2->Set("contexts", contexts);
|
| value->Set("feature2", feature2);
|
|
|
| - SimpleFeatureProvider provider(value.Pass());
|
| + SimpleFeatureProvider provider(value.Pass(), NULL);
|
|
|
| // feature1 won't validate because it lacks an extension type.
|
| EXPECT_FALSE(provider.GetFeature("feature1").get());
|
|
|