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

Side by Side Diff: net/http/http_network_transaction_unittest.cc

Issue 502163003: Remove implicit conversions from scoped_refptr to T* in net/http/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/http/http_network_transaction.cc ('k') | net/http/http_response_headers_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
OLDNEW
« no previous file with comments | « net/http/http_network_transaction.cc ('k') | net/http/http_response_headers_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698