OLD | NEW |
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/http/http_stream_parser.h" | 5 #include "net/http/http_stream_parser.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
229 scoped_ptr<DeterministicMockTCPClientSocket> transport( | 229 scoped_ptr<DeterministicMockTCPClientSocket> transport( |
230 new DeterministicMockTCPClientSocket(NULL, &data)); | 230 new DeterministicMockTCPClientSocket(NULL, &data)); |
231 data.set_delegate(transport->AsWeakPtr()); | 231 data.set_delegate(transport->AsWeakPtr()); |
232 | 232 |
233 TestCompletionCallback callback; | 233 TestCompletionCallback callback; |
234 int rv = transport->Connect(callback.callback()); | 234 int rv = transport->Connect(callback.callback()); |
235 rv = callback.GetResult(rv); | 235 rv = callback.GetResult(rv); |
236 ASSERT_EQ(OK, rv); | 236 ASSERT_EQ(OK, rv); |
237 | 237 |
238 scoped_ptr<ClientSocketHandle> socket_handle(new ClientSocketHandle); | 238 scoped_ptr<ClientSocketHandle> socket_handle(new ClientSocketHandle); |
239 socket_handle->SetSocket(transport.PassAs<StreamSocket>()); | 239 socket_handle->SetSocket(transport.Pass()); |
240 | 240 |
241 HttpRequestInfo request_info; | 241 HttpRequestInfo request_info; |
242 request_info.method = "GET"; | 242 request_info.method = "GET"; |
243 request_info.url = GURL("http://localhost"); | 243 request_info.url = GURL("http://localhost"); |
244 request_info.load_flags = LOAD_NORMAL; | 244 request_info.load_flags = LOAD_NORMAL; |
245 request_info.upload_data_stream = &upload_stream; | 245 request_info.upload_data_stream = &upload_stream; |
246 | 246 |
247 scoped_refptr<GrowableIOBuffer> read_buffer(new GrowableIOBuffer); | 247 scoped_refptr<GrowableIOBuffer> read_buffer(new GrowableIOBuffer); |
248 HttpStreamParser parser( | 248 HttpStreamParser parser( |
249 socket_handle.get(), &request_info, read_buffer.get(), BoundNetLog()); | 249 socket_handle.get(), &request_info, read_buffer.get(), BoundNetLog()); |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
384 scoped_ptr<DeterministicMockTCPClientSocket> transport( | 384 scoped_ptr<DeterministicMockTCPClientSocket> transport( |
385 new DeterministicMockTCPClientSocket(NULL, &data)); | 385 new DeterministicMockTCPClientSocket(NULL, &data)); |
386 data.set_delegate(transport->AsWeakPtr()); | 386 data.set_delegate(transport->AsWeakPtr()); |
387 | 387 |
388 TestCompletionCallback callback; | 388 TestCompletionCallback callback; |
389 int rv = transport->Connect(callback.callback()); | 389 int rv = transport->Connect(callback.callback()); |
390 rv = callback.GetResult(rv); | 390 rv = callback.GetResult(rv); |
391 ASSERT_EQ(OK, rv); | 391 ASSERT_EQ(OK, rv); |
392 | 392 |
393 scoped_ptr<ClientSocketHandle> socket_handle(new ClientSocketHandle); | 393 scoped_ptr<ClientSocketHandle> socket_handle(new ClientSocketHandle); |
394 socket_handle->SetSocket(transport.PassAs<StreamSocket>()); | 394 socket_handle->SetSocket(transport.Pass()); |
395 | 395 |
396 HttpRequestInfo request_info; | 396 HttpRequestInfo request_info; |
397 request_info.method = "GET"; | 397 request_info.method = "GET"; |
398 if (protocol == HTTP) { | 398 if (protocol == HTTP) { |
399 request_info.url = GURL("http://localhost"); | 399 request_info.url = GURL("http://localhost"); |
400 } else { | 400 } else { |
401 request_info.url = GURL("https://localhost"); | 401 request_info.url = GURL("https://localhost"); |
402 } | 402 } |
403 request_info.load_flags = LOAD_NORMAL; | 403 request_info.load_flags = LOAD_NORMAL; |
404 | 404 |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
453 scoped_ptr<DeterministicMockTCPClientSocket> transport( | 453 scoped_ptr<DeterministicMockTCPClientSocket> transport( |
454 new DeterministicMockTCPClientSocket(NULL, &data)); | 454 new DeterministicMockTCPClientSocket(NULL, &data)); |
455 data.set_delegate(transport->AsWeakPtr()); | 455 data.set_delegate(transport->AsWeakPtr()); |
456 | 456 |
457 TestCompletionCallback callback; | 457 TestCompletionCallback callback; |
458 int rv = transport->Connect(callback.callback()); | 458 int rv = transport->Connect(callback.callback()); |
459 rv = callback.GetResult(rv); | 459 rv = callback.GetResult(rv); |
460 ASSERT_EQ(OK, rv); | 460 ASSERT_EQ(OK, rv); |
461 | 461 |
462 scoped_ptr<ClientSocketHandle> socket_handle(new ClientSocketHandle); | 462 scoped_ptr<ClientSocketHandle> socket_handle(new ClientSocketHandle); |
463 socket_handle->SetSocket(transport.PassAs<StreamSocket>()); | 463 socket_handle->SetSocket(transport.Pass()); |
464 | 464 |
465 HttpRequestInfo request_info; | 465 HttpRequestInfo request_info; |
466 request_info.method = "GET"; | 466 request_info.method = "GET"; |
467 request_info.url = GURL("http://localhost"); | 467 request_info.url = GURL("http://localhost"); |
468 request_info.load_flags = LOAD_NORMAL; | 468 request_info.load_flags = LOAD_NORMAL; |
469 | 469 |
470 scoped_refptr<GrowableIOBuffer> read_buffer(new GrowableIOBuffer); | 470 scoped_refptr<GrowableIOBuffer> read_buffer(new GrowableIOBuffer); |
471 HttpStreamParser parser( | 471 HttpStreamParser parser( |
472 socket_handle.get(), &request_info, read_buffer.get(), BoundNetLog()); | 472 socket_handle.get(), &request_info, read_buffer.get(), BoundNetLog()); |
473 | 473 |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
523 data_->SetStop(reads_.size() + writes_.size()); | 523 data_->SetStop(reads_.size() + writes_.size()); |
524 | 524 |
525 transport_.reset(new DeterministicMockTCPClientSocket(NULL, data_.get())); | 525 transport_.reset(new DeterministicMockTCPClientSocket(NULL, data_.get())); |
526 data_->set_delegate(transport_->AsWeakPtr()); | 526 data_->set_delegate(transport_->AsWeakPtr()); |
527 | 527 |
528 TestCompletionCallback callback; | 528 TestCompletionCallback callback; |
529 int rv = transport_->Connect(callback.callback()); | 529 int rv = transport_->Connect(callback.callback()); |
530 rv = callback.GetResult(rv); | 530 rv = callback.GetResult(rv); |
531 ASSERT_EQ(OK, rv); | 531 ASSERT_EQ(OK, rv); |
532 | 532 |
533 socket_handle_->SetSocket(transport_.PassAs<StreamSocket>()); | 533 socket_handle_->SetSocket(transport_.Pass()); |
534 | 534 |
535 request_info_.method = "GET"; | 535 request_info_.method = "GET"; |
536 request_info_.url = GURL("http://localhost"); | 536 request_info_.url = GURL("http://localhost"); |
537 request_info_.load_flags = LOAD_NORMAL; | 537 request_info_.load_flags = LOAD_NORMAL; |
538 | 538 |
539 parser_.reset(new HttpStreamParser( | 539 parser_.reset(new HttpStreamParser( |
540 socket_handle_.get(), &request_info_, read_buffer(), BoundNetLog())); | 540 socket_handle_.get(), &request_info_, read_buffer(), BoundNetLog())); |
541 | 541 |
542 rv = parser_->SendRequest("GET / HTTP/1.1\r\n", request_headers_, | 542 rv = parser_->SendRequest("GET / HTTP/1.1\r\n", request_headers_, |
543 &response_info_, callback.callback()); | 543 &response_info_, callback.callback()); |
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
828 arraysize(writes)); | 828 arraysize(writes)); |
829 data.set_connect_data(MockConnect(SYNCHRONOUS, OK)); | 829 data.set_connect_data(MockConnect(SYNCHRONOUS, OK)); |
830 | 830 |
831 scoped_ptr<MockTCPClientSocket> transport( | 831 scoped_ptr<MockTCPClientSocket> transport( |
832 new MockTCPClientSocket(AddressList(), NULL, &data)); | 832 new MockTCPClientSocket(AddressList(), NULL, &data)); |
833 | 833 |
834 TestCompletionCallback callback; | 834 TestCompletionCallback callback; |
835 ASSERT_EQ(OK, transport->Connect(callback.callback())); | 835 ASSERT_EQ(OK, transport->Connect(callback.callback())); |
836 | 836 |
837 scoped_ptr<ClientSocketHandle> socket_handle(new ClientSocketHandle); | 837 scoped_ptr<ClientSocketHandle> socket_handle(new ClientSocketHandle); |
838 socket_handle->SetSocket(transport.PassAs<StreamSocket>()); | 838 socket_handle->SetSocket(transport.Pass()); |
839 | 839 |
840 scoped_ptr<HttpRequestInfo> request_info(new HttpRequestInfo()); | 840 scoped_ptr<HttpRequestInfo> request_info(new HttpRequestInfo()); |
841 request_info->method = "GET"; | 841 request_info->method = "GET"; |
842 request_info->url = GURL("http://somewhere/foo.html"); | 842 request_info->url = GURL("http://somewhere/foo.html"); |
843 | 843 |
844 scoped_refptr<GrowableIOBuffer> read_buffer(new GrowableIOBuffer); | 844 scoped_refptr<GrowableIOBuffer> read_buffer(new GrowableIOBuffer); |
845 HttpStreamParser parser(socket_handle.get(), request_info.get(), | 845 HttpStreamParser parser(socket_handle.get(), request_info.get(), |
846 read_buffer.get(), BoundNetLog()); | 846 read_buffer.get(), BoundNetLog()); |
847 | 847 |
848 scoped_ptr<HttpRequestHeaders> request_headers(new HttpRequestHeaders()); | 848 scoped_ptr<HttpRequestHeaders> request_headers(new HttpRequestHeaders()); |
849 scoped_ptr<HttpResponseInfo> response_info(new HttpResponseInfo()); | 849 scoped_ptr<HttpResponseInfo> response_info(new HttpResponseInfo()); |
850 ASSERT_EQ(OK, parser.SendRequest("GET /foo.html HTTP/1.1\r\n", | 850 ASSERT_EQ(OK, parser.SendRequest("GET /foo.html HTTP/1.1\r\n", |
851 *request_headers, response_info.get(), callback.callback())); | 851 *request_headers, response_info.get(), callback.callback())); |
852 ASSERT_EQ(OK, parser.ReadResponseHeaders(callback.callback())); | 852 ASSERT_EQ(OK, parser.ReadResponseHeaders(callback.callback())); |
853 | 853 |
854 // If the object that owns the HttpStreamParser is deleted, it takes the | 854 // If the object that owns the HttpStreamParser is deleted, it takes the |
855 // objects passed to the HttpStreamParser with it. | 855 // objects passed to the HttpStreamParser with it. |
856 request_info.reset(); | 856 request_info.reset(); |
857 request_headers.reset(); | 857 request_headers.reset(); |
858 response_info.reset(); | 858 response_info.reset(); |
859 | 859 |
860 scoped_refptr<IOBuffer> body_buffer(new IOBuffer(kBodySize)); | 860 scoped_refptr<IOBuffer> body_buffer(new IOBuffer(kBodySize)); |
861 ASSERT_EQ(kBodySize, parser.ReadResponseBody( | 861 ASSERT_EQ(kBodySize, parser.ReadResponseBody( |
862 body_buffer.get(), kBodySize, callback.callback())); | 862 body_buffer.get(), kBodySize, callback.callback())); |
863 } | 863 } |
864 | 864 |
865 } // namespace | 865 } // namespace |
866 | 866 |
867 } // namespace net | 867 } // namespace net |
OLD | NEW |