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 "chrome/common/extensions/features/chrome_channel_feature_filter.h" | 5 #include "chrome/common/extensions/features/chrome_channel_feature_filter.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/macros.h" | 10 #include "base/macros.h" |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
172 provider.reset( | 172 provider.reset( |
173 new BaseFeatureProvider(*value, CreateFeature<PermissionFeature>)); | 173 new BaseFeatureProvider(*value, CreateFeature<PermissionFeature>)); |
174 EXPECT_TRUE(provider->GetFeature("feature2")); | 174 EXPECT_TRUE(provider->GetFeature("feature2")); |
175 } | 175 } |
176 | 176 |
177 // Tests simple feature availability across channels. | 177 // Tests simple feature availability across channels. |
178 TEST_F(ChromeChannelFeatureFilterTest, SimpleFeatureAvailability) { | 178 TEST_F(ChromeChannelFeatureFilterTest, SimpleFeatureAvailability) { |
179 scoped_ptr<base::DictionaryValue> rule( | 179 scoped_ptr<base::DictionaryValue> rule( |
180 DictionaryBuilder() | 180 DictionaryBuilder() |
181 .Set("feature1", | 181 .Set("feature1", |
182 std::move(ListBuilder() | 182 ListBuilder() |
183 .Append(std::move( | 183 .Append(DictionaryBuilder() |
184 DictionaryBuilder() | 184 .Set("channel", "beta") |
185 .Set("channel", "beta") | 185 .Set("extension_types", |
186 .Set("extension_types", | 186 ListBuilder().Append("extension").Build()) |
187 std::move(ListBuilder().Append( | 187 .Build()) |
188 "extension"))))) | 188 .Append(DictionaryBuilder() |
189 .Append(std::move( | 189 .Set("channel", "beta") |
190 DictionaryBuilder() | 190 .Set("extension_types", |
191 .Set("channel", "beta") | 191 ListBuilder() |
192 .Set("extension_types", | 192 .Append("legacy_packaged_app") |
193 std::move(ListBuilder().Append( | 193 .Build()) |
194 "legacy_packaged_app"))))))) | 194 .Build()) |
| 195 .Build()) |
195 .Build()); | 196 .Build()); |
196 | 197 |
197 scoped_ptr<BaseFeatureProvider> provider( | 198 scoped_ptr<BaseFeatureProvider> provider( |
198 new BaseFeatureProvider(*rule, CreateFeature<SimpleFeature>)); | 199 new BaseFeatureProvider(*rule, CreateFeature<SimpleFeature>)); |
199 | 200 |
200 Feature* feature = provider->GetFeature("feature1"); | 201 Feature* feature = provider->GetFeature("feature1"); |
201 EXPECT_TRUE(feature); | 202 EXPECT_TRUE(feature); |
202 | 203 |
203 // Make sure both rules are applied correctly. | 204 // Make sure both rules are applied correctly. |
204 { | 205 { |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
236 // Tests complex feature availability across channels. | 237 // Tests complex feature availability across channels. |
237 TEST_F(ChromeChannelFeatureFilterTest, ComplexFeatureAvailability) { | 238 TEST_F(ChromeChannelFeatureFilterTest, ComplexFeatureAvailability) { |
238 scoped_ptr<ComplexFeature::FeatureList> features( | 239 scoped_ptr<ComplexFeature::FeatureList> features( |
239 new ComplexFeature::FeatureList()); | 240 new ComplexFeature::FeatureList()); |
240 | 241 |
241 // Rule: "extension", channel trunk. | 242 // Rule: "extension", channel trunk. |
242 scoped_ptr<SimpleFeature> simple_feature(CreateFeature<SimpleFeature>()); | 243 scoped_ptr<SimpleFeature> simple_feature(CreateFeature<SimpleFeature>()); |
243 scoped_ptr<base::DictionaryValue> rule( | 244 scoped_ptr<base::DictionaryValue> rule( |
244 DictionaryBuilder() | 245 DictionaryBuilder() |
245 .Set("channel", "trunk") | 246 .Set("channel", "trunk") |
246 .Set("extension_types", std::move(ListBuilder().Append("extension"))) | 247 .Set("extension_types", ListBuilder().Append("extension").Build()) |
247 .Build()); | 248 .Build()); |
248 simple_feature->Parse(rule.get()); | 249 simple_feature->Parse(rule.get()); |
249 features->push_back(std::move(simple_feature)); | 250 features->push_back(std::move(simple_feature)); |
250 | 251 |
251 // Rule: "legacy_packaged_app", channel stable. | 252 // Rule: "legacy_packaged_app", channel stable. |
252 simple_feature.reset(CreateFeature<SimpleFeature>()); | 253 simple_feature.reset(CreateFeature<SimpleFeature>()); |
253 rule = DictionaryBuilder() | 254 rule = DictionaryBuilder() |
254 .Set("channel", "stable") | 255 .Set("channel", "stable") |
255 .Set("extension_types", | 256 .Set("extension_types", |
256 std::move(ListBuilder().Append("legacy_packaged_app"))) | 257 ListBuilder().Append("legacy_packaged_app").Build()) |
257 .Build(); | 258 .Build(); |
258 simple_feature->Parse(rule.get()); | 259 simple_feature->Parse(rule.get()); |
259 features->push_back(std::move(simple_feature)); | 260 features->push_back(std::move(simple_feature)); |
260 | 261 |
261 scoped_ptr<ComplexFeature> feature(new ComplexFeature(std::move(features))); | 262 scoped_ptr<ComplexFeature> feature(new ComplexFeature(std::move(features))); |
262 | 263 |
263 // Test match 1st rule. | 264 // Test match 1st rule. |
264 { | 265 { |
265 ScopedCurrentChannel current_channel(version_info::Channel::UNKNOWN); | 266 ScopedCurrentChannel current_channel(version_info::Channel::UNKNOWN); |
266 EXPECT_EQ( | 267 EXPECT_EQ( |
(...skipping 24 matching lines...) Expand all Loading... |
291 Feature::IS_AVAILABLE, | 292 Feature::IS_AVAILABLE, |
292 feature->IsAvailableToManifest("1", | 293 feature->IsAvailableToManifest("1", |
293 Manifest::TYPE_EXTENSION, | 294 Manifest::TYPE_EXTENSION, |
294 Manifest::INVALID_LOCATION, | 295 Manifest::INVALID_LOCATION, |
295 Feature::UNSPECIFIED_PLATFORM, | 296 Feature::UNSPECIFIED_PLATFORM, |
296 Feature::GetCurrentPlatform()).result()); | 297 Feature::GetCurrentPlatform()).result()); |
297 } | 298 } |
298 } | 299 } |
299 | 300 |
300 } // namespace extensions | 301 } // namespace extensions |
OLD | NEW |