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

Side by Side Diff: net/socket/socks5_client_socket_unittest.cc

Issue 551135: Cleanup the unittest helpers in load_log_unittest.h.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Sync and merge conflicts Created 10 years, 11 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) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 "net/socket/socks5_client_socket.h" 5 #include "net/socket/socks5_client_socket.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <map> 8 #include <map>
9 9
10 #include "net/base/address_list.h" 10 #include "net/base/address_list.h"
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 user_sock_.reset(BuildMockSocket(data_reads, data_writes, "localhost", 80)); 118 user_sock_.reset(BuildMockSocket(data_reads, data_writes, "localhost", 80));
119 119
120 // At this state the TCP connection is completed but not the SOCKS handshake. 120 // At this state the TCP connection is completed but not the SOCKS handshake.
121 EXPECT_TRUE(tcp_sock_->IsConnected()); 121 EXPECT_TRUE(tcp_sock_->IsConnected());
122 EXPECT_FALSE(user_sock_->IsConnected()); 122 EXPECT_FALSE(user_sock_->IsConnected());
123 123
124 scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded)); 124 scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded));
125 int rv = user_sock_->Connect(&callback_, log); 125 int rv = user_sock_->Connect(&callback_, log);
126 EXPECT_EQ(ERR_IO_PENDING, rv); 126 EXPECT_EQ(ERR_IO_PENDING, rv);
127 EXPECT_FALSE(user_sock_->IsConnected()); 127 EXPECT_FALSE(user_sock_->IsConnected());
128 EXPECT_TRUE( 128 EXPECT_TRUE(LogContainsBeginEvent(*log, 0, LoadLog::TYPE_SOCKS5_CONNECT));
129 LogContains(*log, 0, LoadLog::TYPE_SOCKS5_CONNECT, LoadLog::PHASE_BEGIN));
130 129
131 rv = callback_.WaitForResult(); 130 rv = callback_.WaitForResult();
132 131
133 EXPECT_EQ(OK, rv); 132 EXPECT_EQ(OK, rv);
134 EXPECT_TRUE(user_sock_->IsConnected()); 133 EXPECT_TRUE(user_sock_->IsConnected());
135 EXPECT_TRUE(LogContains( 134 EXPECT_TRUE(LogContainsEndEvent(*log, -1, LoadLog::TYPE_SOCKS5_CONNECT));
136 *log, -1, LoadLog::TYPE_SOCKS5_CONNECT, LoadLog::PHASE_END));
137 135
138 scoped_refptr<IOBuffer> buffer = new IOBuffer(payload_write.size()); 136 scoped_refptr<IOBuffer> buffer = new IOBuffer(payload_write.size());
139 memcpy(buffer->data(), payload_write.data(), payload_write.size()); 137 memcpy(buffer->data(), payload_write.data(), payload_write.size());
140 rv = user_sock_->Write(buffer, payload_write.size(), &callback_); 138 rv = user_sock_->Write(buffer, payload_write.size(), &callback_);
141 EXPECT_EQ(ERR_IO_PENDING, rv); 139 EXPECT_EQ(ERR_IO_PENDING, rv);
142 rv = callback_.WaitForResult(); 140 rv = callback_.WaitForResult();
143 EXPECT_EQ(static_cast<int>(payload_write.size()), rv); 141 EXPECT_EQ(static_cast<int>(payload_write.size()), rv);
144 142
145 buffer = new IOBuffer(payload_read.size()); 143 buffer = new IOBuffer(payload_read.size());
146 rv = user_sock_->Read(buffer, payload_read.size(), &callback_); 144 rv = user_sock_->Read(buffer, payload_read.size(), &callback_);
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
231 MockWrite(true, arraysize(partial1)), 229 MockWrite(true, arraysize(partial1)),
232 MockWrite(true, partial2, arraysize(partial2)), 230 MockWrite(true, partial2, arraysize(partial2)),
233 MockWrite(true, kSOCKS5OkRequest, arraysize(kSOCKS5OkRequest)) }; 231 MockWrite(true, kSOCKS5OkRequest, arraysize(kSOCKS5OkRequest)) };
234 MockRead data_reads[] = { 232 MockRead data_reads[] = {
235 MockRead(true, kSOCKS5GreetResponse, arraysize(kSOCKS5GreetResponse)), 233 MockRead(true, kSOCKS5GreetResponse, arraysize(kSOCKS5GreetResponse)),
236 MockRead(true, kSOCKS5OkResponse, arraysize(kSOCKS5OkResponse)) }; 234 MockRead(true, kSOCKS5OkResponse, arraysize(kSOCKS5OkResponse)) };
237 user_sock_.reset(BuildMockSocket(data_reads, data_writes, hostname, 80)); 235 user_sock_.reset(BuildMockSocket(data_reads, data_writes, hostname, 80));
238 scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded)); 236 scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded));
239 int rv = user_sock_->Connect(&callback_, log); 237 int rv = user_sock_->Connect(&callback_, log);
240 EXPECT_EQ(ERR_IO_PENDING, rv); 238 EXPECT_EQ(ERR_IO_PENDING, rv);
241 EXPECT_TRUE(LogContains( 239 EXPECT_TRUE(LogContainsBeginEvent(*log, 0, LoadLog::TYPE_SOCKS5_CONNECT));
242 *log, 0, LoadLog::TYPE_SOCKS5_CONNECT, LoadLog::PHASE_BEGIN));
243 rv = callback_.WaitForResult(); 240 rv = callback_.WaitForResult();
244 EXPECT_EQ(OK, rv); 241 EXPECT_EQ(OK, rv);
245 EXPECT_TRUE(user_sock_->IsConnected()); 242 EXPECT_TRUE(user_sock_->IsConnected());
246 EXPECT_TRUE(LogContains( 243 EXPECT_TRUE(LogContainsEndEvent(*log, -1, LoadLog::TYPE_SOCKS5_CONNECT));
247 *log, -1, LoadLog::TYPE_SOCKS5_CONNECT, LoadLog::PHASE_END));
248 } 244 }
249 245
250 // Test for partial greet response read 246 // Test for partial greet response read
251 { 247 {
252 const char partial1[] = { 0x05 }; 248 const char partial1[] = { 0x05 };
253 const char partial2[] = { 0x00 }; 249 const char partial2[] = { 0x00 };
254 MockWrite data_writes[] = { 250 MockWrite data_writes[] = {
255 MockWrite(true, kSOCKS5GreetRequest, arraysize(kSOCKS5GreetRequest)), 251 MockWrite(true, kSOCKS5GreetRequest, arraysize(kSOCKS5GreetRequest)),
256 MockWrite(true, kSOCKS5OkRequest, arraysize(kSOCKS5OkRequest)) }; 252 MockWrite(true, kSOCKS5OkRequest, arraysize(kSOCKS5OkRequest)) };
257 MockRead data_reads[] = { 253 MockRead data_reads[] = {
258 MockRead(true, partial1, arraysize(partial1)), 254 MockRead(true, partial1, arraysize(partial1)),
259 MockRead(true, partial2, arraysize(partial2)), 255 MockRead(true, partial2, arraysize(partial2)),
260 MockRead(true, kSOCKS5OkResponse, arraysize(kSOCKS5OkResponse)) }; 256 MockRead(true, kSOCKS5OkResponse, arraysize(kSOCKS5OkResponse)) };
261 user_sock_.reset(BuildMockSocket(data_reads, data_writes, hostname, 80)); 257 user_sock_.reset(BuildMockSocket(data_reads, data_writes, hostname, 80));
262 scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded)); 258 scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded));
263 int rv = user_sock_->Connect(&callback_, log); 259 int rv = user_sock_->Connect(&callback_, log);
264 EXPECT_EQ(ERR_IO_PENDING, rv); 260 EXPECT_EQ(ERR_IO_PENDING, rv);
265 EXPECT_TRUE(LogContains( 261 EXPECT_TRUE(LogContainsBeginEvent(*log, 0, LoadLog::TYPE_SOCKS5_CONNECT));
266 *log, 0, LoadLog::TYPE_SOCKS5_CONNECT, LoadLog::PHASE_BEGIN));
267 rv = callback_.WaitForResult(); 262 rv = callback_.WaitForResult();
268 EXPECT_EQ(OK, rv); 263 EXPECT_EQ(OK, rv);
269 EXPECT_TRUE(user_sock_->IsConnected()); 264 EXPECT_TRUE(user_sock_->IsConnected());
270 EXPECT_TRUE(LogContains( 265 EXPECT_TRUE(LogContainsEndEvent(*log, -1, LoadLog::TYPE_SOCKS5_CONNECT));
271 *log, -1, LoadLog::TYPE_SOCKS5_CONNECT, LoadLog::PHASE_END));
272 } 266 }
273 267
274 // Test for partial handshake request write. 268 // Test for partial handshake request write.
275 { 269 {
276 const int kSplitPoint = 3; // Break handshake write into two parts. 270 const int kSplitPoint = 3; // Break handshake write into two parts.
277 MockWrite data_writes[] = { 271 MockWrite data_writes[] = {
278 MockWrite(true, kSOCKS5GreetRequest, arraysize(kSOCKS5GreetRequest)), 272 MockWrite(true, kSOCKS5GreetRequest, arraysize(kSOCKS5GreetRequest)),
279 MockWrite(true, kSOCKS5OkRequest, kSplitPoint), 273 MockWrite(true, kSOCKS5OkRequest, kSplitPoint),
280 MockWrite(true, kSOCKS5OkRequest + kSplitPoint, 274 MockWrite(true, kSOCKS5OkRequest + kSplitPoint,
281 arraysize(kSOCKS5OkRequest) - kSplitPoint) 275 arraysize(kSOCKS5OkRequest) - kSplitPoint)
282 }; 276 };
283 MockRead data_reads[] = { 277 MockRead data_reads[] = {
284 MockRead(true, kSOCKS5GreetResponse, arraysize(kSOCKS5GreetResponse)), 278 MockRead(true, kSOCKS5GreetResponse, arraysize(kSOCKS5GreetResponse)),
285 MockRead(true, kSOCKS5OkResponse, arraysize(kSOCKS5OkResponse)) }; 279 MockRead(true, kSOCKS5OkResponse, arraysize(kSOCKS5OkResponse)) };
286 user_sock_.reset(BuildMockSocket(data_reads, data_writes, hostname, 80)); 280 user_sock_.reset(BuildMockSocket(data_reads, data_writes, hostname, 80));
287 scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded)); 281 scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded));
288 int rv = user_sock_->Connect(&callback_, log); 282 int rv = user_sock_->Connect(&callback_, log);
289 EXPECT_EQ(ERR_IO_PENDING, rv); 283 EXPECT_EQ(ERR_IO_PENDING, rv);
290 EXPECT_TRUE(LogContains( 284 EXPECT_TRUE(LogContainsBeginEvent(*log, 0, LoadLog::TYPE_SOCKS5_CONNECT));
291 *log, 0, LoadLog::TYPE_SOCKS5_CONNECT, LoadLog::PHASE_BEGIN));
292 rv = callback_.WaitForResult(); 285 rv = callback_.WaitForResult();
293 EXPECT_EQ(OK, rv); 286 EXPECT_EQ(OK, rv);
294 EXPECT_TRUE(user_sock_->IsConnected()); 287 EXPECT_TRUE(user_sock_->IsConnected());
295 EXPECT_TRUE(LogContains( 288 EXPECT_TRUE(LogContainsEndEvent(*log, -1, LoadLog::TYPE_SOCKS5_CONNECT));
296 *log, -1, LoadLog::TYPE_SOCKS5_CONNECT, LoadLog::PHASE_END));
297 } 289 }
298 290
299 // Test for partial handshake response read 291 // Test for partial handshake response read
300 { 292 {
301 const int kSplitPoint = 6; // Break the handshake read into two parts. 293 const int kSplitPoint = 6; // Break the handshake read into two parts.
302 MockWrite data_writes[] = { 294 MockWrite data_writes[] = {
303 MockWrite(true, kSOCKS5GreetRequest, arraysize(kSOCKS5GreetRequest)), 295 MockWrite(true, kSOCKS5GreetRequest, arraysize(kSOCKS5GreetRequest)),
304 MockWrite(true, kSOCKS5OkRequest, arraysize(kSOCKS5OkRequest)) 296 MockWrite(true, kSOCKS5OkRequest, arraysize(kSOCKS5OkRequest))
305 }; 297 };
306 MockRead data_reads[] = { 298 MockRead data_reads[] = {
307 MockRead(true, kSOCKS5GreetResponse, arraysize(kSOCKS5GreetResponse)), 299 MockRead(true, kSOCKS5GreetResponse, arraysize(kSOCKS5GreetResponse)),
308 MockRead(true, kSOCKS5OkResponse, kSplitPoint), 300 MockRead(true, kSOCKS5OkResponse, kSplitPoint),
309 MockRead(true, kSOCKS5OkResponse + kSplitPoint, arraysize(kSOCKS5OkRespo nse) - kSplitPoint) 301 MockRead(true, kSOCKS5OkResponse + kSplitPoint,
302 arraysize(kSOCKS5OkResponse) - kSplitPoint)
310 }; 303 };
311 304
312 user_sock_.reset(BuildMockSocket(data_reads, data_writes, hostname, 80)); 305 user_sock_.reset(BuildMockSocket(data_reads, data_writes, hostname, 80));
313 scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded)); 306 scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded));
314 int rv = user_sock_->Connect(&callback_, log); 307 int rv = user_sock_->Connect(&callback_, log);
315 EXPECT_EQ(ERR_IO_PENDING, rv); 308 EXPECT_EQ(ERR_IO_PENDING, rv);
316 EXPECT_TRUE(LogContains( 309 EXPECT_TRUE(LogContainsBeginEvent(*log, 0, LoadLog::TYPE_SOCKS5_CONNECT));
317 *log, 0, LoadLog::TYPE_SOCKS5_CONNECT, LoadLog::PHASE_BEGIN));
318 rv = callback_.WaitForResult(); 310 rv = callback_.WaitForResult();
319 EXPECT_EQ(OK, rv); 311 EXPECT_EQ(OK, rv);
320 EXPECT_TRUE(user_sock_->IsConnected()); 312 EXPECT_TRUE(user_sock_->IsConnected());
321 EXPECT_TRUE(LogContains( 313 EXPECT_TRUE(LogContainsEndEvent(*log, -1, LoadLog::TYPE_SOCKS5_CONNECT));
322 *log, -1, LoadLog::TYPE_SOCKS5_CONNECT, LoadLog::PHASE_END));
323 } 314 }
324 } 315 }
325 316
326 } // namespace 317 } // namespace
327 318
328 } // namespace net 319 } // namespace net
OLDNEW
« no previous file with comments | « net/socket/client_socket_pool_base_unittest.cc ('k') | net/socket/socks_client_socket_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698