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

Side by Side Diff: chrome/common/extensions/features/complex_feature_provider_unittest.cc

Issue 11316164: Implement ComplexFeature to support permission features with multiple rules. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: new Created 8 years 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/common/extensions/features/complex_feature_provider.h"
6
7 #include "testing/gtest/include/gtest/gtest.h"
8
9 using chrome::VersionInfo;
10 using extensions::Extension;
11 using extensions::Feature;
12 using extensions::ComplexFeatureProvider;
13
14 TEST(ComplexFeatureProvider, ArrayRule) {
15 scoped_ptr<DictionaryValue> value(new DictionaryValue());
16 ListValue* feature1 = new ListValue();
not at google - send to devlin 2012/12/12 17:42:41 note: handy classes for these kind of tests is the
justinlin 2012/12/14 12:26:26 Done. Awesome, thanks!
17
18 DictionaryValue* rule1 = new DictionaryValue();
19 ListValue* extension_types = new ListValue();
20 extension_types->Append(Value::CreateStringValue("extension"));
21 rule1->Set("extension_types", extension_types);
22 rule1->SetString("channel", "beta");
23 feature1->Append(rule1);
24
25 DictionaryValue* rule2 = new DictionaryValue();
26 extension_types = new ListValue();
27 extension_types->Append(Value::CreateStringValue("packaged_app"));
28 rule2->Set("extension_types", extension_types);
29 rule2->SetString("channel", "beta");
30 feature1->Append(rule2);
31
32 value->Set("feature1", feature1);
33
34 scoped_ptr<ComplexFeatureProvider> provider(
35 new ComplexFeatureProvider(value.get()));
36
37 Feature *feature = provider->GetFeature("feature1");
38 EXPECT_TRUE(feature);
39
40 // Make sure both rules are applied correctly.
41 {
42 Feature::ScopedCurrentChannel current_channel(VersionInfo::CHANNEL_BETA);
43 EXPECT_EQ(Feature::IS_AVAILABLE, feature->IsAvailableToManifest(
44 "1",
45 Extension::TYPE_EXTENSION,
46 Feature::UNSPECIFIED_LOCATION,
47 Feature::UNSPECIFIED_PLATFORM).result());
48 EXPECT_EQ(Feature::IS_AVAILABLE, feature->IsAvailableToManifest(
49 "2",
50 Extension::TYPE_LEGACY_PACKAGED_APP,
51 Feature::UNSPECIFIED_LOCATION,
52 Feature::UNSPECIFIED_PLATFORM).result());
53 }
54 {
55 Feature::ScopedCurrentChannel current_channel(VersionInfo::CHANNEL_STABLE);
56 EXPECT_NE(Feature::IS_AVAILABLE, feature->IsAvailableToManifest(
57 "1",
58 Extension::TYPE_EXTENSION,
59 Feature::UNSPECIFIED_LOCATION,
60 Feature::UNSPECIFIED_PLATFORM).result());
61 EXPECT_NE(Feature::IS_AVAILABLE, feature->IsAvailableToManifest(
62 "2",
63 Extension::TYPE_LEGACY_PACKAGED_APP,
64 Feature::UNSPECIFIED_LOCATION,
65 Feature::UNSPECIFIED_PLATFORM).result());
66 }
67 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698