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

Side by Side Diff: extensions/common/permissions/api_permission_set_unittest.cc

Issue 598173003: Run clang-modernize -use-nullptr over src/extensions/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "base/pickle.h" 5 #include "base/pickle.h"
6 #include "base/values.h" 6 #include "base/values.h"
7 #include "extensions/common/extension_messages.h" 7 #include "extensions/common/extension_messages.h"
8 #include "extensions/common/permissions/api_permission_set.h" 8 #include "extensions/common/permissions/api_permission_set.h"
9 #include "extensions/common/permissions/permissions_info.h" 9 #include "extensions/common/permissions/permissions_info.h"
10 #include "ipc/ipc_message.h" 10 #include "ipc/ipc_message.h"
(...skipping 15 matching lines...) Expand all
26 EXPECT_EQ(apis.size(), 5u); 26 EXPECT_EQ(apis.size(), 5u);
27 27
28 EXPECT_EQ(apis.erase(APIPermission::kAudioCapture), 1u); 28 EXPECT_EQ(apis.erase(APIPermission::kAudioCapture), 1u);
29 EXPECT_EQ(apis.size(), 4u); 29 EXPECT_EQ(apis.size(), 4u);
30 30
31 EXPECT_EQ(apis.erase(APIPermission::kAudioCapture), 0u); 31 EXPECT_EQ(apis.erase(APIPermission::kAudioCapture), 0u);
32 EXPECT_EQ(apis.size(), 4u); 32 EXPECT_EQ(apis.size(), 4u);
33 } 33 }
34 34
35 TEST(APIPermissionSetTest, CreateUnion) { 35 TEST(APIPermissionSetTest, CreateUnion) {
36 APIPermission* permission = NULL; 36 APIPermission* permission = nullptr;
37 37
38 APIPermissionSet apis1; 38 APIPermissionSet apis1;
39 APIPermissionSet apis2; 39 APIPermissionSet apis2;
40 APIPermissionSet expected_apis; 40 APIPermissionSet expected_apis;
41 APIPermissionSet result; 41 APIPermissionSet result;
42 42
43 const APIPermissionInfo* permission_info = 43 const APIPermissionInfo* permission_info =
44 PermissionsInfo::GetInstance()->GetByID(APIPermission::kSocket); 44 PermissionsInfo::GetInstance()->GetByID(APIPermission::kSocket);
45 permission = permission_info->CreateAPIPermission(); 45 permission = permission_info->CreateAPIPermission();
46 { 46 {
47 scoped_ptr<base::ListValue> value(new base::ListValue()); 47 scoped_ptr<base::ListValue> value(new base::ListValue());
48 value->Append(new base::StringValue("tcp-connect:*.example.com:80")); 48 value->Append(new base::StringValue("tcp-connect:*.example.com:80"));
49 value->Append(new base::StringValue("udp-bind::8080")); 49 value->Append(new base::StringValue("udp-bind::8080"));
50 value->Append(new base::StringValue("udp-send-to::8888")); 50 value->Append(new base::StringValue("udp-send-to::8888"));
51 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); 51 ASSERT_TRUE(permission->FromValue(value.get(), nullptr, NULL));
52 } 52 }
53 53
54 // Union with an empty set. 54 // Union with an empty set.
55 apis1.insert(APIPermission::kAudioCapture); 55 apis1.insert(APIPermission::kAudioCapture);
56 apis1.insert(APIPermission::kDns); 56 apis1.insert(APIPermission::kDns);
57 apis1.insert(permission->Clone()); 57 apis1.insert(permission->Clone());
58 expected_apis.insert(APIPermission::kAudioCapture); 58 expected_apis.insert(APIPermission::kAudioCapture);
59 expected_apis.insert(APIPermission::kDns); 59 expected_apis.insert(APIPermission::kDns);
60 expected_apis.insert(permission); 60 expected_apis.insert(permission);
61 61
(...skipping 13 matching lines...) Expand all
75 apis2.insert(APIPermission::kAudioCapture); 75 apis2.insert(APIPermission::kAudioCapture);
76 apis2.insert(APIPermission::kHid); 76 apis2.insert(APIPermission::kHid);
77 apis2.insert(APIPermission::kPower); 77 apis2.insert(APIPermission::kPower);
78 apis2.insert(APIPermission::kSerial); 78 apis2.insert(APIPermission::kSerial);
79 79
80 permission = permission_info->CreateAPIPermission(); 80 permission = permission_info->CreateAPIPermission();
81 { 81 {
82 scoped_ptr<base::ListValue> value(new base::ListValue()); 82 scoped_ptr<base::ListValue> value(new base::ListValue());
83 value->Append(new base::StringValue("tcp-connect:*.example.com:80")); 83 value->Append(new base::StringValue("tcp-connect:*.example.com:80"));
84 value->Append(new base::StringValue("udp-send-to::8899")); 84 value->Append(new base::StringValue("udp-send-to::8899"));
85 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); 85 ASSERT_TRUE(permission->FromValue(value.get(), nullptr, NULL));
86 } 86 }
87 apis2.insert(permission); 87 apis2.insert(permission);
88 88
89 expected_apis.insert(APIPermission::kAudioCapture); 89 expected_apis.insert(APIPermission::kAudioCapture);
90 expected_apis.insert(APIPermission::kHid); 90 expected_apis.insert(APIPermission::kHid);
91 expected_apis.insert(APIPermission::kPower); 91 expected_apis.insert(APIPermission::kPower);
92 expected_apis.insert(APIPermission::kSerial); 92 expected_apis.insert(APIPermission::kSerial);
93 93
94 permission = permission_info->CreateAPIPermission(); 94 permission = permission_info->CreateAPIPermission();
95 { 95 {
96 scoped_ptr<base::ListValue> value(new base::ListValue()); 96 scoped_ptr<base::ListValue> value(new base::ListValue());
97 value->Append(new base::StringValue("tcp-connect:*.example.com:80")); 97 value->Append(new base::StringValue("tcp-connect:*.example.com:80"));
98 value->Append(new base::StringValue("udp-bind::8080")); 98 value->Append(new base::StringValue("udp-bind::8080"));
99 value->Append(new base::StringValue("udp-send-to::8888")); 99 value->Append(new base::StringValue("udp-send-to::8888"));
100 value->Append(new base::StringValue("udp-send-to::8899")); 100 value->Append(new base::StringValue("udp-send-to::8899"));
101 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); 101 ASSERT_TRUE(permission->FromValue(value.get(), nullptr, NULL));
102 } 102 }
103 // Insert a new socket permission which will replace the old one. 103 // Insert a new socket permission which will replace the old one.
104 expected_apis.insert(permission); 104 expected_apis.insert(permission);
105 105
106 APIPermissionSet::Union(apis1, apis2, &result); 106 APIPermissionSet::Union(apis1, apis2, &result);
107 107
108 EXPECT_FALSE(apis1.Contains(apis2)); 108 EXPECT_FALSE(apis1.Contains(apis2));
109 EXPECT_FALSE(apis1.Contains(result)); 109 EXPECT_FALSE(apis1.Contains(result));
110 EXPECT_FALSE(apis2.Contains(apis1)); 110 EXPECT_FALSE(apis2.Contains(apis1));
111 EXPECT_FALSE(apis2.Contains(result)); 111 EXPECT_FALSE(apis2.Contains(result));
112 EXPECT_TRUE(result.Contains(apis1)); 112 EXPECT_TRUE(result.Contains(apis1));
113 EXPECT_TRUE(result.Contains(apis2)); 113 EXPECT_TRUE(result.Contains(apis2));
114 114
115 EXPECT_EQ(expected_apis, result); 115 EXPECT_EQ(expected_apis, result);
116 } 116 }
117 117
118 TEST(APIPermissionSetTest, CreateIntersection) { 118 TEST(APIPermissionSetTest, CreateIntersection) {
119 APIPermission* permission = NULL; 119 APIPermission* permission = nullptr;
120 120
121 APIPermissionSet apis1; 121 APIPermissionSet apis1;
122 APIPermissionSet apis2; 122 APIPermissionSet apis2;
123 APIPermissionSet expected_apis; 123 APIPermissionSet expected_apis;
124 APIPermissionSet result; 124 APIPermissionSet result;
125 125
126 const APIPermissionInfo* permission_info = 126 const APIPermissionInfo* permission_info =
127 PermissionsInfo::GetInstance()->GetByID(APIPermission::kSocket); 127 PermissionsInfo::GetInstance()->GetByID(APIPermission::kSocket);
128 128
129 // Intersection with an empty set. 129 // Intersection with an empty set.
130 apis1.insert(APIPermission::kAudioCapture); 130 apis1.insert(APIPermission::kAudioCapture);
131 apis1.insert(APIPermission::kDns); 131 apis1.insert(APIPermission::kDns);
132 permission = permission_info->CreateAPIPermission(); 132 permission = permission_info->CreateAPIPermission();
133 { 133 {
134 scoped_ptr<base::ListValue> value(new base::ListValue()); 134 scoped_ptr<base::ListValue> value(new base::ListValue());
135 value->Append(new base::StringValue("tcp-connect:*.example.com:80")); 135 value->Append(new base::StringValue("tcp-connect:*.example.com:80"));
136 value->Append(new base::StringValue("udp-bind::8080")); 136 value->Append(new base::StringValue("udp-bind::8080"));
137 value->Append(new base::StringValue("udp-send-to::8888")); 137 value->Append(new base::StringValue("udp-send-to::8888"));
138 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); 138 ASSERT_TRUE(permission->FromValue(value.get(), nullptr, NULL));
139 } 139 }
140 apis1.insert(permission); 140 apis1.insert(permission);
141 141
142 ASSERT_TRUE(apis2.empty()); 142 ASSERT_TRUE(apis2.empty());
143 APIPermissionSet::Intersection(apis1, apis2, &result); 143 APIPermissionSet::Intersection(apis1, apis2, &result);
144 144
145 EXPECT_TRUE(apis1.Contains(result)); 145 EXPECT_TRUE(apis1.Contains(result));
146 EXPECT_TRUE(apis2.Contains(result)); 146 EXPECT_TRUE(apis2.Contains(result));
147 EXPECT_TRUE(apis1.Contains(apis2)); 147 EXPECT_TRUE(apis1.Contains(apis2));
148 EXPECT_FALSE(apis2.Contains(apis1)); 148 EXPECT_FALSE(apis2.Contains(apis1));
149 EXPECT_FALSE(result.Contains(apis1)); 149 EXPECT_FALSE(result.Contains(apis1));
150 EXPECT_TRUE(result.Contains(apis2)); 150 EXPECT_TRUE(result.Contains(apis2));
151 151
152 EXPECT_TRUE(result.empty()); 152 EXPECT_TRUE(result.empty());
153 EXPECT_EQ(expected_apis, result); 153 EXPECT_EQ(expected_apis, result);
154 154
155 // Now use a real second set. 155 // Now use a real second set.
156 apis2.insert(APIPermission::kAudioCapture); 156 apis2.insert(APIPermission::kAudioCapture);
157 apis2.insert(APIPermission::kHid); 157 apis2.insert(APIPermission::kHid);
158 apis2.insert(APIPermission::kPower); 158 apis2.insert(APIPermission::kPower);
159 apis2.insert(APIPermission::kSerial); 159 apis2.insert(APIPermission::kSerial);
160 permission = permission_info->CreateAPIPermission(); 160 permission = permission_info->CreateAPIPermission();
161 { 161 {
162 scoped_ptr<base::ListValue> value(new base::ListValue()); 162 scoped_ptr<base::ListValue> value(new base::ListValue());
163 value->Append(new base::StringValue("udp-bind::8080")); 163 value->Append(new base::StringValue("udp-bind::8080"));
164 value->Append(new base::StringValue("udp-send-to::8888")); 164 value->Append(new base::StringValue("udp-send-to::8888"));
165 value->Append(new base::StringValue("udp-send-to::8899")); 165 value->Append(new base::StringValue("udp-send-to::8899"));
166 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); 166 ASSERT_TRUE(permission->FromValue(value.get(), nullptr, NULL));
167 } 167 }
168 apis2.insert(permission); 168 apis2.insert(permission);
169 169
170 expected_apis.insert(APIPermission::kAudioCapture); 170 expected_apis.insert(APIPermission::kAudioCapture);
171 permission = permission_info->CreateAPIPermission(); 171 permission = permission_info->CreateAPIPermission();
172 { 172 {
173 scoped_ptr<base::ListValue> value(new base::ListValue()); 173 scoped_ptr<base::ListValue> value(new base::ListValue());
174 value->Append(new base::StringValue("udp-bind::8080")); 174 value->Append(new base::StringValue("udp-bind::8080"));
175 value->Append(new base::StringValue("udp-send-to::8888")); 175 value->Append(new base::StringValue("udp-send-to::8888"));
176 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); 176 ASSERT_TRUE(permission->FromValue(value.get(), nullptr, NULL));
177 } 177 }
178 expected_apis.insert(permission); 178 expected_apis.insert(permission);
179 179
180 APIPermissionSet::Intersection(apis1, apis2, &result); 180 APIPermissionSet::Intersection(apis1, apis2, &result);
181 181
182 EXPECT_TRUE(apis1.Contains(result)); 182 EXPECT_TRUE(apis1.Contains(result));
183 EXPECT_TRUE(apis2.Contains(result)); 183 EXPECT_TRUE(apis2.Contains(result));
184 EXPECT_FALSE(apis1.Contains(apis2)); 184 EXPECT_FALSE(apis1.Contains(apis2));
185 EXPECT_FALSE(apis2.Contains(apis1)); 185 EXPECT_FALSE(apis2.Contains(apis1));
186 EXPECT_FALSE(result.Contains(apis1)); 186 EXPECT_FALSE(result.Contains(apis1));
187 EXPECT_FALSE(result.Contains(apis2)); 187 EXPECT_FALSE(result.Contains(apis2));
188 188
189 EXPECT_EQ(expected_apis, result); 189 EXPECT_EQ(expected_apis, result);
190 } 190 }
191 191
192 TEST(APIPermissionSetTest, CreateDifference) { 192 TEST(APIPermissionSetTest, CreateDifference) {
193 APIPermission* permission = NULL; 193 APIPermission* permission = nullptr;
194 194
195 APIPermissionSet apis1; 195 APIPermissionSet apis1;
196 APIPermissionSet apis2; 196 APIPermissionSet apis2;
197 APIPermissionSet expected_apis; 197 APIPermissionSet expected_apis;
198 APIPermissionSet result; 198 APIPermissionSet result;
199 199
200 const APIPermissionInfo* permission_info = 200 const APIPermissionInfo* permission_info =
201 PermissionsInfo::GetInstance()->GetByID(APIPermission::kSocket); 201 PermissionsInfo::GetInstance()->GetByID(APIPermission::kSocket);
202 202
203 // Difference with an empty set. 203 // Difference with an empty set.
204 apis1.insert(APIPermission::kAudioCapture); 204 apis1.insert(APIPermission::kAudioCapture);
205 apis1.insert(APIPermission::kDns); 205 apis1.insert(APIPermission::kDns);
206 permission = permission_info->CreateAPIPermission(); 206 permission = permission_info->CreateAPIPermission();
207 { 207 {
208 scoped_ptr<base::ListValue> value(new base::ListValue()); 208 scoped_ptr<base::ListValue> value(new base::ListValue());
209 value->Append(new base::StringValue("tcp-connect:*.example.com:80")); 209 value->Append(new base::StringValue("tcp-connect:*.example.com:80"));
210 value->Append(new base::StringValue("udp-bind::8080")); 210 value->Append(new base::StringValue("udp-bind::8080"));
211 value->Append(new base::StringValue("udp-send-to::8888")); 211 value->Append(new base::StringValue("udp-send-to::8888"));
212 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); 212 ASSERT_TRUE(permission->FromValue(value.get(), nullptr, NULL));
213 } 213 }
214 apis1.insert(permission); 214 apis1.insert(permission);
215 215
216 ASSERT_TRUE(apis2.empty()); 216 ASSERT_TRUE(apis2.empty());
217 APIPermissionSet::Difference(apis1, apis2, &result); 217 APIPermissionSet::Difference(apis1, apis2, &result);
218 218
219 EXPECT_EQ(apis1, result); 219 EXPECT_EQ(apis1, result);
220 220
221 // Now use a real second set. 221 // Now use a real second set.
222 apis2.insert(APIPermission::kAudioCapture); 222 apis2.insert(APIPermission::kAudioCapture);
223 apis2.insert(APIPermission::kHid); 223 apis2.insert(APIPermission::kHid);
224 apis2.insert(APIPermission::kPower); 224 apis2.insert(APIPermission::kPower);
225 apis2.insert(APIPermission::kSerial); 225 apis2.insert(APIPermission::kSerial);
226 permission = permission_info->CreateAPIPermission(); 226 permission = permission_info->CreateAPIPermission();
227 { 227 {
228 scoped_ptr<base::ListValue> value(new base::ListValue()); 228 scoped_ptr<base::ListValue> value(new base::ListValue());
229 value->Append(new base::StringValue("tcp-connect:*.example.com:80")); 229 value->Append(new base::StringValue("tcp-connect:*.example.com:80"));
230 value->Append(new base::StringValue("udp-send-to::8899")); 230 value->Append(new base::StringValue("udp-send-to::8899"));
231 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); 231 ASSERT_TRUE(permission->FromValue(value.get(), nullptr, NULL));
232 } 232 }
233 apis2.insert(permission); 233 apis2.insert(permission);
234 234
235 expected_apis.insert(APIPermission::kDns); 235 expected_apis.insert(APIPermission::kDns);
236 permission = permission_info->CreateAPIPermission(); 236 permission = permission_info->CreateAPIPermission();
237 { 237 {
238 scoped_ptr<base::ListValue> value(new base::ListValue()); 238 scoped_ptr<base::ListValue> value(new base::ListValue());
239 value->Append(new base::StringValue("udp-bind::8080")); 239 value->Append(new base::StringValue("udp-bind::8080"));
240 value->Append(new base::StringValue("udp-send-to::8888")); 240 value->Append(new base::StringValue("udp-send-to::8888"));
241 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); 241 ASSERT_TRUE(permission->FromValue(value.get(), nullptr, NULL));
242 } 242 }
243 expected_apis.insert(permission); 243 expected_apis.insert(permission);
244 244
245 APIPermissionSet::Difference(apis1, apis2, &result); 245 APIPermissionSet::Difference(apis1, apis2, &result);
246 246
247 EXPECT_TRUE(apis1.Contains(result)); 247 EXPECT_TRUE(apis1.Contains(result));
248 EXPECT_FALSE(apis2.Contains(result)); 248 EXPECT_FALSE(apis2.Contains(result));
249 249
250 EXPECT_EQ(expected_apis, result); 250 EXPECT_EQ(expected_apis, result);
251 251
252 // |result| = |apis1| - |apis2| --> |result| intersect |apis2| == empty_set 252 // |result| = |apis1| - |apis2| --> |result| intersect |apis2| == empty_set
253 APIPermissionSet result2; 253 APIPermissionSet result2;
254 APIPermissionSet::Intersection(result, apis2, &result2); 254 APIPermissionSet::Intersection(result, apis2, &result2);
255 EXPECT_TRUE(result2.empty()); 255 EXPECT_TRUE(result2.empty());
256 } 256 }
257 257
258 TEST(APIPermissionSetTest, IPC) { 258 TEST(APIPermissionSetTest, IPC) {
259 APIPermission* permission = NULL; 259 APIPermission* permission = nullptr;
260 260
261 APIPermissionSet apis; 261 APIPermissionSet apis;
262 APIPermissionSet expected_apis; 262 APIPermissionSet expected_apis;
263 263
264 const APIPermissionInfo* permission_info = 264 const APIPermissionInfo* permission_info =
265 PermissionsInfo::GetInstance()->GetByID(APIPermission::kSocket); 265 PermissionsInfo::GetInstance()->GetByID(APIPermission::kSocket);
266 266
267 apis.insert(APIPermission::kAudioCapture); 267 apis.insert(APIPermission::kAudioCapture);
268 apis.insert(APIPermission::kDns); 268 apis.insert(APIPermission::kDns);
269 permission = permission_info->CreateAPIPermission(); 269 permission = permission_info->CreateAPIPermission();
270 { 270 {
271 scoped_ptr<base::ListValue> value(new base::ListValue()); 271 scoped_ptr<base::ListValue> value(new base::ListValue());
272 value->Append(new base::StringValue("tcp-connect:*.example.com:80")); 272 value->Append(new base::StringValue("tcp-connect:*.example.com:80"));
273 value->Append(new base::StringValue("udp-bind::8080")); 273 value->Append(new base::StringValue("udp-bind::8080"));
274 value->Append(new base::StringValue("udp-send-to::8888")); 274 value->Append(new base::StringValue("udp-send-to::8888"));
275 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); 275 ASSERT_TRUE(permission->FromValue(value.get(), nullptr, NULL));
276 } 276 }
277 apis.insert(permission); 277 apis.insert(permission);
278 278
279 EXPECT_NE(apis, expected_apis); 279 EXPECT_NE(apis, expected_apis);
280 280
281 IPC::Message m; 281 IPC::Message m;
282 WriteParam(&m, apis); 282 WriteParam(&m, apis);
283 PickleIterator iter(m); 283 PickleIterator iter(m);
284 CHECK(ReadParam(&m, &iter, &expected_apis)); 284 CHECK(ReadParam(&m, &iter, &expected_apis));
285 EXPECT_EQ(apis, expected_apis); 285 EXPECT_EQ(apis, expected_apis);
286 } 286 }
287 287
288 } // namespace extensions 288 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698