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

Side by Side Diff: chrome/common/extensions/permissions/socket_permission_unittest.cc

Issue 14694010: Consolidate manifest handler registration. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 7 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 | Annotate | Revision Log
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 <string> 5 #include <string>
6 6
7 #include "base/pickle.h" 7 #include "base/pickle.h"
8 #include "base/values.h" 8 #include "base/values.h"
9 #include "chrome/common/extensions/extension_unittest.h" 9 #include "chrome/common/extensions/permissions/permissions_info.h"
10 #include "chrome/common/extensions/permissions/socket_permission.h" 10 #include "chrome/common/extensions/permissions/socket_permission.h"
11 #include "chrome/common/extensions/permissions/socket_permission_data.h" 11 #include "chrome/common/extensions/permissions/socket_permission_data.h"
12 #include "ipc/ipc_message.h" 12 #include "ipc/ipc_message.h"
13 #include "testing/gtest/include/gtest/gtest.h" 13 #include "testing/gtest/include/gtest/gtest.h"
14 14
15 namespace extensions { 15 namespace extensions {
16 16
17 namespace { 17 namespace {
18 18
19 using content::SocketPermissionRequest; 19 using content::SocketPermissionRequest;
20 20
21 void ParseTest(const std::string& permission, 21 void ParseTest(const std::string& permission,
22 const std::string& expected_result) { 22 const std::string& expected_result) {
23 SocketPermissionData data; 23 SocketPermissionData data;
24 ASSERT_TRUE(data.ParseForTest(permission)) << "Parse permission \"" 24 ASSERT_TRUE(data.ParseForTest(permission)) << "Parse permission \""
25 << permission << "\" failed."; 25 << permission << "\" failed.";
26 EXPECT_EQ(expected_result, data.GetAsStringForTest()); 26 EXPECT_EQ(expected_result, data.GetAsStringForTest());
27 } 27 }
28 28
29 class SocketPermissionTest : public ExtensionTest { 29 TEST(SocketPermissionTest, General) {
30 };
31
32 TEST_F(SocketPermissionTest, General) {
33 SocketPermissionData data1, data2; 30 SocketPermissionData data1, data2;
34 31
35 CHECK(data1.ParseForTest("tcp-connect")); 32 CHECK(data1.ParseForTest("tcp-connect"));
36 CHECK(data2.ParseForTest("tcp-connect")); 33 CHECK(data2.ParseForTest("tcp-connect"));
37 34
38 EXPECT_TRUE(data1 == data2); 35 EXPECT_TRUE(data1 == data2);
39 EXPECT_FALSE(data1 < data2); 36 EXPECT_FALSE(data1 < data2);
40 37
41 CHECK(data1.ParseForTest("tcp-connect")); 38 CHECK(data1.ParseForTest("tcp-connect"));
42 CHECK(data2.ParseForTest("tcp-connect:www.example.com")); 39 CHECK(data2.ParseForTest("tcp-connect:www.example.com"));
43 40
44 EXPECT_FALSE(data1 == data2); 41 EXPECT_FALSE(data1 == data2);
45 EXPECT_TRUE(data1 < data2); 42 EXPECT_TRUE(data1 < data2);
46 } 43 }
47 44
48 TEST_F(SocketPermissionTest, Parse) { 45 TEST(SocketPermissionTest, Parse) {
49 SocketPermissionData data; 46 SocketPermissionData data;
50 47
51 EXPECT_FALSE(data.ParseForTest(std::string())); 48 EXPECT_FALSE(data.ParseForTest(std::string()));
52 EXPECT_FALSE(data.ParseForTest("*")); 49 EXPECT_FALSE(data.ParseForTest("*"));
53 EXPECT_FALSE(data.ParseForTest("\00\00*")); 50 EXPECT_FALSE(data.ParseForTest("\00\00*"));
54 EXPECT_FALSE(data.ParseForTest("\01*")); 51 EXPECT_FALSE(data.ParseForTest("\01*"));
55 EXPECT_FALSE(data.ParseForTest("tcp-connect:www.example.com:-1")); 52 EXPECT_FALSE(data.ParseForTest("tcp-connect:www.example.com:-1"));
56 EXPECT_FALSE(data.ParseForTest("tcp-connect:www.example.com:65536")); 53 EXPECT_FALSE(data.ParseForTest("tcp-connect:www.example.com:65536"));
57 EXPECT_FALSE(data.ParseForTest("tcp-connect:::")); 54 EXPECT_FALSE(data.ParseForTest("tcp-connect:::"));
58 EXPECT_FALSE(data.ParseForTest("tcp-connect::0")); 55 EXPECT_FALSE(data.ParseForTest("tcp-connect::0"));
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 ParseTest("tcp-connect::99", "tcp-connect:*:99"); 109 ParseTest("tcp-connect::99", "tcp-connect:*:99");
113 ParseTest("tcp-listen::99", "tcp-listen:*:99"); 110 ParseTest("tcp-listen::99", "tcp-listen:*:99");
114 ParseTest("udp-bind::99", "udp-bind:*:99"); 111 ParseTest("udp-bind::99", "udp-bind:*:99");
115 ParseTest("udp-send-to::99", "udp-send-to:*:99"); 112 ParseTest("udp-send-to::99", "udp-send-to:*:99");
116 113
117 ParseTest("tcp-connect:www.example.com", "tcp-connect:www.example.com:*"); 114 ParseTest("tcp-connect:www.example.com", "tcp-connect:www.example.com:*");
118 115
119 ParseTest("tcp-connect:*.example.com:99", "tcp-connect:*.example.com:99"); 116 ParseTest("tcp-connect:*.example.com:99", "tcp-connect:*.example.com:99");
120 } 117 }
121 118
122 TEST_F(SocketPermissionTest, Match) { 119 TEST(SocketPermissionTest, Match) {
123 SocketPermissionData data; 120 SocketPermissionData data;
124 scoped_ptr<SocketPermission::CheckParam> param; 121 scoped_ptr<SocketPermission::CheckParam> param;
125 122
126 CHECK(data.ParseForTest("tcp-connect")); 123 CHECK(data.ParseForTest("tcp-connect"));
127 param.reset(new SocketPermission::CheckParam( 124 param.reset(new SocketPermission::CheckParam(
128 SocketPermissionRequest::TCP_CONNECT, "www.example.com", 80)); 125 SocketPermissionRequest::TCP_CONNECT, "www.example.com", 80));
129 EXPECT_TRUE(data.Check(param.get())); 126 EXPECT_TRUE(data.Check(param.get()));
130 param.reset(new SocketPermission::CheckParam( 127 param.reset(new SocketPermission::CheckParam(
131 SocketPermissionRequest::UDP_SEND_TO, "www.example.com", 80)); 128 SocketPermissionRequest::UDP_SEND_TO, "www.example.com", 80));
132 EXPECT_FALSE(data.Check(param.get())); 129 EXPECT_FALSE(data.Check(param.get()));
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 SocketPermissionRequest::TCP_CONNECT, "www.example.com", 80)); 209 SocketPermissionRequest::TCP_CONNECT, "www.example.com", 80));
213 EXPECT_FALSE(data.Check(param.get())); 210 EXPECT_FALSE(data.Check(param.get()));
214 param.reset(new SocketPermission::CheckParam( 211 param.reset(new SocketPermission::CheckParam(
215 SocketPermissionRequest::UDP_SEND_TO, "www.google.com", 8800)); 212 SocketPermissionRequest::UDP_SEND_TO, "www.google.com", 8800));
216 EXPECT_FALSE(data.Check(param.get())); 213 EXPECT_FALSE(data.Check(param.get()));
217 param.reset(new SocketPermission::CheckParam( 214 param.reset(new SocketPermission::CheckParam(
218 SocketPermissionRequest::UDP_MULTICAST_MEMBERSHIP, "127.0.0.1", 35)); 215 SocketPermissionRequest::UDP_MULTICAST_MEMBERSHIP, "127.0.0.1", 35));
219 EXPECT_TRUE(data.Check(param.get())); 216 EXPECT_TRUE(data.Check(param.get()));
220 } 217 }
221 218
222 TEST_F(SocketPermissionTest, IPC) { 219 TEST(SocketPermissionTest, IPC) {
223 const APIPermissionInfo* permission_info = 220 const APIPermissionInfo* permission_info =
224 PermissionsInfo::GetInstance()->GetByID(APIPermission::kSocket); 221 PermissionsInfo::GetInstance()->GetByID(APIPermission::kSocket);
225 222
226 { 223 {
227 IPC::Message m; 224 IPC::Message m;
228 225
229 scoped_ptr<APIPermission> permission1( 226 scoped_ptr<APIPermission> permission1(
230 permission_info->CreateAPIPermission()); 227 permission_info->CreateAPIPermission());
231 scoped_ptr<APIPermission> permission2( 228 scoped_ptr<APIPermission> permission2(
232 permission_info->CreateAPIPermission()); 229 permission_info->CreateAPIPermission());
(...skipping 21 matching lines...) Expand all
254 251
255 EXPECT_FALSE(permission1->Equal(permission2.get())); 252 EXPECT_FALSE(permission1->Equal(permission2.get()));
256 253
257 permission1->Write(&m); 254 permission1->Write(&m);
258 PickleIterator iter(m); 255 PickleIterator iter(m);
259 permission2->Read(&m, &iter); 256 permission2->Read(&m, &iter);
260 EXPECT_TRUE(permission1->Equal(permission2.get())); 257 EXPECT_TRUE(permission1->Equal(permission2.get()));
261 } 258 }
262 } 259 }
263 260
264 TEST_F(SocketPermissionTest, Value) { 261 TEST(SocketPermissionTest, Value) {
265 const APIPermissionInfo* permission_info = 262 const APIPermissionInfo* permission_info =
266 PermissionsInfo::GetInstance()->GetByID(APIPermission::kSocket); 263 PermissionsInfo::GetInstance()->GetByID(APIPermission::kSocket);
267 264
268 scoped_ptr<APIPermission> permission1( 265 scoped_ptr<APIPermission> permission1(
269 permission_info->CreateAPIPermission()); 266 permission_info->CreateAPIPermission());
270 scoped_ptr<APIPermission> permission2( 267 scoped_ptr<APIPermission> permission2(
271 permission_info->CreateAPIPermission()); 268 permission_info->CreateAPIPermission());
272 269
273 scoped_ptr<base::ListValue> value(new base::ListValue()); 270 scoped_ptr<base::ListValue> value(new base::ListValue());
274 value->AppendString("tcp-connect:*.example.com:80"); 271 value->AppendString("tcp-connect:*.example.com:80");
275 value->AppendString("udp-bind::8080"); 272 value->AppendString("udp-bind::8080");
276 value->AppendString("udp-send-to::8888"); 273 value->AppendString("udp-send-to::8888");
277 ASSERT_TRUE(permission1->FromValue(value.get())); 274 ASSERT_TRUE(permission1->FromValue(value.get()));
278 275
279 EXPECT_FALSE(permission1->Equal(permission2.get())); 276 EXPECT_FALSE(permission1->Equal(permission2.get()));
280 277
281 scoped_ptr<base::Value> vtmp(permission1->ToValue()); 278 scoped_ptr<base::Value> vtmp(permission1->ToValue());
282 ASSERT_TRUE(vtmp); 279 ASSERT_TRUE(vtmp);
283 ASSERT_TRUE(permission2->FromValue(vtmp.get())); 280 ASSERT_TRUE(permission2->FromValue(vtmp.get()));
284 EXPECT_TRUE(permission1->Equal(permission2.get())); 281 EXPECT_TRUE(permission1->Equal(permission2.get()));
285 } 282 }
286 283
287 } // namespace 284 } // namespace
288 285
289 } // namespace extensions 286 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698