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

Side by Side Diff: net/socket_stream/socket_stream_unittest.cc

Issue 11410066: Revert 167337 - Move url_request_test_util into net namespace (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: 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 "net/socket_stream/socket_stream.h" 5 #include "net/socket_stream/socket_stream.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
11 #include "base/bind_helpers.h" 11 #include "base/bind_helpers.h"
12 #include "base/callback.h" 12 #include "base/callback.h"
13 #include "base/utf_string_conversions.h" 13 #include "base/utf_string_conversions.h"
14 #include "net/base/auth.h" 14 #include "net/base/auth.h"
15 #include "net/base/mock_host_resolver.h" 15 #include "net/base/mock_host_resolver.h"
16 #include "net/base/net_log.h" 16 #include "net/base/net_log.h"
17 #include "net/base/net_log_unittest.h" 17 #include "net/base/net_log_unittest.h"
18 #include "net/base/test_completion_callback.h" 18 #include "net/base/test_completion_callback.h"
19 #include "net/http/http_network_session.h" 19 #include "net/http/http_network_session.h"
20 #include "net/proxy/proxy_service.h" 20 #include "net/proxy/proxy_service.h"
21 #include "net/socket/socket_test_util.h" 21 #include "net/socket/socket_test_util.h"
22 #include "net/url_request/url_request_test_util.h" 22 #include "net/url_request/url_request_test_util.h"
23 #include "testing/gtest/include/gtest/gtest.h" 23 #include "testing/gtest/include/gtest/gtest.h"
24 #include "testing/platform_test.h" 24 #include "testing/platform_test.h"
25 25
26 namespace net {
27
28 namespace { 26 namespace {
29 27
30 struct SocketStreamEvent { 28 struct SocketStreamEvent {
31 enum EventType { 29 enum EventType {
32 EVENT_START_OPEN_CONNECTION, EVENT_CONNECTED, EVENT_SENT_DATA, 30 EVENT_START_OPEN_CONNECTION, EVENT_CONNECTED, EVENT_SENT_DATA,
33 EVENT_RECEIVED_DATA, EVENT_CLOSE, EVENT_AUTH_REQUIRED, EVENT_ERROR, 31 EVENT_RECEIVED_DATA, EVENT_CLOSE, EVENT_AUTH_REQUIRED, EVENT_ERROR,
34 }; 32 };
35 33
36 SocketStreamEvent(EventType type, 34 SocketStreamEvent(EventType type,
37 SocketStream* socket_stream, 35 net::SocketStream* socket_stream,
38 int num, 36 int num,
39 const std::string& str, 37 const std::string& str,
40 AuthChallengeInfo* auth_challenge_info, 38 net::AuthChallengeInfo* auth_challenge_info,
41 int error) 39 int error)
42 : event_type(type), socket(socket_stream), number(num), data(str), 40 : event_type(type), socket(socket_stream), number(num), data(str),
43 auth_info(auth_challenge_info), error_code(error) {} 41 auth_info(auth_challenge_info), error_code(error) {}
44 42
45 EventType event_type; 43 EventType event_type;
46 SocketStream* socket; 44 net::SocketStream* socket;
47 int number; 45 int number;
48 std::string data; 46 std::string data;
49 scoped_refptr<AuthChallengeInfo> auth_info; 47 scoped_refptr<net::AuthChallengeInfo> auth_info;
50 int error_code; 48 int error_code;
51 }; 49 };
52 50
53 class SocketStreamEventRecorder : public SocketStream::Delegate { 51 class SocketStreamEventRecorder : public net::SocketStream::Delegate {
54 public: 52 public:
55 explicit SocketStreamEventRecorder(const CompletionCallback& callback) 53 explicit SocketStreamEventRecorder(const net::CompletionCallback& callback)
56 : callback_(callback) {} 54 : callback_(callback) {}
57 virtual ~SocketStreamEventRecorder() {} 55 virtual ~SocketStreamEventRecorder() {}
58 56
59 void SetOnStartOpenConnection( 57 void SetOnStartOpenConnection(
60 const base::Callback<int(SocketStreamEvent*)>& callback) { 58 const base::Callback<int(SocketStreamEvent*)>& callback) {
61 on_start_open_connection_ = callback; 59 on_start_open_connection_ = callback;
62 } 60 }
63 void SetOnConnected( 61 void SetOnConnected(
64 const base::Callback<void(SocketStreamEvent*)>& callback) { 62 const base::Callback<void(SocketStreamEvent*)>& callback) {
65 on_connected_ = callback; 63 on_connected_ = callback;
(...skipping 11 matching lines...) Expand all
77 } 75 }
78 void SetOnAuthRequired( 76 void SetOnAuthRequired(
79 const base::Callback<void(SocketStreamEvent*)>& callback) { 77 const base::Callback<void(SocketStreamEvent*)>& callback) {
80 on_auth_required_ = callback; 78 on_auth_required_ = callback;
81 } 79 }
82 void SetOnError(const base::Callback<void(SocketStreamEvent*)>& callback) { 80 void SetOnError(const base::Callback<void(SocketStreamEvent*)>& callback) {
83 on_error_ = callback; 81 on_error_ = callback;
84 } 82 }
85 83
86 virtual int OnStartOpenConnection( 84 virtual int OnStartOpenConnection(
87 SocketStream* socket, 85 net::SocketStream* socket,
88 const CompletionCallback& callback) OVERRIDE { 86 const net::CompletionCallback& callback) OVERRIDE {
89 connection_callback_ = callback; 87 connection_callback_ = callback;
90 events_.push_back( 88 events_.push_back(
91 SocketStreamEvent(SocketStreamEvent::EVENT_START_OPEN_CONNECTION, 89 SocketStreamEvent(SocketStreamEvent::EVENT_START_OPEN_CONNECTION,
92 socket, 0, std::string(), NULL, OK)); 90 socket, 0, std::string(), NULL, net::OK));
93 if (!on_start_open_connection_.is_null()) 91 if (!on_start_open_connection_.is_null())
94 return on_start_open_connection_.Run(&events_.back()); 92 return on_start_open_connection_.Run(&events_.back());
95 return OK; 93 return net::OK;
96 } 94 }
97 virtual void OnConnected(SocketStream* socket, 95 virtual void OnConnected(net::SocketStream* socket,
98 int num_pending_send_allowed) OVERRIDE { 96 int num_pending_send_allowed) OVERRIDE {
99 events_.push_back( 97 events_.push_back(
100 SocketStreamEvent(SocketStreamEvent::EVENT_CONNECTED, 98 SocketStreamEvent(SocketStreamEvent::EVENT_CONNECTED,
101 socket, num_pending_send_allowed, std::string(), 99 socket, num_pending_send_allowed, std::string(),
102 NULL, OK)); 100 NULL, net::OK));
103 if (!on_connected_.is_null()) 101 if (!on_connected_.is_null())
104 on_connected_.Run(&events_.back()); 102 on_connected_.Run(&events_.back());
105 } 103 }
106 virtual void OnSentData(SocketStream* socket, 104 virtual void OnSentData(net::SocketStream* socket,
107 int amount_sent) OVERRIDE { 105 int amount_sent) OVERRIDE {
108 events_.push_back( 106 events_.push_back(
109 SocketStreamEvent(SocketStreamEvent::EVENT_SENT_DATA, socket, 107 SocketStreamEvent(SocketStreamEvent::EVENT_SENT_DATA, socket,
110 amount_sent, std::string(), NULL, OK)); 108 amount_sent, std::string(), NULL, net::OK));
111 if (!on_sent_data_.is_null()) 109 if (!on_sent_data_.is_null())
112 on_sent_data_.Run(&events_.back()); 110 on_sent_data_.Run(&events_.back());
113 } 111 }
114 virtual void OnReceivedData(SocketStream* socket, 112 virtual void OnReceivedData(net::SocketStream* socket,
115 const char* data, int len) OVERRIDE { 113 const char* data, int len) OVERRIDE {
116 events_.push_back( 114 events_.push_back(
117 SocketStreamEvent(SocketStreamEvent::EVENT_RECEIVED_DATA, socket, len, 115 SocketStreamEvent(SocketStreamEvent::EVENT_RECEIVED_DATA, socket, len,
118 std::string(data, len), NULL, OK)); 116 std::string(data, len), NULL, net::OK));
119 if (!on_received_data_.is_null()) 117 if (!on_received_data_.is_null())
120 on_received_data_.Run(&events_.back()); 118 on_received_data_.Run(&events_.back());
121 } 119 }
122 virtual void OnClose(SocketStream* socket) OVERRIDE { 120 virtual void OnClose(net::SocketStream* socket) OVERRIDE {
123 events_.push_back( 121 events_.push_back(
124 SocketStreamEvent(SocketStreamEvent::EVENT_CLOSE, socket, 0, 122 SocketStreamEvent(SocketStreamEvent::EVENT_CLOSE, socket, 0,
125 std::string(), NULL, OK)); 123 std::string(), NULL, net::OK));
126 if (!on_close_.is_null()) 124 if (!on_close_.is_null())
127 on_close_.Run(&events_.back()); 125 on_close_.Run(&events_.back());
128 if (!callback_.is_null()) 126 if (!callback_.is_null())
129 callback_.Run(OK); 127 callback_.Run(net::OK);
130 } 128 }
131 virtual void OnAuthRequired(SocketStream* socket, 129 virtual void OnAuthRequired(net::SocketStream* socket,
132 AuthChallengeInfo* auth_info) OVERRIDE { 130 net::AuthChallengeInfo* auth_info) OVERRIDE {
133 events_.push_back( 131 events_.push_back(
134 SocketStreamEvent(SocketStreamEvent::EVENT_AUTH_REQUIRED, socket, 0, 132 SocketStreamEvent(SocketStreamEvent::EVENT_AUTH_REQUIRED, socket, 0,
135 std::string(), auth_info, OK)); 133 std::string(), auth_info, net::OK));
136 if (!on_auth_required_.is_null()) 134 if (!on_auth_required_.is_null())
137 on_auth_required_.Run(&events_.back()); 135 on_auth_required_.Run(&events_.back());
138 } 136 }
139 virtual void OnError(const SocketStream* socket, int error) OVERRIDE { 137 virtual void OnError(const net::SocketStream* socket, int error) OVERRIDE {
140 events_.push_back( 138 events_.push_back(
141 SocketStreamEvent(SocketStreamEvent::EVENT_ERROR, NULL, 0, 139 SocketStreamEvent(SocketStreamEvent::EVENT_ERROR, NULL, 0,
142 std::string(), NULL, error)); 140 std::string(), NULL, error));
143 if (!on_error_.is_null()) 141 if (!on_error_.is_null())
144 on_error_.Run(&events_.back()); 142 on_error_.Run(&events_.back());
145 if (!callback_.is_null()) 143 if (!callback_.is_null())
146 callback_.Run(error); 144 callback_.Run(error);
147 } 145 }
148 146
149 void DoClose(SocketStreamEvent* event) { 147 void DoClose(SocketStreamEvent* event) {
150 event->socket->Close(); 148 event->socket->Close();
151 } 149 }
152 void DoRestartWithAuth(SocketStreamEvent* event) { 150 void DoRestartWithAuth(SocketStreamEvent* event) {
153 VLOG(1) << "RestartWithAuth username=" << credentials_.username() 151 VLOG(1) << "RestartWithAuth username=" << credentials_.username()
154 << " password=" << credentials_.password(); 152 << " password=" << credentials_.password();
155 event->socket->RestartWithAuth(credentials_); 153 event->socket->RestartWithAuth(credentials_);
156 } 154 }
157 void SetAuthInfo(const AuthCredentials& credentials) { 155 void SetAuthInfo(const net::AuthCredentials& credentials) {
158 credentials_ = credentials; 156 credentials_ = credentials;
159 } 157 }
160 void CompleteConnection(int result) { 158 void CompleteConnection(int result) {
161 connection_callback_.Run(result); 159 connection_callback_.Run(result);
162 } 160 }
163 161
164 const std::vector<SocketStreamEvent>& GetSeenEvents() const { 162 const std::vector<SocketStreamEvent>& GetSeenEvents() const {
165 return events_; 163 return events_;
166 } 164 }
167 165
168 private: 166 private:
169 std::vector<SocketStreamEvent> events_; 167 std::vector<SocketStreamEvent> events_;
170 base::Callback<int(SocketStreamEvent*)> on_start_open_connection_; 168 base::Callback<int(SocketStreamEvent*)> on_start_open_connection_;
171 base::Callback<void(SocketStreamEvent*)> on_connected_; 169 base::Callback<void(SocketStreamEvent*)> on_connected_;
172 base::Callback<void(SocketStreamEvent*)> on_sent_data_; 170 base::Callback<void(SocketStreamEvent*)> on_sent_data_;
173 base::Callback<void(SocketStreamEvent*)> on_received_data_; 171 base::Callback<void(SocketStreamEvent*)> on_received_data_;
174 base::Callback<void(SocketStreamEvent*)> on_close_; 172 base::Callback<void(SocketStreamEvent*)> on_close_;
175 base::Callback<void(SocketStreamEvent*)> on_auth_required_; 173 base::Callback<void(SocketStreamEvent*)> on_auth_required_;
176 base::Callback<void(SocketStreamEvent*)> on_error_; 174 base::Callback<void(SocketStreamEvent*)> on_error_;
177 const CompletionCallback callback_; 175 const net::CompletionCallback callback_;
178 CompletionCallback connection_callback_; 176 net::CompletionCallback connection_callback_;
179 AuthCredentials credentials_; 177 net::AuthCredentials credentials_;
180 178
181 DISALLOW_COPY_AND_ASSIGN(SocketStreamEventRecorder); 179 DISALLOW_COPY_AND_ASSIGN(SocketStreamEventRecorder);
182 }; 180 };
183 181
184 class TestURLRequestContextWithProxy : public TestURLRequestContext { 182 class TestURLRequestContextWithProxy : public TestURLRequestContext {
185 public: 183 public:
186 explicit TestURLRequestContextWithProxy(const std::string& proxy) 184 explicit TestURLRequestContextWithProxy(const std::string& proxy)
187 : TestURLRequestContext(true) { 185 : TestURLRequestContext(true) {
188 context_storage_.set_proxy_service(ProxyService::CreateFixed(proxy)); 186 context_storage_.set_proxy_service(net::ProxyService::CreateFixed(proxy));
189 Init(); 187 Init();
190 } 188 }
191 virtual ~TestURLRequestContextWithProxy() {} 189 virtual ~TestURLRequestContextWithProxy() {}
192 }; 190 };
193 191
194 class TestSocketStreamNetworkDelegate : public TestNetworkDelegate { 192 class TestSocketStreamNetworkDelegate : public TestNetworkDelegate {
195 public: 193 public:
196 TestSocketStreamNetworkDelegate() 194 TestSocketStreamNetworkDelegate()
197 : before_connect_result_(OK) {} 195 : before_connect_result_(net::OK) {}
198 virtual ~TestSocketStreamNetworkDelegate() {} 196 virtual ~TestSocketStreamNetworkDelegate() {}
199 197
200 virtual int OnBeforeSocketStreamConnect( 198 virtual int OnBeforeSocketStreamConnect(
201 SocketStream* stream, 199 net::SocketStream* stream,
202 const CompletionCallback& callback) OVERRIDE { 200 const net::CompletionCallback& callback) OVERRIDE {
203 return before_connect_result_; 201 return before_connect_result_;
204 } 202 }
205 203
206 void SetBeforeConnectResult(int result) { 204 void SetBeforeConnectResult(int result) {
207 before_connect_result_ = result; 205 before_connect_result_ = result;
208 } 206 }
209 207
210 private: 208 private:
211 int before_connect_result_; 209 int before_connect_result_;
212 }; 210 };
213 211
214 } // namespace 212 } // namespace
215 213
214 namespace net {
215
216 class SocketStreamTest : public PlatformTest { 216 class SocketStreamTest : public PlatformTest {
217 public: 217 public:
218 virtual ~SocketStreamTest() {} 218 virtual ~SocketStreamTest() {}
219 virtual void SetUp() { 219 virtual void SetUp() {
220 mock_socket_factory_.reset(); 220 mock_socket_factory_.reset();
221 handshake_request_ = kWebSocketHandshakeRequest; 221 handshake_request_ = kWebSocketHandshakeRequest;
222 handshake_response_ = kWebSocketHandshakeResponse; 222 handshake_response_ = kWebSocketHandshakeResponse;
223 } 223 }
224 virtual void TearDown() { 224 virtual void TearDown() {
225 mock_socket_factory_.reset(); 225 mock_socket_factory_.reset();
(...skipping 26 matching lines...) Expand all
252 frame.insert(frame.end(), messages_[i].begin(), messages_[i].end()); 252 frame.insert(frame.end(), messages_[i].begin(), messages_[i].end());
253 frame.push_back('\xff'); 253 frame.push_back('\xff');
254 EXPECT_TRUE(event->socket->SendData(&frame[0], frame.size())); 254 EXPECT_TRUE(event->socket->SendData(&frame[0], frame.size()));
255 } 255 }
256 // Actual StreamSocket close must happen after all frames queued by 256 // Actual StreamSocket close must happen after all frames queued by
257 // SendData above are sent out. 257 // SendData above are sent out.
258 event->socket->Close(); 258 event->socket->Close();
259 } 259 }
260 260
261 virtual int DoSwitchToSpdyTest(SocketStreamEvent* event) { 261 virtual int DoSwitchToSpdyTest(SocketStreamEvent* event) {
262 return ERR_PROTOCOL_SWITCHED; 262 return net::ERR_PROTOCOL_SWITCHED;
263 } 263 }
264 264
265 virtual int DoIOPending(SocketStreamEvent* event) { 265 virtual int DoIOPending(SocketStreamEvent* event) {
266 io_test_callback_.callback().Run(OK); 266 io_test_callback_.callback().Run(net::OK);
267 return ERR_IO_PENDING; 267 return net::ERR_IO_PENDING;
268 } 268 }
269 269
270 static const char kWebSocketHandshakeRequest[]; 270 static const char kWebSocketHandshakeRequest[];
271 static const char kWebSocketHandshakeResponse[]; 271 static const char kWebSocketHandshakeResponse[];
272 272
273 protected: 273 protected:
274 TestCompletionCallback io_test_callback_; 274 TestCompletionCallback io_test_callback_;
275 275
276 private: 276 private:
277 std::string handshake_request_; 277 std::string handshake_request_;
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
352 ASSERT_EQ(8U, events.size()); 352 ASSERT_EQ(8U, events.size());
353 353
354 EXPECT_EQ(SocketStreamEvent::EVENT_START_OPEN_CONNECTION, 354 EXPECT_EQ(SocketStreamEvent::EVENT_START_OPEN_CONNECTION,
355 events[0].event_type); 355 events[0].event_type);
356 EXPECT_EQ(SocketStreamEvent::EVENT_CONNECTED, events[1].event_type); 356 EXPECT_EQ(SocketStreamEvent::EVENT_CONNECTED, events[1].event_type);
357 EXPECT_EQ(SocketStreamEvent::EVENT_SENT_DATA, events[2].event_type); 357 EXPECT_EQ(SocketStreamEvent::EVENT_SENT_DATA, events[2].event_type);
358 EXPECT_EQ(SocketStreamEvent::EVENT_RECEIVED_DATA, events[3].event_type); 358 EXPECT_EQ(SocketStreamEvent::EVENT_RECEIVED_DATA, events[3].event_type);
359 EXPECT_EQ(SocketStreamEvent::EVENT_SENT_DATA, events[4].event_type); 359 EXPECT_EQ(SocketStreamEvent::EVENT_SENT_DATA, events[4].event_type);
360 EXPECT_EQ(SocketStreamEvent::EVENT_SENT_DATA, events[5].event_type); 360 EXPECT_EQ(SocketStreamEvent::EVENT_SENT_DATA, events[5].event_type);
361 EXPECT_EQ(SocketStreamEvent::EVENT_ERROR, events[6].event_type); 361 EXPECT_EQ(SocketStreamEvent::EVENT_ERROR, events[6].event_type);
362 EXPECT_EQ(ERR_CONNECTION_CLOSED, events[6].error_code); 362 EXPECT_EQ(net::ERR_CONNECTION_CLOSED, events[6].error_code);
363 EXPECT_EQ(SocketStreamEvent::EVENT_CLOSE, events[7].event_type); 363 EXPECT_EQ(SocketStreamEvent::EVENT_CLOSE, events[7].event_type);
364 } 364 }
365 365
366 TEST_F(SocketStreamTest, BasicAuthProxy) { 366 TEST_F(SocketStreamTest, BasicAuthProxy) {
367 MockClientSocketFactory mock_socket_factory; 367 MockClientSocketFactory mock_socket_factory;
368 MockWrite data_writes1[] = { 368 MockWrite data_writes1[] = {
369 MockWrite("CONNECT example.com:80 HTTP/1.1\r\n" 369 MockWrite("CONNECT example.com:80 HTTP/1.1\r\n"
370 "Host: example.com\r\n" 370 "Host: example.com\r\n"
371 "Proxy-Connection: keep-alive\r\n\r\n"), 371 "Proxy-Connection: keep-alive\r\n\r\n"),
372 }; 372 };
(...skipping 24 matching lines...) Expand all
397 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), 397 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2),
398 data_writes2, arraysize(data_writes2)); 398 data_writes2, arraysize(data_writes2));
399 mock_socket_factory.AddSocketDataProvider(&data2); 399 mock_socket_factory.AddSocketDataProvider(&data2);
400 400
401 TestCompletionCallback test_callback; 401 TestCompletionCallback test_callback;
402 402
403 scoped_ptr<SocketStreamEventRecorder> delegate( 403 scoped_ptr<SocketStreamEventRecorder> delegate(
404 new SocketStreamEventRecorder(test_callback.callback())); 404 new SocketStreamEventRecorder(test_callback.callback()));
405 delegate->SetOnConnected(base::Bind(&SocketStreamEventRecorder::DoClose, 405 delegate->SetOnConnected(base::Bind(&SocketStreamEventRecorder::DoClose,
406 base::Unretained(delegate.get()))); 406 base::Unretained(delegate.get())));
407 delegate->SetAuthInfo(AuthCredentials(ASCIIToUTF16("foo"), 407 delegate->SetAuthInfo(net::AuthCredentials(ASCIIToUTF16("foo"),
408 ASCIIToUTF16("bar"))); 408 ASCIIToUTF16("bar")));
409 delegate->SetOnAuthRequired(base::Bind( 409 delegate->SetOnAuthRequired(base::Bind(
410 &SocketStreamEventRecorder::DoRestartWithAuth, 410 &SocketStreamEventRecorder::DoRestartWithAuth,
411 base::Unretained(delegate.get()))); 411 base::Unretained(delegate.get())));
412 412
413 scoped_refptr<SocketStream> socket_stream( 413 scoped_refptr<SocketStream> socket_stream(
414 new SocketStream(GURL("ws://example.com/demo"), delegate.get())); 414 new SocketStream(GURL("ws://example.com/demo"), delegate.get()));
415 415
416 TestURLRequestContextWithProxy context("myproxy:70"); 416 TestURLRequestContextWithProxy context("myproxy:70");
417 417
418 socket_stream->set_context(&context); 418 socket_stream->set_context(&context);
419 socket_stream->SetClientSocketFactory(&mock_socket_factory); 419 socket_stream->SetClientSocketFactory(&mock_socket_factory);
420 420
421 socket_stream->Connect(); 421 socket_stream->Connect();
422 422
423 test_callback.WaitForResult(); 423 test_callback.WaitForResult();
424 424
425 const std::vector<SocketStreamEvent>& events = delegate->GetSeenEvents(); 425 const std::vector<SocketStreamEvent>& events = delegate->GetSeenEvents();
426 ASSERT_EQ(5U, events.size()); 426 ASSERT_EQ(5U, events.size());
427 427
428 EXPECT_EQ(SocketStreamEvent::EVENT_START_OPEN_CONNECTION, 428 EXPECT_EQ(SocketStreamEvent::EVENT_START_OPEN_CONNECTION,
429 events[0].event_type); 429 events[0].event_type);
430 EXPECT_EQ(SocketStreamEvent::EVENT_AUTH_REQUIRED, events[1].event_type); 430 EXPECT_EQ(SocketStreamEvent::EVENT_AUTH_REQUIRED, events[1].event_type);
431 EXPECT_EQ(SocketStreamEvent::EVENT_CONNECTED, events[2].event_type); 431 EXPECT_EQ(SocketStreamEvent::EVENT_CONNECTED, events[2].event_type);
432 EXPECT_EQ(SocketStreamEvent::EVENT_ERROR, events[3].event_type); 432 EXPECT_EQ(SocketStreamEvent::EVENT_ERROR, events[3].event_type);
433 EXPECT_EQ(ERR_ABORTED, events[3].error_code); 433 EXPECT_EQ(net::ERR_ABORTED, events[3].error_code);
434 EXPECT_EQ(SocketStreamEvent::EVENT_CLOSE, events[4].event_type); 434 EXPECT_EQ(SocketStreamEvent::EVENT_CLOSE, events[4].event_type);
435 435
436 // TODO(eroman): Add back NetLogTest here... 436 // TODO(eroman): Add back NetLogTest here...
437 } 437 }
438 438
439 TEST_F(SocketStreamTest, BasicAuthProxyWithAuthCache) { 439 TEST_F(SocketStreamTest, BasicAuthProxyWithAuthCache) {
440 MockClientSocketFactory mock_socket_factory; 440 MockClientSocketFactory mock_socket_factory;
441 MockWrite data_writes[] = { 441 MockWrite data_writes[] = {
442 // WebSocket(SocketStream) always uses CONNECT when it is configured to use 442 // WebSocket(SocketStream) always uses CONNECT when it is configured to use
443 // proxy so the port may not be 443. 443 // proxy so the port may not be 443.
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
481 481
482 socket_stream->Connect(); 482 socket_stream->Connect();
483 483
484 test_callback.WaitForResult(); 484 test_callback.WaitForResult();
485 485
486 const std::vector<SocketStreamEvent>& events = delegate->GetSeenEvents(); 486 const std::vector<SocketStreamEvent>& events = delegate->GetSeenEvents();
487 ASSERT_EQ(4U, events.size()); 487 ASSERT_EQ(4U, events.size());
488 EXPECT_EQ(SocketStreamEvent::EVENT_START_OPEN_CONNECTION, 488 EXPECT_EQ(SocketStreamEvent::EVENT_START_OPEN_CONNECTION,
489 events[0].event_type); 489 events[0].event_type);
490 EXPECT_EQ(SocketStreamEvent::EVENT_CONNECTED, events[1].event_type); 490 EXPECT_EQ(SocketStreamEvent::EVENT_CONNECTED, events[1].event_type);
491 EXPECT_EQ(ERR_ABORTED, events[2].error_code); 491 EXPECT_EQ(net::ERR_ABORTED, events[2].error_code);
492 EXPECT_EQ(SocketStreamEvent::EVENT_CLOSE, events[3].event_type); 492 EXPECT_EQ(SocketStreamEvent::EVENT_CLOSE, events[3].event_type);
493 } 493 }
494 494
495 TEST_F(SocketStreamTest, WSSBasicAuthProxyWithAuthCache) { 495 TEST_F(SocketStreamTest, WSSBasicAuthProxyWithAuthCache) {
496 MockClientSocketFactory mock_socket_factory; 496 MockClientSocketFactory mock_socket_factory;
497 MockWrite data_writes1[] = { 497 MockWrite data_writes1[] = {
498 MockWrite("CONNECT example.com:443 HTTP/1.1\r\n" 498 MockWrite("CONNECT example.com:443 HTTP/1.1\r\n"
499 "Host: example.com\r\n" 499 "Host: example.com\r\n"
500 "Proxy-Connection: keep-alive\r\n" 500 "Proxy-Connection: keep-alive\r\n"
501 "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n\r\n"), 501 "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
538 538
539 socket_stream->Connect(); 539 socket_stream->Connect();
540 540
541 test_callback.WaitForResult(); 541 test_callback.WaitForResult();
542 542
543 const std::vector<SocketStreamEvent>& events = delegate->GetSeenEvents(); 543 const std::vector<SocketStreamEvent>& events = delegate->GetSeenEvents();
544 ASSERT_EQ(4U, events.size()); 544 ASSERT_EQ(4U, events.size());
545 EXPECT_EQ(SocketStreamEvent::EVENT_START_OPEN_CONNECTION, 545 EXPECT_EQ(SocketStreamEvent::EVENT_START_OPEN_CONNECTION,
546 events[0].event_type); 546 events[0].event_type);
547 EXPECT_EQ(SocketStreamEvent::EVENT_CONNECTED, events[1].event_type); 547 EXPECT_EQ(SocketStreamEvent::EVENT_CONNECTED, events[1].event_type);
548 EXPECT_EQ(ERR_ABORTED, events[2].error_code); 548 EXPECT_EQ(net::ERR_ABORTED, events[2].error_code);
549 EXPECT_EQ(SocketStreamEvent::EVENT_CLOSE, events[3].event_type); 549 EXPECT_EQ(SocketStreamEvent::EVENT_CLOSE, events[3].event_type);
550 } 550 }
551 551
552 TEST_F(SocketStreamTest, IOPending) { 552 TEST_F(SocketStreamTest, IOPending) {
553 TestCompletionCallback test_callback; 553 TestCompletionCallback test_callback;
554 554
555 scoped_ptr<SocketStreamEventRecorder> delegate( 555 scoped_ptr<SocketStreamEventRecorder> delegate(
556 new SocketStreamEventRecorder(test_callback.callback())); 556 new SocketStreamEventRecorder(test_callback.callback()));
557 delegate->SetOnConnected(base::Bind( 557 delegate->SetOnConnected(base::Bind(
558 &SocketStreamTest::DoSendWebSocketHandshake, base::Unretained(this))); 558 &SocketStreamTest::DoSendWebSocketHandshake, base::Unretained(this)));
(...skipping 28 matching lines...) Expand all
587 data_writes, arraysize(data_writes)); 587 data_writes, arraysize(data_writes));
588 588
589 MockClientSocketFactory* mock_socket_factory = 589 MockClientSocketFactory* mock_socket_factory =
590 GetMockClientSocketFactory(); 590 GetMockClientSocketFactory();
591 mock_socket_factory->AddSocketDataProvider(&data_provider); 591 mock_socket_factory->AddSocketDataProvider(&data_provider);
592 592
593 socket_stream->SetClientSocketFactory(mock_socket_factory); 593 socket_stream->SetClientSocketFactory(mock_socket_factory);
594 594
595 socket_stream->Connect(); 595 socket_stream->Connect();
596 io_test_callback_.WaitForResult(); 596 io_test_callback_.WaitForResult();
597 EXPECT_EQ(SocketStream::STATE_RESOLVE_PROTOCOL_COMPLETE, 597 EXPECT_EQ(net::SocketStream::STATE_RESOLVE_PROTOCOL_COMPLETE,
598 socket_stream->next_state_); 598 socket_stream->next_state_);
599 delegate->CompleteConnection(OK); 599 delegate->CompleteConnection(net::OK);
600 600
601 EXPECT_EQ(OK, test_callback.WaitForResult()); 601 EXPECT_EQ(net::OK, test_callback.WaitForResult());
602 602
603 const std::vector<SocketStreamEvent>& events = delegate->GetSeenEvents(); 603 const std::vector<SocketStreamEvent>& events = delegate->GetSeenEvents();
604 ASSERT_EQ(8U, events.size()); 604 ASSERT_EQ(8U, events.size());
605 605
606 EXPECT_EQ(SocketStreamEvent::EVENT_START_OPEN_CONNECTION, 606 EXPECT_EQ(SocketStreamEvent::EVENT_START_OPEN_CONNECTION,
607 events[0].event_type); 607 events[0].event_type);
608 EXPECT_EQ(SocketStreamEvent::EVENT_CONNECTED, events[1].event_type); 608 EXPECT_EQ(SocketStreamEvent::EVENT_CONNECTED, events[1].event_type);
609 EXPECT_EQ(SocketStreamEvent::EVENT_SENT_DATA, events[2].event_type); 609 EXPECT_EQ(SocketStreamEvent::EVENT_SENT_DATA, events[2].event_type);
610 EXPECT_EQ(SocketStreamEvent::EVENT_RECEIVED_DATA, events[3].event_type); 610 EXPECT_EQ(SocketStreamEvent::EVENT_RECEIVED_DATA, events[3].event_type);
611 EXPECT_EQ(SocketStreamEvent::EVENT_SENT_DATA, events[4].event_type); 611 EXPECT_EQ(SocketStreamEvent::EVENT_SENT_DATA, events[4].event_type);
612 EXPECT_EQ(SocketStreamEvent::EVENT_SENT_DATA, events[5].event_type); 612 EXPECT_EQ(SocketStreamEvent::EVENT_SENT_DATA, events[5].event_type);
613 EXPECT_EQ(SocketStreamEvent::EVENT_ERROR, events[6].event_type); 613 EXPECT_EQ(SocketStreamEvent::EVENT_ERROR, events[6].event_type);
614 EXPECT_EQ(ERR_CONNECTION_CLOSED, events[6].error_code); 614 EXPECT_EQ(net::ERR_CONNECTION_CLOSED, events[6].error_code);
615 EXPECT_EQ(SocketStreamEvent::EVENT_CLOSE, events[7].event_type); 615 EXPECT_EQ(SocketStreamEvent::EVENT_CLOSE, events[7].event_type);
616 } 616 }
617 617
618 TEST_F(SocketStreamTest, SwitchToSpdy) { 618 TEST_F(SocketStreamTest, SwitchToSpdy) {
619 TestCompletionCallback test_callback; 619 TestCompletionCallback test_callback;
620 620
621 scoped_ptr<SocketStreamEventRecorder> delegate( 621 scoped_ptr<SocketStreamEventRecorder> delegate(
622 new SocketStreamEventRecorder(test_callback.callback())); 622 new SocketStreamEventRecorder(test_callback.callback()));
623 delegate->SetOnStartOpenConnection(base::Bind( 623 delegate->SetOnStartOpenConnection(base::Bind(
624 &SocketStreamTest::DoSwitchToSpdyTest, base::Unretained(this))); 624 &SocketStreamTest::DoSwitchToSpdyTest, base::Unretained(this)));
625 625
626 TestURLRequestContext context; 626 TestURLRequestContext context;
627 627
628 scoped_refptr<SocketStream> socket_stream( 628 scoped_refptr<SocketStream> socket_stream(
629 new SocketStream(GURL("ws://example.com/demo"), delegate.get())); 629 new SocketStream(GURL("ws://example.com/demo"), delegate.get()));
630 630
631 socket_stream->set_context(&context); 631 socket_stream->set_context(&context);
632 632
633 socket_stream->Connect(); 633 socket_stream->Connect();
634 634
635 EXPECT_EQ(ERR_PROTOCOL_SWITCHED, test_callback.WaitForResult()); 635 EXPECT_EQ(net::ERR_PROTOCOL_SWITCHED, test_callback.WaitForResult());
636 636
637 const std::vector<SocketStreamEvent>& events = delegate->GetSeenEvents(); 637 const std::vector<SocketStreamEvent>& events = delegate->GetSeenEvents();
638 ASSERT_EQ(2U, events.size()); 638 ASSERT_EQ(2U, events.size());
639 639
640 EXPECT_EQ(SocketStreamEvent::EVENT_START_OPEN_CONNECTION, 640 EXPECT_EQ(SocketStreamEvent::EVENT_START_OPEN_CONNECTION,
641 events[0].event_type); 641 events[0].event_type);
642 EXPECT_EQ(SocketStreamEvent::EVENT_ERROR, events[1].event_type); 642 EXPECT_EQ(SocketStreamEvent::EVENT_ERROR, events[1].event_type);
643 EXPECT_EQ(ERR_PROTOCOL_SWITCHED, events[1].error_code); 643 EXPECT_EQ(net::ERR_PROTOCOL_SWITCHED, events[1].error_code);
644 } 644 }
645 645
646 TEST_F(SocketStreamTest, SwitchAfterPending) { 646 TEST_F(SocketStreamTest, SwitchAfterPending) {
647 TestCompletionCallback test_callback; 647 TestCompletionCallback test_callback;
648 648
649 scoped_ptr<SocketStreamEventRecorder> delegate( 649 scoped_ptr<SocketStreamEventRecorder> delegate(
650 new SocketStreamEventRecorder(test_callback.callback())); 650 new SocketStreamEventRecorder(test_callback.callback()));
651 delegate->SetOnStartOpenConnection(base::Bind( 651 delegate->SetOnStartOpenConnection(base::Bind(
652 &SocketStreamTest::DoIOPending, base::Unretained(this))); 652 &SocketStreamTest::DoIOPending, base::Unretained(this)));
653 653
654 TestURLRequestContext context; 654 TestURLRequestContext context;
655 655
656 scoped_refptr<SocketStream> socket_stream( 656 scoped_refptr<SocketStream> socket_stream(
657 new SocketStream(GURL("ws://example.com/demo"), delegate.get())); 657 new SocketStream(GURL("ws://example.com/demo"), delegate.get()));
658 658
659 socket_stream->set_context(&context); 659 socket_stream->set_context(&context);
660 660
661 socket_stream->Connect(); 661 socket_stream->Connect();
662 io_test_callback_.WaitForResult(); 662 io_test_callback_.WaitForResult();
663 EXPECT_EQ(SocketStream::STATE_RESOLVE_PROTOCOL_COMPLETE, 663 EXPECT_EQ(net::SocketStream::STATE_RESOLVE_PROTOCOL_COMPLETE,
664 socket_stream->next_state_); 664 socket_stream->next_state_);
665 delegate->CompleteConnection(ERR_PROTOCOL_SWITCHED); 665 delegate->CompleteConnection(net::ERR_PROTOCOL_SWITCHED);
666 666
667 EXPECT_EQ(ERR_PROTOCOL_SWITCHED, test_callback.WaitForResult()); 667 EXPECT_EQ(net::ERR_PROTOCOL_SWITCHED, test_callback.WaitForResult());
668 668
669 const std::vector<SocketStreamEvent>& events = delegate->GetSeenEvents(); 669 const std::vector<SocketStreamEvent>& events = delegate->GetSeenEvents();
670 ASSERT_EQ(2U, events.size()); 670 ASSERT_EQ(2U, events.size());
671 671
672 EXPECT_EQ(SocketStreamEvent::EVENT_START_OPEN_CONNECTION, 672 EXPECT_EQ(SocketStreamEvent::EVENT_START_OPEN_CONNECTION,
673 events[0].event_type); 673 events[0].event_type);
674 EXPECT_EQ(SocketStreamEvent::EVENT_ERROR, events[1].event_type); 674 EXPECT_EQ(SocketStreamEvent::EVENT_ERROR, events[1].event_type);
675 EXPECT_EQ(ERR_PROTOCOL_SWITCHED, events[1].error_code); 675 EXPECT_EQ(net::ERR_PROTOCOL_SWITCHED, events[1].error_code);
676 } 676 }
677 677
678 // Test a connection though a secure proxy. 678 // Test a connection though a secure proxy.
679 TEST_F(SocketStreamTest, SecureProxyConnectError) { 679 TEST_F(SocketStreamTest, SecureProxyConnectError) {
680 MockClientSocketFactory mock_socket_factory; 680 MockClientSocketFactory mock_socket_factory;
681 MockWrite data_writes[] = { 681 MockWrite data_writes[] = {
682 MockWrite("CONNECT example.com:80 HTTP/1.1\r\n" 682 MockWrite("CONNECT example.com:80 HTTP/1.1\r\n"
683 "Host: example.com\r\n" 683 "Host: example.com\r\n"
684 "Proxy-Connection: keep-alive\r\n\r\n") 684 "Proxy-Connection: keep-alive\r\n\r\n")
685 }; 685 };
(...skipping 29 matching lines...) Expand all
715 socket_stream->Connect(); 715 socket_stream->Connect();
716 716
717 test_callback.WaitForResult(); 717 test_callback.WaitForResult();
718 718
719 const std::vector<SocketStreamEvent>& events = delegate->GetSeenEvents(); 719 const std::vector<SocketStreamEvent>& events = delegate->GetSeenEvents();
720 ASSERT_EQ(3U, events.size()); 720 ASSERT_EQ(3U, events.size());
721 721
722 EXPECT_EQ(SocketStreamEvent::EVENT_START_OPEN_CONNECTION, 722 EXPECT_EQ(SocketStreamEvent::EVENT_START_OPEN_CONNECTION,
723 events[0].event_type); 723 events[0].event_type);
724 EXPECT_EQ(SocketStreamEvent::EVENT_ERROR, events[1].event_type); 724 EXPECT_EQ(SocketStreamEvent::EVENT_ERROR, events[1].event_type);
725 EXPECT_EQ(ERR_SSL_PROTOCOL_ERROR, events[1].error_code); 725 EXPECT_EQ(net::ERR_SSL_PROTOCOL_ERROR, events[1].error_code);
726 EXPECT_EQ(SocketStreamEvent::EVENT_CLOSE, events[2].event_type); 726 EXPECT_EQ(SocketStreamEvent::EVENT_CLOSE, events[2].event_type);
727 } 727 }
728 728
729 // Test a connection though a secure proxy. 729 // Test a connection though a secure proxy.
730 TEST_F(SocketStreamTest, SecureProxyConnect) { 730 TEST_F(SocketStreamTest, SecureProxyConnect) {
731 MockClientSocketFactory mock_socket_factory; 731 MockClientSocketFactory mock_socket_factory;
732 MockWrite data_writes[] = { 732 MockWrite data_writes[] = {
733 MockWrite("CONNECT example.com:80 HTTP/1.1\r\n" 733 MockWrite("CONNECT example.com:80 HTTP/1.1\r\n"
734 "Host: example.com\r\n" 734 "Host: example.com\r\n"
735 "Proxy-Connection: keep-alive\r\n\r\n") 735 "Proxy-Connection: keep-alive\r\n\r\n")
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
767 767
768 test_callback.WaitForResult(); 768 test_callback.WaitForResult();
769 769
770 const std::vector<SocketStreamEvent>& events = delegate->GetSeenEvents(); 770 const std::vector<SocketStreamEvent>& events = delegate->GetSeenEvents();
771 ASSERT_EQ(4U, events.size()); 771 ASSERT_EQ(4U, events.size());
772 772
773 EXPECT_EQ(SocketStreamEvent::EVENT_START_OPEN_CONNECTION, 773 EXPECT_EQ(SocketStreamEvent::EVENT_START_OPEN_CONNECTION,
774 events[0].event_type); 774 events[0].event_type);
775 EXPECT_EQ(SocketStreamEvent::EVENT_CONNECTED, events[1].event_type); 775 EXPECT_EQ(SocketStreamEvent::EVENT_CONNECTED, events[1].event_type);
776 EXPECT_EQ(SocketStreamEvent::EVENT_ERROR, events[2].event_type); 776 EXPECT_EQ(SocketStreamEvent::EVENT_ERROR, events[2].event_type);
777 EXPECT_EQ(ERR_ABORTED, events[2].error_code); 777 EXPECT_EQ(net::ERR_ABORTED, events[2].error_code);
778 EXPECT_EQ(SocketStreamEvent::EVENT_CLOSE, events[3].event_type); 778 EXPECT_EQ(SocketStreamEvent::EVENT_CLOSE, events[3].event_type);
779 } 779 }
780 780
781 TEST_F(SocketStreamTest, BeforeConnectFailed) { 781 TEST_F(SocketStreamTest, BeforeConnectFailed) {
782 TestCompletionCallback test_callback; 782 TestCompletionCallback test_callback;
783 783
784 scoped_ptr<SocketStreamEventRecorder> delegate( 784 scoped_ptr<SocketStreamEventRecorder> delegate(
785 new SocketStreamEventRecorder(test_callback.callback())); 785 new SocketStreamEventRecorder(test_callback.callback()));
786 786
787 TestURLRequestContext context; 787 TestURLRequestContext context;
788 TestSocketStreamNetworkDelegate network_delegate; 788 TestSocketStreamNetworkDelegate network_delegate;
789 network_delegate.SetBeforeConnectResult(ERR_ACCESS_DENIED); 789 network_delegate.SetBeforeConnectResult(ERR_ACCESS_DENIED);
790 context.set_network_delegate(&network_delegate); 790 context.set_network_delegate(&network_delegate);
791 791
792 scoped_refptr<SocketStream> socket_stream( 792 scoped_refptr<SocketStream> socket_stream(
793 new SocketStream(GURL("ws://example.com/demo"), delegate.get())); 793 new SocketStream(GURL("ws://example.com/demo"), delegate.get()));
794 794
795 socket_stream->set_context(&context); 795 socket_stream->set_context(&context);
796 796
797 socket_stream->Connect(); 797 socket_stream->Connect();
798 798
799 test_callback.WaitForResult(); 799 test_callback.WaitForResult();
800 800
801 const std::vector<SocketStreamEvent>& events = delegate->GetSeenEvents(); 801 const std::vector<SocketStreamEvent>& events = delegate->GetSeenEvents();
802 ASSERT_EQ(2U, events.size()); 802 ASSERT_EQ(2U, events.size());
803 803
804 EXPECT_EQ(SocketStreamEvent::EVENT_ERROR, events[0].event_type); 804 EXPECT_EQ(SocketStreamEvent::EVENT_ERROR, events[0].event_type);
805 EXPECT_EQ(ERR_ACCESS_DENIED, events[0].error_code); 805 EXPECT_EQ(net::ERR_ACCESS_DENIED, events[0].error_code);
806 EXPECT_EQ(SocketStreamEvent::EVENT_CLOSE, events[1].event_type); 806 EXPECT_EQ(SocketStreamEvent::EVENT_CLOSE, events[1].event_type);
807 } 807 }
808 808
809 } // namespace net 809 } // namespace net
OLDNEW
« no previous file with comments | « jingle/notifier/listener/xmpp_push_client_unittest.cc ('k') | net/url_request/url_request_job_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698