Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(141)

Side by Side Diff: chrome/browser/extensions/api/permissions/permissions_api_helpers_unittest.cc

Issue 2030013003: Remove ListValue::Append(new {Fundamental,String}Value(...)) pattern in //chrome (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/extensions/api/permissions/permissions_api_helpers.h" 5 #include "chrome/browser/extensions/api/permissions/permissions_api_helpers.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <memory> 9 #include <memory>
10 10
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 UnpackPermissionSet(permissions_object, true, &error); 78 UnpackPermissionSet(permissions_object, true, &error);
79 EXPECT_TRUE(error.empty()); 79 EXPECT_TRUE(error.empty());
80 80
81 EXPECT_EQ(permission_set, *from_value); 81 EXPECT_EQ(permission_set, *from_value);
82 } 82 }
83 83
84 // Tests various error conditions and edge cases when unpacking values 84 // Tests various error conditions and edge cases when unpacking values
85 // into PermissionSets. 85 // into PermissionSets.
86 TEST(ExtensionPermissionsAPIHelpers, Unpack) { 86 TEST(ExtensionPermissionsAPIHelpers, Unpack) {
87 std::unique_ptr<base::ListValue> apis(new base::ListValue()); 87 std::unique_ptr<base::ListValue> apis(new base::ListValue());
88 apis->Append(new base::StringValue("tabs")); 88 apis->AppendString("tabs");
89 std::unique_ptr<base::ListValue> origins(new base::ListValue()); 89 std::unique_ptr<base::ListValue> origins(new base::ListValue());
90 origins->Append(new base::StringValue("http://a.com/*")); 90 origins->AppendString("http://a.com/*");
91 91
92 std::unique_ptr<base::DictionaryValue> value(new base::DictionaryValue()); 92 std::unique_ptr<base::DictionaryValue> value(new base::DictionaryValue());
93 std::unique_ptr<const PermissionSet> permissions; 93 std::unique_ptr<const PermissionSet> permissions;
94 std::string error; 94 std::string error;
95 95
96 // Origins shouldn't have to be present. 96 // Origins shouldn't have to be present.
97 { 97 {
98 Permissions permissions_object; 98 Permissions permissions_object;
99 value->Set("permissions", apis->DeepCopy()); 99 value->Set("permissions", apis->DeepCopy());
100 EXPECT_TRUE(Permissions::Populate(*value, &permissions_object)); 100 EXPECT_TRUE(Permissions::Populate(*value, &permissions_object));
(...skipping 13 matching lines...) Expand all
114 EXPECT_TRUE(permissions.get()); 114 EXPECT_TRUE(permissions.get());
115 EXPECT_TRUE(error.empty()); 115 EXPECT_TRUE(error.empty());
116 EXPECT_TRUE(permissions->HasExplicitAccessToOrigin(GURL("http://a.com/"))); 116 EXPECT_TRUE(permissions->HasExplicitAccessToOrigin(GURL("http://a.com/")));
117 } 117 }
118 118
119 // Throw errors for non-string API permissions. 119 // Throw errors for non-string API permissions.
120 { 120 {
121 Permissions permissions_object; 121 Permissions permissions_object;
122 value->Clear(); 122 value->Clear();
123 std::unique_ptr<base::ListValue> invalid_apis(apis->DeepCopy()); 123 std::unique_ptr<base::ListValue> invalid_apis(apis->DeepCopy());
124 invalid_apis->Append(new base::FundamentalValue(3)); 124 invalid_apis->AppendInteger(3);
125 value->Set("permissions", invalid_apis->DeepCopy()); 125 value->Set("permissions", invalid_apis->DeepCopy());
126 EXPECT_FALSE(Permissions::Populate(*value, &permissions_object)); 126 EXPECT_FALSE(Permissions::Populate(*value, &permissions_object));
127 } 127 }
128 128
129 // Throw errors for non-string origins. 129 // Throw errors for non-string origins.
130 { 130 {
131 Permissions permissions_object; 131 Permissions permissions_object;
132 value->Clear(); 132 value->Clear();
133 std::unique_ptr<base::ListValue> invalid_origins(origins->DeepCopy()); 133 std::unique_ptr<base::ListValue> invalid_origins(origins->DeepCopy());
134 invalid_origins->Append(new base::FundamentalValue(3)); 134 invalid_origins->AppendInteger(3);
135 value->Set("origins", invalid_origins->DeepCopy()); 135 value->Set("origins", invalid_origins->DeepCopy());
136 EXPECT_FALSE(Permissions::Populate(*value, &permissions_object)); 136 EXPECT_FALSE(Permissions::Populate(*value, &permissions_object));
137 } 137 }
138 138
139 // Throw errors when "origins" or "permissions" are not list values. 139 // Throw errors when "origins" or "permissions" are not list values.
140 { 140 {
141 Permissions permissions_object; 141 Permissions permissions_object;
142 value->Clear(); 142 value->Clear();
143 value->Set("origins", new base::FundamentalValue(2)); 143 value->Set("origins", new base::FundamentalValue(2));
144 EXPECT_FALSE(Permissions::Populate(*value, &permissions_object)); 144 EXPECT_FALSE(Permissions::Populate(*value, &permissions_object));
(...skipping 17 matching lines...) Expand all
162 EXPECT_TRUE(permissions.get()); 162 EXPECT_TRUE(permissions.get());
163 EXPECT_TRUE(error.empty()); 163 EXPECT_TRUE(error.empty());
164 EXPECT_TRUE(permissions->HasExplicitAccessToOrigin(GURL("http://a.com/"))); 164 EXPECT_TRUE(permissions->HasExplicitAccessToOrigin(GURL("http://a.com/")));
165 } 165 }
166 166
167 // Unknown permissions should throw an error. 167 // Unknown permissions should throw an error.
168 { 168 {
169 Permissions permissions_object; 169 Permissions permissions_object;
170 value->Clear(); 170 value->Clear();
171 std::unique_ptr<base::ListValue> invalid_apis(apis->DeepCopy()); 171 std::unique_ptr<base::ListValue> invalid_apis(apis->DeepCopy());
172 invalid_apis->Append(new base::StringValue("unknown_permission")); 172 invalid_apis->AppendString("unknown_permission");
173 value->Set("permissions", invalid_apis->DeepCopy()); 173 value->Set("permissions", invalid_apis->DeepCopy());
174 EXPECT_TRUE(Permissions::Populate(*value, &permissions_object)); 174 EXPECT_TRUE(Permissions::Populate(*value, &permissions_object));
175 permissions = UnpackPermissionSet(permissions_object, true, &error); 175 permissions = UnpackPermissionSet(permissions_object, true, &error);
176 EXPECT_FALSE(permissions.get()); 176 EXPECT_FALSE(permissions.get());
177 EXPECT_FALSE(error.empty()); 177 EXPECT_FALSE(error.empty());
178 EXPECT_EQ(error, "'unknown_permission' is not a recognized permission."); 178 EXPECT_EQ(error, "'unknown_permission' is not a recognized permission.");
179 } 179 }
180 } 180 }
181 181
182 } // namespace extensions 182 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698