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 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
296 | 296 |
297 HttpRequestInfo request; | 297 HttpRequestInfo request; |
298 request.method = "GET"; | 298 request.method = "GET"; |
299 request.url = GURL("http://www.google.com/"); | 299 request.url = GURL("http://www.google.com/"); |
300 request.load_flags = 0; | 300 request.load_flags = 0; |
301 | 301 |
302 CapturingBoundNetLog log; | 302 CapturingBoundNetLog log; |
303 session_deps_.net_log = log.bound().net_log(); | 303 session_deps_.net_log = log.bound().net_log(); |
304 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 304 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
305 scoped_ptr<HttpTransaction> trans( | 305 scoped_ptr<HttpTransaction> trans( |
306 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 306 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
307 | 307 |
308 for (size_t i = 0; i < data_count; ++i) { | 308 for (size_t i = 0; i < data_count; ++i) { |
309 session_deps_.socket_factory->AddSocketDataProvider(data[i]); | 309 session_deps_.socket_factory->AddSocketDataProvider(data[i]); |
310 } | 310 } |
311 | 311 |
312 TestCompletionCallback callback; | 312 TestCompletionCallback callback; |
313 | 313 |
314 EXPECT_TRUE(log.bound().IsLogging()); | 314 EXPECT_TRUE(log.bound().IsLogging()); |
315 int rv = trans->Start(&request, callback.callback(), log.bound()); | 315 int rv = trans->Start(&request, callback.callback(), log.bound()); |
316 EXPECT_EQ(ERR_IO_PENDING, rv); | 316 EXPECT_EQ(ERR_IO_PENDING, rv); |
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
631 EXPECT_EQ(std::string(), auth_challenge->realm); | 631 EXPECT_EQ(std::string(), auth_challenge->realm); |
632 EXPECT_EQ("ntlm", auth_challenge->scheme); | 632 EXPECT_EQ("ntlm", auth_challenge->scheme); |
633 return true; | 633 return true; |
634 } | 634 } |
635 | 635 |
636 } // namespace | 636 } // namespace |
637 | 637 |
638 TEST_P(HttpNetworkTransactionTest, Basic) { | 638 TEST_P(HttpNetworkTransactionTest, Basic) { |
639 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 639 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
640 scoped_ptr<HttpTransaction> trans( | 640 scoped_ptr<HttpTransaction> trans( |
641 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 641 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
642 } | 642 } |
643 | 643 |
644 TEST_P(HttpNetworkTransactionTest, SimpleGET) { | 644 TEST_P(HttpNetworkTransactionTest, SimpleGET) { |
645 MockRead data_reads[] = { | 645 MockRead data_reads[] = { |
646 MockRead("HTTP/1.0 200 OK\r\n\r\n"), | 646 MockRead("HTTP/1.0 200 OK\r\n\r\n"), |
647 MockRead("hello world"), | 647 MockRead("hello world"), |
648 MockRead(SYNCHRONOUS, OK), | 648 MockRead(SYNCHRONOUS, OK), |
649 }; | 649 }; |
650 SimpleGetHelperResult out = SimpleGetHelper(data_reads, | 650 SimpleGetHelperResult out = SimpleGetHelper(data_reads, |
651 arraysize(data_reads)); | 651 arraysize(data_reads)); |
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
949 MockRead(SYNCHRONOUS, OK), | 949 MockRead(SYNCHRONOUS, OK), |
950 }; | 950 }; |
951 | 951 |
952 HttpRequestInfo request; | 952 HttpRequestInfo request; |
953 request.method = "GET"; | 953 request.method = "GET"; |
954 request.url = GURL("http://redirect.com/"); | 954 request.url = GURL("http://redirect.com/"); |
955 request.load_flags = 0; | 955 request.load_flags = 0; |
956 | 956 |
957 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 957 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
958 scoped_ptr<HttpTransaction> trans( | 958 scoped_ptr<HttpTransaction> trans( |
959 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 959 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
960 | 960 |
961 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 961 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
962 session_deps_.socket_factory->AddSocketDataProvider(&data); | 962 session_deps_.socket_factory->AddSocketDataProvider(&data); |
963 | 963 |
964 TestCompletionCallback callback; | 964 TestCompletionCallback callback; |
965 | 965 |
966 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 966 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
967 EXPECT_EQ(ERR_IO_PENDING, rv); | 967 EXPECT_EQ(ERR_IO_PENDING, rv); |
968 | 968 |
969 EXPECT_EQ(OK, callback.WaitForResult()); | 969 EXPECT_EQ(OK, callback.WaitForResult()); |
(...skipping 24 matching lines...) Expand all Loading... |
994 // Do a request using the HEAD method. Verify that we don't try to read the | 994 // Do a request using the HEAD method. Verify that we don't try to read the |
995 // message body (since HEAD has none). | 995 // message body (since HEAD has none). |
996 TEST_P(HttpNetworkTransactionTest, Head) { | 996 TEST_P(HttpNetworkTransactionTest, Head) { |
997 HttpRequestInfo request; | 997 HttpRequestInfo request; |
998 request.method = "HEAD"; | 998 request.method = "HEAD"; |
999 request.url = GURL("http://www.google.com/"); | 999 request.url = GURL("http://www.google.com/"); |
1000 request.load_flags = 0; | 1000 request.load_flags = 0; |
1001 | 1001 |
1002 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 1002 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
1003 scoped_ptr<HttpTransaction> trans( | 1003 scoped_ptr<HttpTransaction> trans( |
1004 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 1004 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
1005 BeforeProxyHeadersSentHandler proxy_headers_handler; | 1005 BeforeProxyHeadersSentHandler proxy_headers_handler; |
1006 trans->SetBeforeProxyHeadersSentCallback( | 1006 trans->SetBeforeProxyHeadersSentCallback( |
1007 base::Bind(&BeforeProxyHeadersSentHandler::OnBeforeProxyHeadersSent, | 1007 base::Bind(&BeforeProxyHeadersSentHandler::OnBeforeProxyHeadersSent, |
1008 base::Unretained(&proxy_headers_handler))); | 1008 base::Unretained(&proxy_headers_handler))); |
1009 | 1009 |
1010 MockWrite data_writes1[] = { | 1010 MockWrite data_writes1[] = { |
1011 MockWrite("HEAD / HTTP/1.1\r\n" | 1011 MockWrite("HEAD / HTTP/1.1\r\n" |
1012 "Host: www.google.com\r\n" | 1012 "Host: www.google.com\r\n" |
1013 "Connection: keep-alive\r\n" | 1013 "Connection: keep-alive\r\n" |
1014 "Content-Length: 0\r\n\r\n"), | 1014 "Content-Length: 0\r\n\r\n"), |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1113 UploadDataStream upload_data_stream(element_readers.Pass(), 0); | 1113 UploadDataStream upload_data_stream(element_readers.Pass(), 0); |
1114 | 1114 |
1115 HttpRequestInfo request; | 1115 HttpRequestInfo request; |
1116 request.method = "POST"; | 1116 request.method = "POST"; |
1117 request.url = GURL("http://www.foo.com/"); | 1117 request.url = GURL("http://www.foo.com/"); |
1118 request.upload_data_stream = &upload_data_stream; | 1118 request.upload_data_stream = &upload_data_stream; |
1119 request.load_flags = 0; | 1119 request.load_flags = 0; |
1120 | 1120 |
1121 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 1121 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
1122 scoped_ptr<HttpTransaction> trans( | 1122 scoped_ptr<HttpTransaction> trans( |
1123 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 1123 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
1124 | 1124 |
1125 MockRead data_reads[] = { | 1125 MockRead data_reads[] = { |
1126 MockRead("HTTP/1.0 100 Continue\r\n\r\n"), | 1126 MockRead("HTTP/1.0 100 Continue\r\n\r\n"), |
1127 MockRead("HTTP/1.0 200 OK\r\n\r\n"), | 1127 MockRead("HTTP/1.0 200 OK\r\n\r\n"), |
1128 MockRead("hello world"), | 1128 MockRead("hello world"), |
1129 MockRead(SYNCHRONOUS, OK), | 1129 MockRead(SYNCHRONOUS, OK), |
1130 }; | 1130 }; |
1131 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 1131 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
1132 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1132 session_deps_.socket_factory->AddSocketDataProvider(&data); |
1133 | 1133 |
(...skipping 21 matching lines...) Expand all Loading... |
1155 // a 102 instead of a 100. Also, instead of HTTP/1.0 the response is | 1155 // a 102 instead of a 100. Also, instead of HTTP/1.0 the response is |
1156 // HTTP/1.1 and the two status headers are read in one read. | 1156 // HTTP/1.1 and the two status headers are read in one read. |
1157 TEST_P(HttpNetworkTransactionTest, Ignores1xx) { | 1157 TEST_P(HttpNetworkTransactionTest, Ignores1xx) { |
1158 HttpRequestInfo request; | 1158 HttpRequestInfo request; |
1159 request.method = "GET"; | 1159 request.method = "GET"; |
1160 request.url = GURL("http://www.foo.com/"); | 1160 request.url = GURL("http://www.foo.com/"); |
1161 request.load_flags = 0; | 1161 request.load_flags = 0; |
1162 | 1162 |
1163 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 1163 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
1164 scoped_ptr<HttpTransaction> trans( | 1164 scoped_ptr<HttpTransaction> trans( |
1165 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 1165 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
1166 | 1166 |
1167 MockRead data_reads[] = { | 1167 MockRead data_reads[] = { |
1168 MockRead("HTTP/1.1 102 Unspecified status code\r\n\r\n" | 1168 MockRead("HTTP/1.1 102 Unspecified status code\r\n\r\n" |
1169 "HTTP/1.1 200 OK\r\n\r\n"), | 1169 "HTTP/1.1 200 OK\r\n\r\n"), |
1170 MockRead("hello world"), | 1170 MockRead("hello world"), |
1171 MockRead(SYNCHRONOUS, OK), | 1171 MockRead(SYNCHRONOUS, OK), |
1172 }; | 1172 }; |
1173 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 1173 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
1174 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1174 session_deps_.socket_factory->AddSocketDataProvider(&data); |
1175 | 1175 |
(...skipping 18 matching lines...) Expand all Loading... |
1194 } | 1194 } |
1195 | 1195 |
1196 TEST_P(HttpNetworkTransactionTest, Incomplete100ThenEOF) { | 1196 TEST_P(HttpNetworkTransactionTest, Incomplete100ThenEOF) { |
1197 HttpRequestInfo request; | 1197 HttpRequestInfo request; |
1198 request.method = "POST"; | 1198 request.method = "POST"; |
1199 request.url = GURL("http://www.foo.com/"); | 1199 request.url = GURL("http://www.foo.com/"); |
1200 request.load_flags = 0; | 1200 request.load_flags = 0; |
1201 | 1201 |
1202 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 1202 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
1203 scoped_ptr<HttpTransaction> trans( | 1203 scoped_ptr<HttpTransaction> trans( |
1204 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 1204 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
1205 | 1205 |
1206 MockRead data_reads[] = { | 1206 MockRead data_reads[] = { |
1207 MockRead(SYNCHRONOUS, "HTTP/1.0 100 Continue\r\n"), | 1207 MockRead(SYNCHRONOUS, "HTTP/1.0 100 Continue\r\n"), |
1208 MockRead(ASYNC, 0), | 1208 MockRead(ASYNC, 0), |
1209 }; | 1209 }; |
1210 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 1210 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
1211 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1211 session_deps_.socket_factory->AddSocketDataProvider(&data); |
1212 | 1212 |
1213 TestCompletionCallback callback; | 1213 TestCompletionCallback callback; |
1214 | 1214 |
(...skipping 10 matching lines...) Expand all Loading... |
1225 } | 1225 } |
1226 | 1226 |
1227 TEST_P(HttpNetworkTransactionTest, EmptyResponse) { | 1227 TEST_P(HttpNetworkTransactionTest, EmptyResponse) { |
1228 HttpRequestInfo request; | 1228 HttpRequestInfo request; |
1229 request.method = "POST"; | 1229 request.method = "POST"; |
1230 request.url = GURL("http://www.foo.com/"); | 1230 request.url = GURL("http://www.foo.com/"); |
1231 request.load_flags = 0; | 1231 request.load_flags = 0; |
1232 | 1232 |
1233 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 1233 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
1234 scoped_ptr<HttpTransaction> trans( | 1234 scoped_ptr<HttpTransaction> trans( |
1235 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 1235 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
1236 | |
1237 | 1236 |
1238 MockRead data_reads[] = { | 1237 MockRead data_reads[] = { |
1239 MockRead(ASYNC, 0), | 1238 MockRead(ASYNC, 0), |
1240 }; | 1239 }; |
1241 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 1240 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
1242 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1241 session_deps_.socket_factory->AddSocketDataProvider(&data); |
1243 | 1242 |
1244 TestCompletionCallback callback; | 1243 TestCompletionCallback callback; |
1245 | 1244 |
1246 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 1245 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1541 } | 1540 } |
1542 | 1541 |
1543 TEST_P(HttpNetworkTransactionTest, NonKeepAliveConnectionReset) { | 1542 TEST_P(HttpNetworkTransactionTest, NonKeepAliveConnectionReset) { |
1544 HttpRequestInfo request; | 1543 HttpRequestInfo request; |
1545 request.method = "GET"; | 1544 request.method = "GET"; |
1546 request.url = GURL("http://www.google.com/"); | 1545 request.url = GURL("http://www.google.com/"); |
1547 request.load_flags = 0; | 1546 request.load_flags = 0; |
1548 | 1547 |
1549 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 1548 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
1550 scoped_ptr<HttpTransaction> trans( | 1549 scoped_ptr<HttpTransaction> trans( |
1551 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 1550 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
1552 | 1551 |
1553 MockRead data_reads[] = { | 1552 MockRead data_reads[] = { |
1554 MockRead(ASYNC, ERR_CONNECTION_RESET), | 1553 MockRead(ASYNC, ERR_CONNECTION_RESET), |
1555 MockRead("HTTP/1.0 200 OK\r\n\r\n"), // Should not be used | 1554 MockRead("HTTP/1.0 200 OK\r\n\r\n"), // Should not be used |
1556 MockRead("hello world"), | 1555 MockRead("hello world"), |
1557 MockRead(SYNCHRONOUS, OK), | 1556 MockRead(SYNCHRONOUS, OK), |
1558 }; | 1557 }; |
1559 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 1558 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
1560 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1559 session_deps_.socket_factory->AddSocketDataProvider(&data); |
1561 | 1560 |
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1868 TEST_P(HttpNetworkTransactionTest, BasicAuth) { | 1867 TEST_P(HttpNetworkTransactionTest, BasicAuth) { |
1869 HttpRequestInfo request; | 1868 HttpRequestInfo request; |
1870 request.method = "GET"; | 1869 request.method = "GET"; |
1871 request.url = GURL("http://www.google.com/"); | 1870 request.url = GURL("http://www.google.com/"); |
1872 request.load_flags = 0; | 1871 request.load_flags = 0; |
1873 | 1872 |
1874 CapturingNetLog log; | 1873 CapturingNetLog log; |
1875 session_deps_.net_log = &log; | 1874 session_deps_.net_log = &log; |
1876 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 1875 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
1877 scoped_ptr<HttpTransaction> trans( | 1876 scoped_ptr<HttpTransaction> trans( |
1878 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 1877 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
1879 | 1878 |
1880 MockWrite data_writes1[] = { | 1879 MockWrite data_writes1[] = { |
1881 MockWrite("GET / HTTP/1.1\r\n" | 1880 MockWrite("GET / HTTP/1.1\r\n" |
1882 "Host: www.google.com\r\n" | 1881 "Host: www.google.com\r\n" |
1883 "Connection: keep-alive\r\n\r\n"), | 1882 "Connection: keep-alive\r\n\r\n"), |
1884 }; | 1883 }; |
1885 | 1884 |
1886 MockRead data_reads1[] = { | 1885 MockRead data_reads1[] = { |
1887 MockRead("HTTP/1.0 401 Unauthorized\r\n"), | 1886 MockRead("HTTP/1.0 401 Unauthorized\r\n"), |
1888 // Give a couple authenticate options (only the middle one is actually | 1887 // Give a couple authenticate options (only the middle one is actually |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1967 } | 1966 } |
1968 | 1967 |
1969 TEST_P(HttpNetworkTransactionTest, DoNotSendAuth) { | 1968 TEST_P(HttpNetworkTransactionTest, DoNotSendAuth) { |
1970 HttpRequestInfo request; | 1969 HttpRequestInfo request; |
1971 request.method = "GET"; | 1970 request.method = "GET"; |
1972 request.url = GURL("http://www.google.com/"); | 1971 request.url = GURL("http://www.google.com/"); |
1973 request.load_flags = net::LOAD_DO_NOT_SEND_AUTH_DATA; | 1972 request.load_flags = net::LOAD_DO_NOT_SEND_AUTH_DATA; |
1974 | 1973 |
1975 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 1974 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
1976 scoped_ptr<HttpTransaction> trans( | 1975 scoped_ptr<HttpTransaction> trans( |
1977 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 1976 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
1978 | 1977 |
1979 MockWrite data_writes[] = { | 1978 MockWrite data_writes[] = { |
1980 MockWrite("GET / HTTP/1.1\r\n" | 1979 MockWrite("GET / HTTP/1.1\r\n" |
1981 "Host: www.google.com\r\n" | 1980 "Host: www.google.com\r\n" |
1982 "Connection: keep-alive\r\n\r\n"), | 1981 "Connection: keep-alive\r\n\r\n"), |
1983 }; | 1982 }; |
1984 | 1983 |
1985 MockRead data_reads[] = { | 1984 MockRead data_reads[] = { |
1986 MockRead("HTTP/1.0 401 Unauthorized\r\n"), | 1985 MockRead("HTTP/1.0 401 Unauthorized\r\n"), |
1987 MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"), | 1986 MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"), |
(...skipping 651 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2639 // The request should fail with ERR_UNEXPECTED_PROXY_AUTH. | 2638 // The request should fail with ERR_UNEXPECTED_PROXY_AUTH. |
2640 TEST_P(HttpNetworkTransactionTest, UnexpectedProxyAuth) { | 2639 TEST_P(HttpNetworkTransactionTest, UnexpectedProxyAuth) { |
2641 HttpRequestInfo request; | 2640 HttpRequestInfo request; |
2642 request.method = "GET"; | 2641 request.method = "GET"; |
2643 request.url = GURL("http://www.google.com/"); | 2642 request.url = GURL("http://www.google.com/"); |
2644 request.load_flags = 0; | 2643 request.load_flags = 0; |
2645 | 2644 |
2646 // We are using a DIRECT connection (i.e. no proxy) for this session. | 2645 // We are using a DIRECT connection (i.e. no proxy) for this session. |
2647 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 2646 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
2648 scoped_ptr<HttpTransaction> trans( | 2647 scoped_ptr<HttpTransaction> trans( |
2649 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 2648 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
2650 | 2649 |
2651 MockWrite data_writes1[] = { | 2650 MockWrite data_writes1[] = { |
2652 MockWrite("GET / HTTP/1.1\r\n" | 2651 MockWrite("GET / HTTP/1.1\r\n" |
2653 "Host: www.google.com\r\n" | 2652 "Host: www.google.com\r\n" |
2654 "Connection: keep-alive\r\n\r\n"), | 2653 "Connection: keep-alive\r\n\r\n"), |
2655 }; | 2654 }; |
2656 | 2655 |
2657 MockRead data_reads1[] = { | 2656 MockRead data_reads1[] = { |
2658 MockRead("HTTP/1.0 407 Proxy Auth required\r\n"), | 2657 MockRead("HTTP/1.0 407 Proxy Auth required\r\n"), |
2659 MockRead("Proxy-Authenticate: Basic realm=\"MyRealm1\"\r\n"), | 2658 MockRead("Proxy-Authenticate: Basic realm=\"MyRealm1\"\r\n"), |
(...skipping 1530 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4190 HttpRequestInfo request; | 4189 HttpRequestInfo request; |
4191 request.method = "GET"; | 4190 request.method = "GET"; |
4192 request.url = GURL("http://www.google.com/"); | 4191 request.url = GURL("http://www.google.com/"); |
4193 request.load_flags = 0; | 4192 request.load_flags = 0; |
4194 | 4193 |
4195 // Configure against proxy server "myproxy:70". | 4194 // Configure against proxy server "myproxy:70". |
4196 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); | 4195 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); |
4197 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 4196 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
4198 | 4197 |
4199 scoped_ptr<HttpTransaction> trans( | 4198 scoped_ptr<HttpTransaction> trans( |
4200 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 4199 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
4201 | 4200 |
4202 MockWrite data_writes1[] = { | 4201 MockWrite data_writes1[] = { |
4203 MockWrite("GET http://www.google.com/ HTTP/1.1\r\n" | 4202 MockWrite("GET http://www.google.com/ HTTP/1.1\r\n" |
4204 "Host: www.google.com\r\n" | 4203 "Host: www.google.com\r\n" |
4205 "Proxy-Connection: keep-alive\r\n\r\n"), | 4204 "Proxy-Connection: keep-alive\r\n\r\n"), |
4206 }; | 4205 }; |
4207 | 4206 |
4208 MockRead data_reads1[] = { | 4207 MockRead data_reads1[] = { |
4209 MockRead("HTTP/1.0 407 Unauthorized\r\n"), | 4208 MockRead("HTTP/1.0 407 Unauthorized\r\n"), |
4210 // Give a couple authenticate options (only the middle one is actually | 4209 // Give a couple authenticate options (only the middle one is actually |
(...skipping 440 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4651 // After some maximum number of bytes is consumed, the transaction should | 4650 // After some maximum number of bytes is consumed, the transaction should |
4652 // fail with ERR_RESPONSE_HEADERS_TOO_BIG. | 4651 // fail with ERR_RESPONSE_HEADERS_TOO_BIG. |
4653 TEST_P(HttpNetworkTransactionTest, LargeHeadersNoBody) { | 4652 TEST_P(HttpNetworkTransactionTest, LargeHeadersNoBody) { |
4654 HttpRequestInfo request; | 4653 HttpRequestInfo request; |
4655 request.method = "GET"; | 4654 request.method = "GET"; |
4656 request.url = GURL("http://www.google.com/"); | 4655 request.url = GURL("http://www.google.com/"); |
4657 request.load_flags = 0; | 4656 request.load_flags = 0; |
4658 | 4657 |
4659 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 4658 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
4660 scoped_ptr<HttpTransaction> trans( | 4659 scoped_ptr<HttpTransaction> trans( |
4661 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 4660 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
4662 | 4661 |
4663 // Respond with 300 kb of headers (we should fail after 256 kb). | 4662 // Respond with 300 kb of headers (we should fail after 256 kb). |
4664 std::string large_headers_string; | 4663 std::string large_headers_string; |
4665 FillLargeHeadersString(&large_headers_string, 300 * 1024); | 4664 FillLargeHeadersString(&large_headers_string, 300 * 1024); |
4666 | 4665 |
4667 MockRead data_reads[] = { | 4666 MockRead data_reads[] = { |
4668 MockRead("HTTP/1.0 200 OK\r\n"), | 4667 MockRead("HTTP/1.0 200 OK\r\n"), |
4669 MockRead(ASYNC, large_headers_string.data(), large_headers_string.size()), | 4668 MockRead(ASYNC, large_headers_string.data(), large_headers_string.size()), |
4670 MockRead("\r\nBODY"), | 4669 MockRead("\r\nBODY"), |
4671 MockRead(SYNCHRONOUS, OK), | 4670 MockRead(SYNCHRONOUS, OK), |
(...skipping 434 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5106 // an identity in the URL. The request should be sent as normal, but when | 5105 // an identity in the URL. The request should be sent as normal, but when |
5107 // it fails the identity from the URL is used to answer the challenge. | 5106 // it fails the identity from the URL is used to answer the challenge. |
5108 TEST_P(HttpNetworkTransactionTest, AuthIdentityInURL) { | 5107 TEST_P(HttpNetworkTransactionTest, AuthIdentityInURL) { |
5109 HttpRequestInfo request; | 5108 HttpRequestInfo request; |
5110 request.method = "GET"; | 5109 request.method = "GET"; |
5111 request.url = GURL("http://foo:b@r@www.google.com/"); | 5110 request.url = GURL("http://foo:b@r@www.google.com/"); |
5112 request.load_flags = LOAD_NORMAL; | 5111 request.load_flags = LOAD_NORMAL; |
5113 | 5112 |
5114 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 5113 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
5115 scoped_ptr<HttpTransaction> trans( | 5114 scoped_ptr<HttpTransaction> trans( |
5116 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 5115 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
5117 | 5116 |
5118 // The password contains an escaped character -- for this test to pass it | 5117 // The password contains an escaped character -- for this test to pass it |
5119 // will need to be unescaped by HttpNetworkTransaction. | 5118 // will need to be unescaped by HttpNetworkTransaction. |
5120 EXPECT_EQ("b%40r", request.url.password()); | 5119 EXPECT_EQ("b%40r", request.url.password()); |
5121 | 5120 |
5122 MockWrite data_writes1[] = { | 5121 MockWrite data_writes1[] = { |
5123 MockWrite("GET / HTTP/1.1\r\n" | 5122 MockWrite("GET / HTTP/1.1\r\n" |
5124 "Host: www.google.com\r\n" | 5123 "Host: www.google.com\r\n" |
5125 "Connection: keep-alive\r\n\r\n"), | 5124 "Connection: keep-alive\r\n\r\n"), |
5126 }; | 5125 }; |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5187 HttpRequestInfo request; | 5186 HttpRequestInfo request; |
5188 request.method = "GET"; | 5187 request.method = "GET"; |
5189 // Note: the URL has a username:password in it. The password "baz" is | 5188 // Note: the URL has a username:password in it. The password "baz" is |
5190 // wrong (should be "bar"). | 5189 // wrong (should be "bar"). |
5191 request.url = GURL("http://foo:baz@www.google.com/"); | 5190 request.url = GURL("http://foo:baz@www.google.com/"); |
5192 | 5191 |
5193 request.load_flags = LOAD_NORMAL; | 5192 request.load_flags = LOAD_NORMAL; |
5194 | 5193 |
5195 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 5194 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
5196 scoped_ptr<HttpTransaction> trans( | 5195 scoped_ptr<HttpTransaction> trans( |
5197 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 5196 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
5198 | 5197 |
5199 MockWrite data_writes1[] = { | 5198 MockWrite data_writes1[] = { |
5200 MockWrite("GET / HTTP/1.1\r\n" | 5199 MockWrite("GET / HTTP/1.1\r\n" |
5201 "Host: www.google.com\r\n" | 5200 "Host: www.google.com\r\n" |
5202 "Connection: keep-alive\r\n\r\n"), | 5201 "Connection: keep-alive\r\n\r\n"), |
5203 }; | 5202 }; |
5204 | 5203 |
5205 MockRead data_reads1[] = { | 5204 MockRead data_reads1[] = { |
5206 MockRead("HTTP/1.0 401 Unauthorized\r\n"), | 5205 MockRead("HTTP/1.0 401 Unauthorized\r\n"), |
5207 MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"), | 5206 MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"), |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5295 // correct identity in the URL, but its use is being suppressed. The identity | 5294 // correct identity in the URL, but its use is being suppressed. The identity |
5296 // from the URL should never be used. | 5295 // from the URL should never be used. |
5297 TEST_P(HttpNetworkTransactionTest, AuthIdentityInURLSuppressed) { | 5296 TEST_P(HttpNetworkTransactionTest, AuthIdentityInURLSuppressed) { |
5298 HttpRequestInfo request; | 5297 HttpRequestInfo request; |
5299 request.method = "GET"; | 5298 request.method = "GET"; |
5300 request.url = GURL("http://foo:bar@www.google.com/"); | 5299 request.url = GURL("http://foo:bar@www.google.com/"); |
5301 request.load_flags = LOAD_DO_NOT_USE_EMBEDDED_IDENTITY; | 5300 request.load_flags = LOAD_DO_NOT_USE_EMBEDDED_IDENTITY; |
5302 | 5301 |
5303 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 5302 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
5304 scoped_ptr<HttpTransaction> trans( | 5303 scoped_ptr<HttpTransaction> trans( |
5305 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 5304 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
5306 | 5305 |
5307 MockWrite data_writes1[] = { | 5306 MockWrite data_writes1[] = { |
5308 MockWrite("GET / HTTP/1.1\r\n" | 5307 MockWrite("GET / HTTP/1.1\r\n" |
5309 "Host: www.google.com\r\n" | 5308 "Host: www.google.com\r\n" |
5310 "Connection: keep-alive\r\n\r\n"), | 5309 "Connection: keep-alive\r\n\r\n"), |
5311 }; | 5310 }; |
5312 | 5311 |
5313 MockRead data_reads1[] = { | 5312 MockRead data_reads1[] = { |
5314 MockRead("HTTP/1.0 401 Unauthorized\r\n"), | 5313 MockRead("HTTP/1.0 401 Unauthorized\r\n"), |
5315 MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"), | 5314 MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"), |
(...skipping 570 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5886 ASSERT_TRUE(response != NULL); | 5885 ASSERT_TRUE(response != NULL); |
5887 EXPECT_TRUE(response->auth_challenge.get() == NULL); | 5886 EXPECT_TRUE(response->auth_challenge.get() == NULL); |
5888 } | 5887 } |
5889 } | 5888 } |
5890 | 5889 |
5891 // Test the ResetStateForRestart() private method. | 5890 // Test the ResetStateForRestart() private method. |
5892 TEST_P(HttpNetworkTransactionTest, ResetStateForRestart) { | 5891 TEST_P(HttpNetworkTransactionTest, ResetStateForRestart) { |
5893 // Create a transaction (the dependencies aren't important). | 5892 // Create a transaction (the dependencies aren't important). |
5894 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 5893 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
5895 scoped_ptr<HttpNetworkTransaction> trans( | 5894 scoped_ptr<HttpNetworkTransaction> trans( |
5896 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 5895 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
5897 | 5896 |
5898 // Setup some state (which we expect ResetStateForRestart() will clear). | 5897 // Setup some state (which we expect ResetStateForRestart() will clear). |
5899 trans->read_buf_ = new IOBuffer(15); | 5898 trans->read_buf_ = new IOBuffer(15); |
5900 trans->read_buf_len_ = 15; | 5899 trans->read_buf_len_ = 15; |
5901 trans->request_headers_.SetHeader("Authorization", "NTLM"); | 5900 trans->request_headers_.SetHeader("Authorization", "NTLM"); |
5902 | 5901 |
5903 // Setup state in response_ | 5902 // Setup state in response_ |
5904 HttpResponseInfo* response = &trans->response_; | 5903 HttpResponseInfo* response = &trans->response_; |
5905 response->auth_challenge = new AuthChallengeInfo(); | 5904 response->auth_challenge = new AuthChallengeInfo(); |
5906 response->ssl_info.cert_status = static_cast<CertStatus>(-1); // Nonsensical. | 5905 response->ssl_info.cert_status = static_cast<CertStatus>(-1); // Nonsensical. |
(...skipping 26 matching lines...) Expand all Loading... |
5933 | 5932 |
5934 // Test HTTPS connections to a site with a bad certificate | 5933 // Test HTTPS connections to a site with a bad certificate |
5935 TEST_P(HttpNetworkTransactionTest, HTTPSBadCertificate) { | 5934 TEST_P(HttpNetworkTransactionTest, HTTPSBadCertificate) { |
5936 HttpRequestInfo request; | 5935 HttpRequestInfo request; |
5937 request.method = "GET"; | 5936 request.method = "GET"; |
5938 request.url = GURL("https://www.google.com/"); | 5937 request.url = GURL("https://www.google.com/"); |
5939 request.load_flags = 0; | 5938 request.load_flags = 0; |
5940 | 5939 |
5941 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 5940 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
5942 scoped_ptr<HttpTransaction> trans( | 5941 scoped_ptr<HttpTransaction> trans( |
5943 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 5942 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
5944 | 5943 |
5945 MockWrite data_writes[] = { | 5944 MockWrite data_writes[] = { |
5946 MockWrite("GET / HTTP/1.1\r\n" | 5945 MockWrite("GET / HTTP/1.1\r\n" |
5947 "Host: www.google.com\r\n" | 5946 "Host: www.google.com\r\n" |
5948 "Connection: keep-alive\r\n\r\n"), | 5947 "Connection: keep-alive\r\n\r\n"), |
5949 }; | 5948 }; |
5950 | 5949 |
5951 MockRead data_reads[] = { | 5950 MockRead data_reads[] = { |
5952 MockRead("HTTP/1.0 200 OK\r\n"), | 5951 MockRead("HTTP/1.0 200 OK\r\n"), |
5953 MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"), | 5952 MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"), |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6037 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_bad); | 6036 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_bad); |
6038 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 6037 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
6039 | 6038 |
6040 TestCompletionCallback callback; | 6039 TestCompletionCallback callback; |
6041 | 6040 |
6042 for (int i = 0; i < 2; i++) { | 6041 for (int i = 0; i < 2; i++) { |
6043 session_deps_.socket_factory->ResetNextMockIndexes(); | 6042 session_deps_.socket_factory->ResetNextMockIndexes(); |
6044 | 6043 |
6045 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 6044 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
6046 scoped_ptr<HttpTransaction> trans( | 6045 scoped_ptr<HttpTransaction> trans( |
6047 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 6046 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
6048 | 6047 |
6049 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 6048 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
6050 EXPECT_EQ(ERR_IO_PENDING, rv); | 6049 EXPECT_EQ(ERR_IO_PENDING, rv); |
6051 | 6050 |
6052 rv = callback.WaitForResult(); | 6051 rv = callback.WaitForResult(); |
6053 EXPECT_EQ(ERR_CERT_AUTHORITY_INVALID, rv); | 6052 EXPECT_EQ(ERR_CERT_AUTHORITY_INVALID, rv); |
6054 | 6053 |
6055 rv = trans->RestartIgnoringLastError(callback.callback()); | 6054 rv = trans->RestartIgnoringLastError(callback.callback()); |
6056 EXPECT_EQ(ERR_IO_PENDING, rv); | 6055 EXPECT_EQ(ERR_IO_PENDING, rv); |
6057 | 6056 |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6101 SSLSocketDataProvider tunnel_ssl(ASYNC, OK); // SSL through the tunnel | 6100 SSLSocketDataProvider tunnel_ssl(ASYNC, OK); // SSL through the tunnel |
6102 | 6101 |
6103 session_deps_.socket_factory->AddSocketDataProvider(&data); | 6102 session_deps_.socket_factory->AddSocketDataProvider(&data); |
6104 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); | 6103 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); |
6105 session_deps_.socket_factory->AddSSLSocketDataProvider(&tunnel_ssl); | 6104 session_deps_.socket_factory->AddSSLSocketDataProvider(&tunnel_ssl); |
6106 | 6105 |
6107 TestCompletionCallback callback; | 6106 TestCompletionCallback callback; |
6108 | 6107 |
6109 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 6108 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
6110 scoped_ptr<HttpTransaction> trans( | 6109 scoped_ptr<HttpTransaction> trans( |
6111 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 6110 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
6112 | 6111 |
6113 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 6112 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
6114 EXPECT_EQ(ERR_IO_PENDING, rv); | 6113 EXPECT_EQ(ERR_IO_PENDING, rv); |
6115 | 6114 |
6116 rv = callback.WaitForResult(); | 6115 rv = callback.WaitForResult(); |
6117 EXPECT_EQ(OK, rv); | 6116 EXPECT_EQ(OK, rv); |
6118 const HttpResponseInfo* response = trans->GetResponseInfo(); | 6117 const HttpResponseInfo* response = trans->GetResponseInfo(); |
6119 | 6118 |
6120 ASSERT_TRUE(response != NULL); | 6119 ASSERT_TRUE(response != NULL); |
6121 | 6120 |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6159 data_writes, arraysize(data_writes)); | 6158 data_writes, arraysize(data_writes)); |
6160 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy | 6159 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy |
6161 | 6160 |
6162 session_deps_.socket_factory->AddSocketDataProvider(&data); | 6161 session_deps_.socket_factory->AddSocketDataProvider(&data); |
6163 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); | 6162 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); |
6164 | 6163 |
6165 TestCompletionCallback callback; | 6164 TestCompletionCallback callback; |
6166 | 6165 |
6167 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 6166 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
6168 scoped_ptr<HttpTransaction> trans( | 6167 scoped_ptr<HttpTransaction> trans( |
6169 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 6168 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
6170 | 6169 |
6171 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 6170 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
6172 EXPECT_EQ(ERR_IO_PENDING, rv); | 6171 EXPECT_EQ(ERR_IO_PENDING, rv); |
6173 | 6172 |
6174 rv = callback.WaitForResult(); | 6173 rv = callback.WaitForResult(); |
6175 EXPECT_EQ(OK, rv); | 6174 EXPECT_EQ(OK, rv); |
6176 const HttpResponseInfo* response = trans->GetResponseInfo(); | 6175 const HttpResponseInfo* response = trans->GetResponseInfo(); |
6177 | 6176 |
6178 ASSERT_TRUE(response != NULL); | 6177 ASSERT_TRUE(response != NULL); |
6179 | 6178 |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6244 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy | 6243 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy |
6245 proxy_ssl.SetNextProto(GetParam()); | 6244 proxy_ssl.SetNextProto(GetParam()); |
6246 | 6245 |
6247 session_deps_.socket_factory->AddSocketDataProvider(&data); | 6246 session_deps_.socket_factory->AddSocketDataProvider(&data); |
6248 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); | 6247 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); |
6249 | 6248 |
6250 TestCompletionCallback callback; | 6249 TestCompletionCallback callback; |
6251 | 6250 |
6252 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 6251 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
6253 scoped_ptr<HttpTransaction> trans( | 6252 scoped_ptr<HttpTransaction> trans( |
6254 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 6253 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
6255 | 6254 |
6256 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 6255 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
6257 EXPECT_EQ(ERR_IO_PENDING, rv); | 6256 EXPECT_EQ(ERR_IO_PENDING, rv); |
6258 | 6257 |
6259 rv = callback.WaitForResult(); | 6258 rv = callback.WaitForResult(); |
6260 EXPECT_EQ(OK, rv); | 6259 EXPECT_EQ(OK, rv); |
6261 const HttpResponseInfo* response = trans->GetResponseInfo(); | 6260 const HttpResponseInfo* response = trans->GetResponseInfo(); |
6262 | 6261 |
6263 ASSERT_TRUE(response != NULL); | 6262 ASSERT_TRUE(response != NULL); |
6264 | 6263 |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6296 data_writes, arraysize(data_writes)); | 6295 data_writes, arraysize(data_writes)); |
6297 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy | 6296 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy |
6298 | 6297 |
6299 session_deps_.socket_factory->AddSocketDataProvider(&data); | 6298 session_deps_.socket_factory->AddSocketDataProvider(&data); |
6300 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); | 6299 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); |
6301 | 6300 |
6302 TestCompletionCallback callback; | 6301 TestCompletionCallback callback; |
6303 | 6302 |
6304 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 6303 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
6305 scoped_ptr<HttpTransaction> trans( | 6304 scoped_ptr<HttpTransaction> trans( |
6306 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 6305 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
6307 | 6306 |
6308 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 6307 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
6309 EXPECT_EQ(ERR_IO_PENDING, rv); | 6308 EXPECT_EQ(ERR_IO_PENDING, rv); |
6310 | 6309 |
6311 rv = callback.WaitForResult(); | 6310 rv = callback.WaitForResult(); |
6312 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, rv); | 6311 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, rv); |
6313 | 6312 |
6314 // TODO(ttuttle): Anything else to check here? | 6313 // TODO(ttuttle): Anything else to check here? |
6315 } | 6314 } |
6316 | 6315 |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6357 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy | 6356 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy |
6358 proxy_ssl.SetNextProto(GetParam()); | 6357 proxy_ssl.SetNextProto(GetParam()); |
6359 | 6358 |
6360 session_deps_.socket_factory->AddSocketDataProvider(&data); | 6359 session_deps_.socket_factory->AddSocketDataProvider(&data); |
6361 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); | 6360 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); |
6362 | 6361 |
6363 TestCompletionCallback callback; | 6362 TestCompletionCallback callback; |
6364 | 6363 |
6365 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 6364 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
6366 scoped_ptr<HttpTransaction> trans( | 6365 scoped_ptr<HttpTransaction> trans( |
6367 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 6366 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
6368 | 6367 |
6369 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 6368 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
6370 EXPECT_EQ(ERR_IO_PENDING, rv); | 6369 EXPECT_EQ(ERR_IO_PENDING, rv); |
6371 | 6370 |
6372 rv = callback.WaitForResult(); | 6371 rv = callback.WaitForResult(); |
6373 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, rv); | 6372 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, rv); |
6374 | 6373 |
6375 // TODO(ttuttle): Anything else to check here? | 6374 // TODO(ttuttle): Anything else to check here? |
6376 } | 6375 } |
6377 | 6376 |
(...skipping 393 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6771 | 6770 |
6772 // SSL to the proxy, then CONNECT request, then valid SSL certificate | 6771 // SSL to the proxy, then CONNECT request, then valid SSL certificate |
6773 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 6772 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
6774 session_deps_.socket_factory->AddSocketDataProvider(&data); | 6773 session_deps_.socket_factory->AddSocketDataProvider(&data); |
6775 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 6774 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
6776 | 6775 |
6777 TestCompletionCallback callback; | 6776 TestCompletionCallback callback; |
6778 | 6777 |
6779 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 6778 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
6780 scoped_ptr<HttpTransaction> trans( | 6779 scoped_ptr<HttpTransaction> trans( |
6781 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 6780 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
6782 | 6781 |
6783 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 6782 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
6784 EXPECT_EQ(ERR_IO_PENDING, rv); | 6783 EXPECT_EQ(ERR_IO_PENDING, rv); |
6785 | 6784 |
6786 rv = callback.WaitForResult(); | 6785 rv = callback.WaitForResult(); |
6787 EXPECT_EQ(ERR_CERT_AUTHORITY_INVALID, rv); | 6786 EXPECT_EQ(ERR_CERT_AUTHORITY_INVALID, rv); |
6788 | 6787 |
6789 rv = trans->RestartIgnoringLastError(callback.callback()); | 6788 rv = trans->RestartIgnoringLastError(callback.callback()); |
6790 EXPECT_EQ(ERR_IO_PENDING, rv); | 6789 EXPECT_EQ(ERR_IO_PENDING, rv); |
6791 | 6790 |
6792 rv = callback.WaitForResult(); | 6791 rv = callback.WaitForResult(); |
6793 EXPECT_EQ(OK, rv); | 6792 EXPECT_EQ(OK, rv); |
6794 | 6793 |
6795 const HttpResponseInfo* response = trans->GetResponseInfo(); | 6794 const HttpResponseInfo* response = trans->GetResponseInfo(); |
6796 | 6795 |
6797 ASSERT_TRUE(response != NULL); | 6796 ASSERT_TRUE(response != NULL); |
6798 EXPECT_EQ(100, response->headers->GetContentLength()); | 6797 EXPECT_EQ(100, response->headers->GetContentLength()); |
6799 } | 6798 } |
6800 | 6799 |
6801 TEST_P(HttpNetworkTransactionTest, BuildRequest_UserAgent) { | 6800 TEST_P(HttpNetworkTransactionTest, BuildRequest_UserAgent) { |
6802 HttpRequestInfo request; | 6801 HttpRequestInfo request; |
6803 request.method = "GET"; | 6802 request.method = "GET"; |
6804 request.url = GURL("http://www.google.com/"); | 6803 request.url = GURL("http://www.google.com/"); |
6805 request.extra_headers.SetHeader(HttpRequestHeaders::kUserAgent, | 6804 request.extra_headers.SetHeader(HttpRequestHeaders::kUserAgent, |
6806 "Chromium Ultra Awesome X Edition"); | 6805 "Chromium Ultra Awesome X Edition"); |
6807 | 6806 |
6808 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 6807 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
6809 scoped_ptr<HttpTransaction> trans( | 6808 scoped_ptr<HttpTransaction> trans( |
6810 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 6809 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
6811 | 6810 |
6812 MockWrite data_writes[] = { | 6811 MockWrite data_writes[] = { |
6813 MockWrite("GET / HTTP/1.1\r\n" | 6812 MockWrite("GET / HTTP/1.1\r\n" |
6814 "Host: www.google.com\r\n" | 6813 "Host: www.google.com\r\n" |
6815 "Connection: keep-alive\r\n" | 6814 "Connection: keep-alive\r\n" |
6816 "User-Agent: Chromium Ultra Awesome X Edition\r\n\r\n"), | 6815 "User-Agent: Chromium Ultra Awesome X Edition\r\n\r\n"), |
6817 }; | 6816 }; |
6818 | 6817 |
6819 // Lastly, the server responds with the actual content. | 6818 // Lastly, the server responds with the actual content. |
6820 MockRead data_reads[] = { | 6819 MockRead data_reads[] = { |
(...skipping 19 matching lines...) Expand all Loading... |
6840 TEST_P(HttpNetworkTransactionTest, BuildRequest_UserAgentOverTunnel) { | 6839 TEST_P(HttpNetworkTransactionTest, BuildRequest_UserAgentOverTunnel) { |
6841 HttpRequestInfo request; | 6840 HttpRequestInfo request; |
6842 request.method = "GET"; | 6841 request.method = "GET"; |
6843 request.url = GURL("https://www.google.com/"); | 6842 request.url = GURL("https://www.google.com/"); |
6844 request.extra_headers.SetHeader(HttpRequestHeaders::kUserAgent, | 6843 request.extra_headers.SetHeader(HttpRequestHeaders::kUserAgent, |
6845 "Chromium Ultra Awesome X Edition"); | 6844 "Chromium Ultra Awesome X Edition"); |
6846 | 6845 |
6847 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); | 6846 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); |
6848 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 6847 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
6849 scoped_ptr<HttpTransaction> trans( | 6848 scoped_ptr<HttpTransaction> trans( |
6850 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 6849 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
6851 | 6850 |
6852 MockWrite data_writes[] = { | 6851 MockWrite data_writes[] = { |
6853 MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n" | 6852 MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n" |
6854 "Host: www.google.com\r\n" | 6853 "Host: www.google.com\r\n" |
6855 "Proxy-Connection: keep-alive\r\n" | 6854 "Proxy-Connection: keep-alive\r\n" |
6856 "User-Agent: Chromium Ultra Awesome X Edition\r\n\r\n"), | 6855 "User-Agent: Chromium Ultra Awesome X Edition\r\n\r\n"), |
6857 }; | 6856 }; |
6858 MockRead data_reads[] = { | 6857 MockRead data_reads[] = { |
6859 // Return an error, so the transaction stops here (this test isn't | 6858 // Return an error, so the transaction stops here (this test isn't |
6860 // interested in the rest). | 6859 // interested in the rest). |
(...skipping 18 matching lines...) Expand all Loading... |
6879 TEST_P(HttpNetworkTransactionTest, BuildRequest_Referer) { | 6878 TEST_P(HttpNetworkTransactionTest, BuildRequest_Referer) { |
6880 HttpRequestInfo request; | 6879 HttpRequestInfo request; |
6881 request.method = "GET"; | 6880 request.method = "GET"; |
6882 request.url = GURL("http://www.google.com/"); | 6881 request.url = GURL("http://www.google.com/"); |
6883 request.load_flags = 0; | 6882 request.load_flags = 0; |
6884 request.extra_headers.SetHeader(HttpRequestHeaders::kReferer, | 6883 request.extra_headers.SetHeader(HttpRequestHeaders::kReferer, |
6885 "http://the.previous.site.com/"); | 6884 "http://the.previous.site.com/"); |
6886 | 6885 |
6887 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 6886 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
6888 scoped_ptr<HttpTransaction> trans( | 6887 scoped_ptr<HttpTransaction> trans( |
6889 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 6888 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
6890 | 6889 |
6891 MockWrite data_writes[] = { | 6890 MockWrite data_writes[] = { |
6892 MockWrite("GET / HTTP/1.1\r\n" | 6891 MockWrite("GET / HTTP/1.1\r\n" |
6893 "Host: www.google.com\r\n" | 6892 "Host: www.google.com\r\n" |
6894 "Connection: keep-alive\r\n" | 6893 "Connection: keep-alive\r\n" |
6895 "Referer: http://the.previous.site.com/\r\n\r\n"), | 6894 "Referer: http://the.previous.site.com/\r\n\r\n"), |
6896 }; | 6895 }; |
6897 | 6896 |
6898 // Lastly, the server responds with the actual content. | 6897 // Lastly, the server responds with the actual content. |
6899 MockRead data_reads[] = { | 6898 MockRead data_reads[] = { |
(...skipping 16 matching lines...) Expand all Loading... |
6916 EXPECT_EQ(OK, rv); | 6915 EXPECT_EQ(OK, rv); |
6917 } | 6916 } |
6918 | 6917 |
6919 TEST_P(HttpNetworkTransactionTest, BuildRequest_PostContentLengthZero) { | 6918 TEST_P(HttpNetworkTransactionTest, BuildRequest_PostContentLengthZero) { |
6920 HttpRequestInfo request; | 6919 HttpRequestInfo request; |
6921 request.method = "POST"; | 6920 request.method = "POST"; |
6922 request.url = GURL("http://www.google.com/"); | 6921 request.url = GURL("http://www.google.com/"); |
6923 | 6922 |
6924 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 6923 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
6925 scoped_ptr<HttpTransaction> trans( | 6924 scoped_ptr<HttpTransaction> trans( |
6926 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 6925 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
6927 | 6926 |
6928 MockWrite data_writes[] = { | 6927 MockWrite data_writes[] = { |
6929 MockWrite("POST / HTTP/1.1\r\n" | 6928 MockWrite("POST / HTTP/1.1\r\n" |
6930 "Host: www.google.com\r\n" | 6929 "Host: www.google.com\r\n" |
6931 "Connection: keep-alive\r\n" | 6930 "Connection: keep-alive\r\n" |
6932 "Content-Length: 0\r\n\r\n"), | 6931 "Content-Length: 0\r\n\r\n"), |
6933 }; | 6932 }; |
6934 | 6933 |
6935 // Lastly, the server responds with the actual content. | 6934 // Lastly, the server responds with the actual content. |
6936 MockRead data_reads[] = { | 6935 MockRead data_reads[] = { |
(...skipping 16 matching lines...) Expand all Loading... |
6953 EXPECT_EQ(OK, rv); | 6952 EXPECT_EQ(OK, rv); |
6954 } | 6953 } |
6955 | 6954 |
6956 TEST_P(HttpNetworkTransactionTest, BuildRequest_PutContentLengthZero) { | 6955 TEST_P(HttpNetworkTransactionTest, BuildRequest_PutContentLengthZero) { |
6957 HttpRequestInfo request; | 6956 HttpRequestInfo request; |
6958 request.method = "PUT"; | 6957 request.method = "PUT"; |
6959 request.url = GURL("http://www.google.com/"); | 6958 request.url = GURL("http://www.google.com/"); |
6960 | 6959 |
6961 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 6960 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
6962 scoped_ptr<HttpTransaction> trans( | 6961 scoped_ptr<HttpTransaction> trans( |
6963 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 6962 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
6964 | 6963 |
6965 MockWrite data_writes[] = { | 6964 MockWrite data_writes[] = { |
6966 MockWrite("PUT / HTTP/1.1\r\n" | 6965 MockWrite("PUT / HTTP/1.1\r\n" |
6967 "Host: www.google.com\r\n" | 6966 "Host: www.google.com\r\n" |
6968 "Connection: keep-alive\r\n" | 6967 "Connection: keep-alive\r\n" |
6969 "Content-Length: 0\r\n\r\n"), | 6968 "Content-Length: 0\r\n\r\n"), |
6970 }; | 6969 }; |
6971 | 6970 |
6972 // Lastly, the server responds with the actual content. | 6971 // Lastly, the server responds with the actual content. |
6973 MockRead data_reads[] = { | 6972 MockRead data_reads[] = { |
(...skipping 16 matching lines...) Expand all Loading... |
6990 EXPECT_EQ(OK, rv); | 6989 EXPECT_EQ(OK, rv); |
6991 } | 6990 } |
6992 | 6991 |
6993 TEST_P(HttpNetworkTransactionTest, BuildRequest_HeadContentLengthZero) { | 6992 TEST_P(HttpNetworkTransactionTest, BuildRequest_HeadContentLengthZero) { |
6994 HttpRequestInfo request; | 6993 HttpRequestInfo request; |
6995 request.method = "HEAD"; | 6994 request.method = "HEAD"; |
6996 request.url = GURL("http://www.google.com/"); | 6995 request.url = GURL("http://www.google.com/"); |
6997 | 6996 |
6998 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 6997 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
6999 scoped_ptr<HttpTransaction> trans( | 6998 scoped_ptr<HttpTransaction> trans( |
7000 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 6999 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
7001 | 7000 |
7002 MockWrite data_writes[] = { | 7001 MockWrite data_writes[] = { |
7003 MockWrite("HEAD / HTTP/1.1\r\n" | 7002 MockWrite("HEAD / HTTP/1.1\r\n" |
7004 "Host: www.google.com\r\n" | 7003 "Host: www.google.com\r\n" |
7005 "Connection: keep-alive\r\n" | 7004 "Connection: keep-alive\r\n" |
7006 "Content-Length: 0\r\n\r\n"), | 7005 "Content-Length: 0\r\n\r\n"), |
7007 }; | 7006 }; |
7008 | 7007 |
7009 // Lastly, the server responds with the actual content. | 7008 // Lastly, the server responds with the actual content. |
7010 MockRead data_reads[] = { | 7009 MockRead data_reads[] = { |
(...skipping 17 matching lines...) Expand all Loading... |
7028 } | 7027 } |
7029 | 7028 |
7030 TEST_P(HttpNetworkTransactionTest, BuildRequest_CacheControlNoCache) { | 7029 TEST_P(HttpNetworkTransactionTest, BuildRequest_CacheControlNoCache) { |
7031 HttpRequestInfo request; | 7030 HttpRequestInfo request; |
7032 request.method = "GET"; | 7031 request.method = "GET"; |
7033 request.url = GURL("http://www.google.com/"); | 7032 request.url = GURL("http://www.google.com/"); |
7034 request.load_flags = LOAD_BYPASS_CACHE; | 7033 request.load_flags = LOAD_BYPASS_CACHE; |
7035 | 7034 |
7036 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7035 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
7037 scoped_ptr<HttpTransaction> trans( | 7036 scoped_ptr<HttpTransaction> trans( |
7038 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 7037 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
7039 | 7038 |
7040 MockWrite data_writes[] = { | 7039 MockWrite data_writes[] = { |
7041 MockWrite("GET / HTTP/1.1\r\n" | 7040 MockWrite("GET / HTTP/1.1\r\n" |
7042 "Host: www.google.com\r\n" | 7041 "Host: www.google.com\r\n" |
7043 "Connection: keep-alive\r\n" | 7042 "Connection: keep-alive\r\n" |
7044 "Pragma: no-cache\r\n" | 7043 "Pragma: no-cache\r\n" |
7045 "Cache-Control: no-cache\r\n\r\n"), | 7044 "Cache-Control: no-cache\r\n\r\n"), |
7046 }; | 7045 }; |
7047 | 7046 |
7048 // Lastly, the server responds with the actual content. | 7047 // Lastly, the server responds with the actual content. |
(...skipping 19 matching lines...) Expand all Loading... |
7068 | 7067 |
7069 TEST_P(HttpNetworkTransactionTest, | 7068 TEST_P(HttpNetworkTransactionTest, |
7070 BuildRequest_CacheControlValidateCache) { | 7069 BuildRequest_CacheControlValidateCache) { |
7071 HttpRequestInfo request; | 7070 HttpRequestInfo request; |
7072 request.method = "GET"; | 7071 request.method = "GET"; |
7073 request.url = GURL("http://www.google.com/"); | 7072 request.url = GURL("http://www.google.com/"); |
7074 request.load_flags = LOAD_VALIDATE_CACHE; | 7073 request.load_flags = LOAD_VALIDATE_CACHE; |
7075 | 7074 |
7076 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7075 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
7077 scoped_ptr<HttpTransaction> trans( | 7076 scoped_ptr<HttpTransaction> trans( |
7078 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 7077 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
7079 | 7078 |
7080 MockWrite data_writes[] = { | 7079 MockWrite data_writes[] = { |
7081 MockWrite("GET / HTTP/1.1\r\n" | 7080 MockWrite("GET / HTTP/1.1\r\n" |
7082 "Host: www.google.com\r\n" | 7081 "Host: www.google.com\r\n" |
7083 "Connection: keep-alive\r\n" | 7082 "Connection: keep-alive\r\n" |
7084 "Cache-Control: max-age=0\r\n\r\n"), | 7083 "Cache-Control: max-age=0\r\n\r\n"), |
7085 }; | 7084 }; |
7086 | 7085 |
7087 // Lastly, the server responds with the actual content. | 7086 // Lastly, the server responds with the actual content. |
7088 MockRead data_reads[] = { | 7087 MockRead data_reads[] = { |
(...skipping 17 matching lines...) Expand all Loading... |
7106 } | 7105 } |
7107 | 7106 |
7108 TEST_P(HttpNetworkTransactionTest, BuildRequest_ExtraHeaders) { | 7107 TEST_P(HttpNetworkTransactionTest, BuildRequest_ExtraHeaders) { |
7109 HttpRequestInfo request; | 7108 HttpRequestInfo request; |
7110 request.method = "GET"; | 7109 request.method = "GET"; |
7111 request.url = GURL("http://www.google.com/"); | 7110 request.url = GURL("http://www.google.com/"); |
7112 request.extra_headers.SetHeader("FooHeader", "Bar"); | 7111 request.extra_headers.SetHeader("FooHeader", "Bar"); |
7113 | 7112 |
7114 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7113 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
7115 scoped_ptr<HttpTransaction> trans( | 7114 scoped_ptr<HttpTransaction> trans( |
7116 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 7115 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
7117 | 7116 |
7118 MockWrite data_writes[] = { | 7117 MockWrite data_writes[] = { |
7119 MockWrite("GET / HTTP/1.1\r\n" | 7118 MockWrite("GET / HTTP/1.1\r\n" |
7120 "Host: www.google.com\r\n" | 7119 "Host: www.google.com\r\n" |
7121 "Connection: keep-alive\r\n" | 7120 "Connection: keep-alive\r\n" |
7122 "FooHeader: Bar\r\n\r\n"), | 7121 "FooHeader: Bar\r\n\r\n"), |
7123 }; | 7122 }; |
7124 | 7123 |
7125 // Lastly, the server responds with the actual content. | 7124 // Lastly, the server responds with the actual content. |
7126 MockRead data_reads[] = { | 7125 MockRead data_reads[] = { |
(...skipping 19 matching lines...) Expand all Loading... |
7146 TEST_P(HttpNetworkTransactionTest, BuildRequest_ExtraHeadersStripped) { | 7145 TEST_P(HttpNetworkTransactionTest, BuildRequest_ExtraHeadersStripped) { |
7147 HttpRequestInfo request; | 7146 HttpRequestInfo request; |
7148 request.method = "GET"; | 7147 request.method = "GET"; |
7149 request.url = GURL("http://www.google.com/"); | 7148 request.url = GURL("http://www.google.com/"); |
7150 request.extra_headers.SetHeader("referer", "www.foo.com"); | 7149 request.extra_headers.SetHeader("referer", "www.foo.com"); |
7151 request.extra_headers.SetHeader("hEllo", "Kitty"); | 7150 request.extra_headers.SetHeader("hEllo", "Kitty"); |
7152 request.extra_headers.SetHeader("FoO", "bar"); | 7151 request.extra_headers.SetHeader("FoO", "bar"); |
7153 | 7152 |
7154 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7153 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
7155 scoped_ptr<HttpTransaction> trans( | 7154 scoped_ptr<HttpTransaction> trans( |
7156 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 7155 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
7157 | 7156 |
7158 MockWrite data_writes[] = { | 7157 MockWrite data_writes[] = { |
7159 MockWrite("GET / HTTP/1.1\r\n" | 7158 MockWrite("GET / HTTP/1.1\r\n" |
7160 "Host: www.google.com\r\n" | 7159 "Host: www.google.com\r\n" |
7161 "Connection: keep-alive\r\n" | 7160 "Connection: keep-alive\r\n" |
7162 "referer: www.foo.com\r\n" | 7161 "referer: www.foo.com\r\n" |
7163 "hEllo: Kitty\r\n" | 7162 "hEllo: Kitty\r\n" |
7164 "FoO: bar\r\n\r\n"), | 7163 "FoO: bar\r\n\r\n"), |
7165 }; | 7164 }; |
7166 | 7165 |
(...skipping 24 matching lines...) Expand all Loading... |
7191 request.url = GURL("http://www.google.com/"); | 7190 request.url = GURL("http://www.google.com/"); |
7192 request.load_flags = 0; | 7191 request.load_flags = 0; |
7193 | 7192 |
7194 session_deps_.proxy_service.reset( | 7193 session_deps_.proxy_service.reset( |
7195 ProxyService::CreateFixedFromPacResult("SOCKS myproxy:1080")); | 7194 ProxyService::CreateFixedFromPacResult("SOCKS myproxy:1080")); |
7196 CapturingNetLog net_log; | 7195 CapturingNetLog net_log; |
7197 session_deps_.net_log = &net_log; | 7196 session_deps_.net_log = &net_log; |
7198 | 7197 |
7199 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7198 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
7200 scoped_ptr<HttpTransaction> trans( | 7199 scoped_ptr<HttpTransaction> trans( |
7201 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 7200 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
7202 | 7201 |
7203 char write_buffer[] = { 0x04, 0x01, 0x00, 0x50, 127, 0, 0, 1, 0 }; | 7202 char write_buffer[] = { 0x04, 0x01, 0x00, 0x50, 127, 0, 0, 1, 0 }; |
7204 char read_buffer[] = { 0x00, 0x5A, 0x00, 0x00, 0, 0, 0, 0 }; | 7203 char read_buffer[] = { 0x00, 0x5A, 0x00, 0x00, 0, 0, 0, 0 }; |
7205 | 7204 |
7206 MockWrite data_writes[] = { | 7205 MockWrite data_writes[] = { |
7207 MockWrite(ASYNC, write_buffer, arraysize(write_buffer)), | 7206 MockWrite(ASYNC, write_buffer, arraysize(write_buffer)), |
7208 MockWrite("GET / HTTP/1.1\r\n" | 7207 MockWrite("GET / HTTP/1.1\r\n" |
7209 "Host: www.google.com\r\n" | 7208 "Host: www.google.com\r\n" |
7210 "Connection: keep-alive\r\n\r\n") | 7209 "Connection: keep-alive\r\n\r\n") |
7211 }; | 7210 }; |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7250 request.url = GURL("https://www.google.com/"); | 7249 request.url = GURL("https://www.google.com/"); |
7251 request.load_flags = 0; | 7250 request.load_flags = 0; |
7252 | 7251 |
7253 session_deps_.proxy_service.reset( | 7252 session_deps_.proxy_service.reset( |
7254 ProxyService::CreateFixedFromPacResult("SOCKS myproxy:1080")); | 7253 ProxyService::CreateFixedFromPacResult("SOCKS myproxy:1080")); |
7255 CapturingNetLog net_log; | 7254 CapturingNetLog net_log; |
7256 session_deps_.net_log = &net_log; | 7255 session_deps_.net_log = &net_log; |
7257 | 7256 |
7258 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7257 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
7259 scoped_ptr<HttpTransaction> trans( | 7258 scoped_ptr<HttpTransaction> trans( |
7260 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 7259 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
7261 | 7260 |
7262 unsigned char write_buffer[] = { 0x04, 0x01, 0x01, 0xBB, 127, 0, 0, 1, 0 }; | 7261 unsigned char write_buffer[] = { 0x04, 0x01, 0x01, 0xBB, 127, 0, 0, 1, 0 }; |
7263 unsigned char read_buffer[] = { 0x00, 0x5A, 0x00, 0x00, 0, 0, 0, 0 }; | 7262 unsigned char read_buffer[] = { 0x00, 0x5A, 0x00, 0x00, 0, 0, 0, 0 }; |
7264 | 7263 |
7265 MockWrite data_writes[] = { | 7264 MockWrite data_writes[] = { |
7266 MockWrite(ASYNC, reinterpret_cast<char*>(write_buffer), | 7265 MockWrite(ASYNC, reinterpret_cast<char*>(write_buffer), |
7267 arraysize(write_buffer)), | 7266 arraysize(write_buffer)), |
7268 MockWrite("GET / HTTP/1.1\r\n" | 7267 MockWrite("GET / HTTP/1.1\r\n" |
7269 "Host: www.google.com\r\n" | 7268 "Host: www.google.com\r\n" |
7270 "Connection: keep-alive\r\n\r\n") | 7269 "Connection: keep-alive\r\n\r\n") |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7314 request.url = GURL("http://www.google.com/"); | 7313 request.url = GURL("http://www.google.com/"); |
7315 request.load_flags = 0; | 7314 request.load_flags = 0; |
7316 | 7315 |
7317 session_deps_.proxy_service.reset( | 7316 session_deps_.proxy_service.reset( |
7318 ProxyService::CreateFixed("socks4://myproxy:1080")); | 7317 ProxyService::CreateFixed("socks4://myproxy:1080")); |
7319 CapturingNetLog net_log; | 7318 CapturingNetLog net_log; |
7320 session_deps_.net_log = &net_log; | 7319 session_deps_.net_log = &net_log; |
7321 | 7320 |
7322 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7321 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
7323 scoped_ptr<HttpTransaction> trans( | 7322 scoped_ptr<HttpTransaction> trans( |
7324 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 7323 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
7325 | 7324 |
7326 char write_buffer[] = { 0x04, 0x01, 0x00, 0x50, 127, 0, 0, 1, 0 }; | 7325 char write_buffer[] = { 0x04, 0x01, 0x00, 0x50, 127, 0, 0, 1, 0 }; |
7327 char read_buffer[] = { 0x00, 0x5A, 0x00, 0x00, 0, 0, 0, 0 }; | 7326 char read_buffer[] = { 0x00, 0x5A, 0x00, 0x00, 0, 0, 0, 0 }; |
7328 | 7327 |
7329 MockWrite data_writes[] = { | 7328 MockWrite data_writes[] = { |
7330 MockWrite(ASYNC, write_buffer, arraysize(write_buffer)), | 7329 MockWrite(ASYNC, write_buffer, arraysize(write_buffer)), |
7331 MockWrite("GET / HTTP/1.1\r\n" | 7330 MockWrite("GET / HTTP/1.1\r\n" |
7332 "Host: www.google.com\r\n" | 7331 "Host: www.google.com\r\n" |
7333 "Connection: keep-alive\r\n\r\n") | 7332 "Connection: keep-alive\r\n\r\n") |
7334 }; | 7333 }; |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7373 request.url = GURL("http://www.google.com/"); | 7372 request.url = GURL("http://www.google.com/"); |
7374 request.load_flags = 0; | 7373 request.load_flags = 0; |
7375 | 7374 |
7376 session_deps_.proxy_service.reset( | 7375 session_deps_.proxy_service.reset( |
7377 ProxyService::CreateFixedFromPacResult("SOCKS5 myproxy:1080")); | 7376 ProxyService::CreateFixedFromPacResult("SOCKS5 myproxy:1080")); |
7378 CapturingNetLog net_log; | 7377 CapturingNetLog net_log; |
7379 session_deps_.net_log = &net_log; | 7378 session_deps_.net_log = &net_log; |
7380 | 7379 |
7381 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7380 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
7382 scoped_ptr<HttpTransaction> trans( | 7381 scoped_ptr<HttpTransaction> trans( |
7383 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 7382 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
7384 | 7383 |
7385 const char kSOCKS5GreetRequest[] = { 0x05, 0x01, 0x00 }; | 7384 const char kSOCKS5GreetRequest[] = { 0x05, 0x01, 0x00 }; |
7386 const char kSOCKS5GreetResponse[] = { 0x05, 0x00 }; | 7385 const char kSOCKS5GreetResponse[] = { 0x05, 0x00 }; |
7387 const char kSOCKS5OkRequest[] = { | 7386 const char kSOCKS5OkRequest[] = { |
7388 0x05, // Version | 7387 0x05, // Version |
7389 0x01, // Command (CONNECT) | 7388 0x01, // Command (CONNECT) |
7390 0x00, // Reserved. | 7389 0x00, // Reserved. |
7391 0x03, // Address type (DOMAINNAME). | 7390 0x03, // Address type (DOMAINNAME). |
7392 0x0E, // Length of domain (14) | 7391 0x0E, // Length of domain (14) |
7393 // Domain string: | 7392 // Domain string: |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7446 request.url = GURL("https://www.google.com/"); | 7445 request.url = GURL("https://www.google.com/"); |
7447 request.load_flags = 0; | 7446 request.load_flags = 0; |
7448 | 7447 |
7449 session_deps_.proxy_service.reset( | 7448 session_deps_.proxy_service.reset( |
7450 ProxyService::CreateFixedFromPacResult("SOCKS5 myproxy:1080")); | 7449 ProxyService::CreateFixedFromPacResult("SOCKS5 myproxy:1080")); |
7451 CapturingNetLog net_log; | 7450 CapturingNetLog net_log; |
7452 session_deps_.net_log = &net_log; | 7451 session_deps_.net_log = &net_log; |
7453 | 7452 |
7454 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7453 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
7455 scoped_ptr<HttpTransaction> trans( | 7454 scoped_ptr<HttpTransaction> trans( |
7456 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 7455 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
7457 | 7456 |
7458 const char kSOCKS5GreetRequest[] = { 0x05, 0x01, 0x00 }; | 7457 const char kSOCKS5GreetRequest[] = { 0x05, 0x01, 0x00 }; |
7459 const char kSOCKS5GreetResponse[] = { 0x05, 0x00 }; | 7458 const char kSOCKS5GreetResponse[] = { 0x05, 0x00 }; |
7460 const unsigned char kSOCKS5OkRequest[] = { | 7459 const unsigned char kSOCKS5OkRequest[] = { |
7461 0x05, // Version | 7460 0x05, // Version |
7462 0x01, // Command (CONNECT) | 7461 0x01, // Command (CONNECT) |
7463 0x00, // Reserved. | 7462 0x00, // Reserved. |
7464 0x03, // Address type (DOMAINNAME). | 7463 0x03, // Address type (DOMAINNAME). |
7465 0x0E, // Length of domain (14) | 7464 0x0E, // Length of domain (14) |
7466 // Domain string: | 7465 // Domain string: |
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7777 | 7776 |
7778 session_deps_.proxy_service.reset( | 7777 session_deps_.proxy_service.reset( |
7779 ProxyService::CreateFixed("myproxy:70;foobar:80")); | 7778 ProxyService::CreateFixed("myproxy:70;foobar:80")); |
7780 | 7779 |
7781 // This simulates failure resolving all hostnames; that means we will fail | 7780 // This simulates failure resolving all hostnames; that means we will fail |
7782 // connecting to both proxies (myproxy:70 and foobar:80). | 7781 // connecting to both proxies (myproxy:70 and foobar:80). |
7783 session_deps_.host_resolver->rules()->AddSimulatedFailure("*"); | 7782 session_deps_.host_resolver->rules()->AddSimulatedFailure("*"); |
7784 | 7783 |
7785 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7784 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
7786 scoped_ptr<HttpTransaction> trans( | 7785 scoped_ptr<HttpTransaction> trans( |
7787 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 7786 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
7788 | 7787 |
7789 TestCompletionCallback callback; | 7788 TestCompletionCallback callback; |
7790 | 7789 |
7791 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 7790 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
7792 EXPECT_EQ(ERR_IO_PENDING, rv); | 7791 EXPECT_EQ(ERR_IO_PENDING, rv); |
7793 | 7792 |
7794 rv = callback.WaitForResult(); | 7793 rv = callback.WaitForResult(); |
7795 EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED, rv); | 7794 EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED, rv); |
7796 } | 7795 } |
7797 | 7796 |
7798 // Base test to make sure that when the load flags for a request specify to | 7797 // Base test to make sure that when the load flags for a request specify to |
7799 // bypass the cache, the DNS cache is not used. | 7798 // bypass the cache, the DNS cache is not used. |
7800 void HttpNetworkTransactionTest::BypassHostCacheOnRefreshHelper( | 7799 void HttpNetworkTransactionTest::BypassHostCacheOnRefreshHelper( |
7801 int load_flags) { | 7800 int load_flags) { |
7802 // Issue a request, asking to bypass the cache(s). | 7801 // Issue a request, asking to bypass the cache(s). |
7803 HttpRequestInfo request; | 7802 HttpRequestInfo request; |
7804 request.method = "GET"; | 7803 request.method = "GET"; |
7805 request.load_flags = load_flags; | 7804 request.load_flags = load_flags; |
7806 request.url = GURL("http://www.google.com/"); | 7805 request.url = GURL("http://www.google.com/"); |
7807 | 7806 |
7808 // Select a host resolver that does caching. | 7807 // Select a host resolver that does caching. |
7809 session_deps_.host_resolver.reset(new MockCachingHostResolver); | 7808 session_deps_.host_resolver.reset(new MockCachingHostResolver); |
7810 | 7809 |
7811 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7810 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
7812 scoped_ptr<HttpTransaction> trans( | 7811 scoped_ptr<HttpTransaction> trans( |
7813 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 7812 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
7814 | 7813 |
7815 // Warm up the host cache so it has an entry for "www.google.com". | 7814 // Warm up the host cache so it has an entry for "www.google.com". |
7816 AddressList addrlist; | 7815 AddressList addrlist; |
7817 TestCompletionCallback callback; | 7816 TestCompletionCallback callback; |
7818 int rv = session_deps_.host_resolver->Resolve( | 7817 int rv = session_deps_.host_resolver->Resolve( |
7819 HostResolver::RequestInfo(HostPortPair("www.google.com", 80)), | 7818 HostResolver::RequestInfo(HostPortPair("www.google.com", 80)), |
7820 DEFAULT_PRIORITY, | 7819 DEFAULT_PRIORITY, |
7821 &addrlist, | 7820 &addrlist, |
7822 callback.callback(), | 7821 callback.callback(), |
7823 NULL, | 7822 NULL, |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7883 MockWrite(ASYNC, ERR_CONNECTION_RESET), | 7882 MockWrite(ASYNC, ERR_CONNECTION_RESET), |
7884 }; | 7883 }; |
7885 StaticSocketDataProvider data(NULL, 0, | 7884 StaticSocketDataProvider data(NULL, 0, |
7886 write_failure, arraysize(write_failure)); | 7885 write_failure, arraysize(write_failure)); |
7887 session_deps_.socket_factory->AddSocketDataProvider(&data); | 7886 session_deps_.socket_factory->AddSocketDataProvider(&data); |
7888 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7887 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
7889 | 7888 |
7890 TestCompletionCallback callback; | 7889 TestCompletionCallback callback; |
7891 | 7890 |
7892 scoped_ptr<HttpTransaction> trans( | 7891 scoped_ptr<HttpTransaction> trans( |
7893 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 7892 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
7894 | 7893 |
7895 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 7894 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
7896 EXPECT_EQ(ERR_IO_PENDING, rv); | 7895 EXPECT_EQ(ERR_IO_PENDING, rv); |
7897 | 7896 |
7898 rv = callback.WaitForResult(); | 7897 rv = callback.WaitForResult(); |
7899 EXPECT_EQ(ERR_CONNECTION_RESET, rv); | 7898 EXPECT_EQ(ERR_CONNECTION_RESET, rv); |
7900 } | 7899 } |
7901 | 7900 |
7902 // Check that a connection closed after the start of the headers finishes ok. | 7901 // Check that a connection closed after the start of the headers finishes ok. |
7903 TEST_P(HttpNetworkTransactionTest, ConnectionClosedAfterStartOfHeaders) { | 7902 TEST_P(HttpNetworkTransactionTest, ConnectionClosedAfterStartOfHeaders) { |
7904 HttpRequestInfo request; | 7903 HttpRequestInfo request; |
7905 request.method = "GET"; | 7904 request.method = "GET"; |
7906 request.url = GURL("http://www.foo.com/"); | 7905 request.url = GURL("http://www.foo.com/"); |
7907 request.load_flags = 0; | 7906 request.load_flags = 0; |
7908 | 7907 |
7909 MockRead data_reads[] = { | 7908 MockRead data_reads[] = { |
7910 MockRead("HTTP/1."), | 7909 MockRead("HTTP/1."), |
7911 MockRead(SYNCHRONOUS, OK), | 7910 MockRead(SYNCHRONOUS, OK), |
7912 }; | 7911 }; |
7913 | 7912 |
7914 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 7913 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
7915 session_deps_.socket_factory->AddSocketDataProvider(&data); | 7914 session_deps_.socket_factory->AddSocketDataProvider(&data); |
7916 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7915 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
7917 | 7916 |
7918 TestCompletionCallback callback; | 7917 TestCompletionCallback callback; |
7919 | 7918 |
7920 scoped_ptr<HttpTransaction> trans( | 7919 scoped_ptr<HttpTransaction> trans( |
7921 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 7920 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
7922 | 7921 |
7923 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 7922 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
7924 EXPECT_EQ(ERR_IO_PENDING, rv); | 7923 EXPECT_EQ(ERR_IO_PENDING, rv); |
7925 | 7924 |
7926 rv = callback.WaitForResult(); | 7925 rv = callback.WaitForResult(); |
7927 EXPECT_EQ(OK, rv); | 7926 EXPECT_EQ(OK, rv); |
7928 | 7927 |
7929 const HttpResponseInfo* response = trans->GetResponseInfo(); | 7928 const HttpResponseInfo* response = trans->GetResponseInfo(); |
7930 ASSERT_TRUE(response != NULL); | 7929 ASSERT_TRUE(response != NULL); |
7931 | 7930 |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8036 | 8035 |
8037 session_deps_.socket_factory->AddSocketDataProvider(&data); | 8036 session_deps_.socket_factory->AddSocketDataProvider(&data); |
8038 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 8037 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
8039 | 8038 |
8040 TestCompletionCallback callback; | 8039 TestCompletionCallback callback; |
8041 | 8040 |
8042 session_deps_.socket_factory->ResetNextMockIndexes(); | 8041 session_deps_.socket_factory->ResetNextMockIndexes(); |
8043 | 8042 |
8044 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8043 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
8045 scoped_ptr<HttpTransaction> trans( | 8044 scoped_ptr<HttpTransaction> trans( |
8046 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 8045 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
8047 | 8046 |
8048 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 8047 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
8049 EXPECT_EQ(ERR_IO_PENDING, rv); | 8048 EXPECT_EQ(ERR_IO_PENDING, rv); |
8050 | 8049 |
8051 rv = callback.WaitForResult(); | 8050 rv = callback.WaitForResult(); |
8052 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, rv); | 8051 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, rv); |
8053 } | 8052 } |
8054 | 8053 |
8055 TEST_P(HttpNetworkTransactionTest, LargeContentLengthThenClose) { | 8054 TEST_P(HttpNetworkTransactionTest, LargeContentLengthThenClose) { |
8056 HttpRequestInfo request; | 8055 HttpRequestInfo request; |
8057 request.method = "GET"; | 8056 request.method = "GET"; |
8058 request.url = GURL("http://www.google.com/"); | 8057 request.url = GURL("http://www.google.com/"); |
8059 request.load_flags = 0; | 8058 request.load_flags = 0; |
8060 | 8059 |
8061 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8060 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
8062 scoped_ptr<HttpTransaction> trans( | 8061 scoped_ptr<HttpTransaction> trans( |
8063 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 8062 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
8064 | 8063 |
8065 MockRead data_reads[] = { | 8064 MockRead data_reads[] = { |
8066 MockRead("HTTP/1.0 200 OK\r\nContent-Length:6719476739\r\n\r\n"), | 8065 MockRead("HTTP/1.0 200 OK\r\nContent-Length:6719476739\r\n\r\n"), |
8067 MockRead(SYNCHRONOUS, OK), | 8066 MockRead(SYNCHRONOUS, OK), |
8068 }; | 8067 }; |
8069 | 8068 |
8070 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 8069 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
8071 session_deps_.socket_factory->AddSocketDataProvider(&data); | 8070 session_deps_.socket_factory->AddSocketDataProvider(&data); |
8072 | 8071 |
8073 TestCompletionCallback callback; | 8072 TestCompletionCallback callback; |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8105 UploadDataStream upload_data_stream(element_readers.Pass(), 0); | 8104 UploadDataStream upload_data_stream(element_readers.Pass(), 0); |
8106 | 8105 |
8107 HttpRequestInfo request; | 8106 HttpRequestInfo request; |
8108 request.method = "POST"; | 8107 request.method = "POST"; |
8109 request.url = GURL("http://www.google.com/upload"); | 8108 request.url = GURL("http://www.google.com/upload"); |
8110 request.upload_data_stream = &upload_data_stream; | 8109 request.upload_data_stream = &upload_data_stream; |
8111 request.load_flags = 0; | 8110 request.load_flags = 0; |
8112 | 8111 |
8113 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8112 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
8114 scoped_ptr<HttpTransaction> trans( | 8113 scoped_ptr<HttpTransaction> trans( |
8115 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 8114 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
8116 | 8115 |
8117 MockRead data_reads[] = { | 8116 MockRead data_reads[] = { |
8118 MockRead("HTTP/1.0 200 OK\r\n\r\n"), | 8117 MockRead("HTTP/1.0 200 OK\r\n\r\n"), |
8119 MockRead("hello world"), | 8118 MockRead("hello world"), |
8120 MockRead(SYNCHRONOUS, OK), | 8119 MockRead(SYNCHRONOUS, OK), |
8121 }; | 8120 }; |
8122 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 8121 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
8123 session_deps_.socket_factory->AddSocketDataProvider(&data); | 8122 session_deps_.socket_factory->AddSocketDataProvider(&data); |
8124 | 8123 |
8125 TestCompletionCallback callback; | 8124 TestCompletionCallback callback; |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8163 | 8162 |
8164 HttpRequestInfo request; | 8163 HttpRequestInfo request; |
8165 request.method = "POST"; | 8164 request.method = "POST"; |
8166 request.url = GURL("http://www.google.com/upload"); | 8165 request.url = GURL("http://www.google.com/upload"); |
8167 request.upload_data_stream = &upload_data_stream; | 8166 request.upload_data_stream = &upload_data_stream; |
8168 request.load_flags = 0; | 8167 request.load_flags = 0; |
8169 | 8168 |
8170 // If we try to upload an unreadable file, the transaction should fail. | 8169 // If we try to upload an unreadable file, the transaction should fail. |
8171 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8170 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
8172 scoped_ptr<HttpTransaction> trans( | 8171 scoped_ptr<HttpTransaction> trans( |
8173 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 8172 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
8174 | 8173 |
8175 StaticSocketDataProvider data(NULL, 0, NULL, 0); | 8174 StaticSocketDataProvider data(NULL, 0, NULL, 0); |
8176 session_deps_.socket_factory->AddSocketDataProvider(&data); | 8175 session_deps_.socket_factory->AddSocketDataProvider(&data); |
8177 | 8176 |
8178 TestCompletionCallback callback; | 8177 TestCompletionCallback callback; |
8179 | 8178 |
8180 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 8179 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
8181 EXPECT_EQ(ERR_IO_PENDING, rv); | 8180 EXPECT_EQ(ERR_IO_PENDING, rv); |
8182 | 8181 |
8183 rv = callback.WaitForResult(); | 8182 rv = callback.WaitForResult(); |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8220 UploadDataStream upload_data_stream(element_readers.Pass(), 0); | 8219 UploadDataStream upload_data_stream(element_readers.Pass(), 0); |
8221 | 8220 |
8222 HttpRequestInfo request; | 8221 HttpRequestInfo request; |
8223 request.method = "POST"; | 8222 request.method = "POST"; |
8224 request.url = GURL("http://www.google.com/upload"); | 8223 request.url = GURL("http://www.google.com/upload"); |
8225 request.upload_data_stream = &upload_data_stream; | 8224 request.upload_data_stream = &upload_data_stream; |
8226 request.load_flags = 0; | 8225 request.load_flags = 0; |
8227 | 8226 |
8228 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8227 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
8229 scoped_ptr<HttpTransaction> trans( | 8228 scoped_ptr<HttpTransaction> trans( |
8230 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 8229 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
8231 | 8230 |
8232 StaticSocketDataProvider data; | 8231 StaticSocketDataProvider data; |
8233 session_deps_.socket_factory->AddSocketDataProvider(&data); | 8232 session_deps_.socket_factory->AddSocketDataProvider(&data); |
8234 | 8233 |
8235 TestCompletionCallback callback; | 8234 TestCompletionCallback callback; |
8236 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 8235 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
8237 EXPECT_EQ(ERR_IO_PENDING, rv); | 8236 EXPECT_EQ(ERR_IO_PENDING, rv); |
8238 base::MessageLoop::current()->RunUntilIdle(); | 8237 base::MessageLoop::current()->RunUntilIdle(); |
8239 | 8238 |
8240 // Transaction is pending on request body initialization. | 8239 // Transaction is pending on request body initialization. |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8324 data_writes4, arraysize(data_writes4)); | 8323 data_writes4, arraysize(data_writes4)); |
8325 session_deps_.socket_factory->AddSocketDataProvider(&data1); | 8324 session_deps_.socket_factory->AddSocketDataProvider(&data1); |
8326 session_deps_.socket_factory->AddSocketDataProvider(&data2); | 8325 session_deps_.socket_factory->AddSocketDataProvider(&data2); |
8327 session_deps_.socket_factory->AddSocketDataProvider(&data3); | 8326 session_deps_.socket_factory->AddSocketDataProvider(&data3); |
8328 session_deps_.socket_factory->AddSocketDataProvider(&data4); | 8327 session_deps_.socket_factory->AddSocketDataProvider(&data4); |
8329 | 8328 |
8330 TestCompletionCallback callback1; | 8329 TestCompletionCallback callback1; |
8331 | 8330 |
8332 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8331 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
8333 scoped_ptr<HttpTransaction> trans( | 8332 scoped_ptr<HttpTransaction> trans( |
8334 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 8333 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
8335 | 8334 |
8336 // Issue the first request with Authorize headers. There should be a | 8335 // Issue the first request with Authorize headers. There should be a |
8337 // password prompt for first_realm waiting to be filled in after the | 8336 // password prompt for first_realm waiting to be filled in after the |
8338 // transaction completes. | 8337 // transaction completes. |
8339 int rv = trans->Start(&request, callback1.callback(), BoundNetLog()); | 8338 int rv = trans->Start(&request, callback1.callback(), BoundNetLog()); |
8340 EXPECT_EQ(ERR_IO_PENDING, rv); | 8339 EXPECT_EQ(ERR_IO_PENDING, rv); |
8341 rv = callback1.WaitForResult(); | 8340 rv = callback1.WaitForResult(); |
8342 EXPECT_EQ(OK, rv); | 8341 EXPECT_EQ(OK, rv); |
8343 const HttpResponseInfo* response = trans->GetResponseInfo(); | 8342 const HttpResponseInfo* response = trans->GetResponseInfo(); |
8344 ASSERT_TRUE(response != NULL); | 8343 ASSERT_TRUE(response != NULL); |
(...skipping 1350 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9695 } else { | 9694 } else { |
9696 session_deps_.proxy_service.reset(ProxyService::CreateDirect()); | 9695 session_deps_.proxy_service.reset(ProxyService::CreateDirect()); |
9697 } | 9696 } |
9698 | 9697 |
9699 HttpRequestInfo request; | 9698 HttpRequestInfo request; |
9700 request.method = "GET"; | 9699 request.method = "GET"; |
9701 request.url = GURL(test_config.server_url); | 9700 request.url = GURL(test_config.server_url); |
9702 request.load_flags = 0; | 9701 request.load_flags = 0; |
9703 | 9702 |
9704 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 9703 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
9705 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session); | 9704 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
9706 | 9705 |
9707 for (int round = 0; round < test_config.num_auth_rounds; ++round) { | 9706 for (int round = 0; round < test_config.num_auth_rounds; ++round) { |
9708 const TestRound& read_write_round = test_config.rounds[round]; | 9707 const TestRound& read_write_round = test_config.rounds[round]; |
9709 | 9708 |
9710 // Set up expected reads and writes. | 9709 // Set up expected reads and writes. |
9711 MockRead reads[2]; | 9710 MockRead reads[2]; |
9712 reads[0] = read_write_round.read; | 9711 reads[0] = read_write_round.read; |
9713 size_t length_reads = 1; | 9712 size_t length_reads = 1; |
9714 if (read_write_round.extra_read) { | 9713 if (read_write_round.extra_read) { |
9715 reads[1] = *read_write_round.extra_read; | 9714 reads[1] = *read_write_round.extra_read; |
(...skipping 538 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10254 }; | 10253 }; |
10255 | 10254 |
10256 HttpRequestInfo request; | 10255 HttpRequestInfo request; |
10257 request.method = "GET"; | 10256 request.method = "GET"; |
10258 request.url = GURL("http://www.google.com/"); | 10257 request.url = GURL("http://www.google.com/"); |
10259 request.load_flags = 0; | 10258 request.load_flags = 0; |
10260 | 10259 |
10261 session_deps_.host_resolver->set_synchronous_mode(true); | 10260 session_deps_.host_resolver->set_synchronous_mode(true); |
10262 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 10261 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
10263 scoped_ptr<HttpTransaction> trans( | 10262 scoped_ptr<HttpTransaction> trans( |
10264 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 10263 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
10265 | 10264 |
10266 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 10265 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
10267 data.set_connect_data(mock_connect); | 10266 data.set_connect_data(mock_connect); |
10268 session_deps_.socket_factory->AddSocketDataProvider(&data); | 10267 session_deps_.socket_factory->AddSocketDataProvider(&data); |
10269 | 10268 |
10270 TestCompletionCallback callback; | 10269 TestCompletionCallback callback; |
10271 | 10270 |
10272 CapturingBoundNetLog log; | 10271 CapturingBoundNetLog log; |
10273 int rv = trans->Start(&request, callback.callback(), log.bound()); | 10272 int rv = trans->Start(&request, callback.callback(), log.bound()); |
10274 EXPECT_EQ(ERR_IO_PENDING, rv); | 10273 EXPECT_EQ(ERR_IO_PENDING, rv); |
(...skipping 23 matching lines...) Expand all Loading... |
10298 session_deps_.socket_factory->AddSocketDataProvider(&data); | 10297 session_deps_.socket_factory->AddSocketDataProvider(&data); |
10299 | 10298 |
10300 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 10299 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
10301 | 10300 |
10302 { | 10301 { |
10303 HttpRequestInfo request; | 10302 HttpRequestInfo request; |
10304 request.method = "GET"; | 10303 request.method = "GET"; |
10305 request.url = GURL("http://www.google.com/"); | 10304 request.url = GURL("http://www.google.com/"); |
10306 request.load_flags = 0; | 10305 request.load_flags = 0; |
10307 | 10306 |
10308 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session); | 10307 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
10309 TestCompletionCallback callback; | 10308 TestCompletionCallback callback; |
10310 | 10309 |
10311 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 10310 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); |
10312 EXPECT_EQ(ERR_IO_PENDING, rv); | 10311 EXPECT_EQ(ERR_IO_PENDING, rv); |
10313 callback.WaitForResult(); | 10312 callback.WaitForResult(); |
10314 | 10313 |
10315 const HttpResponseInfo* response = trans.GetResponseInfo(); | 10314 const HttpResponseInfo* response = trans.GetResponseInfo(); |
10316 ASSERT_TRUE(response != NULL); | 10315 ASSERT_TRUE(response != NULL); |
10317 EXPECT_TRUE(response->headers.get() != NULL); | 10316 EXPECT_TRUE(response->headers.get() != NULL); |
10318 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 10317 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
10319 | 10318 |
10320 // The transaction and HttpRequestInfo are deleted. | 10319 // The transaction and HttpRequestInfo are deleted. |
10321 } | 10320 } |
10322 | 10321 |
10323 // Let the HttpResponseBodyDrainer drain the socket. | 10322 // Let the HttpResponseBodyDrainer drain the socket. |
10324 base::MessageLoop::current()->RunUntilIdle(); | 10323 base::MessageLoop::current()->RunUntilIdle(); |
10325 | 10324 |
10326 // Socket should now be idle, waiting to be reused. | 10325 // Socket should now be idle, waiting to be reused. |
10327 EXPECT_EQ(1, GetIdleSocketCountInTransportSocketPool(session)); | 10326 EXPECT_EQ(1, GetIdleSocketCountInTransportSocketPool(session.get())); |
10328 } | 10327 } |
10329 | 10328 |
10330 // Test a basic GET request through a proxy. | 10329 // Test a basic GET request through a proxy. |
10331 TEST_P(HttpNetworkTransactionTest, ProxyGet) { | 10330 TEST_P(HttpNetworkTransactionTest, ProxyGet) { |
10332 session_deps_.proxy_service.reset( | 10331 session_deps_.proxy_service.reset( |
10333 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70")); | 10332 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70")); |
10334 CapturingBoundNetLog log; | 10333 CapturingBoundNetLog log; |
10335 session_deps_.net_log = log.bound().net_log(); | 10334 session_deps_.net_log = log.bound().net_log(); |
10336 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 10335 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
10337 | 10336 |
(...skipping 1304 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11642 new ProxyConfigServiceFixed(proxy_config), capturing_proxy_resolver, | 11641 new ProxyConfigServiceFixed(proxy_config), capturing_proxy_resolver, |
11643 NULL)); | 11642 NULL)); |
11644 | 11643 |
11645 // Load a valid cert. Note, that this does not need to | 11644 // Load a valid cert. Note, that this does not need to |
11646 // be valid for proxy because the MockSSLClientSocket does | 11645 // be valid for proxy because the MockSSLClientSocket does |
11647 // not actually verify it. But SpdySession will use this | 11646 // not actually verify it. But SpdySession will use this |
11648 // to see if it is valid for the new origin | 11647 // to see if it is valid for the new origin |
11649 base::FilePath certs_dir = GetTestCertsDirectory(); | 11648 base::FilePath certs_dir = GetTestCertsDirectory(); |
11650 scoped_refptr<X509Certificate> server_cert( | 11649 scoped_refptr<X509Certificate> server_cert( |
11651 ImportCertFromFile(certs_dir, "ok_cert.pem")); | 11650 ImportCertFromFile(certs_dir, "ok_cert.pem")); |
11652 ASSERT_NE(static_cast<X509Certificate*>(NULL), server_cert); | 11651 ASSERT_NE(static_cast<X509Certificate*>(NULL), server_cert.get()); |
11653 | 11652 |
11654 SSLSocketDataProvider ssl1(ASYNC, OK); // to the proxy | 11653 SSLSocketDataProvider ssl1(ASYNC, OK); // to the proxy |
11655 ssl1.SetNextProto(GetParam()); | 11654 ssl1.SetNextProto(GetParam()); |
11656 ssl1.cert = server_cert; | 11655 ssl1.cert = server_cert; |
11657 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl1); | 11656 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl1); |
11658 session_deps_.deterministic_socket_factory->AddSocketDataProvider( | 11657 session_deps_.deterministic_socket_factory->AddSocketDataProvider( |
11659 data1.get()); | 11658 data1.get()); |
11660 | 11659 |
11661 SSLSocketDataProvider ssl2(ASYNC, OK); // to the server | 11660 SSLSocketDataProvider ssl2(ASYNC, OK); // to the server |
11662 ssl2.SetNextProto(GetParam()); | 11661 ssl2.SetNextProto(GetParam()); |
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11948 } | 11947 } |
11949 | 11948 |
11950 TEST_P(HttpNetworkTransactionTest, HttpSyncConnectError) { | 11949 TEST_P(HttpNetworkTransactionTest, HttpSyncConnectError) { |
11951 HttpRequestInfo request; | 11950 HttpRequestInfo request; |
11952 request.method = "GET"; | 11951 request.method = "GET"; |
11953 request.url = GURL("http://www.google.com/"); | 11952 request.url = GURL("http://www.google.com/"); |
11954 request.load_flags = 0; | 11953 request.load_flags = 0; |
11955 | 11954 |
11956 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 11955 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
11957 scoped_ptr<HttpTransaction> trans( | 11956 scoped_ptr<HttpTransaction> trans( |
11958 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 11957 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
11959 | 11958 |
11960 MockConnect mock_connect(SYNCHRONOUS, ERR_CONNECTION_REFUSED); | 11959 MockConnect mock_connect(SYNCHRONOUS, ERR_CONNECTION_REFUSED); |
11961 StaticSocketDataProvider data; | 11960 StaticSocketDataProvider data; |
11962 data.set_connect_data(mock_connect); | 11961 data.set_connect_data(mock_connect); |
11963 session_deps_.socket_factory->AddSocketDataProvider(&data); | 11962 session_deps_.socket_factory->AddSocketDataProvider(&data); |
11964 | 11963 |
11965 TestCompletionCallback callback; | 11964 TestCompletionCallback callback; |
11966 | 11965 |
11967 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 11966 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
11968 EXPECT_EQ(ERR_IO_PENDING, rv); | 11967 EXPECT_EQ(ERR_IO_PENDING, rv); |
11969 | 11968 |
11970 rv = callback.WaitForResult(); | 11969 rv = callback.WaitForResult(); |
11971 EXPECT_EQ(ERR_CONNECTION_REFUSED, rv); | 11970 EXPECT_EQ(ERR_CONNECTION_REFUSED, rv); |
11972 | 11971 |
11973 EXPECT_EQ(NULL, trans->GetResponseInfo()); | 11972 EXPECT_EQ(NULL, trans->GetResponseInfo()); |
11974 | 11973 |
11975 // We don't care whether this succeeds or fails, but it shouldn't crash. | 11974 // We don't care whether this succeeds or fails, but it shouldn't crash. |
11976 HttpRequestHeaders request_headers; | 11975 HttpRequestHeaders request_headers; |
11977 trans->GetFullRequestHeaders(&request_headers); | 11976 trans->GetFullRequestHeaders(&request_headers); |
11978 } | 11977 } |
11979 | 11978 |
11980 TEST_P(HttpNetworkTransactionTest, HttpAsyncConnectError) { | 11979 TEST_P(HttpNetworkTransactionTest, HttpAsyncConnectError) { |
11981 HttpRequestInfo request; | 11980 HttpRequestInfo request; |
11982 request.method = "GET"; | 11981 request.method = "GET"; |
11983 request.url = GURL("http://www.google.com/"); | 11982 request.url = GURL("http://www.google.com/"); |
11984 request.load_flags = 0; | 11983 request.load_flags = 0; |
11985 | 11984 |
11986 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 11985 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
11987 scoped_ptr<HttpTransaction> trans( | 11986 scoped_ptr<HttpTransaction> trans( |
11988 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 11987 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
11989 | 11988 |
11990 MockConnect mock_connect(ASYNC, ERR_CONNECTION_REFUSED); | 11989 MockConnect mock_connect(ASYNC, ERR_CONNECTION_REFUSED); |
11991 StaticSocketDataProvider data; | 11990 StaticSocketDataProvider data; |
11992 data.set_connect_data(mock_connect); | 11991 data.set_connect_data(mock_connect); |
11993 session_deps_.socket_factory->AddSocketDataProvider(&data); | 11992 session_deps_.socket_factory->AddSocketDataProvider(&data); |
11994 | 11993 |
11995 TestCompletionCallback callback; | 11994 TestCompletionCallback callback; |
11996 | 11995 |
11997 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 11996 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
11998 EXPECT_EQ(ERR_IO_PENDING, rv); | 11997 EXPECT_EQ(ERR_IO_PENDING, rv); |
11999 | 11998 |
12000 rv = callback.WaitForResult(); | 11999 rv = callback.WaitForResult(); |
12001 EXPECT_EQ(ERR_CONNECTION_REFUSED, rv); | 12000 EXPECT_EQ(ERR_CONNECTION_REFUSED, rv); |
12002 | 12001 |
12003 EXPECT_EQ(NULL, trans->GetResponseInfo()); | 12002 EXPECT_EQ(NULL, trans->GetResponseInfo()); |
12004 | 12003 |
12005 // We don't care whether this succeeds or fails, but it shouldn't crash. | 12004 // We don't care whether this succeeds or fails, but it shouldn't crash. |
12006 HttpRequestHeaders request_headers; | 12005 HttpRequestHeaders request_headers; |
12007 trans->GetFullRequestHeaders(&request_headers); | 12006 trans->GetFullRequestHeaders(&request_headers); |
12008 } | 12007 } |
12009 | 12008 |
12010 TEST_P(HttpNetworkTransactionTest, HttpSyncWriteError) { | 12009 TEST_P(HttpNetworkTransactionTest, HttpSyncWriteError) { |
12011 HttpRequestInfo request; | 12010 HttpRequestInfo request; |
12012 request.method = "GET"; | 12011 request.method = "GET"; |
12013 request.url = GURL("http://www.google.com/"); | 12012 request.url = GURL("http://www.google.com/"); |
12014 request.load_flags = 0; | 12013 request.load_flags = 0; |
12015 | 12014 |
12016 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 12015 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
12017 scoped_ptr<HttpTransaction> trans( | 12016 scoped_ptr<HttpTransaction> trans( |
12018 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 12017 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
12019 | 12018 |
12020 MockWrite data_writes[] = { | 12019 MockWrite data_writes[] = { |
12021 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), | 12020 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), |
12022 }; | 12021 }; |
12023 MockRead data_reads[] = { | 12022 MockRead data_reads[] = { |
12024 MockRead(SYNCHRONOUS, ERR_UNEXPECTED), // Should not be reached. | 12023 MockRead(SYNCHRONOUS, ERR_UNEXPECTED), // Should not be reached. |
12025 }; | 12024 }; |
12026 | 12025 |
12027 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 12026 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
12028 data_writes, arraysize(data_writes)); | 12027 data_writes, arraysize(data_writes)); |
(...skipping 15 matching lines...) Expand all Loading... |
12044 } | 12043 } |
12045 | 12044 |
12046 TEST_P(HttpNetworkTransactionTest, HttpAsyncWriteError) { | 12045 TEST_P(HttpNetworkTransactionTest, HttpAsyncWriteError) { |
12047 HttpRequestInfo request; | 12046 HttpRequestInfo request; |
12048 request.method = "GET"; | 12047 request.method = "GET"; |
12049 request.url = GURL("http://www.google.com/"); | 12048 request.url = GURL("http://www.google.com/"); |
12050 request.load_flags = 0; | 12049 request.load_flags = 0; |
12051 | 12050 |
12052 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 12051 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
12053 scoped_ptr<HttpTransaction> trans( | 12052 scoped_ptr<HttpTransaction> trans( |
12054 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 12053 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
12055 | 12054 |
12056 MockWrite data_writes[] = { | 12055 MockWrite data_writes[] = { |
12057 MockWrite(ASYNC, ERR_CONNECTION_RESET), | 12056 MockWrite(ASYNC, ERR_CONNECTION_RESET), |
12058 }; | 12057 }; |
12059 MockRead data_reads[] = { | 12058 MockRead data_reads[] = { |
12060 MockRead(SYNCHRONOUS, ERR_UNEXPECTED), // Should not be reached. | 12059 MockRead(SYNCHRONOUS, ERR_UNEXPECTED), // Should not be reached. |
12061 }; | 12060 }; |
12062 | 12061 |
12063 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 12062 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
12064 data_writes, arraysize(data_writes)); | 12063 data_writes, arraysize(data_writes)); |
(...skipping 15 matching lines...) Expand all Loading... |
12080 } | 12079 } |
12081 | 12080 |
12082 TEST_P(HttpNetworkTransactionTest, HttpSyncReadError) { | 12081 TEST_P(HttpNetworkTransactionTest, HttpSyncReadError) { |
12083 HttpRequestInfo request; | 12082 HttpRequestInfo request; |
12084 request.method = "GET"; | 12083 request.method = "GET"; |
12085 request.url = GURL("http://www.google.com/"); | 12084 request.url = GURL("http://www.google.com/"); |
12086 request.load_flags = 0; | 12085 request.load_flags = 0; |
12087 | 12086 |
12088 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 12087 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
12089 scoped_ptr<HttpTransaction> trans( | 12088 scoped_ptr<HttpTransaction> trans( |
12090 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 12089 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
12091 | 12090 |
12092 MockWrite data_writes[] = { | 12091 MockWrite data_writes[] = { |
12093 MockWrite("GET / HTTP/1.1\r\n" | 12092 MockWrite("GET / HTTP/1.1\r\n" |
12094 "Host: www.google.com\r\n" | 12093 "Host: www.google.com\r\n" |
12095 "Connection: keep-alive\r\n\r\n"), | 12094 "Connection: keep-alive\r\n\r\n"), |
12096 }; | 12095 }; |
12097 MockRead data_reads[] = { | 12096 MockRead data_reads[] = { |
12098 MockRead(SYNCHRONOUS, ERR_CONNECTION_RESET), | 12097 MockRead(SYNCHRONOUS, ERR_CONNECTION_RESET), |
12099 }; | 12098 }; |
12100 | 12099 |
(...skipping 17 matching lines...) Expand all Loading... |
12118 } | 12117 } |
12119 | 12118 |
12120 TEST_P(HttpNetworkTransactionTest, HttpAsyncReadError) { | 12119 TEST_P(HttpNetworkTransactionTest, HttpAsyncReadError) { |
12121 HttpRequestInfo request; | 12120 HttpRequestInfo request; |
12122 request.method = "GET"; | 12121 request.method = "GET"; |
12123 request.url = GURL("http://www.google.com/"); | 12122 request.url = GURL("http://www.google.com/"); |
12124 request.load_flags = 0; | 12123 request.load_flags = 0; |
12125 | 12124 |
12126 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 12125 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
12127 scoped_ptr<HttpTransaction> trans( | 12126 scoped_ptr<HttpTransaction> trans( |
12128 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 12127 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
12129 | 12128 |
12130 MockWrite data_writes[] = { | 12129 MockWrite data_writes[] = { |
12131 MockWrite("GET / HTTP/1.1\r\n" | 12130 MockWrite("GET / HTTP/1.1\r\n" |
12132 "Host: www.google.com\r\n" | 12131 "Host: www.google.com\r\n" |
12133 "Connection: keep-alive\r\n\r\n"), | 12132 "Connection: keep-alive\r\n\r\n"), |
12134 }; | 12133 }; |
12135 MockRead data_reads[] = { | 12134 MockRead data_reads[] = { |
12136 MockRead(ASYNC, ERR_CONNECTION_RESET), | 12135 MockRead(ASYNC, ERR_CONNECTION_RESET), |
12137 }; | 12136 }; |
12138 | 12137 |
(...skipping 18 matching lines...) Expand all Loading... |
12157 | 12156 |
12158 TEST_P(HttpNetworkTransactionTest, GetFullRequestHeadersIncludesExtraHeader) { | 12157 TEST_P(HttpNetworkTransactionTest, GetFullRequestHeadersIncludesExtraHeader) { |
12159 HttpRequestInfo request; | 12158 HttpRequestInfo request; |
12160 request.method = "GET"; | 12159 request.method = "GET"; |
12161 request.url = GURL("http://www.google.com/"); | 12160 request.url = GURL("http://www.google.com/"); |
12162 request.load_flags = 0; | 12161 request.load_flags = 0; |
12163 request.extra_headers.SetHeader("X-Foo", "bar"); | 12162 request.extra_headers.SetHeader("X-Foo", "bar"); |
12164 | 12163 |
12165 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 12164 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
12166 scoped_ptr<HttpTransaction> trans( | 12165 scoped_ptr<HttpTransaction> trans( |
12167 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 12166 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
12168 | 12167 |
12169 MockWrite data_writes[] = { | 12168 MockWrite data_writes[] = { |
12170 MockWrite("GET / HTTP/1.1\r\n" | 12169 MockWrite("GET / HTTP/1.1\r\n" |
12171 "Host: www.google.com\r\n" | 12170 "Host: www.google.com\r\n" |
12172 "Connection: keep-alive\r\n" | 12171 "Connection: keep-alive\r\n" |
12173 "X-Foo: bar\r\n\r\n"), | 12172 "X-Foo: bar\r\n\r\n"), |
12174 }; | 12173 }; |
12175 MockRead data_reads[] = { | 12174 MockRead data_reads[] = { |
12176 MockRead("HTTP/1.1 200 OK\r\n" | 12175 MockRead("HTTP/1.1 200 OK\r\n" |
12177 "Content-Length: 5\r\n\r\n" | 12176 "Content-Length: 5\r\n\r\n" |
(...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12458 } // namespace | 12457 } // namespace |
12459 | 12458 |
12460 // Make sure that HttpNetworkTransaction passes on its priority to its | 12459 // Make sure that HttpNetworkTransaction passes on its priority to its |
12461 // stream request on start. | 12460 // stream request on start. |
12462 TEST_P(HttpNetworkTransactionTest, SetStreamRequestPriorityOnStart) { | 12461 TEST_P(HttpNetworkTransactionTest, SetStreamRequestPriorityOnStart) { |
12463 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 12462 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
12464 HttpNetworkSessionPeer peer(session); | 12463 HttpNetworkSessionPeer peer(session); |
12465 FakeStreamFactory* fake_factory = new FakeStreamFactory(); | 12464 FakeStreamFactory* fake_factory = new FakeStreamFactory(); |
12466 peer.SetHttpStreamFactory(scoped_ptr<HttpStreamFactory>(fake_factory)); | 12465 peer.SetHttpStreamFactory(scoped_ptr<HttpStreamFactory>(fake_factory)); |
12467 | 12466 |
12468 HttpNetworkTransaction trans(LOW, session); | 12467 HttpNetworkTransaction trans(LOW, session.get()); |
12469 | 12468 |
12470 ASSERT_TRUE(fake_factory->last_stream_request() == NULL); | 12469 ASSERT_TRUE(fake_factory->last_stream_request() == NULL); |
12471 | 12470 |
12472 HttpRequestInfo request; | 12471 HttpRequestInfo request; |
12473 TestCompletionCallback callback; | 12472 TestCompletionCallback callback; |
12474 EXPECT_EQ(ERR_IO_PENDING, | 12473 EXPECT_EQ(ERR_IO_PENDING, |
12475 trans.Start(&request, callback.callback(), BoundNetLog())); | 12474 trans.Start(&request, callback.callback(), BoundNetLog())); |
12476 | 12475 |
12477 base::WeakPtr<FakeStreamRequest> fake_request = | 12476 base::WeakPtr<FakeStreamRequest> fake_request = |
12478 fake_factory->last_stream_request(); | 12477 fake_factory->last_stream_request(); |
12479 ASSERT_TRUE(fake_request != NULL); | 12478 ASSERT_TRUE(fake_request != NULL); |
12480 EXPECT_EQ(LOW, fake_request->priority()); | 12479 EXPECT_EQ(LOW, fake_request->priority()); |
12481 } | 12480 } |
12482 | 12481 |
12483 // Make sure that HttpNetworkTransaction passes on its priority | 12482 // Make sure that HttpNetworkTransaction passes on its priority |
12484 // updates to its stream request. | 12483 // updates to its stream request. |
12485 TEST_P(HttpNetworkTransactionTest, SetStreamRequestPriority) { | 12484 TEST_P(HttpNetworkTransactionTest, SetStreamRequestPriority) { |
12486 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 12485 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
12487 HttpNetworkSessionPeer peer(session); | 12486 HttpNetworkSessionPeer peer(session); |
12488 FakeStreamFactory* fake_factory = new FakeStreamFactory(); | 12487 FakeStreamFactory* fake_factory = new FakeStreamFactory(); |
12489 peer.SetHttpStreamFactory(scoped_ptr<HttpStreamFactory>(fake_factory)); | 12488 peer.SetHttpStreamFactory(scoped_ptr<HttpStreamFactory>(fake_factory)); |
12490 | 12489 |
12491 HttpNetworkTransaction trans(LOW, session); | 12490 HttpNetworkTransaction trans(LOW, session.get()); |
12492 | 12491 |
12493 HttpRequestInfo request; | 12492 HttpRequestInfo request; |
12494 TestCompletionCallback callback; | 12493 TestCompletionCallback callback; |
12495 EXPECT_EQ(ERR_IO_PENDING, | 12494 EXPECT_EQ(ERR_IO_PENDING, |
12496 trans.Start(&request, callback.callback(), BoundNetLog())); | 12495 trans.Start(&request, callback.callback(), BoundNetLog())); |
12497 | 12496 |
12498 base::WeakPtr<FakeStreamRequest> fake_request = | 12497 base::WeakPtr<FakeStreamRequest> fake_request = |
12499 fake_factory->last_stream_request(); | 12498 fake_factory->last_stream_request(); |
12500 ASSERT_TRUE(fake_request != NULL); | 12499 ASSERT_TRUE(fake_request != NULL); |
12501 EXPECT_EQ(LOW, fake_request->priority()); | 12500 EXPECT_EQ(LOW, fake_request->priority()); |
12502 | 12501 |
12503 trans.SetPriority(LOWEST); | 12502 trans.SetPriority(LOWEST); |
12504 ASSERT_TRUE(fake_request != NULL); | 12503 ASSERT_TRUE(fake_request != NULL); |
12505 EXPECT_EQ(LOWEST, fake_request->priority()); | 12504 EXPECT_EQ(LOWEST, fake_request->priority()); |
12506 } | 12505 } |
12507 | 12506 |
12508 // Make sure that HttpNetworkTransaction passes on its priority | 12507 // Make sure that HttpNetworkTransaction passes on its priority |
12509 // updates to its stream. | 12508 // updates to its stream. |
12510 TEST_P(HttpNetworkTransactionTest, SetStreamPriority) { | 12509 TEST_P(HttpNetworkTransactionTest, SetStreamPriority) { |
12511 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 12510 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
12512 HttpNetworkSessionPeer peer(session); | 12511 HttpNetworkSessionPeer peer(session); |
12513 FakeStreamFactory* fake_factory = new FakeStreamFactory(); | 12512 FakeStreamFactory* fake_factory = new FakeStreamFactory(); |
12514 peer.SetHttpStreamFactory(scoped_ptr<HttpStreamFactory>(fake_factory)); | 12513 peer.SetHttpStreamFactory(scoped_ptr<HttpStreamFactory>(fake_factory)); |
12515 | 12514 |
12516 HttpNetworkTransaction trans(LOW, session); | 12515 HttpNetworkTransaction trans(LOW, session.get()); |
12517 | 12516 |
12518 HttpRequestInfo request; | 12517 HttpRequestInfo request; |
12519 TestCompletionCallback callback; | 12518 TestCompletionCallback callback; |
12520 EXPECT_EQ(ERR_IO_PENDING, | 12519 EXPECT_EQ(ERR_IO_PENDING, |
12521 trans.Start(&request, callback.callback(), BoundNetLog())); | 12520 trans.Start(&request, callback.callback(), BoundNetLog())); |
12522 | 12521 |
12523 base::WeakPtr<FakeStreamRequest> fake_request = | 12522 base::WeakPtr<FakeStreamRequest> fake_request = |
12524 fake_factory->last_stream_request(); | 12523 fake_factory->last_stream_request(); |
12525 ASSERT_TRUE(fake_request != NULL); | 12524 ASSERT_TRUE(fake_request != NULL); |
12526 base::WeakPtr<FakeStream> fake_stream = fake_request->FinishStreamRequest(); | 12525 base::WeakPtr<FakeStream> fake_stream = fake_request->FinishStreamRequest(); |
(...skipping 10 matching lines...) Expand all Loading... |
12537 // that the different schemes work. | 12536 // that the different schemes work. |
12538 std::string test_cases[] = {"ws://www.google.com/", "wss://www.google.com/"}; | 12537 std::string test_cases[] = {"ws://www.google.com/", "wss://www.google.com/"}; |
12539 for (size_t i = 0; i < arraysize(test_cases); ++i) { | 12538 for (size_t i = 0; i < arraysize(test_cases); ++i) { |
12540 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 12539 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
12541 HttpNetworkSessionPeer peer(session); | 12540 HttpNetworkSessionPeer peer(session); |
12542 FakeStreamFactory* fake_factory = new FakeStreamFactory(); | 12541 FakeStreamFactory* fake_factory = new FakeStreamFactory(); |
12543 FakeWebSocketStreamCreateHelper websocket_stream_create_helper; | 12542 FakeWebSocketStreamCreateHelper websocket_stream_create_helper; |
12544 peer.SetHttpStreamFactoryForWebSocket( | 12543 peer.SetHttpStreamFactoryForWebSocket( |
12545 scoped_ptr<HttpStreamFactory>(fake_factory)); | 12544 scoped_ptr<HttpStreamFactory>(fake_factory)); |
12546 | 12545 |
12547 HttpNetworkTransaction trans(LOW, session); | 12546 HttpNetworkTransaction trans(LOW, session.get()); |
12548 trans.SetWebSocketHandshakeStreamCreateHelper( | 12547 trans.SetWebSocketHandshakeStreamCreateHelper( |
12549 &websocket_stream_create_helper); | 12548 &websocket_stream_create_helper); |
12550 | 12549 |
12551 HttpRequestInfo request; | 12550 HttpRequestInfo request; |
12552 TestCompletionCallback callback; | 12551 TestCompletionCallback callback; |
12553 request.method = "GET"; | 12552 request.method = "GET"; |
12554 request.url = GURL(test_cases[i]); | 12553 request.url = GURL(test_cases[i]); |
12555 | 12554 |
12556 EXPECT_EQ(ERR_IO_PENDING, | 12555 EXPECT_EQ(ERR_IO_PENDING, |
12557 trans.Start(&request, callback.callback(), BoundNetLog())); | 12556 trans.Start(&request, callback.callback(), BoundNetLog())); |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12627 ssl_trans->Start(&ssl_request, ssl_callback.callback(), | 12626 ssl_trans->Start(&ssl_request, ssl_callback.callback(), |
12628 BoundNetLog())); | 12627 BoundNetLog())); |
12629 | 12628 |
12630 // Start the HTTP request. Pool should stall. | 12629 // Start the HTTP request. Pool should stall. |
12631 TestCompletionCallback http_callback; | 12630 TestCompletionCallback http_callback; |
12632 scoped_ptr<HttpTransaction> http_trans( | 12631 scoped_ptr<HttpTransaction> http_trans( |
12633 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 12632 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
12634 ASSERT_EQ(ERR_IO_PENDING, | 12633 ASSERT_EQ(ERR_IO_PENDING, |
12635 http_trans->Start(&http_request, http_callback.callback(), | 12634 http_trans->Start(&http_request, http_callback.callback(), |
12636 BoundNetLog())); | 12635 BoundNetLog())); |
12637 EXPECT_TRUE(IsTransportSocketPoolStalled(session)); | 12636 EXPECT_TRUE(IsTransportSocketPoolStalled(session.get())); |
12638 | 12637 |
12639 // Wait for response from SSL request. | 12638 // Wait for response from SSL request. |
12640 ASSERT_EQ(OK, ssl_callback.WaitForResult()); | 12639 ASSERT_EQ(OK, ssl_callback.WaitForResult()); |
12641 std::string response_data; | 12640 std::string response_data; |
12642 ASSERT_EQ(OK, ReadTransaction(ssl_trans.get(), &response_data)); | 12641 ASSERT_EQ(OK, ReadTransaction(ssl_trans.get(), &response_data)); |
12643 EXPECT_EQ("hello world", response_data); | 12642 EXPECT_EQ("hello world", response_data); |
12644 | 12643 |
12645 // The SSL socket should automatically be closed, so the HTTP request can | 12644 // The SSL socket should automatically be closed, so the HTTP request can |
12646 // start. | 12645 // start. |
12647 EXPECT_EQ(0, GetIdleSocketCountInSSLSocketPool(session)); | 12646 EXPECT_EQ(0, GetIdleSocketCountInSSLSocketPool(session.get())); |
12648 ASSERT_FALSE(IsTransportSocketPoolStalled(session)); | 12647 ASSERT_FALSE(IsTransportSocketPoolStalled(session.get())); |
12649 | 12648 |
12650 // The HTTP request can now complete. | 12649 // The HTTP request can now complete. |
12651 ASSERT_EQ(OK, http_callback.WaitForResult()); | 12650 ASSERT_EQ(OK, http_callback.WaitForResult()); |
12652 ASSERT_EQ(OK, ReadTransaction(http_trans.get(), &response_data)); | 12651 ASSERT_EQ(OK, ReadTransaction(http_trans.get(), &response_data)); |
12653 EXPECT_EQ("falafel", response_data); | 12652 EXPECT_EQ("falafel", response_data); |
12654 | 12653 |
12655 EXPECT_EQ(1, GetIdleSocketCountInTransportSocketPool(session)); | 12654 EXPECT_EQ(1, GetIdleSocketCountInTransportSocketPool(session.get())); |
12656 } | 12655 } |
12657 | 12656 |
12658 // Tests that when a SSL connection is established but there's no corresponding | 12657 // Tests that when a SSL connection is established but there's no corresponding |
12659 // request that needs it, the new socket is closed if the transport socket pool | 12658 // request that needs it, the new socket is closed if the transport socket pool |
12660 // is stalled on the global socket limit. | 12659 // is stalled on the global socket limit. |
12661 TEST_P(HttpNetworkTransactionTest, CloseSSLSocketOnIdleForHttpRequest2) { | 12660 TEST_P(HttpNetworkTransactionTest, CloseSSLSocketOnIdleForHttpRequest2) { |
12662 ClientSocketPoolManager::set_max_sockets_per_group( | 12661 ClientSocketPoolManager::set_max_sockets_per_group( |
12663 HttpNetworkSession::NORMAL_SOCKET_POOL, 1); | 12662 HttpNetworkSession::NORMAL_SOCKET_POOL, 1); |
12664 ClientSocketPoolManager::set_max_sockets_per_pool( | 12663 ClientSocketPoolManager::set_max_sockets_per_pool( |
12665 HttpNetworkSession::NORMAL_SOCKET_POOL, 1); | 12664 HttpNetworkSession::NORMAL_SOCKET_POOL, 1); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12700 | 12699 |
12701 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 12700 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
12702 | 12701 |
12703 // Preconnect an SSL socket. A preconnect is needed because connect jobs are | 12702 // Preconnect an SSL socket. A preconnect is needed because connect jobs are |
12704 // cancelled when a normal transaction is cancelled. | 12703 // cancelled when a normal transaction is cancelled. |
12705 net::HttpStreamFactory* http_stream_factory = session->http_stream_factory(); | 12704 net::HttpStreamFactory* http_stream_factory = session->http_stream_factory(); |
12706 net::SSLConfig ssl_config; | 12705 net::SSLConfig ssl_config; |
12707 session->ssl_config_service()->GetSSLConfig(&ssl_config); | 12706 session->ssl_config_service()->GetSSLConfig(&ssl_config); |
12708 http_stream_factory->PreconnectStreams(1, ssl_request, DEFAULT_PRIORITY, | 12707 http_stream_factory->PreconnectStreams(1, ssl_request, DEFAULT_PRIORITY, |
12709 ssl_config, ssl_config); | 12708 ssl_config, ssl_config); |
12710 EXPECT_EQ(0, GetIdleSocketCountInSSLSocketPool(session)); | 12709 EXPECT_EQ(0, GetIdleSocketCountInSSLSocketPool(session.get())); |
12711 | 12710 |
12712 // Start the HTTP request. Pool should stall. | 12711 // Start the HTTP request. Pool should stall. |
12713 TestCompletionCallback http_callback; | 12712 TestCompletionCallback http_callback; |
12714 scoped_ptr<HttpTransaction> http_trans( | 12713 scoped_ptr<HttpTransaction> http_trans( |
12715 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 12714 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
12716 ASSERT_EQ(ERR_IO_PENDING, | 12715 ASSERT_EQ(ERR_IO_PENDING, |
12717 http_trans->Start(&http_request, http_callback.callback(), | 12716 http_trans->Start(&http_request, http_callback.callback(), |
12718 BoundNetLog())); | 12717 BoundNetLog())); |
12719 EXPECT_TRUE(IsTransportSocketPoolStalled(session)); | 12718 EXPECT_TRUE(IsTransportSocketPoolStalled(session.get())); |
12720 | 12719 |
12721 // The SSL connection will automatically be closed once the connection is | 12720 // The SSL connection will automatically be closed once the connection is |
12722 // established, to let the HTTP request start. | 12721 // established, to let the HTTP request start. |
12723 ASSERT_EQ(OK, http_callback.WaitForResult()); | 12722 ASSERT_EQ(OK, http_callback.WaitForResult()); |
12724 std::string response_data; | 12723 std::string response_data; |
12725 ASSERT_EQ(OK, ReadTransaction(http_trans.get(), &response_data)); | 12724 ASSERT_EQ(OK, ReadTransaction(http_trans.get(), &response_data)); |
12726 EXPECT_EQ("falafel", response_data); | 12725 EXPECT_EQ("falafel", response_data); |
12727 | 12726 |
12728 EXPECT_EQ(1, GetIdleSocketCountInTransportSocketPool(session)); | 12727 EXPECT_EQ(1, GetIdleSocketCountInTransportSocketPool(session.get())); |
12729 } | 12728 } |
12730 | 12729 |
12731 TEST_P(HttpNetworkTransactionTest, PostReadsErrorResponseAfterReset) { | 12730 TEST_P(HttpNetworkTransactionTest, PostReadsErrorResponseAfterReset) { |
12732 ScopedVector<UploadElementReader> element_readers; | 12731 ScopedVector<UploadElementReader> element_readers; |
12733 element_readers.push_back(new UploadBytesElementReader("foo", 3)); | 12732 element_readers.push_back(new UploadBytesElementReader("foo", 3)); |
12734 UploadDataStream upload_data_stream(element_readers.Pass(), 0); | 12733 UploadDataStream upload_data_stream(element_readers.Pass(), 0); |
12735 | 12734 |
12736 HttpRequestInfo request; | 12735 HttpRequestInfo request; |
12737 request.method = "POST"; | 12736 request.method = "POST"; |
12738 request.url = GURL("http://www.foo.com/"); | 12737 request.url = GURL("http://www.foo.com/"); |
12739 request.upload_data_stream = &upload_data_stream; | 12738 request.upload_data_stream = &upload_data_stream; |
12740 request.load_flags = 0; | 12739 request.load_flags = 0; |
12741 | 12740 |
12742 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 12741 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
12743 scoped_ptr<HttpTransaction> trans( | 12742 scoped_ptr<HttpTransaction> trans( |
12744 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 12743 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
12745 // Send headers successfully, but get an error while sending the body. | 12744 // Send headers successfully, but get an error while sending the body. |
12746 MockWrite data_writes[] = { | 12745 MockWrite data_writes[] = { |
12747 MockWrite("POST / HTTP/1.1\r\n" | 12746 MockWrite("POST / HTTP/1.1\r\n" |
12748 "Host: www.foo.com\r\n" | 12747 "Host: www.foo.com\r\n" |
12749 "Connection: keep-alive\r\n" | 12748 "Connection: keep-alive\r\n" |
12750 "Content-Length: 3\r\n\r\n"), | 12749 "Content-Length: 3\r\n\r\n"), |
12751 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), | 12750 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), |
12752 }; | 12751 }; |
12753 | 12752 |
12754 MockRead data_reads[] = { | 12753 MockRead data_reads[] = { |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12809 arraysize(data_writes)); | 12808 arraysize(data_writes)); |
12810 session_deps_.socket_factory->AddSocketDataProvider(&data); | 12809 session_deps_.socket_factory->AddSocketDataProvider(&data); |
12811 | 12810 |
12812 TestCompletionCallback callback; | 12811 TestCompletionCallback callback; |
12813 HttpRequestInfo request1; | 12812 HttpRequestInfo request1; |
12814 request1.method = "GET"; | 12813 request1.method = "GET"; |
12815 request1.url = GURL("http://www.foo.com/"); | 12814 request1.url = GURL("http://www.foo.com/"); |
12816 request1.load_flags = 0; | 12815 request1.load_flags = 0; |
12817 | 12816 |
12818 scoped_ptr<HttpTransaction> trans1( | 12817 scoped_ptr<HttpTransaction> trans1( |
12819 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 12818 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
12820 int rv = trans1->Start(&request1, callback.callback(), BoundNetLog()); | 12819 int rv = trans1->Start(&request1, callback.callback(), BoundNetLog()); |
12821 EXPECT_EQ(ERR_IO_PENDING, rv); | 12820 EXPECT_EQ(ERR_IO_PENDING, rv); |
12822 | 12821 |
12823 rv = callback.WaitForResult(); | 12822 rv = callback.WaitForResult(); |
12824 EXPECT_EQ(OK, rv); | 12823 EXPECT_EQ(OK, rv); |
12825 | 12824 |
12826 const HttpResponseInfo* response1 = trans1->GetResponseInfo(); | 12825 const HttpResponseInfo* response1 = trans1->GetResponseInfo(); |
12827 ASSERT_TRUE(response1 != NULL); | 12826 ASSERT_TRUE(response1 != NULL); |
12828 | 12827 |
12829 EXPECT_TRUE(response1->headers.get() != NULL); | 12828 EXPECT_TRUE(response1->headers.get() != NULL); |
(...skipping 10 matching lines...) Expand all Loading... |
12840 element_readers.push_back(new UploadBytesElementReader("foo", 3)); | 12839 element_readers.push_back(new UploadBytesElementReader("foo", 3)); |
12841 UploadDataStream upload_data_stream(element_readers.Pass(), 0); | 12840 UploadDataStream upload_data_stream(element_readers.Pass(), 0); |
12842 | 12841 |
12843 HttpRequestInfo request2; | 12842 HttpRequestInfo request2; |
12844 request2.method = "POST"; | 12843 request2.method = "POST"; |
12845 request2.url = GURL("http://www.foo.com/"); | 12844 request2.url = GURL("http://www.foo.com/"); |
12846 request2.upload_data_stream = &upload_data_stream; | 12845 request2.upload_data_stream = &upload_data_stream; |
12847 request2.load_flags = 0; | 12846 request2.load_flags = 0; |
12848 | 12847 |
12849 scoped_ptr<HttpTransaction> trans2( | 12848 scoped_ptr<HttpTransaction> trans2( |
12850 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 12849 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
12851 rv = trans2->Start(&request2, callback.callback(), BoundNetLog()); | 12850 rv = trans2->Start(&request2, callback.callback(), BoundNetLog()); |
12852 EXPECT_EQ(ERR_IO_PENDING, rv); | 12851 EXPECT_EQ(ERR_IO_PENDING, rv); |
12853 | 12852 |
12854 rv = callback.WaitForResult(); | 12853 rv = callback.WaitForResult(); |
12855 EXPECT_EQ(OK, rv); | 12854 EXPECT_EQ(OK, rv); |
12856 | 12855 |
12857 const HttpResponseInfo* response2 = trans2->GetResponseInfo(); | 12856 const HttpResponseInfo* response2 = trans2->GetResponseInfo(); |
12858 ASSERT_TRUE(response2 != NULL); | 12857 ASSERT_TRUE(response2 != NULL); |
12859 | 12858 |
12860 EXPECT_TRUE(response2->headers.get() != NULL); | 12859 EXPECT_TRUE(response2->headers.get() != NULL); |
(...skipping 12 matching lines...) Expand all Loading... |
12873 UploadDataStream upload_data_stream(element_readers.Pass(), 0); | 12872 UploadDataStream upload_data_stream(element_readers.Pass(), 0); |
12874 | 12873 |
12875 HttpRequestInfo request; | 12874 HttpRequestInfo request; |
12876 request.method = "POST"; | 12875 request.method = "POST"; |
12877 request.url = GURL("http://www.foo.com/"); | 12876 request.url = GURL("http://www.foo.com/"); |
12878 request.upload_data_stream = &upload_data_stream; | 12877 request.upload_data_stream = &upload_data_stream; |
12879 request.load_flags = 0; | 12878 request.load_flags = 0; |
12880 | 12879 |
12881 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 12880 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
12882 scoped_ptr<HttpTransaction> trans( | 12881 scoped_ptr<HttpTransaction> trans( |
12883 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 12882 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
12884 // Send headers successfully, but get an error while sending the body. | 12883 // Send headers successfully, but get an error while sending the body. |
12885 MockWrite data_writes[] = { | 12884 MockWrite data_writes[] = { |
12886 MockWrite("POST / HTTP/1.1\r\n" | 12885 MockWrite("POST / HTTP/1.1\r\n" |
12887 "Host: www.foo.com\r\n" | 12886 "Host: www.foo.com\r\n" |
12888 "Connection: keep-alive\r\n" | 12887 "Connection: keep-alive\r\n" |
12889 "Content-Length: 3\r\n\r\n" | 12888 "Content-Length: 3\r\n\r\n" |
12890 "fo"), | 12889 "fo"), |
12891 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), | 12890 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), |
12892 }; | 12891 }; |
12893 | 12892 |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12928 UploadDataStream upload_data_stream(UploadDataStream::CHUNKED, 0); | 12927 UploadDataStream upload_data_stream(UploadDataStream::CHUNKED, 0); |
12929 | 12928 |
12930 HttpRequestInfo request; | 12929 HttpRequestInfo request; |
12931 request.method = "POST"; | 12930 request.method = "POST"; |
12932 request.url = GURL("http://www.foo.com/"); | 12931 request.url = GURL("http://www.foo.com/"); |
12933 request.upload_data_stream = &upload_data_stream; | 12932 request.upload_data_stream = &upload_data_stream; |
12934 request.load_flags = 0; | 12933 request.load_flags = 0; |
12935 | 12934 |
12936 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 12935 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
12937 scoped_ptr<HttpTransaction> trans( | 12936 scoped_ptr<HttpTransaction> trans( |
12938 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 12937 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
12939 // Send headers successfully, but get an error while sending the body. | 12938 // Send headers successfully, but get an error while sending the body. |
12940 MockWrite data_writes[] = { | 12939 MockWrite data_writes[] = { |
12941 MockWrite("POST / HTTP/1.1\r\n" | 12940 MockWrite("POST / HTTP/1.1\r\n" |
12942 "Host: www.foo.com\r\n" | 12941 "Host: www.foo.com\r\n" |
12943 "Connection: keep-alive\r\n" | 12942 "Connection: keep-alive\r\n" |
12944 "Transfer-Encoding: chunked\r\n\r\n"), | 12943 "Transfer-Encoding: chunked\r\n\r\n"), |
12945 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), | 12944 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), |
12946 }; | 12945 }; |
12947 | 12946 |
12948 MockRead data_reads[] = { | 12947 MockRead data_reads[] = { |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12987 UploadDataStream upload_data_stream(element_readers.Pass(), 0); | 12986 UploadDataStream upload_data_stream(element_readers.Pass(), 0); |
12988 | 12987 |
12989 HttpRequestInfo request; | 12988 HttpRequestInfo request; |
12990 request.method = "POST"; | 12989 request.method = "POST"; |
12991 request.url = GURL("http://www.foo.com/"); | 12990 request.url = GURL("http://www.foo.com/"); |
12992 request.upload_data_stream = &upload_data_stream; | 12991 request.upload_data_stream = &upload_data_stream; |
12993 request.load_flags = 0; | 12992 request.load_flags = 0; |
12994 | 12993 |
12995 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 12994 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
12996 scoped_ptr<HttpTransaction> trans( | 12995 scoped_ptr<HttpTransaction> trans( |
12997 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 12996 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
12998 | 12997 |
12999 MockWrite data_writes[] = { | 12998 MockWrite data_writes[] = { |
13000 MockWrite("POST / HTTP/1.1\r\n" | 12999 MockWrite("POST / HTTP/1.1\r\n" |
13001 "Host: www.foo.com\r\n" | 13000 "Host: www.foo.com\r\n" |
13002 "Connection: keep-alive\r\n" | 13001 "Connection: keep-alive\r\n" |
13003 "Content-Length: 3\r\n\r\n"), | 13002 "Content-Length: 3\r\n\r\n"), |
13004 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), | 13003 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), |
13005 }; | 13004 }; |
13006 | 13005 |
13007 MockRead data_reads[] = { | 13006 MockRead data_reads[] = { |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
13040 UploadDataStream upload_data_stream(element_readers.Pass(), 0); | 13039 UploadDataStream upload_data_stream(element_readers.Pass(), 0); |
13041 | 13040 |
13042 HttpRequestInfo request; | 13041 HttpRequestInfo request; |
13043 request.method = "POST"; | 13042 request.method = "POST"; |
13044 request.url = GURL("http://www.foo.com/"); | 13043 request.url = GURL("http://www.foo.com/"); |
13045 request.upload_data_stream = &upload_data_stream; | 13044 request.upload_data_stream = &upload_data_stream; |
13046 request.load_flags = 0; | 13045 request.load_flags = 0; |
13047 | 13046 |
13048 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 13047 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
13049 scoped_ptr<HttpTransaction> trans( | 13048 scoped_ptr<HttpTransaction> trans( |
13050 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 13049 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
13051 // Send headers successfully, but get an error while sending the body. | 13050 // Send headers successfully, but get an error while sending the body. |
13052 MockWrite data_writes[] = { | 13051 MockWrite data_writes[] = { |
13053 MockWrite("POST / HTTP/1.1\r\n" | 13052 MockWrite("POST / HTTP/1.1\r\n" |
13054 "Host: www.foo.com\r\n" | 13053 "Host: www.foo.com\r\n" |
13055 "Connection: keep-alive\r\n" | 13054 "Connection: keep-alive\r\n" |
13056 "Content-Length: 3\r\n\r\n"), | 13055 "Content-Length: 3\r\n\r\n"), |
13057 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), | 13056 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), |
13058 }; | 13057 }; |
13059 | 13058 |
13060 MockRead data_reads[] = { | 13059 MockRead data_reads[] = { |
(...skipping 24 matching lines...) Expand all Loading... |
13085 UploadDataStream upload_data_stream(element_readers.Pass(), 0); | 13084 UploadDataStream upload_data_stream(element_readers.Pass(), 0); |
13086 | 13085 |
13087 HttpRequestInfo request; | 13086 HttpRequestInfo request; |
13088 request.method = "POST"; | 13087 request.method = "POST"; |
13089 request.url = GURL("http://www.foo.com/"); | 13088 request.url = GURL("http://www.foo.com/"); |
13090 request.upload_data_stream = &upload_data_stream; | 13089 request.upload_data_stream = &upload_data_stream; |
13091 request.load_flags = 0; | 13090 request.load_flags = 0; |
13092 | 13091 |
13093 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 13092 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
13094 scoped_ptr<HttpTransaction> trans( | 13093 scoped_ptr<HttpTransaction> trans( |
13095 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 13094 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
13096 // Send headers successfully, but get an error while sending the body. | 13095 // Send headers successfully, but get an error while sending the body. |
13097 MockWrite data_writes[] = { | 13096 MockWrite data_writes[] = { |
13098 MockWrite("POST / HTTP/1.1\r\n" | 13097 MockWrite("POST / HTTP/1.1\r\n" |
13099 "Host: www.foo.com\r\n" | 13098 "Host: www.foo.com\r\n" |
13100 "Connection: keep-alive\r\n" | 13099 "Connection: keep-alive\r\n" |
13101 "Content-Length: 3\r\n\r\n"), | 13100 "Content-Length: 3\r\n\r\n"), |
13102 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), | 13101 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), |
13103 }; | 13102 }; |
13104 | 13103 |
13105 MockRead data_reads[] = { | 13104 MockRead data_reads[] = { |
(...skipping 25 matching lines...) Expand all Loading... |
13131 UploadDataStream upload_data_stream(element_readers.Pass(), 0); | 13130 UploadDataStream upload_data_stream(element_readers.Pass(), 0); |
13132 | 13131 |
13133 HttpRequestInfo request; | 13132 HttpRequestInfo request; |
13134 request.method = "POST"; | 13133 request.method = "POST"; |
13135 request.url = GURL("http://www.foo.com/"); | 13134 request.url = GURL("http://www.foo.com/"); |
13136 request.upload_data_stream = &upload_data_stream; | 13135 request.upload_data_stream = &upload_data_stream; |
13137 request.load_flags = 0; | 13136 request.load_flags = 0; |
13138 | 13137 |
13139 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 13138 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
13140 scoped_ptr<HttpTransaction> trans( | 13139 scoped_ptr<HttpTransaction> trans( |
13141 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 13140 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
13142 // Send headers successfully, but get an error while sending the body. | 13141 // Send headers successfully, but get an error while sending the body. |
13143 MockWrite data_writes[] = { | 13142 MockWrite data_writes[] = { |
13144 MockWrite("POST / HTTP/1.1\r\n" | 13143 MockWrite("POST / HTTP/1.1\r\n" |
13145 "Host: www.foo.com\r\n" | 13144 "Host: www.foo.com\r\n" |
13146 "Connection: keep-alive\r\n" | 13145 "Connection: keep-alive\r\n" |
13147 "Content-Length: 3\r\n\r\n"), | 13146 "Content-Length: 3\r\n\r\n"), |
13148 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), | 13147 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), |
13149 }; | 13148 }; |
13150 | 13149 |
13151 MockRead data_reads[] = { | 13150 MockRead data_reads[] = { |
(...skipping 22 matching lines...) Expand all Loading... |
13174 UploadDataStream upload_data_stream(element_readers.Pass(), 0); | 13173 UploadDataStream upload_data_stream(element_readers.Pass(), 0); |
13175 | 13174 |
13176 HttpRequestInfo request; | 13175 HttpRequestInfo request; |
13177 request.method = "POST"; | 13176 request.method = "POST"; |
13178 request.url = GURL("http://www.foo.com/"); | 13177 request.url = GURL("http://www.foo.com/"); |
13179 request.upload_data_stream = &upload_data_stream; | 13178 request.upload_data_stream = &upload_data_stream; |
13180 request.load_flags = 0; | 13179 request.load_flags = 0; |
13181 | 13180 |
13182 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 13181 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
13183 scoped_ptr<HttpTransaction> trans( | 13182 scoped_ptr<HttpTransaction> trans( |
13184 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 13183 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
13185 // Send headers successfully, but get an error while sending the body. | 13184 // Send headers successfully, but get an error while sending the body. |
13186 MockWrite data_writes[] = { | 13185 MockWrite data_writes[] = { |
13187 MockWrite("POST / HTTP/1.1\r\n" | 13186 MockWrite("POST / HTTP/1.1\r\n" |
13188 "Host: www.foo.com\r\n" | 13187 "Host: www.foo.com\r\n" |
13189 "Connection: keep-alive\r\n" | 13188 "Connection: keep-alive\r\n" |
13190 "Content-Length: 3\r\n\r\n"), | 13189 "Content-Length: 3\r\n\r\n"), |
13191 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), | 13190 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), |
13192 }; | 13191 }; |
13193 | 13192 |
13194 MockRead data_reads[] = { | 13193 MockRead data_reads[] = { |
(...skipping 10 matching lines...) Expand all Loading... |
13205 EXPECT_EQ(ERR_IO_PENDING, rv); | 13204 EXPECT_EQ(ERR_IO_PENDING, rv); |
13206 | 13205 |
13207 rv = callback.WaitForResult(); | 13206 rv = callback.WaitForResult(); |
13208 EXPECT_EQ(ERR_CONNECTION_RESET, rv); | 13207 EXPECT_EQ(ERR_CONNECTION_RESET, rv); |
13209 | 13208 |
13210 const HttpResponseInfo* response = trans->GetResponseInfo(); | 13209 const HttpResponseInfo* response = trans->GetResponseInfo(); |
13211 EXPECT_TRUE(response == NULL); | 13210 EXPECT_TRUE(response == NULL); |
13212 } | 13211 } |
13213 | 13212 |
13214 } // namespace net | 13213 } // namespace net |
OLD | NEW |