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

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

Issue 10993078: Use extensions socket permission for TCP/UDP socket APIs in Pepper (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fixed Android build Created 8 years, 1 month 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/permissions/permissions_info.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 using content::SocketPermissionRequest;
15 using extensions::SocketPermissionData; 16 using extensions::SocketPermissionData;
16 17
17 namespace { 18 namespace {
18 19
19 std::string Parse(const std::string& permission) { 20 std::string Parse(const std::string& permission) {
20 SocketPermissionData data; 21 SocketPermissionData data;
21 CHECK(data.Parse(permission)) << "Parse permission \"" << permission 22 CHECK(data.Parse(permission)) << "Parse permission \"" << permission
22 << "\" failed."; 23 << "\" failed.";
23 return data.GetAsString(); 24 return data.GetAsString();
24 } 25 }
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
132 "tcp-connect:www.example.com:*"); 133 "tcp-connect:www.example.com:*");
133 134
134 EXPECT_EQ(Parse("tcp-connect:*.example.com:99"), 135 EXPECT_EQ(Parse("tcp-connect:*.example.com:99"),
135 "tcp-connect:*.example.com:99"); 136 "tcp-connect:*.example.com:99");
136 } 137 }
137 138
138 TEST(SocketPermissionTest, Match) { 139 TEST(SocketPermissionTest, Match) {
139 SocketPermissionData data; 140 SocketPermissionData data;
140 141
141 CHECK(data.Parse("tcp-connect")); 142 CHECK(data.Parse("tcp-connect"));
142 EXPECT_TRUE(data.Match( 143 EXPECT_TRUE(data.Match(SocketPermissionRequest(
143 SocketPermissionData::TCP_CONNECT, "www.example.com", 80)); 144 SocketPermissionRequest::TCP_CONNECT, "www.example.com", 80)));
144 EXPECT_FALSE(data.Match( 145 EXPECT_FALSE(data.Match(SocketPermissionRequest(
145 SocketPermissionData::UDP_SEND_TO, "www.example.com", 80)); 146 SocketPermissionRequest::UDP_SEND_TO, "www.example.com", 80)));
146 147
147 CHECK(data.Parse("udp-send-to::8800")); 148 CHECK(data.Parse("udp-send-to::8800"));
148 EXPECT_TRUE(data.Match( 149 EXPECT_TRUE(data.Match(SocketPermissionRequest(
149 SocketPermissionData::UDP_SEND_TO, "www.example.com", 8800)); 150 SocketPermissionRequest::UDP_SEND_TO, "www.example.com", 8800)));
150 EXPECT_TRUE(data.Match( 151 EXPECT_TRUE(data.Match(SocketPermissionRequest(
151 SocketPermissionData::UDP_SEND_TO, "smtp.example.com", 8800)); 152 SocketPermissionRequest::UDP_SEND_TO, "smtp.example.com", 8800)));
152 EXPECT_FALSE(data.Match( 153 EXPECT_FALSE(data.Match(SocketPermissionRequest(
153 SocketPermissionData::TCP_CONNECT, "www.example.com", 80)); 154 SocketPermissionRequest::TCP_CONNECT, "www.example.com", 80)));
154 155
155 CHECK(data.Parse("udp-send-to:*.example.com:8800")); 156 CHECK(data.Parse("udp-send-to:*.example.com:8800"));
156 EXPECT_TRUE(data.Match( 157 EXPECT_TRUE(data.Match(SocketPermissionRequest(
157 SocketPermissionData::UDP_SEND_TO, "www.example.com", 8800)); 158 SocketPermissionRequest::UDP_SEND_TO, "www.example.com", 8800)));
158 EXPECT_TRUE(data.Match( 159 EXPECT_TRUE(data.Match(SocketPermissionRequest(
159 SocketPermissionData::UDP_SEND_TO, "smtp.example.com", 8800)); 160 SocketPermissionRequest::UDP_SEND_TO, "smtp.example.com", 8800)));
160 EXPECT_TRUE(data.Match( 161 EXPECT_TRUE(data.Match(SocketPermissionRequest(
161 SocketPermissionData::UDP_SEND_TO, "SMTP.example.com", 8800)); 162 SocketPermissionRequest::UDP_SEND_TO, "SMTP.example.com", 8800)));
162 EXPECT_FALSE(data.Match( 163 EXPECT_FALSE(data.Match(SocketPermissionRequest(
163 SocketPermissionData::TCP_CONNECT, "www.example.com", 80)); 164 SocketPermissionRequest::TCP_CONNECT, "www.example.com", 80)));
164 EXPECT_FALSE(data.Match( 165 EXPECT_FALSE(data.Match(SocketPermissionRequest(
165 SocketPermissionData::UDP_SEND_TO, "www.google.com", 8800)); 166 SocketPermissionRequest::UDP_SEND_TO, "www.google.com", 8800)));
166 EXPECT_FALSE(data.Match( 167 EXPECT_FALSE(data.Match(SocketPermissionRequest(
167 SocketPermissionData::UDP_SEND_TO, "wwwexample.com", 8800)); 168 SocketPermissionRequest::UDP_SEND_TO, "wwwexample.com", 8800)));
168 169
169 CHECK(data.Parse("udp-send-to:*.ExAmPlE.cOm:8800")); 170 CHECK(data.Parse("udp-send-to:*.ExAmPlE.cOm:8800"));
170 EXPECT_TRUE(data.Match( 171 EXPECT_TRUE(data.Match(SocketPermissionRequest(
171 SocketPermissionData::UDP_SEND_TO, "www.example.com", 8800)); 172 SocketPermissionRequest::UDP_SEND_TO, "www.example.com", 8800)));
172 EXPECT_TRUE(data.Match( 173 EXPECT_TRUE(data.Match(SocketPermissionRequest(
173 SocketPermissionData::UDP_SEND_TO, "smtp.example.com", 8800)); 174 SocketPermissionRequest::UDP_SEND_TO, "smtp.example.com", 8800)));
174 EXPECT_TRUE(data.Match( 175 EXPECT_TRUE(data.Match(SocketPermissionRequest(
175 SocketPermissionData::UDP_SEND_TO, "SMTP.example.com", 8800)); 176 SocketPermissionRequest::UDP_SEND_TO, "SMTP.example.com", 8800)));
176 EXPECT_FALSE(data.Match( 177 EXPECT_FALSE(data.Match(SocketPermissionRequest(
177 SocketPermissionData::TCP_CONNECT, "www.example.com", 80)); 178 SocketPermissionRequest::TCP_CONNECT, "www.example.com", 80)));
178 EXPECT_FALSE(data.Match( 179 EXPECT_FALSE(data.Match(SocketPermissionRequest(
179 SocketPermissionData::UDP_SEND_TO, "www.google.com", 8800)); 180 SocketPermissionRequest::UDP_SEND_TO, "www.google.com", 8800)));
180 181
181 CHECK(data.Parse("udp-bind::8800")); 182 CHECK(data.Parse("udp-bind::8800"));
182 EXPECT_TRUE(data.Match( 183 EXPECT_TRUE(data.Match(SocketPermissionRequest(
183 SocketPermissionData::UDP_BIND, "127.0.0.1", 8800)); 184 SocketPermissionRequest::UDP_BIND, "127.0.0.1", 8800)));
184 EXPECT_FALSE(data.Match( 185 EXPECT_FALSE(data.Match(SocketPermissionRequest(
185 SocketPermissionData::UDP_BIND, "127.0.0.1", 8888)); 186 SocketPermissionRequest::UDP_BIND, "127.0.0.1", 8888)));
186 EXPECT_FALSE(data.Match( 187 EXPECT_FALSE(data.Match(SocketPermissionRequest(
187 SocketPermissionData::TCP_CONNECT, "www.example.com", 80)); 188 SocketPermissionRequest::TCP_CONNECT, "www.example.com", 80)));
188 EXPECT_FALSE(data.Match( 189 EXPECT_FALSE(data.Match(SocketPermissionRequest(
189 SocketPermissionData::UDP_SEND_TO, "www.google.com", 8800)); 190 SocketPermissionRequest::UDP_SEND_TO, "www.google.com", 8800)));
190 191
191 // Do not wildcard part of ip address. 192 // Do not wildcard part of ip address.
192 CHECK(data.Parse("tcp-connect:*.168.0.1:8800")); 193 CHECK(data.Parse("tcp-connect:*.168.0.1:8800"));
193 EXPECT_FALSE(data.Match( 194 EXPECT_FALSE(data.Match(SocketPermissionRequest(
194 SocketPermissionData::TCP_CONNECT, "192.168.0.1", 8800)); 195 SocketPermissionRequest::TCP_CONNECT, "192.168.0.1", 8800)));
195 } 196 }
196 197
197 TEST(SocketPermissionTest, IPC) { 198 TEST(SocketPermissionTest, IPC) {
198 const APIPermissionInfo* permission_info = 199 const APIPermissionInfo* permission_info =
199 PermissionsInfo::GetInstance()->GetByID(APIPermission::kSocket); 200 PermissionsInfo::GetInstance()->GetByID(APIPermission::kSocket);
200 201
201 { 202 {
202 IPC::Message m; 203 IPC::Message m;
203 204
204 scoped_ptr<APIPermission> permission1( 205 scoped_ptr<APIPermission> permission1(
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
257 base::Value* vtmp = NULL; 258 base::Value* vtmp = NULL;
258 permission1->ToValue(&vtmp); 259 permission1->ToValue(&vtmp);
259 CHECK(vtmp); 260 CHECK(vtmp);
260 CHECK(permission2->FromValue(vtmp)); 261 CHECK(permission2->FromValue(vtmp));
261 EXPECT_TRUE(permission1->Equal(permission2.get())); 262 EXPECT_TRUE(permission1->Equal(permission2.get()));
262 263
263 delete vtmp; 264 delete vtmp;
264 } 265 }
265 266
266 } // namespace extensions 267 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698