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

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

Issue 221353003: Make unknown extension subpermissions warnings instead of errors. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: comments Created 6 years, 9 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/media_galleries_permission_unittest.cc
diff --git a/chrome/common/extensions/permissions/media_galleries_permission_unittest.cc b/chrome/common/extensions/permissions/media_galleries_permission_unittest.cc
index 85403760f8ca2b6db2c1f2b1336b4a6a0774cd06..71651f9534f02e3a62f0cd76e18aaf9187532580 100644
--- a/chrome/common/extensions/permissions/media_galleries_permission_unittest.cc
+++ b/chrome/common/extensions/permissions/media_galleries_permission_unittest.cc
@@ -18,8 +18,16 @@ namespace extensions {
namespace {
-TEST(MediaGalleriesPermissionTest, GoodValues) {
+void CheckFromValue(APIPermission* permission, base::ListValue* value,
+ bool success_expected) {
std::string error;
+ std::vector<std::string> unhandled;
+ EXPECT_EQ(success_expected, permission->FromValue(value, &error, &unhandled));
+ EXPECT_EQ(success_expected, error.empty());
+ EXPECT_TRUE(unhandled.empty());
+}
+
+TEST(MediaGalleriesPermissionTest, GoodValues) {
const APIPermissionInfo* permission_info =
PermissionsInfo::GetInstance()->GetByID(APIPermission::kMediaGalleries);
@@ -30,55 +38,41 @@ TEST(MediaGalleriesPermissionTest, GoodValues) {
scoped_ptr<base::ListValue> value(new base::ListValue());
value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission);
value->AppendString(MediaGalleriesPermission::kReadPermission);
- EXPECT_TRUE(permission->FromValue(value.get(), &error));
- EXPECT_TRUE(error.empty());
- error.clear();
+ CheckFromValue(permission.get(), value.get(), true);
value.reset(new base::ListValue());
value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission);
value->AppendString(MediaGalleriesPermission::kCopyToPermission);
value->AppendString(MediaGalleriesPermission::kReadPermission);
value->AppendString(MediaGalleriesPermission::kDeletePermission);
- EXPECT_TRUE(permission->FromValue(value.get(), &error));
- EXPECT_TRUE(error.empty());
- error.clear();
+ CheckFromValue(permission.get(), value.get(), true);
// all_detected
value.reset(new base::ListValue());
value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission);
- EXPECT_TRUE(permission->FromValue(value.get(), &error));
- EXPECT_TRUE(error.empty());
- error.clear();
+ CheckFromValue(permission.get(), value.get(), true);
// access_type
value.reset(new base::ListValue());
value->AppendString(MediaGalleriesPermission::kReadPermission);
- EXPECT_TRUE(permission->FromValue(value.get(), &error));
- EXPECT_TRUE(error.empty());
- error.clear();
+ CheckFromValue(permission.get(), value.get(), true);
value.reset(new base::ListValue());
value->AppendString(MediaGalleriesPermission::kDeletePermission);
value->AppendString(MediaGalleriesPermission::kReadPermission);
- EXPECT_TRUE(permission->FromValue(value.get(), &error));
- EXPECT_TRUE(error.empty());
- error.clear();
+ CheckFromValue(permission.get(), value.get(), true);
value.reset(new base::ListValue());
value->AppendString(MediaGalleriesPermission::kCopyToPermission);
value->AppendString(MediaGalleriesPermission::kDeletePermission);
value->AppendString(MediaGalleriesPermission::kReadPermission);
- EXPECT_TRUE(permission->FromValue(value.get(), &error));
- EXPECT_TRUE(error.empty());
- error.clear();
+ CheckFromValue(permission.get(), value.get(), true);
// Repeats do not make a difference.
value.reset(new base::ListValue());
value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission);
value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission);
- EXPECT_TRUE(permission->FromValue(value.get(), &error));
- EXPECT_TRUE(error.empty());
- error.clear();
+ CheckFromValue(permission.get(), value.get(), true);
value.reset(new base::ListValue());
value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission);
@@ -87,13 +81,10 @@ TEST(MediaGalleriesPermissionTest, GoodValues) {
value->AppendString(MediaGalleriesPermission::kDeletePermission);
value->AppendString(MediaGalleriesPermission::kDeletePermission);
value->AppendString(MediaGalleriesPermission::kDeletePermission);
- EXPECT_TRUE(permission->FromValue(value.get(), &error));
- EXPECT_TRUE(error.empty());
- error.clear();
+ CheckFromValue(permission.get(), value.get(), true);
}
TEST(MediaGalleriesPermissionTest, BadValues) {
- std::string error;
const APIPermissionInfo* permission_info =
PermissionsInfo::GetInstance()->GetByID(APIPermission::kMediaGalleries);
@@ -101,47 +92,35 @@ TEST(MediaGalleriesPermissionTest, BadValues) {
// Empty
scoped_ptr<base::ListValue> value(new base::ListValue());
- EXPECT_FALSE(permission->FromValue(value.get(), &error));
- EXPECT_FALSE(error.empty());
- error.clear();
+ CheckFromValue(permission.get(), value.get(), false);
// copyTo and delete without read
value.reset(new base::ListValue());
value->AppendString(MediaGalleriesPermission::kCopyToPermission);
- EXPECT_FALSE(permission->FromValue(value.get(), &error));
- EXPECT_FALSE(error.empty());
- error.clear();
+ CheckFromValue(permission.get(), value.get(), false);
value.reset(new base::ListValue());
value->AppendString(MediaGalleriesPermission::kDeletePermission);
- EXPECT_FALSE(permission->FromValue(value.get(), &error));
- EXPECT_FALSE(error.empty());
- error.clear();
+ CheckFromValue(permission.get(), value.get(), false);
value.reset(new base::ListValue());
value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission);
value->AppendString(MediaGalleriesPermission::kCopyToPermission);
value->AppendString(MediaGalleriesPermission::kDeletePermission);
- EXPECT_FALSE(permission->FromValue(value.get(), &error));
- EXPECT_FALSE(error.empty());
- error.clear();
+ CheckFromValue(permission.get(), value.get(), false);
// copyTo without delete
value.reset(new base::ListValue());
value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission);
value->AppendString(MediaGalleriesPermission::kCopyToPermission);
value->AppendString(MediaGalleriesPermission::kReadPermission);
- EXPECT_FALSE(permission->FromValue(value.get(), &error));
- EXPECT_FALSE(error.empty());
- error.clear();
+ CheckFromValue(permission.get(), value.get(), false);
// Repeats do not make a difference.
value.reset(new base::ListValue());
value->AppendString(MediaGalleriesPermission::kCopyToPermission);
value->AppendString(MediaGalleriesPermission::kCopyToPermission);
- EXPECT_FALSE(permission->FromValue(value.get(), &error));
- EXPECT_FALSE(error.empty());
- error.clear();
+ CheckFromValue(permission.get(), value.get(), false);
value.reset(new base::ListValue());
value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission);
@@ -149,9 +128,36 @@ TEST(MediaGalleriesPermissionTest, BadValues) {
value->AppendString(MediaGalleriesPermission::kCopyToPermission);
value->AppendString(MediaGalleriesPermission::kDeletePermission);
value->AppendString(MediaGalleriesPermission::kDeletePermission);
- EXPECT_FALSE(permission->FromValue(value.get(), &error));
- EXPECT_FALSE(error.empty());
+ CheckFromValue(permission.get(), value.get(), false);
+}
+
+TEST(MediaGalleriesPermissionTest, UnknownValues) {
+ std::string error;
+ std::vector<std::string> unhandled;
+ const APIPermissionInfo* permission_info =
+ PermissionsInfo::GetInstance()->GetByID(APIPermission::kMediaGalleries);
+
+ scoped_ptr<APIPermission> permission(permission_info->CreateAPIPermission());
+
+ // A good one and an unknown one.
+ scoped_ptr<base::ListValue> value(new base::ListValue());
+ value->AppendString(MediaGalleriesPermission::kReadPermission);
+ value->AppendString("Unknown");
+ EXPECT_TRUE(permission->FromValue(value.get(), &error, &unhandled));
+ EXPECT_TRUE(error.empty());
+ EXPECT_EQ(1U, unhandled.size());
+ error.clear();
+ unhandled.clear();
+
+ // Multiple unknown permissions.
+ value.reset(new base::ListValue());
+ value->AppendString("Unknown1");
+ value->AppendString("Unknown2");
+ EXPECT_TRUE(permission->FromValue(value.get(), &error, &unhandled));
+ EXPECT_TRUE(error.empty());
+ EXPECT_EQ(2U, unhandled.size());
error.clear();
+ unhandled.clear();
}
TEST(MediaGalleriesPermissionTest, Equal) {
@@ -166,43 +172,43 @@ TEST(MediaGalleriesPermissionTest, Equal) {
scoped_ptr<base::ListValue> value(new base::ListValue());
value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission);
value->AppendString(MediaGalleriesPermission::kReadPermission);
- ASSERT_TRUE(permission1->FromValue(value.get(), NULL));
+ ASSERT_TRUE(permission1->FromValue(value.get(), NULL, NULL));
value.reset(new base::ListValue());
value->AppendString(MediaGalleriesPermission::kReadPermission);
value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission);
- ASSERT_TRUE(permission2->FromValue(value.get(), NULL));
+ ASSERT_TRUE(permission2->FromValue(value.get(), NULL, NULL));
EXPECT_TRUE(permission1->Equal(permission2.get()));
value.reset(new base::ListValue());
value->AppendString(MediaGalleriesPermission::kReadPermission);
value->AppendString(MediaGalleriesPermission::kReadPermission);
value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission);
- ASSERT_TRUE(permission2->FromValue(value.get(), NULL));
+ ASSERT_TRUE(permission2->FromValue(value.get(), NULL, NULL));
EXPECT_TRUE(permission1->Equal(permission2.get()));
value.reset(new base::ListValue());
value->AppendString(MediaGalleriesPermission::kReadPermission);
value->AppendString(MediaGalleriesPermission::kDeletePermission);
- ASSERT_TRUE(permission1->FromValue(value.get(), NULL));
+ ASSERT_TRUE(permission1->FromValue(value.get(), NULL, NULL));
value.reset(new base::ListValue());
value->AppendString(MediaGalleriesPermission::kDeletePermission);
value->AppendString(MediaGalleriesPermission::kReadPermission);
- ASSERT_TRUE(permission2->FromValue(value.get(), NULL));
+ ASSERT_TRUE(permission2->FromValue(value.get(), NULL, NULL));
EXPECT_TRUE(permission1->Equal(permission2.get()));
value.reset(new base::ListValue());
value->AppendString(MediaGalleriesPermission::kReadPermission);
value->AppendString(MediaGalleriesPermission::kCopyToPermission);
value->AppendString(MediaGalleriesPermission::kDeletePermission);
- ASSERT_TRUE(permission1->FromValue(value.get(), NULL));
+ ASSERT_TRUE(permission1->FromValue(value.get(), NULL, NULL));
value.reset(new base::ListValue());
value->AppendString(MediaGalleriesPermission::kDeletePermission);
value->AppendString(MediaGalleriesPermission::kCopyToPermission);
value->AppendString(MediaGalleriesPermission::kReadPermission);
- ASSERT_TRUE(permission2->FromValue(value.get(), NULL));
+ ASSERT_TRUE(permission2->FromValue(value.get(), NULL, NULL));
EXPECT_TRUE(permission1->Equal(permission2.get()));
}
@@ -218,14 +224,14 @@ TEST(MediaGalleriesPermissionTest, NotEqual) {
scoped_ptr<base::ListValue> value(new base::ListValue());
value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission);
value->AppendString(MediaGalleriesPermission::kReadPermission);
- ASSERT_TRUE(permission1->FromValue(value.get(), NULL));
+ ASSERT_TRUE(permission1->FromValue(value.get(), NULL, NULL));
value.reset(new base::ListValue());
value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission);
value->AppendString(MediaGalleriesPermission::kReadPermission);
value->AppendString(MediaGalleriesPermission::kDeletePermission);
value->AppendString(MediaGalleriesPermission::kCopyToPermission);
- ASSERT_TRUE(permission2->FromValue(value.get(), NULL));
+ ASSERT_TRUE(permission2->FromValue(value.get(), NULL, NULL));
EXPECT_FALSE(permission1->Equal(permission2.get()));
}
@@ -241,32 +247,32 @@ TEST(MediaGalleriesPermissionTest, ToFromValue) {
scoped_ptr<base::ListValue> value(new base::ListValue());
value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission);
value->AppendString(MediaGalleriesPermission::kReadPermission);
- ASSERT_TRUE(permission1->FromValue(value.get(), NULL));
+ ASSERT_TRUE(permission1->FromValue(value.get(), NULL, NULL));
scoped_ptr<base::Value> vtmp(permission1->ToValue());
ASSERT_TRUE(vtmp);
- ASSERT_TRUE(permission2->FromValue(vtmp.get(), NULL));
+ ASSERT_TRUE(permission2->FromValue(vtmp.get(), NULL, NULL));
EXPECT_TRUE(permission1->Equal(permission2.get()));
value.reset(new base::ListValue());
value->AppendString(MediaGalleriesPermission::kReadPermission);
value->AppendString(MediaGalleriesPermission::kDeletePermission);
value->AppendString(MediaGalleriesPermission::kCopyToPermission);
- ASSERT_TRUE(permission1->FromValue(value.get(), NULL));
+ ASSERT_TRUE(permission1->FromValue(value.get(), NULL, NULL));
vtmp = permission1->ToValue();
ASSERT_TRUE(vtmp);
- ASSERT_TRUE(permission2->FromValue(vtmp.get(), NULL));
+ ASSERT_TRUE(permission2->FromValue(vtmp.get(), NULL, NULL));
EXPECT_TRUE(permission1->Equal(permission2.get()));
value.reset(new base::ListValue());
value->AppendString(MediaGalleriesPermission::kReadPermission);
value->AppendString(MediaGalleriesPermission::kDeletePermission);
- ASSERT_TRUE(permission1->FromValue(value.get(), NULL));
+ ASSERT_TRUE(permission1->FromValue(value.get(), NULL, NULL));
vtmp = permission1->ToValue();
ASSERT_TRUE(vtmp);
- ASSERT_TRUE(permission2->FromValue(vtmp.get(), NULL));
+ ASSERT_TRUE(permission2->FromValue(vtmp.get(), NULL, NULL));
EXPECT_TRUE(permission1->Equal(permission2.get()));
}
« no previous file with comments | « chrome/browser/extensions/extension_prefs_unittest.cc ('k') | chrome/common/extensions/permissions/permission_set_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698