OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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_network_transaction.h" | 5 #include "net/http/http_network_transaction.h" |
6 | 6 |
7 #include <math.h> // ceil | 7 #include <math.h> // ceil |
8 #include <stdarg.h> | 8 #include <stdarg.h> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 3587 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3598 | 3598 |
3599 OrderedSocketData spdy_data( | 3599 OrderedSocketData spdy_data( |
3600 spdy_reads, arraysize(spdy_reads), | 3600 spdy_reads, arraysize(spdy_reads), |
3601 spdy_writes, arraysize(spdy_writes)); | 3601 spdy_writes, arraysize(spdy_writes)); |
3602 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); | 3602 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); |
3603 | 3603 |
3604 SSLSocketDataProvider ssl(ASYNC, OK); | 3604 SSLSocketDataProvider ssl(ASYNC, OK); |
3605 ssl.SetNextProto(GetParam()); | 3605 ssl.SetNextProto(GetParam()); |
3606 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 3606 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
3607 SSLSocketDataProvider ssl2(ASYNC, OK); | 3607 SSLSocketDataProvider ssl2(ASYNC, OK); |
3608 ssl2.was_npn_negotiated = false; | |
3609 ssl2.protocol_negotiated = kProtoUnknown; | |
3610 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl2); | 3608 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl2); |
3611 | 3609 |
3612 TestCompletionCallback callback1; | 3610 TestCompletionCallback callback1; |
3613 | 3611 |
3614 int rv = trans->Start(&request, callback1.callback(), log.bound()); | 3612 int rv = trans->Start(&request, callback1.callback(), log.bound()); |
3615 EXPECT_EQ(ERR_IO_PENDING, rv); | 3613 EXPECT_EQ(ERR_IO_PENDING, rv); |
3616 | 3614 |
3617 rv = callback1.WaitForResult(); | 3615 rv = callback1.WaitForResult(); |
3618 EXPECT_EQ(OK, rv); | 3616 EXPECT_EQ(OK, rv); |
3619 | 3617 |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3688 OrderedSocketData spdy_data( | 3686 OrderedSocketData spdy_data( |
3689 spdy_reads, arraysize(spdy_reads), | 3687 spdy_reads, arraysize(spdy_reads), |
3690 spdy_writes, arraysize(spdy_writes)); | 3688 spdy_writes, arraysize(spdy_writes)); |
3691 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); | 3689 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); |
3692 | 3690 |
3693 SSLSocketDataProvider ssl(ASYNC, OK); | 3691 SSLSocketDataProvider ssl(ASYNC, OK); |
3694 ssl.SetNextProto(GetParam()); | 3692 ssl.SetNextProto(GetParam()); |
3695 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 3693 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
3696 SSLSocketDataProvider ssl2(ASYNC, OK); | 3694 SSLSocketDataProvider ssl2(ASYNC, OK); |
3697 ssl2.SetNextProto(GetParam()); | 3695 ssl2.SetNextProto(GetParam()); |
3698 ssl2.protocol_negotiated = GetParam(); | |
3699 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl2); | 3696 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl2); |
3700 | 3697 |
3701 TestCompletionCallback callback1; | 3698 TestCompletionCallback callback1; |
3702 | 3699 |
3703 int rv = trans->Start(&request, callback1.callback(), log.bound()); | 3700 int rv = trans->Start(&request, callback1.callback(), log.bound()); |
3704 EXPECT_EQ(ERR_IO_PENDING, rv); | 3701 EXPECT_EQ(ERR_IO_PENDING, rv); |
3705 | 3702 |
3706 rv = callback1.WaitForResult(); | 3703 rv = callback1.WaitForResult(); |
3707 EXPECT_EQ(OK, rv); | 3704 EXPECT_EQ(OK, rv); |
3708 | 3705 |
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3865 | 3862 |
3866 DeterministicSocketData spdy_data( | 3863 DeterministicSocketData spdy_data( |
3867 spdy_reads, arraysize(spdy_reads), | 3864 spdy_reads, arraysize(spdy_reads), |
3868 spdy_writes, arraysize(spdy_writes)); | 3865 spdy_writes, arraysize(spdy_writes)); |
3869 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&spdy_data); | 3866 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&spdy_data); |
3870 | 3867 |
3871 SSLSocketDataProvider ssl(ASYNC, OK); | 3868 SSLSocketDataProvider ssl(ASYNC, OK); |
3872 ssl.SetNextProto(GetParam()); | 3869 ssl.SetNextProto(GetParam()); |
3873 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | 3870 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); |
3874 SSLSocketDataProvider ssl2(ASYNC, OK); | 3871 SSLSocketDataProvider ssl2(ASYNC, OK); |
3875 ssl2.was_npn_negotiated = false; | |
3876 ssl2.protocol_negotiated = kProtoUnknown; | |
3877 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl2); | 3872 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl2); |
3878 SSLSocketDataProvider ssl3(ASYNC, OK); | 3873 SSLSocketDataProvider ssl3(ASYNC, OK); |
3879 ssl3.was_npn_negotiated = false; | |
3880 ssl3.protocol_negotiated = kProtoUnknown; | |
3881 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl3); | 3874 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl3); |
3882 | 3875 |
3883 TestCompletionCallback callback; | 3876 TestCompletionCallback callback; |
3884 | 3877 |
3885 scoped_ptr<HttpTransaction> trans( | 3878 scoped_ptr<HttpTransaction> trans( |
3886 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 3879 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
3887 int rv = trans->Start(&request1, callback.callback(), BoundNetLog()); | 3880 int rv = trans->Start(&request1, callback.callback(), BoundNetLog()); |
3888 EXPECT_EQ(ERR_IO_PENDING, rv); | 3881 EXPECT_EQ(ERR_IO_PENDING, rv); |
3889 // The first connect and request, each of their responses, and the body. | 3882 // The first connect and request, each of their responses, and the body. |
3890 spdy_data.RunFor(5); | 3883 spdy_data.RunFor(5); |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4001 | 3994 |
4002 DeterministicSocketData spdy_data( | 3995 DeterministicSocketData spdy_data( |
4003 spdy_reads, arraysize(spdy_reads), | 3996 spdy_reads, arraysize(spdy_reads), |
4004 spdy_writes, arraysize(spdy_writes)); | 3997 spdy_writes, arraysize(spdy_writes)); |
4005 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&spdy_data); | 3998 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&spdy_data); |
4006 | 3999 |
4007 SSLSocketDataProvider ssl(ASYNC, OK); | 4000 SSLSocketDataProvider ssl(ASYNC, OK); |
4008 ssl.SetNextProto(GetParam()); | 4001 ssl.SetNextProto(GetParam()); |
4009 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | 4002 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); |
4010 SSLSocketDataProvider ssl2(ASYNC, OK); | 4003 SSLSocketDataProvider ssl2(ASYNC, OK); |
4011 ssl2.was_npn_negotiated = false; | |
4012 ssl2.protocol_negotiated = kProtoUnknown; | |
4013 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl2); | 4004 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl2); |
4014 | 4005 |
4015 TestCompletionCallback callback; | 4006 TestCompletionCallback callback; |
4016 | 4007 |
4017 scoped_ptr<HttpTransaction> trans( | 4008 scoped_ptr<HttpTransaction> trans( |
4018 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 4009 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
4019 int rv = trans->Start(&request1, callback.callback(), BoundNetLog()); | 4010 int rv = trans->Start(&request1, callback.callback(), BoundNetLog()); |
4020 EXPECT_EQ(ERR_IO_PENDING, rv); | 4011 EXPECT_EQ(ERR_IO_PENDING, rv); |
4021 // The first connect and request, each of their responses, and the body. | 4012 // The first connect and request, each of their responses, and the body. |
4022 spdy_data.RunFor(5); | 4013 spdy_data.RunFor(5); |
(...skipping 6319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10342 GetAlternateProtocolHttpHeader(); | 10333 GetAlternateProtocolHttpHeader(); |
10343 | 10334 |
10344 MockRead data_reads[] = { | 10335 MockRead data_reads[] = { |
10345 MockRead("HTTP/1.1 200 OK\r\n"), | 10336 MockRead("HTTP/1.1 200 OK\r\n"), |
10346 MockRead(alternate_protocol_http_header.c_str()), | 10337 MockRead(alternate_protocol_http_header.c_str()), |
10347 MockRead("hello world"), | 10338 MockRead("hello world"), |
10348 MockRead(SYNCHRONOUS, OK), | 10339 MockRead(SYNCHRONOUS, OK), |
10349 }; | 10340 }; |
10350 | 10341 |
10351 SSLSocketDataProvider ssl(ASYNC, OK); | 10342 SSLSocketDataProvider ssl(ASYNC, OK); |
10352 ssl.next_proto_status = SSLClientSocket::kNextProtoNegotiated; | 10343 ssl.SetNextProto(kProtoHTTP11); |
10353 ssl.next_proto = "http/1.1"; | |
10354 ssl.protocol_negotiated = kProtoHTTP11; | |
10355 | 10344 |
10356 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 10345 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
10357 | 10346 |
10358 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 10347 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
10359 data_writes, arraysize(data_writes)); | 10348 data_writes, arraysize(data_writes)); |
10360 session_deps_.socket_factory->AddSocketDataProvider(&data); | 10349 session_deps_.socket_factory->AddSocketDataProvider(&data); |
10361 | 10350 |
10362 TestCompletionCallback callback; | 10351 TestCompletionCallback callback; |
10363 | 10352 |
10364 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 10353 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
(...skipping 3418 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
13783 ASSERT_TRUE(response); | 13772 ASSERT_TRUE(response); |
13784 ASSERT_TRUE(response->headers.get()); | 13773 ASSERT_TRUE(response->headers.get()); |
13785 | 13774 |
13786 EXPECT_EQ(101, response->headers->response_code()); | 13775 EXPECT_EQ(101, response->headers->response_code()); |
13787 | 13776 |
13788 trans.reset(); | 13777 trans.reset(); |
13789 session->CloseAllConnections(); | 13778 session->CloseAllConnections(); |
13790 } | 13779 } |
13791 | 13780 |
13792 } // namespace net | 13781 } // namespace net |
OLD | NEW |