media_galleries_permission_unittest.cc revision 4e180b6a0b4720a9b8e9e959a882386f690f08ff
1// Copyright (c) 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5// These tests make sure MediaGalleriesPermission values are parsed correctly. 6 7#include "base/values.h" 8#include "chrome/common/extensions/permissions/media_galleries_permission.h" 9#include "chrome/common/extensions/permissions/media_galleries_permission_data.h" 10#include "extensions/common/permissions/api_permission.h" 11#include "extensions/common/permissions/permissions_info.h" 12#include "testing/gtest/include/gtest/gtest.h" 13 14using content::SocketPermissionRequest; 15using extensions::SocketPermissionData; 16 17namespace extensions { 18 19namespace { 20 21TEST(MediaGalleriesPermissionTest, GoodValues) { 22 const APIPermissionInfo* permission_info = 23 PermissionsInfo::GetInstance()->GetByID(APIPermission::kMediaGalleries); 24 25 scoped_ptr<APIPermission> permission( 26 permission_info->CreateAPIPermission()); 27 28 // access_type + all_detected 29 scoped_ptr<base::ListValue> value(new base::ListValue()); 30 value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission); 31 value->AppendString(MediaGalleriesPermission::kReadPermission); 32 EXPECT_TRUE(permission->FromValue(value.get())); 33 34 value.reset(new base::ListValue()); 35 value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission); 36 value->AppendString(MediaGalleriesPermission::kCopyToPermission); 37 EXPECT_TRUE(permission->FromValue(value.get())); 38 39 value.reset(new base::ListValue()); 40 value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission); 41 value->AppendString(MediaGalleriesPermission::kCopyToPermission); 42 value->AppendString(MediaGalleriesPermission::kReadPermission); 43 EXPECT_TRUE(permission->FromValue(value.get())); 44 45 // all_detected 46 value.reset(new base::ListValue()); 47 value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission); 48 EXPECT_TRUE(permission->FromValue(value.get())); 49 50 // access_type 51 value.reset(new base::ListValue()); 52 value->AppendString(MediaGalleriesPermission::kReadPermission); 53 EXPECT_TRUE(permission->FromValue(value.get())); 54 55 value.reset(new base::ListValue()); 56 value->AppendString(MediaGalleriesPermission::kCopyToPermission); 57 EXPECT_TRUE(permission->FromValue(value.get())); 58 59 value.reset(new base::ListValue()); 60 value->AppendString(MediaGalleriesPermission::kCopyToPermission); 61 value->AppendString(MediaGalleriesPermission::kReadPermission); 62 EXPECT_TRUE(permission->FromValue(value.get())); 63 64 // Repeats are ok. 65 value.reset(new base::ListValue()); 66 value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission); 67 value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission); 68 EXPECT_TRUE(permission->FromValue(value.get())); 69 70 value.reset(new base::ListValue()); 71 value->AppendString(MediaGalleriesPermission::kCopyToPermission); 72 value->AppendString(MediaGalleriesPermission::kCopyToPermission); 73 EXPECT_TRUE(permission->FromValue(value.get())); 74 75 value.reset(new base::ListValue()); 76 value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission); 77 value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission); 78 value->AppendString(MediaGalleriesPermission::kCopyToPermission); 79 EXPECT_TRUE(permission->FromValue(value.get())); 80} 81 82TEST(MediaGalleriesPermissionTest, BadValues) { 83 const APIPermissionInfo* permission_info = 84 PermissionsInfo::GetInstance()->GetByID(APIPermission::kMediaGalleries); 85 86 scoped_ptr<APIPermission> permission(permission_info->CreateAPIPermission()); 87 88 // Empty 89 scoped_ptr<base::ListValue> value(new base::ListValue()); 90 EXPECT_FALSE(permission->FromValue(value.get())); 91} 92 93TEST(MediaGalleriesPermissionTest, Equal) { 94 const APIPermissionInfo* permission_info = 95 PermissionsInfo::GetInstance()->GetByID(APIPermission::kMediaGalleries); 96 97 scoped_ptr<APIPermission> permission1( 98 permission_info->CreateAPIPermission()); 99 scoped_ptr<APIPermission> permission2( 100 permission_info->CreateAPIPermission()); 101 102 scoped_ptr<base::ListValue> value(new base::ListValue()); 103 value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission); 104 value->AppendString(MediaGalleriesPermission::kReadPermission); 105 ASSERT_TRUE(permission1->FromValue(value.get())); 106 107 value.reset(new base::ListValue()); 108 value->AppendString(MediaGalleriesPermission::kReadPermission); 109 value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission); 110 ASSERT_TRUE(permission2->FromValue(value.get())); 111 EXPECT_TRUE(permission1->Equal(permission2.get())); 112 113 value.reset(new base::ListValue()); 114 value->AppendString(MediaGalleriesPermission::kReadPermission); 115 value->AppendString(MediaGalleriesPermission::kReadPermission); 116 value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission); 117 ASSERT_TRUE(permission2->FromValue(value.get())); 118 EXPECT_TRUE(permission1->Equal(permission2.get())); 119} 120 121TEST(MediaGalleriesPermissionTest, ToFromValue) { 122 const APIPermissionInfo* permission_info = 123 PermissionsInfo::GetInstance()->GetByID(APIPermission::kMediaGalleries); 124 125 scoped_ptr<APIPermission> permission1( 126 permission_info->CreateAPIPermission()); 127 scoped_ptr<APIPermission> permission2( 128 permission_info->CreateAPIPermission()); 129 130 scoped_ptr<base::ListValue> value(new base::ListValue()); 131 value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission); 132 value->AppendString(MediaGalleriesPermission::kReadPermission); 133 ASSERT_TRUE(permission1->FromValue(value.get())); 134 135 scoped_ptr<base::Value> vtmp(permission1->ToValue()); 136 ASSERT_TRUE(vtmp); 137 ASSERT_TRUE(permission2->FromValue(vtmp.get())); 138 EXPECT_TRUE(permission1->Equal(permission2.get())); 139 140 value.reset(new base::ListValue()); 141 value->AppendString(MediaGalleriesPermission::kCopyToPermission); 142 ASSERT_TRUE(permission1->FromValue(value.get())); 143 144 vtmp = permission1->ToValue(); 145 ASSERT_TRUE(vtmp); 146 ASSERT_TRUE(permission2->FromValue(vtmp.get())); 147 EXPECT_TRUE(permission1->Equal(permission2.get())); 148} 149 150} // namespace 151 152} // namespace extensions 153