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())); |
} |