| 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 |