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 2937b10685a86336359b4e653018c2a477926d00..28f24279cb3ee479f620c30a61404b1fd2f184c3 100644 |
--- a/chrome/common/extensions/permissions/permission_set_unittest.cc |
+++ b/chrome/common/extensions/permissions/permission_set_unittest.cc |
@@ -592,6 +592,8 @@ TEST(PermissionsTest, HasLessPrivilegesThan) { |
#endif |
{ "storage", false }, // none -> storage |
{ "notifications", false }, // none -> notifications |
+ { "platformapp1", false }, // host permissions for platform apps |
+ { "platformapp2", true }, // API permissions for platform apps |
}; |
for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kTests); ++i) { |
@@ -610,9 +612,11 @@ TEST(PermissionsTest, HasLessPrivilegesThan) { |
old_extension->GetActivePermissions()); |
scoped_refptr<const PermissionSet> new_p( |
new_extension->GetActivePermissions()); |
+ Manifest::Type extension_type = old_extension->GetType(); |
EXPECT_EQ(kTests[i].expect_increase, |
- old_p->HasLessPrivilegesThan(new_p.get())) << kTests[i].base_name; |
+ old_p->HasLessPrivilegesThan(new_p.get(), extension_type)) |
+ << kTests[i].base_name; |
} |
} |
@@ -1224,6 +1228,7 @@ TEST(PermissionsTest, |
} |
TEST(PermissionsTest, HasLessHostPrivilegesThan) { |
+ Manifest::Type extension_type = Manifest::TYPE_EXTENSION; |
URLPatternSet elist1; |
URLPatternSet elist2; |
URLPatternSet slist1; |
@@ -1245,31 +1250,31 @@ TEST(PermissionsTest, HasLessHostPrivilegesThan) { |
set1 = new PermissionSet(empty_perms, elist1, slist1); |
set2 = new PermissionSet(empty_perms, elist2, slist2); |
- EXPECT_FALSE(set1->HasLessHostPrivilegesThan(set2.get())); |
- EXPECT_FALSE(set2->HasLessHostPrivilegesThan(set1.get())); |
+ EXPECT_FALSE(set1->HasLessHostPrivilegesThan(set2.get(), extension_type)); |
+ EXPECT_FALSE(set2->HasLessHostPrivilegesThan(set1.get(), extension_type)); |
// Test that paths are ignored. |
elist2.ClearPatterns(); |
elist2.AddPattern( |
URLPattern(URLPattern::SCHEME_HTTP, "http://www.google.com/*")); |
set2 = new PermissionSet(empty_perms, elist2, slist2); |
- EXPECT_FALSE(set1->HasLessHostPrivilegesThan(set2.get())); |
- EXPECT_FALSE(set2->HasLessHostPrivilegesThan(set1.get())); |
+ EXPECT_FALSE(set1->HasLessHostPrivilegesThan(set2.get(), extension_type)); |
+ EXPECT_FALSE(set2->HasLessHostPrivilegesThan(set1.get(), extension_type)); |
// Test that RCDs are ignored. |
elist2.ClearPatterns(); |
elist2.AddPattern( |
URLPattern(URLPattern::SCHEME_HTTP, "http://www.google.com.hk/*")); |
set2 = new PermissionSet(empty_perms, elist2, slist2); |
- EXPECT_FALSE(set1->HasLessHostPrivilegesThan(set2.get())); |
- EXPECT_FALSE(set2->HasLessHostPrivilegesThan(set1.get())); |
+ EXPECT_FALSE(set1->HasLessHostPrivilegesThan(set2.get(), extension_type)); |
+ EXPECT_FALSE(set2->HasLessHostPrivilegesThan(set1.get(), extension_type)); |
// Test that subdomain wildcards are handled properly. |
elist2.ClearPatterns(); |
elist2.AddPattern( |
URLPattern(URLPattern::SCHEME_HTTP, "http://*.google.com.hk/*")); |
set2 = new PermissionSet(empty_perms, elist2, slist2); |
- EXPECT_TRUE(set1->HasLessHostPrivilegesThan(set2.get())); |
+ EXPECT_TRUE(set1->HasLessHostPrivilegesThan(set2.get(), extension_type)); |
// TODO(jstritar): Does not match subdomains properly. http://crbug.com/65337 |
// EXPECT_FALSE(set2->HasLessHostPrivilegesThan(set1.get())); |
@@ -1280,16 +1285,21 @@ TEST(PermissionsTest, HasLessHostPrivilegesThan) { |
elist2.AddPattern( |
URLPattern(URLPattern::SCHEME_HTTP, "http://www.example.org/path")); |
set2 = new PermissionSet(empty_perms, elist2, slist2); |
- EXPECT_TRUE(set1->HasLessHostPrivilegesThan(set2.get())); |
- EXPECT_FALSE(set2->HasLessHostPrivilegesThan(set1.get())); |
+ EXPECT_TRUE(set1->HasLessHostPrivilegesThan(set2.get(), extension_type)); |
+ EXPECT_FALSE(set2->HasLessHostPrivilegesThan(set1.get(), extension_type)); |
// Test that different subdomains count as different hosts. |
elist2.ClearPatterns(); |
elist2.AddPattern( |
URLPattern(URLPattern::SCHEME_HTTP, "http://mail.google.com/*")); |
set2 = new PermissionSet(empty_perms, elist2, slist2); |
- EXPECT_TRUE(set1->HasLessHostPrivilegesThan(set2.get())); |
- EXPECT_TRUE(set2->HasLessHostPrivilegesThan(set1.get())); |
+ EXPECT_TRUE(set1->HasLessHostPrivilegesThan(set2.get(), extension_type)); |
+ EXPECT_TRUE(set2->HasLessHostPrivilegesThan(set1.get(), extension_type)); |
+ |
+ // Test that platform apps do not have host permissions increases. |
+ extension_type = Manifest::TYPE_PLATFORM_APP; |
+ EXPECT_FALSE(set1->HasLessHostPrivilegesThan(set2.get(), extension_type)); |
+ EXPECT_FALSE(set2->HasLessHostPrivilegesThan(set1.get(), extension_type)); |
} |
TEST(PermissionsTest, GetAPIsAsStrings) { |