OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "extensions/common/features/base_feature_provider.h" | 5 #include "extensions/common/features/base_feature_provider.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <set> | 8 #include <set> |
9 #include <string> | 9 #include <string> |
10 #include <utility> | 10 #include <utility> |
(...skipping 28 matching lines...) Expand all Loading... |
39 EXPECT_EQ(1, STLCount(*(extension_types), Manifest::TYPE_SHARED_MODULE)); | 39 EXPECT_EQ(1, STLCount(*(extension_types), Manifest::TYPE_SHARED_MODULE)); |
40 } | 40 } |
41 | 41 |
42 // Tests that real manifest features have the correct availability for an | 42 // Tests that real manifest features have the correct availability for an |
43 // extension. | 43 // extension. |
44 TEST(BaseFeatureProviderTest, ManifestFeatureAvailability) { | 44 TEST(BaseFeatureProviderTest, ManifestFeatureAvailability) { |
45 const FeatureProvider* provider = BaseFeatureProvider::GetByName("manifest"); | 45 const FeatureProvider* provider = BaseFeatureProvider::GetByName("manifest"); |
46 | 46 |
47 scoped_refptr<const Extension> extension = | 47 scoped_refptr<const Extension> extension = |
48 ExtensionBuilder() | 48 ExtensionBuilder() |
49 .SetManifest(std::move(DictionaryBuilder() | 49 .SetManifest(DictionaryBuilder() |
50 .Set("name", "test extension") | 50 .Set("name", "test extension") |
51 .Set("version", "1") | 51 .Set("version", "1") |
52 .Set("description", "hello there"))) | 52 .Set("description", "hello there") |
| 53 .Build()) |
53 .Build(); | 54 .Build(); |
54 ASSERT_TRUE(extension.get()); | 55 ASSERT_TRUE(extension.get()); |
55 | 56 |
56 Feature* feature = provider->GetFeature("description"); | 57 Feature* feature = provider->GetFeature("description"); |
57 EXPECT_EQ(Feature::IS_AVAILABLE, | 58 EXPECT_EQ(Feature::IS_AVAILABLE, |
58 feature->IsAvailableToContext(extension.get(), | 59 feature->IsAvailableToContext(extension.get(), |
59 Feature::UNSPECIFIED_CONTEXT, | 60 Feature::UNSPECIFIED_CONTEXT, |
60 GURL()).result()); | 61 GURL()).result()); |
61 | 62 |
62 // This is a generic extension, so an app-only feature isn't allowed. | 63 // This is a generic extension, so an app-only feature isn't allowed. |
(...skipping 30 matching lines...) Expand all Loading... |
93 EXPECT_EQ(1, STLCount(*(extension_types), Manifest::TYPE_PLATFORM_APP)); | 94 EXPECT_EQ(1, STLCount(*(extension_types), Manifest::TYPE_PLATFORM_APP)); |
94 } | 95 } |
95 | 96 |
96 // Tests that real permission features have the correct availability for an app. | 97 // Tests that real permission features have the correct availability for an app. |
97 TEST(BaseFeatureProviderTest, PermissionFeatureAvailability) { | 98 TEST(BaseFeatureProviderTest, PermissionFeatureAvailability) { |
98 const FeatureProvider* provider = | 99 const FeatureProvider* provider = |
99 BaseFeatureProvider::GetByName("permission"); | 100 BaseFeatureProvider::GetByName("permission"); |
100 | 101 |
101 scoped_refptr<const Extension> app = | 102 scoped_refptr<const Extension> app = |
102 ExtensionBuilder() | 103 ExtensionBuilder() |
103 .SetManifest(std::move( | 104 .SetManifest( |
104 DictionaryBuilder() | 105 DictionaryBuilder() |
105 .Set("name", "test app") | 106 .Set("name", "test app") |
106 .Set("version", "1") | 107 .Set("version", "1") |
107 .Set("app", std::move(DictionaryBuilder().Set( | 108 .Set("app", |
108 "background", | 109 DictionaryBuilder() |
109 std::move(DictionaryBuilder().Set( | 110 .Set("background", |
110 "scripts", std::move(ListBuilder().Append( | 111 DictionaryBuilder() |
111 "background.js"))))))) | 112 .Set("scripts", ListBuilder() |
112 .Set("permissions", | 113 .Append("background.js") |
113 std::move(ListBuilder().Append("power"))))) | 114 .Build()) |
| 115 .Build()) |
| 116 .Build()) |
| 117 .Set("permissions", ListBuilder().Append("power").Build()) |
| 118 .Build()) |
114 .Build(); | 119 .Build(); |
115 ASSERT_TRUE(app.get()); | 120 ASSERT_TRUE(app.get()); |
116 ASSERT_TRUE(app->is_platform_app()); | 121 ASSERT_TRUE(app->is_platform_app()); |
117 | 122 |
118 // A permission requested in the manifest is available. | 123 // A permission requested in the manifest is available. |
119 Feature* feature = provider->GetFeature("power"); | 124 Feature* feature = provider->GetFeature("power"); |
120 EXPECT_EQ( | 125 EXPECT_EQ( |
121 Feature::IS_AVAILABLE, | 126 Feature::IS_AVAILABLE, |
122 feature->IsAvailableToContext( | 127 feature->IsAvailableToContext( |
123 app.get(), Feature::UNSPECIFIED_CONTEXT, GURL()).result()); | 128 app.get(), Feature::UNSPECIFIED_CONTEXT, GURL()).result()); |
(...skipping 10 matching lines...) Expand all Loading... |
134 // A permission that isn't part of the manifest returns NOT_PRESENT. | 139 // A permission that isn't part of the manifest returns NOT_PRESENT. |
135 feature = provider->GetFeature("serial"); | 140 feature = provider->GetFeature("serial"); |
136 ASSERT_TRUE(feature); | 141 ASSERT_TRUE(feature); |
137 EXPECT_EQ( | 142 EXPECT_EQ( |
138 Feature::NOT_PRESENT, | 143 Feature::NOT_PRESENT, |
139 feature->IsAvailableToContext( | 144 feature->IsAvailableToContext( |
140 app.get(), Feature::UNSPECIFIED_CONTEXT, GURL()).result()); | 145 app.get(), Feature::UNSPECIFIED_CONTEXT, GURL()).result()); |
141 } | 146 } |
142 | 147 |
143 } // namespace extensions | 148 } // namespace extensions |
OLD | NEW |