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

Unified Diff: chrome/common/extensions/permissions/permission_set_unittest.cc

Issue 18399007: Don't count host permission changes for v2 apps as a permission increase. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 5 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 side-by-side diff with in-line comments
Download patch
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) {

Powered by Google App Engine
This is Rietveld 408576698