media_galleries_permission_unittest.cc revision f2477e01787aa58f445919b809d89e252beef54f
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 value->AppendString(MediaGalleriesPermission::kReadPermission); 38 value->AppendString(MediaGalleriesPermission::kDeletePermission); 39 EXPECT_TRUE(permission->FromValue(value.get())); 40 41 // all_detected 42 value.reset(new base::ListValue()); 43 value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission); 44 EXPECT_TRUE(permission->FromValue(value.get())); 45 46 // access_type 47 value.reset(new base::ListValue()); 48 value->AppendString(MediaGalleriesPermission::kReadPermission); 49 EXPECT_TRUE(permission->FromValue(value.get())); 50 51 value.reset(new base::ListValue()); 52 value->AppendString(MediaGalleriesPermission::kDeletePermission); 53 value->AppendString(MediaGalleriesPermission::kReadPermission); 54 EXPECT_TRUE(permission->FromValue(value.get())); 55 56 value.reset(new base::ListValue()); 57 value->AppendString(MediaGalleriesPermission::kCopyToPermission); 58 value->AppendString(MediaGalleriesPermission::kDeletePermission); 59 value->AppendString(MediaGalleriesPermission::kReadPermission); 60 EXPECT_TRUE(permission->FromValue(value.get())); 61 62 // Repeats do not make a difference. 63 value.reset(new base::ListValue()); 64 value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission); 65 value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission); 66 EXPECT_TRUE(permission->FromValue(value.get())); 67 68 value.reset(new base::ListValue()); 69 value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission); 70 value->AppendString(MediaGalleriesPermission::kReadPermission); 71 value->AppendString(MediaGalleriesPermission::kReadPermission); 72 value->AppendString(MediaGalleriesPermission::kDeletePermission); 73 value->AppendString(MediaGalleriesPermission::kDeletePermission); 74 value->AppendString(MediaGalleriesPermission::kDeletePermission); 75 EXPECT_TRUE(permission->FromValue(value.get())); 76} 77 78TEST(MediaGalleriesPermissionTest, BadValues) { 79 const APIPermissionInfo* permission_info = 80 PermissionsInfo::GetInstance()->GetByID(APIPermission::kMediaGalleries); 81 82 scoped_ptr<APIPermission> permission(permission_info->CreateAPIPermission()); 83 84 // Empty 85 scoped_ptr<base::ListValue> value(new base::ListValue()); 86 EXPECT_FALSE(permission->FromValue(value.get())); 87 88 // copyTo and delete without read 89 value.reset(new base::ListValue()); 90 value->AppendString(MediaGalleriesPermission::kCopyToPermission); 91 EXPECT_FALSE(permission->FromValue(value.get())); 92 93 value.reset(new base::ListValue()); 94 value->AppendString(MediaGalleriesPermission::kDeletePermission); 95 EXPECT_FALSE(permission->FromValue(value.get())); 96 97 value.reset(new base::ListValue()); 98 value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission); 99 value->AppendString(MediaGalleriesPermission::kCopyToPermission); 100 value->AppendString(MediaGalleriesPermission::kDeletePermission); 101 EXPECT_FALSE(permission->FromValue(value.get())); 102 103 // copyTo without delete 104 value.reset(new base::ListValue()); 105 value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission); 106 value->AppendString(MediaGalleriesPermission::kCopyToPermission); 107 value->AppendString(MediaGalleriesPermission::kReadPermission); 108 EXPECT_FALSE(permission->FromValue(value.get())); 109 110 // Repeats do not make a difference. 111 value.reset(new base::ListValue()); 112 value->AppendString(MediaGalleriesPermission::kCopyToPermission); 113 value->AppendString(MediaGalleriesPermission::kCopyToPermission); 114 EXPECT_FALSE(permission->FromValue(value.get())); 115 116 value.reset(new base::ListValue()); 117 value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission); 118 value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission); 119 value->AppendString(MediaGalleriesPermission::kCopyToPermission); 120 value->AppendString(MediaGalleriesPermission::kDeletePermission); 121 value->AppendString(MediaGalleriesPermission::kDeletePermission); 122 EXPECT_FALSE(permission->FromValue(value.get())); 123} 124 125TEST(MediaGalleriesPermissionTest, Equal) { 126 const APIPermissionInfo* permission_info = 127 PermissionsInfo::GetInstance()->GetByID(APIPermission::kMediaGalleries); 128 129 scoped_ptr<APIPermission> permission1( 130 permission_info->CreateAPIPermission()); 131 scoped_ptr<APIPermission> permission2( 132 permission_info->CreateAPIPermission()); 133 134 scoped_ptr<base::ListValue> value(new base::ListValue()); 135 value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission); 136 value->AppendString(MediaGalleriesPermission::kReadPermission); 137 ASSERT_TRUE(permission1->FromValue(value.get())); 138 139 value.reset(new base::ListValue()); 140 value->AppendString(MediaGalleriesPermission::kReadPermission); 141 value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission); 142 ASSERT_TRUE(permission2->FromValue(value.get())); 143 EXPECT_TRUE(permission1->Equal(permission2.get())); 144 145 value.reset(new base::ListValue()); 146 value->AppendString(MediaGalleriesPermission::kReadPermission); 147 value->AppendString(MediaGalleriesPermission::kReadPermission); 148 value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission); 149 ASSERT_TRUE(permission2->FromValue(value.get())); 150 EXPECT_TRUE(permission1->Equal(permission2.get())); 151 152 value.reset(new base::ListValue()); 153 value->AppendString(MediaGalleriesPermission::kReadPermission); 154 value->AppendString(MediaGalleriesPermission::kDeletePermission); 155 ASSERT_TRUE(permission1->FromValue(value.get())); 156 157 value.reset(new base::ListValue()); 158 value->AppendString(MediaGalleriesPermission::kDeletePermission); 159 value->AppendString(MediaGalleriesPermission::kReadPermission); 160 ASSERT_TRUE(permission2->FromValue(value.get())); 161 EXPECT_TRUE(permission1->Equal(permission2.get())); 162 163 value.reset(new base::ListValue()); 164 value->AppendString(MediaGalleriesPermission::kReadPermission); 165 value->AppendString(MediaGalleriesPermission::kCopyToPermission); 166 value->AppendString(MediaGalleriesPermission::kDeletePermission); 167 ASSERT_TRUE(permission1->FromValue(value.get())); 168 169 value.reset(new base::ListValue()); 170 value->AppendString(MediaGalleriesPermission::kDeletePermission); 171 value->AppendString(MediaGalleriesPermission::kCopyToPermission); 172 value->AppendString(MediaGalleriesPermission::kReadPermission); 173 ASSERT_TRUE(permission2->FromValue(value.get())); 174 EXPECT_TRUE(permission1->Equal(permission2.get())); 175} 176 177TEST(MediaGalleriesPermissionTest, NotEqual) { 178 const APIPermissionInfo* permission_info = 179 PermissionsInfo::GetInstance()->GetByID(APIPermission::kMediaGalleries); 180 181 scoped_ptr<APIPermission> permission1( 182 permission_info->CreateAPIPermission()); 183 scoped_ptr<APIPermission> permission2( 184 permission_info->CreateAPIPermission()); 185 186 scoped_ptr<base::ListValue> value(new base::ListValue()); 187 value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission); 188 value->AppendString(MediaGalleriesPermission::kReadPermission); 189 ASSERT_TRUE(permission1->FromValue(value.get())); 190 191 value.reset(new base::ListValue()); 192 value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission); 193 value->AppendString(MediaGalleriesPermission::kReadPermission); 194 value->AppendString(MediaGalleriesPermission::kDeletePermission); 195 value->AppendString(MediaGalleriesPermission::kCopyToPermission); 196 ASSERT_TRUE(permission2->FromValue(value.get())); 197 EXPECT_FALSE(permission1->Equal(permission2.get())); 198} 199 200TEST(MediaGalleriesPermissionTest, ToFromValue) { 201 const APIPermissionInfo* permission_info = 202 PermissionsInfo::GetInstance()->GetByID(APIPermission::kMediaGalleries); 203 204 scoped_ptr<APIPermission> permission1( 205 permission_info->CreateAPIPermission()); 206 scoped_ptr<APIPermission> permission2( 207 permission_info->CreateAPIPermission()); 208 209 scoped_ptr<base::ListValue> value(new base::ListValue()); 210 value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission); 211 value->AppendString(MediaGalleriesPermission::kReadPermission); 212 ASSERT_TRUE(permission1->FromValue(value.get())); 213 214 scoped_ptr<base::Value> vtmp(permission1->ToValue()); 215 ASSERT_TRUE(vtmp); 216 ASSERT_TRUE(permission2->FromValue(vtmp.get())); 217 EXPECT_TRUE(permission1->Equal(permission2.get())); 218 219 value.reset(new base::ListValue()); 220 value->AppendString(MediaGalleriesPermission::kReadPermission); 221 value->AppendString(MediaGalleriesPermission::kDeletePermission); 222 value->AppendString(MediaGalleriesPermission::kCopyToPermission); 223 ASSERT_TRUE(permission1->FromValue(value.get())); 224 225 vtmp = permission1->ToValue(); 226 ASSERT_TRUE(vtmp); 227 ASSERT_TRUE(permission2->FromValue(vtmp.get())); 228 EXPECT_TRUE(permission1->Equal(permission2.get())); 229 230 value.reset(new base::ListValue()); 231 value->AppendString(MediaGalleriesPermission::kReadPermission); 232 value->AppendString(MediaGalleriesPermission::kDeletePermission); 233 ASSERT_TRUE(permission1->FromValue(value.get())); 234 235 vtmp = permission1->ToValue(); 236 ASSERT_TRUE(vtmp); 237 ASSERT_TRUE(permission2->FromValue(vtmp.get())); 238 EXPECT_TRUE(permission1->Equal(permission2.get())); 239} 240 241} // namespace 242 243} // namespace extensions 244