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

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

Issue 141743005: Extensions: Make it possible for permission parsing code to return a detailed error message. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 6 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 "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 if (!permission->FromValue(value.get())) { 258 ASSERT_TRUE(permission->FromValue(value.get(), NULL));
259 NOTREACHED();
260 }
261 } 259 }
262 260
263 // Union with an empty set. 261 // Union with an empty set.
264 apis1.insert(APIPermission::kTab); 262 apis1.insert(APIPermission::kTab);
265 apis1.insert(APIPermission::kBackground); 263 apis1.insert(APIPermission::kBackground);
266 apis1.insert(permission->Clone()); 264 apis1.insert(permission->Clone());
267 expected_apis.insert(APIPermission::kTab); 265 expected_apis.insert(APIPermission::kTab);
268 expected_apis.insert(APIPermission::kBackground); 266 expected_apis.insert(APIPermission::kBackground);
269 expected_apis.insert(permission); 267 expected_apis.insert(permission);
270 268
(...skipping 24 matching lines...) Expand all
295 apis2.insert(APIPermission::kProxy); 293 apis2.insert(APIPermission::kProxy);
296 apis2.insert(APIPermission::kClipboardWrite); 294 apis2.insert(APIPermission::kClipboardWrite);
297 apis2.insert(APIPermission::kPlugin); 295 apis2.insert(APIPermission::kPlugin);
298 296
299 permission = permission_info->CreateAPIPermission(); 297 permission = permission_info->CreateAPIPermission();
300 { 298 {
301 scoped_ptr<base::ListValue> value(new base::ListValue()); 299 scoped_ptr<base::ListValue> value(new base::ListValue());
302 value->Append( 300 value->Append(
303 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); 301 base::Value::CreateStringValue("tcp-connect:*.example.com:80"));
304 value->Append(base::Value::CreateStringValue("udp-send-to::8899")); 302 value->Append(base::Value::CreateStringValue("udp-send-to::8899"));
305 if (!permission->FromValue(value.get())) { 303 ASSERT_TRUE(permission->FromValue(value.get(), NULL));
306 NOTREACHED();
307 }
308 } 304 }
309 apis2.insert(permission); 305 apis2.insert(permission);
310 306
311 expected_apis.insert(APIPermission::kTab); 307 expected_apis.insert(APIPermission::kTab);
312 expected_apis.insert(APIPermission::kProxy); 308 expected_apis.insert(APIPermission::kProxy);
313 expected_apis.insert(APIPermission::kClipboardWrite); 309 expected_apis.insert(APIPermission::kClipboardWrite);
314 expected_apis.insert(APIPermission::kPlugin); 310 expected_apis.insert(APIPermission::kPlugin);
315 311
316 permission = permission_info->CreateAPIPermission(); 312 permission = permission_info->CreateAPIPermission();
317 { 313 {
318 scoped_ptr<base::ListValue> value(new base::ListValue()); 314 scoped_ptr<base::ListValue> value(new base::ListValue());
319 value->Append( 315 value->Append(
320 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); 316 base::Value::CreateStringValue("tcp-connect:*.example.com:80"));
321 value->Append(base::Value::CreateStringValue("udp-bind::8080")); 317 value->Append(base::Value::CreateStringValue("udp-bind::8080"));
322 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); 318 value->Append(base::Value::CreateStringValue("udp-send-to::8888"));
323 value->Append(base::Value::CreateStringValue("udp-send-to::8899")); 319 value->Append(base::Value::CreateStringValue("udp-send-to::8899"));
324 if (!permission->FromValue(value.get())) { 320 ASSERT_TRUE(permission->FromValue(value.get(), NULL));
325 NOTREACHED();
326 }
327 } 321 }
328 // 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.
329 expected_apis.insert(permission); 323 expected_apis.insert(permission);
330 324
331 AddPattern(&explicit_hosts2, "http://*.example.com/*"); 325 AddPattern(&explicit_hosts2, "http://*.example.com/*");
332 AddPattern(&scriptable_hosts2, "http://*.google.com/*"); 326 AddPattern(&scriptable_hosts2, "http://*.google.com/*");
333 AddPattern(&expected_explicit_hosts, "http://*.example.com/*"); 327 AddPattern(&expected_explicit_hosts, "http://*.example.com/*");
334 AddPattern(&expected_scriptable_hosts, "http://*.google.com/*"); 328 AddPattern(&expected_scriptable_hosts, "http://*.google.com/*");
335 329
336 URLPatternSet::CreateUnion( 330 URLPatternSet::CreateUnion(
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
383 // Intersection with an empty set. 377 // Intersection with an empty set.
384 apis1.insert(APIPermission::kTab); 378 apis1.insert(APIPermission::kTab);
385 apis1.insert(APIPermission::kBackground); 379 apis1.insert(APIPermission::kBackground);
386 permission = permission_info->CreateAPIPermission(); 380 permission = permission_info->CreateAPIPermission();
387 { 381 {
388 scoped_ptr<base::ListValue> value(new base::ListValue()); 382 scoped_ptr<base::ListValue> value(new base::ListValue());
389 value->Append( 383 value->Append(
390 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); 384 base::Value::CreateStringValue("tcp-connect:*.example.com:80"));
391 value->Append(base::Value::CreateStringValue("udp-bind::8080")); 385 value->Append(base::Value::CreateStringValue("udp-bind::8080"));
392 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); 386 value->Append(base::Value::CreateStringValue("udp-send-to::8888"));
393 if (!permission->FromValue(value.get())) { 387 ASSERT_TRUE(permission->FromValue(value.get(), NULL));
394 NOTREACHED();
395 }
396 } 388 }
397 apis1.insert(permission); 389 apis1.insert(permission);
398 390
399 AddPattern(&explicit_hosts1, "http://*.google.com/*"); 391 AddPattern(&explicit_hosts1, "http://*.google.com/*");
400 AddPattern(&scriptable_hosts1, "http://www.reddit.com/*"); 392 AddPattern(&scriptable_hosts1, "http://www.reddit.com/*");
401 393
402 set1 = new PermissionSet(apis1, manifest_permissions, 394 set1 = new PermissionSet(apis1, manifest_permissions,
403 explicit_hosts1, scriptable_hosts1); 395 explicit_hosts1, scriptable_hosts1);
404 set2 = new PermissionSet(apis2, manifest_permissions, 396 set2 = new PermissionSet(apis2, manifest_permissions,
405 explicit_hosts2, scriptable_hosts2); 397 explicit_hosts2, scriptable_hosts2);
(...skipping 16 matching lines...) Expand all
422 apis2.insert(APIPermission::kTab); 414 apis2.insert(APIPermission::kTab);
423 apis2.insert(APIPermission::kProxy); 415 apis2.insert(APIPermission::kProxy);
424 apis2.insert(APIPermission::kClipboardWrite); 416 apis2.insert(APIPermission::kClipboardWrite);
425 apis2.insert(APIPermission::kPlugin); 417 apis2.insert(APIPermission::kPlugin);
426 permission = permission_info->CreateAPIPermission(); 418 permission = permission_info->CreateAPIPermission();
427 { 419 {
428 scoped_ptr<base::ListValue> value(new base::ListValue()); 420 scoped_ptr<base::ListValue> value(new base::ListValue());
429 value->Append(base::Value::CreateStringValue("udp-bind::8080")); 421 value->Append(base::Value::CreateStringValue("udp-bind::8080"));
430 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); 422 value->Append(base::Value::CreateStringValue("udp-send-to::8888"));
431 value->Append(base::Value::CreateStringValue("udp-send-to::8899")); 423 value->Append(base::Value::CreateStringValue("udp-send-to::8899"));
432 if (!permission->FromValue(value.get())) { 424 ASSERT_TRUE(permission->FromValue(value.get(), NULL));
433 NOTREACHED();
434 }
435 } 425 }
436 apis2.insert(permission); 426 apis2.insert(permission);
437 427
438 expected_apis.insert(APIPermission::kTab); 428 expected_apis.insert(APIPermission::kTab);
439 permission = permission_info->CreateAPIPermission(); 429 permission = permission_info->CreateAPIPermission();
440 { 430 {
441 scoped_ptr<base::ListValue> value(new base::ListValue()); 431 scoped_ptr<base::ListValue> value(new base::ListValue());
442 value->Append(base::Value::CreateStringValue("udp-bind::8080")); 432 value->Append(base::Value::CreateStringValue("udp-bind::8080"));
443 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); 433 value->Append(base::Value::CreateStringValue("udp-send-to::8888"));
444 if (!permission->FromValue(value.get())) { 434 ASSERT_TRUE(permission->FromValue(value.get(), NULL));
445 NOTREACHED();
446 }
447 } 435 }
448 expected_apis.insert(permission); 436 expected_apis.insert(permission);
449 437
450 AddPattern(&explicit_hosts2, "http://*.example.com/*"); 438 AddPattern(&explicit_hosts2, "http://*.example.com/*");
451 AddPattern(&explicit_hosts2, "http://*.google.com/*"); 439 AddPattern(&explicit_hosts2, "http://*.google.com/*");
452 AddPattern(&scriptable_hosts2, "http://*.google.com/*"); 440 AddPattern(&scriptable_hosts2, "http://*.google.com/*");
453 AddPattern(&expected_explicit_hosts, "http://*.google.com/*"); 441 AddPattern(&expected_explicit_hosts, "http://*.google.com/*");
454 442
455 effective_hosts.ClearPatterns(); 443 effective_hosts.ClearPatterns();
456 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
502 // Difference with an empty set. 490 // Difference with an empty set.
503 apis1.insert(APIPermission::kTab); 491 apis1.insert(APIPermission::kTab);
504 apis1.insert(APIPermission::kBackground); 492 apis1.insert(APIPermission::kBackground);
505 permission = permission_info->CreateAPIPermission(); 493 permission = permission_info->CreateAPIPermission();
506 { 494 {
507 scoped_ptr<base::ListValue> value(new base::ListValue()); 495 scoped_ptr<base::ListValue> value(new base::ListValue());
508 value->Append( 496 value->Append(
509 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); 497 base::Value::CreateStringValue("tcp-connect:*.example.com:80"));
510 value->Append(base::Value::CreateStringValue("udp-bind::8080")); 498 value->Append(base::Value::CreateStringValue("udp-bind::8080"));
511 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); 499 value->Append(base::Value::CreateStringValue("udp-send-to::8888"));
512 if (!permission->FromValue(value.get())) { 500 ASSERT_TRUE(permission->FromValue(value.get(), NULL));
513 NOTREACHED();
514 }
515 } 501 }
516 apis1.insert(permission); 502 apis1.insert(permission);
517 503
518 AddPattern(&explicit_hosts1, "http://*.google.com/*"); 504 AddPattern(&explicit_hosts1, "http://*.google.com/*");
519 AddPattern(&scriptable_hosts1, "http://www.reddit.com/*"); 505 AddPattern(&scriptable_hosts1, "http://www.reddit.com/*");
520 506
521 set1 = new PermissionSet(apis1, manifest_permissions, 507 set1 = new PermissionSet(apis1, manifest_permissions,
522 explicit_hosts1, scriptable_hosts1); 508 explicit_hosts1, scriptable_hosts1);
523 set2 = new PermissionSet(apis2, manifest_permissions, 509 set2 = new PermissionSet(apis2, manifest_permissions,
524 explicit_hosts2, scriptable_hosts2); 510 explicit_hosts2, scriptable_hosts2);
525 new_set = PermissionSet::CreateDifference(set1.get(), set2.get()); 511 new_set = PermissionSet::CreateDifference(set1.get(), set2.get());
526 EXPECT_EQ(*set1.get(), *new_set.get()); 512 EXPECT_EQ(*set1.get(), *new_set.get());
527 513
528 // Now use a real second set. 514 // Now use a real second set.
529 apis2.insert(APIPermission::kTab); 515 apis2.insert(APIPermission::kTab);
530 apis2.insert(APIPermission::kProxy); 516 apis2.insert(APIPermission::kProxy);
531 apis2.insert(APIPermission::kClipboardWrite); 517 apis2.insert(APIPermission::kClipboardWrite);
532 apis2.insert(APIPermission::kPlugin); 518 apis2.insert(APIPermission::kPlugin);
533 permission = permission_info->CreateAPIPermission(); 519 permission = permission_info->CreateAPIPermission();
534 { 520 {
535 scoped_ptr<base::ListValue> value(new base::ListValue()); 521 scoped_ptr<base::ListValue> value(new base::ListValue());
536 value->Append( 522 value->Append(
537 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); 523 base::Value::CreateStringValue("tcp-connect:*.example.com:80"));
538 value->Append(base::Value::CreateStringValue("udp-send-to::8899")); 524 value->Append(base::Value::CreateStringValue("udp-send-to::8899"));
539 if (!permission->FromValue(value.get())) { 525 ASSERT_TRUE(permission->FromValue(value.get(), NULL));
540 NOTREACHED();
541 }
542 } 526 }
543 apis2.insert(permission); 527 apis2.insert(permission);
544 528
545 expected_apis.insert(APIPermission::kBackground); 529 expected_apis.insert(APIPermission::kBackground);
546 permission = permission_info->CreateAPIPermission(); 530 permission = permission_info->CreateAPIPermission();
547 { 531 {
548 scoped_ptr<base::ListValue> value(new base::ListValue()); 532 scoped_ptr<base::ListValue> value(new base::ListValue());
549 value->Append(base::Value::CreateStringValue("udp-bind::8080")); 533 value->Append(base::Value::CreateStringValue("udp-bind::8080"));
550 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); 534 value->Append(base::Value::CreateStringValue("udp-send-to::8888"));
551 if (!permission->FromValue(value.get())) { 535 ASSERT_TRUE(permission->FromValue(value.get(), NULL));
552 NOTREACHED();
553 }
554 } 536 }
555 expected_apis.insert(permission); 537 expected_apis.insert(permission);
556 538
557 AddPattern(&explicit_hosts2, "http://*.example.com/*"); 539 AddPattern(&explicit_hosts2, "http://*.example.com/*");
558 AddPattern(&explicit_hosts2, "http://*.google.com/*"); 540 AddPattern(&explicit_hosts2, "http://*.google.com/*");
559 AddPattern(&scriptable_hosts2, "http://*.google.com/*"); 541 AddPattern(&scriptable_hosts2, "http://*.google.com/*");
560 AddPattern(&expected_scriptable_hosts, "http://www.reddit.com/*"); 542 AddPattern(&expected_scriptable_hosts, "http://www.reddit.com/*");
561 543
562 effective_hosts.ClearPatterns(); 544 effective_hosts.ClearPatterns();
563 AddPattern(&effective_hosts, "http://www.reddit.com/*"); 545 AddPattern(&effective_hosts, "http://www.reddit.com/*");
(...skipping 919 matching lines...) Expand 10 before | Expand all | Expand 10 after
1483 scoped_refptr<const PermissionSet> permissions_dwr( 1465 scoped_refptr<const PermissionSet> permissions_dwr(
1484 extension_dwr->GetActivePermissions()); 1466 extension_dwr->GetActivePermissions());
1485 1467
1486 EXPECT_FALSE(PermissionMessageProvider::Get()-> 1468 EXPECT_FALSE(PermissionMessageProvider::Get()->
1487 IsPrivilegeIncrease(permissions.get(), 1469 IsPrivilegeIncrease(permissions.get(),
1488 permissions_dwr.get(), 1470 permissions_dwr.get(),
1489 extension->GetType())); 1471 extension->GetType()));
1490 } 1472 }
1491 1473
1492 } // namespace extensions 1474 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698