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