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

Side by Side Diff: chrome/common/extensions/permissions/permission_set_unittest.cc

Issue 221353003: Make unknown extension subpermissions warnings instead of errors. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 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 | 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 "base/command_line.h" 5 #include "base/command_line.h"
6 #include "base/json/json_file_value_serializer.h" 6 #include "base/json/json_file_value_serializer.h"
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/path_service.h" 8 #include "base/path_service.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "chrome/common/chrome_paths.h" 10 #include "chrome/common/chrome_paths.h"
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 248
249 const APIPermissionInfo* permission_info = 249 const APIPermissionInfo* permission_info =
250 PermissionsInfo::GetInstance()->GetByID(APIPermission::kSocket); 250 PermissionsInfo::GetInstance()->GetByID(APIPermission::kSocket);
251 permission = permission_info->CreateAPIPermission(); 251 permission = permission_info->CreateAPIPermission();
252 { 252 {
253 scoped_ptr<base::ListValue> value(new base::ListValue()); 253 scoped_ptr<base::ListValue> value(new base::ListValue());
254 value->Append( 254 value->Append(
255 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); 255 base::Value::CreateStringValue("tcp-connect:*.example.com:80"));
256 value->Append(base::Value::CreateStringValue("udp-bind::8080")); 256 value->Append(base::Value::CreateStringValue("udp-bind::8080"));
257 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); 257 value->Append(base::Value::CreateStringValue("udp-send-to::8888"));
258 ASSERT_TRUE(permission->FromValue(value.get(), NULL)); 258 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL));
259 } 259 }
260 260
261 // Union with an empty set. 261 // Union with an empty set.
262 apis1.insert(APIPermission::kTab); 262 apis1.insert(APIPermission::kTab);
263 apis1.insert(APIPermission::kBackground); 263 apis1.insert(APIPermission::kBackground);
264 apis1.insert(permission->Clone()); 264 apis1.insert(permission->Clone());
265 expected_apis.insert(APIPermission::kTab); 265 expected_apis.insert(APIPermission::kTab);
266 expected_apis.insert(APIPermission::kBackground); 266 expected_apis.insert(APIPermission::kBackground);
267 expected_apis.insert(permission); 267 expected_apis.insert(permission);
268 268
(...skipping 24 matching lines...) Expand all
293 apis2.insert(APIPermission::kProxy); 293 apis2.insert(APIPermission::kProxy);
294 apis2.insert(APIPermission::kClipboardWrite); 294 apis2.insert(APIPermission::kClipboardWrite);
295 apis2.insert(APIPermission::kPlugin); 295 apis2.insert(APIPermission::kPlugin);
296 296
297 permission = permission_info->CreateAPIPermission(); 297 permission = permission_info->CreateAPIPermission();
298 { 298 {
299 scoped_ptr<base::ListValue> value(new base::ListValue()); 299 scoped_ptr<base::ListValue> value(new base::ListValue());
300 value->Append( 300 value->Append(
301 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); 301 base::Value::CreateStringValue("tcp-connect:*.example.com:80"));
302 value->Append(base::Value::CreateStringValue("udp-send-to::8899")); 302 value->Append(base::Value::CreateStringValue("udp-send-to::8899"));
303 ASSERT_TRUE(permission->FromValue(value.get(), NULL)); 303 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL));
304 } 304 }
305 apis2.insert(permission); 305 apis2.insert(permission);
306 306
307 expected_apis.insert(APIPermission::kTab); 307 expected_apis.insert(APIPermission::kTab);
308 expected_apis.insert(APIPermission::kProxy); 308 expected_apis.insert(APIPermission::kProxy);
309 expected_apis.insert(APIPermission::kClipboardWrite); 309 expected_apis.insert(APIPermission::kClipboardWrite);
310 expected_apis.insert(APIPermission::kPlugin); 310 expected_apis.insert(APIPermission::kPlugin);
311 311
312 permission = permission_info->CreateAPIPermission(); 312 permission = permission_info->CreateAPIPermission();
313 { 313 {
314 scoped_ptr<base::ListValue> value(new base::ListValue()); 314 scoped_ptr<base::ListValue> value(new base::ListValue());
315 value->Append( 315 value->Append(
316 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); 316 base::Value::CreateStringValue("tcp-connect:*.example.com:80"));
317 value->Append(base::Value::CreateStringValue("udp-bind::8080")); 317 value->Append(base::Value::CreateStringValue("udp-bind::8080"));
318 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); 318 value->Append(base::Value::CreateStringValue("udp-send-to::8888"));
319 value->Append(base::Value::CreateStringValue("udp-send-to::8899")); 319 value->Append(base::Value::CreateStringValue("udp-send-to::8899"));
320 ASSERT_TRUE(permission->FromValue(value.get(), NULL)); 320 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL));
321 } 321 }
322 // Insert a new permission socket permisssion which will replace the old one. 322 // Insert a new permission socket permisssion which will replace the old one.
323 expected_apis.insert(permission); 323 expected_apis.insert(permission);
324 324
325 AddPattern(&explicit_hosts2, "http://*.example.com/*"); 325 AddPattern(&explicit_hosts2, "http://*.example.com/*");
326 AddPattern(&scriptable_hosts2, "http://*.google.com/*"); 326 AddPattern(&scriptable_hosts2, "http://*.google.com/*");
327 AddPattern(&expected_explicit_hosts, "http://*.example.com/*"); 327 AddPattern(&expected_explicit_hosts, "http://*.example.com/*");
328 AddPattern(&expected_scriptable_hosts, "http://*.google.com/*"); 328 AddPattern(&expected_scriptable_hosts, "http://*.google.com/*");
329 329
330 URLPatternSet::CreateUnion( 330 URLPatternSet::CreateUnion(
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
377 // Intersection with an empty set. 377 // Intersection with an empty set.
378 apis1.insert(APIPermission::kTab); 378 apis1.insert(APIPermission::kTab);
379 apis1.insert(APIPermission::kBackground); 379 apis1.insert(APIPermission::kBackground);
380 permission = permission_info->CreateAPIPermission(); 380 permission = permission_info->CreateAPIPermission();
381 { 381 {
382 scoped_ptr<base::ListValue> value(new base::ListValue()); 382 scoped_ptr<base::ListValue> value(new base::ListValue());
383 value->Append( 383 value->Append(
384 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); 384 base::Value::CreateStringValue("tcp-connect:*.example.com:80"));
385 value->Append(base::Value::CreateStringValue("udp-bind::8080")); 385 value->Append(base::Value::CreateStringValue("udp-bind::8080"));
386 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); 386 value->Append(base::Value::CreateStringValue("udp-send-to::8888"));
387 ASSERT_TRUE(permission->FromValue(value.get(), NULL)); 387 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL));
388 } 388 }
389 apis1.insert(permission); 389 apis1.insert(permission);
390 390
391 AddPattern(&explicit_hosts1, "http://*.google.com/*"); 391 AddPattern(&explicit_hosts1, "http://*.google.com/*");
392 AddPattern(&scriptable_hosts1, "http://www.reddit.com/*"); 392 AddPattern(&scriptable_hosts1, "http://www.reddit.com/*");
393 393
394 set1 = new PermissionSet(apis1, manifest_permissions, 394 set1 = new PermissionSet(apis1, manifest_permissions,
395 explicit_hosts1, scriptable_hosts1); 395 explicit_hosts1, scriptable_hosts1);
396 set2 = new PermissionSet(apis2, manifest_permissions, 396 set2 = new PermissionSet(apis2, manifest_permissions,
397 explicit_hosts2, scriptable_hosts2); 397 explicit_hosts2, scriptable_hosts2);
(...skipping 16 matching lines...) Expand all
414 apis2.insert(APIPermission::kTab); 414 apis2.insert(APIPermission::kTab);
415 apis2.insert(APIPermission::kProxy); 415 apis2.insert(APIPermission::kProxy);
416 apis2.insert(APIPermission::kClipboardWrite); 416 apis2.insert(APIPermission::kClipboardWrite);
417 apis2.insert(APIPermission::kPlugin); 417 apis2.insert(APIPermission::kPlugin);
418 permission = permission_info->CreateAPIPermission(); 418 permission = permission_info->CreateAPIPermission();
419 { 419 {
420 scoped_ptr<base::ListValue> value(new base::ListValue()); 420 scoped_ptr<base::ListValue> value(new base::ListValue());
421 value->Append(base::Value::CreateStringValue("udp-bind::8080")); 421 value->Append(base::Value::CreateStringValue("udp-bind::8080"));
422 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); 422 value->Append(base::Value::CreateStringValue("udp-send-to::8888"));
423 value->Append(base::Value::CreateStringValue("udp-send-to::8899")); 423 value->Append(base::Value::CreateStringValue("udp-send-to::8899"));
424 ASSERT_TRUE(permission->FromValue(value.get(), NULL)); 424 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL));
425 } 425 }
426 apis2.insert(permission); 426 apis2.insert(permission);
427 427
428 expected_apis.insert(APIPermission::kTab); 428 expected_apis.insert(APIPermission::kTab);
429 permission = permission_info->CreateAPIPermission(); 429 permission = permission_info->CreateAPIPermission();
430 { 430 {
431 scoped_ptr<base::ListValue> value(new base::ListValue()); 431 scoped_ptr<base::ListValue> value(new base::ListValue());
432 value->Append(base::Value::CreateStringValue("udp-bind::8080")); 432 value->Append(base::Value::CreateStringValue("udp-bind::8080"));
433 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); 433 value->Append(base::Value::CreateStringValue("udp-send-to::8888"));
434 ASSERT_TRUE(permission->FromValue(value.get(), NULL)); 434 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL));
435 } 435 }
436 expected_apis.insert(permission); 436 expected_apis.insert(permission);
437 437
438 AddPattern(&explicit_hosts2, "http://*.example.com/*"); 438 AddPattern(&explicit_hosts2, "http://*.example.com/*");
439 AddPattern(&explicit_hosts2, "http://*.google.com/*"); 439 AddPattern(&explicit_hosts2, "http://*.google.com/*");
440 AddPattern(&scriptable_hosts2, "http://*.google.com/*"); 440 AddPattern(&scriptable_hosts2, "http://*.google.com/*");
441 AddPattern(&expected_explicit_hosts, "http://*.google.com/*"); 441 AddPattern(&expected_explicit_hosts, "http://*.google.com/*");
442 442
443 effective_hosts.ClearPatterns(); 443 effective_hosts.ClearPatterns();
444 AddPattern(&effective_hosts, "http://*.google.com/*"); 444 AddPattern(&effective_hosts, "http://*.google.com/*");
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
490 // Difference with an empty set. 490 // Difference with an empty set.
491 apis1.insert(APIPermission::kTab); 491 apis1.insert(APIPermission::kTab);
492 apis1.insert(APIPermission::kBackground); 492 apis1.insert(APIPermission::kBackground);
493 permission = permission_info->CreateAPIPermission(); 493 permission = permission_info->CreateAPIPermission();
494 { 494 {
495 scoped_ptr<base::ListValue> value(new base::ListValue()); 495 scoped_ptr<base::ListValue> value(new base::ListValue());
496 value->Append( 496 value->Append(
497 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); 497 base::Value::CreateStringValue("tcp-connect:*.example.com:80"));
498 value->Append(base::Value::CreateStringValue("udp-bind::8080")); 498 value->Append(base::Value::CreateStringValue("udp-bind::8080"));
499 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); 499 value->Append(base::Value::CreateStringValue("udp-send-to::8888"));
500 ASSERT_TRUE(permission->FromValue(value.get(), NULL)); 500 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL));
501 } 501 }
502 apis1.insert(permission); 502 apis1.insert(permission);
503 503
504 AddPattern(&explicit_hosts1, "http://*.google.com/*"); 504 AddPattern(&explicit_hosts1, "http://*.google.com/*");
505 AddPattern(&scriptable_hosts1, "http://www.reddit.com/*"); 505 AddPattern(&scriptable_hosts1, "http://www.reddit.com/*");
506 506
507 set1 = new PermissionSet(apis1, manifest_permissions, 507 set1 = new PermissionSet(apis1, manifest_permissions,
508 explicit_hosts1, scriptable_hosts1); 508 explicit_hosts1, scriptable_hosts1);
509 set2 = new PermissionSet(apis2, manifest_permissions, 509 set2 = new PermissionSet(apis2, manifest_permissions,
510 explicit_hosts2, scriptable_hosts2); 510 explicit_hosts2, scriptable_hosts2);
511 new_set = PermissionSet::CreateDifference(set1.get(), set2.get()); 511 new_set = PermissionSet::CreateDifference(set1.get(), set2.get());
512 EXPECT_EQ(*set1.get(), *new_set.get()); 512 EXPECT_EQ(*set1.get(), *new_set.get());
513 513
514 // Now use a real second set. 514 // Now use a real second set.
515 apis2.insert(APIPermission::kTab); 515 apis2.insert(APIPermission::kTab);
516 apis2.insert(APIPermission::kProxy); 516 apis2.insert(APIPermission::kProxy);
517 apis2.insert(APIPermission::kClipboardWrite); 517 apis2.insert(APIPermission::kClipboardWrite);
518 apis2.insert(APIPermission::kPlugin); 518 apis2.insert(APIPermission::kPlugin);
519 permission = permission_info->CreateAPIPermission(); 519 permission = permission_info->CreateAPIPermission();
520 { 520 {
521 scoped_ptr<base::ListValue> value(new base::ListValue()); 521 scoped_ptr<base::ListValue> value(new base::ListValue());
522 value->Append( 522 value->Append(
523 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); 523 base::Value::CreateStringValue("tcp-connect:*.example.com:80"));
524 value->Append(base::Value::CreateStringValue("udp-send-to::8899")); 524 value->Append(base::Value::CreateStringValue("udp-send-to::8899"));
525 ASSERT_TRUE(permission->FromValue(value.get(), NULL)); 525 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL));
526 } 526 }
527 apis2.insert(permission); 527 apis2.insert(permission);
528 528
529 expected_apis.insert(APIPermission::kBackground); 529 expected_apis.insert(APIPermission::kBackground);
530 permission = permission_info->CreateAPIPermission(); 530 permission = permission_info->CreateAPIPermission();
531 { 531 {
532 scoped_ptr<base::ListValue> value(new base::ListValue()); 532 scoped_ptr<base::ListValue> value(new base::ListValue());
533 value->Append(base::Value::CreateStringValue("udp-bind::8080")); 533 value->Append(base::Value::CreateStringValue("udp-bind::8080"));
534 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); 534 value->Append(base::Value::CreateStringValue("udp-send-to::8888"));
535 ASSERT_TRUE(permission->FromValue(value.get(), NULL)); 535 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL));
536 } 536 }
537 expected_apis.insert(permission); 537 expected_apis.insert(permission);
538 538
539 AddPattern(&explicit_hosts2, "http://*.example.com/*"); 539 AddPattern(&explicit_hosts2, "http://*.example.com/*");
540 AddPattern(&explicit_hosts2, "http://*.google.com/*"); 540 AddPattern(&explicit_hosts2, "http://*.google.com/*");
541 AddPattern(&scriptable_hosts2, "http://*.google.com/*"); 541 AddPattern(&scriptable_hosts2, "http://*.google.com/*");
542 AddPattern(&expected_scriptable_hosts, "http://www.reddit.com/*"); 542 AddPattern(&expected_scriptable_hosts, "http://www.reddit.com/*");
543 543
544 effective_hosts.ClearPatterns(); 544 effective_hosts.ClearPatterns();
545 AddPattern(&effective_hosts, "http://www.reddit.com/*"); 545 AddPattern(&effective_hosts, "http://www.reddit.com/*");
(...skipping 920 matching lines...) Expand 10 before | Expand all | Expand 10 after
1466 scoped_refptr<const PermissionSet> permissions_dwr( 1466 scoped_refptr<const PermissionSet> permissions_dwr(
1467 extension_dwr->GetActivePermissions()); 1467 extension_dwr->GetActivePermissions());
1468 1468
1469 EXPECT_FALSE(PermissionMessageProvider::Get()-> 1469 EXPECT_FALSE(PermissionMessageProvider::Get()->
1470 IsPrivilegeIncrease(permissions.get(), 1470 IsPrivilegeIncrease(permissions.get(),
1471 permissions_dwr.get(), 1471 permissions_dwr.get(),
1472 extension->GetType())); 1472 extension->GetType()));
1473 } 1473 }
1474 1474
1475 } // namespace extensions 1475 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698