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

Side by Side Diff: extensions/common/manifest_handlers/oauth2_manifest_unittest.cc

Issue 1908953003: Convert //extensions/{common,shell} from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase? Created 4 years, 8 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
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 <utility> 5 #include <utility>
6 6
7 #include "base/test/values_test_util.h" 7 #include "base/test/values_test_util.h"
8 #include "extensions/common/manifest_constants.h" 8 #include "extensions/common/manifest_constants.h"
9 #include "extensions/common/manifest_handlers/oauth2_manifest_handler.h" 9 #include "extensions/common/manifest_handlers/oauth2_manifest_handler.h"
10 #include "extensions/common/manifest_test.h" 10 #include "extensions/common/manifest_test.h"
(...skipping 24 matching lines...) Expand all
35 AUTO_APPROVE_TRUE, 35 AUTO_APPROVE_TRUE,
36 AUTO_APPROVE_INVALID 36 AUTO_APPROVE_INVALID
37 }; 37 };
38 38
39 enum ClientIdValue { 39 enum ClientIdValue {
40 CLIENT_ID_DEFAULT, 40 CLIENT_ID_DEFAULT,
41 CLIENT_ID_NOT_SET, 41 CLIENT_ID_NOT_SET,
42 CLIENT_ID_EMPTY 42 CLIENT_ID_EMPTY
43 }; 43 };
44 44
45 scoped_ptr<base::DictionaryValue> CreateManifest( 45 std::unique_ptr<base::DictionaryValue> CreateManifest(
46 AutoApproveValue auto_approve, 46 AutoApproveValue auto_approve,
47 bool extension_id_whitelisted, 47 bool extension_id_whitelisted,
48 ClientIdValue client_id) { 48 ClientIdValue client_id) {
49 scoped_ptr<base::DictionaryValue> manifest = base::DictionaryValue::From( 49 std::unique_ptr<base::DictionaryValue> manifest =
50 base::test::ParseJson("{ \n" 50 base::DictionaryValue::From(
51 " \"name\": \"test\", \n" 51 base::test::ParseJson("{ \n"
52 " \"version\": \"0.1\", \n" 52 " \"name\": \"test\", \n"
53 " \"manifest_version\": 2, \n" 53 " \"version\": \"0.1\", \n"
54 " \"oauth2\": { \n" 54 " \"manifest_version\": 2, \n"
55 " \"scopes\": [ \"scope1\" ], \n" 55 " \"oauth2\": { \n"
56 " }, \n" 56 " \"scopes\": [ \"scope1\" ], \n"
57 "} \n")); 57 " }, \n"
58 "} \n"));
58 EXPECT_TRUE(manifest); 59 EXPECT_TRUE(manifest);
59 switch (auto_approve) { 60 switch (auto_approve) {
60 case AUTO_APPROVE_NOT_SET: 61 case AUTO_APPROVE_NOT_SET:
61 break; 62 break;
62 case AUTO_APPROVE_FALSE: 63 case AUTO_APPROVE_FALSE:
63 manifest->SetBoolean(keys::kOAuth2AutoApprove, false); 64 manifest->SetBoolean(keys::kOAuth2AutoApprove, false);
64 break; 65 break;
65 case AUTO_APPROVE_TRUE: 66 case AUTO_APPROVE_TRUE:
66 manifest->SetBoolean(keys::kOAuth2AutoApprove, true); 67 manifest->SetBoolean(keys::kOAuth2AutoApprove, true);
67 break; 68 break;
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 EXPECT_EQ("'oauth2' is only allowed for extensions, legacy packaged apps, " 150 EXPECT_EQ("'oauth2' is only allowed for extensions, legacy packaged apps, "
150 "and packaged apps, but this is a hosted app.", 151 "and packaged apps, but this is a hosted app.",
151 warning.message); 152 warning.message);
152 EXPECT_EQ("", OAuth2Info::GetOAuth2Info(extension.get()).client_id); 153 EXPECT_EQ("", OAuth2Info::GetOAuth2Info(extension.get()).client_id);
153 EXPECT_TRUE(OAuth2Info::GetOAuth2Info(extension.get()).scopes.empty()); 154 EXPECT_TRUE(OAuth2Info::GetOAuth2Info(extension.get()).scopes.empty());
154 EXPECT_FALSE(OAuth2Info::GetOAuth2Info(extension.get()).auto_approve); 155 EXPECT_FALSE(OAuth2Info::GetOAuth2Info(extension.get()).auto_approve);
155 } 156 }
156 } 157 }
157 158
158 TEST_F(OAuth2ManifestTest, AutoApproveNotSetExtensionNotOnWhitelist) { 159 TEST_F(OAuth2ManifestTest, AutoApproveNotSetExtensionNotOnWhitelist) {
159 scoped_ptr<base::DictionaryValue> ext_manifest = 160 std::unique_ptr<base::DictionaryValue> ext_manifest =
160 CreateManifest(AUTO_APPROVE_NOT_SET, false, CLIENT_ID_DEFAULT); 161 CreateManifest(AUTO_APPROVE_NOT_SET, false, CLIENT_ID_DEFAULT);
161 ManifestData manifest(std::move(ext_manifest), "test"); 162 ManifestData manifest(std::move(ext_manifest), "test");
162 scoped_refptr<extensions::Extension> extension = 163 scoped_refptr<extensions::Extension> extension =
163 LoadAndExpectSuccess(manifest); 164 LoadAndExpectSuccess(manifest);
164 EXPECT_TRUE(extension->install_warnings().empty()); 165 EXPECT_TRUE(extension->install_warnings().empty());
165 EXPECT_FALSE(OAuth2Info::GetOAuth2Info(extension.get()).auto_approve); 166 EXPECT_FALSE(OAuth2Info::GetOAuth2Info(extension.get()).auto_approve);
166 } 167 }
167 168
168 TEST_F(OAuth2ManifestTest, AutoApproveFalseExtensionNotOnWhitelist) { 169 TEST_F(OAuth2ManifestTest, AutoApproveFalseExtensionNotOnWhitelist) {
169 scoped_ptr<base::DictionaryValue> ext_manifest = 170 std::unique_ptr<base::DictionaryValue> ext_manifest =
170 CreateManifest(AUTO_APPROVE_FALSE, false, CLIENT_ID_DEFAULT); 171 CreateManifest(AUTO_APPROVE_FALSE, false, CLIENT_ID_DEFAULT);
171 ManifestData manifest(std::move(ext_manifest), "test"); 172 ManifestData manifest(std::move(ext_manifest), "test");
172 scoped_refptr<extensions::Extension> extension = 173 scoped_refptr<extensions::Extension> extension =
173 LoadAndExpectSuccess(manifest); 174 LoadAndExpectSuccess(manifest);
174 EXPECT_EQ(1U, extension->install_warnings().size()); 175 EXPECT_EQ(1U, extension->install_warnings().size());
175 const extensions::InstallWarning& warning = 176 const extensions::InstallWarning& warning =
176 extension->install_warnings()[0]; 177 extension->install_warnings()[0];
177 EXPECT_EQ(kAutoApproveNotAllowedWarning, warning.message); 178 EXPECT_EQ(kAutoApproveNotAllowedWarning, warning.message);
178 EXPECT_FALSE(OAuth2Info::GetOAuth2Info(extension.get()).auto_approve); 179 EXPECT_FALSE(OAuth2Info::GetOAuth2Info(extension.get()).auto_approve);
179 } 180 }
180 181
181 TEST_F(OAuth2ManifestTest, AutoApproveTrueExtensionNotOnWhitelist) { 182 TEST_F(OAuth2ManifestTest, AutoApproveTrueExtensionNotOnWhitelist) {
182 scoped_ptr<base::DictionaryValue> ext_manifest = 183 std::unique_ptr<base::DictionaryValue> ext_manifest =
183 CreateManifest(AUTO_APPROVE_TRUE, false, CLIENT_ID_DEFAULT); 184 CreateManifest(AUTO_APPROVE_TRUE, false, CLIENT_ID_DEFAULT);
184 ManifestData manifest(std::move(ext_manifest), "test"); 185 ManifestData manifest(std::move(ext_manifest), "test");
185 scoped_refptr<extensions::Extension> extension = 186 scoped_refptr<extensions::Extension> extension =
186 LoadAndExpectSuccess(manifest); 187 LoadAndExpectSuccess(manifest);
187 EXPECT_EQ(1U, extension->install_warnings().size()); 188 EXPECT_EQ(1U, extension->install_warnings().size());
188 const extensions::InstallWarning& warning = 189 const extensions::InstallWarning& warning =
189 extension->install_warnings()[0]; 190 extension->install_warnings()[0];
190 EXPECT_EQ(kAutoApproveNotAllowedWarning, warning.message); 191 EXPECT_EQ(kAutoApproveNotAllowedWarning, warning.message);
191 EXPECT_FALSE(OAuth2Info::GetOAuth2Info(extension.get()).auto_approve); 192 EXPECT_FALSE(OAuth2Info::GetOAuth2Info(extension.get()).auto_approve);
192 } 193 }
193 194
194 TEST_F(OAuth2ManifestTest, AutoApproveInvalidExtensionNotOnWhitelist) { 195 TEST_F(OAuth2ManifestTest, AutoApproveInvalidExtensionNotOnWhitelist) {
195 scoped_ptr<base::DictionaryValue> ext_manifest = 196 std::unique_ptr<base::DictionaryValue> ext_manifest =
196 CreateManifest(AUTO_APPROVE_INVALID, false, CLIENT_ID_DEFAULT); 197 CreateManifest(AUTO_APPROVE_INVALID, false, CLIENT_ID_DEFAULT);
197 ManifestData manifest(std::move(ext_manifest), "test"); 198 ManifestData manifest(std::move(ext_manifest), "test");
198 scoped_refptr<extensions::Extension> extension = 199 scoped_refptr<extensions::Extension> extension =
199 LoadAndExpectSuccess(manifest); 200 LoadAndExpectSuccess(manifest);
200 EXPECT_EQ(1U, extension->install_warnings().size()); 201 EXPECT_EQ(1U, extension->install_warnings().size());
201 const extensions::InstallWarning& warning = 202 const extensions::InstallWarning& warning =
202 extension->install_warnings()[0]; 203 extension->install_warnings()[0];
203 EXPECT_EQ(kAutoApproveNotAllowedWarning, warning.message); 204 EXPECT_EQ(kAutoApproveNotAllowedWarning, warning.message);
204 EXPECT_FALSE(OAuth2Info::GetOAuth2Info(extension.get()).auto_approve); 205 EXPECT_FALSE(OAuth2Info::GetOAuth2Info(extension.get()).auto_approve);
205 } 206 }
206 207
207 TEST_F(OAuth2ManifestTest, AutoApproveNotSetExtensionOnWhitelist) { 208 TEST_F(OAuth2ManifestTest, AutoApproveNotSetExtensionOnWhitelist) {
208 scoped_ptr<base::DictionaryValue> ext_manifest = 209 std::unique_ptr<base::DictionaryValue> ext_manifest =
209 CreateManifest(AUTO_APPROVE_NOT_SET, true, CLIENT_ID_DEFAULT); 210 CreateManifest(AUTO_APPROVE_NOT_SET, true, CLIENT_ID_DEFAULT);
210 ManifestData manifest(std::move(ext_manifest), "test"); 211 ManifestData manifest(std::move(ext_manifest), "test");
211 scoped_refptr<extensions::Extension> extension = 212 scoped_refptr<extensions::Extension> extension =
212 LoadAndExpectSuccess(manifest); 213 LoadAndExpectSuccess(manifest);
213 EXPECT_TRUE(extension->install_warnings().empty()); 214 EXPECT_TRUE(extension->install_warnings().empty());
214 EXPECT_FALSE(OAuth2Info::GetOAuth2Info(extension.get()).auto_approve); 215 EXPECT_FALSE(OAuth2Info::GetOAuth2Info(extension.get()).auto_approve);
215 } 216 }
216 217
217 TEST_F(OAuth2ManifestTest, AutoApproveFalseExtensionOnWhitelist) { 218 TEST_F(OAuth2ManifestTest, AutoApproveFalseExtensionOnWhitelist) {
218 scoped_ptr<base::DictionaryValue> ext_manifest = 219 std::unique_ptr<base::DictionaryValue> ext_manifest =
219 CreateManifest(AUTO_APPROVE_FALSE, true, CLIENT_ID_DEFAULT); 220 CreateManifest(AUTO_APPROVE_FALSE, true, CLIENT_ID_DEFAULT);
220 ManifestData manifest(std::move(ext_manifest), "test"); 221 ManifestData manifest(std::move(ext_manifest), "test");
221 scoped_refptr<extensions::Extension> extension = 222 scoped_refptr<extensions::Extension> extension =
222 LoadAndExpectSuccess(manifest); 223 LoadAndExpectSuccess(manifest);
223 EXPECT_TRUE(extension->install_warnings().empty()); 224 EXPECT_TRUE(extension->install_warnings().empty());
224 EXPECT_FALSE(OAuth2Info::GetOAuth2Info(extension.get()).auto_approve); 225 EXPECT_FALSE(OAuth2Info::GetOAuth2Info(extension.get()).auto_approve);
225 } 226 }
226 227
227 TEST_F(OAuth2ManifestTest, AutoApproveTrueExtensionOnWhitelist) { 228 TEST_F(OAuth2ManifestTest, AutoApproveTrueExtensionOnWhitelist) {
228 scoped_ptr<base::DictionaryValue> ext_manifest = 229 std::unique_ptr<base::DictionaryValue> ext_manifest =
229 CreateManifest(AUTO_APPROVE_TRUE, true, CLIENT_ID_DEFAULT); 230 CreateManifest(AUTO_APPROVE_TRUE, true, CLIENT_ID_DEFAULT);
230 ManifestData manifest(std::move(ext_manifest), "test"); 231 ManifestData manifest(std::move(ext_manifest), "test");
231 scoped_refptr<extensions::Extension> extension = 232 scoped_refptr<extensions::Extension> extension =
232 LoadAndExpectSuccess(manifest); 233 LoadAndExpectSuccess(manifest);
233 EXPECT_TRUE(extension->install_warnings().empty()); 234 EXPECT_TRUE(extension->install_warnings().empty());
234 EXPECT_TRUE(OAuth2Info::GetOAuth2Info(extension.get()).auto_approve); 235 EXPECT_TRUE(OAuth2Info::GetOAuth2Info(extension.get()).auto_approve);
235 } 236 }
236 237
237 TEST_F(OAuth2ManifestTest, AutoApproveInvalidExtensionOnWhitelist) { 238 TEST_F(OAuth2ManifestTest, AutoApproveInvalidExtensionOnWhitelist) {
238 scoped_ptr<base::DictionaryValue> ext_manifest = 239 std::unique_ptr<base::DictionaryValue> ext_manifest =
239 CreateManifest(AUTO_APPROVE_INVALID, true, CLIENT_ID_DEFAULT); 240 CreateManifest(AUTO_APPROVE_INVALID, true, CLIENT_ID_DEFAULT);
240 ManifestData manifest(std::move(ext_manifest), "test"); 241 ManifestData manifest(std::move(ext_manifest), "test");
241 std::string error; 242 std::string error;
242 scoped_refptr<extensions::Extension> extension = 243 scoped_refptr<extensions::Extension> extension =
243 LoadExtension(manifest, &error); 244 LoadExtension(manifest, &error);
244 EXPECT_EQ( 245 EXPECT_EQ(
245 "Invalid value for 'oauth2.auto_approve'. Value must be true or false.", 246 "Invalid value for 'oauth2.auto_approve'. Value must be true or false.",
246 error); 247 error);
247 } 248 }
248 249
249 TEST_F(OAuth2ManifestTest, InvalidClientId) { 250 TEST_F(OAuth2ManifestTest, InvalidClientId) {
250 { 251 {
251 scoped_ptr<base::DictionaryValue> ext_manifest = 252 std::unique_ptr<base::DictionaryValue> ext_manifest =
252 CreateManifest(AUTO_APPROVE_NOT_SET, false, CLIENT_ID_NOT_SET); 253 CreateManifest(AUTO_APPROVE_NOT_SET, false, CLIENT_ID_NOT_SET);
253 ManifestData manifest(std::move(ext_manifest), "test"); 254 ManifestData manifest(std::move(ext_manifest), "test");
254 std::string error; 255 std::string error;
255 LoadAndExpectError(manifest, errors::kInvalidOAuth2ClientId); 256 LoadAndExpectError(manifest, errors::kInvalidOAuth2ClientId);
256 } 257 }
257 258
258 { 259 {
259 scoped_ptr<base::DictionaryValue> ext_manifest = 260 std::unique_ptr<base::DictionaryValue> ext_manifest =
260 CreateManifest(AUTO_APPROVE_NOT_SET, false, CLIENT_ID_EMPTY); 261 CreateManifest(AUTO_APPROVE_NOT_SET, false, CLIENT_ID_EMPTY);
261 ManifestData manifest(std::move(ext_manifest), "test"); 262 ManifestData manifest(std::move(ext_manifest), "test");
262 std::string error; 263 std::string error;
263 LoadAndExpectError(manifest, errors::kInvalidOAuth2ClientId); 264 LoadAndExpectError(manifest, errors::kInvalidOAuth2ClientId);
264 } 265 }
265 } 266 }
266 267
267 TEST_F(OAuth2ManifestTest, ComponentInvalidClientId) { 268 TEST_F(OAuth2ManifestTest, ComponentInvalidClientId) {
268 // Component Apps without auto_approve must include a client ID. 269 // Component Apps without auto_approve must include a client ID.
269 { 270 {
270 scoped_ptr<base::DictionaryValue> ext_manifest = 271 std::unique_ptr<base::DictionaryValue> ext_manifest =
271 CreateManifest(AUTO_APPROVE_NOT_SET, false, CLIENT_ID_NOT_SET); 272 CreateManifest(AUTO_APPROVE_NOT_SET, false, CLIENT_ID_NOT_SET);
272 ManifestData manifest(std::move(ext_manifest), "test"); 273 ManifestData manifest(std::move(ext_manifest), "test");
273 std::string error; 274 std::string error;
274 LoadAndExpectError(manifest, 275 LoadAndExpectError(manifest,
275 errors::kInvalidOAuth2ClientId, 276 errors::kInvalidOAuth2ClientId,
276 extensions::Manifest::COMPONENT); 277 extensions::Manifest::COMPONENT);
277 } 278 }
278 279
279 { 280 {
280 scoped_ptr<base::DictionaryValue> ext_manifest = 281 std::unique_ptr<base::DictionaryValue> ext_manifest =
281 CreateManifest(AUTO_APPROVE_NOT_SET, false, CLIENT_ID_EMPTY); 282 CreateManifest(AUTO_APPROVE_NOT_SET, false, CLIENT_ID_EMPTY);
282 ManifestData manifest(std::move(ext_manifest), "test"); 283 ManifestData manifest(std::move(ext_manifest), "test");
283 std::string error; 284 std::string error;
284 LoadAndExpectError(manifest, 285 LoadAndExpectError(manifest,
285 errors::kInvalidOAuth2ClientId, 286 errors::kInvalidOAuth2ClientId,
286 extensions::Manifest::COMPONENT); 287 extensions::Manifest::COMPONENT);
287 } 288 }
288 } 289 }
289 290
290 TEST_F(OAuth2ManifestTest, ComponentWithChromeClientId) { 291 TEST_F(OAuth2ManifestTest, ComponentWithChromeClientId) {
291 { 292 {
292 scoped_ptr<base::DictionaryValue> ext_manifest = 293 std::unique_ptr<base::DictionaryValue> ext_manifest =
293 CreateManifest(AUTO_APPROVE_TRUE, true, CLIENT_ID_NOT_SET); 294 CreateManifest(AUTO_APPROVE_TRUE, true, CLIENT_ID_NOT_SET);
294 ManifestData manifest(std::move(ext_manifest), "test"); 295 ManifestData manifest(std::move(ext_manifest), "test");
295 scoped_refptr<extensions::Extension> extension = 296 scoped_refptr<extensions::Extension> extension =
296 LoadAndExpectSuccess(manifest, extensions::Manifest::COMPONENT); 297 LoadAndExpectSuccess(manifest, extensions::Manifest::COMPONENT);
297 EXPECT_TRUE(OAuth2Info::GetOAuth2Info(extension.get()).client_id.empty()); 298 EXPECT_TRUE(OAuth2Info::GetOAuth2Info(extension.get()).client_id.empty());
298 } 299 }
299 300
300 { 301 {
301 scoped_ptr<base::DictionaryValue> ext_manifest = 302 std::unique_ptr<base::DictionaryValue> ext_manifest =
302 CreateManifest(AUTO_APPROVE_TRUE, true, CLIENT_ID_EMPTY); 303 CreateManifest(AUTO_APPROVE_TRUE, true, CLIENT_ID_EMPTY);
303 ManifestData manifest(std::move(ext_manifest), "test"); 304 ManifestData manifest(std::move(ext_manifest), "test");
304 scoped_refptr<extensions::Extension> extension = 305 scoped_refptr<extensions::Extension> extension =
305 LoadAndExpectSuccess(manifest, extensions::Manifest::COMPONENT); 306 LoadAndExpectSuccess(manifest, extensions::Manifest::COMPONENT);
306 EXPECT_TRUE(OAuth2Info::GetOAuth2Info(extension.get()).client_id.empty()); 307 EXPECT_TRUE(OAuth2Info::GetOAuth2Info(extension.get()).client_id.empty());
307 } 308 }
308 } 309 }
309 310
310 TEST_F(OAuth2ManifestTest, ComponentWithStandardClientId) { 311 TEST_F(OAuth2ManifestTest, ComponentWithStandardClientId) {
311 scoped_ptr<base::DictionaryValue> ext_manifest = 312 std::unique_ptr<base::DictionaryValue> ext_manifest =
312 CreateManifest(AUTO_APPROVE_TRUE, true, CLIENT_ID_DEFAULT); 313 CreateManifest(AUTO_APPROVE_TRUE, true, CLIENT_ID_DEFAULT);
313 ManifestData manifest(std::move(ext_manifest), "test"); 314 ManifestData manifest(std::move(ext_manifest), "test");
314 scoped_refptr<extensions::Extension> extension = 315 scoped_refptr<extensions::Extension> extension =
315 LoadAndExpectSuccess(manifest, extensions::Manifest::COMPONENT); 316 LoadAndExpectSuccess(manifest, extensions::Manifest::COMPONENT);
316 EXPECT_EQ("client1", OAuth2Info::GetOAuth2Info(extension.get()).client_id); 317 EXPECT_EQ("client1", OAuth2Info::GetOAuth2Info(extension.get()).client_id);
317 } 318 }
318 319
319 } // namespace extensions 320 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698