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

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

Issue 12207167: Cleanup: Remove deprecated base::Value methods from chrome/common. Use base::Value too. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years, 10 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 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/base_feature_provider.h" 5 #include "chrome/common/extensions/features/base_feature_provider.h"
6 6
7 #include "chrome/common/extensions/value_builder.h" 7 #include "chrome/common/extensions/value_builder.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 9
10 using chrome::VersionInfo; 10 using chrome::VersionInfo;
(...skipping 13 matching lines...) Expand all
24 ASSERT_TRUE(feature); 24 ASSERT_TRUE(feature);
25 EXPECT_EQ(5u, feature->extension_types()->size()); 25 EXPECT_EQ(5u, feature->extension_types()->size());
26 EXPECT_EQ(1u, feature->extension_types()->count(Manifest::TYPE_EXTENSION)); 26 EXPECT_EQ(1u, feature->extension_types()->count(Manifest::TYPE_EXTENSION));
27 EXPECT_EQ(1u, 27 EXPECT_EQ(1u,
28 feature->extension_types()->count(Manifest::TYPE_LEGACY_PACKAGED_APP)); 28 feature->extension_types()->count(Manifest::TYPE_LEGACY_PACKAGED_APP));
29 EXPECT_EQ(1u, 29 EXPECT_EQ(1u,
30 feature->extension_types()->count(Manifest::TYPE_PLATFORM_APP)); 30 feature->extension_types()->count(Manifest::TYPE_PLATFORM_APP));
31 EXPECT_EQ(1u, feature->extension_types()->count(Manifest::TYPE_HOSTED_APP)); 31 EXPECT_EQ(1u, feature->extension_types()->count(Manifest::TYPE_HOSTED_APP));
32 EXPECT_EQ(1u, feature->extension_types()->count(Manifest::TYPE_THEME)); 32 EXPECT_EQ(1u, feature->extension_types()->count(Manifest::TYPE_THEME));
33 33
34 DictionaryValue manifest; 34 base::DictionaryValue manifest;
35 manifest.SetString("name", "test extension"); 35 manifest.SetString("name", "test extension");
36 manifest.SetString("version", "1"); 36 manifest.SetString("version", "1");
37 manifest.SetString("description", "hello there"); 37 manifest.SetString("description", "hello there");
38 38
39 std::string error; 39 std::string error;
40 scoped_refptr<const Extension> extension(Extension::Create( 40 scoped_refptr<const Extension> extension(Extension::Create(
41 base::FilePath(), Manifest::INTERNAL, manifest, Extension::NO_FLAGS, 41 base::FilePath(), Manifest::INTERNAL, manifest, Extension::NO_FLAGS,
42 &error)); 42 &error));
43 43
44 ASSERT_TRUE(extension.get()); 44 ASSERT_TRUE(extension.get());
(...skipping 19 matching lines...) Expand all
64 SimpleFeature* feature = 64 SimpleFeature* feature =
65 static_cast<SimpleFeature*>(provider->GetFeature("contextMenus")); 65 static_cast<SimpleFeature*>(provider->GetFeature("contextMenus"));
66 ASSERT_TRUE(feature); 66 ASSERT_TRUE(feature);
67 EXPECT_EQ(3u, feature->extension_types()->size()); 67 EXPECT_EQ(3u, feature->extension_types()->size());
68 EXPECT_EQ(1u, feature->extension_types()->count(Manifest::TYPE_EXTENSION)); 68 EXPECT_EQ(1u, feature->extension_types()->count(Manifest::TYPE_EXTENSION));
69 EXPECT_EQ(1u, 69 EXPECT_EQ(1u,
70 feature->extension_types()->count(Manifest::TYPE_LEGACY_PACKAGED_APP)); 70 feature->extension_types()->count(Manifest::TYPE_LEGACY_PACKAGED_APP));
71 EXPECT_EQ(1u, 71 EXPECT_EQ(1u,
72 feature->extension_types()->count(Manifest::TYPE_PLATFORM_APP)); 72 feature->extension_types()->count(Manifest::TYPE_PLATFORM_APP));
73 73
74 DictionaryValue manifest; 74 base::DictionaryValue manifest;
75 manifest.SetString("name", "test extension"); 75 manifest.SetString("name", "test extension");
76 manifest.SetString("version", "1"); 76 manifest.SetString("version", "1");
77 ListValue* permissions = new ListValue(); 77 base::ListValue* permissions = new base::ListValue();
78 manifest.Set("permissions", permissions); 78 manifest.Set("permissions", permissions);
79 permissions->Append(Value::CreateStringValue("contextMenus")); 79 permissions->Append(new base::StringValue("contextMenus"));
80 80
81 std::string error; 81 std::string error;
82 scoped_refptr<const Extension> extension(Extension::Create( 82 scoped_refptr<const Extension> extension(Extension::Create(
83 base::FilePath(), Manifest::INTERNAL, manifest, Extension::NO_FLAGS, 83 base::FilePath(), Manifest::INTERNAL, manifest, Extension::NO_FLAGS,
84 &error)); 84 &error));
85 85
86 ASSERT_TRUE(extension.get()); 86 ASSERT_TRUE(extension.get());
87 EXPECT_EQ(Feature::IS_AVAILABLE, feature->IsAvailableToContext( 87 EXPECT_EQ(Feature::IS_AVAILABLE, feature->IsAvailableToContext(
88 extension.get(), Feature::UNSPECIFIED_CONTEXT).result()); 88 extension.get(), Feature::UNSPECIFIED_CONTEXT).result());
89 89
90 feature = 90 feature =
91 static_cast<SimpleFeature*>(provider->GetFeature("chromePrivate")); 91 static_cast<SimpleFeature*>(provider->GetFeature("chromePrivate"));
92 ASSERT_TRUE(feature); 92 ASSERT_TRUE(feature);
93 EXPECT_EQ(Feature::NOT_FOUND_IN_WHITELIST, feature->IsAvailableToContext( 93 EXPECT_EQ(Feature::NOT_FOUND_IN_WHITELIST, feature->IsAvailableToContext(
94 extension.get(), Feature::UNSPECIFIED_CONTEXT).result()); 94 extension.get(), Feature::UNSPECIFIED_CONTEXT).result());
95 95
96 feature = 96 feature =
97 static_cast<SimpleFeature*>(provider->GetFeature("clipboardWrite")); 97 static_cast<SimpleFeature*>(provider->GetFeature("clipboardWrite"));
98 ASSERT_TRUE(feature); 98 ASSERT_TRUE(feature);
99 EXPECT_EQ(Feature::NOT_PRESENT, feature->IsAvailableToContext( 99 EXPECT_EQ(Feature::NOT_PRESENT, feature->IsAvailableToContext(
100 extension.get(), Feature::UNSPECIFIED_CONTEXT).result()); 100 extension.get(), Feature::UNSPECIFIED_CONTEXT).result());
101 } 101 }
102 102
103 TEST(BaseFeatureProvider, Validation) { 103 TEST(BaseFeatureProvider, Validation) {
104 scoped_ptr<DictionaryValue> value(new DictionaryValue()); 104 scoped_ptr<base::DictionaryValue> value(new base::DictionaryValue());
105 105
106 DictionaryValue* feature1 = new DictionaryValue(); 106 base::DictionaryValue* feature1 = new base::DictionaryValue();
107 value->Set("feature1", feature1); 107 value->Set("feature1", feature1);
108 108
109 DictionaryValue* feature2 = new DictionaryValue(); 109 base::DictionaryValue* feature2 = new base::DictionaryValue();
110 ListValue* extension_types = new ListValue(); 110 base::ListValue* extension_types = new base::ListValue();
111 extension_types->Append(Value::CreateStringValue("extension")); 111 extension_types->Append(new base::StringValue("extension"));
112 feature2->Set("extension_types", extension_types); 112 feature2->Set("extension_types", extension_types);
113 ListValue* contexts = new ListValue(); 113 base::ListValue* contexts = new base::ListValue();
114 contexts->Append(Value::CreateStringValue("blessed_extension")); 114 contexts->Append(new base::StringValue("blessed_extension"));
115 feature2->Set("contexts", contexts); 115 feature2->Set("contexts", contexts);
116 value->Set("feature2", feature2); 116 value->Set("feature2", feature2);
117 117
118 scoped_ptr<BaseFeatureProvider> provider( 118 scoped_ptr<BaseFeatureProvider> provider(
119 new BaseFeatureProvider(*value, NULL)); 119 new BaseFeatureProvider(*value, NULL));
120 120
121 // feature1 won't validate because it lacks an extension type. 121 // feature1 won't validate because it lacks an extension type.
122 EXPECT_FALSE(provider->GetFeature("feature1")); 122 EXPECT_FALSE(provider->GetFeature("feature1"));
123 123
124 // If we add one, it works. 124 // If we add one, it works.
125 feature1->Set("extension_types", extension_types->DeepCopy()); 125 feature1->Set("extension_types", extension_types->DeepCopy());
126 provider.reset(new BaseFeatureProvider(*value, NULL)); 126 provider.reset(new BaseFeatureProvider(*value, NULL));
127 EXPECT_TRUE(provider->GetFeature("feature1")); 127 EXPECT_TRUE(provider->GetFeature("feature1"));
128 128
129 // feature2 won't validate because of the presence of "contexts". 129 // feature2 won't validate because of the presence of "contexts".
130 EXPECT_FALSE(provider->GetFeature("feature2")); 130 EXPECT_FALSE(provider->GetFeature("feature2"));
131 131
132 // If we remove it, it works. 132 // If we remove it, it works.
133 feature2->Remove("contexts", NULL); 133 feature2->Remove("contexts", NULL);
134 provider.reset(new BaseFeatureProvider(*value, NULL)); 134 provider.reset(new BaseFeatureProvider(*value, NULL));
135 EXPECT_TRUE(provider->GetFeature("feature2")); 135 EXPECT_TRUE(provider->GetFeature("feature2"));
136 } 136 }
137 137
138 TEST(BaseFeatureProvider, ComplexFeatures) { 138 TEST(BaseFeatureProvider, ComplexFeatures) {
139 scoped_ptr<DictionaryValue> rule( 139 scoped_ptr<base::DictionaryValue> rule(
140 DictionaryBuilder() 140 DictionaryBuilder()
141 .Set("feature1", 141 .Set("feature1",
142 ListBuilder().Append(DictionaryBuilder() 142 ListBuilder().Append(DictionaryBuilder()
143 .Set("channel", "beta") 143 .Set("channel", "beta")
144 .Set("extension_types", 144 .Set("extension_types",
145 ListBuilder().Append("extension"))) 145 ListBuilder().Append("extension")))
146 .Append(DictionaryBuilder() 146 .Append(DictionaryBuilder()
147 .Set("channel", "beta") 147 .Set("channel", "beta")
148 .Set("extension_types", 148 .Set("extension_types",
149 ListBuilder().Append("packaged_app")))) 149 ListBuilder().Append("packaged_app"))))
150 .Build()); 150 .Build());
151 151
152 scoped_ptr<BaseFeatureProvider> provider( 152 scoped_ptr<BaseFeatureProvider> provider(
153 new BaseFeatureProvider(*rule, NULL)); 153 new BaseFeatureProvider(*rule, NULL));
154 154
155 Feature *feature = provider->GetFeature("feature1"); 155 Feature* feature = provider->GetFeature("feature1");
156 EXPECT_TRUE(feature); 156 EXPECT_TRUE(feature);
157 157
158 // Make sure both rules are applied correctly. 158 // Make sure both rules are applied correctly.
159 { 159 {
160 Feature::ScopedCurrentChannel current_channel(VersionInfo::CHANNEL_BETA); 160 Feature::ScopedCurrentChannel current_channel(VersionInfo::CHANNEL_BETA);
161 EXPECT_EQ(Feature::IS_AVAILABLE, feature->IsAvailableToManifest( 161 EXPECT_EQ(Feature::IS_AVAILABLE, feature->IsAvailableToManifest(
162 "1", 162 "1",
163 Manifest::TYPE_EXTENSION, 163 Manifest::TYPE_EXTENSION,
164 Feature::UNSPECIFIED_LOCATION, 164 Feature::UNSPECIFIED_LOCATION,
165 Feature::UNSPECIFIED_PLATFORM).result()); 165 Feature::UNSPECIFIED_PLATFORM).result());
(...skipping 10 matching lines...) Expand all
176 Manifest::TYPE_EXTENSION, 176 Manifest::TYPE_EXTENSION,
177 Feature::UNSPECIFIED_LOCATION, 177 Feature::UNSPECIFIED_LOCATION,
178 Feature::UNSPECIFIED_PLATFORM).result()); 178 Feature::UNSPECIFIED_PLATFORM).result());
179 EXPECT_NE(Feature::IS_AVAILABLE, feature->IsAvailableToManifest( 179 EXPECT_NE(Feature::IS_AVAILABLE, feature->IsAvailableToManifest(
180 "2", 180 "2",
181 Manifest::TYPE_LEGACY_PACKAGED_APP, 181 Manifest::TYPE_LEGACY_PACKAGED_APP,
182 Feature::UNSPECIFIED_LOCATION, 182 Feature::UNSPECIFIED_LOCATION,
183 Feature::UNSPECIFIED_PLATFORM).result()); 183 Feature::UNSPECIFIED_PLATFORM).result());
184 } 184 }
185 } 185 }
OLDNEW
« no previous file with comments | « chrome/common/extensions/extension_set_unittest.cc ('k') | chrome/common/extensions/features/simple_feature_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698