Index: chrome/common/extensions/permissions/permission_set_unittest.cc |
diff --git a/chrome/common/extensions/permissions/permission_set_unittest.cc b/chrome/common/extensions/permissions/permission_set_unittest.cc |
index ca335105aaa0bf34f2cb0f8176408866a040143b..e8cc3e797ac951ef3d9ed665fc4f58c44529ba3a 100644 |
--- a/chrome/common/extensions/permissions/permission_set_unittest.cc |
+++ b/chrome/common/extensions/permissions/permission_set_unittest.cc |
@@ -202,6 +202,7 @@ TEST(PermissionsTest, EffectiveHostPermissions) { |
TEST(PermissionsTest, ExplicitAccessToOrigin) { |
APIPermissionSet apis; |
+ ManifestPermissionSet manifest_permissions; |
URLPatternSet explicit_hosts; |
URLPatternSet scriptable_hosts; |
@@ -210,7 +211,7 @@ TEST(PermissionsTest, ExplicitAccessToOrigin) { |
AddPattern(&explicit_hosts, "http://www.example.com/a/particular/path/*"); |
scoped_refptr<PermissionSet> perm_set = new PermissionSet( |
- apis, explicit_hosts, scriptable_hosts); |
+ apis, manifest_permissions, explicit_hosts, scriptable_hosts); |
ASSERT_TRUE(perm_set->HasExplicitAccessToOrigin( |
GURL("http://www.google.com/"))); |
ASSERT_TRUE(perm_set->HasExplicitAccessToOrigin( |
@@ -226,6 +227,7 @@ TEST(PermissionsTest, ExplicitAccessToOrigin) { |
TEST(PermissionsTest, CreateUnion) { |
APIPermission* permission = NULL; |
+ ManifestPermissionSet manifest_permissions; |
APIPermissionSet apis1; |
APIPermissionSet apis2; |
APIPermissionSet expected_apis; |
@@ -270,8 +272,10 @@ TEST(PermissionsTest, CreateUnion) { |
AddPattern(&expected_explicit_hosts, "http://*.google.com/*"); |
AddPattern(&effective_hosts, "http://*.google.com/*"); |
- set1 = new PermissionSet(apis1, explicit_hosts1, scriptable_hosts1); |
- set2 = new PermissionSet(apis2, explicit_hosts2, scriptable_hosts2); |
+ set1 = new PermissionSet(apis1, manifest_permissions, |
+ explicit_hosts1, scriptable_hosts1); |
+ set2 = new PermissionSet(apis2, manifest_permissions, |
+ explicit_hosts2, scriptable_hosts2); |
union_set = PermissionSet::CreateUnion(set1.get(), set2.get()); |
EXPECT_TRUE(set1->Contains(*set2.get())); |
EXPECT_TRUE(set1->Contains(*union_set.get())); |
@@ -332,7 +336,8 @@ TEST(PermissionsTest, CreateUnion) { |
URLPatternSet::CreateUnion( |
explicit_hosts2, scriptable_hosts2, &effective_hosts); |
- set2 = new PermissionSet(apis2, explicit_hosts2, scriptable_hosts2); |
+ set2 = new PermissionSet(apis2, manifest_permissions, |
+ explicit_hosts2, scriptable_hosts2); |
union_set = PermissionSet::CreateUnion(set1.get(), set2.get()); |
EXPECT_FALSE(set1->Contains(*set2.get())); |
@@ -353,6 +358,7 @@ TEST(PermissionsTest, CreateUnion) { |
TEST(PermissionsTest, CreateIntersection) { |
APIPermission* permission = NULL; |
+ ManifestPermissionSet manifest_permissions; |
APIPermissionSet apis1; |
APIPermissionSet apis2; |
APIPermissionSet expected_apis; |
@@ -393,8 +399,10 @@ TEST(PermissionsTest, CreateIntersection) { |
AddPattern(&explicit_hosts1, "http://*.google.com/*"); |
AddPattern(&scriptable_hosts1, "http://www.reddit.com/*"); |
- set1 = new PermissionSet(apis1, explicit_hosts1, scriptable_hosts1); |
- set2 = new PermissionSet(apis2, explicit_hosts2, scriptable_hosts2); |
+ set1 = new PermissionSet(apis1, manifest_permissions, |
+ explicit_hosts1, scriptable_hosts1); |
+ set2 = new PermissionSet(apis2, manifest_permissions, |
+ explicit_hosts2, scriptable_hosts2); |
new_set = PermissionSet::CreateIntersection(set1.get(), set2.get()); |
EXPECT_TRUE(set1->Contains(*new_set.get())); |
EXPECT_TRUE(set2->Contains(*new_set.get())); |
@@ -447,7 +455,8 @@ TEST(PermissionsTest, CreateIntersection) { |
effective_hosts.ClearPatterns(); |
AddPattern(&effective_hosts, "http://*.google.com/*"); |
- set2 = new PermissionSet(apis2, explicit_hosts2, scriptable_hosts2); |
+ set2 = new PermissionSet(apis2, manifest_permissions, |
+ explicit_hosts2, scriptable_hosts2); |
new_set = PermissionSet::CreateIntersection(set1.get(), set2.get()); |
EXPECT_TRUE(set1->Contains(*new_set.get())); |
@@ -468,6 +477,7 @@ TEST(PermissionsTest, CreateIntersection) { |
TEST(PermissionsTest, CreateDifference) { |
APIPermission* permission = NULL; |
+ ManifestPermissionSet manifest_permissions; |
APIPermissionSet apis1; |
APIPermissionSet apis2; |
APIPermissionSet expected_apis; |
@@ -508,8 +518,10 @@ TEST(PermissionsTest, CreateDifference) { |
AddPattern(&explicit_hosts1, "http://*.google.com/*"); |
AddPattern(&scriptable_hosts1, "http://www.reddit.com/*"); |
- set1 = new PermissionSet(apis1, explicit_hosts1, scriptable_hosts1); |
- set2 = new PermissionSet(apis2, explicit_hosts2, scriptable_hosts2); |
+ set1 = new PermissionSet(apis1, manifest_permissions, |
+ explicit_hosts1, scriptable_hosts1); |
+ set2 = new PermissionSet(apis2, manifest_permissions, |
+ explicit_hosts2, scriptable_hosts2); |
new_set = PermissionSet::CreateDifference(set1.get(), set2.get()); |
EXPECT_EQ(*set1.get(), *new_set.get()); |
@@ -550,7 +562,8 @@ TEST(PermissionsTest, CreateDifference) { |
effective_hosts.ClearPatterns(); |
AddPattern(&effective_hosts, "http://www.reddit.com/*"); |
- set2 = new PermissionSet(apis2, explicit_hosts2, scriptable_hosts2); |
+ set2 = new PermissionSet(apis2, manifest_permissions, |
+ explicit_hosts2, scriptable_hosts2); |
new_set = PermissionSet::CreateDifference(set1.get(), set2.get()); |
EXPECT_TRUE(set1->Contains(*new_set.get())); |
@@ -772,7 +785,8 @@ TEST(PermissionsTest, FileSystemPermissionMessages) { |
api_permissions.insert(APIPermission::kFileSystemWrite); |
api_permissions.insert(APIPermission::kFileSystemDirectory); |
scoped_refptr<PermissionSet> permissions( |
- new PermissionSet(api_permissions, URLPatternSet(), URLPatternSet())); |
+ new PermissionSet(api_permissions, ManifestPermissionSet(), |
+ URLPatternSet(), URLPatternSet())); |
PermissionMessages messages = |
PermissionMessageProvider::Get()->GetPermissionMessages( |
permissions, Manifest::TYPE_PLATFORM_APP); |
@@ -793,7 +807,8 @@ TEST(PermissionsTest, HiddenFileSystemPermissionMessages) { |
api_permissions.insert(APIPermission::kFileSystemDirectory); |
api_permissions.insert(APIPermission::kFileSystemWriteDirectory); |
scoped_refptr<PermissionSet> permissions( |
- new PermissionSet(api_permissions, URLPatternSet(), URLPatternSet())); |
+ new PermissionSet(api_permissions, ManifestPermissionSet(), |
+ URLPatternSet(), URLPatternSet())); |
PermissionMessages messages = |
PermissionMessageProvider::Get()->GetPermissionMessages( |
permissions, Manifest::TYPE_PLATFORM_APP); |
@@ -804,19 +819,24 @@ TEST(PermissionsTest, HiddenFileSystemPermissionMessages) { |
TEST(PermissionsTest, MergedFileSystemPermissionComparison) { |
APIPermissionSet write_api_permissions; |
write_api_permissions.insert(APIPermission::kFileSystemWrite); |
- scoped_refptr<PermissionSet> write_permissions(new PermissionSet( |
- write_api_permissions, URLPatternSet(), URLPatternSet())); |
+ scoped_refptr<PermissionSet> write_permissions( |
+ new PermissionSet(write_api_permissions, ManifestPermissionSet(), |
+ URLPatternSet(), URLPatternSet())); |
APIPermissionSet directory_api_permissions; |
directory_api_permissions.insert(APIPermission::kFileSystemDirectory); |
- scoped_refptr<PermissionSet> directory_permissions(new PermissionSet( |
- directory_api_permissions, URLPatternSet(), URLPatternSet())); |
+ scoped_refptr<PermissionSet> directory_permissions( |
+ new PermissionSet(directory_api_permissions, ManifestPermissionSet(), |
+ URLPatternSet(), URLPatternSet())); |
APIPermissionSet write_directory_api_permissions; |
write_directory_api_permissions.insert( |
APIPermission::kFileSystemWriteDirectory); |
- scoped_refptr<PermissionSet> write_directory_permissions(new PermissionSet( |
- write_directory_api_permissions, URLPatternSet(), URLPatternSet())); |
+ scoped_refptr<PermissionSet> write_directory_permissions( |
+ new PermissionSet(write_directory_api_permissions, |
+ ManifestPermissionSet(), |
+ URLPatternSet(), |
+ URLPatternSet())); |
const PermissionMessageProvider* provider = PermissionMessageProvider::Get(); |
EXPECT_FALSE(provider->IsPrivilegeIncrease(write_directory_permissions, |
@@ -1160,7 +1180,8 @@ TEST(PermissionsTest, GetDistinctHosts) { |
expected.insert("*.example.com"); |
scoped_refptr<PermissionSet> perm_set(new PermissionSet( |
- empty_perms, explicit_hosts, scriptable_hosts)); |
+ empty_perms, ManifestPermissionSet(), |
+ explicit_hosts, scriptable_hosts)); |
EXPECT_EQ(expected, |
permission_message_util::GetDistinctHosts( |
perm_set->effective_hosts(), true, true)); |
@@ -1267,6 +1288,7 @@ TEST(PermissionsTest, GetDistinctHosts_FirstInListIs4thBestRcd) { |
TEST(PermissionsTest, IsHostPrivilegeIncrease) { |
Manifest::Type type = Manifest::TYPE_EXTENSION; |
const PermissionMessageProvider* provider = PermissionMessageProvider::Get(); |
+ ManifestPermissionSet empty_manifest_permissions; |
URLPatternSet elist1; |
URLPatternSet elist2; |
URLPatternSet slist1; |
@@ -1285,8 +1307,10 @@ TEST(PermissionsTest, IsHostPrivilegeIncrease) { |
elist2.AddPattern( |
URLPattern(URLPattern::SCHEME_HTTP, "http://www.google.com.hk/path")); |
- set1 = new PermissionSet(empty_perms, elist1, slist1); |
- set2 = new PermissionSet(empty_perms, elist2, slist2); |
+ set1 = new PermissionSet(empty_perms, empty_manifest_permissions, |
+ elist1, slist1); |
+ set2 = new PermissionSet(empty_perms, empty_manifest_permissions, |
+ elist2, slist2); |
EXPECT_FALSE(provider->IsPrivilegeIncrease(set1, set2, type)); |
EXPECT_FALSE(provider->IsPrivilegeIncrease(set2, set1, type)); |
@@ -1295,7 +1319,8 @@ TEST(PermissionsTest, IsHostPrivilegeIncrease) { |
elist2.ClearPatterns(); |
elist2.AddPattern( |
URLPattern(URLPattern::SCHEME_HTTP, "http://www.google.com/*")); |
- set2 = new PermissionSet(empty_perms, elist2, slist2); |
+ set2 = new PermissionSet(empty_perms, empty_manifest_permissions, |
+ elist2, slist2); |
EXPECT_FALSE(provider->IsPrivilegeIncrease(set1, set2, type)); |
EXPECT_FALSE(provider->IsPrivilegeIncrease(set2, set1, type)); |
@@ -1303,7 +1328,8 @@ TEST(PermissionsTest, IsHostPrivilegeIncrease) { |
elist2.ClearPatterns(); |
elist2.AddPattern( |
URLPattern(URLPattern::SCHEME_HTTP, "http://www.google.com.hk/*")); |
- set2 = new PermissionSet(empty_perms, elist2, slist2); |
+ set2 = new PermissionSet(empty_perms, empty_manifest_permissions, |
+ elist2, slist2); |
EXPECT_FALSE(provider->IsPrivilegeIncrease(set1, set2, type)); |
EXPECT_FALSE(provider->IsPrivilegeIncrease(set2, set1, type)); |
@@ -1311,7 +1337,8 @@ TEST(PermissionsTest, IsHostPrivilegeIncrease) { |
elist2.ClearPatterns(); |
elist2.AddPattern( |
URLPattern(URLPattern::SCHEME_HTTP, "http://*.google.com.hk/*")); |
- set2 = new PermissionSet(empty_perms, elist2, slist2); |
+ set2 = new PermissionSet(empty_perms, empty_manifest_permissions, |
+ elist2, slist2); |
EXPECT_TRUE(provider->IsPrivilegeIncrease(set1, set2, type)); |
// TODO(jstritar): Does not match subdomains properly. http://crbug.com/65337 |
// EXPECT_FALSE(provider->IsPrivilegeIncrease(set2, set1, type)); |
@@ -1322,7 +1349,8 @@ TEST(PermissionsTest, IsHostPrivilegeIncrease) { |
URLPattern(URLPattern::SCHEME_HTTP, "http://www.google.com/path")); |
elist2.AddPattern( |
URLPattern(URLPattern::SCHEME_HTTP, "http://www.example.org/path")); |
- set2 = new PermissionSet(empty_perms, elist2, slist2); |
+ set2 = new PermissionSet(empty_perms, empty_manifest_permissions, |
+ elist2, slist2); |
EXPECT_TRUE(provider->IsPrivilegeIncrease(set1, set2, type)); |
EXPECT_FALSE(provider->IsPrivilegeIncrease(set2, set1, type)); |
@@ -1330,7 +1358,8 @@ TEST(PermissionsTest, IsHostPrivilegeIncrease) { |
elist2.ClearPatterns(); |
elist2.AddPattern( |
URLPattern(URLPattern::SCHEME_HTTP, "http://mail.google.com/*")); |
- set2 = new PermissionSet(empty_perms, elist2, slist2); |
+ set2 = new PermissionSet(empty_perms, empty_manifest_permissions, |
+ elist2, slist2); |
EXPECT_TRUE(provider->IsPrivilegeIncrease(set1, set2, type)); |
EXPECT_TRUE(provider->IsPrivilegeIncrease(set2, set1, type)); |
@@ -1350,7 +1379,7 @@ TEST(PermissionsTest, GetAPIsAsStrings) { |
apis.insert(APIPermission::kTab); |
scoped_refptr<PermissionSet> perm_set = new PermissionSet( |
- apis, empty_set, empty_set); |
+ apis, ManifestPermissionSet(), empty_set, empty_set); |
std::set<std::string> api_names = perm_set->GetAPIsAsStrings(); |
// The result is correct if it has the same number of elements |
@@ -1368,25 +1397,26 @@ TEST(PermissionsTest, IsEmpty) { |
EXPECT_TRUE(empty->IsEmpty()); |
scoped_refptr<PermissionSet> perm_set; |
- perm_set = new PermissionSet(empty_apis, empty_extent, empty_extent); |
+ perm_set = new PermissionSet(empty_apis, ManifestPermissionSet(), |
+ empty_extent, empty_extent); |
EXPECT_TRUE(perm_set->IsEmpty()); |
APIPermissionSet non_empty_apis; |
non_empty_apis.insert(APIPermission::kBackground); |
- perm_set = new PermissionSet( |
- non_empty_apis, empty_extent, empty_extent); |
+ perm_set = new PermissionSet(non_empty_apis, ManifestPermissionSet(), |
+ empty_extent, empty_extent); |
EXPECT_FALSE(perm_set->IsEmpty()); |
// Try non standard host |
URLPatternSet non_empty_extent; |
AddPattern(&non_empty_extent, "http://www.google.com/*"); |
- perm_set = new PermissionSet( |
- empty_apis, non_empty_extent, empty_extent); |
+ perm_set = new PermissionSet(empty_apis, ManifestPermissionSet(), |
+ non_empty_extent, empty_extent); |
EXPECT_FALSE(perm_set->IsEmpty()); |
- perm_set = new PermissionSet( |
- empty_apis, empty_extent, non_empty_extent); |
+ perm_set = new PermissionSet(empty_apis, ManifestPermissionSet(), |
+ empty_extent, non_empty_extent); |
EXPECT_FALSE(perm_set->IsEmpty()); |
} |
@@ -1398,7 +1428,8 @@ TEST(PermissionsTest, ImpliedPermissions) { |
EXPECT_EQ(2U, apis.size()); |
scoped_refptr<PermissionSet> perm_set; |
- perm_set = new PermissionSet(apis, empty_extent, empty_extent); |
+ perm_set = new PermissionSet(apis, ManifestPermissionSet(), |
+ empty_extent, empty_extent); |
EXPECT_EQ(4U, perm_set->apis().size()); |
} |
@@ -1428,7 +1459,8 @@ TEST(PermissionsTest, ChromeURLs) { |
allowed_hosts.AddPattern( |
URLPattern(URLPattern::SCHEME_ALL, "chrome://thumb/")); |
scoped_refptr<PermissionSet> permissions( |
- new PermissionSet(APIPermissionSet(), allowed_hosts, URLPatternSet())); |
+ new PermissionSet(APIPermissionSet(), ManifestPermissionSet(), |
+ allowed_hosts, URLPatternSet())); |
PermissionMessageProvider::Get()-> |
GetPermissionMessages(permissions, Manifest::TYPE_EXTENSION); |
} |