OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 <set> | 5 #include <set> |
6 #include <tuple> | 6 #include <tuple> |
7 | 7 |
8 #include "base/json/json_reader.h" | 8 #include "base/json/json_reader.h" |
9 #include "base/macros.h" | 9 #include "base/macros.h" |
10 #include "base/pickle.h" | 10 #include "base/pickle.h" |
(...skipping 22 matching lines...) Expand all Loading... |
33 "{ \"tcpServer\": { \"listen\": [\"127.0.0.1:80\", \"a.com:80\"] } }"; | 33 "{ \"tcpServer\": { \"listen\": [\"127.0.0.1:80\", \"a.com:80\"] } }"; |
34 | 34 |
35 static void AssertEmptyPermission(const SocketsManifestPermission* permission) { | 35 static void AssertEmptyPermission(const SocketsManifestPermission* permission) { |
36 EXPECT_TRUE(permission); | 36 EXPECT_TRUE(permission); |
37 EXPECT_EQ(std::string(extensions::manifest_keys::kSockets), permission->id()); | 37 EXPECT_EQ(std::string(extensions::manifest_keys::kSockets), permission->id()); |
38 EXPECT_EQ(permission->id(), permission->name()); | 38 EXPECT_EQ(permission->id(), permission->name()); |
39 EXPECT_TRUE(permission->GetPermissions().empty()); | 39 EXPECT_TRUE(permission->GetPermissions().empty()); |
40 EXPECT_EQ(0u, permission->entries().size()); | 40 EXPECT_EQ(0u, permission->entries().size()); |
41 } | 41 } |
42 | 42 |
43 static scoped_ptr<base::Value> ParsePermissionJSON(const std::string& json) { | 43 static std::unique_ptr<base::Value> ParsePermissionJSON( |
44 scoped_ptr<base::Value> result(base::JSONReader::Read(json)); | 44 const std::string& json) { |
| 45 std::unique_ptr<base::Value> result(base::JSONReader::Read(json)); |
45 EXPECT_TRUE(result) << "Invalid JSON string: " << json; | 46 EXPECT_TRUE(result) << "Invalid JSON string: " << json; |
46 return result; | 47 return result; |
47 } | 48 } |
48 | 49 |
49 static scoped_ptr<SocketsManifestPermission> PermissionFromValue( | 50 static std::unique_ptr<SocketsManifestPermission> PermissionFromValue( |
50 const base::Value& value) { | 51 const base::Value& value) { |
51 base::string16 error16; | 52 base::string16 error16; |
52 scoped_ptr<SocketsManifestPermission> permission( | 53 std::unique_ptr<SocketsManifestPermission> permission( |
53 SocketsManifestPermission::FromValue(value, &error16)); | 54 SocketsManifestPermission::FromValue(value, &error16)); |
54 EXPECT_TRUE(permission) << "Error parsing Value into permission: " << error16; | 55 EXPECT_TRUE(permission) << "Error parsing Value into permission: " << error16; |
55 return permission; | 56 return permission; |
56 } | 57 } |
57 | 58 |
58 static scoped_ptr<SocketsManifestPermission> PermissionFromJSON( | 59 static std::unique_ptr<SocketsManifestPermission> PermissionFromJSON( |
59 const std::string& json) { | 60 const std::string& json) { |
60 scoped_ptr<base::Value> value(ParsePermissionJSON(json)); | 61 std::unique_ptr<base::Value> value(ParsePermissionJSON(json)); |
61 return PermissionFromValue(*value); | 62 return PermissionFromValue(*value); |
62 } | 63 } |
63 | 64 |
64 struct CheckFormatEntry { | 65 struct CheckFormatEntry { |
65 CheckFormatEntry(SocketPermissionRequest::OperationType operation_type, | 66 CheckFormatEntry(SocketPermissionRequest::OperationType operation_type, |
66 std::string host_pattern) | 67 std::string host_pattern) |
67 : operation_type(operation_type), host_pattern(host_pattern) {} | 68 : operation_type(operation_type), host_pattern(host_pattern) {} |
68 | 69 |
69 // operators <, == are needed by container std::set and algorithms | 70 // operators <, == are needed by container std::set and algorithms |
70 // std::set_includes and std::set_differences. | 71 // std::set_includes and std::set_differences. |
71 bool operator<(const CheckFormatEntry& rhs) const { | 72 bool operator<(const CheckFormatEntry& rhs) const { |
72 return std::tie(operation_type, host_pattern) < | 73 return std::tie(operation_type, host_pattern) < |
73 std::tie(rhs.operation_type, rhs.host_pattern); | 74 std::tie(rhs.operation_type, rhs.host_pattern); |
74 } | 75 } |
75 | 76 |
76 bool operator==(const CheckFormatEntry& rhs) const { | 77 bool operator==(const CheckFormatEntry& rhs) const { |
77 return operation_type == rhs.operation_type && | 78 return operation_type == rhs.operation_type && |
78 host_pattern == rhs.host_pattern; | 79 host_pattern == rhs.host_pattern; |
79 } | 80 } |
80 | 81 |
81 SocketPermissionRequest::OperationType operation_type; | 82 SocketPermissionRequest::OperationType operation_type; |
82 std::string host_pattern; | 83 std::string host_pattern; |
83 }; | 84 }; |
84 | 85 |
85 static testing::AssertionResult CheckFormat( | 86 static testing::AssertionResult CheckFormat( |
86 std::multiset<CheckFormatEntry> permissions, | 87 std::multiset<CheckFormatEntry> permissions, |
87 const std::string& json) { | 88 const std::string& json) { |
88 scoped_ptr<SocketsManifestPermission> permission(PermissionFromJSON(json)); | 89 std::unique_ptr<SocketsManifestPermission> permission( |
| 90 PermissionFromJSON(json)); |
89 if (!permission) | 91 if (!permission) |
90 return testing::AssertionFailure() << "Invalid permission " << json; | 92 return testing::AssertionFailure() << "Invalid permission " << json; |
91 | 93 |
92 if (permissions.size() != permission->entries().size()) { | 94 if (permissions.size() != permission->entries().size()) { |
93 return testing::AssertionFailure() | 95 return testing::AssertionFailure() |
94 << "Incorrect # of entries in json: " << json; | 96 << "Incorrect # of entries in json: " << json; |
95 } | 97 } |
96 | 98 |
97 // Note: We use multiset because SocketsManifestPermission does not have to | 99 // Note: We use multiset because SocketsManifestPermission does not have to |
98 // store entries in the order found in the json message. | 100 // store entries in the order found in the json message. |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
145 CheckFormatEntry entries[] = {op1, op2, op3, op4, op5, op6, op7, op8, op9}; | 147 CheckFormatEntry entries[] = {op1, op2, op3, op4, op5, op6, op7, op8, op9}; |
146 return CheckFormat( | 148 return CheckFormat( |
147 std::multiset<CheckFormatEntry>(entries, entries + arraysize(entries)), | 149 std::multiset<CheckFormatEntry>(entries, entries + arraysize(entries)), |
148 json); | 150 json); |
149 } | 151 } |
150 | 152 |
151 } // namespace | 153 } // namespace |
152 | 154 |
153 TEST(SocketsManifestPermissionTest, Empty) { | 155 TEST(SocketsManifestPermissionTest, Empty) { |
154 // Construction | 156 // Construction |
155 scoped_ptr<SocketsManifestPermission> permission( | 157 std::unique_ptr<SocketsManifestPermission> permission( |
156 new SocketsManifestPermission()); | 158 new SocketsManifestPermission()); |
157 AssertEmptyPermission(permission.get()); | 159 AssertEmptyPermission(permission.get()); |
158 | 160 |
159 // Clone()/Equal() | 161 // Clone()/Equal() |
160 scoped_ptr<SocketsManifestPermission> clone( | 162 std::unique_ptr<SocketsManifestPermission> clone( |
161 static_cast<SocketsManifestPermission*>(permission->Clone())); | 163 static_cast<SocketsManifestPermission*>(permission->Clone())); |
162 AssertEmptyPermission(clone.get()); | 164 AssertEmptyPermission(clone.get()); |
163 | 165 |
164 EXPECT_TRUE(permission->Equal(clone.get())); | 166 EXPECT_TRUE(permission->Equal(clone.get())); |
165 | 167 |
166 // ToValue()/FromValue() | 168 // ToValue()/FromValue() |
167 scoped_ptr<const base::Value> value(permission->ToValue()); | 169 std::unique_ptr<const base::Value> value(permission->ToValue()); |
168 EXPECT_TRUE(value.get()); | 170 EXPECT_TRUE(value.get()); |
169 | 171 |
170 scoped_ptr<SocketsManifestPermission> permission2( | 172 std::unique_ptr<SocketsManifestPermission> permission2( |
171 new SocketsManifestPermission()); | 173 new SocketsManifestPermission()); |
172 EXPECT_TRUE(permission2->FromValue(value.get())); | 174 EXPECT_TRUE(permission2->FromValue(value.get())); |
173 AssertEmptyPermission(permission2.get()); | 175 AssertEmptyPermission(permission2.get()); |
174 | 176 |
175 // Union/Diff/Intersection | 177 // Union/Diff/Intersection |
176 scoped_ptr<SocketsManifestPermission> diff_perm( | 178 std::unique_ptr<SocketsManifestPermission> diff_perm( |
177 static_cast<SocketsManifestPermission*>(permission->Diff(clone.get()))); | 179 static_cast<SocketsManifestPermission*>(permission->Diff(clone.get()))); |
178 AssertEmptyPermission(diff_perm.get()); | 180 AssertEmptyPermission(diff_perm.get()); |
179 | 181 |
180 scoped_ptr<SocketsManifestPermission> union_perm( | 182 std::unique_ptr<SocketsManifestPermission> union_perm( |
181 static_cast<SocketsManifestPermission*>(permission->Union(clone.get()))); | 183 static_cast<SocketsManifestPermission*>(permission->Union(clone.get()))); |
182 AssertEmptyPermission(union_perm.get()); | 184 AssertEmptyPermission(union_perm.get()); |
183 | 185 |
184 scoped_ptr<SocketsManifestPermission> intersect_perm( | 186 std::unique_ptr<SocketsManifestPermission> intersect_perm( |
185 static_cast<SocketsManifestPermission*>( | 187 static_cast<SocketsManifestPermission*>( |
186 permission->Intersect(clone.get()))); | 188 permission->Intersect(clone.get()))); |
187 AssertEmptyPermission(intersect_perm.get()); | 189 AssertEmptyPermission(intersect_perm.get()); |
188 | 190 |
189 // IPC | 191 // IPC |
190 scoped_ptr<SocketsManifestPermission> ipc_perm( | 192 std::unique_ptr<SocketsManifestPermission> ipc_perm( |
191 new SocketsManifestPermission()); | 193 new SocketsManifestPermission()); |
192 scoped_ptr<SocketsManifestPermission> ipc_perm2( | 194 std::unique_ptr<SocketsManifestPermission> ipc_perm2( |
193 new SocketsManifestPermission()); | 195 new SocketsManifestPermission()); |
194 | 196 |
195 IPC::Message m; | 197 IPC::Message m; |
196 ipc_perm->Write(&m); | 198 ipc_perm->Write(&m); |
197 base::PickleIterator iter(m); | 199 base::PickleIterator iter(m); |
198 EXPECT_TRUE(ipc_perm2->Read(&m, &iter)); | 200 EXPECT_TRUE(ipc_perm2->Read(&m, &iter)); |
199 AssertEmptyPermission(ipc_perm2.get()); | 201 AssertEmptyPermission(ipc_perm2.get()); |
200 } | 202 } |
201 | 203 |
202 TEST(SocketsManifestPermissionTest, JSONFormats) { | 204 TEST(SocketsManifestPermissionTest, JSONFormats) { |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
274 CheckFormatEntry(SocketPermissionRequest::UDP_BIND, "a:80"), | 276 CheckFormatEntry(SocketPermissionRequest::UDP_BIND, "a:80"), |
275 CheckFormatEntry(SocketPermissionRequest::UDP_BIND, "b:10"), | 277 CheckFormatEntry(SocketPermissionRequest::UDP_BIND, "b:10"), |
276 CheckFormatEntry(SocketPermissionRequest::UDP_MULTICAST_MEMBERSHIP, ""), | 278 CheckFormatEntry(SocketPermissionRequest::UDP_MULTICAST_MEMBERSHIP, ""), |
277 CheckFormatEntry(SocketPermissionRequest::TCP_CONNECT, "a:80"), | 279 CheckFormatEntry(SocketPermissionRequest::TCP_CONNECT, "a:80"), |
278 CheckFormatEntry(SocketPermissionRequest::TCP_CONNECT, "b:10"), | 280 CheckFormatEntry(SocketPermissionRequest::TCP_CONNECT, "b:10"), |
279 CheckFormatEntry(SocketPermissionRequest::TCP_LISTEN, "a:80"), | 281 CheckFormatEntry(SocketPermissionRequest::TCP_LISTEN, "a:80"), |
280 CheckFormatEntry(SocketPermissionRequest::TCP_LISTEN, "b:10"))); | 282 CheckFormatEntry(SocketPermissionRequest::TCP_LISTEN, "b:10"))); |
281 } | 283 } |
282 | 284 |
283 TEST(SocketsManifestPermissionTest, FromToValue) { | 285 TEST(SocketsManifestPermissionTest, FromToValue) { |
284 scoped_ptr<base::Value> udp_send(ParsePermissionJSON(kUdpBindPermission)); | 286 std::unique_ptr<base::Value> udp_send( |
285 scoped_ptr<base::Value> udp_bind(ParsePermissionJSON(kUdpSendPermission)); | 287 ParsePermissionJSON(kUdpBindPermission)); |
286 scoped_ptr<base::Value> tcp_connect( | 288 std::unique_ptr<base::Value> udp_bind( |
| 289 ParsePermissionJSON(kUdpSendPermission)); |
| 290 std::unique_ptr<base::Value> tcp_connect( |
287 ParsePermissionJSON(kTcpConnectPermission)); | 291 ParsePermissionJSON(kTcpConnectPermission)); |
288 scoped_ptr<base::Value> tcp_server_listen( | 292 std::unique_ptr<base::Value> tcp_server_listen( |
289 ParsePermissionJSON(kTcpServerListenPermission)); | 293 ParsePermissionJSON(kTcpServerListenPermission)); |
290 | 294 |
291 // FromValue() | 295 // FromValue() |
292 scoped_ptr<SocketsManifestPermission> permission1( | 296 std::unique_ptr<SocketsManifestPermission> permission1( |
293 new SocketsManifestPermission()); | 297 new SocketsManifestPermission()); |
294 EXPECT_TRUE(permission1->FromValue(udp_send.get())); | 298 EXPECT_TRUE(permission1->FromValue(udp_send.get())); |
295 EXPECT_EQ(2u, permission1->entries().size()); | 299 EXPECT_EQ(2u, permission1->entries().size()); |
296 | 300 |
297 scoped_ptr<SocketsManifestPermission> permission2( | 301 std::unique_ptr<SocketsManifestPermission> permission2( |
298 new SocketsManifestPermission()); | 302 new SocketsManifestPermission()); |
299 EXPECT_TRUE(permission2->FromValue(udp_bind.get())); | 303 EXPECT_TRUE(permission2->FromValue(udp_bind.get())); |
300 EXPECT_EQ(2u, permission2->entries().size()); | 304 EXPECT_EQ(2u, permission2->entries().size()); |
301 | 305 |
302 scoped_ptr<SocketsManifestPermission> permission3( | 306 std::unique_ptr<SocketsManifestPermission> permission3( |
303 new SocketsManifestPermission()); | 307 new SocketsManifestPermission()); |
304 EXPECT_TRUE(permission3->FromValue(tcp_connect.get())); | 308 EXPECT_TRUE(permission3->FromValue(tcp_connect.get())); |
305 EXPECT_EQ(2u, permission3->entries().size()); | 309 EXPECT_EQ(2u, permission3->entries().size()); |
306 | 310 |
307 scoped_ptr<SocketsManifestPermission> permission4( | 311 std::unique_ptr<SocketsManifestPermission> permission4( |
308 new SocketsManifestPermission()); | 312 new SocketsManifestPermission()); |
309 EXPECT_TRUE(permission4->FromValue(tcp_server_listen.get())); | 313 EXPECT_TRUE(permission4->FromValue(tcp_server_listen.get())); |
310 EXPECT_EQ(2u, permission4->entries().size()); | 314 EXPECT_EQ(2u, permission4->entries().size()); |
311 | 315 |
312 // ToValue() | 316 // ToValue() |
313 scoped_ptr<base::Value> value1 = permission1->ToValue(); | 317 std::unique_ptr<base::Value> value1 = permission1->ToValue(); |
314 EXPECT_TRUE(value1); | 318 EXPECT_TRUE(value1); |
315 scoped_ptr<SocketsManifestPermission> permission1_1( | 319 std::unique_ptr<SocketsManifestPermission> permission1_1( |
316 new SocketsManifestPermission()); | 320 new SocketsManifestPermission()); |
317 EXPECT_TRUE(permission1_1->FromValue(value1.get())); | 321 EXPECT_TRUE(permission1_1->FromValue(value1.get())); |
318 EXPECT_TRUE(permission1->Equal(permission1_1.get())); | 322 EXPECT_TRUE(permission1->Equal(permission1_1.get())); |
319 | 323 |
320 scoped_ptr<base::Value> value2 = permission2->ToValue(); | 324 std::unique_ptr<base::Value> value2 = permission2->ToValue(); |
321 EXPECT_TRUE(value2); | 325 EXPECT_TRUE(value2); |
322 scoped_ptr<SocketsManifestPermission> permission2_1( | 326 std::unique_ptr<SocketsManifestPermission> permission2_1( |
323 new SocketsManifestPermission()); | 327 new SocketsManifestPermission()); |
324 EXPECT_TRUE(permission2_1->FromValue(value2.get())); | 328 EXPECT_TRUE(permission2_1->FromValue(value2.get())); |
325 EXPECT_TRUE(permission2->Equal(permission2_1.get())); | 329 EXPECT_TRUE(permission2->Equal(permission2_1.get())); |
326 | 330 |
327 scoped_ptr<base::Value> value3 = permission3->ToValue(); | 331 std::unique_ptr<base::Value> value3 = permission3->ToValue(); |
328 EXPECT_TRUE(value3); | 332 EXPECT_TRUE(value3); |
329 scoped_ptr<SocketsManifestPermission> permission3_1( | 333 std::unique_ptr<SocketsManifestPermission> permission3_1( |
330 new SocketsManifestPermission()); | 334 new SocketsManifestPermission()); |
331 EXPECT_TRUE(permission3_1->FromValue(value3.get())); | 335 EXPECT_TRUE(permission3_1->FromValue(value3.get())); |
332 EXPECT_TRUE(permission3->Equal(permission3_1.get())); | 336 EXPECT_TRUE(permission3->Equal(permission3_1.get())); |
333 | 337 |
334 scoped_ptr<base::Value> value4 = permission4->ToValue(); | 338 std::unique_ptr<base::Value> value4 = permission4->ToValue(); |
335 EXPECT_TRUE(value4); | 339 EXPECT_TRUE(value4); |
336 scoped_ptr<SocketsManifestPermission> permission4_1( | 340 std::unique_ptr<SocketsManifestPermission> permission4_1( |
337 new SocketsManifestPermission()); | 341 new SocketsManifestPermission()); |
338 EXPECT_TRUE(permission4_1->FromValue(value4.get())); | 342 EXPECT_TRUE(permission4_1->FromValue(value4.get())); |
339 EXPECT_TRUE(permission4->Equal(permission4_1.get())); | 343 EXPECT_TRUE(permission4->Equal(permission4_1.get())); |
340 } | 344 } |
341 | 345 |
342 TEST(SocketsManifestPermissionTest, SetOperations) { | 346 TEST(SocketsManifestPermissionTest, SetOperations) { |
343 scoped_ptr<SocketsManifestPermission> permission1( | 347 std::unique_ptr<SocketsManifestPermission> permission1( |
344 PermissionFromJSON(kUdpBindPermission)); | 348 PermissionFromJSON(kUdpBindPermission)); |
345 scoped_ptr<SocketsManifestPermission> permission2( | 349 std::unique_ptr<SocketsManifestPermission> permission2( |
346 PermissionFromJSON(kUdpSendPermission)); | 350 PermissionFromJSON(kUdpSendPermission)); |
347 scoped_ptr<SocketsManifestPermission> permission3( | 351 std::unique_ptr<SocketsManifestPermission> permission3( |
348 PermissionFromJSON(kTcpConnectPermission)); | 352 PermissionFromJSON(kTcpConnectPermission)); |
349 scoped_ptr<SocketsManifestPermission> permission4( | 353 std::unique_ptr<SocketsManifestPermission> permission4( |
350 PermissionFromJSON(kTcpServerListenPermission)); | 354 PermissionFromJSON(kTcpServerListenPermission)); |
351 | 355 |
352 // Union | 356 // Union |
353 scoped_ptr<SocketsManifestPermission> union_perm( | 357 std::unique_ptr<SocketsManifestPermission> union_perm( |
354 static_cast<SocketsManifestPermission*>( | 358 static_cast<SocketsManifestPermission*>( |
355 permission1->Union(permission2.get()))); | 359 permission1->Union(permission2.get()))); |
356 EXPECT_TRUE(union_perm); | 360 EXPECT_TRUE(union_perm); |
357 EXPECT_EQ(4u, union_perm->entries().size()); | 361 EXPECT_EQ(4u, union_perm->entries().size()); |
358 | 362 |
359 EXPECT_TRUE(union_perm->Contains(permission1.get())); | 363 EXPECT_TRUE(union_perm->Contains(permission1.get())); |
360 EXPECT_TRUE(union_perm->Contains(permission2.get())); | 364 EXPECT_TRUE(union_perm->Contains(permission2.get())); |
361 EXPECT_FALSE(union_perm->Contains(permission3.get())); | 365 EXPECT_FALSE(union_perm->Contains(permission3.get())); |
362 EXPECT_FALSE(union_perm->Contains(permission4.get())); | 366 EXPECT_FALSE(union_perm->Contains(permission4.get())); |
363 | 367 |
364 // Diff | 368 // Diff |
365 scoped_ptr<SocketsManifestPermission> diff_perm1( | 369 std::unique_ptr<SocketsManifestPermission> diff_perm1( |
366 static_cast<SocketsManifestPermission*>( | 370 static_cast<SocketsManifestPermission*>( |
367 permission1->Diff(permission2.get()))); | 371 permission1->Diff(permission2.get()))); |
368 EXPECT_TRUE(diff_perm1); | 372 EXPECT_TRUE(diff_perm1); |
369 EXPECT_EQ(2u, diff_perm1->entries().size()); | 373 EXPECT_EQ(2u, diff_perm1->entries().size()); |
370 | 374 |
371 EXPECT_TRUE(permission1->Equal(diff_perm1.get())); | 375 EXPECT_TRUE(permission1->Equal(diff_perm1.get())); |
372 EXPECT_TRUE(diff_perm1->Equal(permission1.get())); | 376 EXPECT_TRUE(diff_perm1->Equal(permission1.get())); |
373 | 377 |
374 scoped_ptr<SocketsManifestPermission> diff_perm2( | 378 std::unique_ptr<SocketsManifestPermission> diff_perm2( |
375 static_cast<SocketsManifestPermission*>( | 379 static_cast<SocketsManifestPermission*>( |
376 permission1->Diff(union_perm.get()))); | 380 permission1->Diff(union_perm.get()))); |
377 EXPECT_TRUE(diff_perm2); | 381 EXPECT_TRUE(diff_perm2); |
378 AssertEmptyPermission(diff_perm2.get()); | 382 AssertEmptyPermission(diff_perm2.get()); |
379 | 383 |
380 // Intersection | 384 // Intersection |
381 scoped_ptr<SocketsManifestPermission> intersect_perm1( | 385 std::unique_ptr<SocketsManifestPermission> intersect_perm1( |
382 static_cast<SocketsManifestPermission*>( | 386 static_cast<SocketsManifestPermission*>( |
383 union_perm->Intersect(permission1.get()))); | 387 union_perm->Intersect(permission1.get()))); |
384 EXPECT_TRUE(intersect_perm1); | 388 EXPECT_TRUE(intersect_perm1); |
385 EXPECT_EQ(2u, intersect_perm1->entries().size()); | 389 EXPECT_EQ(2u, intersect_perm1->entries().size()); |
386 | 390 |
387 EXPECT_TRUE(permission1->Equal(intersect_perm1.get())); | 391 EXPECT_TRUE(permission1->Equal(intersect_perm1.get())); |
388 EXPECT_TRUE(intersect_perm1->Equal(permission1.get())); | 392 EXPECT_TRUE(intersect_perm1->Equal(permission1.get())); |
389 } | 393 } |
390 | 394 |
391 TEST(SocketsManifestPermissionTest, IPC) { | 395 TEST(SocketsManifestPermissionTest, IPC) { |
392 scoped_ptr<SocketsManifestPermission> permission( | 396 std::unique_ptr<SocketsManifestPermission> permission( |
393 PermissionFromJSON(kUdpBindPermission)); | 397 PermissionFromJSON(kUdpBindPermission)); |
394 | 398 |
395 scoped_ptr<SocketsManifestPermission> ipc_perm( | 399 std::unique_ptr<SocketsManifestPermission> ipc_perm( |
396 static_cast<SocketsManifestPermission*>(permission->Clone())); | 400 static_cast<SocketsManifestPermission*>(permission->Clone())); |
397 scoped_ptr<SocketsManifestPermission> ipc_perm2( | 401 std::unique_ptr<SocketsManifestPermission> ipc_perm2( |
398 new SocketsManifestPermission()); | 402 new SocketsManifestPermission()); |
399 | 403 |
400 IPC::Message m; | 404 IPC::Message m; |
401 ipc_perm->Write(&m); | 405 ipc_perm->Write(&m); |
402 base::PickleIterator iter(m); | 406 base::PickleIterator iter(m); |
403 EXPECT_TRUE(ipc_perm2->Read(&m, &iter)); | 407 EXPECT_TRUE(ipc_perm2->Read(&m, &iter)); |
404 EXPECT_TRUE(permission->Equal(ipc_perm2.get())); | 408 EXPECT_TRUE(permission->Equal(ipc_perm2.get())); |
405 } | 409 } |
406 | 410 |
407 } // namespace extensions | 411 } // namespace extensions |
OLD | NEW |