media_galleries_permission_unittest.cc revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
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 "chrome/common/extensions/permissions/permissions_info.h" 11#include "testing/gtest/include/gtest/gtest.h" 12 13using content::SocketPermissionRequest; 14using extensions::SocketPermissionData; 15 16namespace extensions { 17 18namespace { 19 20class MediaGalleriesPermissionTest : public testing::Test { 21}; 22 23TEST(MediaGalleriesPermissionTest, GoodValues) { 24 const APIPermissionInfo* permission_info = 25 PermissionsInfo::GetInstance()->GetByID(APIPermission::kMediaGalleries); 26 27 scoped_ptr<APIPermission> permission( 28 permission_info->CreateAPIPermission()); 29 30 // access_type + all_detected 31 scoped_ptr<base::ListValue> value(new base::ListValue()); 32 value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission); 33 value->AppendString(MediaGalleriesPermission::kReadPermission); 34 EXPECT_TRUE(permission->FromValue(value.get())); 35 36 // all_detected 37 value.reset(new base::ListValue()); 38 value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission); 39 EXPECT_TRUE(permission->FromValue(value.get())); 40 41 // access_type 42 value.reset(new base::ListValue()); 43 value->AppendString(MediaGalleriesPermission::kReadPermission); 44 EXPECT_TRUE(permission->FromValue(value.get())); 45 46 // Repeats are ok. 47 value.reset(new base::ListValue()); 48 value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission); 49 value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission); 50 EXPECT_TRUE(permission->FromValue(value.get())); 51} 52 53TEST(MediaGalleriesPermissionTest, BadValues) { 54 const APIPermissionInfo* permission_info = 55 PermissionsInfo::GetInstance()->GetByID(APIPermission::kMediaGalleries); 56 57 scoped_ptr<APIPermission> permission( 58 permission_info->CreateAPIPermission()); 59 60 // Empty 61 scoped_ptr<base::ListValue> value(new base::ListValue()); 62 EXPECT_FALSE(permission->FromValue(value.get())); 63} 64 65TEST(MediaGalleriesPermissionTest, Equal) { 66 const APIPermissionInfo* permission_info = 67 PermissionsInfo::GetInstance()->GetByID(APIPermission::kMediaGalleries); 68 69 scoped_ptr<APIPermission> permission1( 70 permission_info->CreateAPIPermission()); 71 scoped_ptr<APIPermission> permission2( 72 permission_info->CreateAPIPermission()); 73 74 scoped_ptr<base::ListValue> value(new base::ListValue()); 75 value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission); 76 value->AppendString(MediaGalleriesPermission::kReadPermission); 77 ASSERT_TRUE(permission1->FromValue(value.get())); 78 79 value.reset(new base::ListValue()); 80 value->AppendString(MediaGalleriesPermission::kReadPermission); 81 value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission); 82 ASSERT_TRUE(permission2->FromValue(value.get())); 83 EXPECT_TRUE(permission1->Equal(permission2.get())); 84 85 value.reset(new base::ListValue()); 86 value->AppendString(MediaGalleriesPermission::kReadPermission); 87 value->AppendString(MediaGalleriesPermission::kReadPermission); 88 value->AppendString(MediaGalleriesPermission::kAllAutoDetectedPermission); 89 ASSERT_TRUE(permission2->FromValue(value.get())); 90 EXPECT_TRUE(permission1->Equal(permission2.get())); 91} 92 93TEST(MediaGalleriesPermissionTest, ToFromValue) { 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 scoped_ptr<base::Value> vtmp(permission1->ToValue()); 108 ASSERT_TRUE(vtmp); 109 ASSERT_TRUE(permission2->FromValue(vtmp.get())); 110 EXPECT_TRUE(permission1->Equal(permission2.get())); 111} 112 113} // namespace 114 115} // namespace extensions 116