| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/http/http_network_transaction.h" | 5 #include "net/http/http_network_transaction.h" |
| 6 | 6 |
| 7 #include <math.h> // ceil | 7 #include <math.h> // ceil |
| 8 #include <stdarg.h> | 8 #include <stdarg.h> |
| 9 #include <stdint.h> | 9 #include <stdint.h> |
| 10 | 10 |
| (...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 225 } | 225 } |
| 226 | 226 |
| 227 void AddWebSocketHeaders(HttpRequestHeaders* headers) { | 227 void AddWebSocketHeaders(HttpRequestHeaders* headers) { |
| 228 headers->SetHeader("Connection", "Upgrade"); | 228 headers->SetHeader("Connection", "Upgrade"); |
| 229 headers->SetHeader("Upgrade", "websocket"); | 229 headers->SetHeader("Upgrade", "websocket"); |
| 230 headers->SetHeader("Origin", "http://www.example.org"); | 230 headers->SetHeader("Origin", "http://www.example.org"); |
| 231 headers->SetHeader("Sec-WebSocket-Version", "13"); | 231 headers->SetHeader("Sec-WebSocket-Version", "13"); |
| 232 headers->SetHeader("Sec-WebSocket-Key", "dGhlIHNhbXBsZSBub25jZQ=="); | 232 headers->SetHeader("Sec-WebSocket-Key", "dGhlIHNhbXBsZSBub25jZQ=="); |
| 233 } | 233 } |
| 234 | 234 |
| 235 scoped_ptr<HttpNetworkSession> CreateSession( | 235 HttpNetworkSession* CreateSession(SpdySessionDependencies* session_deps) { |
| 236 SpdySessionDependencies* session_deps) { | |
| 237 return SpdySessionDependencies::SpdyCreateSession(session_deps); | 236 return SpdySessionDependencies::SpdyCreateSession(session_deps); |
| 238 } | 237 } |
| 239 | 238 |
| 240 } // namespace | 239 } // namespace |
| 241 | 240 |
| 242 class HttpNetworkTransactionTest | 241 class HttpNetworkTransactionTest |
| 243 : public PlatformTest, | 242 : public PlatformTest, |
| 244 public ::testing::WithParamInterface<NextProto> { | 243 public ::testing::WithParamInterface<NextProto> { |
| 245 public: | 244 public: |
| 246 virtual ~HttpNetworkTransactionTest() { | 245 virtual ~HttpNetworkTransactionTest() { |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 321 size_t data_count) { | 320 size_t data_count) { |
| 322 SimpleGetHelperResult out; | 321 SimpleGetHelperResult out; |
| 323 | 322 |
| 324 HttpRequestInfo request; | 323 HttpRequestInfo request; |
| 325 request.method = "GET"; | 324 request.method = "GET"; |
| 326 request.url = GURL("http://www.example.org/"); | 325 request.url = GURL("http://www.example.org/"); |
| 327 request.load_flags = 0; | 326 request.load_flags = 0; |
| 328 | 327 |
| 329 BoundTestNetLog log; | 328 BoundTestNetLog log; |
| 330 session_deps_.net_log = log.bound().net_log(); | 329 session_deps_.net_log = log.bound().net_log(); |
| 331 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 330 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 332 scoped_ptr<HttpTransaction> trans( | 331 scoped_ptr<HttpTransaction> trans( |
| 333 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 332 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 334 | 333 |
| 335 for (size_t i = 0; i < data_count; ++i) { | 334 for (size_t i = 0; i < data_count; ++i) { |
| 336 session_deps_.socket_factory->AddSocketDataProvider(data[i]); | 335 session_deps_.socket_factory->AddSocketDataProvider(data[i]); |
| 337 } | 336 } |
| 338 | 337 |
| 339 TestCompletionCallback callback; | 338 TestCompletionCallback callback; |
| 340 | 339 |
| 341 EXPECT_TRUE(log.bound().IsCapturing()); | 340 EXPECT_TRUE(log.bound().IsCapturing()); |
| (...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 667 EXPECT_EQ("172.22.68.17:80", auth_challenge->challenger.ToString()); | 666 EXPECT_EQ("172.22.68.17:80", auth_challenge->challenger.ToString()); |
| 668 EXPECT_EQ(std::string(), auth_challenge->realm); | 667 EXPECT_EQ(std::string(), auth_challenge->realm); |
| 669 EXPECT_EQ("ntlm", auth_challenge->scheme); | 668 EXPECT_EQ("ntlm", auth_challenge->scheme); |
| 670 return true; | 669 return true; |
| 671 } | 670 } |
| 672 #endif // defined(NTLM_PORTABLE) | 671 #endif // defined(NTLM_PORTABLE) |
| 673 | 672 |
| 674 } // namespace | 673 } // namespace |
| 675 | 674 |
| 676 TEST_P(HttpNetworkTransactionTest, Basic) { | 675 TEST_P(HttpNetworkTransactionTest, Basic) { |
| 677 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 676 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 678 scoped_ptr<HttpTransaction> trans( | 677 scoped_ptr<HttpTransaction> trans( |
| 679 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 678 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 680 } | 679 } |
| 681 | 680 |
| 682 TEST_P(HttpNetworkTransactionTest, SimpleGET) { | 681 TEST_P(HttpNetworkTransactionTest, SimpleGET) { |
| 683 MockRead data_reads[] = { | 682 MockRead data_reads[] = { |
| 684 MockRead("HTTP/1.0 200 OK\r\n\r\n"), | 683 MockRead("HTTP/1.0 200 OK\r\n\r\n"), |
| 685 MockRead("hello world"), | 684 MockRead("hello world"), |
| 686 MockRead(SYNCHRONOUS, OK), | 685 MockRead(SYNCHRONOUS, OK), |
| 687 }; | 686 }; |
| (...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 986 MockRead("Location: http://good.com/\r\n"), | 985 MockRead("Location: http://good.com/\r\n"), |
| 987 MockRead("Content-Length: 0\r\n\r\n"), | 986 MockRead("Content-Length: 0\r\n\r\n"), |
| 988 MockRead(SYNCHRONOUS, OK), | 987 MockRead(SYNCHRONOUS, OK), |
| 989 }; | 988 }; |
| 990 | 989 |
| 991 HttpRequestInfo request; | 990 HttpRequestInfo request; |
| 992 request.method = "GET"; | 991 request.method = "GET"; |
| 993 request.url = GURL("http://redirect.com/"); | 992 request.url = GURL("http://redirect.com/"); |
| 994 request.load_flags = 0; | 993 request.load_flags = 0; |
| 995 | 994 |
| 996 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 995 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 997 scoped_ptr<HttpTransaction> trans( | 996 scoped_ptr<HttpTransaction> trans( |
| 998 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 997 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 999 | 998 |
| 1000 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 999 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
| 1001 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1000 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 1002 | 1001 |
| 1003 TestCompletionCallback callback; | 1002 TestCompletionCallback callback; |
| 1004 | 1003 |
| 1005 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 1004 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 1006 EXPECT_EQ(ERR_IO_PENDING, rv); | 1005 EXPECT_EQ(ERR_IO_PENDING, rv); |
| (...skipping 24 matching lines...) Expand all Loading... |
| 1031 } | 1030 } |
| 1032 | 1031 |
| 1033 // Do a request using the HEAD method. Verify that we don't try to read the | 1032 // Do a request using the HEAD method. Verify that we don't try to read the |
| 1034 // message body (since HEAD has none). | 1033 // message body (since HEAD has none). |
| 1035 TEST_P(HttpNetworkTransactionTest, Head) { | 1034 TEST_P(HttpNetworkTransactionTest, Head) { |
| 1036 HttpRequestInfo request; | 1035 HttpRequestInfo request; |
| 1037 request.method = "HEAD"; | 1036 request.method = "HEAD"; |
| 1038 request.url = GURL("http://www.example.org/"); | 1037 request.url = GURL("http://www.example.org/"); |
| 1039 request.load_flags = 0; | 1038 request.load_flags = 0; |
| 1040 | 1039 |
| 1041 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 1040 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 1042 scoped_ptr<HttpTransaction> trans( | 1041 scoped_ptr<HttpTransaction> trans( |
| 1043 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 1042 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 1044 BeforeProxyHeadersSentHandler proxy_headers_handler; | 1043 BeforeProxyHeadersSentHandler proxy_headers_handler; |
| 1045 trans->SetBeforeProxyHeadersSentCallback( | 1044 trans->SetBeforeProxyHeadersSentCallback( |
| 1046 base::Bind(&BeforeProxyHeadersSentHandler::OnBeforeProxyHeadersSent, | 1045 base::Bind(&BeforeProxyHeadersSentHandler::OnBeforeProxyHeadersSent, |
| 1047 base::Unretained(&proxy_headers_handler))); | 1046 base::Unretained(&proxy_headers_handler))); |
| 1048 | 1047 |
| 1049 MockWrite data_writes1[] = { | 1048 MockWrite data_writes1[] = { |
| 1050 MockWrite("HEAD / HTTP/1.1\r\n" | 1049 MockWrite("HEAD / HTTP/1.1\r\n" |
| 1051 "Host: www.example.org\r\n" | 1050 "Host: www.example.org\r\n" |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1091 | 1090 |
| 1092 // Reading should give EOF right away, since there is no message body | 1091 // Reading should give EOF right away, since there is no message body |
| 1093 // (despite non-zero content-length). | 1092 // (despite non-zero content-length). |
| 1094 std::string response_data; | 1093 std::string response_data; |
| 1095 rv = ReadTransaction(trans.get(), &response_data); | 1094 rv = ReadTransaction(trans.get(), &response_data); |
| 1096 EXPECT_EQ(OK, rv); | 1095 EXPECT_EQ(OK, rv); |
| 1097 EXPECT_EQ("", response_data); | 1096 EXPECT_EQ("", response_data); |
| 1098 } | 1097 } |
| 1099 | 1098 |
| 1100 TEST_P(HttpNetworkTransactionTest, ReuseConnection) { | 1099 TEST_P(HttpNetworkTransactionTest, ReuseConnection) { |
| 1101 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 1100 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 1102 | 1101 |
| 1103 MockRead data_reads[] = { | 1102 MockRead data_reads[] = { |
| 1104 MockRead("HTTP/1.1 200 OK\r\nContent-Length: 5\r\n\r\n"), | 1103 MockRead("HTTP/1.1 200 OK\r\nContent-Length: 5\r\n\r\n"), |
| 1105 MockRead("hello"), | 1104 MockRead("hello"), |
| 1106 MockRead("HTTP/1.1 200 OK\r\nContent-Length: 5\r\n\r\n"), | 1105 MockRead("HTTP/1.1 200 OK\r\nContent-Length: 5\r\n\r\n"), |
| 1107 MockRead("world"), | 1106 MockRead("world"), |
| 1108 MockRead(SYNCHRONOUS, OK), | 1107 MockRead(SYNCHRONOUS, OK), |
| 1109 }; | 1108 }; |
| 1110 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 1109 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
| 1111 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1110 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1149 ScopedVector<UploadElementReader> element_readers; | 1148 ScopedVector<UploadElementReader> element_readers; |
| 1150 element_readers.push_back(new UploadBytesElementReader("foo", 3)); | 1149 element_readers.push_back(new UploadBytesElementReader("foo", 3)); |
| 1151 ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0); | 1150 ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0); |
| 1152 | 1151 |
| 1153 HttpRequestInfo request; | 1152 HttpRequestInfo request; |
| 1154 request.method = "POST"; | 1153 request.method = "POST"; |
| 1155 request.url = GURL("http://www.foo.com/"); | 1154 request.url = GURL("http://www.foo.com/"); |
| 1156 request.upload_data_stream = &upload_data_stream; | 1155 request.upload_data_stream = &upload_data_stream; |
| 1157 request.load_flags = 0; | 1156 request.load_flags = 0; |
| 1158 | 1157 |
| 1159 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 1158 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 1160 scoped_ptr<HttpTransaction> trans( | 1159 scoped_ptr<HttpTransaction> trans( |
| 1161 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 1160 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 1162 | 1161 |
| 1163 MockRead data_reads[] = { | 1162 MockRead data_reads[] = { |
| 1164 MockRead("HTTP/1.0 100 Continue\r\n\r\n"), | 1163 MockRead("HTTP/1.0 100 Continue\r\n\r\n"), |
| 1165 MockRead("HTTP/1.0 200 OK\r\n\r\n"), | 1164 MockRead("HTTP/1.0 200 OK\r\n\r\n"), |
| 1166 MockRead("hello world"), | 1165 MockRead("hello world"), |
| 1167 MockRead(SYNCHRONOUS, OK), | 1166 MockRead(SYNCHRONOUS, OK), |
| 1168 }; | 1167 }; |
| 1169 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 1168 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 1191 | 1190 |
| 1192 // This test is almost the same as Ignores100 above, but the response contains | 1191 // This test is almost the same as Ignores100 above, but the response contains |
| 1193 // a 102 instead of a 100. Also, instead of HTTP/1.0 the response is | 1192 // a 102 instead of a 100. Also, instead of HTTP/1.0 the response is |
| 1194 // HTTP/1.1 and the two status headers are read in one read. | 1193 // HTTP/1.1 and the two status headers are read in one read. |
| 1195 TEST_P(HttpNetworkTransactionTest, Ignores1xx) { | 1194 TEST_P(HttpNetworkTransactionTest, Ignores1xx) { |
| 1196 HttpRequestInfo request; | 1195 HttpRequestInfo request; |
| 1197 request.method = "GET"; | 1196 request.method = "GET"; |
| 1198 request.url = GURL("http://www.foo.com/"); | 1197 request.url = GURL("http://www.foo.com/"); |
| 1199 request.load_flags = 0; | 1198 request.load_flags = 0; |
| 1200 | 1199 |
| 1201 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 1200 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 1202 scoped_ptr<HttpTransaction> trans( | 1201 scoped_ptr<HttpTransaction> trans( |
| 1203 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 1202 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 1204 | 1203 |
| 1205 MockRead data_reads[] = { | 1204 MockRead data_reads[] = { |
| 1206 MockRead("HTTP/1.1 102 Unspecified status code\r\n\r\n" | 1205 MockRead("HTTP/1.1 102 Unspecified status code\r\n\r\n" |
| 1207 "HTTP/1.1 200 OK\r\n\r\n"), | 1206 "HTTP/1.1 200 OK\r\n\r\n"), |
| 1208 MockRead("hello world"), | 1207 MockRead("hello world"), |
| 1209 MockRead(SYNCHRONOUS, OK), | 1208 MockRead(SYNCHRONOUS, OK), |
| 1210 }; | 1209 }; |
| 1211 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 1210 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 1230 EXPECT_EQ(OK, rv); | 1229 EXPECT_EQ(OK, rv); |
| 1231 EXPECT_EQ("hello world", response_data); | 1230 EXPECT_EQ("hello world", response_data); |
| 1232 } | 1231 } |
| 1233 | 1232 |
| 1234 TEST_P(HttpNetworkTransactionTest, Incomplete100ThenEOF) { | 1233 TEST_P(HttpNetworkTransactionTest, Incomplete100ThenEOF) { |
| 1235 HttpRequestInfo request; | 1234 HttpRequestInfo request; |
| 1236 request.method = "POST"; | 1235 request.method = "POST"; |
| 1237 request.url = GURL("http://www.foo.com/"); | 1236 request.url = GURL("http://www.foo.com/"); |
| 1238 request.load_flags = 0; | 1237 request.load_flags = 0; |
| 1239 | 1238 |
| 1240 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 1239 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 1241 scoped_ptr<HttpTransaction> trans( | 1240 scoped_ptr<HttpTransaction> trans( |
| 1242 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 1241 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 1243 | 1242 |
| 1244 MockRead data_reads[] = { | 1243 MockRead data_reads[] = { |
| 1245 MockRead(SYNCHRONOUS, "HTTP/1.0 100 Continue\r\n"), | 1244 MockRead(SYNCHRONOUS, "HTTP/1.0 100 Continue\r\n"), |
| 1246 MockRead(ASYNC, 0), | 1245 MockRead(ASYNC, 0), |
| 1247 }; | 1246 }; |
| 1248 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 1247 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
| 1249 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1248 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 1250 | 1249 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 1261 EXPECT_EQ(OK, rv); | 1260 EXPECT_EQ(OK, rv); |
| 1262 EXPECT_EQ("", response_data); | 1261 EXPECT_EQ("", response_data); |
| 1263 } | 1262 } |
| 1264 | 1263 |
| 1265 TEST_P(HttpNetworkTransactionTest, EmptyResponse) { | 1264 TEST_P(HttpNetworkTransactionTest, EmptyResponse) { |
| 1266 HttpRequestInfo request; | 1265 HttpRequestInfo request; |
| 1267 request.method = "POST"; | 1266 request.method = "POST"; |
| 1268 request.url = GURL("http://www.foo.com/"); | 1267 request.url = GURL("http://www.foo.com/"); |
| 1269 request.load_flags = 0; | 1268 request.load_flags = 0; |
| 1270 | 1269 |
| 1271 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 1270 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 1272 scoped_ptr<HttpTransaction> trans( | 1271 scoped_ptr<HttpTransaction> trans( |
| 1273 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 1272 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 1274 | 1273 |
| 1275 MockRead data_reads[] = { | 1274 MockRead data_reads[] = { |
| 1276 MockRead(ASYNC, 0), | 1275 MockRead(ASYNC, 0), |
| 1277 }; | 1276 }; |
| 1278 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 1277 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
| 1279 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1278 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 1280 | 1279 |
| 1281 TestCompletionCallback callback; | 1280 TestCompletionCallback callback; |
| 1282 | 1281 |
| 1283 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 1282 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 1284 EXPECT_EQ(ERR_IO_PENDING, rv); | 1283 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 1285 | 1284 |
| 1286 rv = callback.WaitForResult(); | 1285 rv = callback.WaitForResult(); |
| 1287 EXPECT_EQ(ERR_EMPTY_RESPONSE, rv); | 1286 EXPECT_EQ(ERR_EMPTY_RESPONSE, rv); |
| 1288 } | 1287 } |
| 1289 | 1288 |
| 1290 void HttpNetworkTransactionTest::KeepAliveConnectionResendRequestTest( | 1289 void HttpNetworkTransactionTest::KeepAliveConnectionResendRequestTest( |
| 1291 const MockWrite* write_failure, | 1290 const MockWrite* write_failure, |
| 1292 const MockRead* read_failure) { | 1291 const MockRead* read_failure) { |
| 1293 HttpRequestInfo request; | 1292 HttpRequestInfo request; |
| 1294 request.method = "GET"; | 1293 request.method = "GET"; |
| 1295 request.url = GURL("http://www.foo.com/"); | 1294 request.url = GURL("http://www.foo.com/"); |
| 1296 request.load_flags = 0; | 1295 request.load_flags = 0; |
| 1297 | 1296 |
| 1298 TestNetLog net_log; | 1297 TestNetLog net_log; |
| 1299 session_deps_.net_log = &net_log; | 1298 session_deps_.net_log = &net_log; |
| 1300 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 1299 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 1301 | 1300 |
| 1302 // Written data for successfully sending both requests. | 1301 // Written data for successfully sending both requests. |
| 1303 MockWrite data1_writes[] = { | 1302 MockWrite data1_writes[] = { |
| 1304 MockWrite("GET / HTTP/1.1\r\n" | 1303 MockWrite("GET / HTTP/1.1\r\n" |
| 1305 "Host: www.foo.com\r\n" | 1304 "Host: www.foo.com\r\n" |
| 1306 "Connection: keep-alive\r\n\r\n"), | 1305 "Connection: keep-alive\r\n\r\n"), |
| 1307 MockWrite("GET / HTTP/1.1\r\n" | 1306 MockWrite("GET / HTTP/1.1\r\n" |
| 1308 "Host: www.foo.com\r\n" | 1307 "Host: www.foo.com\r\n" |
| 1309 "Connection: keep-alive\r\n\r\n") | 1308 "Connection: keep-alive\r\n\r\n") |
| 1310 }; | 1309 }; |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1380 const MockWrite* write_failure, | 1379 const MockWrite* write_failure, |
| 1381 const MockRead* read_failure, | 1380 const MockRead* read_failure, |
| 1382 bool use_spdy) { | 1381 bool use_spdy) { |
| 1383 HttpRequestInfo request; | 1382 HttpRequestInfo request; |
| 1384 request.method = "GET"; | 1383 request.method = "GET"; |
| 1385 request.url = GURL("https://www.foo.com/"); | 1384 request.url = GURL("https://www.foo.com/"); |
| 1386 request.load_flags = 0; | 1385 request.load_flags = 0; |
| 1387 | 1386 |
| 1388 TestNetLog net_log; | 1387 TestNetLog net_log; |
| 1389 session_deps_.net_log = &net_log; | 1388 session_deps_.net_log = &net_log; |
| 1390 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 1389 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 1391 | 1390 |
| 1392 SSLSocketDataProvider ssl1(ASYNC, OK); | 1391 SSLSocketDataProvider ssl1(ASYNC, OK); |
| 1393 SSLSocketDataProvider ssl2(ASYNC, OK); | 1392 SSLSocketDataProvider ssl2(ASYNC, OK); |
| 1394 if (use_spdy) { | 1393 if (use_spdy) { |
| 1395 ssl1.SetNextProto(GetParam()); | 1394 ssl1.SetNextProto(GetParam()); |
| 1396 ssl2.SetNextProto(GetParam()); | 1395 ssl2.SetNextProto(GetParam()); |
| 1397 } | 1396 } |
| 1398 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl1); | 1397 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl1); |
| 1399 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl2); | 1398 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl2); |
| 1400 | 1399 |
| (...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1576 MockRead read_failure(ASYNC, OK); // EOF | 1575 MockRead read_failure(ASYNC, OK); // EOF |
| 1577 PreconnectErrorResendRequestTest(NULL, &read_failure, true); | 1576 PreconnectErrorResendRequestTest(NULL, &read_failure, true); |
| 1578 } | 1577 } |
| 1579 | 1578 |
| 1580 TEST_P(HttpNetworkTransactionTest, NonKeepAliveConnectionReset) { | 1579 TEST_P(HttpNetworkTransactionTest, NonKeepAliveConnectionReset) { |
| 1581 HttpRequestInfo request; | 1580 HttpRequestInfo request; |
| 1582 request.method = "GET"; | 1581 request.method = "GET"; |
| 1583 request.url = GURL("http://www.example.org/"); | 1582 request.url = GURL("http://www.example.org/"); |
| 1584 request.load_flags = 0; | 1583 request.load_flags = 0; |
| 1585 | 1584 |
| 1586 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 1585 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 1587 scoped_ptr<HttpTransaction> trans( | 1586 scoped_ptr<HttpTransaction> trans( |
| 1588 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 1587 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 1589 | 1588 |
| 1590 MockRead data_reads[] = { | 1589 MockRead data_reads[] = { |
| 1591 MockRead(ASYNC, ERR_CONNECTION_RESET), | 1590 MockRead(ASYNC, ERR_CONNECTION_RESET), |
| 1592 MockRead("HTTP/1.0 200 OK\r\n\r\n"), // Should not be used | 1591 MockRead("HTTP/1.0 200 OK\r\n\r\n"), // Should not be used |
| 1593 MockRead("hello world"), | 1592 MockRead("hello world"), |
| 1594 MockRead(SYNCHRONOUS, OK), | 1593 MockRead(SYNCHRONOUS, OK), |
| 1595 }; | 1594 }; |
| 1596 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 1595 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 1626 EXPECT_EQ(ERR_EMPTY_RESPONSE, out.rv); | 1625 EXPECT_EQ(ERR_EMPTY_RESPONSE, out.rv); |
| 1627 } | 1626 } |
| 1628 | 1627 |
| 1629 // Test that network access can be deferred and resumed. | 1628 // Test that network access can be deferred and resumed. |
| 1630 TEST_P(HttpNetworkTransactionTest, ThrottleBeforeNetworkStart) { | 1629 TEST_P(HttpNetworkTransactionTest, ThrottleBeforeNetworkStart) { |
| 1631 HttpRequestInfo request; | 1630 HttpRequestInfo request; |
| 1632 request.method = "GET"; | 1631 request.method = "GET"; |
| 1633 request.url = GURL("http://www.example.org/"); | 1632 request.url = GURL("http://www.example.org/"); |
| 1634 request.load_flags = 0; | 1633 request.load_flags = 0; |
| 1635 | 1634 |
| 1636 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 1635 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 1637 scoped_ptr<HttpTransaction> trans( | 1636 scoped_ptr<HttpTransaction> trans( |
| 1638 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 1637 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 1639 | 1638 |
| 1640 // Defer on OnBeforeNetworkStart. | 1639 // Defer on OnBeforeNetworkStart. |
| 1641 BeforeNetworkStartHandler net_start_handler(true); // defer | 1640 BeforeNetworkStartHandler net_start_handler(true); // defer |
| 1642 trans->SetBeforeNetworkStartCallback( | 1641 trans->SetBeforeNetworkStartCallback( |
| 1643 base::Bind(&BeforeNetworkStartHandler::OnBeforeNetworkStart, | 1642 base::Bind(&BeforeNetworkStartHandler::OnBeforeNetworkStart, |
| 1644 base::Unretained(&net_start_handler))); | 1643 base::Unretained(&net_start_handler))); |
| 1645 | 1644 |
| 1646 MockRead data_reads[] = { | 1645 MockRead data_reads[] = { |
| (...skipping 28 matching lines...) Expand all Loading... |
| 1675 trans.reset(); | 1674 trans.reset(); |
| 1676 } | 1675 } |
| 1677 | 1676 |
| 1678 // Test that network use can be deferred and canceled. | 1677 // Test that network use can be deferred and canceled. |
| 1679 TEST_P(HttpNetworkTransactionTest, ThrottleAndCancelBeforeNetworkStart) { | 1678 TEST_P(HttpNetworkTransactionTest, ThrottleAndCancelBeforeNetworkStart) { |
| 1680 HttpRequestInfo request; | 1679 HttpRequestInfo request; |
| 1681 request.method = "GET"; | 1680 request.method = "GET"; |
| 1682 request.url = GURL("http://www.example.org/"); | 1681 request.url = GURL("http://www.example.org/"); |
| 1683 request.load_flags = 0; | 1682 request.load_flags = 0; |
| 1684 | 1683 |
| 1685 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 1684 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 1686 scoped_ptr<HttpTransaction> trans( | 1685 scoped_ptr<HttpTransaction> trans( |
| 1687 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 1686 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 1688 | 1687 |
| 1689 // Defer on OnBeforeNetworkStart. | 1688 // Defer on OnBeforeNetworkStart. |
| 1690 BeforeNetworkStartHandler net_start_handler(true); // defer | 1689 BeforeNetworkStartHandler net_start_handler(true); // defer |
| 1691 trans->SetBeforeNetworkStartCallback( | 1690 trans->SetBeforeNetworkStartCallback( |
| 1692 base::Bind(&BeforeNetworkStartHandler::OnBeforeNetworkStart, | 1691 base::Bind(&BeforeNetworkStartHandler::OnBeforeNetworkStart, |
| 1693 base::Unretained(&net_start_handler))); | 1692 base::Unretained(&net_start_handler))); |
| 1694 | 1693 |
| 1695 TestCompletionCallback callback; | 1694 TestCompletionCallback callback; |
| (...skipping 10 matching lines...) Expand all Loading... |
| 1706 // Next 2 cases (KeepAliveEarlyClose and KeepAliveEarlyClose2) are regression | 1705 // Next 2 cases (KeepAliveEarlyClose and KeepAliveEarlyClose2) are regression |
| 1707 // tests. There was a bug causing HttpNetworkTransaction to hang in the | 1706 // tests. There was a bug causing HttpNetworkTransaction to hang in the |
| 1708 // destructor in such situations. | 1707 // destructor in such situations. |
| 1709 // See http://crbug.com/154712 and http://crbug.com/156609. | 1708 // See http://crbug.com/154712 and http://crbug.com/156609. |
| 1710 TEST_P(HttpNetworkTransactionTest, KeepAliveEarlyClose) { | 1709 TEST_P(HttpNetworkTransactionTest, KeepAliveEarlyClose) { |
| 1711 HttpRequestInfo request; | 1710 HttpRequestInfo request; |
| 1712 request.method = "GET"; | 1711 request.method = "GET"; |
| 1713 request.url = GURL("http://www.example.org/"); | 1712 request.url = GURL("http://www.example.org/"); |
| 1714 request.load_flags = 0; | 1713 request.load_flags = 0; |
| 1715 | 1714 |
| 1716 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 1715 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 1717 scoped_ptr<HttpTransaction> trans( | 1716 scoped_ptr<HttpTransaction> trans( |
| 1718 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 1717 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 1719 | 1718 |
| 1720 MockRead data_reads[] = { | 1719 MockRead data_reads[] = { |
| 1721 MockRead("HTTP/1.0 200 OK\r\n"), | 1720 MockRead("HTTP/1.0 200 OK\r\n"), |
| 1722 MockRead("Connection: keep-alive\r\n"), | 1721 MockRead("Connection: keep-alive\r\n"), |
| 1723 MockRead("Content-Length: 100\r\n\r\n"), | 1722 MockRead("Content-Length: 100\r\n\r\n"), |
| 1724 MockRead("hello"), | 1723 MockRead("hello"), |
| 1725 MockRead(SYNCHRONOUS, 0), | 1724 MockRead(SYNCHRONOUS, 0), |
| 1726 }; | 1725 }; |
| (...skipping 20 matching lines...) Expand all Loading... |
| 1747 base::MessageLoop::current()->RunUntilIdle(); | 1746 base::MessageLoop::current()->RunUntilIdle(); |
| 1748 EXPECT_EQ(0, GetIdleSocketCountInTransportSocketPool(session.get())); | 1747 EXPECT_EQ(0, GetIdleSocketCountInTransportSocketPool(session.get())); |
| 1749 } | 1748 } |
| 1750 | 1749 |
| 1751 TEST_P(HttpNetworkTransactionTest, KeepAliveEarlyClose2) { | 1750 TEST_P(HttpNetworkTransactionTest, KeepAliveEarlyClose2) { |
| 1752 HttpRequestInfo request; | 1751 HttpRequestInfo request; |
| 1753 request.method = "GET"; | 1752 request.method = "GET"; |
| 1754 request.url = GURL("http://www.example.org/"); | 1753 request.url = GURL("http://www.example.org/"); |
| 1755 request.load_flags = 0; | 1754 request.load_flags = 0; |
| 1756 | 1755 |
| 1757 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 1756 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 1758 scoped_ptr<HttpTransaction> trans( | 1757 scoped_ptr<HttpTransaction> trans( |
| 1759 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 1758 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 1760 | 1759 |
| 1761 MockRead data_reads[] = { | 1760 MockRead data_reads[] = { |
| 1762 MockRead("HTTP/1.0 200 OK\r\n"), | 1761 MockRead("HTTP/1.0 200 OK\r\n"), |
| 1763 MockRead("Connection: keep-alive\r\n"), | 1762 MockRead("Connection: keep-alive\r\n"), |
| 1764 MockRead("Content-Length: 100\r\n\r\n"), | 1763 MockRead("Content-Length: 100\r\n\r\n"), |
| 1765 MockRead(SYNCHRONOUS, 0), | 1764 MockRead(SYNCHRONOUS, 0), |
| 1766 }; | 1765 }; |
| 1767 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 1766 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 1789 // Test that we correctly reuse a keep-alive connection after not explicitly | 1788 // Test that we correctly reuse a keep-alive connection after not explicitly |
| 1790 // reading the body. | 1789 // reading the body. |
| 1791 TEST_P(HttpNetworkTransactionTest, KeepAliveAfterUnreadBody) { | 1790 TEST_P(HttpNetworkTransactionTest, KeepAliveAfterUnreadBody) { |
| 1792 HttpRequestInfo request; | 1791 HttpRequestInfo request; |
| 1793 request.method = "GET"; | 1792 request.method = "GET"; |
| 1794 request.url = GURL("http://www.foo.com/"); | 1793 request.url = GURL("http://www.foo.com/"); |
| 1795 request.load_flags = 0; | 1794 request.load_flags = 0; |
| 1796 | 1795 |
| 1797 TestNetLog net_log; | 1796 TestNetLog net_log; |
| 1798 session_deps_.net_log = &net_log; | 1797 session_deps_.net_log = &net_log; |
| 1799 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 1798 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 1800 | 1799 |
| 1801 // Note that because all these reads happen in the same | 1800 // Note that because all these reads happen in the same |
| 1802 // StaticSocketDataProvider, it shows that the same socket is being reused for | 1801 // StaticSocketDataProvider, it shows that the same socket is being reused for |
| 1803 // all transactions. | 1802 // all transactions. |
| 1804 MockRead data1_reads[] = { | 1803 MockRead data1_reads[] = { |
| 1805 MockRead("HTTP/1.1 204 No Content\r\n\r\n"), | 1804 MockRead("HTTP/1.1 204 No Content\r\n\r\n"), |
| 1806 MockRead("HTTP/1.1 205 Reset Content\r\n\r\n"), | 1805 MockRead("HTTP/1.1 205 Reset Content\r\n\r\n"), |
| 1807 MockRead("HTTP/1.1 304 Not Modified\r\n\r\n"), | 1806 MockRead("HTTP/1.1 304 Not Modified\r\n\r\n"), |
| 1808 MockRead("HTTP/1.1 302 Found\r\n" | 1807 MockRead("HTTP/1.1 302 Found\r\n" |
| 1809 "Content-Length: 0\r\n\r\n"), | 1808 "Content-Length: 0\r\n\r\n"), |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1898 // Test the request-challenge-retry sequence for basic auth. | 1897 // Test the request-challenge-retry sequence for basic auth. |
| 1899 // (basic auth is the easiest to mock, because it has no randomness). | 1898 // (basic auth is the easiest to mock, because it has no randomness). |
| 1900 TEST_P(HttpNetworkTransactionTest, BasicAuth) { | 1899 TEST_P(HttpNetworkTransactionTest, BasicAuth) { |
| 1901 HttpRequestInfo request; | 1900 HttpRequestInfo request; |
| 1902 request.method = "GET"; | 1901 request.method = "GET"; |
| 1903 request.url = GURL("http://www.example.org/"); | 1902 request.url = GURL("http://www.example.org/"); |
| 1904 request.load_flags = 0; | 1903 request.load_flags = 0; |
| 1905 | 1904 |
| 1906 TestNetLog log; | 1905 TestNetLog log; |
| 1907 session_deps_.net_log = &log; | 1906 session_deps_.net_log = &log; |
| 1908 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 1907 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 1909 scoped_ptr<HttpTransaction> trans( | 1908 scoped_ptr<HttpTransaction> trans( |
| 1910 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 1909 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 1911 | 1910 |
| 1912 MockWrite data_writes1[] = { | 1911 MockWrite data_writes1[] = { |
| 1913 MockWrite( | 1912 MockWrite( |
| 1914 "GET / HTTP/1.1\r\n" | 1913 "GET / HTTP/1.1\r\n" |
| 1915 "Host: www.example.org\r\n" | 1914 "Host: www.example.org\r\n" |
| 1916 "Connection: keep-alive\r\n\r\n"), | 1915 "Connection: keep-alive\r\n\r\n"), |
| 1917 }; | 1916 }; |
| 1918 | 1917 |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2003 EXPECT_TRUE(response->auth_challenge.get() == NULL); | 2002 EXPECT_TRUE(response->auth_challenge.get() == NULL); |
| 2004 EXPECT_EQ(100, response->headers->GetContentLength()); | 2003 EXPECT_EQ(100, response->headers->GetContentLength()); |
| 2005 } | 2004 } |
| 2006 | 2005 |
| 2007 TEST_P(HttpNetworkTransactionTest, DoNotSendAuth) { | 2006 TEST_P(HttpNetworkTransactionTest, DoNotSendAuth) { |
| 2008 HttpRequestInfo request; | 2007 HttpRequestInfo request; |
| 2009 request.method = "GET"; | 2008 request.method = "GET"; |
| 2010 request.url = GURL("http://www.example.org/"); | 2009 request.url = GURL("http://www.example.org/"); |
| 2011 request.load_flags = LOAD_DO_NOT_SEND_AUTH_DATA; | 2010 request.load_flags = LOAD_DO_NOT_SEND_AUTH_DATA; |
| 2012 | 2011 |
| 2013 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 2012 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 2014 scoped_ptr<HttpTransaction> trans( | 2013 scoped_ptr<HttpTransaction> trans( |
| 2015 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 2014 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 2016 | 2015 |
| 2017 MockWrite data_writes[] = { | 2016 MockWrite data_writes[] = { |
| 2018 MockWrite( | 2017 MockWrite( |
| 2019 "GET / HTTP/1.1\r\n" | 2018 "GET / HTTP/1.1\r\n" |
| 2020 "Host: www.example.org\r\n" | 2019 "Host: www.example.org\r\n" |
| 2021 "Connection: keep-alive\r\n\r\n"), | 2020 "Connection: keep-alive\r\n\r\n"), |
| 2022 }; | 2021 }; |
| 2023 | 2022 |
| (...skipping 30 matching lines...) Expand all Loading... |
| 2054 // Test the request-challenge-retry sequence for basic auth, over a keep-alive | 2053 // Test the request-challenge-retry sequence for basic auth, over a keep-alive |
| 2055 // connection. | 2054 // connection. |
| 2056 TEST_P(HttpNetworkTransactionTest, BasicAuthKeepAlive) { | 2055 TEST_P(HttpNetworkTransactionTest, BasicAuthKeepAlive) { |
| 2057 HttpRequestInfo request; | 2056 HttpRequestInfo request; |
| 2058 request.method = "GET"; | 2057 request.method = "GET"; |
| 2059 request.url = GURL("http://www.example.org/"); | 2058 request.url = GURL("http://www.example.org/"); |
| 2060 request.load_flags = 0; | 2059 request.load_flags = 0; |
| 2061 | 2060 |
| 2062 TestNetLog log; | 2061 TestNetLog log; |
| 2063 session_deps_.net_log = &log; | 2062 session_deps_.net_log = &log; |
| 2064 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 2063 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 2065 | 2064 |
| 2066 MockWrite data_writes1[] = { | 2065 MockWrite data_writes1[] = { |
| 2067 MockWrite( | 2066 MockWrite( |
| 2068 "GET / HTTP/1.1\r\n" | 2067 "GET / HTTP/1.1\r\n" |
| 2069 "Host: www.example.org\r\n" | 2068 "Host: www.example.org\r\n" |
| 2070 "Connection: keep-alive\r\n\r\n"), | 2069 "Connection: keep-alive\r\n\r\n"), |
| 2071 | 2070 |
| 2072 // After calling trans->RestartWithAuth(), this is the request we should | 2071 // After calling trans->RestartWithAuth(), this is the request we should |
| 2073 // be issuing -- the final header line contains the credentials. | 2072 // be issuing -- the final header line contains the credentials. |
| 2074 MockWrite( | 2073 MockWrite( |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2157 } | 2156 } |
| 2158 | 2157 |
| 2159 // Test the request-challenge-retry sequence for basic auth, over a keep-alive | 2158 // Test the request-challenge-retry sequence for basic auth, over a keep-alive |
| 2160 // connection and with no response body to drain. | 2159 // connection and with no response body to drain. |
| 2161 TEST_P(HttpNetworkTransactionTest, BasicAuthKeepAliveNoBody) { | 2160 TEST_P(HttpNetworkTransactionTest, BasicAuthKeepAliveNoBody) { |
| 2162 HttpRequestInfo request; | 2161 HttpRequestInfo request; |
| 2163 request.method = "GET"; | 2162 request.method = "GET"; |
| 2164 request.url = GURL("http://www.example.org/"); | 2163 request.url = GURL("http://www.example.org/"); |
| 2165 request.load_flags = 0; | 2164 request.load_flags = 0; |
| 2166 | 2165 |
| 2167 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 2166 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 2168 | 2167 |
| 2169 MockWrite data_writes1[] = { | 2168 MockWrite data_writes1[] = { |
| 2170 MockWrite( | 2169 MockWrite( |
| 2171 "GET / HTTP/1.1\r\n" | 2170 "GET / HTTP/1.1\r\n" |
| 2172 "Host: www.example.org\r\n" | 2171 "Host: www.example.org\r\n" |
| 2173 "Connection: keep-alive\r\n\r\n"), | 2172 "Connection: keep-alive\r\n\r\n"), |
| 2174 | 2173 |
| 2175 // After calling trans->RestartWithAuth(), this is the request we should | 2174 // After calling trans->RestartWithAuth(), this is the request we should |
| 2176 // be issuing -- the final header line contains the credentials. | 2175 // be issuing -- the final header line contains the credentials. |
| 2177 MockWrite( | 2176 MockWrite( |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2235 } | 2234 } |
| 2236 | 2235 |
| 2237 // Test the request-challenge-retry sequence for basic auth, over a keep-alive | 2236 // Test the request-challenge-retry sequence for basic auth, over a keep-alive |
| 2238 // connection and with a large response body to drain. | 2237 // connection and with a large response body to drain. |
| 2239 TEST_P(HttpNetworkTransactionTest, BasicAuthKeepAliveLargeBody) { | 2238 TEST_P(HttpNetworkTransactionTest, BasicAuthKeepAliveLargeBody) { |
| 2240 HttpRequestInfo request; | 2239 HttpRequestInfo request; |
| 2241 request.method = "GET"; | 2240 request.method = "GET"; |
| 2242 request.url = GURL("http://www.example.org/"); | 2241 request.url = GURL("http://www.example.org/"); |
| 2243 request.load_flags = 0; | 2242 request.load_flags = 0; |
| 2244 | 2243 |
| 2245 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 2244 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 2246 | 2245 |
| 2247 MockWrite data_writes1[] = { | 2246 MockWrite data_writes1[] = { |
| 2248 MockWrite( | 2247 MockWrite( |
| 2249 "GET / HTTP/1.1\r\n" | 2248 "GET / HTTP/1.1\r\n" |
| 2250 "Host: www.example.org\r\n" | 2249 "Host: www.example.org\r\n" |
| 2251 "Connection: keep-alive\r\n\r\n"), | 2250 "Connection: keep-alive\r\n\r\n"), |
| 2252 | 2251 |
| 2253 // After calling trans->RestartWithAuth(), this is the request we should | 2252 // After calling trans->RestartWithAuth(), this is the request we should |
| 2254 // be issuing -- the final header line contains the credentials. | 2253 // be issuing -- the final header line contains the credentials. |
| 2255 MockWrite( | 2254 MockWrite( |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2321 } | 2320 } |
| 2322 | 2321 |
| 2323 // Test the request-challenge-retry sequence for basic auth, over a keep-alive | 2322 // Test the request-challenge-retry sequence for basic auth, over a keep-alive |
| 2324 // connection, but the server gets impatient and closes the connection. | 2323 // connection, but the server gets impatient and closes the connection. |
| 2325 TEST_P(HttpNetworkTransactionTest, BasicAuthKeepAliveImpatientServer) { | 2324 TEST_P(HttpNetworkTransactionTest, BasicAuthKeepAliveImpatientServer) { |
| 2326 HttpRequestInfo request; | 2325 HttpRequestInfo request; |
| 2327 request.method = "GET"; | 2326 request.method = "GET"; |
| 2328 request.url = GURL("http://www.example.org/"); | 2327 request.url = GURL("http://www.example.org/"); |
| 2329 request.load_flags = 0; | 2328 request.load_flags = 0; |
| 2330 | 2329 |
| 2331 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 2330 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 2332 | 2331 |
| 2333 MockWrite data_writes1[] = { | 2332 MockWrite data_writes1[] = { |
| 2334 MockWrite( | 2333 MockWrite( |
| 2335 "GET / HTTP/1.1\r\n" | 2334 "GET / HTTP/1.1\r\n" |
| 2336 "Host: www.example.org\r\n" | 2335 "Host: www.example.org\r\n" |
| 2337 "Connection: keep-alive\r\n\r\n"), | 2336 "Connection: keep-alive\r\n\r\n"), |
| 2338 // This simulates the seemingly successful write to a closed connection | 2337 // This simulates the seemingly successful write to a closed connection |
| 2339 // if the bug is not fixed. | 2338 // if the bug is not fixed. |
| 2340 MockWrite( | 2339 MockWrite( |
| 2341 "GET / HTTP/1.1\r\n" | 2340 "GET / HTTP/1.1\r\n" |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2416 request.method = "GET"; | 2415 request.method = "GET"; |
| 2417 request.url = GURL("https://www.example.org/"); | 2416 request.url = GURL("https://www.example.org/"); |
| 2418 // when the no authentication data flag is set. | 2417 // when the no authentication data flag is set. |
| 2419 request.load_flags = LOAD_DO_NOT_SEND_AUTH_DATA; | 2418 request.load_flags = LOAD_DO_NOT_SEND_AUTH_DATA; |
| 2420 | 2419 |
| 2421 // Configure against proxy server "myproxy:70". | 2420 // Configure against proxy server "myproxy:70". |
| 2422 session_deps_.proxy_service.reset( | 2421 session_deps_.proxy_service.reset( |
| 2423 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70")); | 2422 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70")); |
| 2424 BoundTestNetLog log; | 2423 BoundTestNetLog log; |
| 2425 session_deps_.net_log = log.bound().net_log(); | 2424 session_deps_.net_log = log.bound().net_log(); |
| 2426 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 2425 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 2427 | 2426 |
| 2428 // Since we have proxy, should try to establish tunnel. | 2427 // Since we have proxy, should try to establish tunnel. |
| 2429 MockWrite data_writes1[] = { | 2428 MockWrite data_writes1[] = { |
| 2430 MockWrite("CONNECT www.example.org:443 HTTP/1.1\r\n" | 2429 MockWrite("CONNECT www.example.org:443 HTTP/1.1\r\n" |
| 2431 "Host: www.example.org\r\n" | 2430 "Host: www.example.org\r\n" |
| 2432 "Proxy-Connection: keep-alive\r\n\r\n"), | 2431 "Proxy-Connection: keep-alive\r\n\r\n"), |
| 2433 }; | 2432 }; |
| 2434 | 2433 |
| 2435 // The proxy responds to the connect with a 407, using a non-persistent | 2434 // The proxy responds to the connect with a 407, using a non-persistent |
| 2436 // connection. | 2435 // connection. |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2540 request.method = "GET"; | 2539 request.method = "GET"; |
| 2541 request.url = GURL("https://www.example.org/"); | 2540 request.url = GURL("https://www.example.org/"); |
| 2542 // when the no authentication data flag is set. | 2541 // when the no authentication data flag is set. |
| 2543 request.load_flags = LOAD_DO_NOT_SEND_AUTH_DATA; | 2542 request.load_flags = LOAD_DO_NOT_SEND_AUTH_DATA; |
| 2544 | 2543 |
| 2545 // Configure against proxy server "myproxy:70". | 2544 // Configure against proxy server "myproxy:70". |
| 2546 session_deps_.proxy_service.reset( | 2545 session_deps_.proxy_service.reset( |
| 2547 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70")); | 2546 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70")); |
| 2548 BoundTestNetLog log; | 2547 BoundTestNetLog log; |
| 2549 session_deps_.net_log = log.bound().net_log(); | 2548 session_deps_.net_log = log.bound().net_log(); |
| 2550 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 2549 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 2551 | 2550 |
| 2552 // Since we have proxy, should try to establish tunnel. | 2551 // Since we have proxy, should try to establish tunnel. |
| 2553 MockWrite data_writes1[] = { | 2552 MockWrite data_writes1[] = { |
| 2554 MockWrite("CONNECT www.example.org:443 HTTP/1.1\r\n" | 2553 MockWrite("CONNECT www.example.org:443 HTTP/1.1\r\n" |
| 2555 "Host: www.example.org\r\n" | 2554 "Host: www.example.org\r\n" |
| 2556 "Proxy-Connection: keep-alive\r\n\r\n"), | 2555 "Proxy-Connection: keep-alive\r\n\r\n"), |
| 2557 }; | 2556 }; |
| 2558 | 2557 |
| 2559 // The proxy responds to the connect with a 407, using a non-persistent | 2558 // The proxy responds to the connect with a 407, using a non-persistent |
| 2560 // connection. | 2559 // connection. |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2664 request.method = "GET"; | 2663 request.method = "GET"; |
| 2665 request.url = GURL("https://www.example.org/"); | 2664 request.url = GURL("https://www.example.org/"); |
| 2666 // Ensure that proxy authentication is attempted even | 2665 // Ensure that proxy authentication is attempted even |
| 2667 // when the no authentication data flag is set. | 2666 // when the no authentication data flag is set. |
| 2668 request.load_flags = LOAD_DO_NOT_SEND_AUTH_DATA; | 2667 request.load_flags = LOAD_DO_NOT_SEND_AUTH_DATA; |
| 2669 | 2668 |
| 2670 // Configure against proxy server "myproxy:70". | 2669 // Configure against proxy server "myproxy:70". |
| 2671 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); | 2670 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); |
| 2672 BoundTestNetLog log; | 2671 BoundTestNetLog log; |
| 2673 session_deps_.net_log = log.bound().net_log(); | 2672 session_deps_.net_log = log.bound().net_log(); |
| 2674 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 2673 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 2675 | 2674 |
| 2676 scoped_ptr<HttpTransaction> trans( | 2675 scoped_ptr<HttpTransaction> trans( |
| 2677 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 2676 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 2678 | 2677 |
| 2679 // Since we have proxy, should try to establish tunnel. | 2678 // Since we have proxy, should try to establish tunnel. |
| 2680 MockWrite data_writes1[] = { | 2679 MockWrite data_writes1[] = { |
| 2681 MockWrite( | 2680 MockWrite( |
| 2682 "CONNECT www.example.org:443 HTTP/1.1\r\n" | 2681 "CONNECT www.example.org:443 HTTP/1.1\r\n" |
| 2683 "Host: www.example.org\r\n" | 2682 "Host: www.example.org\r\n" |
| 2684 "Proxy-Connection: keep-alive\r\n\r\n"), | 2683 "Proxy-Connection: keep-alive\r\n\r\n"), |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2771 request.method = "GET"; | 2770 request.method = "GET"; |
| 2772 request.url = GURL("https://www.example.org/"); | 2771 request.url = GURL("https://www.example.org/"); |
| 2773 // Ensure that proxy authentication is attempted even | 2772 // Ensure that proxy authentication is attempted even |
| 2774 // when the no authentication data flag is set. | 2773 // when the no authentication data flag is set. |
| 2775 request.load_flags = LOAD_DO_NOT_SEND_AUTH_DATA; | 2774 request.load_flags = LOAD_DO_NOT_SEND_AUTH_DATA; |
| 2776 | 2775 |
| 2777 // Configure against proxy server "myproxy:70". | 2776 // Configure against proxy server "myproxy:70". |
| 2778 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); | 2777 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); |
| 2779 BoundTestNetLog log; | 2778 BoundTestNetLog log; |
| 2780 session_deps_.net_log = log.bound().net_log(); | 2779 session_deps_.net_log = log.bound().net_log(); |
| 2781 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 2780 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 2782 | 2781 |
| 2783 scoped_ptr<HttpTransaction> trans( | 2782 scoped_ptr<HttpTransaction> trans( |
| 2784 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 2783 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 2785 | 2784 |
| 2786 // Since we have proxy, should try to establish tunnel. | 2785 // Since we have proxy, should try to establish tunnel. |
| 2787 MockWrite data_writes1[] = { | 2786 MockWrite data_writes1[] = { |
| 2788 MockWrite( | 2787 MockWrite( |
| 2789 "CONNECT www.example.org:443 HTTP/1.1\r\n" | 2788 "CONNECT www.example.org:443 HTTP/1.1\r\n" |
| 2790 "Host: www.example.org\r\n" | 2789 "Host: www.example.org\r\n" |
| 2791 "Proxy-Connection: keep-alive\r\n\r\n"), | 2790 "Proxy-Connection: keep-alive\r\n\r\n"), |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2875 TEST_P(HttpNetworkTransactionTest, BasicAuthProxyKeepAliveHangupDuringBody) { | 2874 TEST_P(HttpNetworkTransactionTest, BasicAuthProxyKeepAliveHangupDuringBody) { |
| 2876 HttpRequestInfo request; | 2875 HttpRequestInfo request; |
| 2877 request.method = "GET"; | 2876 request.method = "GET"; |
| 2878 request.url = GURL("https://www.example.org/"); | 2877 request.url = GURL("https://www.example.org/"); |
| 2879 // Ensure that proxy authentication is attempted even | 2878 // Ensure that proxy authentication is attempted even |
| 2880 // when the no authentication data flag is set. | 2879 // when the no authentication data flag is set. |
| 2881 request.load_flags = LOAD_DO_NOT_SEND_AUTH_DATA; | 2880 request.load_flags = LOAD_DO_NOT_SEND_AUTH_DATA; |
| 2882 | 2881 |
| 2883 // Configure against proxy server "myproxy:70". | 2882 // Configure against proxy server "myproxy:70". |
| 2884 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); | 2883 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); |
| 2885 scoped_ptr<HttpNetworkSession> session = CreateSession(&session_deps_); | 2884 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 2886 | 2885 |
| 2887 scoped_ptr<HttpTransaction> trans( | 2886 scoped_ptr<HttpTransaction> trans( |
| 2888 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 2887 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 2889 | 2888 |
| 2890 // Since we have proxy, should try to establish tunnel. | 2889 // Since we have proxy, should try to establish tunnel. |
| 2891 MockWrite data_writes1[] = { | 2890 MockWrite data_writes1[] = { |
| 2892 MockWrite("CONNECT www.example.org:443 HTTP/1.1\r\n" | 2891 MockWrite("CONNECT www.example.org:443 HTTP/1.1\r\n" |
| 2893 "Host: www.example.org\r\n" | 2892 "Host: www.example.org\r\n" |
| 2894 "Proxy-Connection: keep-alive\r\n\r\n"), | 2893 "Proxy-Connection: keep-alive\r\n\r\n"), |
| 2895 }; | 2894 }; |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2965 // even if the user cancels the proxy's auth attempt. | 2964 // even if the user cancels the proxy's auth attempt. |
| 2966 TEST_P(HttpNetworkTransactionTest, BasicAuthProxyCancelTunnel) { | 2965 TEST_P(HttpNetworkTransactionTest, BasicAuthProxyCancelTunnel) { |
| 2967 HttpRequestInfo request; | 2966 HttpRequestInfo request; |
| 2968 request.method = "GET"; | 2967 request.method = "GET"; |
| 2969 request.url = GURL("https://www.example.org/"); | 2968 request.url = GURL("https://www.example.org/"); |
| 2970 request.load_flags = 0; | 2969 request.load_flags = 0; |
| 2971 | 2970 |
| 2972 // Configure against proxy server "myproxy:70". | 2971 // Configure against proxy server "myproxy:70". |
| 2973 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); | 2972 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); |
| 2974 | 2973 |
| 2975 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 2974 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 2976 | 2975 |
| 2977 scoped_ptr<HttpTransaction> trans( | 2976 scoped_ptr<HttpTransaction> trans( |
| 2978 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 2977 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 2979 | 2978 |
| 2980 // Since we have proxy, should try to establish tunnel. | 2979 // Since we have proxy, should try to establish tunnel. |
| 2981 MockWrite data_writes[] = { | 2980 MockWrite data_writes[] = { |
| 2982 MockWrite( | 2981 MockWrite( |
| 2983 "CONNECT www.example.org:443 HTTP/1.1\r\n" | 2982 "CONNECT www.example.org:443 HTTP/1.1\r\n" |
| 2984 "Host: www.example.org\r\n" | 2983 "Host: www.example.org\r\n" |
| 2985 "Proxy-Connection: keep-alive\r\n\r\n"), | 2984 "Proxy-Connection: keep-alive\r\n\r\n"), |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3025 // caller when the proxy responds to CONNECT with 407. | 3024 // caller when the proxy responds to CONNECT with 407. |
| 3026 TEST_P(HttpNetworkTransactionTest, SanitizeProxyAuthHeaders) { | 3025 TEST_P(HttpNetworkTransactionTest, SanitizeProxyAuthHeaders) { |
| 3027 HttpRequestInfo request; | 3026 HttpRequestInfo request; |
| 3028 request.method = "GET"; | 3027 request.method = "GET"; |
| 3029 request.url = GURL("https://www.example.org/"); | 3028 request.url = GURL("https://www.example.org/"); |
| 3030 request.load_flags = 0; | 3029 request.load_flags = 0; |
| 3031 | 3030 |
| 3032 // Configure against proxy server "myproxy:70". | 3031 // Configure against proxy server "myproxy:70". |
| 3033 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); | 3032 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); |
| 3034 | 3033 |
| 3035 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 3034 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 3036 | 3035 |
| 3037 scoped_ptr<HttpTransaction> trans( | 3036 scoped_ptr<HttpTransaction> trans( |
| 3038 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 3037 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 3039 | 3038 |
| 3040 // Since we have proxy, should try to establish tunnel. | 3039 // Since we have proxy, should try to establish tunnel. |
| 3041 MockWrite data_writes[] = { | 3040 MockWrite data_writes[] = { |
| 3042 MockWrite( | 3041 MockWrite( |
| 3043 "CONNECT www.example.org:443 HTTP/1.1\r\n" | 3042 "CONNECT www.example.org:443 HTTP/1.1\r\n" |
| 3044 "Host: www.example.org\r\n" | 3043 "Host: www.example.org\r\n" |
| 3045 "Proxy-Connection: keep-alive\r\n\r\n"), | 3044 "Proxy-Connection: keep-alive\r\n\r\n"), |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3086 | 3085 |
| 3087 // Test when a server (non-proxy) returns a 407 (proxy-authenticate). | 3086 // Test when a server (non-proxy) returns a 407 (proxy-authenticate). |
| 3088 // The request should fail with ERR_UNEXPECTED_PROXY_AUTH. | 3087 // The request should fail with ERR_UNEXPECTED_PROXY_AUTH. |
| 3089 TEST_P(HttpNetworkTransactionTest, UnexpectedProxyAuth) { | 3088 TEST_P(HttpNetworkTransactionTest, UnexpectedProxyAuth) { |
| 3090 HttpRequestInfo request; | 3089 HttpRequestInfo request; |
| 3091 request.method = "GET"; | 3090 request.method = "GET"; |
| 3092 request.url = GURL("http://www.example.org/"); | 3091 request.url = GURL("http://www.example.org/"); |
| 3093 request.load_flags = 0; | 3092 request.load_flags = 0; |
| 3094 | 3093 |
| 3095 // We are using a DIRECT connection (i.e. no proxy) for this session. | 3094 // We are using a DIRECT connection (i.e. no proxy) for this session. |
| 3096 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 3095 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 3097 scoped_ptr<HttpTransaction> trans( | 3096 scoped_ptr<HttpTransaction> trans( |
| 3098 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 3097 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 3099 | 3098 |
| 3100 MockWrite data_writes1[] = { | 3099 MockWrite data_writes1[] = { |
| 3101 MockWrite( | 3100 MockWrite( |
| 3102 "GET / HTTP/1.1\r\n" | 3101 "GET / HTTP/1.1\r\n" |
| 3103 "Host: www.example.org\r\n" | 3102 "Host: www.example.org\r\n" |
| 3104 "Connection: keep-alive\r\n\r\n"), | 3103 "Connection: keep-alive\r\n\r\n"), |
| 3105 }; | 3104 }; |
| 3106 | 3105 |
| (...skipping 27 matching lines...) Expand all Loading... |
| 3134 // issued the challenge. | 3133 // issued the challenge. |
| 3135 TEST_P(HttpNetworkTransactionTest, | 3134 TEST_P(HttpNetworkTransactionTest, |
| 3136 HttpsServerRequestsProxyAuthThroughProxy) { | 3135 HttpsServerRequestsProxyAuthThroughProxy) { |
| 3137 HttpRequestInfo request; | 3136 HttpRequestInfo request; |
| 3138 request.method = "GET"; | 3137 request.method = "GET"; |
| 3139 request.url = GURL("https://www.example.org/"); | 3138 request.url = GURL("https://www.example.org/"); |
| 3140 | 3139 |
| 3141 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); | 3140 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); |
| 3142 BoundTestNetLog log; | 3141 BoundTestNetLog log; |
| 3143 session_deps_.net_log = log.bound().net_log(); | 3142 session_deps_.net_log = log.bound().net_log(); |
| 3144 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 3143 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 3145 | 3144 |
| 3146 // Since we have proxy, should try to establish tunnel. | 3145 // Since we have proxy, should try to establish tunnel. |
| 3147 MockWrite data_writes1[] = { | 3146 MockWrite data_writes1[] = { |
| 3148 MockWrite( | 3147 MockWrite( |
| 3149 "CONNECT www.example.org:443 HTTP/1.1\r\n" | 3148 "CONNECT www.example.org:443 HTTP/1.1\r\n" |
| 3150 "Host: www.example.org\r\n" | 3149 "Host: www.example.org\r\n" |
| 3151 "Proxy-Connection: keep-alive\r\n\r\n"), | 3150 "Proxy-Connection: keep-alive\r\n\r\n"), |
| 3152 | 3151 |
| 3153 MockWrite( | 3152 MockWrite( |
| 3154 "GET / HTTP/1.1\r\n" | 3153 "GET / HTTP/1.1\r\n" |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3200 | 3199 |
| 3201 HttpRequestInfo request2; | 3200 HttpRequestInfo request2; |
| 3202 request2.method = "GET"; | 3201 request2.method = "GET"; |
| 3203 request2.url = GURL("https://www.example.org/2"); | 3202 request2.url = GURL("https://www.example.org/2"); |
| 3204 | 3203 |
| 3205 // Configure against proxy server "myproxy:70". | 3204 // Configure against proxy server "myproxy:70". |
| 3206 session_deps_.proxy_service.reset( | 3205 session_deps_.proxy_service.reset( |
| 3207 ProxyService::CreateFixed("PROXY myproxy:70")); | 3206 ProxyService::CreateFixed("PROXY myproxy:70")); |
| 3208 BoundTestNetLog log; | 3207 BoundTestNetLog log; |
| 3209 session_deps_.net_log = log.bound().net_log(); | 3208 session_deps_.net_log = log.bound().net_log(); |
| 3210 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 3209 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 3211 | 3210 |
| 3212 // Since we have proxy, should try to establish tunnel. | 3211 // Since we have proxy, should try to establish tunnel. |
| 3213 MockWrite data_writes1[] = { | 3212 MockWrite data_writes1[] = { |
| 3214 MockWrite( | 3213 MockWrite( |
| 3215 "CONNECT www.example.org:443 HTTP/1.1\r\n" | 3214 "CONNECT www.example.org:443 HTTP/1.1\r\n" |
| 3216 "Host: www.example.org\r\n" | 3215 "Host: www.example.org\r\n" |
| 3217 "Proxy-Connection: keep-alive\r\n\r\n"), | 3216 "Proxy-Connection: keep-alive\r\n\r\n"), |
| 3218 | 3217 |
| 3219 MockWrite( | 3218 MockWrite( |
| 3220 "GET /1 HTTP/1.1\r\n" | 3219 "GET /1 HTTP/1.1\r\n" |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3301 | 3300 |
| 3302 HttpRequestInfo request2; | 3301 HttpRequestInfo request2; |
| 3303 request2.method = "GET"; | 3302 request2.method = "GET"; |
| 3304 request2.url = GURL("https://www.example.org/2"); | 3303 request2.url = GURL("https://www.example.org/2"); |
| 3305 | 3304 |
| 3306 // Configure against proxy server "myproxy:70". | 3305 // Configure against proxy server "myproxy:70". |
| 3307 session_deps_.proxy_service.reset( | 3306 session_deps_.proxy_service.reset( |
| 3308 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70")); | 3307 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70")); |
| 3309 BoundTestNetLog log; | 3308 BoundTestNetLog log; |
| 3310 session_deps_.net_log = log.bound().net_log(); | 3309 session_deps_.net_log = log.bound().net_log(); |
| 3311 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 3310 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 3312 | 3311 |
| 3313 // Since we have proxy, should try to establish tunnel. | 3312 // Since we have proxy, should try to establish tunnel. |
| 3314 MockWrite data_writes1[] = { | 3313 MockWrite data_writes1[] = { |
| 3315 MockWrite( | 3314 MockWrite( |
| 3316 "CONNECT www.example.org:443 HTTP/1.1\r\n" | 3315 "CONNECT www.example.org:443 HTTP/1.1\r\n" |
| 3317 "Host: www.example.org\r\n" | 3316 "Host: www.example.org\r\n" |
| 3318 "Proxy-Connection: keep-alive\r\n\r\n"), | 3317 "Proxy-Connection: keep-alive\r\n\r\n"), |
| 3319 | 3318 |
| 3320 MockWrite( | 3319 MockWrite( |
| 3321 "GET /1 HTTP/1.1\r\n" | 3320 "GET /1 HTTP/1.1\r\n" |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3399 TEST_P(HttpNetworkTransactionTest, HttpsProxyGet) { | 3398 TEST_P(HttpNetworkTransactionTest, HttpsProxyGet) { |
| 3400 HttpRequestInfo request; | 3399 HttpRequestInfo request; |
| 3401 request.method = "GET"; | 3400 request.method = "GET"; |
| 3402 request.url = GURL("http://www.example.org/"); | 3401 request.url = GURL("http://www.example.org/"); |
| 3403 | 3402 |
| 3404 // Configure against https proxy server "proxy:70". | 3403 // Configure against https proxy server "proxy:70". |
| 3405 session_deps_.proxy_service.reset(ProxyService::CreateFixed( | 3404 session_deps_.proxy_service.reset(ProxyService::CreateFixed( |
| 3406 "https://proxy:70")); | 3405 "https://proxy:70")); |
| 3407 BoundTestNetLog log; | 3406 BoundTestNetLog log; |
| 3408 session_deps_.net_log = log.bound().net_log(); | 3407 session_deps_.net_log = log.bound().net_log(); |
| 3409 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 3408 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 3410 | 3409 |
| 3411 // Since we have proxy, should use full url | 3410 // Since we have proxy, should use full url |
| 3412 MockWrite data_writes1[] = { | 3411 MockWrite data_writes1[] = { |
| 3413 MockWrite( | 3412 MockWrite( |
| 3414 "GET http://www.example.org/ HTTP/1.1\r\n" | 3413 "GET http://www.example.org/ HTTP/1.1\r\n" |
| 3415 "Host: www.example.org\r\n" | 3414 "Host: www.example.org\r\n" |
| 3416 "Proxy-Connection: keep-alive\r\n\r\n"), | 3415 "Proxy-Connection: keep-alive\r\n\r\n"), |
| 3417 }; | 3416 }; |
| 3418 | 3417 |
| 3419 MockRead data_reads1[] = { | 3418 MockRead data_reads1[] = { |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3462 HttpRequestInfo request; | 3461 HttpRequestInfo request; |
| 3463 request.method = "GET"; | 3462 request.method = "GET"; |
| 3464 request.url = GURL("http://www.example.org/"); | 3463 request.url = GURL("http://www.example.org/"); |
| 3465 request.load_flags = 0; | 3464 request.load_flags = 0; |
| 3466 | 3465 |
| 3467 // Configure against https proxy server "proxy:70". | 3466 // Configure against https proxy server "proxy:70". |
| 3468 session_deps_.proxy_service.reset(ProxyService::CreateFixed( | 3467 session_deps_.proxy_service.reset(ProxyService::CreateFixed( |
| 3469 "https://proxy:70")); | 3468 "https://proxy:70")); |
| 3470 BoundTestNetLog log; | 3469 BoundTestNetLog log; |
| 3471 session_deps_.net_log = log.bound().net_log(); | 3470 session_deps_.net_log = log.bound().net_log(); |
| 3472 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 3471 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 3473 | 3472 |
| 3474 // fetch http://www.example.org/ via SPDY | 3473 // fetch http://www.example.org/ via SPDY |
| 3475 scoped_ptr<SpdyFrame> req( | 3474 scoped_ptr<SpdyFrame> req( |
| 3476 spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, false)); | 3475 spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, false)); |
| 3477 MockWrite spdy_writes[] = {CreateMockWrite(*req, 0)}; | 3476 MockWrite spdy_writes[] = {CreateMockWrite(*req, 0)}; |
| 3478 | 3477 |
| 3479 scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); | 3478 scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); |
| 3480 scoped_ptr<SpdyFrame> data(spdy_util_.ConstructSpdyBodyFrame(1, true)); | 3479 scoped_ptr<SpdyFrame> data(spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| 3481 MockRead spdy_reads[] = { | 3480 MockRead spdy_reads[] = { |
| 3482 CreateMockRead(*resp, 1), CreateMockRead(*data, 2), MockRead(ASYNC, 0, 3), | 3481 CreateMockRead(*resp, 1), CreateMockRead(*data, 2), MockRead(ASYNC, 0, 3), |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3523 HttpRequestInfo request; | 3522 HttpRequestInfo request; |
| 3524 request.method = "GET"; | 3523 request.method = "GET"; |
| 3525 request.url = GURL("http://www.example.org/"); | 3524 request.url = GURL("http://www.example.org/"); |
| 3526 request.load_flags = 0; | 3525 request.load_flags = 0; |
| 3527 | 3526 |
| 3528 // Configure SPDY proxy server "proxy:70". | 3527 // Configure SPDY proxy server "proxy:70". |
| 3529 session_deps_.proxy_service.reset( | 3528 session_deps_.proxy_service.reset( |
| 3530 ProxyService::CreateFixed("https://proxy:70")); | 3529 ProxyService::CreateFixed("https://proxy:70")); |
| 3531 BoundTestNetLog log; | 3530 BoundTestNetLog log; |
| 3532 session_deps_.net_log = log.bound().net_log(); | 3531 session_deps_.net_log = log.bound().net_log(); |
| 3533 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 3532 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 3534 | 3533 |
| 3535 // Fetch http://www.example.org/ through the SPDY proxy. | 3534 // Fetch http://www.example.org/ through the SPDY proxy. |
| 3536 scoped_ptr<SpdyFrame> req( | 3535 scoped_ptr<SpdyFrame> req( |
| 3537 spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, false)); | 3536 spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, false)); |
| 3538 MockWrite spdy_writes[] = {CreateMockWrite(*req, 0)}; | 3537 MockWrite spdy_writes[] = {CreateMockWrite(*req, 0)}; |
| 3539 | 3538 |
| 3540 scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); | 3539 scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); |
| 3541 scoped_ptr<SpdyFrame> data(spdy_util_.ConstructSpdyBodyFrame(1, true)); | 3540 scoped_ptr<SpdyFrame> data(spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| 3542 MockRead spdy_reads[] = { | 3541 MockRead spdy_reads[] = { |
| 3543 CreateMockRead(*resp, 1), CreateMockRead(*data, 2), MockRead(ASYNC, 0, 3), | 3542 CreateMockRead(*resp, 1), CreateMockRead(*data, 2), MockRead(ASYNC, 0, 3), |
| (...skipping 17 matching lines...) Expand all Loading... |
| 3561 session_deps_.host_resolver->set_ondemand_mode(true); | 3560 session_deps_.host_resolver->set_ondemand_mode(true); |
| 3562 | 3561 |
| 3563 int rv = trans->Start(&request, callback1.callback(), log.bound()); | 3562 int rv = trans->Start(&request, callback1.callback(), log.bound()); |
| 3564 EXPECT_EQ(ERR_IO_PENDING, rv); | 3563 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 3565 | 3564 |
| 3566 // Race a session to the proxy, which completes first. | 3565 // Race a session to the proxy, which completes first. |
| 3567 session_deps_.host_resolver->set_ondemand_mode(false); | 3566 session_deps_.host_resolver->set_ondemand_mode(false); |
| 3568 SpdySessionKey key( | 3567 SpdySessionKey key( |
| 3569 HostPortPair("proxy", 70), ProxyServer::Direct(), PRIVACY_MODE_DISABLED); | 3568 HostPortPair("proxy", 70), ProxyServer::Direct(), PRIVACY_MODE_DISABLED); |
| 3570 base::WeakPtr<SpdySession> spdy_session = | 3569 base::WeakPtr<SpdySession> spdy_session = |
| 3571 CreateSecureSpdySession(session.get(), key, log.bound()); | 3570 CreateSecureSpdySession(session, key, log.bound()); |
| 3572 | 3571 |
| 3573 // Unstall the resolution begun by the transaction. | 3572 // Unstall the resolution begun by the transaction. |
| 3574 session_deps_.host_resolver->set_ondemand_mode(true); | 3573 session_deps_.host_resolver->set_ondemand_mode(true); |
| 3575 session_deps_.host_resolver->ResolveAllPending(); | 3574 session_deps_.host_resolver->ResolveAllPending(); |
| 3576 | 3575 |
| 3577 EXPECT_FALSE(callback1.have_result()); | 3576 EXPECT_FALSE(callback1.have_result()); |
| 3578 rv = callback1.WaitForResult(); | 3577 rv = callback1.WaitForResult(); |
| 3579 EXPECT_EQ(OK, rv); | 3578 EXPECT_EQ(OK, rv); |
| 3580 | 3579 |
| 3581 const HttpResponseInfo* response = trans->GetResponseInfo(); | 3580 const HttpResponseInfo* response = trans->GetResponseInfo(); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 3593 HttpRequestInfo request; | 3592 HttpRequestInfo request; |
| 3594 request.method = "GET"; | 3593 request.method = "GET"; |
| 3595 request.url = GURL("http://www.example.org/"); | 3594 request.url = GURL("http://www.example.org/"); |
| 3596 request.load_flags = 0; | 3595 request.load_flags = 0; |
| 3597 | 3596 |
| 3598 // Configure against https proxy server "myproxy:70". | 3597 // Configure against https proxy server "myproxy:70". |
| 3599 session_deps_.proxy_service.reset( | 3598 session_deps_.proxy_service.reset( |
| 3600 ProxyService::CreateFixed("https://myproxy:70")); | 3599 ProxyService::CreateFixed("https://myproxy:70")); |
| 3601 BoundTestNetLog log; | 3600 BoundTestNetLog log; |
| 3602 session_deps_.net_log = log.bound().net_log(); | 3601 session_deps_.net_log = log.bound().net_log(); |
| 3603 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 3602 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 3604 | 3603 |
| 3605 // The first request will be a bare GET, the second request will be a | 3604 // The first request will be a bare GET, the second request will be a |
| 3606 // GET with a Proxy-Authorization header. | 3605 // GET with a Proxy-Authorization header. |
| 3607 scoped_ptr<SpdyFrame> req_get( | 3606 scoped_ptr<SpdyFrame> req_get( |
| 3608 spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, false)); | 3607 spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, false)); |
| 3609 const char* const kExtraAuthorizationHeaders[] = { | 3608 const char* const kExtraAuthorizationHeaders[] = { |
| 3610 "proxy-authorization", "Basic Zm9vOmJhcg==" | 3609 "proxy-authorization", "Basic Zm9vOmJhcg==" |
| 3611 }; | 3610 }; |
| 3612 scoped_ptr<SpdyFrame> req_get_authorization( | 3611 scoped_ptr<SpdyFrame> req_get_authorization( |
| 3613 spdy_util_.ConstructSpdyGet(kExtraAuthorizationHeaders, | 3612 spdy_util_.ConstructSpdyGet(kExtraAuthorizationHeaders, |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3694 HttpRequestInfo request; | 3693 HttpRequestInfo request; |
| 3695 request.method = "GET"; | 3694 request.method = "GET"; |
| 3696 request.url = GURL("https://www.example.org/"); | 3695 request.url = GURL("https://www.example.org/"); |
| 3697 request.load_flags = 0; | 3696 request.load_flags = 0; |
| 3698 | 3697 |
| 3699 // Configure against https proxy server "proxy:70". | 3698 // Configure against https proxy server "proxy:70". |
| 3700 session_deps_.proxy_service.reset(ProxyService::CreateFixed( | 3699 session_deps_.proxy_service.reset(ProxyService::CreateFixed( |
| 3701 "https://proxy:70")); | 3700 "https://proxy:70")); |
| 3702 BoundTestNetLog log; | 3701 BoundTestNetLog log; |
| 3703 session_deps_.net_log = log.bound().net_log(); | 3702 session_deps_.net_log = log.bound().net_log(); |
| 3704 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 3703 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 3705 | 3704 |
| 3706 scoped_ptr<HttpTransaction> trans( | 3705 scoped_ptr<HttpTransaction> trans( |
| 3707 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 3706 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 3708 | 3707 |
| 3709 // CONNECT to www.example.org:443 via SPDY | 3708 // CONNECT to www.example.org:443 via SPDY |
| 3710 scoped_ptr<SpdyFrame> connect(spdy_util_.ConstructSpdyConnect( | 3709 scoped_ptr<SpdyFrame> connect(spdy_util_.ConstructSpdyConnect( |
| 3711 NULL, 0, 1, LOWEST, HostPortPair("www.example.org", 443))); | 3710 NULL, 0, 1, LOWEST, HostPortPair("www.example.org", 443))); |
| 3712 // fetch https://www.example.org/ via HTTP | 3711 // fetch https://www.example.org/ via HTTP |
| 3713 | 3712 |
| 3714 const char get[] = | 3713 const char get[] = |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3779 HttpRequestInfo request; | 3778 HttpRequestInfo request; |
| 3780 request.method = "GET"; | 3779 request.method = "GET"; |
| 3781 request.url = GURL("https://www.example.org/"); | 3780 request.url = GURL("https://www.example.org/"); |
| 3782 request.load_flags = 0; | 3781 request.load_flags = 0; |
| 3783 | 3782 |
| 3784 // Configure against https proxy server "proxy:70". | 3783 // Configure against https proxy server "proxy:70". |
| 3785 session_deps_.proxy_service.reset(ProxyService::CreateFixed( | 3784 session_deps_.proxy_service.reset(ProxyService::CreateFixed( |
| 3786 "https://proxy:70")); | 3785 "https://proxy:70")); |
| 3787 BoundTestNetLog log; | 3786 BoundTestNetLog log; |
| 3788 session_deps_.net_log = log.bound().net_log(); | 3787 session_deps_.net_log = log.bound().net_log(); |
| 3789 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 3788 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 3790 | 3789 |
| 3791 scoped_ptr<HttpTransaction> trans( | 3790 scoped_ptr<HttpTransaction> trans( |
| 3792 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 3791 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 3793 | 3792 |
| 3794 // CONNECT to www.example.org:443 via SPDY | 3793 // CONNECT to www.example.org:443 via SPDY |
| 3795 scoped_ptr<SpdyFrame> connect(spdy_util_.ConstructSpdyConnect( | 3794 scoped_ptr<SpdyFrame> connect(spdy_util_.ConstructSpdyConnect( |
| 3796 NULL, 0, 1, LOWEST, HostPortPair("www.example.org", 443))); | 3795 NULL, 0, 1, LOWEST, HostPortPair("www.example.org", 443))); |
| 3797 // fetch https://www.example.org/ via SPDY | 3796 // fetch https://www.example.org/ via SPDY |
| 3798 const char kMyUrl[] = "https://www.example.org/"; | 3797 const char kMyUrl[] = "https://www.example.org/"; |
| 3799 scoped_ptr<SpdyFrame> get( | 3798 scoped_ptr<SpdyFrame> get( |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3871 HttpRequestInfo request; | 3870 HttpRequestInfo request; |
| 3872 request.method = "GET"; | 3871 request.method = "GET"; |
| 3873 request.url = GURL("https://www.example.org/"); | 3872 request.url = GURL("https://www.example.org/"); |
| 3874 request.load_flags = 0; | 3873 request.load_flags = 0; |
| 3875 | 3874 |
| 3876 // Configure against https proxy server "proxy:70". | 3875 // Configure against https proxy server "proxy:70". |
| 3877 session_deps_.proxy_service.reset(ProxyService::CreateFixed( | 3876 session_deps_.proxy_service.reset(ProxyService::CreateFixed( |
| 3878 "https://proxy:70")); | 3877 "https://proxy:70")); |
| 3879 BoundTestNetLog log; | 3878 BoundTestNetLog log; |
| 3880 session_deps_.net_log = log.bound().net_log(); | 3879 session_deps_.net_log = log.bound().net_log(); |
| 3881 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 3880 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 3882 | 3881 |
| 3883 scoped_ptr<HttpTransaction> trans( | 3882 scoped_ptr<HttpTransaction> trans( |
| 3884 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 3883 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 3885 | 3884 |
| 3886 // CONNECT to www.example.org:443 via SPDY | 3885 // CONNECT to www.example.org:443 via SPDY |
| 3887 scoped_ptr<SpdyFrame> connect(spdy_util_.ConstructSpdyConnect( | 3886 scoped_ptr<SpdyFrame> connect(spdy_util_.ConstructSpdyConnect( |
| 3888 NULL, 0, 1, LOWEST, HostPortPair("www.example.org", 443))); | 3887 NULL, 0, 1, LOWEST, HostPortPair("www.example.org", 443))); |
| 3889 scoped_ptr<SpdyFrame> get( | 3888 scoped_ptr<SpdyFrame> get( |
| 3890 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); | 3889 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); |
| 3891 | 3890 |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3923 | 3922 |
| 3924 // Test load timing in the case of two HTTPS (non-SPDY) requests through a SPDY | 3923 // Test load timing in the case of two HTTPS (non-SPDY) requests through a SPDY |
| 3925 // HTTPS Proxy to different servers. | 3924 // HTTPS Proxy to different servers. |
| 3926 TEST_P(HttpNetworkTransactionTest, | 3925 TEST_P(HttpNetworkTransactionTest, |
| 3927 HttpsProxySpdyConnectHttpsLoadTimingTwoRequestsTwoServers) { | 3926 HttpsProxySpdyConnectHttpsLoadTimingTwoRequestsTwoServers) { |
| 3928 // Configure against https proxy server "proxy:70". | 3927 // Configure against https proxy server "proxy:70". |
| 3929 session_deps_.proxy_service.reset(ProxyService::CreateFixed( | 3928 session_deps_.proxy_service.reset(ProxyService::CreateFixed( |
| 3930 "https://proxy:70")); | 3929 "https://proxy:70")); |
| 3931 BoundTestNetLog log; | 3930 BoundTestNetLog log; |
| 3932 session_deps_.net_log = log.bound().net_log(); | 3931 session_deps_.net_log = log.bound().net_log(); |
| 3933 scoped_ptr<HttpNetworkSession> session( | 3932 scoped_refptr<HttpNetworkSession> session( |
| 3934 SpdySessionDependencies::SpdyCreateSession(&session_deps_)); | 3933 SpdySessionDependencies::SpdyCreateSession(&session_deps_)); |
| 3935 | 3934 |
| 3936 HttpRequestInfo request1; | 3935 HttpRequestInfo request1; |
| 3937 request1.method = "GET"; | 3936 request1.method = "GET"; |
| 3938 request1.url = GURL("https://www.example.org/"); | 3937 request1.url = GURL("https://www.example.org/"); |
| 3939 request1.load_flags = 0; | 3938 request1.load_flags = 0; |
| 3940 | 3939 |
| 3941 HttpRequestInfo request2; | 3940 HttpRequestInfo request2; |
| 3942 request2.method = "GET"; | 3941 request2.method = "GET"; |
| 3943 request2.url = GURL("https://mail.example.org/"); | 3942 request2.url = GURL("https://mail.example.org/"); |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4066 | 4065 |
| 4067 // Test load timing in the case of two HTTPS (non-SPDY) requests through a SPDY | 4066 // Test load timing in the case of two HTTPS (non-SPDY) requests through a SPDY |
| 4068 // HTTPS Proxy to the same server. | 4067 // HTTPS Proxy to the same server. |
| 4069 TEST_P(HttpNetworkTransactionTest, | 4068 TEST_P(HttpNetworkTransactionTest, |
| 4070 HttpsProxySpdyConnectHttpsLoadTimingTwoRequestsSameServer) { | 4069 HttpsProxySpdyConnectHttpsLoadTimingTwoRequestsSameServer) { |
| 4071 // Configure against https proxy server "proxy:70". | 4070 // Configure against https proxy server "proxy:70". |
| 4072 session_deps_.proxy_service.reset(ProxyService::CreateFixed( | 4071 session_deps_.proxy_service.reset(ProxyService::CreateFixed( |
| 4073 "https://proxy:70")); | 4072 "https://proxy:70")); |
| 4074 BoundTestNetLog log; | 4073 BoundTestNetLog log; |
| 4075 session_deps_.net_log = log.bound().net_log(); | 4074 session_deps_.net_log = log.bound().net_log(); |
| 4076 scoped_ptr<HttpNetworkSession> session( | 4075 scoped_refptr<HttpNetworkSession> session( |
| 4077 SpdySessionDependencies::SpdyCreateSession(&session_deps_)); | 4076 SpdySessionDependencies::SpdyCreateSession(&session_deps_)); |
| 4078 | 4077 |
| 4079 HttpRequestInfo request1; | 4078 HttpRequestInfo request1; |
| 4080 request1.method = "GET"; | 4079 request1.method = "GET"; |
| 4081 request1.url = GURL("https://www.example.org/"); | 4080 request1.url = GURL("https://www.example.org/"); |
| 4082 request1.load_flags = 0; | 4081 request1.load_flags = 0; |
| 4083 | 4082 |
| 4084 HttpRequestInfo request2; | 4083 HttpRequestInfo request2; |
| 4085 request2.method = "GET"; | 4084 request2.method = "GET"; |
| 4086 request2.url = GURL("https://www.example.org/2"); | 4085 request2.url = GURL("https://www.example.org/2"); |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4190 } | 4189 } |
| 4191 | 4190 |
| 4192 // Test load timing in the case of of two HTTP requests through a SPDY HTTPS | 4191 // Test load timing in the case of of two HTTP requests through a SPDY HTTPS |
| 4193 // Proxy to different servers. | 4192 // Proxy to different servers. |
| 4194 TEST_P(HttpNetworkTransactionTest, HttpsProxySpdyLoadTimingTwoHttpRequests) { | 4193 TEST_P(HttpNetworkTransactionTest, HttpsProxySpdyLoadTimingTwoHttpRequests) { |
| 4195 // Configure against https proxy server "proxy:70". | 4194 // Configure against https proxy server "proxy:70". |
| 4196 session_deps_.proxy_service.reset(ProxyService::CreateFixed( | 4195 session_deps_.proxy_service.reset(ProxyService::CreateFixed( |
| 4197 "https://proxy:70")); | 4196 "https://proxy:70")); |
| 4198 BoundTestNetLog log; | 4197 BoundTestNetLog log; |
| 4199 session_deps_.net_log = log.bound().net_log(); | 4198 session_deps_.net_log = log.bound().net_log(); |
| 4200 scoped_ptr<HttpNetworkSession> session( | 4199 scoped_refptr<HttpNetworkSession> session( |
| 4201 SpdySessionDependencies::SpdyCreateSession(&session_deps_)); | 4200 SpdySessionDependencies::SpdyCreateSession(&session_deps_)); |
| 4202 | 4201 |
| 4203 HttpRequestInfo request1; | 4202 HttpRequestInfo request1; |
| 4204 request1.method = "GET"; | 4203 request1.method = "GET"; |
| 4205 request1.url = GURL("http://www.example.org/"); | 4204 request1.url = GURL("http://www.example.org/"); |
| 4206 request1.load_flags = 0; | 4205 request1.load_flags = 0; |
| 4207 | 4206 |
| 4208 HttpRequestInfo request2; | 4207 HttpRequestInfo request2; |
| 4209 request2.method = "GET"; | 4208 request2.method = "GET"; |
| 4210 request2.url = GURL("http://mail.example.org/"); | 4209 request2.url = GURL("http://mail.example.org/"); |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4297 request.method = "GET"; | 4296 request.method = "GET"; |
| 4298 request.url = GURL("http://www.example.org/"); | 4297 request.url = GURL("http://www.example.org/"); |
| 4299 // when the no authentication data flag is set. | 4298 // when the no authentication data flag is set. |
| 4300 request.load_flags = LOAD_DO_NOT_SEND_AUTH_DATA; | 4299 request.load_flags = LOAD_DO_NOT_SEND_AUTH_DATA; |
| 4301 | 4300 |
| 4302 // Configure against https proxy server "myproxy:70". | 4301 // Configure against https proxy server "myproxy:70". |
| 4303 session_deps_.proxy_service.reset( | 4302 session_deps_.proxy_service.reset( |
| 4304 ProxyService::CreateFixed("https://myproxy:70")); | 4303 ProxyService::CreateFixed("https://myproxy:70")); |
| 4305 BoundTestNetLog log; | 4304 BoundTestNetLog log; |
| 4306 session_deps_.net_log = log.bound().net_log(); | 4305 session_deps_.net_log = log.bound().net_log(); |
| 4307 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 4306 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 4308 | 4307 |
| 4309 // Since we have proxy, should use full url | 4308 // Since we have proxy, should use full url |
| 4310 MockWrite data_writes1[] = { | 4309 MockWrite data_writes1[] = { |
| 4311 MockWrite( | 4310 MockWrite( |
| 4312 "GET http://www.example.org/ HTTP/1.1\r\n" | 4311 "GET http://www.example.org/ HTTP/1.1\r\n" |
| 4313 "Host: www.example.org\r\n" | 4312 "Host: www.example.org\r\n" |
| 4314 "Proxy-Connection: keep-alive\r\n\r\n"), | 4313 "Proxy-Connection: keep-alive\r\n\r\n"), |
| 4315 | 4314 |
| 4316 // After calling trans->RestartWithAuth(), this is the request we should | 4315 // After calling trans->RestartWithAuth(), this is the request we should |
| 4317 // be issuing -- the final header line contains the credentials. | 4316 // be issuing -- the final header line contains the credentials. |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4394 | 4393 |
| 4395 void HttpNetworkTransactionTest::ConnectStatusHelperWithExpectedStatus( | 4394 void HttpNetworkTransactionTest::ConnectStatusHelperWithExpectedStatus( |
| 4396 const MockRead& status, int expected_status) { | 4395 const MockRead& status, int expected_status) { |
| 4397 HttpRequestInfo request; | 4396 HttpRequestInfo request; |
| 4398 request.method = "GET"; | 4397 request.method = "GET"; |
| 4399 request.url = GURL("https://www.example.org/"); | 4398 request.url = GURL("https://www.example.org/"); |
| 4400 request.load_flags = 0; | 4399 request.load_flags = 0; |
| 4401 | 4400 |
| 4402 // Configure against proxy server "myproxy:70". | 4401 // Configure against proxy server "myproxy:70". |
| 4403 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); | 4402 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); |
| 4404 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 4403 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 4405 | 4404 |
| 4406 // Since we have proxy, should try to establish tunnel. | 4405 // Since we have proxy, should try to establish tunnel. |
| 4407 MockWrite data_writes[] = { | 4406 MockWrite data_writes[] = { |
| 4408 MockWrite( | 4407 MockWrite( |
| 4409 "CONNECT www.example.org:443 HTTP/1.1\r\n" | 4408 "CONNECT www.example.org:443 HTTP/1.1\r\n" |
| 4410 "Host: www.example.org\r\n" | 4409 "Host: www.example.org\r\n" |
| 4411 "Proxy-Connection: keep-alive\r\n\r\n"), | 4410 "Proxy-Connection: keep-alive\r\n\r\n"), |
| 4412 }; | 4411 }; |
| 4413 | 4412 |
| 4414 MockRead data_reads[] = { | 4413 MockRead data_reads[] = { |
| (...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4612 // authentication. Again, this uses basic auth for both since that is | 4611 // authentication. Again, this uses basic auth for both since that is |
| 4613 // the simplest to mock. | 4612 // the simplest to mock. |
| 4614 TEST_P(HttpNetworkTransactionTest, BasicAuthProxyThenServer) { | 4613 TEST_P(HttpNetworkTransactionTest, BasicAuthProxyThenServer) { |
| 4615 HttpRequestInfo request; | 4614 HttpRequestInfo request; |
| 4616 request.method = "GET"; | 4615 request.method = "GET"; |
| 4617 request.url = GURL("http://www.example.org/"); | 4616 request.url = GURL("http://www.example.org/"); |
| 4618 request.load_flags = 0; | 4617 request.load_flags = 0; |
| 4619 | 4618 |
| 4620 // Configure against proxy server "myproxy:70". | 4619 // Configure against proxy server "myproxy:70". |
| 4621 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); | 4620 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); |
| 4622 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 4621 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 4623 | 4622 |
| 4624 scoped_ptr<HttpTransaction> trans( | 4623 scoped_ptr<HttpTransaction> trans( |
| 4625 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 4624 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 4626 | 4625 |
| 4627 MockWrite data_writes1[] = { | 4626 MockWrite data_writes1[] = { |
| 4628 MockWrite( | 4627 MockWrite( |
| 4629 "GET http://www.example.org/ HTTP/1.1\r\n" | 4628 "GET http://www.example.org/ HTTP/1.1\r\n" |
| 4630 "Host: www.example.org\r\n" | 4629 "Host: www.example.org\r\n" |
| 4631 "Proxy-Connection: keep-alive\r\n\r\n"), | 4630 "Proxy-Connection: keep-alive\r\n\r\n"), |
| 4632 }; | 4631 }; |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4748 HttpRequestInfo request; | 4747 HttpRequestInfo request; |
| 4749 request.method = "GET"; | 4748 request.method = "GET"; |
| 4750 request.url = GURL("http://172.22.68.17/kids/login.aspx"); | 4749 request.url = GURL("http://172.22.68.17/kids/login.aspx"); |
| 4751 | 4750 |
| 4752 // Ensure load is not disrupted by flags which suppress behaviour specific | 4751 // Ensure load is not disrupted by flags which suppress behaviour specific |
| 4753 // to other auth schemes. | 4752 // to other auth schemes. |
| 4754 request.load_flags = LOAD_DO_NOT_USE_EMBEDDED_IDENTITY; | 4753 request.load_flags = LOAD_DO_NOT_USE_EMBEDDED_IDENTITY; |
| 4755 | 4754 |
| 4756 HttpAuthHandlerNTLM::ScopedProcSetter proc_setter(MockGenerateRandom1, | 4755 HttpAuthHandlerNTLM::ScopedProcSetter proc_setter(MockGenerateRandom1, |
| 4757 MockGetHostName); | 4756 MockGetHostName); |
| 4758 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 4757 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 4759 | 4758 |
| 4760 MockWrite data_writes1[] = { | 4759 MockWrite data_writes1[] = { |
| 4761 MockWrite("GET /kids/login.aspx HTTP/1.1\r\n" | 4760 MockWrite("GET /kids/login.aspx HTTP/1.1\r\n" |
| 4762 "Host: 172.22.68.17\r\n" | 4761 "Host: 172.22.68.17\r\n" |
| 4763 "Connection: keep-alive\r\n\r\n"), | 4762 "Connection: keep-alive\r\n\r\n"), |
| 4764 }; | 4763 }; |
| 4765 | 4764 |
| 4766 MockRead data_reads1[] = { | 4765 MockRead data_reads1[] = { |
| 4767 MockRead("HTTP/1.1 401 Access Denied\r\n"), | 4766 MockRead("HTTP/1.1 401 Access Denied\r\n"), |
| 4768 // Negotiate and NTLM are often requested together. However, we only want | 4767 // Negotiate and NTLM are often requested together. However, we only want |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4877 | 4876 |
| 4878 // Enter a wrong password, and then the correct one. | 4877 // Enter a wrong password, and then the correct one. |
| 4879 TEST_P(HttpNetworkTransactionTest, NTLMAuth2) { | 4878 TEST_P(HttpNetworkTransactionTest, NTLMAuth2) { |
| 4880 HttpRequestInfo request; | 4879 HttpRequestInfo request; |
| 4881 request.method = "GET"; | 4880 request.method = "GET"; |
| 4882 request.url = GURL("http://172.22.68.17/kids/login.aspx"); | 4881 request.url = GURL("http://172.22.68.17/kids/login.aspx"); |
| 4883 request.load_flags = 0; | 4882 request.load_flags = 0; |
| 4884 | 4883 |
| 4885 HttpAuthHandlerNTLM::ScopedProcSetter proc_setter(MockGenerateRandom2, | 4884 HttpAuthHandlerNTLM::ScopedProcSetter proc_setter(MockGenerateRandom2, |
| 4886 MockGetHostName); | 4885 MockGetHostName); |
| 4887 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 4886 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 4888 | 4887 |
| 4889 MockWrite data_writes1[] = { | 4888 MockWrite data_writes1[] = { |
| 4890 MockWrite("GET /kids/login.aspx HTTP/1.1\r\n" | 4889 MockWrite("GET /kids/login.aspx HTTP/1.1\r\n" |
| 4891 "Host: 172.22.68.17\r\n" | 4890 "Host: 172.22.68.17\r\n" |
| 4892 "Connection: keep-alive\r\n\r\n"), | 4891 "Connection: keep-alive\r\n\r\n"), |
| 4893 }; | 4892 }; |
| 4894 | 4893 |
| 4895 MockRead data_reads1[] = { | 4894 MockRead data_reads1[] = { |
| 4896 MockRead("HTTP/1.1 401 Access Denied\r\n"), | 4895 MockRead("HTTP/1.1 401 Access Denied\r\n"), |
| 4897 // Negotiate and NTLM are often requested together. However, we only want | 4896 // Negotiate and NTLM are often requested together. However, we only want |
| (...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5077 | 5076 |
| 5078 // Test reading a server response which has only headers, and no body. | 5077 // Test reading a server response which has only headers, and no body. |
| 5079 // After some maximum number of bytes is consumed, the transaction should | 5078 // After some maximum number of bytes is consumed, the transaction should |
| 5080 // fail with ERR_RESPONSE_HEADERS_TOO_BIG. | 5079 // fail with ERR_RESPONSE_HEADERS_TOO_BIG. |
| 5081 TEST_P(HttpNetworkTransactionTest, LargeHeadersNoBody) { | 5080 TEST_P(HttpNetworkTransactionTest, LargeHeadersNoBody) { |
| 5082 HttpRequestInfo request; | 5081 HttpRequestInfo request; |
| 5083 request.method = "GET"; | 5082 request.method = "GET"; |
| 5084 request.url = GURL("http://www.example.org/"); | 5083 request.url = GURL("http://www.example.org/"); |
| 5085 request.load_flags = 0; | 5084 request.load_flags = 0; |
| 5086 | 5085 |
| 5087 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 5086 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 5088 scoped_ptr<HttpTransaction> trans( | 5087 scoped_ptr<HttpTransaction> trans( |
| 5089 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 5088 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 5090 | 5089 |
| 5091 // Respond with 300 kb of headers (we should fail after 256 kb). | 5090 // Respond with 300 kb of headers (we should fail after 256 kb). |
| 5092 std::string large_headers_string; | 5091 std::string large_headers_string; |
| 5093 FillLargeHeadersString(&large_headers_string, 300 * 1024); | 5092 FillLargeHeadersString(&large_headers_string, 300 * 1024); |
| 5094 | 5093 |
| 5095 MockRead data_reads[] = { | 5094 MockRead data_reads[] = { |
| 5096 MockRead("HTTP/1.0 200 OK\r\n"), | 5095 MockRead("HTTP/1.0 200 OK\r\n"), |
| 5097 MockRead(ASYNC, large_headers_string.data(), large_headers_string.size()), | 5096 MockRead(ASYNC, large_headers_string.data(), large_headers_string.size()), |
| (...skipping 18 matching lines...) Expand all Loading... |
| 5116 TEST_P(HttpNetworkTransactionTest, | 5115 TEST_P(HttpNetworkTransactionTest, |
| 5117 DontRecycleTransportSocketForSSLTunnel) { | 5116 DontRecycleTransportSocketForSSLTunnel) { |
| 5118 HttpRequestInfo request; | 5117 HttpRequestInfo request; |
| 5119 request.method = "GET"; | 5118 request.method = "GET"; |
| 5120 request.url = GURL("https://www.example.org/"); | 5119 request.url = GURL("https://www.example.org/"); |
| 5121 request.load_flags = 0; | 5120 request.load_flags = 0; |
| 5122 | 5121 |
| 5123 // Configure against proxy server "myproxy:70". | 5122 // Configure against proxy server "myproxy:70". |
| 5124 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); | 5123 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); |
| 5125 | 5124 |
| 5126 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 5125 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 5127 | 5126 |
| 5128 scoped_ptr<HttpTransaction> trans( | 5127 scoped_ptr<HttpTransaction> trans( |
| 5129 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 5128 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 5130 | 5129 |
| 5131 // Since we have proxy, should try to establish tunnel. | 5130 // Since we have proxy, should try to establish tunnel. |
| 5132 MockWrite data_writes1[] = { | 5131 MockWrite data_writes1[] = { |
| 5133 MockWrite( | 5132 MockWrite( |
| 5134 "CONNECT www.example.org:443 HTTP/1.1\r\n" | 5133 "CONNECT www.example.org:443 HTTP/1.1\r\n" |
| 5135 "Host: www.example.org\r\n" | 5134 "Host: www.example.org\r\n" |
| 5136 "Proxy-Connection: keep-alive\r\n\r\n"), | 5135 "Proxy-Connection: keep-alive\r\n\r\n"), |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5170 EXPECT_EQ(0, GetIdleSocketCountInTransportSocketPool(session.get())); | 5169 EXPECT_EQ(0, GetIdleSocketCountInTransportSocketPool(session.get())); |
| 5171 } | 5170 } |
| 5172 | 5171 |
| 5173 // Make sure that we recycle a socket after reading all of the response body. | 5172 // Make sure that we recycle a socket after reading all of the response body. |
| 5174 TEST_P(HttpNetworkTransactionTest, RecycleSocket) { | 5173 TEST_P(HttpNetworkTransactionTest, RecycleSocket) { |
| 5175 HttpRequestInfo request; | 5174 HttpRequestInfo request; |
| 5176 request.method = "GET"; | 5175 request.method = "GET"; |
| 5177 request.url = GURL("http://www.example.org/"); | 5176 request.url = GURL("http://www.example.org/"); |
| 5178 request.load_flags = 0; | 5177 request.load_flags = 0; |
| 5179 | 5178 |
| 5180 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 5179 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 5181 | 5180 |
| 5182 scoped_ptr<HttpTransaction> trans( | 5181 scoped_ptr<HttpTransaction> trans( |
| 5183 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 5182 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 5184 | 5183 |
| 5185 MockRead data_reads[] = { | 5184 MockRead data_reads[] = { |
| 5186 // A part of the response body is received with the response headers. | 5185 // A part of the response body is received with the response headers. |
| 5187 MockRead("HTTP/1.1 200 OK\r\nContent-Length: 11\r\n\r\nhel"), | 5186 MockRead("HTTP/1.1 200 OK\r\nContent-Length: 11\r\n\r\nhel"), |
| 5188 // The rest of the response body is received in two parts. | 5187 // The rest of the response body is received in two parts. |
| 5189 MockRead("lo"), | 5188 MockRead("lo"), |
| 5190 MockRead(" world"), | 5189 MockRead(" world"), |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5249 | 5248 |
| 5250 SSLSocketDataProvider ssl(ASYNC, OK); | 5249 SSLSocketDataProvider ssl(ASYNC, OK); |
| 5251 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 5250 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
| 5252 | 5251 |
| 5253 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 5252 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
| 5254 data_writes, arraysize(data_writes)); | 5253 data_writes, arraysize(data_writes)); |
| 5255 session_deps_.socket_factory->AddSocketDataProvider(&data); | 5254 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 5256 | 5255 |
| 5257 TestCompletionCallback callback; | 5256 TestCompletionCallback callback; |
| 5258 | 5257 |
| 5259 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 5258 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 5260 scoped_ptr<HttpTransaction> trans( | 5259 scoped_ptr<HttpTransaction> trans( |
| 5261 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 5260 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 5262 | 5261 |
| 5263 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 5262 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 5264 | 5263 |
| 5265 EXPECT_EQ(ERR_IO_PENDING, rv); | 5264 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 5266 EXPECT_EQ(OK, callback.WaitForResult()); | 5265 EXPECT_EQ(OK, callback.WaitForResult()); |
| 5267 | 5266 |
| 5268 const HttpResponseInfo* response = trans->GetResponseInfo(); | 5267 const HttpResponseInfo* response = trans->GetResponseInfo(); |
| 5269 ASSERT_TRUE(response != NULL); | 5268 ASSERT_TRUE(response != NULL); |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5319 | 5318 |
| 5320 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 5319 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
| 5321 data_writes, arraysize(data_writes)); | 5320 data_writes, arraysize(data_writes)); |
| 5322 StaticSocketDataProvider data2(data_reads, arraysize(data_reads), | 5321 StaticSocketDataProvider data2(data_reads, arraysize(data_reads), |
| 5323 data_writes, arraysize(data_writes)); | 5322 data_writes, arraysize(data_writes)); |
| 5324 session_deps_.socket_factory->AddSocketDataProvider(&data); | 5323 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 5325 session_deps_.socket_factory->AddSocketDataProvider(&data2); | 5324 session_deps_.socket_factory->AddSocketDataProvider(&data2); |
| 5326 | 5325 |
| 5327 TestCompletionCallback callback; | 5326 TestCompletionCallback callback; |
| 5328 | 5327 |
| 5329 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 5328 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 5330 scoped_ptr<HttpTransaction> trans( | 5329 scoped_ptr<HttpTransaction> trans( |
| 5331 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 5330 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 5332 | 5331 |
| 5333 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 5332 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 5334 | 5333 |
| 5335 EXPECT_EQ(ERR_IO_PENDING, rv); | 5334 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 5336 EXPECT_EQ(OK, callback.WaitForResult()); | 5335 EXPECT_EQ(OK, callback.WaitForResult()); |
| 5337 | 5336 |
| 5338 const HttpResponseInfo* response = trans->GetResponseInfo(); | 5337 const HttpResponseInfo* response = trans->GetResponseInfo(); |
| 5339 ASSERT_TRUE(response != NULL); | 5338 ASSERT_TRUE(response != NULL); |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5387 TEST_P(HttpNetworkTransactionTest, RecycleSocketAfterZeroContentLength) { | 5386 TEST_P(HttpNetworkTransactionTest, RecycleSocketAfterZeroContentLength) { |
| 5388 HttpRequestInfo request; | 5387 HttpRequestInfo request; |
| 5389 request.method = "GET"; | 5388 request.method = "GET"; |
| 5390 request.url = GURL( | 5389 request.url = GURL( |
| 5391 "http://www.example.org/csi?v=3&s=web&action=&" | 5390 "http://www.example.org/csi?v=3&s=web&action=&" |
| 5392 "tran=undefined&ei=mAXcSeegAo-SMurloeUN&" | 5391 "tran=undefined&ei=mAXcSeegAo-SMurloeUN&" |
| 5393 "e=17259,18167,19592,19773,19981,20133,20173,20233&" | 5392 "e=17259,18167,19592,19773,19981,20133,20173,20233&" |
| 5394 "rt=prt.2642,ol.2649,xjs.2951"); | 5393 "rt=prt.2642,ol.2649,xjs.2951"); |
| 5395 request.load_flags = 0; | 5394 request.load_flags = 0; |
| 5396 | 5395 |
| 5397 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 5396 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 5398 | 5397 |
| 5399 scoped_ptr<HttpTransaction> trans( | 5398 scoped_ptr<HttpTransaction> trans( |
| 5400 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 5399 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 5401 | 5400 |
| 5402 MockRead data_reads[] = { | 5401 MockRead data_reads[] = { |
| 5403 MockRead("HTTP/1.1 204 No Content\r\n" | 5402 MockRead("HTTP/1.1 204 No Content\r\n" |
| 5404 "Content-Length: 0\r\n" | 5403 "Content-Length: 0\r\n" |
| 5405 "Content-Type: text/html\r\n\r\n"), | 5404 "Content-Type: text/html\r\n\r\n"), |
| 5406 MockRead("junk"), // Should not be read!! | 5405 MockRead("junk"), // Should not be read!! |
| 5407 MockRead(SYNCHRONOUS, OK), | 5406 MockRead(SYNCHRONOUS, OK), |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5453 request[0].load_flags = 0; | 5452 request[0].load_flags = 0; |
| 5454 // Transaction 2: a POST request. Reuses the socket kept alive from | 5453 // Transaction 2: a POST request. Reuses the socket kept alive from |
| 5455 // transaction 1. The first attempts fails when writing the POST data. | 5454 // transaction 1. The first attempts fails when writing the POST data. |
| 5456 // This causes the transaction to retry with a new socket. The second | 5455 // This causes the transaction to retry with a new socket. The second |
| 5457 // attempt succeeds. | 5456 // attempt succeeds. |
| 5458 request[1].method = "POST"; | 5457 request[1].method = "POST"; |
| 5459 request[1].url = GURL("http://www.google.com/login.cgi"); | 5458 request[1].url = GURL("http://www.google.com/login.cgi"); |
| 5460 request[1].upload_data_stream = &upload_data_stream; | 5459 request[1].upload_data_stream = &upload_data_stream; |
| 5461 request[1].load_flags = 0; | 5460 request[1].load_flags = 0; |
| 5462 | 5461 |
| 5463 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 5462 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 5464 | 5463 |
| 5465 // The first socket is used for transaction 1 and the first attempt of | 5464 // The first socket is used for transaction 1 and the first attempt of |
| 5466 // transaction 2. | 5465 // transaction 2. |
| 5467 | 5466 |
| 5468 // The response of transaction 1. | 5467 // The response of transaction 1. |
| 5469 MockRead data_reads1[] = { | 5468 MockRead data_reads1[] = { |
| 5470 MockRead("HTTP/1.1 200 OK\r\nContent-Length: 11\r\n\r\n"), | 5469 MockRead("HTTP/1.1 200 OK\r\nContent-Length: 11\r\n\r\n"), |
| 5471 MockRead("hello world"), | 5470 MockRead("hello world"), |
| 5472 MockRead(SYNCHRONOUS, OK), | 5471 MockRead(SYNCHRONOUS, OK), |
| 5473 }; | 5472 }; |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5531 | 5530 |
| 5532 // Test the request-challenge-retry sequence for basic auth when there is | 5531 // Test the request-challenge-retry sequence for basic auth when there is |
| 5533 // an identity in the URL. The request should be sent as normal, but when | 5532 // an identity in the URL. The request should be sent as normal, but when |
| 5534 // it fails the identity from the URL is used to answer the challenge. | 5533 // it fails the identity from the URL is used to answer the challenge. |
| 5535 TEST_P(HttpNetworkTransactionTest, AuthIdentityInURL) { | 5534 TEST_P(HttpNetworkTransactionTest, AuthIdentityInURL) { |
| 5536 HttpRequestInfo request; | 5535 HttpRequestInfo request; |
| 5537 request.method = "GET"; | 5536 request.method = "GET"; |
| 5538 request.url = GURL("http://foo:b@r@www.example.org/"); | 5537 request.url = GURL("http://foo:b@r@www.example.org/"); |
| 5539 request.load_flags = LOAD_NORMAL; | 5538 request.load_flags = LOAD_NORMAL; |
| 5540 | 5539 |
| 5541 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 5540 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 5542 scoped_ptr<HttpTransaction> trans( | 5541 scoped_ptr<HttpTransaction> trans( |
| 5543 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 5542 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 5544 | 5543 |
| 5545 // The password contains an escaped character -- for this test to pass it | 5544 // The password contains an escaped character -- for this test to pass it |
| 5546 // will need to be unescaped by HttpNetworkTransaction. | 5545 // will need to be unescaped by HttpNetworkTransaction. |
| 5547 EXPECT_EQ("b%40r", request.url.password()); | 5546 EXPECT_EQ("b%40r", request.url.password()); |
| 5548 | 5547 |
| 5549 MockWrite data_writes1[] = { | 5548 MockWrite data_writes1[] = { |
| 5550 MockWrite( | 5549 MockWrite( |
| 5551 "GET / HTTP/1.1\r\n" | 5550 "GET / HTTP/1.1\r\n" |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5614 // once. | 5613 // once. |
| 5615 TEST_P(HttpNetworkTransactionTest, WrongAuthIdentityInURL) { | 5614 TEST_P(HttpNetworkTransactionTest, WrongAuthIdentityInURL) { |
| 5616 HttpRequestInfo request; | 5615 HttpRequestInfo request; |
| 5617 request.method = "GET"; | 5616 request.method = "GET"; |
| 5618 // Note: the URL has a username:password in it. The password "baz" is | 5617 // Note: the URL has a username:password in it. The password "baz" is |
| 5619 // wrong (should be "bar"). | 5618 // wrong (should be "bar"). |
| 5620 request.url = GURL("http://foo:baz@www.example.org/"); | 5619 request.url = GURL("http://foo:baz@www.example.org/"); |
| 5621 | 5620 |
| 5622 request.load_flags = LOAD_NORMAL; | 5621 request.load_flags = LOAD_NORMAL; |
| 5623 | 5622 |
| 5624 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 5623 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 5625 scoped_ptr<HttpTransaction> trans( | 5624 scoped_ptr<HttpTransaction> trans( |
| 5626 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 5625 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 5627 | 5626 |
| 5628 MockWrite data_writes1[] = { | 5627 MockWrite data_writes1[] = { |
| 5629 MockWrite( | 5628 MockWrite( |
| 5630 "GET / HTTP/1.1\r\n" | 5629 "GET / HTTP/1.1\r\n" |
| 5631 "Host: www.example.org\r\n" | 5630 "Host: www.example.org\r\n" |
| 5632 "Connection: keep-alive\r\n\r\n"), | 5631 "Connection: keep-alive\r\n\r\n"), |
| 5633 }; | 5632 }; |
| 5634 | 5633 |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5725 | 5724 |
| 5726 // Test the request-challenge-retry sequence for basic auth when there is a | 5725 // Test the request-challenge-retry sequence for basic auth when there is a |
| 5727 // correct identity in the URL, but its use is being suppressed. The identity | 5726 // correct identity in the URL, but its use is being suppressed. The identity |
| 5728 // from the URL should never be used. | 5727 // from the URL should never be used. |
| 5729 TEST_P(HttpNetworkTransactionTest, AuthIdentityInURLSuppressed) { | 5728 TEST_P(HttpNetworkTransactionTest, AuthIdentityInURLSuppressed) { |
| 5730 HttpRequestInfo request; | 5729 HttpRequestInfo request; |
| 5731 request.method = "GET"; | 5730 request.method = "GET"; |
| 5732 request.url = GURL("http://foo:bar@www.example.org/"); | 5731 request.url = GURL("http://foo:bar@www.example.org/"); |
| 5733 request.load_flags = LOAD_DO_NOT_USE_EMBEDDED_IDENTITY; | 5732 request.load_flags = LOAD_DO_NOT_USE_EMBEDDED_IDENTITY; |
| 5734 | 5733 |
| 5735 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 5734 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 5736 scoped_ptr<HttpTransaction> trans( | 5735 scoped_ptr<HttpTransaction> trans( |
| 5737 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 5736 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 5738 | 5737 |
| 5739 MockWrite data_writes1[] = { | 5738 MockWrite data_writes1[] = { |
| 5740 MockWrite( | 5739 MockWrite( |
| 5741 "GET / HTTP/1.1\r\n" | 5740 "GET / HTTP/1.1\r\n" |
| 5742 "Host: www.example.org\r\n" | 5741 "Host: www.example.org\r\n" |
| 5743 "Connection: keep-alive\r\n\r\n"), | 5742 "Connection: keep-alive\r\n\r\n"), |
| 5744 }; | 5743 }; |
| 5745 | 5744 |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5799 // There is no challenge info, since the identity worked. | 5798 // There is no challenge info, since the identity worked. |
| 5800 EXPECT_TRUE(response->auth_challenge.get() == NULL); | 5799 EXPECT_TRUE(response->auth_challenge.get() == NULL); |
| 5801 EXPECT_EQ(100, response->headers->GetContentLength()); | 5800 EXPECT_EQ(100, response->headers->GetContentLength()); |
| 5802 | 5801 |
| 5803 // Empty the current queue. | 5802 // Empty the current queue. |
| 5804 base::MessageLoop::current()->RunUntilIdle(); | 5803 base::MessageLoop::current()->RunUntilIdle(); |
| 5805 } | 5804 } |
| 5806 | 5805 |
| 5807 // Test that previously tried username/passwords for a realm get re-used. | 5806 // Test that previously tried username/passwords for a realm get re-used. |
| 5808 TEST_P(HttpNetworkTransactionTest, BasicAuthCacheAndPreauth) { | 5807 TEST_P(HttpNetworkTransactionTest, BasicAuthCacheAndPreauth) { |
| 5809 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 5808 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 5810 | 5809 |
| 5811 // Transaction 1: authenticate (foo, bar) on MyRealm1 | 5810 // Transaction 1: authenticate (foo, bar) on MyRealm1 |
| 5812 { | 5811 { |
| 5813 HttpRequestInfo request; | 5812 HttpRequestInfo request; |
| 5814 request.method = "GET"; | 5813 request.method = "GET"; |
| 5815 request.url = GURL("http://www.example.org/x/y/z"); | 5814 request.url = GURL("http://www.example.org/x/y/z"); |
| 5816 request.load_flags = 0; | 5815 request.load_flags = 0; |
| 5817 | 5816 |
| 5818 scoped_ptr<HttpTransaction> trans( | 5817 scoped_ptr<HttpTransaction> trans( |
| 5819 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 5818 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| (...skipping 379 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6199 | 6198 |
| 6200 // Tests that nonce count increments when multiple auth attempts | 6199 // Tests that nonce count increments when multiple auth attempts |
| 6201 // are started with the same nonce. | 6200 // are started with the same nonce. |
| 6202 TEST_P(HttpNetworkTransactionTest, DigestPreAuthNonceCount) { | 6201 TEST_P(HttpNetworkTransactionTest, DigestPreAuthNonceCount) { |
| 6203 HttpAuthHandlerDigest::Factory* digest_factory = | 6202 HttpAuthHandlerDigest::Factory* digest_factory = |
| 6204 new HttpAuthHandlerDigest::Factory(); | 6203 new HttpAuthHandlerDigest::Factory(); |
| 6205 HttpAuthHandlerDigest::FixedNonceGenerator* nonce_generator = | 6204 HttpAuthHandlerDigest::FixedNonceGenerator* nonce_generator = |
| 6206 new HttpAuthHandlerDigest::FixedNonceGenerator("0123456789abcdef"); | 6205 new HttpAuthHandlerDigest::FixedNonceGenerator("0123456789abcdef"); |
| 6207 digest_factory->set_nonce_generator(nonce_generator); | 6206 digest_factory->set_nonce_generator(nonce_generator); |
| 6208 session_deps_.http_auth_handler_factory.reset(digest_factory); | 6207 session_deps_.http_auth_handler_factory.reset(digest_factory); |
| 6209 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 6208 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 6210 | 6209 |
| 6211 // Transaction 1: authenticate (foo, bar) on MyRealm1 | 6210 // Transaction 1: authenticate (foo, bar) on MyRealm1 |
| 6212 { | 6211 { |
| 6213 HttpRequestInfo request; | 6212 HttpRequestInfo request; |
| 6214 request.method = "GET"; | 6213 request.method = "GET"; |
| 6215 request.url = GURL("http://www.example.org/x/y/z"); | 6214 request.url = GURL("http://www.example.org/x/y/z"); |
| 6216 request.load_flags = 0; | 6215 request.load_flags = 0; |
| 6217 | 6216 |
| 6218 scoped_ptr<HttpTransaction> trans( | 6217 scoped_ptr<HttpTransaction> trans( |
| 6219 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 6218 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6331 | 6330 |
| 6332 const HttpResponseInfo* response = trans->GetResponseInfo(); | 6331 const HttpResponseInfo* response = trans->GetResponseInfo(); |
| 6333 ASSERT_TRUE(response != NULL); | 6332 ASSERT_TRUE(response != NULL); |
| 6334 EXPECT_TRUE(response->auth_challenge.get() == NULL); | 6333 EXPECT_TRUE(response->auth_challenge.get() == NULL); |
| 6335 } | 6334 } |
| 6336 } | 6335 } |
| 6337 | 6336 |
| 6338 // Test the ResetStateForRestart() private method. | 6337 // Test the ResetStateForRestart() private method. |
| 6339 TEST_P(HttpNetworkTransactionTest, ResetStateForRestart) { | 6338 TEST_P(HttpNetworkTransactionTest, ResetStateForRestart) { |
| 6340 // Create a transaction (the dependencies aren't important). | 6339 // Create a transaction (the dependencies aren't important). |
| 6341 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 6340 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 6342 scoped_ptr<HttpNetworkTransaction> trans( | 6341 scoped_ptr<HttpNetworkTransaction> trans( |
| 6343 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 6342 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 6344 | 6343 |
| 6345 // Setup some state (which we expect ResetStateForRestart() will clear). | 6344 // Setup some state (which we expect ResetStateForRestart() will clear). |
| 6346 trans->read_buf_ = new IOBuffer(15); | 6345 trans->read_buf_ = new IOBuffer(15); |
| 6347 trans->read_buf_len_ = 15; | 6346 trans->read_buf_len_ = 15; |
| 6348 trans->request_headers_.SetHeader("Authorization", "NTLM"); | 6347 trans->request_headers_.SetHeader("Authorization", "NTLM"); |
| 6349 | 6348 |
| 6350 // Setup state in response_ | 6349 // Setup state in response_ |
| 6351 HttpResponseInfo* response = &trans->response_; | 6350 HttpResponseInfo* response = &trans->response_; |
| (...skipping 26 matching lines...) Expand all Loading... |
| 6378 EXPECT_FALSE(response->vary_data.is_valid()); | 6377 EXPECT_FALSE(response->vary_data.is_valid()); |
| 6379 } | 6378 } |
| 6380 | 6379 |
| 6381 // Test HTTPS connections to a site with a bad certificate | 6380 // Test HTTPS connections to a site with a bad certificate |
| 6382 TEST_P(HttpNetworkTransactionTest, HTTPSBadCertificate) { | 6381 TEST_P(HttpNetworkTransactionTest, HTTPSBadCertificate) { |
| 6383 HttpRequestInfo request; | 6382 HttpRequestInfo request; |
| 6384 request.method = "GET"; | 6383 request.method = "GET"; |
| 6385 request.url = GURL("https://www.example.org/"); | 6384 request.url = GURL("https://www.example.org/"); |
| 6386 request.load_flags = 0; | 6385 request.load_flags = 0; |
| 6387 | 6386 |
| 6388 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 6387 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 6389 scoped_ptr<HttpTransaction> trans( | 6388 scoped_ptr<HttpTransaction> trans( |
| 6390 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 6389 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 6391 | 6390 |
| 6392 MockWrite data_writes[] = { | 6391 MockWrite data_writes[] = { |
| 6393 MockWrite( | 6392 MockWrite( |
| 6394 "GET / HTTP/1.1\r\n" | 6393 "GET / HTTP/1.1\r\n" |
| 6395 "Host: www.example.org\r\n" | 6394 "Host: www.example.org\r\n" |
| 6396 "Connection: keep-alive\r\n\r\n"), | 6395 "Connection: keep-alive\r\n\r\n"), |
| 6397 }; | 6396 }; |
| 6398 | 6397 |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6486 session_deps_.socket_factory->AddSocketDataProvider(&ssl_bad_certificate); | 6485 session_deps_.socket_factory->AddSocketDataProvider(&ssl_bad_certificate); |
| 6487 session_deps_.socket_factory->AddSocketDataProvider(&data); | 6486 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 6488 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_bad); | 6487 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_bad); |
| 6489 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 6488 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
| 6490 | 6489 |
| 6491 TestCompletionCallback callback; | 6490 TestCompletionCallback callback; |
| 6492 | 6491 |
| 6493 for (int i = 0; i < 2; i++) { | 6492 for (int i = 0; i < 2; i++) { |
| 6494 session_deps_.socket_factory->ResetNextMockIndexes(); | 6493 session_deps_.socket_factory->ResetNextMockIndexes(); |
| 6495 | 6494 |
| 6496 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 6495 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 6497 scoped_ptr<HttpTransaction> trans( | 6496 scoped_ptr<HttpTransaction> trans( |
| 6498 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 6497 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 6499 | 6498 |
| 6500 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 6499 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 6501 EXPECT_EQ(ERR_IO_PENDING, rv); | 6500 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 6502 | 6501 |
| 6503 rv = callback.WaitForResult(); | 6502 rv = callback.WaitForResult(); |
| 6504 EXPECT_EQ(ERR_CERT_AUTHORITY_INVALID, rv); | 6503 EXPECT_EQ(ERR_CERT_AUTHORITY_INVALID, rv); |
| 6505 | 6504 |
| 6506 rv = trans->RestartIgnoringLastError(callback.callback()); | 6505 rv = trans->RestartIgnoringLastError(callback.callback()); |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6552 data_writes, arraysize(data_writes)); | 6551 data_writes, arraysize(data_writes)); |
| 6553 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy | 6552 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy |
| 6554 SSLSocketDataProvider tunnel_ssl(ASYNC, OK); // SSL through the tunnel | 6553 SSLSocketDataProvider tunnel_ssl(ASYNC, OK); // SSL through the tunnel |
| 6555 | 6554 |
| 6556 session_deps_.socket_factory->AddSocketDataProvider(&data); | 6555 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 6557 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); | 6556 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); |
| 6558 session_deps_.socket_factory->AddSSLSocketDataProvider(&tunnel_ssl); | 6557 session_deps_.socket_factory->AddSSLSocketDataProvider(&tunnel_ssl); |
| 6559 | 6558 |
| 6560 TestCompletionCallback callback; | 6559 TestCompletionCallback callback; |
| 6561 | 6560 |
| 6562 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 6561 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 6563 scoped_ptr<HttpTransaction> trans( | 6562 scoped_ptr<HttpTransaction> trans( |
| 6564 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 6563 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 6565 | 6564 |
| 6566 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 6565 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 6567 EXPECT_EQ(ERR_IO_PENDING, rv); | 6566 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 6568 | 6567 |
| 6569 rv = callback.WaitForResult(); | 6568 rv = callback.WaitForResult(); |
| 6570 EXPECT_EQ(OK, rv); | 6569 EXPECT_EQ(OK, rv); |
| 6571 const HttpResponseInfo* response = trans->GetResponseInfo(); | 6570 const HttpResponseInfo* response = trans->GetResponseInfo(); |
| 6572 | 6571 |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6611 | 6610 |
| 6612 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 6611 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
| 6613 data_writes, arraysize(data_writes)); | 6612 data_writes, arraysize(data_writes)); |
| 6614 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy | 6613 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy |
| 6615 | 6614 |
| 6616 session_deps_.socket_factory->AddSocketDataProvider(&data); | 6615 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 6617 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); | 6616 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); |
| 6618 | 6617 |
| 6619 TestCompletionCallback callback; | 6618 TestCompletionCallback callback; |
| 6620 | 6619 |
| 6621 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 6620 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 6622 scoped_ptr<HttpTransaction> trans( | 6621 scoped_ptr<HttpTransaction> trans( |
| 6623 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 6622 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 6624 | 6623 |
| 6625 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 6624 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 6626 EXPECT_EQ(ERR_IO_PENDING, rv); | 6625 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 6627 | 6626 |
| 6628 rv = callback.WaitForResult(); | 6627 rv = callback.WaitForResult(); |
| 6629 EXPECT_EQ(OK, rv); | 6628 EXPECT_EQ(OK, rv); |
| 6630 const HttpResponseInfo* response = trans->GetResponseInfo(); | 6629 const HttpResponseInfo* response = trans->GetResponseInfo(); |
| 6631 | 6630 |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6693 SequencedSocketData data(data_reads, arraysize(data_reads), data_writes, | 6692 SequencedSocketData data(data_reads, arraysize(data_reads), data_writes, |
| 6694 arraysize(data_writes)); | 6693 arraysize(data_writes)); |
| 6695 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy | 6694 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy |
| 6696 proxy_ssl.SetNextProto(GetParam()); | 6695 proxy_ssl.SetNextProto(GetParam()); |
| 6697 | 6696 |
| 6698 session_deps_.socket_factory->AddSocketDataProvider(&data); | 6697 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 6699 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); | 6698 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); |
| 6700 | 6699 |
| 6701 TestCompletionCallback callback; | 6700 TestCompletionCallback callback; |
| 6702 | 6701 |
| 6703 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 6702 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 6704 scoped_ptr<HttpTransaction> trans( | 6703 scoped_ptr<HttpTransaction> trans( |
| 6705 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 6704 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 6706 | 6705 |
| 6707 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 6706 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 6708 EXPECT_EQ(ERR_IO_PENDING, rv); | 6707 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 6709 | 6708 |
| 6710 rv = callback.WaitForResult(); | 6709 rv = callback.WaitForResult(); |
| 6711 EXPECT_EQ(OK, rv); | 6710 EXPECT_EQ(OK, rv); |
| 6712 const HttpResponseInfo* response = trans->GetResponseInfo(); | 6711 const HttpResponseInfo* response = trans->GetResponseInfo(); |
| 6713 | 6712 |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6746 | 6745 |
| 6747 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 6746 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
| 6748 data_writes, arraysize(data_writes)); | 6747 data_writes, arraysize(data_writes)); |
| 6749 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy | 6748 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy |
| 6750 | 6749 |
| 6751 session_deps_.socket_factory->AddSocketDataProvider(&data); | 6750 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 6752 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); | 6751 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); |
| 6753 | 6752 |
| 6754 TestCompletionCallback callback; | 6753 TestCompletionCallback callback; |
| 6755 | 6754 |
| 6756 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 6755 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 6757 scoped_ptr<HttpTransaction> trans( | 6756 scoped_ptr<HttpTransaction> trans( |
| 6758 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 6757 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 6759 | 6758 |
| 6760 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 6759 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 6761 EXPECT_EQ(ERR_IO_PENDING, rv); | 6760 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 6762 | 6761 |
| 6763 rv = callback.WaitForResult(); | 6762 rv = callback.WaitForResult(); |
| 6764 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, rv); | 6763 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, rv); |
| 6765 | 6764 |
| 6766 // TODO(ttuttle): Anything else to check here? | 6765 // TODO(ttuttle): Anything else to check here? |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6804 SequencedSocketData data(data_reads, arraysize(data_reads), data_writes, | 6803 SequencedSocketData data(data_reads, arraysize(data_reads), data_writes, |
| 6805 arraysize(data_writes)); | 6804 arraysize(data_writes)); |
| 6806 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy | 6805 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy |
| 6807 proxy_ssl.SetNextProto(GetParam()); | 6806 proxy_ssl.SetNextProto(GetParam()); |
| 6808 | 6807 |
| 6809 session_deps_.socket_factory->AddSocketDataProvider(&data); | 6808 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 6810 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); | 6809 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); |
| 6811 | 6810 |
| 6812 TestCompletionCallback callback; | 6811 TestCompletionCallback callback; |
| 6813 | 6812 |
| 6814 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 6813 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 6815 scoped_ptr<HttpTransaction> trans( | 6814 scoped_ptr<HttpTransaction> trans( |
| 6816 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 6815 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 6817 | 6816 |
| 6818 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 6817 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 6819 EXPECT_EQ(ERR_IO_PENDING, rv); | 6818 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 6820 | 6819 |
| 6821 rv = callback.WaitForResult(); | 6820 rv = callback.WaitForResult(); |
| 6822 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, rv); | 6821 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, rv); |
| 6823 | 6822 |
| 6824 // TODO(ttuttle): Anything else to check here? | 6823 // TODO(ttuttle): Anything else to check here? |
| 6825 } | 6824 } |
| 6826 | 6825 |
| 6827 // Test the request-challenge-retry sequence for basic auth, through | 6826 // Test the request-challenge-retry sequence for basic auth, through |
| 6828 // a SPDY proxy over a single SPDY session. | 6827 // a SPDY proxy over a single SPDY session. |
| 6829 TEST_P(HttpNetworkTransactionTest, BasicAuthSpdyProxy) { | 6828 TEST_P(HttpNetworkTransactionTest, BasicAuthSpdyProxy) { |
| 6830 HttpRequestInfo request; | 6829 HttpRequestInfo request; |
| 6831 request.method = "GET"; | 6830 request.method = "GET"; |
| 6832 request.url = GURL("https://www.example.org/"); | 6831 request.url = GURL("https://www.example.org/"); |
| 6833 // when the no authentication data flag is set. | 6832 // when the no authentication data flag is set. |
| 6834 request.load_flags = LOAD_DO_NOT_SEND_AUTH_DATA; | 6833 request.load_flags = LOAD_DO_NOT_SEND_AUTH_DATA; |
| 6835 | 6834 |
| 6836 // Configure against https proxy server "myproxy:70". | 6835 // Configure against https proxy server "myproxy:70". |
| 6837 session_deps_.proxy_service.reset( | 6836 session_deps_.proxy_service.reset( |
| 6838 ProxyService::CreateFixedFromPacResult("HTTPS myproxy:70")); | 6837 ProxyService::CreateFixedFromPacResult("HTTPS myproxy:70")); |
| 6839 BoundTestNetLog log; | 6838 BoundTestNetLog log; |
| 6840 session_deps_.net_log = log.bound().net_log(); | 6839 session_deps_.net_log = log.bound().net_log(); |
| 6841 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 6840 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 6842 | 6841 |
| 6843 // Since we have proxy, should try to establish tunnel. | 6842 // Since we have proxy, should try to establish tunnel. |
| 6844 scoped_ptr<SpdyFrame> req(spdy_util_.ConstructSpdyConnect( | 6843 scoped_ptr<SpdyFrame> req(spdy_util_.ConstructSpdyConnect( |
| 6845 NULL, 0, 1, LOWEST, HostPortPair("www.example.org", 443))); | 6844 NULL, 0, 1, LOWEST, HostPortPair("www.example.org", 443))); |
| 6846 scoped_ptr<SpdyFrame> rst( | 6845 scoped_ptr<SpdyFrame> rst( |
| 6847 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); | 6846 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); |
| 6848 | 6847 |
| 6849 // After calling trans->RestartWithAuth(), this is the request we should | 6848 // After calling trans->RestartWithAuth(), this is the request we should |
| 6850 // be issuing -- the final header line contains the credentials. | 6849 // be issuing -- the final header line contains the credentials. |
| 6851 const char* const kAuthCredentials[] = { | 6850 const char* const kAuthCredentials[] = { |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6976 | 6975 |
| 6977 // Configure against https proxy server "myproxy:70". | 6976 // Configure against https proxy server "myproxy:70". |
| 6978 session_deps_.proxy_service.reset( | 6977 session_deps_.proxy_service.reset( |
| 6979 ProxyService::CreateFixedFromPacResult("HTTPS myproxy:70")); | 6978 ProxyService::CreateFixedFromPacResult("HTTPS myproxy:70")); |
| 6980 BoundTestNetLog log; | 6979 BoundTestNetLog log; |
| 6981 session_deps_.net_log = log.bound().net_log(); | 6980 session_deps_.net_log = log.bound().net_log(); |
| 6982 | 6981 |
| 6983 // Enable cross-origin push. | 6982 // Enable cross-origin push. |
| 6984 session_deps_.trusted_spdy_proxy = "myproxy:70"; | 6983 session_deps_.trusted_spdy_proxy = "myproxy:70"; |
| 6985 | 6984 |
| 6986 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 6985 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 6987 | 6986 |
| 6988 scoped_ptr<SpdyFrame> stream1_syn( | 6987 scoped_ptr<SpdyFrame> stream1_syn( |
| 6989 spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, false)); | 6988 spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, false)); |
| 6990 | 6989 |
| 6991 MockWrite spdy_writes[] = { | 6990 MockWrite spdy_writes[] = { |
| 6992 CreateMockWrite(*stream1_syn, 0, ASYNC), | 6991 CreateMockWrite(*stream1_syn, 0, ASYNC), |
| 6993 }; | 6992 }; |
| 6994 | 6993 |
| 6995 scoped_ptr<SpdyFrame> | 6994 scoped_ptr<SpdyFrame> |
| 6996 stream1_reply(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); | 6995 stream1_reply(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7090 | 7089 |
| 7091 // Configure against https proxy server "myproxy:70". | 7090 // Configure against https proxy server "myproxy:70". |
| 7092 session_deps_.proxy_service.reset( | 7091 session_deps_.proxy_service.reset( |
| 7093 ProxyService::CreateFixed("https://myproxy:70")); | 7092 ProxyService::CreateFixed("https://myproxy:70")); |
| 7094 BoundTestNetLog log; | 7093 BoundTestNetLog log; |
| 7095 session_deps_.net_log = log.bound().net_log(); | 7094 session_deps_.net_log = log.bound().net_log(); |
| 7096 | 7095 |
| 7097 // Enable cross-origin push. | 7096 // Enable cross-origin push. |
| 7098 session_deps_.trusted_spdy_proxy = "myproxy:70"; | 7097 session_deps_.trusted_spdy_proxy = "myproxy:70"; |
| 7099 | 7098 |
| 7100 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7099 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 7101 | 7100 |
| 7102 scoped_ptr<SpdyFrame> stream1_syn( | 7101 scoped_ptr<SpdyFrame> stream1_syn( |
| 7103 spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, false)); | 7102 spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, false)); |
| 7104 | 7103 |
| 7105 scoped_ptr<SpdyFrame> push_rst( | 7104 scoped_ptr<SpdyFrame> push_rst( |
| 7106 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_REFUSED_STREAM)); | 7105 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_REFUSED_STREAM)); |
| 7107 | 7106 |
| 7108 MockWrite spdy_writes[] = { | 7107 MockWrite spdy_writes[] = { |
| 7109 CreateMockWrite(*stream1_syn, 0, ASYNC), CreateMockWrite(*push_rst, 3), | 7108 CreateMockWrite(*stream1_syn, 0, ASYNC), CreateMockWrite(*push_rst, 3), |
| 7110 }; | 7109 }; |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7219 session_deps_.socket_factory->AddSocketDataProvider(&ssl_bad_certificate); | 7218 session_deps_.socket_factory->AddSocketDataProvider(&ssl_bad_certificate); |
| 7220 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_bad); | 7219 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_bad); |
| 7221 | 7220 |
| 7222 // SSL to the proxy, then CONNECT request, then valid SSL certificate | 7221 // SSL to the proxy, then CONNECT request, then valid SSL certificate |
| 7223 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 7222 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
| 7224 session_deps_.socket_factory->AddSocketDataProvider(&data); | 7223 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 7225 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 7224 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
| 7226 | 7225 |
| 7227 TestCompletionCallback callback; | 7226 TestCompletionCallback callback; |
| 7228 | 7227 |
| 7229 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7228 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 7230 scoped_ptr<HttpTransaction> trans( | 7229 scoped_ptr<HttpTransaction> trans( |
| 7231 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 7230 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 7232 | 7231 |
| 7233 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 7232 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 7234 EXPECT_EQ(ERR_IO_PENDING, rv); | 7233 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 7235 | 7234 |
| 7236 rv = callback.WaitForResult(); | 7235 rv = callback.WaitForResult(); |
| 7237 EXPECT_EQ(ERR_CERT_AUTHORITY_INVALID, rv); | 7236 EXPECT_EQ(ERR_CERT_AUTHORITY_INVALID, rv); |
| 7238 | 7237 |
| 7239 rv = trans->RestartIgnoringLastError(callback.callback()); | 7238 rv = trans->RestartIgnoringLastError(callback.callback()); |
| 7240 EXPECT_EQ(ERR_IO_PENDING, rv); | 7239 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 7241 | 7240 |
| 7242 rv = callback.WaitForResult(); | 7241 rv = callback.WaitForResult(); |
| 7243 EXPECT_EQ(OK, rv); | 7242 EXPECT_EQ(OK, rv); |
| 7244 | 7243 |
| 7245 const HttpResponseInfo* response = trans->GetResponseInfo(); | 7244 const HttpResponseInfo* response = trans->GetResponseInfo(); |
| 7246 | 7245 |
| 7247 ASSERT_TRUE(response != NULL); | 7246 ASSERT_TRUE(response != NULL); |
| 7248 EXPECT_EQ(100, response->headers->GetContentLength()); | 7247 EXPECT_EQ(100, response->headers->GetContentLength()); |
| 7249 } | 7248 } |
| 7250 | 7249 |
| 7251 TEST_P(HttpNetworkTransactionTest, BuildRequest_UserAgent) { | 7250 TEST_P(HttpNetworkTransactionTest, BuildRequest_UserAgent) { |
| 7252 HttpRequestInfo request; | 7251 HttpRequestInfo request; |
| 7253 request.method = "GET"; | 7252 request.method = "GET"; |
| 7254 request.url = GURL("http://www.example.org/"); | 7253 request.url = GURL("http://www.example.org/"); |
| 7255 request.extra_headers.SetHeader(HttpRequestHeaders::kUserAgent, | 7254 request.extra_headers.SetHeader(HttpRequestHeaders::kUserAgent, |
| 7256 "Chromium Ultra Awesome X Edition"); | 7255 "Chromium Ultra Awesome X Edition"); |
| 7257 | 7256 |
| 7258 scoped_ptr<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.get())); | 7259 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 7261 | 7260 |
| 7262 MockWrite data_writes[] = { | 7261 MockWrite data_writes[] = { |
| 7263 MockWrite( | 7262 MockWrite( |
| 7264 "GET / HTTP/1.1\r\n" | 7263 "GET / HTTP/1.1\r\n" |
| 7265 "Host: www.example.org\r\n" | 7264 "Host: www.example.org\r\n" |
| 7266 "Connection: keep-alive\r\n" | 7265 "Connection: keep-alive\r\n" |
| 7267 "User-Agent: Chromium Ultra Awesome X Edition\r\n\r\n"), | 7266 "User-Agent: Chromium Ultra Awesome X Edition\r\n\r\n"), |
| 7268 }; | 7267 }; |
| (...skipping 20 matching lines...) Expand all Loading... |
| 7289 } | 7288 } |
| 7290 | 7289 |
| 7291 TEST_P(HttpNetworkTransactionTest, BuildRequest_UserAgentOverTunnel) { | 7290 TEST_P(HttpNetworkTransactionTest, BuildRequest_UserAgentOverTunnel) { |
| 7292 HttpRequestInfo request; | 7291 HttpRequestInfo request; |
| 7293 request.method = "GET"; | 7292 request.method = "GET"; |
| 7294 request.url = GURL("https://www.example.org/"); | 7293 request.url = GURL("https://www.example.org/"); |
| 7295 request.extra_headers.SetHeader(HttpRequestHeaders::kUserAgent, | 7294 request.extra_headers.SetHeader(HttpRequestHeaders::kUserAgent, |
| 7296 "Chromium Ultra Awesome X Edition"); | 7295 "Chromium Ultra Awesome X Edition"); |
| 7297 | 7296 |
| 7298 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); | 7297 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); |
| 7299 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7298 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 7300 scoped_ptr<HttpTransaction> trans( | 7299 scoped_ptr<HttpTransaction> trans( |
| 7301 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 7300 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 7302 | 7301 |
| 7303 MockWrite data_writes[] = { | 7302 MockWrite data_writes[] = { |
| 7304 MockWrite( | 7303 MockWrite( |
| 7305 "CONNECT www.example.org:443 HTTP/1.1\r\n" | 7304 "CONNECT www.example.org:443 HTTP/1.1\r\n" |
| 7306 "Host: www.example.org\r\n" | 7305 "Host: www.example.org\r\n" |
| 7307 "Proxy-Connection: keep-alive\r\n" | 7306 "Proxy-Connection: keep-alive\r\n" |
| 7308 "User-Agent: Chromium Ultra Awesome X Edition\r\n\r\n"), | 7307 "User-Agent: Chromium Ultra Awesome X Edition\r\n\r\n"), |
| 7309 }; | 7308 }; |
| (...skipping 19 matching lines...) Expand all Loading... |
| 7329 } | 7328 } |
| 7330 | 7329 |
| 7331 TEST_P(HttpNetworkTransactionTest, BuildRequest_Referer) { | 7330 TEST_P(HttpNetworkTransactionTest, BuildRequest_Referer) { |
| 7332 HttpRequestInfo request; | 7331 HttpRequestInfo request; |
| 7333 request.method = "GET"; | 7332 request.method = "GET"; |
| 7334 request.url = GURL("http://www.example.org/"); | 7333 request.url = GURL("http://www.example.org/"); |
| 7335 request.load_flags = 0; | 7334 request.load_flags = 0; |
| 7336 request.extra_headers.SetHeader(HttpRequestHeaders::kReferer, | 7335 request.extra_headers.SetHeader(HttpRequestHeaders::kReferer, |
| 7337 "http://the.previous.site.com/"); | 7336 "http://the.previous.site.com/"); |
| 7338 | 7337 |
| 7339 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7338 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 7340 scoped_ptr<HttpTransaction> trans( | 7339 scoped_ptr<HttpTransaction> trans( |
| 7341 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 7340 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 7342 | 7341 |
| 7343 MockWrite data_writes[] = { | 7342 MockWrite data_writes[] = { |
| 7344 MockWrite( | 7343 MockWrite( |
| 7345 "GET / HTTP/1.1\r\n" | 7344 "GET / HTTP/1.1\r\n" |
| 7346 "Host: www.example.org\r\n" | 7345 "Host: www.example.org\r\n" |
| 7347 "Connection: keep-alive\r\n" | 7346 "Connection: keep-alive\r\n" |
| 7348 "Referer: http://the.previous.site.com/\r\n\r\n"), | 7347 "Referer: http://the.previous.site.com/\r\n\r\n"), |
| 7349 }; | 7348 }; |
| (...skipping 17 matching lines...) Expand all Loading... |
| 7367 | 7366 |
| 7368 rv = callback.WaitForResult(); | 7367 rv = callback.WaitForResult(); |
| 7369 EXPECT_EQ(OK, rv); | 7368 EXPECT_EQ(OK, rv); |
| 7370 } | 7369 } |
| 7371 | 7370 |
| 7372 TEST_P(HttpNetworkTransactionTest, BuildRequest_PostContentLengthZero) { | 7371 TEST_P(HttpNetworkTransactionTest, BuildRequest_PostContentLengthZero) { |
| 7373 HttpRequestInfo request; | 7372 HttpRequestInfo request; |
| 7374 request.method = "POST"; | 7373 request.method = "POST"; |
| 7375 request.url = GURL("http://www.example.org/"); | 7374 request.url = GURL("http://www.example.org/"); |
| 7376 | 7375 |
| 7377 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7376 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 7378 scoped_ptr<HttpTransaction> trans( | 7377 scoped_ptr<HttpTransaction> trans( |
| 7379 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 7378 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 7380 | 7379 |
| 7381 MockWrite data_writes[] = { | 7380 MockWrite data_writes[] = { |
| 7382 MockWrite( | 7381 MockWrite( |
| 7383 "POST / HTTP/1.1\r\n" | 7382 "POST / HTTP/1.1\r\n" |
| 7384 "Host: www.example.org\r\n" | 7383 "Host: www.example.org\r\n" |
| 7385 "Connection: keep-alive\r\n" | 7384 "Connection: keep-alive\r\n" |
| 7386 "Content-Length: 0\r\n\r\n"), | 7385 "Content-Length: 0\r\n\r\n"), |
| 7387 }; | 7386 }; |
| (...skipping 17 matching lines...) Expand all Loading... |
| 7405 | 7404 |
| 7406 rv = callback.WaitForResult(); | 7405 rv = callback.WaitForResult(); |
| 7407 EXPECT_EQ(OK, rv); | 7406 EXPECT_EQ(OK, rv); |
| 7408 } | 7407 } |
| 7409 | 7408 |
| 7410 TEST_P(HttpNetworkTransactionTest, BuildRequest_PutContentLengthZero) { | 7409 TEST_P(HttpNetworkTransactionTest, BuildRequest_PutContentLengthZero) { |
| 7411 HttpRequestInfo request; | 7410 HttpRequestInfo request; |
| 7412 request.method = "PUT"; | 7411 request.method = "PUT"; |
| 7413 request.url = GURL("http://www.example.org/"); | 7412 request.url = GURL("http://www.example.org/"); |
| 7414 | 7413 |
| 7415 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7414 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 7416 scoped_ptr<HttpTransaction> trans( | 7415 scoped_ptr<HttpTransaction> trans( |
| 7417 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 7416 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 7418 | 7417 |
| 7419 MockWrite data_writes[] = { | 7418 MockWrite data_writes[] = { |
| 7420 MockWrite( | 7419 MockWrite( |
| 7421 "PUT / HTTP/1.1\r\n" | 7420 "PUT / HTTP/1.1\r\n" |
| 7422 "Host: www.example.org\r\n" | 7421 "Host: www.example.org\r\n" |
| 7423 "Connection: keep-alive\r\n" | 7422 "Connection: keep-alive\r\n" |
| 7424 "Content-Length: 0\r\n\r\n"), | 7423 "Content-Length: 0\r\n\r\n"), |
| 7425 }; | 7424 }; |
| (...skipping 17 matching lines...) Expand all Loading... |
| 7443 | 7442 |
| 7444 rv = callback.WaitForResult(); | 7443 rv = callback.WaitForResult(); |
| 7445 EXPECT_EQ(OK, rv); | 7444 EXPECT_EQ(OK, rv); |
| 7446 } | 7445 } |
| 7447 | 7446 |
| 7448 TEST_P(HttpNetworkTransactionTest, BuildRequest_HeadContentLengthZero) { | 7447 TEST_P(HttpNetworkTransactionTest, BuildRequest_HeadContentLengthZero) { |
| 7449 HttpRequestInfo request; | 7448 HttpRequestInfo request; |
| 7450 request.method = "HEAD"; | 7449 request.method = "HEAD"; |
| 7451 request.url = GURL("http://www.example.org/"); | 7450 request.url = GURL("http://www.example.org/"); |
| 7452 | 7451 |
| 7453 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7452 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 7454 scoped_ptr<HttpTransaction> trans( | 7453 scoped_ptr<HttpTransaction> trans( |
| 7455 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 7454 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 7456 | 7455 |
| 7457 MockWrite data_writes[] = { | 7456 MockWrite data_writes[] = { |
| 7458 MockWrite("HEAD / HTTP/1.1\r\n" | 7457 MockWrite("HEAD / HTTP/1.1\r\n" |
| 7459 "Host: www.example.org\r\n" | 7458 "Host: www.example.org\r\n" |
| 7460 "Connection: keep-alive\r\n\r\n"), | 7459 "Connection: keep-alive\r\n\r\n"), |
| 7461 }; | 7460 }; |
| 7462 | 7461 |
| 7463 // Lastly, the server responds with the actual content. | 7462 // Lastly, the server responds with the actual content. |
| (...skipping 16 matching lines...) Expand all Loading... |
| 7480 rv = callback.WaitForResult(); | 7479 rv = callback.WaitForResult(); |
| 7481 EXPECT_EQ(OK, rv); | 7480 EXPECT_EQ(OK, rv); |
| 7482 } | 7481 } |
| 7483 | 7482 |
| 7484 TEST_P(HttpNetworkTransactionTest, BuildRequest_CacheControlNoCache) { | 7483 TEST_P(HttpNetworkTransactionTest, BuildRequest_CacheControlNoCache) { |
| 7485 HttpRequestInfo request; | 7484 HttpRequestInfo request; |
| 7486 request.method = "GET"; | 7485 request.method = "GET"; |
| 7487 request.url = GURL("http://www.example.org/"); | 7486 request.url = GURL("http://www.example.org/"); |
| 7488 request.load_flags = LOAD_BYPASS_CACHE; | 7487 request.load_flags = LOAD_BYPASS_CACHE; |
| 7489 | 7488 |
| 7490 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7489 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 7491 scoped_ptr<HttpTransaction> trans( | 7490 scoped_ptr<HttpTransaction> trans( |
| 7492 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 7491 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 7493 | 7492 |
| 7494 MockWrite data_writes[] = { | 7493 MockWrite data_writes[] = { |
| 7495 MockWrite( | 7494 MockWrite( |
| 7496 "GET / HTTP/1.1\r\n" | 7495 "GET / HTTP/1.1\r\n" |
| 7497 "Host: www.example.org\r\n" | 7496 "Host: www.example.org\r\n" |
| 7498 "Connection: keep-alive\r\n" | 7497 "Connection: keep-alive\r\n" |
| 7499 "Pragma: no-cache\r\n" | 7498 "Pragma: no-cache\r\n" |
| 7500 "Cache-Control: no-cache\r\n\r\n"), | 7499 "Cache-Control: no-cache\r\n\r\n"), |
| (...skipping 20 matching lines...) Expand all Loading... |
| 7521 EXPECT_EQ(OK, rv); | 7520 EXPECT_EQ(OK, rv); |
| 7522 } | 7521 } |
| 7523 | 7522 |
| 7524 TEST_P(HttpNetworkTransactionTest, | 7523 TEST_P(HttpNetworkTransactionTest, |
| 7525 BuildRequest_CacheControlValidateCache) { | 7524 BuildRequest_CacheControlValidateCache) { |
| 7526 HttpRequestInfo request; | 7525 HttpRequestInfo request; |
| 7527 request.method = "GET"; | 7526 request.method = "GET"; |
| 7528 request.url = GURL("http://www.example.org/"); | 7527 request.url = GURL("http://www.example.org/"); |
| 7529 request.load_flags = LOAD_VALIDATE_CACHE; | 7528 request.load_flags = LOAD_VALIDATE_CACHE; |
| 7530 | 7529 |
| 7531 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7530 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 7532 scoped_ptr<HttpTransaction> trans( | 7531 scoped_ptr<HttpTransaction> trans( |
| 7533 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 7532 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 7534 | 7533 |
| 7535 MockWrite data_writes[] = { | 7534 MockWrite data_writes[] = { |
| 7536 MockWrite( | 7535 MockWrite( |
| 7537 "GET / HTTP/1.1\r\n" | 7536 "GET / HTTP/1.1\r\n" |
| 7538 "Host: www.example.org\r\n" | 7537 "Host: www.example.org\r\n" |
| 7539 "Connection: keep-alive\r\n" | 7538 "Connection: keep-alive\r\n" |
| 7540 "Cache-Control: max-age=0\r\n\r\n"), | 7539 "Cache-Control: max-age=0\r\n\r\n"), |
| 7541 }; | 7540 }; |
| (...skipping 18 matching lines...) Expand all Loading... |
| 7560 rv = callback.WaitForResult(); | 7559 rv = callback.WaitForResult(); |
| 7561 EXPECT_EQ(OK, rv); | 7560 EXPECT_EQ(OK, rv); |
| 7562 } | 7561 } |
| 7563 | 7562 |
| 7564 TEST_P(HttpNetworkTransactionTest, BuildRequest_ExtraHeaders) { | 7563 TEST_P(HttpNetworkTransactionTest, BuildRequest_ExtraHeaders) { |
| 7565 HttpRequestInfo request; | 7564 HttpRequestInfo request; |
| 7566 request.method = "GET"; | 7565 request.method = "GET"; |
| 7567 request.url = GURL("http://www.example.org/"); | 7566 request.url = GURL("http://www.example.org/"); |
| 7568 request.extra_headers.SetHeader("FooHeader", "Bar"); | 7567 request.extra_headers.SetHeader("FooHeader", "Bar"); |
| 7569 | 7568 |
| 7570 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7569 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 7571 scoped_ptr<HttpTransaction> trans( | 7570 scoped_ptr<HttpTransaction> trans( |
| 7572 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 7571 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 7573 | 7572 |
| 7574 MockWrite data_writes[] = { | 7573 MockWrite data_writes[] = { |
| 7575 MockWrite( | 7574 MockWrite( |
| 7576 "GET / HTTP/1.1\r\n" | 7575 "GET / HTTP/1.1\r\n" |
| 7577 "Host: www.example.org\r\n" | 7576 "Host: www.example.org\r\n" |
| 7578 "Connection: keep-alive\r\n" | 7577 "Connection: keep-alive\r\n" |
| 7579 "FooHeader: Bar\r\n\r\n"), | 7578 "FooHeader: Bar\r\n\r\n"), |
| 7580 }; | 7579 }; |
| (...skipping 20 matching lines...) Expand all Loading... |
| 7601 } | 7600 } |
| 7602 | 7601 |
| 7603 TEST_P(HttpNetworkTransactionTest, BuildRequest_ExtraHeadersStripped) { | 7602 TEST_P(HttpNetworkTransactionTest, BuildRequest_ExtraHeadersStripped) { |
| 7604 HttpRequestInfo request; | 7603 HttpRequestInfo request; |
| 7605 request.method = "GET"; | 7604 request.method = "GET"; |
| 7606 request.url = GURL("http://www.example.org/"); | 7605 request.url = GURL("http://www.example.org/"); |
| 7607 request.extra_headers.SetHeader("referer", "www.foo.com"); | 7606 request.extra_headers.SetHeader("referer", "www.foo.com"); |
| 7608 request.extra_headers.SetHeader("hEllo", "Kitty"); | 7607 request.extra_headers.SetHeader("hEllo", "Kitty"); |
| 7609 request.extra_headers.SetHeader("FoO", "bar"); | 7608 request.extra_headers.SetHeader("FoO", "bar"); |
| 7610 | 7609 |
| 7611 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7610 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 7612 scoped_ptr<HttpTransaction> trans( | 7611 scoped_ptr<HttpTransaction> trans( |
| 7613 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 7612 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 7614 | 7613 |
| 7615 MockWrite data_writes[] = { | 7614 MockWrite data_writes[] = { |
| 7616 MockWrite( | 7615 MockWrite( |
| 7617 "GET / HTTP/1.1\r\n" | 7616 "GET / HTTP/1.1\r\n" |
| 7618 "Host: www.example.org\r\n" | 7617 "Host: www.example.org\r\n" |
| 7619 "Connection: keep-alive\r\n" | 7618 "Connection: keep-alive\r\n" |
| 7620 "referer: www.foo.com\r\n" | 7619 "referer: www.foo.com\r\n" |
| 7621 "hEllo: Kitty\r\n" | 7620 "hEllo: Kitty\r\n" |
| (...skipping 25 matching lines...) Expand all Loading... |
| 7647 HttpRequestInfo request; | 7646 HttpRequestInfo request; |
| 7648 request.method = "GET"; | 7647 request.method = "GET"; |
| 7649 request.url = GURL("http://www.example.org/"); | 7648 request.url = GURL("http://www.example.org/"); |
| 7650 request.load_flags = 0; | 7649 request.load_flags = 0; |
| 7651 | 7650 |
| 7652 session_deps_.proxy_service.reset( | 7651 session_deps_.proxy_service.reset( |
| 7653 ProxyService::CreateFixedFromPacResult("SOCKS myproxy:1080")); | 7652 ProxyService::CreateFixedFromPacResult("SOCKS myproxy:1080")); |
| 7654 TestNetLog net_log; | 7653 TestNetLog net_log; |
| 7655 session_deps_.net_log = &net_log; | 7654 session_deps_.net_log = &net_log; |
| 7656 | 7655 |
| 7657 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7656 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 7658 scoped_ptr<HttpTransaction> trans( | 7657 scoped_ptr<HttpTransaction> trans( |
| 7659 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 7658 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 7660 | 7659 |
| 7661 char write_buffer[] = { 0x04, 0x01, 0x00, 0x50, 127, 0, 0, 1, 0 }; | 7660 char write_buffer[] = { 0x04, 0x01, 0x00, 0x50, 127, 0, 0, 1, 0 }; |
| 7662 char read_buffer[] = { 0x00, 0x5A, 0x00, 0x00, 0, 0, 0, 0 }; | 7661 char read_buffer[] = { 0x00, 0x5A, 0x00, 0x00, 0, 0, 0, 0 }; |
| 7663 | 7662 |
| 7664 MockWrite data_writes[] = { | 7663 MockWrite data_writes[] = { |
| 7665 MockWrite(ASYNC, write_buffer, arraysize(write_buffer)), | 7664 MockWrite(ASYNC, write_buffer, arraysize(write_buffer)), |
| 7666 MockWrite( | 7665 MockWrite( |
| 7667 "GET / HTTP/1.1\r\n" | 7666 "GET / HTTP/1.1\r\n" |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7706 HttpRequestInfo request; | 7705 HttpRequestInfo request; |
| 7707 request.method = "GET"; | 7706 request.method = "GET"; |
| 7708 request.url = GURL("https://www.example.org/"); | 7707 request.url = GURL("https://www.example.org/"); |
| 7709 request.load_flags = 0; | 7708 request.load_flags = 0; |
| 7710 | 7709 |
| 7711 session_deps_.proxy_service.reset( | 7710 session_deps_.proxy_service.reset( |
| 7712 ProxyService::CreateFixedFromPacResult("SOCKS myproxy:1080")); | 7711 ProxyService::CreateFixedFromPacResult("SOCKS myproxy:1080")); |
| 7713 TestNetLog net_log; | 7712 TestNetLog net_log; |
| 7714 session_deps_.net_log = &net_log; | 7713 session_deps_.net_log = &net_log; |
| 7715 | 7714 |
| 7716 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7715 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 7717 scoped_ptr<HttpTransaction> trans( | 7716 scoped_ptr<HttpTransaction> trans( |
| 7718 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 7717 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 7719 | 7718 |
| 7720 unsigned char write_buffer[] = { 0x04, 0x01, 0x01, 0xBB, 127, 0, 0, 1, 0 }; | 7719 unsigned char write_buffer[] = { 0x04, 0x01, 0x01, 0xBB, 127, 0, 0, 1, 0 }; |
| 7721 unsigned char read_buffer[] = { 0x00, 0x5A, 0x00, 0x00, 0, 0, 0, 0 }; | 7720 unsigned char read_buffer[] = { 0x00, 0x5A, 0x00, 0x00, 0, 0, 0, 0 }; |
| 7722 | 7721 |
| 7723 MockWrite data_writes[] = { | 7722 MockWrite data_writes[] = { |
| 7724 MockWrite(ASYNC, reinterpret_cast<char*>(write_buffer), | 7723 MockWrite(ASYNC, reinterpret_cast<char*>(write_buffer), |
| 7725 arraysize(write_buffer)), | 7724 arraysize(write_buffer)), |
| 7726 MockWrite( | 7725 MockWrite( |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7770 HttpRequestInfo request; | 7769 HttpRequestInfo request; |
| 7771 request.method = "GET"; | 7770 request.method = "GET"; |
| 7772 request.url = GURL("http://www.example.org/"); | 7771 request.url = GURL("http://www.example.org/"); |
| 7773 request.load_flags = 0; | 7772 request.load_flags = 0; |
| 7774 | 7773 |
| 7775 session_deps_.proxy_service.reset( | 7774 session_deps_.proxy_service.reset( |
| 7776 ProxyService::CreateFixed("socks4://myproxy:1080")); | 7775 ProxyService::CreateFixed("socks4://myproxy:1080")); |
| 7777 TestNetLog net_log; | 7776 TestNetLog net_log; |
| 7778 session_deps_.net_log = &net_log; | 7777 session_deps_.net_log = &net_log; |
| 7779 | 7778 |
| 7780 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7779 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 7781 scoped_ptr<HttpTransaction> trans( | 7780 scoped_ptr<HttpTransaction> trans( |
| 7782 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 7781 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 7783 | 7782 |
| 7784 char write_buffer[] = { 0x04, 0x01, 0x00, 0x50, 127, 0, 0, 1, 0 }; | 7783 char write_buffer[] = { 0x04, 0x01, 0x00, 0x50, 127, 0, 0, 1, 0 }; |
| 7785 char read_buffer[] = { 0x00, 0x5A, 0x00, 0x00, 0, 0, 0, 0 }; | 7784 char read_buffer[] = { 0x00, 0x5A, 0x00, 0x00, 0, 0, 0, 0 }; |
| 7786 | 7785 |
| 7787 MockWrite data_writes[] = { | 7786 MockWrite data_writes[] = { |
| 7788 MockWrite(ASYNC, write_buffer, arraysize(write_buffer)), | 7787 MockWrite(ASYNC, write_buffer, arraysize(write_buffer)), |
| 7789 MockWrite( | 7788 MockWrite( |
| 7790 "GET / HTTP/1.1\r\n" | 7789 "GET / HTTP/1.1\r\n" |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7829 HttpRequestInfo request; | 7828 HttpRequestInfo request; |
| 7830 request.method = "GET"; | 7829 request.method = "GET"; |
| 7831 request.url = GURL("http://www.example.org/"); | 7830 request.url = GURL("http://www.example.org/"); |
| 7832 request.load_flags = 0; | 7831 request.load_flags = 0; |
| 7833 | 7832 |
| 7834 session_deps_.proxy_service.reset( | 7833 session_deps_.proxy_service.reset( |
| 7835 ProxyService::CreateFixedFromPacResult("SOCKS5 myproxy:1080")); | 7834 ProxyService::CreateFixedFromPacResult("SOCKS5 myproxy:1080")); |
| 7836 TestNetLog net_log; | 7835 TestNetLog net_log; |
| 7837 session_deps_.net_log = &net_log; | 7836 session_deps_.net_log = &net_log; |
| 7838 | 7837 |
| 7839 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7838 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 7840 scoped_ptr<HttpTransaction> trans( | 7839 scoped_ptr<HttpTransaction> trans( |
| 7841 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 7840 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 7842 | 7841 |
| 7843 const char kSOCKS5GreetRequest[] = { 0x05, 0x01, 0x00 }; | 7842 const char kSOCKS5GreetRequest[] = { 0x05, 0x01, 0x00 }; |
| 7844 const char kSOCKS5GreetResponse[] = { 0x05, 0x00 }; | 7843 const char kSOCKS5GreetResponse[] = { 0x05, 0x00 }; |
| 7845 const char kSOCKS5OkRequest[] = { | 7844 const char kSOCKS5OkRequest[] = { |
| 7846 0x05, // Version | 7845 0x05, // Version |
| 7847 0x01, // Command (CONNECT) | 7846 0x01, // Command (CONNECT) |
| 7848 0x00, // Reserved. | 7847 0x00, // Reserved. |
| 7849 0x03, // Address type (DOMAINNAME). | 7848 0x03, // Address type (DOMAINNAME). |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7901 HttpRequestInfo request; | 7900 HttpRequestInfo request; |
| 7902 request.method = "GET"; | 7901 request.method = "GET"; |
| 7903 request.url = GURL("https://www.example.org/"); | 7902 request.url = GURL("https://www.example.org/"); |
| 7904 request.load_flags = 0; | 7903 request.load_flags = 0; |
| 7905 | 7904 |
| 7906 session_deps_.proxy_service.reset( | 7905 session_deps_.proxy_service.reset( |
| 7907 ProxyService::CreateFixedFromPacResult("SOCKS5 myproxy:1080")); | 7906 ProxyService::CreateFixedFromPacResult("SOCKS5 myproxy:1080")); |
| 7908 TestNetLog net_log; | 7907 TestNetLog net_log; |
| 7909 session_deps_.net_log = &net_log; | 7908 session_deps_.net_log = &net_log; |
| 7910 | 7909 |
| 7911 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7910 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 7912 scoped_ptr<HttpTransaction> trans( | 7911 scoped_ptr<HttpTransaction> trans( |
| 7913 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 7912 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 7914 | 7913 |
| 7915 const char kSOCKS5GreetRequest[] = { 0x05, 0x01, 0x00 }; | 7914 const char kSOCKS5GreetRequest[] = { 0x05, 0x01, 0x00 }; |
| 7916 const char kSOCKS5GreetResponse[] = { 0x05, 0x00 }; | 7915 const char kSOCKS5GreetResponse[] = { 0x05, 0x00 }; |
| 7917 const unsigned char kSOCKS5OkRequest[] = { | 7916 const unsigned char kSOCKS5OkRequest[] = { |
| 7918 0x05, // Version | 7917 0x05, // Version |
| 7919 0x01, // Command (CONNECT) | 7918 0x01, // Command (CONNECT) |
| 7920 0x00, // Reserved. | 7919 0x00, // Reserved. |
| 7921 0x03, // Address type (DOMAINNAME). | 7920 0x03, // Address type (DOMAINNAME). |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7978 | 7977 |
| 7979 // Tests that for connection endpoints the group names are correctly set. | 7978 // Tests that for connection endpoints the group names are correctly set. |
| 7980 | 7979 |
| 7981 struct GroupNameTest { | 7980 struct GroupNameTest { |
| 7982 std::string proxy_server; | 7981 std::string proxy_server; |
| 7983 std::string url; | 7982 std::string url; |
| 7984 std::string expected_group_name; | 7983 std::string expected_group_name; |
| 7985 bool ssl; | 7984 bool ssl; |
| 7986 }; | 7985 }; |
| 7987 | 7986 |
| 7988 scoped_ptr<HttpNetworkSession> SetupSessionForGroupNameTests( | 7987 scoped_refptr<HttpNetworkSession> SetupSessionForGroupNameTests( |
| 7989 NextProto next_proto, | 7988 NextProto next_proto, |
| 7990 SpdySessionDependencies* session_deps_) { | 7989 SpdySessionDependencies* session_deps_) { |
| 7991 scoped_ptr<HttpNetworkSession> session(CreateSession(session_deps_)); | 7990 scoped_refptr<HttpNetworkSession> session(CreateSession(session_deps_)); |
| 7992 | 7991 |
| 7993 base::WeakPtr<HttpServerProperties> http_server_properties = | 7992 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 7994 session->http_server_properties(); | 7993 session->http_server_properties(); |
| 7995 AlternativeService alternative_service( | 7994 AlternativeService alternative_service( |
| 7996 AlternateProtocolFromNextProto(next_proto), "", 443); | 7995 AlternateProtocolFromNextProto(next_proto), "", 443); |
| 7997 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); | 7996 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); |
| 7998 http_server_properties->SetAlternativeService( | 7997 http_server_properties->SetAlternativeService( |
| 7999 HostPortPair("host.with.alternate", 80), alternative_service, 1.0, | 7998 HostPortPair("host.with.alternate", 80), alternative_service, 1.0, |
| 8000 expiration); | 7999 expiration); |
| 8001 | 8000 |
| 8002 return session; | 8001 return session; |
| 8003 } | 8002 } |
| 8004 | 8003 |
| 8005 int GroupNameTransactionHelper(const std::string& url, | 8004 int GroupNameTransactionHelper( |
| 8006 HttpNetworkSession* session) { | 8005 const std::string& url, |
| 8006 const scoped_refptr<HttpNetworkSession>& session) { |
| 8007 HttpRequestInfo request; | 8007 HttpRequestInfo request; |
| 8008 request.method = "GET"; | 8008 request.method = "GET"; |
| 8009 request.url = GURL(url); | 8009 request.url = GURL(url); |
| 8010 request.load_flags = 0; | 8010 request.load_flags = 0; |
| 8011 | 8011 |
| 8012 scoped_ptr<HttpTransaction> trans( | 8012 scoped_ptr<HttpTransaction> trans( |
| 8013 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 8013 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8014 | 8014 |
| 8015 TestCompletionCallback callback; | 8015 TestCompletionCallback callback; |
| 8016 | 8016 |
| 8017 // We do not complete this request, the dtor will clean the transaction up. | 8017 // We do not complete this request, the dtor will clean the transaction up. |
| 8018 return trans->Start(&request, callback.callback(), BoundNetLog()); | 8018 return trans->Start(&request, callback.callback(), BoundNetLog()); |
| 8019 } | 8019 } |
| 8020 | 8020 |
| 8021 } // namespace | 8021 } // namespace |
| 8022 | 8022 |
| 8023 TEST_P(HttpNetworkTransactionTest, GroupNameForDirectConnections) { | 8023 TEST_P(HttpNetworkTransactionTest, GroupNameForDirectConnections) { |
| (...skipping 30 matching lines...) Expand all Loading... |
| 8054 "ssl/host.with.alternate:443", | 8054 "ssl/host.with.alternate:443", |
| 8055 true, | 8055 true, |
| 8056 }, | 8056 }, |
| 8057 }; | 8057 }; |
| 8058 | 8058 |
| 8059 session_deps_.use_alternative_services = true; | 8059 session_deps_.use_alternative_services = true; |
| 8060 | 8060 |
| 8061 for (size_t i = 0; i < arraysize(tests); ++i) { | 8061 for (size_t i = 0; i < arraysize(tests); ++i) { |
| 8062 session_deps_.proxy_service.reset( | 8062 session_deps_.proxy_service.reset( |
| 8063 ProxyService::CreateFixed(tests[i].proxy_server)); | 8063 ProxyService::CreateFixed(tests[i].proxy_server)); |
| 8064 scoped_ptr<HttpNetworkSession> session( | 8064 scoped_refptr<HttpNetworkSession> session( |
| 8065 SetupSessionForGroupNameTests(GetParam(), &session_deps_)); | 8065 SetupSessionForGroupNameTests(GetParam(), &session_deps_)); |
| 8066 | 8066 |
| 8067 HttpNetworkSessionPeer peer(session.get()); | 8067 HttpNetworkSessionPeer peer(session); |
| 8068 CaptureGroupNameTransportSocketPool* transport_conn_pool = | 8068 CaptureGroupNameTransportSocketPool* transport_conn_pool = |
| 8069 new CaptureGroupNameTransportSocketPool(NULL, NULL); | 8069 new CaptureGroupNameTransportSocketPool(NULL, NULL); |
| 8070 CaptureGroupNameSSLSocketPool* ssl_conn_pool = | 8070 CaptureGroupNameSSLSocketPool* ssl_conn_pool = |
| 8071 new CaptureGroupNameSSLSocketPool(NULL, NULL); | 8071 new CaptureGroupNameSSLSocketPool(NULL, NULL); |
| 8072 scoped_ptr<MockClientSocketPoolManager> mock_pool_manager( | 8072 scoped_ptr<MockClientSocketPoolManager> mock_pool_manager( |
| 8073 new MockClientSocketPoolManager); | 8073 new MockClientSocketPoolManager); |
| 8074 mock_pool_manager->SetTransportSocketPool(transport_conn_pool); | 8074 mock_pool_manager->SetTransportSocketPool(transport_conn_pool); |
| 8075 mock_pool_manager->SetSSLSocketPool(ssl_conn_pool); | 8075 mock_pool_manager->SetSSLSocketPool(ssl_conn_pool); |
| 8076 peer.SetClientSocketPoolManager(mock_pool_manager.Pass()); | 8076 peer.SetClientSocketPoolManager(mock_pool_manager.Pass()); |
| 8077 | 8077 |
| 8078 EXPECT_EQ(ERR_IO_PENDING, | 8078 EXPECT_EQ(ERR_IO_PENDING, |
| 8079 GroupNameTransactionHelper(tests[i].url, session.get())); | 8079 GroupNameTransactionHelper(tests[i].url, session)); |
| 8080 if (tests[i].ssl) | 8080 if (tests[i].ssl) |
| 8081 EXPECT_EQ(tests[i].expected_group_name, | 8081 EXPECT_EQ(tests[i].expected_group_name, |
| 8082 ssl_conn_pool->last_group_name_received()); | 8082 ssl_conn_pool->last_group_name_received()); |
| 8083 else | 8083 else |
| 8084 EXPECT_EQ(tests[i].expected_group_name, | 8084 EXPECT_EQ(tests[i].expected_group_name, |
| 8085 transport_conn_pool->last_group_name_received()); | 8085 transport_conn_pool->last_group_name_received()); |
| 8086 } | 8086 } |
| 8087 } | 8087 } |
| 8088 | 8088 |
| 8089 TEST_P(HttpNetworkTransactionTest, GroupNameForHTTPProxyConnections) { | 8089 TEST_P(HttpNetworkTransactionTest, GroupNameForHTTPProxyConnections) { |
| (...skipping 26 matching lines...) Expand all Loading... |
| 8116 "ftp/ftp.google.com:21", | 8116 "ftp/ftp.google.com:21", |
| 8117 false, | 8117 false, |
| 8118 }, | 8118 }, |
| 8119 }; | 8119 }; |
| 8120 | 8120 |
| 8121 session_deps_.use_alternative_services = true; | 8121 session_deps_.use_alternative_services = true; |
| 8122 | 8122 |
| 8123 for (size_t i = 0; i < arraysize(tests); ++i) { | 8123 for (size_t i = 0; i < arraysize(tests); ++i) { |
| 8124 session_deps_.proxy_service.reset( | 8124 session_deps_.proxy_service.reset( |
| 8125 ProxyService::CreateFixed(tests[i].proxy_server)); | 8125 ProxyService::CreateFixed(tests[i].proxy_server)); |
| 8126 scoped_ptr<HttpNetworkSession> session( | 8126 scoped_refptr<HttpNetworkSession> session( |
| 8127 SetupSessionForGroupNameTests(GetParam(), &session_deps_)); | 8127 SetupSessionForGroupNameTests(GetParam(), &session_deps_)); |
| 8128 | 8128 |
| 8129 HttpNetworkSessionPeer peer(session.get()); | 8129 HttpNetworkSessionPeer peer(session); |
| 8130 | 8130 |
| 8131 HostPortPair proxy_host("http_proxy", 80); | 8131 HostPortPair proxy_host("http_proxy", 80); |
| 8132 CaptureGroupNameHttpProxySocketPool* http_proxy_pool = | 8132 CaptureGroupNameHttpProxySocketPool* http_proxy_pool = |
| 8133 new CaptureGroupNameHttpProxySocketPool(NULL, NULL); | 8133 new CaptureGroupNameHttpProxySocketPool(NULL, NULL); |
| 8134 CaptureGroupNameSSLSocketPool* ssl_conn_pool = | 8134 CaptureGroupNameSSLSocketPool* ssl_conn_pool = |
| 8135 new CaptureGroupNameSSLSocketPool(NULL, NULL); | 8135 new CaptureGroupNameSSLSocketPool(NULL, NULL); |
| 8136 | 8136 |
| 8137 scoped_ptr<MockClientSocketPoolManager> mock_pool_manager( | 8137 scoped_ptr<MockClientSocketPoolManager> mock_pool_manager( |
| 8138 new MockClientSocketPoolManager); | 8138 new MockClientSocketPoolManager); |
| 8139 mock_pool_manager->SetSocketPoolForHTTPProxy(proxy_host, http_proxy_pool); | 8139 mock_pool_manager->SetSocketPoolForHTTPProxy(proxy_host, http_proxy_pool); |
| 8140 mock_pool_manager->SetSocketPoolForSSLWithProxy(proxy_host, ssl_conn_pool); | 8140 mock_pool_manager->SetSocketPoolForSSLWithProxy(proxy_host, ssl_conn_pool); |
| 8141 peer.SetClientSocketPoolManager(mock_pool_manager.Pass()); | 8141 peer.SetClientSocketPoolManager(mock_pool_manager.Pass()); |
| 8142 | 8142 |
| 8143 EXPECT_EQ(ERR_IO_PENDING, | 8143 EXPECT_EQ(ERR_IO_PENDING, |
| 8144 GroupNameTransactionHelper(tests[i].url, session.get())); | 8144 GroupNameTransactionHelper(tests[i].url, session)); |
| 8145 if (tests[i].ssl) | 8145 if (tests[i].ssl) |
| 8146 EXPECT_EQ(tests[i].expected_group_name, | 8146 EXPECT_EQ(tests[i].expected_group_name, |
| 8147 ssl_conn_pool->last_group_name_received()); | 8147 ssl_conn_pool->last_group_name_received()); |
| 8148 else | 8148 else |
| 8149 EXPECT_EQ(tests[i].expected_group_name, | 8149 EXPECT_EQ(tests[i].expected_group_name, |
| 8150 http_proxy_pool->last_group_name_received()); | 8150 http_proxy_pool->last_group_name_received()); |
| 8151 } | 8151 } |
| 8152 } | 8152 } |
| 8153 | 8153 |
| 8154 TEST_P(HttpNetworkTransactionTest, GroupNameForSOCKSConnections) { | 8154 TEST_P(HttpNetworkTransactionTest, GroupNameForSOCKSConnections) { |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8186 "socks4/ssl/host.with.alternate:443", | 8186 "socks4/ssl/host.with.alternate:443", |
| 8187 true, | 8187 true, |
| 8188 }, | 8188 }, |
| 8189 }; | 8189 }; |
| 8190 | 8190 |
| 8191 session_deps_.use_alternative_services = true; | 8191 session_deps_.use_alternative_services = true; |
| 8192 | 8192 |
| 8193 for (size_t i = 0; i < arraysize(tests); ++i) { | 8193 for (size_t i = 0; i < arraysize(tests); ++i) { |
| 8194 session_deps_.proxy_service.reset( | 8194 session_deps_.proxy_service.reset( |
| 8195 ProxyService::CreateFixed(tests[i].proxy_server)); | 8195 ProxyService::CreateFixed(tests[i].proxy_server)); |
| 8196 scoped_ptr<HttpNetworkSession> session( | 8196 scoped_refptr<HttpNetworkSession> session( |
| 8197 SetupSessionForGroupNameTests(GetParam(), &session_deps_)); | 8197 SetupSessionForGroupNameTests(GetParam(), &session_deps_)); |
| 8198 | 8198 |
| 8199 HttpNetworkSessionPeer peer(session.get()); | 8199 HttpNetworkSessionPeer peer(session); |
| 8200 | 8200 |
| 8201 HostPortPair proxy_host("socks_proxy", 1080); | 8201 HostPortPair proxy_host("socks_proxy", 1080); |
| 8202 CaptureGroupNameSOCKSSocketPool* socks_conn_pool = | 8202 CaptureGroupNameSOCKSSocketPool* socks_conn_pool = |
| 8203 new CaptureGroupNameSOCKSSocketPool(NULL, NULL); | 8203 new CaptureGroupNameSOCKSSocketPool(NULL, NULL); |
| 8204 CaptureGroupNameSSLSocketPool* ssl_conn_pool = | 8204 CaptureGroupNameSSLSocketPool* ssl_conn_pool = |
| 8205 new CaptureGroupNameSSLSocketPool(NULL, NULL); | 8205 new CaptureGroupNameSSLSocketPool(NULL, NULL); |
| 8206 | 8206 |
| 8207 scoped_ptr<MockClientSocketPoolManager> mock_pool_manager( | 8207 scoped_ptr<MockClientSocketPoolManager> mock_pool_manager( |
| 8208 new MockClientSocketPoolManager); | 8208 new MockClientSocketPoolManager); |
| 8209 mock_pool_manager->SetSocketPoolForSOCKSProxy(proxy_host, socks_conn_pool); | 8209 mock_pool_manager->SetSocketPoolForSOCKSProxy(proxy_host, socks_conn_pool); |
| 8210 mock_pool_manager->SetSocketPoolForSSLWithProxy(proxy_host, ssl_conn_pool); | 8210 mock_pool_manager->SetSocketPoolForSSLWithProxy(proxy_host, ssl_conn_pool); |
| 8211 peer.SetClientSocketPoolManager(mock_pool_manager.Pass()); | 8211 peer.SetClientSocketPoolManager(mock_pool_manager.Pass()); |
| 8212 | 8212 |
| 8213 scoped_ptr<HttpTransaction> trans( | 8213 scoped_ptr<HttpTransaction> trans( |
| 8214 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8214 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8215 | 8215 |
| 8216 EXPECT_EQ(ERR_IO_PENDING, | 8216 EXPECT_EQ(ERR_IO_PENDING, |
| 8217 GroupNameTransactionHelper(tests[i].url, session.get())); | 8217 GroupNameTransactionHelper(tests[i].url, session)); |
| 8218 if (tests[i].ssl) | 8218 if (tests[i].ssl) |
| 8219 EXPECT_EQ(tests[i].expected_group_name, | 8219 EXPECT_EQ(tests[i].expected_group_name, |
| 8220 ssl_conn_pool->last_group_name_received()); | 8220 ssl_conn_pool->last_group_name_received()); |
| 8221 else | 8221 else |
| 8222 EXPECT_EQ(tests[i].expected_group_name, | 8222 EXPECT_EQ(tests[i].expected_group_name, |
| 8223 socks_conn_pool->last_group_name_received()); | 8223 socks_conn_pool->last_group_name_received()); |
| 8224 } | 8224 } |
| 8225 } | 8225 } |
| 8226 | 8226 |
| 8227 TEST_P(HttpNetworkTransactionTest, ReconsiderProxyAfterFailedConnection) { | 8227 TEST_P(HttpNetworkTransactionTest, ReconsiderProxyAfterFailedConnection) { |
| 8228 HttpRequestInfo request; | 8228 HttpRequestInfo request; |
| 8229 request.method = "GET"; | 8229 request.method = "GET"; |
| 8230 request.url = GURL("http://www.example.org/"); | 8230 request.url = GURL("http://www.example.org/"); |
| 8231 | 8231 |
| 8232 session_deps_.proxy_service.reset( | 8232 session_deps_.proxy_service.reset( |
| 8233 ProxyService::CreateFixed("myproxy:70;foobar:80")); | 8233 ProxyService::CreateFixed("myproxy:70;foobar:80")); |
| 8234 | 8234 |
| 8235 // This simulates failure resolving all hostnames; that means we will fail | 8235 // This simulates failure resolving all hostnames; that means we will fail |
| 8236 // connecting to both proxies (myproxy:70 and foobar:80). | 8236 // connecting to both proxies (myproxy:70 and foobar:80). |
| 8237 session_deps_.host_resolver->rules()->AddSimulatedFailure("*"); | 8237 session_deps_.host_resolver->rules()->AddSimulatedFailure("*"); |
| 8238 | 8238 |
| 8239 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8239 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8240 scoped_ptr<HttpTransaction> trans( | 8240 scoped_ptr<HttpTransaction> trans( |
| 8241 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8241 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8242 | 8242 |
| 8243 TestCompletionCallback callback; | 8243 TestCompletionCallback callback; |
| 8244 | 8244 |
| 8245 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 8245 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 8246 EXPECT_EQ(ERR_IO_PENDING, rv); | 8246 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 8247 | 8247 |
| 8248 rv = callback.WaitForResult(); | 8248 rv = callback.WaitForResult(); |
| 8249 EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED, rv); | 8249 EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED, rv); |
| 8250 } | 8250 } |
| 8251 | 8251 |
| 8252 // Base test to make sure that when the load flags for a request specify to | 8252 // Base test to make sure that when the load flags for a request specify to |
| 8253 // bypass the cache, the DNS cache is not used. | 8253 // bypass the cache, the DNS cache is not used. |
| 8254 void HttpNetworkTransactionTest::BypassHostCacheOnRefreshHelper( | 8254 void HttpNetworkTransactionTest::BypassHostCacheOnRefreshHelper( |
| 8255 int load_flags) { | 8255 int load_flags) { |
| 8256 // Issue a request, asking to bypass the cache(s). | 8256 // Issue a request, asking to bypass the cache(s). |
| 8257 HttpRequestInfo request; | 8257 HttpRequestInfo request; |
| 8258 request.method = "GET"; | 8258 request.method = "GET"; |
| 8259 request.load_flags = load_flags; | 8259 request.load_flags = load_flags; |
| 8260 request.url = GURL("http://www.example.org/"); | 8260 request.url = GURL("http://www.example.org/"); |
| 8261 | 8261 |
| 8262 // Select a host resolver that does caching. | 8262 // Select a host resolver that does caching. |
| 8263 session_deps_.host_resolver.reset(new MockCachingHostResolver); | 8263 session_deps_.host_resolver.reset(new MockCachingHostResolver); |
| 8264 | 8264 |
| 8265 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8265 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8266 scoped_ptr<HttpTransaction> trans( | 8266 scoped_ptr<HttpTransaction> trans( |
| 8267 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8267 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8268 | 8268 |
| 8269 // Warm up the host cache so it has an entry for "www.example.org". | 8269 // Warm up the host cache so it has an entry for "www.example.org". |
| 8270 AddressList addrlist; | 8270 AddressList addrlist; |
| 8271 TestCompletionCallback callback; | 8271 TestCompletionCallback callback; |
| 8272 int rv = session_deps_.host_resolver->Resolve( | 8272 int rv = session_deps_.host_resolver->Resolve( |
| 8273 HostResolver::RequestInfo(HostPortPair("www.example.org", 80)), | 8273 HostResolver::RequestInfo(HostPortPair("www.example.org", 80)), |
| 8274 DEFAULT_PRIORITY, &addrlist, callback.callback(), NULL, BoundNetLog()); | 8274 DEFAULT_PRIORITY, &addrlist, callback.callback(), NULL, BoundNetLog()); |
| 8275 EXPECT_EQ(ERR_IO_PENDING, rv); | 8275 EXPECT_EQ(ERR_IO_PENDING, rv); |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8324 request.method = "GET"; | 8324 request.method = "GET"; |
| 8325 request.url = GURL("http://www.foo.com/"); | 8325 request.url = GURL("http://www.foo.com/"); |
| 8326 request.load_flags = 0; | 8326 request.load_flags = 0; |
| 8327 | 8327 |
| 8328 MockWrite write_failure[] = { | 8328 MockWrite write_failure[] = { |
| 8329 MockWrite(ASYNC, ERR_CONNECTION_RESET), | 8329 MockWrite(ASYNC, ERR_CONNECTION_RESET), |
| 8330 }; | 8330 }; |
| 8331 StaticSocketDataProvider data(NULL, 0, | 8331 StaticSocketDataProvider data(NULL, 0, |
| 8332 write_failure, arraysize(write_failure)); | 8332 write_failure, arraysize(write_failure)); |
| 8333 session_deps_.socket_factory->AddSocketDataProvider(&data); | 8333 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 8334 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8334 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8335 | 8335 |
| 8336 TestCompletionCallback callback; | 8336 TestCompletionCallback callback; |
| 8337 | 8337 |
| 8338 scoped_ptr<HttpTransaction> trans( | 8338 scoped_ptr<HttpTransaction> trans( |
| 8339 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8339 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8340 | 8340 |
| 8341 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 8341 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 8342 EXPECT_EQ(ERR_IO_PENDING, rv); | 8342 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 8343 | 8343 |
| 8344 rv = callback.WaitForResult(); | 8344 rv = callback.WaitForResult(); |
| 8345 EXPECT_EQ(ERR_CONNECTION_RESET, rv); | 8345 EXPECT_EQ(ERR_CONNECTION_RESET, rv); |
| 8346 } | 8346 } |
| 8347 | 8347 |
| 8348 // Check that a connection closed after the start of the headers finishes ok. | 8348 // Check that a connection closed after the start of the headers finishes ok. |
| 8349 TEST_P(HttpNetworkTransactionTest, ConnectionClosedAfterStartOfHeaders) { | 8349 TEST_P(HttpNetworkTransactionTest, ConnectionClosedAfterStartOfHeaders) { |
| 8350 HttpRequestInfo request; | 8350 HttpRequestInfo request; |
| 8351 request.method = "GET"; | 8351 request.method = "GET"; |
| 8352 request.url = GURL("http://www.foo.com/"); | 8352 request.url = GURL("http://www.foo.com/"); |
| 8353 request.load_flags = 0; | 8353 request.load_flags = 0; |
| 8354 | 8354 |
| 8355 MockRead data_reads[] = { | 8355 MockRead data_reads[] = { |
| 8356 MockRead("HTTP/1."), | 8356 MockRead("HTTP/1."), |
| 8357 MockRead(SYNCHRONOUS, OK), | 8357 MockRead(SYNCHRONOUS, OK), |
| 8358 }; | 8358 }; |
| 8359 | 8359 |
| 8360 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 8360 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
| 8361 session_deps_.socket_factory->AddSocketDataProvider(&data); | 8361 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 8362 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8362 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8363 | 8363 |
| 8364 TestCompletionCallback callback; | 8364 TestCompletionCallback callback; |
| 8365 | 8365 |
| 8366 scoped_ptr<HttpTransaction> trans( | 8366 scoped_ptr<HttpTransaction> trans( |
| 8367 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8367 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8368 | 8368 |
| 8369 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 8369 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 8370 EXPECT_EQ(ERR_IO_PENDING, rv); | 8370 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 8371 | 8371 |
| 8372 rv = callback.WaitForResult(); | 8372 rv = callback.WaitForResult(); |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8426 MockRead data_reads2[] = { | 8426 MockRead data_reads2[] = { |
| 8427 MockRead("HTTP/1.1 200 OK\r\n"), | 8427 MockRead("HTTP/1.1 200 OK\r\n"), |
| 8428 MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"), | 8428 MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"), |
| 8429 MockRead("Content-Length: 100\r\n\r\n"), | 8429 MockRead("Content-Length: 100\r\n\r\n"), |
| 8430 MockRead(SYNCHRONOUS, OK), | 8430 MockRead(SYNCHRONOUS, OK), |
| 8431 }; | 8431 }; |
| 8432 | 8432 |
| 8433 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), | 8433 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), |
| 8434 data_writes2, arraysize(data_writes2)); | 8434 data_writes2, arraysize(data_writes2)); |
| 8435 session_deps_.socket_factory->AddSocketDataProvider(&data2); | 8435 session_deps_.socket_factory->AddSocketDataProvider(&data2); |
| 8436 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8436 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8437 | 8437 |
| 8438 TestCompletionCallback callback1; | 8438 TestCompletionCallback callback1; |
| 8439 | 8439 |
| 8440 scoped_ptr<HttpTransaction> trans( | 8440 scoped_ptr<HttpTransaction> trans( |
| 8441 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8441 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8442 | 8442 |
| 8443 int rv = trans->Start(&request, callback1.callback(), BoundNetLog()); | 8443 int rv = trans->Start(&request, callback1.callback(), BoundNetLog()); |
| 8444 EXPECT_EQ(ERR_IO_PENDING, rv); | 8444 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 8445 | 8445 |
| 8446 rv = callback1.WaitForResult(); | 8446 rv = callback1.WaitForResult(); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8482 StaticSocketDataProvider data(proxy_reads, arraysize(proxy_reads), NULL, 0); | 8482 StaticSocketDataProvider data(proxy_reads, arraysize(proxy_reads), NULL, 0); |
| 8483 SSLSocketDataProvider ssl(ASYNC, OK); | 8483 SSLSocketDataProvider ssl(ASYNC, OK); |
| 8484 | 8484 |
| 8485 session_deps_.socket_factory->AddSocketDataProvider(&data); | 8485 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 8486 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 8486 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
| 8487 | 8487 |
| 8488 TestCompletionCallback callback; | 8488 TestCompletionCallback callback; |
| 8489 | 8489 |
| 8490 session_deps_.socket_factory->ResetNextMockIndexes(); | 8490 session_deps_.socket_factory->ResetNextMockIndexes(); |
| 8491 | 8491 |
| 8492 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8492 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8493 scoped_ptr<HttpTransaction> trans( | 8493 scoped_ptr<HttpTransaction> trans( |
| 8494 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8494 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8495 | 8495 |
| 8496 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 8496 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 8497 EXPECT_EQ(ERR_IO_PENDING, rv); | 8497 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 8498 | 8498 |
| 8499 rv = callback.WaitForResult(); | 8499 rv = callback.WaitForResult(); |
| 8500 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, rv); | 8500 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, rv); |
| 8501 } | 8501 } |
| 8502 | 8502 |
| 8503 TEST_P(HttpNetworkTransactionTest, LargeContentLengthThenClose) { | 8503 TEST_P(HttpNetworkTransactionTest, LargeContentLengthThenClose) { |
| 8504 HttpRequestInfo request; | 8504 HttpRequestInfo request; |
| 8505 request.method = "GET"; | 8505 request.method = "GET"; |
| 8506 request.url = GURL("http://www.example.org/"); | 8506 request.url = GURL("http://www.example.org/"); |
| 8507 request.load_flags = 0; | 8507 request.load_flags = 0; |
| 8508 | 8508 |
| 8509 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8509 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8510 scoped_ptr<HttpTransaction> trans( | 8510 scoped_ptr<HttpTransaction> trans( |
| 8511 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8511 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8512 | 8512 |
| 8513 MockRead data_reads[] = { | 8513 MockRead data_reads[] = { |
| 8514 MockRead("HTTP/1.0 200 OK\r\nContent-Length:6719476739\r\n\r\n"), | 8514 MockRead("HTTP/1.0 200 OK\r\nContent-Length:6719476739\r\n\r\n"), |
| 8515 MockRead(SYNCHRONOUS, OK), | 8515 MockRead(SYNCHRONOUS, OK), |
| 8516 }; | 8516 }; |
| 8517 | 8517 |
| 8518 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 8518 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
| 8519 session_deps_.socket_factory->AddSocketDataProvider(&data); | 8519 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 8548 new UploadFileElementReader(base::ThreadTaskRunnerHandle::Get().get(), | 8548 new UploadFileElementReader(base::ThreadTaskRunnerHandle::Get().get(), |
| 8549 temp_file_path, 0, kuint64max, base::Time())); | 8549 temp_file_path, 0, kuint64max, base::Time())); |
| 8550 ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0); | 8550 ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0); |
| 8551 | 8551 |
| 8552 HttpRequestInfo request; | 8552 HttpRequestInfo request; |
| 8553 request.method = "POST"; | 8553 request.method = "POST"; |
| 8554 request.url = GURL("http://www.example.org/upload"); | 8554 request.url = GURL("http://www.example.org/upload"); |
| 8555 request.upload_data_stream = &upload_data_stream; | 8555 request.upload_data_stream = &upload_data_stream; |
| 8556 request.load_flags = 0; | 8556 request.load_flags = 0; |
| 8557 | 8557 |
| 8558 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8558 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8559 scoped_ptr<HttpTransaction> trans( | 8559 scoped_ptr<HttpTransaction> trans( |
| 8560 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8560 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8561 | 8561 |
| 8562 MockRead data_reads[] = { | 8562 MockRead data_reads[] = { |
| 8563 MockRead("HTTP/1.0 200 OK\r\n\r\n"), | 8563 MockRead("HTTP/1.0 200 OK\r\n\r\n"), |
| 8564 MockRead("hello world"), | 8564 MockRead("hello world"), |
| 8565 MockRead(SYNCHRONOUS, OK), | 8565 MockRead(SYNCHRONOUS, OK), |
| 8566 }; | 8566 }; |
| 8567 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 8567 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
| 8568 session_deps_.socket_factory->AddSocketDataProvider(&data); | 8568 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8603 temp_file, 0, kuint64max, base::Time())); | 8603 temp_file, 0, kuint64max, base::Time())); |
| 8604 ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0); | 8604 ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0); |
| 8605 | 8605 |
| 8606 HttpRequestInfo request; | 8606 HttpRequestInfo request; |
| 8607 request.method = "POST"; | 8607 request.method = "POST"; |
| 8608 request.url = GURL("http://www.example.org/upload"); | 8608 request.url = GURL("http://www.example.org/upload"); |
| 8609 request.upload_data_stream = &upload_data_stream; | 8609 request.upload_data_stream = &upload_data_stream; |
| 8610 request.load_flags = 0; | 8610 request.load_flags = 0; |
| 8611 | 8611 |
| 8612 // If we try to upload an unreadable file, the transaction should fail. | 8612 // If we try to upload an unreadable file, the transaction should fail. |
| 8613 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8613 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8614 scoped_ptr<HttpTransaction> trans( | 8614 scoped_ptr<HttpTransaction> trans( |
| 8615 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8615 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8616 | 8616 |
| 8617 StaticSocketDataProvider data(NULL, 0, NULL, 0); | 8617 StaticSocketDataProvider data(NULL, 0, NULL, 0); |
| 8618 session_deps_.socket_factory->AddSocketDataProvider(&data); | 8618 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 8619 | 8619 |
| 8620 TestCompletionCallback callback; | 8620 TestCompletionCallback callback; |
| 8621 | 8621 |
| 8622 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 8622 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 8623 EXPECT_EQ(ERR_IO_PENDING, rv); | 8623 EXPECT_EQ(ERR_IO_PENDING, rv); |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8657 ScopedVector<UploadElementReader> element_readers; | 8657 ScopedVector<UploadElementReader> element_readers; |
| 8658 element_readers.push_back(fake_reader); | 8658 element_readers.push_back(fake_reader); |
| 8659 ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0); | 8659 ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0); |
| 8660 | 8660 |
| 8661 HttpRequestInfo request; | 8661 HttpRequestInfo request; |
| 8662 request.method = "POST"; | 8662 request.method = "POST"; |
| 8663 request.url = GURL("http://www.example.org/upload"); | 8663 request.url = GURL("http://www.example.org/upload"); |
| 8664 request.upload_data_stream = &upload_data_stream; | 8664 request.upload_data_stream = &upload_data_stream; |
| 8665 request.load_flags = 0; | 8665 request.load_flags = 0; |
| 8666 | 8666 |
| 8667 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8667 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8668 scoped_ptr<HttpTransaction> trans( | 8668 scoped_ptr<HttpTransaction> trans( |
| 8669 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8669 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8670 | 8670 |
| 8671 StaticSocketDataProvider data; | 8671 StaticSocketDataProvider data; |
| 8672 session_deps_.socket_factory->AddSocketDataProvider(&data); | 8672 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 8673 | 8673 |
| 8674 TestCompletionCallback callback; | 8674 TestCompletionCallback callback; |
| 8675 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 8675 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 8676 EXPECT_EQ(ERR_IO_PENDING, rv); | 8676 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 8677 base::MessageLoop::current()->RunUntilIdle(); | 8677 base::MessageLoop::current()->RunUntilIdle(); |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8764 data_writes3, arraysize(data_writes3)); | 8764 data_writes3, arraysize(data_writes3)); |
| 8765 StaticSocketDataProvider data4(data_reads4, arraysize(data_reads4), | 8765 StaticSocketDataProvider data4(data_reads4, arraysize(data_reads4), |
| 8766 data_writes4, arraysize(data_writes4)); | 8766 data_writes4, arraysize(data_writes4)); |
| 8767 session_deps_.socket_factory->AddSocketDataProvider(&data1); | 8767 session_deps_.socket_factory->AddSocketDataProvider(&data1); |
| 8768 session_deps_.socket_factory->AddSocketDataProvider(&data2); | 8768 session_deps_.socket_factory->AddSocketDataProvider(&data2); |
| 8769 session_deps_.socket_factory->AddSocketDataProvider(&data3); | 8769 session_deps_.socket_factory->AddSocketDataProvider(&data3); |
| 8770 session_deps_.socket_factory->AddSocketDataProvider(&data4); | 8770 session_deps_.socket_factory->AddSocketDataProvider(&data4); |
| 8771 | 8771 |
| 8772 TestCompletionCallback callback1; | 8772 TestCompletionCallback callback1; |
| 8773 | 8773 |
| 8774 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8774 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8775 scoped_ptr<HttpTransaction> trans( | 8775 scoped_ptr<HttpTransaction> trans( |
| 8776 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8776 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8777 | 8777 |
| 8778 // Issue the first request with Authorize headers. There should be a | 8778 // Issue the first request with Authorize headers. There should be a |
| 8779 // password prompt for first_realm waiting to be filled in after the | 8779 // password prompt for first_realm waiting to be filled in after the |
| 8780 // transaction completes. | 8780 // transaction completes. |
| 8781 int rv = trans->Start(&request, callback1.callback(), BoundNetLog()); | 8781 int rv = trans->Start(&request, callback1.callback(), BoundNetLog()); |
| 8782 EXPECT_EQ(ERR_IO_PENDING, rv); | 8782 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 8783 rv = callback1.WaitForResult(); | 8783 rv = callback1.WaitForResult(); |
| 8784 EXPECT_EQ(OK, rv); | 8784 EXPECT_EQ(OK, rv); |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8859 request.method = "GET"; | 8859 request.method = "GET"; |
| 8860 request.url = GURL("http://www.example.org/"); | 8860 request.url = GURL("http://www.example.org/"); |
| 8861 request.load_flags = 0; | 8861 request.load_flags = 0; |
| 8862 | 8862 |
| 8863 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 8863 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
| 8864 | 8864 |
| 8865 session_deps_.socket_factory->AddSocketDataProvider(&data); | 8865 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 8866 | 8866 |
| 8867 TestCompletionCallback callback; | 8867 TestCompletionCallback callback; |
| 8868 | 8868 |
| 8869 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8869 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8870 scoped_ptr<HttpTransaction> trans( | 8870 scoped_ptr<HttpTransaction> trans( |
| 8871 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8871 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8872 | 8872 |
| 8873 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 8873 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 8874 EXPECT_EQ(ERR_IO_PENDING, rv); | 8874 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 8875 | 8875 |
| 8876 HostPortPair http_host_port_pair("www.example.org", 80); | 8876 HostPortPair http_host_port_pair("www.example.org", 80); |
| 8877 HttpServerProperties& http_server_properties = | 8877 HttpServerProperties& http_server_properties = |
| 8878 *session->http_server_properties(); | 8878 *session->http_server_properties(); |
| 8879 AlternativeServiceVector alternative_service_vector = | 8879 AlternativeServiceVector alternative_service_vector = |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8923 request.method = "GET"; | 8923 request.method = "GET"; |
| 8924 request.url = GURL("http://www.example.org/"); | 8924 request.url = GURL("http://www.example.org/"); |
| 8925 request.load_flags = 0; | 8925 request.load_flags = 0; |
| 8926 | 8926 |
| 8927 StaticSocketDataProvider data(data_reads, arraysize(data_reads), nullptr, 0); | 8927 StaticSocketDataProvider data(data_reads, arraysize(data_reads), nullptr, 0); |
| 8928 | 8928 |
| 8929 session_deps_.socket_factory->AddSocketDataProvider(&data); | 8929 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 8930 | 8930 |
| 8931 TestCompletionCallback callback; | 8931 TestCompletionCallback callback; |
| 8932 | 8932 |
| 8933 scoped_ptr<HttpNetworkSession> session = CreateSession(&session_deps_); | 8933 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8934 scoped_ptr<HttpTransaction> trans( | 8934 scoped_ptr<HttpTransaction> trans( |
| 8935 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8935 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8936 | 8936 |
| 8937 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 8937 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 8938 EXPECT_EQ(ERR_IO_PENDING, rv); | 8938 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 8939 | 8939 |
| 8940 HostPortPair http_host_port_pair("www.example.org", 80); | 8940 HostPortPair http_host_port_pair("www.example.org", 80); |
| 8941 HttpServerProperties& http_server_properties = | 8941 HttpServerProperties& http_server_properties = |
| 8942 *session->http_server_properties(); | 8942 *session->http_server_properties(); |
| 8943 AlternativeServiceVector alternative_service_vector = | 8943 AlternativeServiceVector alternative_service_vector = |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8980 request.method = "GET"; | 8980 request.method = "GET"; |
| 8981 request.url = GURL("http://www.example.org/"); | 8981 request.url = GURL("http://www.example.org/"); |
| 8982 request.load_flags = 0; | 8982 request.load_flags = 0; |
| 8983 | 8983 |
| 8984 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 8984 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
| 8985 | 8985 |
| 8986 session_deps_.socket_factory->AddSocketDataProvider(&data); | 8986 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 8987 | 8987 |
| 8988 TestCompletionCallback callback; | 8988 TestCompletionCallback callback; |
| 8989 | 8989 |
| 8990 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8990 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8991 scoped_ptr<HttpTransaction> trans( | 8991 scoped_ptr<HttpTransaction> trans( |
| 8992 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8992 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8993 | 8993 |
| 8994 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 8994 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 8995 EXPECT_EQ(ERR_IO_PENDING, rv); | 8995 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 8996 | 8996 |
| 8997 HostPortPair http_host_port_pair("www.example.org", 80); | 8997 HostPortPair http_host_port_pair("www.example.org", 80); |
| 8998 HttpServerProperties& http_server_properties = | 8998 HttpServerProperties& http_server_properties = |
| 8999 *session->http_server_properties(); | 8999 *session->http_server_properties(); |
| 9000 AlternativeServiceVector alternative_service_vector = | 9000 AlternativeServiceVector alternative_service_vector = |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9047 request.method = "GET"; | 9047 request.method = "GET"; |
| 9048 request.url = GURL("http://www.example.org/"); | 9048 request.url = GURL("http://www.example.org/"); |
| 9049 request.load_flags = 0; | 9049 request.load_flags = 0; |
| 9050 | 9050 |
| 9051 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 9051 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
| 9052 | 9052 |
| 9053 session_deps_.socket_factory->AddSocketDataProvider(&data); | 9053 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 9054 | 9054 |
| 9055 TestCompletionCallback callback; | 9055 TestCompletionCallback callback; |
| 9056 | 9056 |
| 9057 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 9057 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 9058 scoped_ptr<HttpTransaction> trans( | 9058 scoped_ptr<HttpTransaction> trans( |
| 9059 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 9059 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 9060 | 9060 |
| 9061 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 9061 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 9062 EXPECT_EQ(ERR_IO_PENDING, rv); | 9062 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 9063 | 9063 |
| 9064 HostPortPair http_host_port_pair("www.example.org", 80); | 9064 HostPortPair http_host_port_pair("www.example.org", 80); |
| 9065 HttpServerProperties& http_server_properties = | 9065 HttpServerProperties& http_server_properties = |
| 9066 *session->http_server_properties(); | 9066 *session->http_server_properties(); |
| 9067 AlternativeServiceVector alternative_service_vector = | 9067 AlternativeServiceVector alternative_service_vector = |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9104 request.method = "GET"; | 9104 request.method = "GET"; |
| 9105 request.url = GURL("http://www.example.org/"); | 9105 request.url = GURL("http://www.example.org/"); |
| 9106 request.load_flags = 0; | 9106 request.load_flags = 0; |
| 9107 | 9107 |
| 9108 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 9108 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
| 9109 | 9109 |
| 9110 session_deps_.socket_factory->AddSocketDataProvider(&data); | 9110 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 9111 | 9111 |
| 9112 TestCompletionCallback callback; | 9112 TestCompletionCallback callback; |
| 9113 | 9113 |
| 9114 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 9114 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 9115 | 9115 |
| 9116 HostPortPair http_host_port_pair("www.example.org", 80); | 9116 HostPortPair http_host_port_pair("www.example.org", 80); |
| 9117 HttpServerProperties& http_server_properties = | 9117 HttpServerProperties& http_server_properties = |
| 9118 *session->http_server_properties(); | 9118 *session->http_server_properties(); |
| 9119 AlternativeService alternative_service(QUIC, "", 80); | 9119 AlternativeService alternative_service(QUIC, "", 80); |
| 9120 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); | 9120 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); |
| 9121 http_server_properties.SetAlternativeService( | 9121 http_server_properties.SetAlternativeService( |
| 9122 http_host_port_pair, alternative_service, 1.0, expiration); | 9122 http_host_port_pair, alternative_service, 1.0, expiration); |
| 9123 | 9123 |
| 9124 AlternativeServiceVector alternative_service_vector = | 9124 AlternativeServiceVector alternative_service_vector = |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9171 request.method = "GET"; | 9171 request.method = "GET"; |
| 9172 request.url = GURL("http://www.example.org/"); | 9172 request.url = GURL("http://www.example.org/"); |
| 9173 request.load_flags = 0; | 9173 request.load_flags = 0; |
| 9174 | 9174 |
| 9175 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 9175 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
| 9176 | 9176 |
| 9177 session_deps_.socket_factory->AddSocketDataProvider(&data); | 9177 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 9178 | 9178 |
| 9179 TestCompletionCallback callback; | 9179 TestCompletionCallback callback; |
| 9180 | 9180 |
| 9181 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 9181 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 9182 scoped_ptr<HttpTransaction> trans( | 9182 scoped_ptr<HttpTransaction> trans( |
| 9183 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 9183 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 9184 | 9184 |
| 9185 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 9185 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 9186 EXPECT_EQ(ERR_IO_PENDING, rv); | 9186 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 9187 | 9187 |
| 9188 HostPortPair http_host_port_pair("www.example.org", 80); | 9188 HostPortPair http_host_port_pair("www.example.org", 80); |
| 9189 HttpServerProperties& http_server_properties = | 9189 HttpServerProperties& http_server_properties = |
| 9190 *session->http_server_properties(); | 9190 *session->http_server_properties(); |
| 9191 AlternativeServiceVector alternative_service_vector = | 9191 AlternativeServiceVector alternative_service_vector = |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9230 session_deps_.socket_factory->AddSocketDataProvider(&first_data); | 9230 session_deps_.socket_factory->AddSocketDataProvider(&first_data); |
| 9231 | 9231 |
| 9232 MockRead data_reads[] = { | 9232 MockRead data_reads[] = { |
| 9233 MockRead("HTTP/1.1 200 OK\r\n\r\n"), MockRead("hello world"), | 9233 MockRead("HTTP/1.1 200 OK\r\n\r\n"), MockRead("hello world"), |
| 9234 MockRead(ASYNC, OK), | 9234 MockRead(ASYNC, OK), |
| 9235 }; | 9235 }; |
| 9236 StaticSocketDataProvider second_data(data_reads, arraysize(data_reads), | 9236 StaticSocketDataProvider second_data(data_reads, arraysize(data_reads), |
| 9237 nullptr, 0); | 9237 nullptr, 0); |
| 9238 session_deps_.socket_factory->AddSocketDataProvider(&second_data); | 9238 session_deps_.socket_factory->AddSocketDataProvider(&second_data); |
| 9239 | 9239 |
| 9240 scoped_ptr<HttpNetworkSession> session = CreateSession(&session_deps_); | 9240 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 9241 | 9241 |
| 9242 base::WeakPtr<HttpServerProperties> http_server_properties = | 9242 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 9243 session->http_server_properties(); | 9243 session->http_server_properties(); |
| 9244 AlternativeService alternative_service( | 9244 AlternativeService alternative_service( |
| 9245 AlternateProtocolFromNextProto(GetParam()), "different.example.org", 80); | 9245 AlternateProtocolFromNextProto(GetParam()), "different.example.org", 80); |
| 9246 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); | 9246 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); |
| 9247 http_server_properties->SetAlternativeService( | 9247 http_server_properties->SetAlternativeService( |
| 9248 HostPortPair::FromURL(request.url), alternative_service, 1.0, expiration); | 9248 HostPortPair::FromURL(request.url), alternative_service, 1.0, expiration); |
| 9249 | 9249 |
| 9250 scoped_ptr<HttpTransaction> trans( | 9250 scoped_ptr<HttpTransaction> trans( |
| (...skipping 23 matching lines...) Expand all Loading... |
| 9274 | 9274 |
| 9275 MockRead data_reads[] = { | 9275 MockRead data_reads[] = { |
| 9276 MockRead("HTTP/1.1 200 OK\r\n\r\n"), | 9276 MockRead("HTTP/1.1 200 OK\r\n\r\n"), |
| 9277 MockRead("hello world"), | 9277 MockRead("hello world"), |
| 9278 MockRead(ASYNC, OK), | 9278 MockRead(ASYNC, OK), |
| 9279 }; | 9279 }; |
| 9280 StaticSocketDataProvider second_data( | 9280 StaticSocketDataProvider second_data( |
| 9281 data_reads, arraysize(data_reads), NULL, 0); | 9281 data_reads, arraysize(data_reads), NULL, 0); |
| 9282 session_deps_.socket_factory->AddSocketDataProvider(&second_data); | 9282 session_deps_.socket_factory->AddSocketDataProvider(&second_data); |
| 9283 | 9283 |
| 9284 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 9284 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 9285 | 9285 |
| 9286 base::WeakPtr<HttpServerProperties> http_server_properties = | 9286 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 9287 session->http_server_properties(); | 9287 session->http_server_properties(); |
| 9288 const HostPortPair host_port_pair = HostPortPair::FromURL(request.url); | 9288 const HostPortPair host_port_pair = HostPortPair::FromURL(request.url); |
| 9289 // Port must be < 1024, or the header will be ignored (since initial port was | 9289 // Port must be < 1024, or the header will be ignored (since initial port was |
| 9290 // port 80 (another restricted port). | 9290 // port 80 (another restricted port). |
| 9291 const AlternativeService alternative_service( | 9291 const AlternativeService alternative_service( |
| 9292 AlternateProtocolFromNextProto(GetParam()), "www.example.org", | 9292 AlternateProtocolFromNextProto(GetParam()), "www.example.org", |
| 9293 666); // Port is ignored by MockConnect anyway. | 9293 666); // Port is ignored by MockConnect anyway. |
| 9294 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); | 9294 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9340 | 9340 |
| 9341 MockRead data_reads[] = { | 9341 MockRead data_reads[] = { |
| 9342 MockRead("HTTP/1.1 200 OK\r\n\r\n"), | 9342 MockRead("HTTP/1.1 200 OK\r\n\r\n"), |
| 9343 MockRead("hello world"), | 9343 MockRead("hello world"), |
| 9344 MockRead(ASYNC, OK), | 9344 MockRead(ASYNC, OK), |
| 9345 }; | 9345 }; |
| 9346 StaticSocketDataProvider second_data( | 9346 StaticSocketDataProvider second_data( |
| 9347 data_reads, arraysize(data_reads), NULL, 0); | 9347 data_reads, arraysize(data_reads), NULL, 0); |
| 9348 session_deps_.socket_factory->AddSocketDataProvider(&second_data); | 9348 session_deps_.socket_factory->AddSocketDataProvider(&second_data); |
| 9349 | 9349 |
| 9350 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 9350 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 9351 | 9351 |
| 9352 base::WeakPtr<HttpServerProperties> http_server_properties = | 9352 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 9353 session->http_server_properties(); | 9353 session->http_server_properties(); |
| 9354 const int kUnrestrictedAlternatePort = 1024; | 9354 const int kUnrestrictedAlternatePort = 1024; |
| 9355 AlternativeService alternative_service( | 9355 AlternativeService alternative_service( |
| 9356 AlternateProtocolFromNextProto(GetParam()), "www.example.org", | 9356 AlternateProtocolFromNextProto(GetParam()), "www.example.org", |
| 9357 kUnrestrictedAlternatePort); | 9357 kUnrestrictedAlternatePort); |
| 9358 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); | 9358 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); |
| 9359 http_server_properties->SetAlternativeService( | 9359 http_server_properties->SetAlternativeService( |
| 9360 HostPortPair::FromURL(restricted_port_request.url), alternative_service, | 9360 HostPortPair::FromURL(restricted_port_request.url), alternative_service, |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9392 | 9392 |
| 9393 MockRead data_reads[] = { | 9393 MockRead data_reads[] = { |
| 9394 MockRead("HTTP/1.1 200 OK\r\n\r\n"), | 9394 MockRead("HTTP/1.1 200 OK\r\n\r\n"), |
| 9395 MockRead("hello world"), | 9395 MockRead("hello world"), |
| 9396 MockRead(ASYNC, OK), | 9396 MockRead(ASYNC, OK), |
| 9397 }; | 9397 }; |
| 9398 StaticSocketDataProvider second_data( | 9398 StaticSocketDataProvider second_data( |
| 9399 data_reads, arraysize(data_reads), NULL, 0); | 9399 data_reads, arraysize(data_reads), NULL, 0); |
| 9400 session_deps_.socket_factory->AddSocketDataProvider(&second_data); | 9400 session_deps_.socket_factory->AddSocketDataProvider(&second_data); |
| 9401 | 9401 |
| 9402 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 9402 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 9403 | 9403 |
| 9404 base::WeakPtr<HttpServerProperties> http_server_properties = | 9404 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 9405 session->http_server_properties(); | 9405 session->http_server_properties(); |
| 9406 const int kUnrestrictedAlternatePort = 1024; | 9406 const int kUnrestrictedAlternatePort = 1024; |
| 9407 AlternativeService alternative_service( | 9407 AlternativeService alternative_service( |
| 9408 AlternateProtocolFromNextProto(GetParam()), "www.example.org", | 9408 AlternateProtocolFromNextProto(GetParam()), "www.example.org", |
| 9409 kUnrestrictedAlternatePort); | 9409 kUnrestrictedAlternatePort); |
| 9410 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); | 9410 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); |
| 9411 http_server_properties->SetAlternativeService( | 9411 http_server_properties->SetAlternativeService( |
| 9412 HostPortPair::FromURL(restricted_port_request.url), alternative_service, | 9412 HostPortPair::FromURL(restricted_port_request.url), alternative_service, |
| (...skipping 30 matching lines...) Expand all Loading... |
| 9443 | 9443 |
| 9444 MockRead data_reads[] = { | 9444 MockRead data_reads[] = { |
| 9445 MockRead("HTTP/1.1 200 OK\r\n\r\n"), | 9445 MockRead("HTTP/1.1 200 OK\r\n\r\n"), |
| 9446 MockRead("hello world"), | 9446 MockRead("hello world"), |
| 9447 MockRead(ASYNC, OK), | 9447 MockRead(ASYNC, OK), |
| 9448 }; | 9448 }; |
| 9449 StaticSocketDataProvider second_data( | 9449 StaticSocketDataProvider second_data( |
| 9450 data_reads, arraysize(data_reads), NULL, 0); | 9450 data_reads, arraysize(data_reads), NULL, 0); |
| 9451 session_deps_.socket_factory->AddSocketDataProvider(&second_data); | 9451 session_deps_.socket_factory->AddSocketDataProvider(&second_data); |
| 9452 | 9452 |
| 9453 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 9453 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 9454 | 9454 |
| 9455 base::WeakPtr<HttpServerProperties> http_server_properties = | 9455 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 9456 session->http_server_properties(); | 9456 session->http_server_properties(); |
| 9457 const int kRestrictedAlternatePort = 80; | 9457 const int kRestrictedAlternatePort = 80; |
| 9458 AlternativeService alternative_service( | 9458 AlternativeService alternative_service( |
| 9459 AlternateProtocolFromNextProto(GetParam()), "www.example.org", | 9459 AlternateProtocolFromNextProto(GetParam()), "www.example.org", |
| 9460 kRestrictedAlternatePort); | 9460 kRestrictedAlternatePort); |
| 9461 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); | 9461 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); |
| 9462 http_server_properties->SetAlternativeService( | 9462 http_server_properties->SetAlternativeService( |
| 9463 HostPortPair::FromURL(restricted_port_request.url), alternative_service, | 9463 HostPortPair::FromURL(restricted_port_request.url), alternative_service, |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9495 | 9495 |
| 9496 MockRead data_reads[] = { | 9496 MockRead data_reads[] = { |
| 9497 MockRead("HTTP/1.1 200 OK\r\n\r\n"), | 9497 MockRead("HTTP/1.1 200 OK\r\n\r\n"), |
| 9498 MockRead("hello world"), | 9498 MockRead("hello world"), |
| 9499 MockRead(ASYNC, OK), | 9499 MockRead(ASYNC, OK), |
| 9500 }; | 9500 }; |
| 9501 StaticSocketDataProvider second_data( | 9501 StaticSocketDataProvider second_data( |
| 9502 data_reads, arraysize(data_reads), NULL, 0); | 9502 data_reads, arraysize(data_reads), NULL, 0); |
| 9503 session_deps_.socket_factory->AddSocketDataProvider(&second_data); | 9503 session_deps_.socket_factory->AddSocketDataProvider(&second_data); |
| 9504 | 9504 |
| 9505 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 9505 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 9506 | 9506 |
| 9507 base::WeakPtr<HttpServerProperties> http_server_properties = | 9507 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 9508 session->http_server_properties(); | 9508 session->http_server_properties(); |
| 9509 const int kRestrictedAlternatePort = 80; | 9509 const int kRestrictedAlternatePort = 80; |
| 9510 AlternativeService alternative_service( | 9510 AlternativeService alternative_service( |
| 9511 AlternateProtocolFromNextProto(GetParam()), "www.example.org", | 9511 AlternateProtocolFromNextProto(GetParam()), "www.example.org", |
| 9512 kRestrictedAlternatePort); | 9512 kRestrictedAlternatePort); |
| 9513 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); | 9513 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); |
| 9514 http_server_properties->SetAlternativeService( | 9514 http_server_properties->SetAlternativeService( |
| 9515 HostPortPair::FromURL(unrestricted_port_request.url), alternative_service, | 9515 HostPortPair::FromURL(unrestricted_port_request.url), alternative_service, |
| (...skipping 30 matching lines...) Expand all Loading... |
| 9546 | 9546 |
| 9547 MockRead data_reads[] = { | 9547 MockRead data_reads[] = { |
| 9548 MockRead("HTTP/1.1 200 OK\r\n\r\n"), | 9548 MockRead("HTTP/1.1 200 OK\r\n\r\n"), |
| 9549 MockRead("hello world"), | 9549 MockRead("hello world"), |
| 9550 MockRead(ASYNC, OK), | 9550 MockRead(ASYNC, OK), |
| 9551 }; | 9551 }; |
| 9552 StaticSocketDataProvider second_data( | 9552 StaticSocketDataProvider second_data( |
| 9553 data_reads, arraysize(data_reads), NULL, 0); | 9553 data_reads, arraysize(data_reads), NULL, 0); |
| 9554 session_deps_.socket_factory->AddSocketDataProvider(&second_data); | 9554 session_deps_.socket_factory->AddSocketDataProvider(&second_data); |
| 9555 | 9555 |
| 9556 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 9556 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 9557 | 9557 |
| 9558 base::WeakPtr<HttpServerProperties> http_server_properties = | 9558 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 9559 session->http_server_properties(); | 9559 session->http_server_properties(); |
| 9560 const int kUnrestrictedAlternatePort = 1025; | 9560 const int kUnrestrictedAlternatePort = 1025; |
| 9561 AlternativeService alternative_service( | 9561 AlternativeService alternative_service( |
| 9562 AlternateProtocolFromNextProto(GetParam()), "www.example.org", | 9562 AlternateProtocolFromNextProto(GetParam()), "www.example.org", |
| 9563 kUnrestrictedAlternatePort); | 9563 kUnrestrictedAlternatePort); |
| 9564 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); | 9564 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); |
| 9565 http_server_properties->SetAlternativeService( | 9565 http_server_properties->SetAlternativeService( |
| 9566 HostPortPair::FromURL(unrestricted_port_request.url), alternative_service, | 9566 HostPortPair::FromURL(unrestricted_port_request.url), alternative_service, |
| (...skipping 25 matching lines...) Expand all Loading... |
| 9592 // so only the standard HTTP request will try to connect. | 9592 // so only the standard HTTP request will try to connect. |
| 9593 MockRead data_reads[] = { | 9593 MockRead data_reads[] = { |
| 9594 MockRead("HTTP/1.1 200 OK\r\n\r\n"), | 9594 MockRead("HTTP/1.1 200 OK\r\n\r\n"), |
| 9595 MockRead("hello world"), | 9595 MockRead("hello world"), |
| 9596 MockRead(ASYNC, OK), | 9596 MockRead(ASYNC, OK), |
| 9597 }; | 9597 }; |
| 9598 StaticSocketDataProvider data( | 9598 StaticSocketDataProvider data( |
| 9599 data_reads, arraysize(data_reads), NULL, 0); | 9599 data_reads, arraysize(data_reads), NULL, 0); |
| 9600 session_deps_.socket_factory->AddSocketDataProvider(&data); | 9600 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 9601 | 9601 |
| 9602 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 9602 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 9603 | 9603 |
| 9604 base::WeakPtr<HttpServerProperties> http_server_properties = | 9604 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 9605 session->http_server_properties(); | 9605 session->http_server_properties(); |
| 9606 const int kUnsafePort = 7; | 9606 const int kUnsafePort = 7; |
| 9607 AlternativeService alternative_service( | 9607 AlternativeService alternative_service( |
| 9608 AlternateProtocolFromNextProto(GetParam()), "www.example.org", | 9608 AlternateProtocolFromNextProto(GetParam()), "www.example.org", |
| 9609 kUnsafePort); | 9609 kUnsafePort); |
| 9610 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); | 9610 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); |
| 9611 http_server_properties->SetAlternativeService( | 9611 http_server_properties->SetAlternativeService( |
| 9612 HostPortPair::FromURL(request.url), alternative_service, 1.0, expiration); | 9612 HostPortPair::FromURL(request.url), alternative_service, 1.0, expiration); |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9677 MockConnect never_finishing_connect(SYNCHRONOUS, ERR_IO_PENDING); | 9677 MockConnect never_finishing_connect(SYNCHRONOUS, ERR_IO_PENDING); |
| 9678 StaticSocketDataProvider hanging_non_alternate_protocol_socket( | 9678 StaticSocketDataProvider hanging_non_alternate_protocol_socket( |
| 9679 NULL, 0, NULL, 0); | 9679 NULL, 0, NULL, 0); |
| 9680 hanging_non_alternate_protocol_socket.set_connect_data( | 9680 hanging_non_alternate_protocol_socket.set_connect_data( |
| 9681 never_finishing_connect); | 9681 never_finishing_connect); |
| 9682 session_deps_.socket_factory->AddSocketDataProvider( | 9682 session_deps_.socket_factory->AddSocketDataProvider( |
| 9683 &hanging_non_alternate_protocol_socket); | 9683 &hanging_non_alternate_protocol_socket); |
| 9684 | 9684 |
| 9685 TestCompletionCallback callback; | 9685 TestCompletionCallback callback; |
| 9686 | 9686 |
| 9687 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 9687 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 9688 scoped_ptr<HttpTransaction> trans( | 9688 scoped_ptr<HttpTransaction> trans( |
| 9689 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 9689 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 9690 | 9690 |
| 9691 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 9691 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 9692 EXPECT_EQ(ERR_IO_PENDING, rv); | 9692 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 9693 EXPECT_EQ(OK, callback.WaitForResult()); | 9693 EXPECT_EQ(OK, callback.WaitForResult()); |
| 9694 | 9694 |
| 9695 const HttpResponseInfo* response = trans->GetResponseInfo(); | 9695 const HttpResponseInfo* response = trans->GetResponseInfo(); |
| 9696 ASSERT_TRUE(response != NULL); | 9696 ASSERT_TRUE(response != NULL); |
| 9697 ASSERT_TRUE(response->headers.get() != NULL); | 9697 ASSERT_TRUE(response->headers.get() != NULL); |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9779 }; | 9779 }; |
| 9780 | 9780 |
| 9781 SequencedSocketData spdy_data(spdy_reads, arraysize(spdy_reads), spdy_writes, | 9781 SequencedSocketData spdy_data(spdy_reads, arraysize(spdy_reads), spdy_writes, |
| 9782 arraysize(spdy_writes)); | 9782 arraysize(spdy_writes)); |
| 9783 // Socket 4 is the successful Alternate-Protocol for transaction 3. | 9783 // Socket 4 is the successful Alternate-Protocol for transaction 3. |
| 9784 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); | 9784 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); |
| 9785 | 9785 |
| 9786 // Socket 5 is the unsuccessful non-Alternate-Protocol for transaction 3. | 9786 // Socket 5 is the unsuccessful non-Alternate-Protocol for transaction 3. |
| 9787 session_deps_.socket_factory->AddSocketDataProvider(&hanging_socket); | 9787 session_deps_.socket_factory->AddSocketDataProvider(&hanging_socket); |
| 9788 | 9788 |
| 9789 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 9789 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 9790 TestCompletionCallback callback1; | 9790 TestCompletionCallback callback1; |
| 9791 HttpNetworkTransaction trans1(DEFAULT_PRIORITY, session.get()); | 9791 HttpNetworkTransaction trans1(DEFAULT_PRIORITY, session.get()); |
| 9792 | 9792 |
| 9793 int rv = trans1.Start(&request, callback1.callback(), BoundNetLog()); | 9793 int rv = trans1.Start(&request, callback1.callback(), BoundNetLog()); |
| 9794 EXPECT_EQ(ERR_IO_PENDING, rv); | 9794 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 9795 EXPECT_EQ(OK, callback1.WaitForResult()); | 9795 EXPECT_EQ(OK, callback1.WaitForResult()); |
| 9796 | 9796 |
| 9797 const HttpResponseInfo* response = trans1.GetResponseInfo(); | 9797 const HttpResponseInfo* response = trans1.GetResponseInfo(); |
| 9798 ASSERT_TRUE(response != NULL); | 9798 ASSERT_TRUE(response != NULL); |
| 9799 ASSERT_TRUE(response->headers.get() != NULL); | 9799 ASSERT_TRUE(response->headers.get() != NULL); |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9870 hanging_alternate_protocol_socket.set_connect_data( | 9870 hanging_alternate_protocol_socket.set_connect_data( |
| 9871 never_finishing_connect); | 9871 never_finishing_connect); |
| 9872 session_deps_.socket_factory->AddSocketDataProvider( | 9872 session_deps_.socket_factory->AddSocketDataProvider( |
| 9873 &hanging_alternate_protocol_socket); | 9873 &hanging_alternate_protocol_socket); |
| 9874 | 9874 |
| 9875 // 2nd request is just a copy of the first one, over HTTP again. | 9875 // 2nd request is just a copy of the first one, over HTTP again. |
| 9876 session_deps_.socket_factory->AddSocketDataProvider(&first_transaction); | 9876 session_deps_.socket_factory->AddSocketDataProvider(&first_transaction); |
| 9877 | 9877 |
| 9878 TestCompletionCallback callback; | 9878 TestCompletionCallback callback; |
| 9879 | 9879 |
| 9880 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 9880 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 9881 scoped_ptr<HttpTransaction> trans( | 9881 scoped_ptr<HttpTransaction> trans( |
| 9882 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 9882 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 9883 | 9883 |
| 9884 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 9884 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 9885 EXPECT_EQ(ERR_IO_PENDING, rv); | 9885 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 9886 EXPECT_EQ(OK, callback.WaitForResult()); | 9886 EXPECT_EQ(OK, callback.WaitForResult()); |
| 9887 | 9887 |
| 9888 const HttpResponseInfo* response = trans->GetResponseInfo(); | 9888 const HttpResponseInfo* response = trans->GetResponseInfo(); |
| 9889 ASSERT_TRUE(response != NULL); | 9889 ASSERT_TRUE(response != NULL); |
| 9890 ASSERT_TRUE(response->headers.get() != NULL); | 9890 ASSERT_TRUE(response->headers.get() != NULL); |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10034 MockConnect never_finishing_connect(SYNCHRONOUS, ERR_IO_PENDING); | 10034 MockConnect never_finishing_connect(SYNCHRONOUS, ERR_IO_PENDING); |
| 10035 StaticSocketDataProvider hanging_non_alternate_protocol_socket( | 10035 StaticSocketDataProvider hanging_non_alternate_protocol_socket( |
| 10036 NULL, 0, NULL, 0); | 10036 NULL, 0, NULL, 0); |
| 10037 hanging_non_alternate_protocol_socket.set_connect_data( | 10037 hanging_non_alternate_protocol_socket.set_connect_data( |
| 10038 never_finishing_connect); | 10038 never_finishing_connect); |
| 10039 session_deps_.socket_factory->AddSocketDataProvider( | 10039 session_deps_.socket_factory->AddSocketDataProvider( |
| 10040 &hanging_non_alternate_protocol_socket); | 10040 &hanging_non_alternate_protocol_socket); |
| 10041 | 10041 |
| 10042 TestCompletionCallback callback; | 10042 TestCompletionCallback callback; |
| 10043 | 10043 |
| 10044 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 10044 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 10045 scoped_ptr<HttpTransaction> trans( | 10045 scoped_ptr<HttpTransaction> trans( |
| 10046 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 10046 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 10047 | 10047 |
| 10048 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 10048 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 10049 EXPECT_EQ(ERR_IO_PENDING, rv); | 10049 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 10050 EXPECT_EQ(OK, callback.WaitForResult()); | 10050 EXPECT_EQ(OK, callback.WaitForResult()); |
| 10051 | 10051 |
| 10052 const HttpResponseInfo* response = trans->GetResponseInfo(); | 10052 const HttpResponseInfo* response = trans->GetResponseInfo(); |
| 10053 ASSERT_TRUE(response != NULL); | 10053 ASSERT_TRUE(response != NULL); |
| 10054 ASSERT_TRUE(response->headers.get() != NULL); | 10054 ASSERT_TRUE(response->headers.get() != NULL); |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10127 MockRead spdy_reads[] = { | 10127 MockRead spdy_reads[] = { |
| 10128 CreateMockRead(*resp, 1), CreateMockRead(*data, 2), MockRead(ASYNC, 0, 3), | 10128 CreateMockRead(*resp, 1), CreateMockRead(*data, 2), MockRead(ASYNC, 0, 3), |
| 10129 }; | 10129 }; |
| 10130 | 10130 |
| 10131 SequencedSocketData spdy_data(spdy_reads, arraysize(spdy_reads), spdy_writes, | 10131 SequencedSocketData spdy_data(spdy_reads, arraysize(spdy_reads), spdy_writes, |
| 10132 arraysize(spdy_writes)); | 10132 arraysize(spdy_writes)); |
| 10133 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); | 10133 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); |
| 10134 | 10134 |
| 10135 TestCompletionCallback callback; | 10135 TestCompletionCallback callback; |
| 10136 | 10136 |
| 10137 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 10137 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 10138 | 10138 |
| 10139 scoped_ptr<HttpTransaction> trans( | 10139 scoped_ptr<HttpTransaction> trans( |
| 10140 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 10140 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 10141 | 10141 |
| 10142 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 10142 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 10143 EXPECT_EQ(ERR_IO_PENDING, rv); | 10143 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 10144 EXPECT_EQ(OK, callback.WaitForResult()); | 10144 EXPECT_EQ(OK, callback.WaitForResult()); |
| 10145 | 10145 |
| 10146 const HttpResponseInfo* response = trans->GetResponseInfo(); | 10146 const HttpResponseInfo* response = trans->GetResponseInfo(); |
| 10147 ASSERT_TRUE(response != NULL); | 10147 ASSERT_TRUE(response != NULL); |
| 10148 ASSERT_TRUE(response->headers.get() != NULL); | 10148 ASSERT_TRUE(response->headers.get() != NULL); |
| 10149 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 10149 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
| 10150 | 10150 |
| 10151 std::string response_data; | 10151 std::string response_data; |
| 10152 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data)); | 10152 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data)); |
| 10153 EXPECT_EQ("hello world", response_data); | 10153 EXPECT_EQ("hello world", response_data); |
| 10154 | 10154 |
| 10155 // Set up an initial SpdySession in the pool to reuse. | 10155 // Set up an initial SpdySession in the pool to reuse. |
| 10156 HostPortPair host_port_pair("www.example.org", 443); | 10156 HostPortPair host_port_pair("www.example.org", 443); |
| 10157 SpdySessionKey key(host_port_pair, ProxyServer::Direct(), | 10157 SpdySessionKey key(host_port_pair, ProxyServer::Direct(), |
| 10158 PRIVACY_MODE_DISABLED); | 10158 PRIVACY_MODE_DISABLED); |
| 10159 base::WeakPtr<SpdySession> spdy_session = | 10159 base::WeakPtr<SpdySession> spdy_session = |
| 10160 CreateSecureSpdySession(session.get(), key, BoundNetLog()); | 10160 CreateSecureSpdySession(session, key, BoundNetLog()); |
| 10161 | 10161 |
| 10162 trans.reset(new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 10162 trans.reset(new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 10163 | 10163 |
| 10164 rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 10164 rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 10165 EXPECT_EQ(ERR_IO_PENDING, rv); | 10165 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 10166 EXPECT_EQ(OK, callback.WaitForResult()); | 10166 EXPECT_EQ(OK, callback.WaitForResult()); |
| 10167 | 10167 |
| 10168 response = trans->GetResponseInfo(); | 10168 response = trans->GetResponseInfo(); |
| 10169 ASSERT_TRUE(response != NULL); | 10169 ASSERT_TRUE(response != NULL); |
| 10170 ASSERT_TRUE(response->headers.get() != NULL); | 10170 ASSERT_TRUE(response->headers.get() != NULL); |
| (...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10519 ProxyService::CreateFixed(test_config.proxy_url)); | 10519 ProxyService::CreateFixed(test_config.proxy_url)); |
| 10520 } else { | 10520 } else { |
| 10521 session_deps_.proxy_service.reset(ProxyService::CreateDirect()); | 10521 session_deps_.proxy_service.reset(ProxyService::CreateDirect()); |
| 10522 } | 10522 } |
| 10523 | 10523 |
| 10524 HttpRequestInfo request; | 10524 HttpRequestInfo request; |
| 10525 request.method = "GET"; | 10525 request.method = "GET"; |
| 10526 request.url = GURL(test_config.server_url); | 10526 request.url = GURL(test_config.server_url); |
| 10527 request.load_flags = 0; | 10527 request.load_flags = 0; |
| 10528 | 10528 |
| 10529 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 10529 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 10530 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 10530 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
| 10531 | 10531 |
| 10532 SSLSocketDataProvider ssl_socket_data_provider(SYNCHRONOUS, OK); | 10532 SSLSocketDataProvider ssl_socket_data_provider(SYNCHRONOUS, OK); |
| 10533 | 10533 |
| 10534 std::vector<std::vector<MockRead>> mock_reads(1); | 10534 std::vector<std::vector<MockRead>> mock_reads(1); |
| 10535 std::vector<std::vector<MockWrite>> mock_writes(1); | 10535 std::vector<std::vector<MockWrite>> mock_writes(1); |
| 10536 for (int round = 0; round < test_config.num_auth_rounds; ++round) { | 10536 for (int round = 0; round < test_config.num_auth_rounds; ++round) { |
| 10537 const TestRound& read_write_round = test_config.rounds[round]; | 10537 const TestRound& read_write_round = test_config.rounds[round]; |
| 10538 | 10538 |
| 10539 // Set up expected reads and writes. | 10539 // Set up expected reads and writes. |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10618 origin, BoundNetLog()); | 10618 origin, BoundNetLog()); |
| 10619 auth_factory->AddMockHandler(auth_handler, HttpAuth::AUTH_SERVER); | 10619 auth_factory->AddMockHandler(auth_handler, HttpAuth::AUTH_SERVER); |
| 10620 | 10620 |
| 10621 int rv = OK; | 10621 int rv = OK; |
| 10622 const HttpResponseInfo* response = NULL; | 10622 const HttpResponseInfo* response = NULL; |
| 10623 HttpRequestInfo request; | 10623 HttpRequestInfo request; |
| 10624 request.method = "GET"; | 10624 request.method = "GET"; |
| 10625 request.url = origin; | 10625 request.url = origin; |
| 10626 request.load_flags = 0; | 10626 request.load_flags = 0; |
| 10627 | 10627 |
| 10628 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 10628 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 10629 | 10629 |
| 10630 // Use a TCP Socket Pool with only one connection per group. This is used | 10630 // Use a TCP Socket Pool with only one connection per group. This is used |
| 10631 // to validate that the TCP socket is not released to the pool between | 10631 // to validate that the TCP socket is not released to the pool between |
| 10632 // each round of multi-round authentication. | 10632 // each round of multi-round authentication. |
| 10633 HttpNetworkSessionPeer session_peer(session.get()); | 10633 HttpNetworkSessionPeer session_peer(session); |
| 10634 TransportClientSocketPool* transport_pool = new TransportClientSocketPool( | 10634 TransportClientSocketPool* transport_pool = new TransportClientSocketPool( |
| 10635 50, // Max sockets for pool | 10635 50, // Max sockets for pool |
| 10636 1, // Max sockets per group | 10636 1, // Max sockets per group |
| 10637 session_deps_.host_resolver.get(), | 10637 session_deps_.host_resolver.get(), |
| 10638 session_deps_.socket_factory.get(), | 10638 session_deps_.socket_factory.get(), |
| 10639 session_deps_.net_log); | 10639 session_deps_.net_log); |
| 10640 scoped_ptr<MockClientSocketPoolManager> mock_pool_manager( | 10640 scoped_ptr<MockClientSocketPoolManager> mock_pool_manager( |
| 10641 new MockClientSocketPoolManager); | 10641 new MockClientSocketPoolManager); |
| 10642 mock_pool_manager->SetTransportSocketPool(transport_pool); | 10642 mock_pool_manager->SetTransportSocketPool(transport_pool); |
| 10643 session_peer.SetClientSocketPoolManager(mock_pool_manager.Pass()); | 10643 session_peer.SetClientSocketPoolManager(mock_pool_manager.Pass()); |
| (...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10818 ssl.SetNextProto(kProtoHTTP11); | 10818 ssl.SetNextProto(kProtoHTTP11); |
| 10819 | 10819 |
| 10820 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 10820 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
| 10821 | 10821 |
| 10822 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 10822 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
| 10823 data_writes, arraysize(data_writes)); | 10823 data_writes, arraysize(data_writes)); |
| 10824 session_deps_.socket_factory->AddSocketDataProvider(&data); | 10824 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 10825 | 10825 |
| 10826 TestCompletionCallback callback; | 10826 TestCompletionCallback callback; |
| 10827 | 10827 |
| 10828 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 10828 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 10829 scoped_ptr<HttpTransaction> trans( | 10829 scoped_ptr<HttpTransaction> trans( |
| 10830 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 10830 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 10831 | 10831 |
| 10832 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 10832 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 10833 | 10833 |
| 10834 EXPECT_EQ(ERR_IO_PENDING, rv); | 10834 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 10835 EXPECT_EQ(OK, callback.WaitForResult()); | 10835 EXPECT_EQ(OK, callback.WaitForResult()); |
| 10836 | 10836 |
| 10837 const HttpResponseInfo* response = trans->GetResponseInfo(); | 10837 const HttpResponseInfo* response = trans->GetResponseInfo(); |
| 10838 ASSERT_TRUE(response != NULL); | 10838 ASSERT_TRUE(response != NULL); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10870 MockRead spdy_reads[] = { | 10870 MockRead spdy_reads[] = { |
| 10871 MockRead(SYNCHRONOUS, 0, 0) // Not async - return 0 immediately. | 10871 MockRead(SYNCHRONOUS, 0, 0) // Not async - return 0 immediately. |
| 10872 }; | 10872 }; |
| 10873 | 10873 |
| 10874 SequencedSocketData spdy_data(spdy_reads, arraysize(spdy_reads), spdy_writes, | 10874 SequencedSocketData spdy_data(spdy_reads, arraysize(spdy_reads), spdy_writes, |
| 10875 arraysize(spdy_writes)); | 10875 arraysize(spdy_writes)); |
| 10876 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); | 10876 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); |
| 10877 | 10877 |
| 10878 TestCompletionCallback callback; | 10878 TestCompletionCallback callback; |
| 10879 | 10879 |
| 10880 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 10880 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 10881 scoped_ptr<HttpTransaction> trans( | 10881 scoped_ptr<HttpTransaction> trans( |
| 10882 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 10882 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 10883 | 10883 |
| 10884 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 10884 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 10885 EXPECT_EQ(ERR_IO_PENDING, rv); | 10885 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 10886 EXPECT_EQ(ERR_CONNECTION_CLOSED, callback.WaitForResult()); | 10886 EXPECT_EQ(ERR_CONNECTION_CLOSED, callback.WaitForResult()); |
| 10887 } | 10887 } |
| 10888 | 10888 |
| 10889 // A subclass of HttpAuthHandlerMock that records the request URL when | 10889 // A subclass of HttpAuthHandlerMock that records the request URL when |
| 10890 // it gets it. This is needed since the auth handler may get destroyed | 10890 // it gets it. This is needed since the auth handler may get destroyed |
| (...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11024 StaticSocketDataProvider hanging_non_alternate_protocol_socket( | 11024 StaticSocketDataProvider hanging_non_alternate_protocol_socket( |
| 11025 NULL, 0, NULL, 0); | 11025 NULL, 0, NULL, 0); |
| 11026 hanging_non_alternate_protocol_socket.set_connect_data( | 11026 hanging_non_alternate_protocol_socket.set_connect_data( |
| 11027 never_finishing_connect); | 11027 never_finishing_connect); |
| 11028 | 11028 |
| 11029 session_deps_.socket_factory->AddSocketDataProvider(&data_1); | 11029 session_deps_.socket_factory->AddSocketDataProvider(&data_1); |
| 11030 session_deps_.socket_factory->AddSocketDataProvider(&data_2); | 11030 session_deps_.socket_factory->AddSocketDataProvider(&data_2); |
| 11031 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 11031 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
| 11032 session_deps_.socket_factory->AddSocketDataProvider( | 11032 session_deps_.socket_factory->AddSocketDataProvider( |
| 11033 &hanging_non_alternate_protocol_socket); | 11033 &hanging_non_alternate_protocol_socket); |
| 11034 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 11034 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 11035 | 11035 |
| 11036 // First round should work and provide the Alternate-Protocol state. | 11036 // First round should work and provide the Alternate-Protocol state. |
| 11037 TestCompletionCallback callback_1; | 11037 TestCompletionCallback callback_1; |
| 11038 scoped_ptr<HttpTransaction> trans_1( | 11038 scoped_ptr<HttpTransaction> trans_1( |
| 11039 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 11039 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 11040 int rv = trans_1->Start(&request, callback_1.callback(), BoundNetLog()); | 11040 int rv = trans_1->Start(&request, callback_1.callback(), BoundNetLog()); |
| 11041 EXPECT_EQ(ERR_IO_PENDING, rv); | 11041 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 11042 EXPECT_EQ(OK, callback_1.WaitForResult()); | 11042 EXPECT_EQ(OK, callback_1.WaitForResult()); |
| 11043 | 11043 |
| 11044 // Second round should attempt a tunnel connect and get an auth challenge. | 11044 // Second round should attempt a tunnel connect and get an auth challenge. |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11084 MockRead(SYNCHRONOUS, "hello world"), | 11084 MockRead(SYNCHRONOUS, "hello world"), |
| 11085 MockRead(SYNCHRONOUS, OK), | 11085 MockRead(SYNCHRONOUS, OK), |
| 11086 }; | 11086 }; |
| 11087 | 11087 |
| 11088 HttpRequestInfo request; | 11088 HttpRequestInfo request; |
| 11089 request.method = "GET"; | 11089 request.method = "GET"; |
| 11090 request.url = GURL("http://www.example.org/"); | 11090 request.url = GURL("http://www.example.org/"); |
| 11091 request.load_flags = 0; | 11091 request.load_flags = 0; |
| 11092 | 11092 |
| 11093 session_deps_.host_resolver->set_synchronous_mode(true); | 11093 session_deps_.host_resolver->set_synchronous_mode(true); |
| 11094 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 11094 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 11095 scoped_ptr<HttpTransaction> trans( | 11095 scoped_ptr<HttpTransaction> trans( |
| 11096 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 11096 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 11097 | 11097 |
| 11098 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 11098 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
| 11099 data.set_connect_data(mock_connect); | 11099 data.set_connect_data(mock_connect); |
| 11100 session_deps_.socket_factory->AddSocketDataProvider(&data); | 11100 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 11101 | 11101 |
| 11102 TestCompletionCallback callback; | 11102 TestCompletionCallback callback; |
| 11103 | 11103 |
| 11104 BoundTestNetLog log; | 11104 BoundTestNetLog log; |
| (...skipping 17 matching lines...) Expand all Loading... |
| 11122 MockRead(ASYNC, "Connection: Keep-Alive\r\n\r\n"), | 11122 MockRead(ASYNC, "Connection: Keep-Alive\r\n\r\n"), |
| 11123 MockRead(ASYNC, "1"), | 11123 MockRead(ASYNC, "1"), |
| 11124 // 2 async reads are necessary to trigger a ReadResponseBody call after the | 11124 // 2 async reads are necessary to trigger a ReadResponseBody call after the |
| 11125 // HttpNetworkTransaction has been deleted. | 11125 // HttpNetworkTransaction has been deleted. |
| 11126 MockRead(ASYNC, "2"), | 11126 MockRead(ASYNC, "2"), |
| 11127 MockRead(SYNCHRONOUS, ERR_IO_PENDING), // Should never read this. | 11127 MockRead(SYNCHRONOUS, ERR_IO_PENDING), // Should never read this. |
| 11128 }; | 11128 }; |
| 11129 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 11129 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
| 11130 session_deps_.socket_factory->AddSocketDataProvider(&data); | 11130 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 11131 | 11131 |
| 11132 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 11132 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 11133 | 11133 |
| 11134 { | 11134 { |
| 11135 HttpRequestInfo request; | 11135 HttpRequestInfo request; |
| 11136 request.method = "GET"; | 11136 request.method = "GET"; |
| 11137 request.url = GURL("http://www.example.org/"); | 11137 request.url = GURL("http://www.example.org/"); |
| 11138 request.load_flags = 0; | 11138 request.load_flags = 0; |
| 11139 | 11139 |
| 11140 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 11140 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
| 11141 TestCompletionCallback callback; | 11141 TestCompletionCallback callback; |
| 11142 | 11142 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 11158 // Socket should now be idle, waiting to be reused. | 11158 // Socket should now be idle, waiting to be reused. |
| 11159 EXPECT_EQ(1, GetIdleSocketCountInTransportSocketPool(session.get())); | 11159 EXPECT_EQ(1, GetIdleSocketCountInTransportSocketPool(session.get())); |
| 11160 } | 11160 } |
| 11161 | 11161 |
| 11162 // Test a basic GET request through a proxy. | 11162 // Test a basic GET request through a proxy. |
| 11163 TEST_P(HttpNetworkTransactionTest, ProxyGet) { | 11163 TEST_P(HttpNetworkTransactionTest, ProxyGet) { |
| 11164 session_deps_.proxy_service.reset( | 11164 session_deps_.proxy_service.reset( |
| 11165 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70")); | 11165 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70")); |
| 11166 BoundTestNetLog log; | 11166 BoundTestNetLog log; |
| 11167 session_deps_.net_log = log.bound().net_log(); | 11167 session_deps_.net_log = log.bound().net_log(); |
| 11168 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 11168 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 11169 | 11169 |
| 11170 HttpRequestInfo request; | 11170 HttpRequestInfo request; |
| 11171 request.method = "GET"; | 11171 request.method = "GET"; |
| 11172 request.url = GURL("http://www.example.org/"); | 11172 request.url = GURL("http://www.example.org/"); |
| 11173 | 11173 |
| 11174 MockWrite data_writes1[] = { | 11174 MockWrite data_writes1[] = { |
| 11175 MockWrite( | 11175 MockWrite( |
| 11176 "GET http://www.example.org/ HTTP/1.1\r\n" | 11176 "GET http://www.example.org/ HTTP/1.1\r\n" |
| 11177 "Host: www.example.org\r\n" | 11177 "Host: www.example.org\r\n" |
| 11178 "Proxy-Connection: keep-alive\r\n\r\n"), | 11178 "Proxy-Connection: keep-alive\r\n\r\n"), |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11222 TestLoadTimingNotReusedWithPac(load_timing_info, | 11222 TestLoadTimingNotReusedWithPac(load_timing_info, |
| 11223 CONNECT_TIMING_HAS_CONNECT_TIMES_ONLY); | 11223 CONNECT_TIMING_HAS_CONNECT_TIMES_ONLY); |
| 11224 } | 11224 } |
| 11225 | 11225 |
| 11226 // Test a basic HTTPS GET request through a proxy. | 11226 // Test a basic HTTPS GET request through a proxy. |
| 11227 TEST_P(HttpNetworkTransactionTest, ProxyTunnelGet) { | 11227 TEST_P(HttpNetworkTransactionTest, ProxyTunnelGet) { |
| 11228 session_deps_.proxy_service.reset( | 11228 session_deps_.proxy_service.reset( |
| 11229 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70")); | 11229 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70")); |
| 11230 BoundTestNetLog log; | 11230 BoundTestNetLog log; |
| 11231 session_deps_.net_log = log.bound().net_log(); | 11231 session_deps_.net_log = log.bound().net_log(); |
| 11232 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 11232 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 11233 | 11233 |
| 11234 HttpRequestInfo request; | 11234 HttpRequestInfo request; |
| 11235 request.method = "GET"; | 11235 request.method = "GET"; |
| 11236 request.url = GURL("https://www.example.org/"); | 11236 request.url = GURL("https://www.example.org/"); |
| 11237 | 11237 |
| 11238 // Since we have proxy, should try to establish tunnel. | 11238 // Since we have proxy, should try to establish tunnel. |
| 11239 MockWrite data_writes1[] = { | 11239 MockWrite data_writes1[] = { |
| 11240 MockWrite( | 11240 MockWrite( |
| 11241 "CONNECT www.example.org:443 HTTP/1.1\r\n" | 11241 "CONNECT www.example.org:443 HTTP/1.1\r\n" |
| 11242 "Host: www.example.org\r\n" | 11242 "Host: www.example.org\r\n" |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11299 TestLoadTimingNotReusedWithPac(load_timing_info, | 11299 TestLoadTimingNotReusedWithPac(load_timing_info, |
| 11300 CONNECT_TIMING_HAS_SSL_TIMES); | 11300 CONNECT_TIMING_HAS_SSL_TIMES); |
| 11301 } | 11301 } |
| 11302 | 11302 |
| 11303 // Test a basic HTTPS GET request through a proxy, but the server hangs up | 11303 // Test a basic HTTPS GET request through a proxy, but the server hangs up |
| 11304 // while establishing the tunnel. | 11304 // while establishing the tunnel. |
| 11305 TEST_P(HttpNetworkTransactionTest, ProxyTunnelGetHangup) { | 11305 TEST_P(HttpNetworkTransactionTest, ProxyTunnelGetHangup) { |
| 11306 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); | 11306 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); |
| 11307 BoundTestNetLog log; | 11307 BoundTestNetLog log; |
| 11308 session_deps_.net_log = log.bound().net_log(); | 11308 session_deps_.net_log = log.bound().net_log(); |
| 11309 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 11309 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 11310 | 11310 |
| 11311 HttpRequestInfo request; | 11311 HttpRequestInfo request; |
| 11312 request.method = "GET"; | 11312 request.method = "GET"; |
| 11313 request.url = GURL("https://www.example.org/"); | 11313 request.url = GURL("https://www.example.org/"); |
| 11314 | 11314 |
| 11315 // Since we have proxy, should try to establish tunnel. | 11315 // Since we have proxy, should try to establish tunnel. |
| 11316 MockWrite data_writes1[] = { | 11316 MockWrite data_writes1[] = { |
| 11317 MockWrite( | 11317 MockWrite( |
| 11318 "CONNECT www.example.org:443 HTTP/1.1\r\n" | 11318 "CONNECT www.example.org:443 HTTP/1.1\r\n" |
| 11319 "Host: www.example.org\r\n" | 11319 "Host: www.example.org\r\n" |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11371 }; | 11371 }; |
| 11372 | 11372 |
| 11373 SequencedSocketData spdy_data(spdy_reads, arraysize(spdy_reads), spdy_writes, | 11373 SequencedSocketData spdy_data(spdy_reads, arraysize(spdy_reads), spdy_writes, |
| 11374 arraysize(spdy_writes)); | 11374 arraysize(spdy_writes)); |
| 11375 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); | 11375 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); |
| 11376 | 11376 |
| 11377 SSLSocketDataProvider ssl(ASYNC, OK); | 11377 SSLSocketDataProvider ssl(ASYNC, OK); |
| 11378 ssl.SetNextProto(GetParam()); | 11378 ssl.SetNextProto(GetParam()); |
| 11379 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 11379 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
| 11380 | 11380 |
| 11381 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 11381 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 11382 | 11382 |
| 11383 // Set up an initial SpdySession in the pool to reuse. | 11383 // Set up an initial SpdySession in the pool to reuse. |
| 11384 HostPortPair host_port_pair("www.example.org", 443); | 11384 HostPortPair host_port_pair("www.example.org", 443); |
| 11385 SpdySessionKey key(host_port_pair, ProxyServer::Direct(), | 11385 SpdySessionKey key(host_port_pair, ProxyServer::Direct(), |
| 11386 PRIVACY_MODE_DISABLED); | 11386 PRIVACY_MODE_DISABLED); |
| 11387 base::WeakPtr<SpdySession> spdy_session = | 11387 base::WeakPtr<SpdySession> spdy_session = |
| 11388 CreateInsecureSpdySession(session.get(), key, BoundNetLog()); | 11388 CreateInsecureSpdySession(session, key, BoundNetLog()); |
| 11389 | 11389 |
| 11390 HttpRequestInfo request; | 11390 HttpRequestInfo request; |
| 11391 request.method = "GET"; | 11391 request.method = "GET"; |
| 11392 request.url = GURL("https://www.example.org/"); | 11392 request.url = GURL("https://www.example.org/"); |
| 11393 request.load_flags = 0; | 11393 request.load_flags = 0; |
| 11394 | 11394 |
| 11395 // This is the important line that marks this as a preconnect. | 11395 // This is the important line that marks this as a preconnect. |
| 11396 request.motivation = HttpRequestInfo::PRECONNECT_MOTIVATED; | 11396 request.motivation = HttpRequestInfo::PRECONNECT_MOTIVATED; |
| 11397 | 11397 |
| 11398 scoped_ptr<HttpTransaction> trans( | 11398 scoped_ptr<HttpTransaction> trans( |
| (...skipping 15 matching lines...) Expand all Loading... |
| 11414 request_info.load_flags = LOAD_NORMAL; | 11414 request_info.load_flags = LOAD_NORMAL; |
| 11415 | 11415 |
| 11416 SSLSocketDataProvider ssl_data(mode, OK); | 11416 SSLSocketDataProvider ssl_data(mode, OK); |
| 11417 MockWrite data_writes[] = { | 11417 MockWrite data_writes[] = { |
| 11418 MockWrite(mode, error), | 11418 MockWrite(mode, error), |
| 11419 }; | 11419 }; |
| 11420 StaticSocketDataProvider data(NULL, 0, data_writes, arraysize(data_writes)); | 11420 StaticSocketDataProvider data(NULL, 0, data_writes, arraysize(data_writes)); |
| 11421 session_deps_.socket_factory->AddSocketDataProvider(&data); | 11421 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 11422 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_data); | 11422 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_data); |
| 11423 | 11423 |
| 11424 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 11424 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 11425 scoped_ptr<HttpTransaction> trans( | 11425 scoped_ptr<HttpTransaction> trans( |
| 11426 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 11426 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 11427 | 11427 |
| 11428 TestCompletionCallback callback; | 11428 TestCompletionCallback callback; |
| 11429 int rv = trans->Start(&request_info, callback.callback(), BoundNetLog()); | 11429 int rv = trans->Start(&request_info, callback.callback(), BoundNetLog()); |
| 11430 if (rv == ERR_IO_PENDING) | 11430 if (rv == ERR_IO_PENDING) |
| 11431 rv = callback.WaitForResult(); | 11431 rv = callback.WaitForResult(); |
| 11432 ASSERT_EQ(error, rv); | 11432 ASSERT_EQ(error, rv); |
| 11433 } | 11433 } |
| 11434 | 11434 |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11501 // connection was attempted with TLSv1.1. This is transparent to the caller | 11501 // connection was attempted with TLSv1.1. This is transparent to the caller |
| 11502 // of the HttpNetworkTransaction. Because this test failure is due to | 11502 // of the HttpNetworkTransaction. Because this test failure is due to |
| 11503 // requiring a client certificate, this fallback handshake should also | 11503 // requiring a client certificate, this fallback handshake should also |
| 11504 // fail. | 11504 // fail. |
| 11505 SSLSocketDataProvider ssl_data4(ASYNC, ERR_SSL_PROTOCOL_ERROR); | 11505 SSLSocketDataProvider ssl_data4(ASYNC, ERR_SSL_PROTOCOL_ERROR); |
| 11506 ssl_data4.cert_request_info = cert_request.get(); | 11506 ssl_data4.cert_request_info = cert_request.get(); |
| 11507 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_data4); | 11507 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_data4); |
| 11508 StaticSocketDataProvider data4(NULL, 0, NULL, 0); | 11508 StaticSocketDataProvider data4(NULL, 0, NULL, 0); |
| 11509 session_deps_.socket_factory->AddSocketDataProvider(&data4); | 11509 session_deps_.socket_factory->AddSocketDataProvider(&data4); |
| 11510 | 11510 |
| 11511 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 11511 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 11512 scoped_ptr<HttpTransaction> trans( | 11512 scoped_ptr<HttpTransaction> trans( |
| 11513 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 11513 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 11514 | 11514 |
| 11515 // Begin the SSL handshake with the peer. This consumes ssl_data1. | 11515 // Begin the SSL handshake with the peer. This consumes ssl_data1. |
| 11516 TestCompletionCallback callback; | 11516 TestCompletionCallback callback; |
| 11517 int rv = trans->Start(&request_info, callback.callback(), BoundNetLog()); | 11517 int rv = trans->Start(&request_info, callback.callback(), BoundNetLog()); |
| 11518 ASSERT_EQ(ERR_IO_PENDING, rv); | 11518 ASSERT_EQ(ERR_IO_PENDING, rv); |
| 11519 | 11519 |
| 11520 // Complete the SSL handshake, which should abort due to requiring a | 11520 // Complete the SSL handshake, which should abort due to requiring a |
| 11521 // client certificate. | 11521 // client certificate. |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11618 StaticSocketDataProvider data4(data2_reads, arraysize(data2_reads), NULL, 0); | 11618 StaticSocketDataProvider data4(data2_reads, arraysize(data2_reads), NULL, 0); |
| 11619 session_deps_.socket_factory->AddSocketDataProvider(&data4); | 11619 session_deps_.socket_factory->AddSocketDataProvider(&data4); |
| 11620 | 11620 |
| 11621 // Need one more if TLSv1.2 is enabled. | 11621 // Need one more if TLSv1.2 is enabled. |
| 11622 SSLSocketDataProvider ssl_data5(ASYNC, OK); | 11622 SSLSocketDataProvider ssl_data5(ASYNC, OK); |
| 11623 ssl_data5.cert_request_info = cert_request.get(); | 11623 ssl_data5.cert_request_info = cert_request.get(); |
| 11624 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_data5); | 11624 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_data5); |
| 11625 StaticSocketDataProvider data5(data2_reads, arraysize(data2_reads), NULL, 0); | 11625 StaticSocketDataProvider data5(data2_reads, arraysize(data2_reads), NULL, 0); |
| 11626 session_deps_.socket_factory->AddSocketDataProvider(&data5); | 11626 session_deps_.socket_factory->AddSocketDataProvider(&data5); |
| 11627 | 11627 |
| 11628 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 11628 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 11629 scoped_ptr<HttpTransaction> trans( | 11629 scoped_ptr<HttpTransaction> trans( |
| 11630 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 11630 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 11631 | 11631 |
| 11632 // Begin the initial SSL handshake. | 11632 // Begin the initial SSL handshake. |
| 11633 TestCompletionCallback callback; | 11633 TestCompletionCallback callback; |
| 11634 int rv = trans->Start(&request_info, callback.callback(), BoundNetLog()); | 11634 int rv = trans->Start(&request_info, callback.callback(), BoundNetLog()); |
| 11635 ASSERT_EQ(ERR_IO_PENDING, rv); | 11635 ASSERT_EQ(ERR_IO_PENDING, rv); |
| 11636 | 11636 |
| 11637 // Complete the SSL handshake, which should abort due to requiring a | 11637 // Complete the SSL handshake, which should abort due to requiring a |
| 11638 // client certificate. | 11638 // client certificate. |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11711 requests[0].url = GURL("https://www.example.com/"); | 11711 requests[0].url = GURL("https://www.example.com/"); |
| 11712 requests[0].method = "GET"; | 11712 requests[0].method = "GET"; |
| 11713 requests[0].load_flags = LOAD_NORMAL; | 11713 requests[0].load_flags = LOAD_NORMAL; |
| 11714 | 11714 |
| 11715 requests[1].url = GURL("http://www.example.com/"); | 11715 requests[1].url = GURL("http://www.example.com/"); |
| 11716 requests[1].method = "GET"; | 11716 requests[1].method = "GET"; |
| 11717 requests[1].load_flags = LOAD_NORMAL; | 11717 requests[1].load_flags = LOAD_NORMAL; |
| 11718 | 11718 |
| 11719 for (size_t i = 0; i < arraysize(requests); ++i) { | 11719 for (size_t i = 0; i < arraysize(requests); ++i) { |
| 11720 session_deps_.socket_factory->ResetNextMockIndexes(); | 11720 session_deps_.socket_factory->ResetNextMockIndexes(); |
| 11721 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 11721 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 11722 scoped_ptr<HttpNetworkTransaction> trans( | 11722 scoped_ptr<HttpNetworkTransaction> trans( |
| 11723 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 11723 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 11724 | 11724 |
| 11725 // Begin the SSL handshake with the proxy. | 11725 // Begin the SSL handshake with the proxy. |
| 11726 TestCompletionCallback callback; | 11726 TestCompletionCallback callback; |
| 11727 int rv = trans->Start(&requests[i], callback.callback(), BoundNetLog()); | 11727 int rv = trans->Start(&requests[i], callback.callback(), BoundNetLog()); |
| 11728 ASSERT_EQ(ERR_IO_PENDING, rv); | 11728 ASSERT_EQ(ERR_IO_PENDING, rv); |
| 11729 | 11729 |
| 11730 // Complete the SSL handshake, which should abort due to requiring a | 11730 // Complete the SSL handshake, which should abort due to requiring a |
| 11731 // client certificate. | 11731 // client certificate. |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11764 HostPortPair("www.example.com", 443), &client_cert)); | 11764 HostPortPair("www.example.com", 443), &client_cert)); |
| 11765 } | 11765 } |
| 11766 } | 11766 } |
| 11767 | 11767 |
| 11768 TEST_P(HttpNetworkTransactionTest, UseIPConnectionPooling) { | 11768 TEST_P(HttpNetworkTransactionTest, UseIPConnectionPooling) { |
| 11769 session_deps_.use_alternative_services = true; | 11769 session_deps_.use_alternative_services = true; |
| 11770 session_deps_.next_protos = SpdyNextProtos(); | 11770 session_deps_.next_protos = SpdyNextProtos(); |
| 11771 | 11771 |
| 11772 // Set up a special HttpNetworkSession with a MockCachingHostResolver. | 11772 // Set up a special HttpNetworkSession with a MockCachingHostResolver. |
| 11773 session_deps_.host_resolver.reset(new MockCachingHostResolver()); | 11773 session_deps_.host_resolver.reset(new MockCachingHostResolver()); |
| 11774 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 11774 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 11775 SpdySessionPoolPeer pool_peer(session->spdy_session_pool()); | 11775 SpdySessionPoolPeer pool_peer(session->spdy_session_pool()); |
| 11776 pool_peer.DisableDomainAuthenticationVerification(); | 11776 pool_peer.DisableDomainAuthenticationVerification(); |
| 11777 | 11777 |
| 11778 SSLSocketDataProvider ssl(ASYNC, OK); | 11778 SSLSocketDataProvider ssl(ASYNC, OK); |
| 11779 ssl.SetNextProto(GetParam()); | 11779 ssl.SetNextProto(GetParam()); |
| 11780 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 11780 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
| 11781 | 11781 |
| 11782 scoped_ptr<SpdyFrame> host1_req( | 11782 scoped_ptr<SpdyFrame> host1_req( |
| 11783 spdy_util_.ConstructSpdyGet("https://www.example.org", false, 1, LOWEST)); | 11783 spdy_util_.ConstructSpdyGet("https://www.example.org", false, 1, LOWEST)); |
| 11784 scoped_ptr<SpdyFrame> host2_req( | 11784 scoped_ptr<SpdyFrame> host2_req( |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11863 ASSERT_EQ(OK, ReadTransaction(&trans2, &response_data)); | 11863 ASSERT_EQ(OK, ReadTransaction(&trans2, &response_data)); |
| 11864 EXPECT_EQ("hello!", response_data); | 11864 EXPECT_EQ("hello!", response_data); |
| 11865 } | 11865 } |
| 11866 | 11866 |
| 11867 TEST_P(HttpNetworkTransactionTest, UseIPConnectionPoolingAfterResolution) { | 11867 TEST_P(HttpNetworkTransactionTest, UseIPConnectionPoolingAfterResolution) { |
| 11868 session_deps_.use_alternative_services = true; | 11868 session_deps_.use_alternative_services = true; |
| 11869 session_deps_.next_protos = SpdyNextProtos(); | 11869 session_deps_.next_protos = SpdyNextProtos(); |
| 11870 | 11870 |
| 11871 // Set up a special HttpNetworkSession with a MockCachingHostResolver. | 11871 // Set up a special HttpNetworkSession with a MockCachingHostResolver. |
| 11872 session_deps_.host_resolver.reset(new MockCachingHostResolver()); | 11872 session_deps_.host_resolver.reset(new MockCachingHostResolver()); |
| 11873 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 11873 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 11874 SpdySessionPoolPeer pool_peer(session->spdy_session_pool()); | 11874 SpdySessionPoolPeer pool_peer(session->spdy_session_pool()); |
| 11875 pool_peer.DisableDomainAuthenticationVerification(); | 11875 pool_peer.DisableDomainAuthenticationVerification(); |
| 11876 | 11876 |
| 11877 SSLSocketDataProvider ssl(ASYNC, OK); | 11877 SSLSocketDataProvider ssl(ASYNC, OK); |
| 11878 ssl.SetNextProto(GetParam()); | 11878 ssl.SetNextProto(GetParam()); |
| 11879 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 11879 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
| 11880 | 11880 |
| 11881 scoped_ptr<SpdyFrame> host1_req( | 11881 scoped_ptr<SpdyFrame> host1_req( |
| 11882 spdy_util_.ConstructSpdyGet("https://www.example.org", false, 1, LOWEST)); | 11882 spdy_util_.ConstructSpdyGet("https://www.example.org", false, 1, LOWEST)); |
| 11883 scoped_ptr<SpdyFrame> host2_req( | 11883 scoped_ptr<SpdyFrame> host2_req( |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11993 TEST_P(HttpNetworkTransactionTest, | 11993 TEST_P(HttpNetworkTransactionTest, |
| 11994 UseIPConnectionPoolingWithHostCacheExpiration) { | 11994 UseIPConnectionPoolingWithHostCacheExpiration) { |
| 11995 session_deps_.use_alternative_services = true; | 11995 session_deps_.use_alternative_services = true; |
| 11996 session_deps_.next_protos = SpdyNextProtos(); | 11996 session_deps_.next_protos = SpdyNextProtos(); |
| 11997 | 11997 |
| 11998 // Set up a special HttpNetworkSession with a OneTimeCachingHostResolver. | 11998 // Set up a special HttpNetworkSession with a OneTimeCachingHostResolver. |
| 11999 OneTimeCachingHostResolver host_resolver(HostPortPair("www.gmail.com", 443)); | 11999 OneTimeCachingHostResolver host_resolver(HostPortPair("www.gmail.com", 443)); |
| 12000 HttpNetworkSession::Params params = | 12000 HttpNetworkSession::Params params = |
| 12001 SpdySessionDependencies::CreateSessionParams(&session_deps_); | 12001 SpdySessionDependencies::CreateSessionParams(&session_deps_); |
| 12002 params.host_resolver = &host_resolver; | 12002 params.host_resolver = &host_resolver; |
| 12003 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 12003 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 12004 SpdySessionPoolPeer pool_peer(session->spdy_session_pool()); | 12004 SpdySessionPoolPeer pool_peer(session->spdy_session_pool()); |
| 12005 pool_peer.DisableDomainAuthenticationVerification(); | 12005 pool_peer.DisableDomainAuthenticationVerification(); |
| 12006 | 12006 |
| 12007 SSLSocketDataProvider ssl(ASYNC, OK); | 12007 SSLSocketDataProvider ssl(ASYNC, OK); |
| 12008 ssl.SetNextProto(GetParam()); | 12008 ssl.SetNextProto(GetParam()); |
| 12009 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 12009 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
| 12010 | 12010 |
| 12011 scoped_ptr<SpdyFrame> host1_req( | 12011 scoped_ptr<SpdyFrame> host1_req( |
| 12012 spdy_util_.ConstructSpdyGet("https://www.example.org", false, 1, LOWEST)); | 12012 spdy_util_.ConstructSpdyGet("https://www.example.org", false, 1, LOWEST)); |
| 12013 scoped_ptr<SpdyFrame> host2_req( | 12013 scoped_ptr<SpdyFrame> host2_req( |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 12133 | 12133 |
| 12134 SequencedSocketData data2(reads2, arraysize(reads2), writes2, | 12134 SequencedSocketData data2(reads2, arraysize(reads2), writes2, |
| 12135 arraysize(writes2)); | 12135 arraysize(writes2)); |
| 12136 | 12136 |
| 12137 SSLSocketDataProvider ssl(ASYNC, OK); | 12137 SSLSocketDataProvider ssl(ASYNC, OK); |
| 12138 ssl.SetNextProto(GetParam()); | 12138 ssl.SetNextProto(GetParam()); |
| 12139 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 12139 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
| 12140 session_deps_.socket_factory->AddSocketDataProvider(&data1); | 12140 session_deps_.socket_factory->AddSocketDataProvider(&data1); |
| 12141 session_deps_.socket_factory->AddSocketDataProvider(&data2); | 12141 session_deps_.socket_factory->AddSocketDataProvider(&data2); |
| 12142 | 12142 |
| 12143 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 12143 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 12144 | 12144 |
| 12145 // Start the first transaction to set up the SpdySession | 12145 // Start the first transaction to set up the SpdySession |
| 12146 HttpRequestInfo request1; | 12146 HttpRequestInfo request1; |
| 12147 request1.method = "GET"; | 12147 request1.method = "GET"; |
| 12148 request1.url = GURL(https_url); | 12148 request1.url = GURL(https_url); |
| 12149 request1.load_flags = 0; | 12149 request1.load_flags = 0; |
| 12150 HttpNetworkTransaction trans1(LOWEST, session.get()); | 12150 HttpNetworkTransaction trans1(LOWEST, session.get()); |
| 12151 TestCompletionCallback callback1; | 12151 TestCompletionCallback callback1; |
| 12152 EXPECT_EQ(ERR_IO_PENDING, | 12152 EXPECT_EQ(ERR_IO_PENDING, |
| 12153 trans1.Start(&request1, callback1.callback(), BoundNetLog())); | 12153 trans1.Start(&request1, callback1.callback(), BoundNetLog())); |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 12245 vector_as_array(&writes), writes.size()); | 12245 vector_as_array(&writes), writes.size()); |
| 12246 session_deps_.socket_factory->AddSocketDataProvider(&data); | 12246 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 12247 | 12247 |
| 12248 // Connection to the origin fails. | 12248 // Connection to the origin fails. |
| 12249 MockConnect mock_connect(ASYNC, ERR_CONNECTION_REFUSED); | 12249 MockConnect mock_connect(ASYNC, ERR_CONNECTION_REFUSED); |
| 12250 StaticSocketDataProvider data_refused; | 12250 StaticSocketDataProvider data_refused; |
| 12251 data_refused.set_connect_data(mock_connect); | 12251 data_refused.set_connect_data(mock_connect); |
| 12252 session_deps_.socket_factory->AddSocketDataProvider(&data_refused); | 12252 session_deps_.socket_factory->AddSocketDataProvider(&data_refused); |
| 12253 | 12253 |
| 12254 session_deps_.use_alternative_services = true; | 12254 session_deps_.use_alternative_services = true; |
| 12255 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 12255 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 12256 base::WeakPtr<HttpServerProperties> http_server_properties = | 12256 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 12257 session->http_server_properties(); | 12257 session->http_server_properties(); |
| 12258 AlternativeService alternative_service( | 12258 AlternativeService alternative_service( |
| 12259 AlternateProtocolFromNextProto(GetParam()), alternative); | 12259 AlternateProtocolFromNextProto(GetParam()), alternative); |
| 12260 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); | 12260 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); |
| 12261 http_server_properties->SetAlternativeService(origin, alternative_service, | 12261 http_server_properties->SetAlternativeService(origin, alternative_service, |
| 12262 1.0, expiration); | 12262 1.0, expiration); |
| 12263 | 12263 |
| 12264 // First request to alternative. | 12264 // First request to alternative. |
| 12265 if (pooling) { | 12265 if (pooling) { |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 12349 | 12349 |
| 12350 // This test documents that an alternate Job should not be used if HTTP/1.1 is | 12350 // This test documents that an alternate Job should not be used if HTTP/1.1 is |
| 12351 // negotiated. In order to test this, a failed connection to the origin is | 12351 // negotiated. In order to test this, a failed connection to the origin is |
| 12352 // mocked. This way the request relies on the alternate Job. | 12352 // mocked. This way the request relies on the alternate Job. |
| 12353 StaticSocketDataProvider data_refused; | 12353 StaticSocketDataProvider data_refused; |
| 12354 data_refused.set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_REFUSED)); | 12354 data_refused.set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_REFUSED)); |
| 12355 session_deps_.socket_factory->AddSocketDataProvider(&data_refused); | 12355 session_deps_.socket_factory->AddSocketDataProvider(&data_refused); |
| 12356 | 12356 |
| 12357 // Set up alternative service for origin. | 12357 // Set up alternative service for origin. |
| 12358 session_deps_.use_alternative_services = true; | 12358 session_deps_.use_alternative_services = true; |
| 12359 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 12359 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 12360 base::WeakPtr<HttpServerProperties> http_server_properties = | 12360 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 12361 session->http_server_properties(); | 12361 session->http_server_properties(); |
| 12362 AlternativeService alternative_service( | 12362 AlternativeService alternative_service( |
| 12363 AlternateProtocolFromNextProto(GetParam()), alternative); | 12363 AlternateProtocolFromNextProto(GetParam()), alternative); |
| 12364 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); | 12364 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); |
| 12365 http_server_properties->SetAlternativeService(origin, alternative_service, | 12365 http_server_properties->SetAlternativeService(origin, alternative_service, |
| 12366 1.0, expiration); | 12366 1.0, expiration); |
| 12367 | 12367 |
| 12368 scoped_ptr<HttpTransaction> trans( | 12368 scoped_ptr<HttpTransaction> trans( |
| 12369 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 12369 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 12422 MockRead("Content-Type: text/html\r\n"), | 12422 MockRead("Content-Type: text/html\r\n"), |
| 12423 MockRead("Content-Length: 7\r\n\r\n"), | 12423 MockRead("Content-Length: 7\r\n\r\n"), |
| 12424 MockRead("another"), | 12424 MockRead("another"), |
| 12425 }; | 12425 }; |
| 12426 StaticSocketDataProvider http_data(http_reads, arraysize(http_reads), | 12426 StaticSocketDataProvider http_data(http_reads, arraysize(http_reads), |
| 12427 http_writes, arraysize(http_writes)); | 12427 http_writes, arraysize(http_writes)); |
| 12428 session_deps_.socket_factory->AddSocketDataProvider(&http_data); | 12428 session_deps_.socket_factory->AddSocketDataProvider(&http_data); |
| 12429 | 12429 |
| 12430 // Set up alternative service for origin. | 12430 // Set up alternative service for origin. |
| 12431 session_deps_.use_alternative_services = true; | 12431 session_deps_.use_alternative_services = true; |
| 12432 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 12432 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 12433 base::WeakPtr<HttpServerProperties> http_server_properties = | 12433 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 12434 session->http_server_properties(); | 12434 session->http_server_properties(); |
| 12435 AlternativeService alternative_service( | 12435 AlternativeService alternative_service( |
| 12436 AlternateProtocolFromNextProto(GetParam()), alternative); | 12436 AlternateProtocolFromNextProto(GetParam()), alternative); |
| 12437 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); | 12437 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); |
| 12438 http_server_properties->SetAlternativeService(origin, alternative_service, | 12438 http_server_properties->SetAlternativeService(origin, alternative_service, |
| 12439 1.0, expiration); | 12439 1.0, expiration); |
| 12440 | 12440 |
| 12441 HttpNetworkTransaction trans1(DEFAULT_PRIORITY, session.get()); | 12441 HttpNetworkTransaction trans1(DEFAULT_PRIORITY, session.get()); |
| 12442 HttpRequestInfo request1; | 12442 HttpRequestInfo request1; |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 12531 | 12531 |
| 12532 // This test documents that an alternate Job should not pool to an already | 12532 // This test documents that an alternate Job should not pool to an already |
| 12533 // existing HTTP/1.1 connection. In order to test this, a failed connection | 12533 // existing HTTP/1.1 connection. In order to test this, a failed connection |
| 12534 // to the origin is mocked. This way |request2| relies on the alternate Job. | 12534 // to the origin is mocked. This way |request2| relies on the alternate Job. |
| 12535 StaticSocketDataProvider data_refused; | 12535 StaticSocketDataProvider data_refused; |
| 12536 data_refused.set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_REFUSED)); | 12536 data_refused.set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_REFUSED)); |
| 12537 session_deps_.socket_factory->AddSocketDataProvider(&data_refused); | 12537 session_deps_.socket_factory->AddSocketDataProvider(&data_refused); |
| 12538 | 12538 |
| 12539 // Set up alternative service for origin. | 12539 // Set up alternative service for origin. |
| 12540 session_deps_.use_alternative_services = true; | 12540 session_deps_.use_alternative_services = true; |
| 12541 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 12541 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 12542 base::WeakPtr<HttpServerProperties> http_server_properties = | 12542 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 12543 session->http_server_properties(); | 12543 session->http_server_properties(); |
| 12544 AlternativeService alternative_service( | 12544 AlternativeService alternative_service( |
| 12545 AlternateProtocolFromNextProto(GetParam()), alternative); | 12545 AlternateProtocolFromNextProto(GetParam()), alternative); |
| 12546 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); | 12546 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); |
| 12547 http_server_properties->SetAlternativeService(origin, alternative_service, | 12547 http_server_properties->SetAlternativeService(origin, alternative_service, |
| 12548 1.0, expiration); | 12548 1.0, expiration); |
| 12549 | 12549 |
| 12550 // First transaction to alternative to open an HTTP/1.1 socket. | 12550 // First transaction to alternative to open an HTTP/1.1 socket. |
| 12551 scoped_ptr<HttpTransaction> trans1( | 12551 scoped_ptr<HttpTransaction> trans1( |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 12665 TestNetLog log; | 12665 TestNetLog log; |
| 12666 session_deps_.net_log = &log; | 12666 session_deps_.net_log = &log; |
| 12667 SSLSocketDataProvider ssl1(ASYNC, OK); // to the proxy | 12667 SSLSocketDataProvider ssl1(ASYNC, OK); // to the proxy |
| 12668 ssl1.SetNextProto(GetParam()); | 12668 ssl1.SetNextProto(GetParam()); |
| 12669 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl1); | 12669 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl1); |
| 12670 SSLSocketDataProvider ssl2(ASYNC, OK); // to the server | 12670 SSLSocketDataProvider ssl2(ASYNC, OK); // to the server |
| 12671 ssl2.SetNextProto(GetParam()); | 12671 ssl2.SetNextProto(GetParam()); |
| 12672 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl2); | 12672 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl2); |
| 12673 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data1); | 12673 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data1); |
| 12674 | 12674 |
| 12675 scoped_ptr<HttpNetworkSession> session( | 12675 scoped_refptr<HttpNetworkSession> session( |
| 12676 SpdySessionDependencies::SpdyCreateSessionDeterministic(&session_deps_)); | 12676 SpdySessionDependencies::SpdyCreateSessionDeterministic(&session_deps_)); |
| 12677 | 12677 |
| 12678 // Start the first transaction to set up the SpdySession | 12678 // Start the first transaction to set up the SpdySession |
| 12679 HttpRequestInfo request1; | 12679 HttpRequestInfo request1; |
| 12680 request1.method = "GET"; | 12680 request1.method = "GET"; |
| 12681 request1.url = GURL(https_url); | 12681 request1.url = GURL(https_url); |
| 12682 request1.load_flags = 0; | 12682 request1.load_flags = 0; |
| 12683 HttpNetworkTransaction trans1(LOWEST, session.get()); | 12683 HttpNetworkTransaction trans1(LOWEST, session.get()); |
| 12684 TestCompletionCallback callback1; | 12684 TestCompletionCallback callback1; |
| 12685 EXPECT_EQ(ERR_IO_PENDING, | 12685 EXPECT_EQ(ERR_IO_PENDING, |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 12799 SSLSocketDataProvider ssl2(ASYNC, OK); // to the server | 12799 SSLSocketDataProvider ssl2(ASYNC, OK); // to the server |
| 12800 ssl2.SetNextProto(GetParam()); | 12800 ssl2.SetNextProto(GetParam()); |
| 12801 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl2); | 12801 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl2); |
| 12802 session_deps_.deterministic_socket_factory->AddSocketDataProvider( | 12802 session_deps_.deterministic_socket_factory->AddSocketDataProvider( |
| 12803 data2.get()); | 12803 data2.get()); |
| 12804 | 12804 |
| 12805 session_deps_.host_resolver.reset(new MockCachingHostResolver()); | 12805 session_deps_.host_resolver.reset(new MockCachingHostResolver()); |
| 12806 session_deps_.host_resolver->rules()->AddRule("news.example.org", ip_addr); | 12806 session_deps_.host_resolver->rules()->AddRule("news.example.org", ip_addr); |
| 12807 session_deps_.host_resolver->rules()->AddRule("proxy", ip_addr); | 12807 session_deps_.host_resolver->rules()->AddRule("proxy", ip_addr); |
| 12808 | 12808 |
| 12809 scoped_ptr<HttpNetworkSession> session( | 12809 scoped_refptr<HttpNetworkSession> session( |
| 12810 SpdySessionDependencies::SpdyCreateSessionDeterministic(&session_deps_)); | 12810 SpdySessionDependencies::SpdyCreateSessionDeterministic(&session_deps_)); |
| 12811 | 12811 |
| 12812 // Start the first transaction to set up the SpdySession | 12812 // Start the first transaction to set up the SpdySession |
| 12813 HttpRequestInfo request1; | 12813 HttpRequestInfo request1; |
| 12814 request1.method = "GET"; | 12814 request1.method = "GET"; |
| 12815 request1.url = GURL(url1); | 12815 request1.url = GURL(url1); |
| 12816 request1.load_flags = 0; | 12816 request1.load_flags = 0; |
| 12817 HttpNetworkTransaction trans1(LOWEST, session.get()); | 12817 HttpNetworkTransaction trans1(LOWEST, session.get()); |
| 12818 TestCompletionCallback callback1; | 12818 TestCompletionCallback callback1; |
| 12819 ASSERT_EQ(ERR_IO_PENDING, | 12819 ASSERT_EQ(ERR_IO_PENDING, |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 12874 SSLSocketDataProvider ssl1(ASYNC, OK); | 12874 SSLSocketDataProvider ssl1(ASYNC, OK); |
| 12875 ssl1.SetNextProto(GetParam()); | 12875 ssl1.SetNextProto(GetParam()); |
| 12876 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl1); | 12876 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl1); |
| 12877 session_deps_.socket_factory->AddSocketDataProvider(&data1); | 12877 session_deps_.socket_factory->AddSocketDataProvider(&data1); |
| 12878 | 12878 |
| 12879 SSLSocketDataProvider ssl2(ASYNC, OK); | 12879 SSLSocketDataProvider ssl2(ASYNC, OK); |
| 12880 ssl2.SetNextProto(GetParam()); | 12880 ssl2.SetNextProto(GetParam()); |
| 12881 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl2); | 12881 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl2); |
| 12882 session_deps_.socket_factory->AddSocketDataProvider(&data2); | 12882 session_deps_.socket_factory->AddSocketDataProvider(&data2); |
| 12883 | 12883 |
| 12884 scoped_ptr<HttpNetworkSession> session( | 12884 scoped_refptr<HttpNetworkSession> session( |
| 12885 SpdySessionDependencies::SpdyCreateSession(&session_deps_)); | 12885 SpdySessionDependencies::SpdyCreateSession(&session_deps_)); |
| 12886 | 12886 |
| 12887 // Start the first transaction to set up the SpdySession and verify that | 12887 // Start the first transaction to set up the SpdySession and verify that |
| 12888 // connection was closed. | 12888 // connection was closed. |
| 12889 HttpRequestInfo request1; | 12889 HttpRequestInfo request1; |
| 12890 request1.method = "GET"; | 12890 request1.method = "GET"; |
| 12891 request1.url = GURL(https_url); | 12891 request1.url = GURL(https_url); |
| 12892 request1.load_flags = 0; | 12892 request1.load_flags = 0; |
| 12893 HttpNetworkTransaction trans1(MEDIUM, session.get()); | 12893 HttpNetworkTransaction trans1(MEDIUM, session.get()); |
| 12894 TestCompletionCallback callback1; | 12894 TestCompletionCallback callback1; |
| (...skipping 18 matching lines...) Expand all Loading... |
| 12913 TEST_P(HttpNetworkTransactionTest, CloseIdleSpdySessionToOpenNewOne) { | 12913 TEST_P(HttpNetworkTransactionTest, CloseIdleSpdySessionToOpenNewOne) { |
| 12914 session_deps_.next_protos = SpdyNextProtos(); | 12914 session_deps_.next_protos = SpdyNextProtos(); |
| 12915 ClientSocketPoolManager::set_max_sockets_per_group( | 12915 ClientSocketPoolManager::set_max_sockets_per_group( |
| 12916 HttpNetworkSession::NORMAL_SOCKET_POOL, 1); | 12916 HttpNetworkSession::NORMAL_SOCKET_POOL, 1); |
| 12917 ClientSocketPoolManager::set_max_sockets_per_pool( | 12917 ClientSocketPoolManager::set_max_sockets_per_pool( |
| 12918 HttpNetworkSession::NORMAL_SOCKET_POOL, 1); | 12918 HttpNetworkSession::NORMAL_SOCKET_POOL, 1); |
| 12919 | 12919 |
| 12920 // Use two different hosts with different IPs so they don't get pooled. | 12920 // Use two different hosts with different IPs so they don't get pooled. |
| 12921 session_deps_.host_resolver->rules()->AddRule("www.a.com", "10.0.0.1"); | 12921 session_deps_.host_resolver->rules()->AddRule("www.a.com", "10.0.0.1"); |
| 12922 session_deps_.host_resolver->rules()->AddRule("www.b.com", "10.0.0.2"); | 12922 session_deps_.host_resolver->rules()->AddRule("www.b.com", "10.0.0.2"); |
| 12923 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 12923 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 12924 | 12924 |
| 12925 SSLSocketDataProvider ssl1(ASYNC, OK); | 12925 SSLSocketDataProvider ssl1(ASYNC, OK); |
| 12926 ssl1.SetNextProto(GetParam()); | 12926 ssl1.SetNextProto(GetParam()); |
| 12927 SSLSocketDataProvider ssl2(ASYNC, OK); | 12927 SSLSocketDataProvider ssl2(ASYNC, OK); |
| 12928 ssl2.SetNextProto(GetParam()); | 12928 ssl2.SetNextProto(GetParam()); |
| 12929 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl1); | 12929 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl1); |
| 12930 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl2); | 12930 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl2); |
| 12931 | 12931 |
| 12932 scoped_ptr<SpdyFrame> host1_req(spdy_util_.ConstructSpdyGet( | 12932 scoped_ptr<SpdyFrame> host1_req(spdy_util_.ConstructSpdyGet( |
| 12933 "https://www.a.com", false, 1, DEFAULT_PRIORITY)); | 12933 "https://www.a.com", false, 1, DEFAULT_PRIORITY)); |
| (...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 13073 EXPECT_FALSE( | 13073 EXPECT_FALSE( |
| 13074 HasSpdySession(session->spdy_session_pool(), spdy_session_key_b)); | 13074 HasSpdySession(session->spdy_session_pool(), spdy_session_key_b)); |
| 13075 } | 13075 } |
| 13076 | 13076 |
| 13077 TEST_P(HttpNetworkTransactionTest, HttpSyncConnectError) { | 13077 TEST_P(HttpNetworkTransactionTest, HttpSyncConnectError) { |
| 13078 HttpRequestInfo request; | 13078 HttpRequestInfo request; |
| 13079 request.method = "GET"; | 13079 request.method = "GET"; |
| 13080 request.url = GURL("http://www.example.org/"); | 13080 request.url = GURL("http://www.example.org/"); |
| 13081 request.load_flags = 0; | 13081 request.load_flags = 0; |
| 13082 | 13082 |
| 13083 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 13083 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 13084 scoped_ptr<HttpTransaction> trans( | 13084 scoped_ptr<HttpTransaction> trans( |
| 13085 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 13085 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 13086 | 13086 |
| 13087 MockConnect mock_connect(SYNCHRONOUS, ERR_CONNECTION_REFUSED); | 13087 MockConnect mock_connect(SYNCHRONOUS, ERR_CONNECTION_REFUSED); |
| 13088 StaticSocketDataProvider data; | 13088 StaticSocketDataProvider data; |
| 13089 data.set_connect_data(mock_connect); | 13089 data.set_connect_data(mock_connect); |
| 13090 session_deps_.socket_factory->AddSocketDataProvider(&data); | 13090 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 13091 | 13091 |
| 13092 TestCompletionCallback callback; | 13092 TestCompletionCallback callback; |
| 13093 | 13093 |
| (...skipping 12 matching lines...) Expand all Loading... |
| 13106 ASSERT_EQ(1u, attempts.size()); | 13106 ASSERT_EQ(1u, attempts.size()); |
| 13107 EXPECT_EQ(ERR_CONNECTION_REFUSED, attempts[0].result); | 13107 EXPECT_EQ(ERR_CONNECTION_REFUSED, attempts[0].result); |
| 13108 } | 13108 } |
| 13109 | 13109 |
| 13110 TEST_P(HttpNetworkTransactionTest, HttpAsyncConnectError) { | 13110 TEST_P(HttpNetworkTransactionTest, HttpAsyncConnectError) { |
| 13111 HttpRequestInfo request; | 13111 HttpRequestInfo request; |
| 13112 request.method = "GET"; | 13112 request.method = "GET"; |
| 13113 request.url = GURL("http://www.example.org/"); | 13113 request.url = GURL("http://www.example.org/"); |
| 13114 request.load_flags = 0; | 13114 request.load_flags = 0; |
| 13115 | 13115 |
| 13116 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 13116 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 13117 scoped_ptr<HttpTransaction> trans( | 13117 scoped_ptr<HttpTransaction> trans( |
| 13118 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 13118 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 13119 | 13119 |
| 13120 MockConnect mock_connect(ASYNC, ERR_CONNECTION_REFUSED); | 13120 MockConnect mock_connect(ASYNC, ERR_CONNECTION_REFUSED); |
| 13121 StaticSocketDataProvider data; | 13121 StaticSocketDataProvider data; |
| 13122 data.set_connect_data(mock_connect); | 13122 data.set_connect_data(mock_connect); |
| 13123 session_deps_.socket_factory->AddSocketDataProvider(&data); | 13123 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 13124 | 13124 |
| 13125 TestCompletionCallback callback; | 13125 TestCompletionCallback callback; |
| 13126 | 13126 |
| (...skipping 12 matching lines...) Expand all Loading... |
| 13139 ASSERT_EQ(1u, attempts.size()); | 13139 ASSERT_EQ(1u, attempts.size()); |
| 13140 EXPECT_EQ(ERR_CONNECTION_REFUSED, attempts[0].result); | 13140 EXPECT_EQ(ERR_CONNECTION_REFUSED, attempts[0].result); |
| 13141 } | 13141 } |
| 13142 | 13142 |
| 13143 TEST_P(HttpNetworkTransactionTest, HttpSyncWriteError) { | 13143 TEST_P(HttpNetworkTransactionTest, HttpSyncWriteError) { |
| 13144 HttpRequestInfo request; | 13144 HttpRequestInfo request; |
| 13145 request.method = "GET"; | 13145 request.method = "GET"; |
| 13146 request.url = GURL("http://www.example.org/"); | 13146 request.url = GURL("http://www.example.org/"); |
| 13147 request.load_flags = 0; | 13147 request.load_flags = 0; |
| 13148 | 13148 |
| 13149 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 13149 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 13150 scoped_ptr<HttpTransaction> trans( | 13150 scoped_ptr<HttpTransaction> trans( |
| 13151 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 13151 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 13152 | 13152 |
| 13153 MockWrite data_writes[] = { | 13153 MockWrite data_writes[] = { |
| 13154 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), | 13154 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), |
| 13155 }; | 13155 }; |
| 13156 MockRead data_reads[] = { | 13156 MockRead data_reads[] = { |
| 13157 MockRead(SYNCHRONOUS, ERR_UNEXPECTED), // Should not be reached. | 13157 MockRead(SYNCHRONOUS, ERR_UNEXPECTED), // Should not be reached. |
| 13158 }; | 13158 }; |
| 13159 | 13159 |
| (...skipping 13 matching lines...) Expand all Loading... |
| 13173 EXPECT_TRUE(trans->GetFullRequestHeaders(&request_headers)); | 13173 EXPECT_TRUE(trans->GetFullRequestHeaders(&request_headers)); |
| 13174 EXPECT_TRUE(request_headers.HasHeader("Host")); | 13174 EXPECT_TRUE(request_headers.HasHeader("Host")); |
| 13175 } | 13175 } |
| 13176 | 13176 |
| 13177 TEST_P(HttpNetworkTransactionTest, HttpAsyncWriteError) { | 13177 TEST_P(HttpNetworkTransactionTest, HttpAsyncWriteError) { |
| 13178 HttpRequestInfo request; | 13178 HttpRequestInfo request; |
| 13179 request.method = "GET"; | 13179 request.method = "GET"; |
| 13180 request.url = GURL("http://www.example.org/"); | 13180 request.url = GURL("http://www.example.org/"); |
| 13181 request.load_flags = 0; | 13181 request.load_flags = 0; |
| 13182 | 13182 |
| 13183 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 13183 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 13184 scoped_ptr<HttpTransaction> trans( | 13184 scoped_ptr<HttpTransaction> trans( |
| 13185 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 13185 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 13186 | 13186 |
| 13187 MockWrite data_writes[] = { | 13187 MockWrite data_writes[] = { |
| 13188 MockWrite(ASYNC, ERR_CONNECTION_RESET), | 13188 MockWrite(ASYNC, ERR_CONNECTION_RESET), |
| 13189 }; | 13189 }; |
| 13190 MockRead data_reads[] = { | 13190 MockRead data_reads[] = { |
| 13191 MockRead(SYNCHRONOUS, ERR_UNEXPECTED), // Should not be reached. | 13191 MockRead(SYNCHRONOUS, ERR_UNEXPECTED), // Should not be reached. |
| 13192 }; | 13192 }; |
| 13193 | 13193 |
| (...skipping 13 matching lines...) Expand all Loading... |
| 13207 EXPECT_TRUE(trans->GetFullRequestHeaders(&request_headers)); | 13207 EXPECT_TRUE(trans->GetFullRequestHeaders(&request_headers)); |
| 13208 EXPECT_TRUE(request_headers.HasHeader("Host")); | 13208 EXPECT_TRUE(request_headers.HasHeader("Host")); |
| 13209 } | 13209 } |
| 13210 | 13210 |
| 13211 TEST_P(HttpNetworkTransactionTest, HttpSyncReadError) { | 13211 TEST_P(HttpNetworkTransactionTest, HttpSyncReadError) { |
| 13212 HttpRequestInfo request; | 13212 HttpRequestInfo request; |
| 13213 request.method = "GET"; | 13213 request.method = "GET"; |
| 13214 request.url = GURL("http://www.example.org/"); | 13214 request.url = GURL("http://www.example.org/"); |
| 13215 request.load_flags = 0; | 13215 request.load_flags = 0; |
| 13216 | 13216 |
| 13217 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 13217 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 13218 scoped_ptr<HttpTransaction> trans( | 13218 scoped_ptr<HttpTransaction> trans( |
| 13219 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 13219 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 13220 | 13220 |
| 13221 MockWrite data_writes[] = { | 13221 MockWrite data_writes[] = { |
| 13222 MockWrite( | 13222 MockWrite( |
| 13223 "GET / HTTP/1.1\r\n" | 13223 "GET / HTTP/1.1\r\n" |
| 13224 "Host: www.example.org\r\n" | 13224 "Host: www.example.org\r\n" |
| 13225 "Connection: keep-alive\r\n\r\n"), | 13225 "Connection: keep-alive\r\n\r\n"), |
| 13226 }; | 13226 }; |
| 13227 MockRead data_reads[] = { | 13227 MockRead data_reads[] = { |
| (...skipping 16 matching lines...) Expand all Loading... |
| 13244 EXPECT_TRUE(trans->GetFullRequestHeaders(&request_headers)); | 13244 EXPECT_TRUE(trans->GetFullRequestHeaders(&request_headers)); |
| 13245 EXPECT_TRUE(request_headers.HasHeader("Host")); | 13245 EXPECT_TRUE(request_headers.HasHeader("Host")); |
| 13246 } | 13246 } |
| 13247 | 13247 |
| 13248 TEST_P(HttpNetworkTransactionTest, HttpAsyncReadError) { | 13248 TEST_P(HttpNetworkTransactionTest, HttpAsyncReadError) { |
| 13249 HttpRequestInfo request; | 13249 HttpRequestInfo request; |
| 13250 request.method = "GET"; | 13250 request.method = "GET"; |
| 13251 request.url = GURL("http://www.example.org/"); | 13251 request.url = GURL("http://www.example.org/"); |
| 13252 request.load_flags = 0; | 13252 request.load_flags = 0; |
| 13253 | 13253 |
| 13254 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 13254 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 13255 scoped_ptr<HttpTransaction> trans( | 13255 scoped_ptr<HttpTransaction> trans( |
| 13256 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 13256 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 13257 | 13257 |
| 13258 MockWrite data_writes[] = { | 13258 MockWrite data_writes[] = { |
| 13259 MockWrite( | 13259 MockWrite( |
| 13260 "GET / HTTP/1.1\r\n" | 13260 "GET / HTTP/1.1\r\n" |
| 13261 "Host: www.example.org\r\n" | 13261 "Host: www.example.org\r\n" |
| 13262 "Connection: keep-alive\r\n\r\n"), | 13262 "Connection: keep-alive\r\n\r\n"), |
| 13263 }; | 13263 }; |
| 13264 MockRead data_reads[] = { | 13264 MockRead data_reads[] = { |
| (...skipping 17 matching lines...) Expand all Loading... |
| 13282 EXPECT_TRUE(request_headers.HasHeader("Host")); | 13282 EXPECT_TRUE(request_headers.HasHeader("Host")); |
| 13283 } | 13283 } |
| 13284 | 13284 |
| 13285 TEST_P(HttpNetworkTransactionTest, GetFullRequestHeadersIncludesExtraHeader) { | 13285 TEST_P(HttpNetworkTransactionTest, GetFullRequestHeadersIncludesExtraHeader) { |
| 13286 HttpRequestInfo request; | 13286 HttpRequestInfo request; |
| 13287 request.method = "GET"; | 13287 request.method = "GET"; |
| 13288 request.url = GURL("http://www.example.org/"); | 13288 request.url = GURL("http://www.example.org/"); |
| 13289 request.load_flags = 0; | 13289 request.load_flags = 0; |
| 13290 request.extra_headers.SetHeader("X-Foo", "bar"); | 13290 request.extra_headers.SetHeader("X-Foo", "bar"); |
| 13291 | 13291 |
| 13292 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 13292 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 13293 scoped_ptr<HttpTransaction> trans( | 13293 scoped_ptr<HttpTransaction> trans( |
| 13294 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 13294 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 13295 | 13295 |
| 13296 MockWrite data_writes[] = { | 13296 MockWrite data_writes[] = { |
| 13297 MockWrite( | 13297 MockWrite( |
| 13298 "GET / HTTP/1.1\r\n" | 13298 "GET / HTTP/1.1\r\n" |
| 13299 "Host: www.example.org\r\n" | 13299 "Host: www.example.org\r\n" |
| 13300 "Connection: keep-alive\r\n" | 13300 "Connection: keep-alive\r\n" |
| 13301 "X-Foo: bar\r\n\r\n"), | 13301 "X-Foo: bar\r\n\r\n"), |
| 13302 }; | 13302 }; |
| (...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 13668 NOTREACHED(); | 13668 NOTREACHED(); |
| 13669 return scoped_ptr<WebSocketStream>(); | 13669 return scoped_ptr<WebSocketStream>(); |
| 13670 } | 13670 } |
| 13671 }; | 13671 }; |
| 13672 | 13672 |
| 13673 } // namespace | 13673 } // namespace |
| 13674 | 13674 |
| 13675 // Make sure that HttpNetworkTransaction passes on its priority to its | 13675 // Make sure that HttpNetworkTransaction passes on its priority to its |
| 13676 // stream request on start. | 13676 // stream request on start. |
| 13677 TEST_P(HttpNetworkTransactionTest, SetStreamRequestPriorityOnStart) { | 13677 TEST_P(HttpNetworkTransactionTest, SetStreamRequestPriorityOnStart) { |
| 13678 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 13678 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 13679 HttpNetworkSessionPeer peer(session.get()); | 13679 HttpNetworkSessionPeer peer(session); |
| 13680 FakeStreamFactory* fake_factory = new FakeStreamFactory(); | 13680 FakeStreamFactory* fake_factory = new FakeStreamFactory(); |
| 13681 peer.SetHttpStreamFactory(scoped_ptr<HttpStreamFactory>(fake_factory)); | 13681 peer.SetHttpStreamFactory(scoped_ptr<HttpStreamFactory>(fake_factory)); |
| 13682 | 13682 |
| 13683 HttpNetworkTransaction trans(LOW, session.get()); | 13683 HttpNetworkTransaction trans(LOW, session.get()); |
| 13684 | 13684 |
| 13685 ASSERT_TRUE(fake_factory->last_stream_request() == NULL); | 13685 ASSERT_TRUE(fake_factory->last_stream_request() == NULL); |
| 13686 | 13686 |
| 13687 HttpRequestInfo request; | 13687 HttpRequestInfo request; |
| 13688 TestCompletionCallback callback; | 13688 TestCompletionCallback callback; |
| 13689 EXPECT_EQ(ERR_IO_PENDING, | 13689 EXPECT_EQ(ERR_IO_PENDING, |
| 13690 trans.Start(&request, callback.callback(), BoundNetLog())); | 13690 trans.Start(&request, callback.callback(), BoundNetLog())); |
| 13691 | 13691 |
| 13692 base::WeakPtr<FakeStreamRequest> fake_request = | 13692 base::WeakPtr<FakeStreamRequest> fake_request = |
| 13693 fake_factory->last_stream_request(); | 13693 fake_factory->last_stream_request(); |
| 13694 ASSERT_TRUE(fake_request != NULL); | 13694 ASSERT_TRUE(fake_request != NULL); |
| 13695 EXPECT_EQ(LOW, fake_request->priority()); | 13695 EXPECT_EQ(LOW, fake_request->priority()); |
| 13696 } | 13696 } |
| 13697 | 13697 |
| 13698 // Make sure that HttpNetworkTransaction passes on its priority | 13698 // Make sure that HttpNetworkTransaction passes on its priority |
| 13699 // updates to its stream request. | 13699 // updates to its stream request. |
| 13700 TEST_P(HttpNetworkTransactionTest, SetStreamRequestPriority) { | 13700 TEST_P(HttpNetworkTransactionTest, SetStreamRequestPriority) { |
| 13701 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 13701 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 13702 HttpNetworkSessionPeer peer(session.get()); | 13702 HttpNetworkSessionPeer peer(session); |
| 13703 FakeStreamFactory* fake_factory = new FakeStreamFactory(); | 13703 FakeStreamFactory* fake_factory = new FakeStreamFactory(); |
| 13704 peer.SetHttpStreamFactory(scoped_ptr<HttpStreamFactory>(fake_factory)); | 13704 peer.SetHttpStreamFactory(scoped_ptr<HttpStreamFactory>(fake_factory)); |
| 13705 | 13705 |
| 13706 HttpNetworkTransaction trans(LOW, session.get()); | 13706 HttpNetworkTransaction trans(LOW, session.get()); |
| 13707 | 13707 |
| 13708 HttpRequestInfo request; | 13708 HttpRequestInfo request; |
| 13709 TestCompletionCallback callback; | 13709 TestCompletionCallback callback; |
| 13710 EXPECT_EQ(ERR_IO_PENDING, | 13710 EXPECT_EQ(ERR_IO_PENDING, |
| 13711 trans.Start(&request, callback.callback(), BoundNetLog())); | 13711 trans.Start(&request, callback.callback(), BoundNetLog())); |
| 13712 | 13712 |
| 13713 base::WeakPtr<FakeStreamRequest> fake_request = | 13713 base::WeakPtr<FakeStreamRequest> fake_request = |
| 13714 fake_factory->last_stream_request(); | 13714 fake_factory->last_stream_request(); |
| 13715 ASSERT_TRUE(fake_request != NULL); | 13715 ASSERT_TRUE(fake_request != NULL); |
| 13716 EXPECT_EQ(LOW, fake_request->priority()); | 13716 EXPECT_EQ(LOW, fake_request->priority()); |
| 13717 | 13717 |
| 13718 trans.SetPriority(LOWEST); | 13718 trans.SetPriority(LOWEST); |
| 13719 ASSERT_TRUE(fake_request != NULL); | 13719 ASSERT_TRUE(fake_request != NULL); |
| 13720 EXPECT_EQ(LOWEST, fake_request->priority()); | 13720 EXPECT_EQ(LOWEST, fake_request->priority()); |
| 13721 } | 13721 } |
| 13722 | 13722 |
| 13723 // Make sure that HttpNetworkTransaction passes on its priority | 13723 // Make sure that HttpNetworkTransaction passes on its priority |
| 13724 // updates to its stream. | 13724 // updates to its stream. |
| 13725 TEST_P(HttpNetworkTransactionTest, SetStreamPriority) { | 13725 TEST_P(HttpNetworkTransactionTest, SetStreamPriority) { |
| 13726 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 13726 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 13727 HttpNetworkSessionPeer peer(session.get()); | 13727 HttpNetworkSessionPeer peer(session); |
| 13728 FakeStreamFactory* fake_factory = new FakeStreamFactory(); | 13728 FakeStreamFactory* fake_factory = new FakeStreamFactory(); |
| 13729 peer.SetHttpStreamFactory(scoped_ptr<HttpStreamFactory>(fake_factory)); | 13729 peer.SetHttpStreamFactory(scoped_ptr<HttpStreamFactory>(fake_factory)); |
| 13730 | 13730 |
| 13731 HttpNetworkTransaction trans(LOW, session.get()); | 13731 HttpNetworkTransaction trans(LOW, session.get()); |
| 13732 | 13732 |
| 13733 HttpRequestInfo request; | 13733 HttpRequestInfo request; |
| 13734 TestCompletionCallback callback; | 13734 TestCompletionCallback callback; |
| 13735 EXPECT_EQ(ERR_IO_PENDING, | 13735 EXPECT_EQ(ERR_IO_PENDING, |
| 13736 trans.Start(&request, callback.callback(), BoundNetLog())); | 13736 trans.Start(&request, callback.callback(), BoundNetLog())); |
| 13737 | 13737 |
| 13738 base::WeakPtr<FakeStreamRequest> fake_request = | 13738 base::WeakPtr<FakeStreamRequest> fake_request = |
| 13739 fake_factory->last_stream_request(); | 13739 fake_factory->last_stream_request(); |
| 13740 ASSERT_TRUE(fake_request != NULL); | 13740 ASSERT_TRUE(fake_request != NULL); |
| 13741 base::WeakPtr<FakeStream> fake_stream = fake_request->FinishStreamRequest(); | 13741 base::WeakPtr<FakeStream> fake_stream = fake_request->FinishStreamRequest(); |
| 13742 ASSERT_TRUE(fake_stream != NULL); | 13742 ASSERT_TRUE(fake_stream != NULL); |
| 13743 EXPECT_EQ(LOW, fake_stream->priority()); | 13743 EXPECT_EQ(LOW, fake_stream->priority()); |
| 13744 | 13744 |
| 13745 trans.SetPriority(LOWEST); | 13745 trans.SetPriority(LOWEST); |
| 13746 EXPECT_EQ(LOWEST, fake_stream->priority()); | 13746 EXPECT_EQ(LOWEST, fake_stream->priority()); |
| 13747 } | 13747 } |
| 13748 | 13748 |
| 13749 TEST_P(HttpNetworkTransactionTest, CreateWebSocketHandshakeStream) { | 13749 TEST_P(HttpNetworkTransactionTest, CreateWebSocketHandshakeStream) { |
| 13750 // The same logic needs to be tested for both ws: and wss: schemes, but this | 13750 // The same logic needs to be tested for both ws: and wss: schemes, but this |
| 13751 // test is already parameterised on NextProto, so it uses a loop to verify | 13751 // test is already parameterised on NextProto, so it uses a loop to verify |
| 13752 // that the different schemes work. | 13752 // that the different schemes work. |
| 13753 std::string test_cases[] = {"ws://www.example.org/", | 13753 std::string test_cases[] = {"ws://www.example.org/", |
| 13754 "wss://www.example.org/"}; | 13754 "wss://www.example.org/"}; |
| 13755 for (size_t i = 0; i < arraysize(test_cases); ++i) { | 13755 for (size_t i = 0; i < arraysize(test_cases); ++i) { |
| 13756 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 13756 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 13757 HttpNetworkSessionPeer peer(session.get()); | 13757 HttpNetworkSessionPeer peer(session); |
| 13758 FakeStreamFactory* fake_factory = new FakeStreamFactory(); | 13758 FakeStreamFactory* fake_factory = new FakeStreamFactory(); |
| 13759 FakeWebSocketStreamCreateHelper websocket_stream_create_helper; | 13759 FakeWebSocketStreamCreateHelper websocket_stream_create_helper; |
| 13760 peer.SetHttpStreamFactoryForWebSocket( | 13760 peer.SetHttpStreamFactoryForWebSocket( |
| 13761 scoped_ptr<HttpStreamFactory>(fake_factory)); | 13761 scoped_ptr<HttpStreamFactory>(fake_factory)); |
| 13762 | 13762 |
| 13763 HttpNetworkTransaction trans(LOW, session.get()); | 13763 HttpNetworkTransaction trans(LOW, session.get()); |
| 13764 trans.SetWebSocketHandshakeStreamCreateHelper( | 13764 trans.SetWebSocketHandshakeStreamCreateHelper( |
| 13765 &websocket_stream_create_helper); | 13765 &websocket_stream_create_helper); |
| 13766 | 13766 |
| 13767 HttpRequestInfo request; | 13767 HttpRequestInfo request; |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 13828 MockRead http_reads[] = { | 13828 MockRead http_reads[] = { |
| 13829 MockRead("HTTP/1.1 200 OK\r\n"), | 13829 MockRead("HTTP/1.1 200 OK\r\n"), |
| 13830 MockRead("Content-Length: 7\r\n\r\n"), | 13830 MockRead("Content-Length: 7\r\n\r\n"), |
| 13831 MockRead("falafel"), | 13831 MockRead("falafel"), |
| 13832 MockRead(SYNCHRONOUS, OK), | 13832 MockRead(SYNCHRONOUS, OK), |
| 13833 }; | 13833 }; |
| 13834 StaticSocketDataProvider http_data(http_reads, arraysize(http_reads), | 13834 StaticSocketDataProvider http_data(http_reads, arraysize(http_reads), |
| 13835 http_writes, arraysize(http_writes)); | 13835 http_writes, arraysize(http_writes)); |
| 13836 session_deps_.socket_factory->AddSocketDataProvider(&http_data); | 13836 session_deps_.socket_factory->AddSocketDataProvider(&http_data); |
| 13837 | 13837 |
| 13838 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 13838 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 13839 | 13839 |
| 13840 // Start the SSL request. | 13840 // Start the SSL request. |
| 13841 TestCompletionCallback ssl_callback; | 13841 TestCompletionCallback ssl_callback; |
| 13842 scoped_ptr<HttpTransaction> ssl_trans( | 13842 scoped_ptr<HttpTransaction> ssl_trans( |
| 13843 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 13843 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 13844 ASSERT_EQ(ERR_IO_PENDING, | 13844 ASSERT_EQ(ERR_IO_PENDING, |
| 13845 ssl_trans->Start(&ssl_request, ssl_callback.callback(), | 13845 ssl_trans->Start(&ssl_request, ssl_callback.callback(), |
| 13846 BoundNetLog())); | 13846 BoundNetLog())); |
| 13847 | 13847 |
| 13848 // Start the HTTP request. Pool should stall. | 13848 // Start the HTTP request. Pool should stall. |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 13910 MockRead http_reads[] = { | 13910 MockRead http_reads[] = { |
| 13911 MockRead("HTTP/1.1 200 OK\r\n"), | 13911 MockRead("HTTP/1.1 200 OK\r\n"), |
| 13912 MockRead("Content-Length: 7\r\n\r\n"), | 13912 MockRead("Content-Length: 7\r\n\r\n"), |
| 13913 MockRead("falafel"), | 13913 MockRead("falafel"), |
| 13914 MockRead(SYNCHRONOUS, OK), | 13914 MockRead(SYNCHRONOUS, OK), |
| 13915 }; | 13915 }; |
| 13916 StaticSocketDataProvider http_data(http_reads, arraysize(http_reads), | 13916 StaticSocketDataProvider http_data(http_reads, arraysize(http_reads), |
| 13917 http_writes, arraysize(http_writes)); | 13917 http_writes, arraysize(http_writes)); |
| 13918 session_deps_.socket_factory->AddSocketDataProvider(&http_data); | 13918 session_deps_.socket_factory->AddSocketDataProvider(&http_data); |
| 13919 | 13919 |
| 13920 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 13920 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 13921 | 13921 |
| 13922 // Preconnect an SSL socket. A preconnect is needed because connect jobs are | 13922 // Preconnect an SSL socket. A preconnect is needed because connect jobs are |
| 13923 // cancelled when a normal transaction is cancelled. | 13923 // cancelled when a normal transaction is cancelled. |
| 13924 HttpStreamFactory* http_stream_factory = session->http_stream_factory(); | 13924 HttpStreamFactory* http_stream_factory = session->http_stream_factory(); |
| 13925 SSLConfig ssl_config; | 13925 SSLConfig ssl_config; |
| 13926 session->ssl_config_service()->GetSSLConfig(&ssl_config); | 13926 session->ssl_config_service()->GetSSLConfig(&ssl_config); |
| 13927 http_stream_factory->PreconnectStreams(1, ssl_request, ssl_config, | 13927 http_stream_factory->PreconnectStreams(1, ssl_request, ssl_config, |
| 13928 ssl_config); | 13928 ssl_config); |
| 13929 EXPECT_EQ(0, GetIdleSocketCountInSSLSocketPool(session.get())); | 13929 EXPECT_EQ(0, GetIdleSocketCountInSSLSocketPool(session.get())); |
| 13930 | 13930 |
| (...skipping 20 matching lines...) Expand all Loading... |
| 13951 ScopedVector<UploadElementReader> element_readers; | 13951 ScopedVector<UploadElementReader> element_readers; |
| 13952 element_readers.push_back(new UploadBytesElementReader("foo", 3)); | 13952 element_readers.push_back(new UploadBytesElementReader("foo", 3)); |
| 13953 ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0); | 13953 ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0); |
| 13954 | 13954 |
| 13955 HttpRequestInfo request; | 13955 HttpRequestInfo request; |
| 13956 request.method = "POST"; | 13956 request.method = "POST"; |
| 13957 request.url = GURL("http://www.foo.com/"); | 13957 request.url = GURL("http://www.foo.com/"); |
| 13958 request.upload_data_stream = &upload_data_stream; | 13958 request.upload_data_stream = &upload_data_stream; |
| 13959 request.load_flags = 0; | 13959 request.load_flags = 0; |
| 13960 | 13960 |
| 13961 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 13961 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 13962 scoped_ptr<HttpTransaction> trans( | 13962 scoped_ptr<HttpTransaction> trans( |
| 13963 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 13963 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 13964 // Send headers successfully, but get an error while sending the body. | 13964 // Send headers successfully, but get an error while sending the body. |
| 13965 MockWrite data_writes[] = { | 13965 MockWrite data_writes[] = { |
| 13966 MockWrite("POST / HTTP/1.1\r\n" | 13966 MockWrite("POST / HTTP/1.1\r\n" |
| 13967 "Host: www.foo.com\r\n" | 13967 "Host: www.foo.com\r\n" |
| 13968 "Connection: keep-alive\r\n" | 13968 "Connection: keep-alive\r\n" |
| 13969 "Content-Length: 3\r\n\r\n"), | 13969 "Content-Length: 3\r\n\r\n"), |
| 13970 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), | 13970 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), |
| 13971 }; | 13971 }; |
| (...skipping 24 matching lines...) Expand all Loading... |
| 13996 std::string response_data; | 13996 std::string response_data; |
| 13997 rv = ReadTransaction(trans.get(), &response_data); | 13997 rv = ReadTransaction(trans.get(), &response_data); |
| 13998 EXPECT_EQ(OK, rv); | 13998 EXPECT_EQ(OK, rv); |
| 13999 EXPECT_EQ("hello world", response_data); | 13999 EXPECT_EQ("hello world", response_data); |
| 14000 } | 14000 } |
| 14001 | 14001 |
| 14002 // This test makes sure the retry logic doesn't trigger when reading an error | 14002 // This test makes sure the retry logic doesn't trigger when reading an error |
| 14003 // response from a server that rejected a POST with a CONNECTION_RESET. | 14003 // response from a server that rejected a POST with a CONNECTION_RESET. |
| 14004 TEST_P(HttpNetworkTransactionTest, | 14004 TEST_P(HttpNetworkTransactionTest, |
| 14005 PostReadsErrorResponseAfterResetOnReusedSocket) { | 14005 PostReadsErrorResponseAfterResetOnReusedSocket) { |
| 14006 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 14006 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 14007 MockWrite data_writes[] = { | 14007 MockWrite data_writes[] = { |
| 14008 MockWrite("GET / HTTP/1.1\r\n" | 14008 MockWrite("GET / HTTP/1.1\r\n" |
| 14009 "Host: www.foo.com\r\n" | 14009 "Host: www.foo.com\r\n" |
| 14010 "Connection: keep-alive\r\n\r\n"), | 14010 "Connection: keep-alive\r\n\r\n"), |
| 14011 MockWrite("POST / HTTP/1.1\r\n" | 14011 MockWrite("POST / HTTP/1.1\r\n" |
| 14012 "Host: www.foo.com\r\n" | 14012 "Host: www.foo.com\r\n" |
| 14013 "Connection: keep-alive\r\n" | 14013 "Connection: keep-alive\r\n" |
| 14014 "Content-Length: 3\r\n\r\n"), | 14014 "Content-Length: 3\r\n\r\n"), |
| 14015 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), | 14015 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), |
| 14016 }; | 14016 }; |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 14090 ScopedVector<UploadElementReader> element_readers; | 14090 ScopedVector<UploadElementReader> element_readers; |
| 14091 element_readers.push_back(new UploadBytesElementReader("foo", 3)); | 14091 element_readers.push_back(new UploadBytesElementReader("foo", 3)); |
| 14092 ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0); | 14092 ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0); |
| 14093 | 14093 |
| 14094 HttpRequestInfo request; | 14094 HttpRequestInfo request; |
| 14095 request.method = "POST"; | 14095 request.method = "POST"; |
| 14096 request.url = GURL("http://www.foo.com/"); | 14096 request.url = GURL("http://www.foo.com/"); |
| 14097 request.upload_data_stream = &upload_data_stream; | 14097 request.upload_data_stream = &upload_data_stream; |
| 14098 request.load_flags = 0; | 14098 request.load_flags = 0; |
| 14099 | 14099 |
| 14100 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 14100 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 14101 scoped_ptr<HttpTransaction> trans( | 14101 scoped_ptr<HttpTransaction> trans( |
| 14102 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 14102 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 14103 // Send headers successfully, but get an error while sending the body. | 14103 // Send headers successfully, but get an error while sending the body. |
| 14104 MockWrite data_writes[] = { | 14104 MockWrite data_writes[] = { |
| 14105 MockWrite("POST / HTTP/1.1\r\n" | 14105 MockWrite("POST / HTTP/1.1\r\n" |
| 14106 "Host: www.foo.com\r\n" | 14106 "Host: www.foo.com\r\n" |
| 14107 "Connection: keep-alive\r\n" | 14107 "Connection: keep-alive\r\n" |
| 14108 "Content-Length: 3\r\n\r\n" | 14108 "Content-Length: 3\r\n\r\n" |
| 14109 "fo"), | 14109 "fo"), |
| 14110 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), | 14110 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 14145 ScopedVector<UploadElementReader> element_readers; | 14145 ScopedVector<UploadElementReader> element_readers; |
| 14146 element_readers.push_back(new UploadBytesElementReader("foo", 3)); | 14146 element_readers.push_back(new UploadBytesElementReader("foo", 3)); |
| 14147 ChunkedUploadDataStream upload_data_stream(0); | 14147 ChunkedUploadDataStream upload_data_stream(0); |
| 14148 | 14148 |
| 14149 HttpRequestInfo request; | 14149 HttpRequestInfo request; |
| 14150 request.method = "POST"; | 14150 request.method = "POST"; |
| 14151 request.url = GURL("http://www.foo.com/"); | 14151 request.url = GURL("http://www.foo.com/"); |
| 14152 request.upload_data_stream = &upload_data_stream; | 14152 request.upload_data_stream = &upload_data_stream; |
| 14153 request.load_flags = 0; | 14153 request.load_flags = 0; |
| 14154 | 14154 |
| 14155 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 14155 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 14156 scoped_ptr<HttpTransaction> trans( | 14156 scoped_ptr<HttpTransaction> trans( |
| 14157 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 14157 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 14158 // Send headers successfully, but get an error while sending the body. | 14158 // Send headers successfully, but get an error while sending the body. |
| 14159 MockWrite data_writes[] = { | 14159 MockWrite data_writes[] = { |
| 14160 MockWrite("POST / HTTP/1.1\r\n" | 14160 MockWrite("POST / HTTP/1.1\r\n" |
| 14161 "Host: www.foo.com\r\n" | 14161 "Host: www.foo.com\r\n" |
| 14162 "Connection: keep-alive\r\n" | 14162 "Connection: keep-alive\r\n" |
| 14163 "Transfer-Encoding: chunked\r\n\r\n"), | 14163 "Transfer-Encoding: chunked\r\n\r\n"), |
| 14164 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), | 14164 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), |
| 14165 }; | 14165 }; |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 14204 ScopedVector<UploadElementReader> element_readers; | 14204 ScopedVector<UploadElementReader> element_readers; |
| 14205 element_readers.push_back(new UploadBytesElementReader("foo", 3)); | 14205 element_readers.push_back(new UploadBytesElementReader("foo", 3)); |
| 14206 ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0); | 14206 ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0); |
| 14207 | 14207 |
| 14208 HttpRequestInfo request; | 14208 HttpRequestInfo request; |
| 14209 request.method = "POST"; | 14209 request.method = "POST"; |
| 14210 request.url = GURL("http://www.foo.com/"); | 14210 request.url = GURL("http://www.foo.com/"); |
| 14211 request.upload_data_stream = &upload_data_stream; | 14211 request.upload_data_stream = &upload_data_stream; |
| 14212 request.load_flags = 0; | 14212 request.load_flags = 0; |
| 14213 | 14213 |
| 14214 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 14214 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 14215 scoped_ptr<HttpTransaction> trans( | 14215 scoped_ptr<HttpTransaction> trans( |
| 14216 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 14216 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 14217 | 14217 |
| 14218 MockWrite data_writes[] = { | 14218 MockWrite data_writes[] = { |
| 14219 MockWrite("POST / HTTP/1.1\r\n" | 14219 MockWrite("POST / HTTP/1.1\r\n" |
| 14220 "Host: www.foo.com\r\n" | 14220 "Host: www.foo.com\r\n" |
| 14221 "Connection: keep-alive\r\n" | 14221 "Connection: keep-alive\r\n" |
| 14222 "Content-Length: 3\r\n\r\n"), | 14222 "Content-Length: 3\r\n\r\n"), |
| 14223 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), | 14223 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), |
| 14224 }; | 14224 }; |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 14257 ScopedVector<UploadElementReader> element_readers; | 14257 ScopedVector<UploadElementReader> element_readers; |
| 14258 element_readers.push_back(new UploadBytesElementReader("foo", 3)); | 14258 element_readers.push_back(new UploadBytesElementReader("foo", 3)); |
| 14259 ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0); | 14259 ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0); |
| 14260 | 14260 |
| 14261 HttpRequestInfo request; | 14261 HttpRequestInfo request; |
| 14262 request.method = "POST"; | 14262 request.method = "POST"; |
| 14263 request.url = GURL("http://www.foo.com/"); | 14263 request.url = GURL("http://www.foo.com/"); |
| 14264 request.upload_data_stream = &upload_data_stream; | 14264 request.upload_data_stream = &upload_data_stream; |
| 14265 request.load_flags = 0; | 14265 request.load_flags = 0; |
| 14266 | 14266 |
| 14267 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 14267 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 14268 scoped_ptr<HttpTransaction> trans( | 14268 scoped_ptr<HttpTransaction> trans( |
| 14269 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 14269 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 14270 // Send headers successfully, but get an error while sending the body. | 14270 // Send headers successfully, but get an error while sending the body. |
| 14271 MockWrite data_writes[] = { | 14271 MockWrite data_writes[] = { |
| 14272 MockWrite("POST / HTTP/1.1\r\n" | 14272 MockWrite("POST / HTTP/1.1\r\n" |
| 14273 "Host: www.foo.com\r\n" | 14273 "Host: www.foo.com\r\n" |
| 14274 "Connection: keep-alive\r\n" | 14274 "Connection: keep-alive\r\n" |
| 14275 "Content-Length: 3\r\n\r\n"), | 14275 "Content-Length: 3\r\n\r\n"), |
| 14276 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), | 14276 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), |
| 14277 }; | 14277 }; |
| (...skipping 21 matching lines...) Expand all Loading... |
| 14299 ScopedVector<UploadElementReader> element_readers; | 14299 ScopedVector<UploadElementReader> element_readers; |
| 14300 element_readers.push_back(new UploadBytesElementReader("foo", 3)); | 14300 element_readers.push_back(new UploadBytesElementReader("foo", 3)); |
| 14301 ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0); | 14301 ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0); |
| 14302 | 14302 |
| 14303 HttpRequestInfo request; | 14303 HttpRequestInfo request; |
| 14304 request.method = "POST"; | 14304 request.method = "POST"; |
| 14305 request.url = GURL("http://www.foo.com/"); | 14305 request.url = GURL("http://www.foo.com/"); |
| 14306 request.upload_data_stream = &upload_data_stream; | 14306 request.upload_data_stream = &upload_data_stream; |
| 14307 request.load_flags = 0; | 14307 request.load_flags = 0; |
| 14308 | 14308 |
| 14309 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 14309 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 14310 scoped_ptr<HttpTransaction> trans( | 14310 scoped_ptr<HttpTransaction> trans( |
| 14311 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 14311 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 14312 // Send headers successfully, but get an error while sending the body. | 14312 // Send headers successfully, but get an error while sending the body. |
| 14313 MockWrite data_writes[] = { | 14313 MockWrite data_writes[] = { |
| 14314 MockWrite("POST / HTTP/1.1\r\n" | 14314 MockWrite("POST / HTTP/1.1\r\n" |
| 14315 "Host: www.foo.com\r\n" | 14315 "Host: www.foo.com\r\n" |
| 14316 "Connection: keep-alive\r\n" | 14316 "Connection: keep-alive\r\n" |
| 14317 "Content-Length: 3\r\n\r\n"), | 14317 "Content-Length: 3\r\n\r\n"), |
| 14318 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), | 14318 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), |
| 14319 }; | 14319 }; |
| (...skipping 22 matching lines...) Expand all Loading... |
| 14342 ScopedVector<UploadElementReader> element_readers; | 14342 ScopedVector<UploadElementReader> element_readers; |
| 14343 element_readers.push_back(new UploadBytesElementReader("foo", 3)); | 14343 element_readers.push_back(new UploadBytesElementReader("foo", 3)); |
| 14344 ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0); | 14344 ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0); |
| 14345 | 14345 |
| 14346 HttpRequestInfo request; | 14346 HttpRequestInfo request; |
| 14347 request.method = "POST"; | 14347 request.method = "POST"; |
| 14348 request.url = GURL("http://www.foo.com/"); | 14348 request.url = GURL("http://www.foo.com/"); |
| 14349 request.upload_data_stream = &upload_data_stream; | 14349 request.upload_data_stream = &upload_data_stream; |
| 14350 request.load_flags = 0; | 14350 request.load_flags = 0; |
| 14351 | 14351 |
| 14352 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 14352 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 14353 scoped_ptr<HttpTransaction> trans( | 14353 scoped_ptr<HttpTransaction> trans( |
| 14354 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 14354 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 14355 // Send headers successfully, but get an error while sending the body. | 14355 // Send headers successfully, but get an error while sending the body. |
| 14356 MockWrite data_writes[] = { | 14356 MockWrite data_writes[] = { |
| 14357 MockWrite("POST / HTTP/1.1\r\n" | 14357 MockWrite("POST / HTTP/1.1\r\n" |
| 14358 "Host: www.foo.com\r\n" | 14358 "Host: www.foo.com\r\n" |
| 14359 "Connection: keep-alive\r\n" | 14359 "Connection: keep-alive\r\n" |
| 14360 "Content-Length: 3\r\n\r\n"), | 14360 "Content-Length: 3\r\n\r\n"), |
| 14361 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), | 14361 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), |
| 14362 }; | 14362 }; |
| (...skipping 19 matching lines...) Expand all Loading... |
| 14382 ScopedVector<UploadElementReader> element_readers; | 14382 ScopedVector<UploadElementReader> element_readers; |
| 14383 element_readers.push_back(new UploadBytesElementReader("foo", 3)); | 14383 element_readers.push_back(new UploadBytesElementReader("foo", 3)); |
| 14384 ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0); | 14384 ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0); |
| 14385 | 14385 |
| 14386 HttpRequestInfo request; | 14386 HttpRequestInfo request; |
| 14387 request.method = "POST"; | 14387 request.method = "POST"; |
| 14388 request.url = GURL("http://www.foo.com/"); | 14388 request.url = GURL("http://www.foo.com/"); |
| 14389 request.upload_data_stream = &upload_data_stream; | 14389 request.upload_data_stream = &upload_data_stream; |
| 14390 request.load_flags = 0; | 14390 request.load_flags = 0; |
| 14391 | 14391 |
| 14392 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 14392 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 14393 scoped_ptr<HttpTransaction> trans( | 14393 scoped_ptr<HttpTransaction> trans( |
| 14394 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 14394 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 14395 // Send headers successfully, but get an error while sending the body. | 14395 // Send headers successfully, but get an error while sending the body. |
| 14396 MockWrite data_writes[] = { | 14396 MockWrite data_writes[] = { |
| 14397 MockWrite("POST / HTTP/1.1\r\n" | 14397 MockWrite("POST / HTTP/1.1\r\n" |
| 14398 "Host: www.foo.com\r\n" | 14398 "Host: www.foo.com\r\n" |
| 14399 "Connection: keep-alive\r\n" | 14399 "Connection: keep-alive\r\n" |
| 14400 "Content-Length: 3\r\n\r\n"), | 14400 "Content-Length: 3\r\n\r\n"), |
| 14401 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), | 14401 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), |
| 14402 }; | 14402 }; |
| (...skipping 20 matching lines...) Expand all Loading... |
| 14423 TEST_P(HttpNetworkTransactionTest, ProxyHeadersNotSentOverWssTunnel) { | 14423 TEST_P(HttpNetworkTransactionTest, ProxyHeadersNotSentOverWssTunnel) { |
| 14424 HttpRequestInfo request; | 14424 HttpRequestInfo request; |
| 14425 request.method = "GET"; | 14425 request.method = "GET"; |
| 14426 request.url = GURL("wss://www.example.org/"); | 14426 request.url = GURL("wss://www.example.org/"); |
| 14427 AddWebSocketHeaders(&request.extra_headers); | 14427 AddWebSocketHeaders(&request.extra_headers); |
| 14428 | 14428 |
| 14429 // Configure against proxy server "myproxy:70". | 14429 // Configure against proxy server "myproxy:70". |
| 14430 session_deps_.proxy_service.reset( | 14430 session_deps_.proxy_service.reset( |
| 14431 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70")); | 14431 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70")); |
| 14432 | 14432 |
| 14433 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 14433 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 14434 | 14434 |
| 14435 // Since a proxy is configured, try to establish a tunnel. | 14435 // Since a proxy is configured, try to establish a tunnel. |
| 14436 MockWrite data_writes[] = { | 14436 MockWrite data_writes[] = { |
| 14437 MockWrite( | 14437 MockWrite( |
| 14438 "CONNECT www.example.org:443 HTTP/1.1\r\n" | 14438 "CONNECT www.example.org:443 HTTP/1.1\r\n" |
| 14439 "Host: www.example.org\r\n" | 14439 "Host: www.example.org\r\n" |
| 14440 "Proxy-Connection: keep-alive\r\n\r\n"), | 14440 "Proxy-Connection: keep-alive\r\n\r\n"), |
| 14441 | 14441 |
| 14442 // After calling trans->RestartWithAuth(), this is the request we should | 14442 // After calling trans->RestartWithAuth(), this is the request we should |
| 14443 // be issuing -- the final header line contains the credentials. | 14443 // be issuing -- the final header line contains the credentials. |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 14530 TEST_P(HttpNetworkTransactionTest, ProxyHeadersNotSentOverWsTunnel) { | 14530 TEST_P(HttpNetworkTransactionTest, ProxyHeadersNotSentOverWsTunnel) { |
| 14531 HttpRequestInfo request; | 14531 HttpRequestInfo request; |
| 14532 request.method = "GET"; | 14532 request.method = "GET"; |
| 14533 request.url = GURL("ws://www.example.org/"); | 14533 request.url = GURL("ws://www.example.org/"); |
| 14534 AddWebSocketHeaders(&request.extra_headers); | 14534 AddWebSocketHeaders(&request.extra_headers); |
| 14535 | 14535 |
| 14536 // Configure against proxy server "myproxy:70". | 14536 // Configure against proxy server "myproxy:70". |
| 14537 session_deps_.proxy_service.reset( | 14537 session_deps_.proxy_service.reset( |
| 14538 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70")); | 14538 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70")); |
| 14539 | 14539 |
| 14540 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 14540 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 14541 | 14541 |
| 14542 MockWrite data_writes[] = { | 14542 MockWrite data_writes[] = { |
| 14543 // Try to establish a tunnel for the WebSocket connection, with | 14543 // Try to establish a tunnel for the WebSocket connection, with |
| 14544 // credentials. Because WebSockets have a separate set of socket pools, | 14544 // credentials. Because WebSockets have a separate set of socket pools, |
| 14545 // they cannot and will not use the same TCP/IP connection as the | 14545 // they cannot and will not use the same TCP/IP connection as the |
| 14546 // preflight HTTP request. | 14546 // preflight HTTP request. |
| 14547 MockWrite( | 14547 MockWrite( |
| 14548 "CONNECT www.example.org:80 HTTP/1.1\r\n" | 14548 "CONNECT www.example.org:80 HTTP/1.1\r\n" |
| 14549 "Host: www.example.org:80\r\n" | 14549 "Host: www.example.org:80\r\n" |
| 14550 "Proxy-Connection: keep-alive\r\n" | 14550 "Proxy-Connection: keep-alive\r\n" |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 14606 TEST_P(HttpNetworkTransactionTest, TotalNetworkBytesPost) { | 14606 TEST_P(HttpNetworkTransactionTest, TotalNetworkBytesPost) { |
| 14607 ScopedVector<UploadElementReader> element_readers; | 14607 ScopedVector<UploadElementReader> element_readers; |
| 14608 element_readers.push_back(new UploadBytesElementReader("foo", 3)); | 14608 element_readers.push_back(new UploadBytesElementReader("foo", 3)); |
| 14609 ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0); | 14609 ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0); |
| 14610 | 14610 |
| 14611 HttpRequestInfo request; | 14611 HttpRequestInfo request; |
| 14612 request.method = "POST"; | 14612 request.method = "POST"; |
| 14613 request.url = GURL("http://www.foo.com/"); | 14613 request.url = GURL("http://www.foo.com/"); |
| 14614 request.upload_data_stream = &upload_data_stream; | 14614 request.upload_data_stream = &upload_data_stream; |
| 14615 | 14615 |
| 14616 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 14616 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 14617 scoped_ptr<HttpTransaction> trans( | 14617 scoped_ptr<HttpTransaction> trans( |
| 14618 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 14618 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 14619 MockWrite data_writes[] = { | 14619 MockWrite data_writes[] = { |
| 14620 MockWrite("POST / HTTP/1.1\r\n" | 14620 MockWrite("POST / HTTP/1.1\r\n" |
| 14621 "Host: www.foo.com\r\n" | 14621 "Host: www.foo.com\r\n" |
| 14622 "Connection: keep-alive\r\n" | 14622 "Connection: keep-alive\r\n" |
| 14623 "Content-Length: 3\r\n\r\n"), | 14623 "Content-Length: 3\r\n\r\n"), |
| 14624 MockWrite("foo"), | 14624 MockWrite("foo"), |
| 14625 }; | 14625 }; |
| 14626 | 14626 |
| (...skipping 23 matching lines...) Expand all Loading... |
| 14650 TEST_P(HttpNetworkTransactionTest, TotalNetworkBytesPost100Continue) { | 14650 TEST_P(HttpNetworkTransactionTest, TotalNetworkBytesPost100Continue) { |
| 14651 ScopedVector<UploadElementReader> element_readers; | 14651 ScopedVector<UploadElementReader> element_readers; |
| 14652 element_readers.push_back(new UploadBytesElementReader("foo", 3)); | 14652 element_readers.push_back(new UploadBytesElementReader("foo", 3)); |
| 14653 ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0); | 14653 ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0); |
| 14654 | 14654 |
| 14655 HttpRequestInfo request; | 14655 HttpRequestInfo request; |
| 14656 request.method = "POST"; | 14656 request.method = "POST"; |
| 14657 request.url = GURL("http://www.foo.com/"); | 14657 request.url = GURL("http://www.foo.com/"); |
| 14658 request.upload_data_stream = &upload_data_stream; | 14658 request.upload_data_stream = &upload_data_stream; |
| 14659 | 14659 |
| 14660 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 14660 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 14661 scoped_ptr<HttpTransaction> trans( | 14661 scoped_ptr<HttpTransaction> trans( |
| 14662 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 14662 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 14663 MockWrite data_writes[] = { | 14663 MockWrite data_writes[] = { |
| 14664 MockWrite("POST / HTTP/1.1\r\n" | 14664 MockWrite("POST / HTTP/1.1\r\n" |
| 14665 "Host: www.foo.com\r\n" | 14665 "Host: www.foo.com\r\n" |
| 14666 "Connection: keep-alive\r\n" | 14666 "Connection: keep-alive\r\n" |
| 14667 "Content-Length: 3\r\n\r\n"), | 14667 "Content-Length: 3\r\n\r\n"), |
| 14668 MockWrite("foo"), | 14668 MockWrite("foo"), |
| 14669 }; | 14669 }; |
| 14670 | 14670 |
| (...skipping 24 matching lines...) Expand all Loading... |
| 14695 TEST_P(HttpNetworkTransactionTest, TotalNetworkBytesChunkedPost) { | 14695 TEST_P(HttpNetworkTransactionTest, TotalNetworkBytesChunkedPost) { |
| 14696 ScopedVector<UploadElementReader> element_readers; | 14696 ScopedVector<UploadElementReader> element_readers; |
| 14697 element_readers.push_back(new UploadBytesElementReader("foo", 3)); | 14697 element_readers.push_back(new UploadBytesElementReader("foo", 3)); |
| 14698 ChunkedUploadDataStream upload_data_stream(0); | 14698 ChunkedUploadDataStream upload_data_stream(0); |
| 14699 | 14699 |
| 14700 HttpRequestInfo request; | 14700 HttpRequestInfo request; |
| 14701 request.method = "POST"; | 14701 request.method = "POST"; |
| 14702 request.url = GURL("http://www.foo.com/"); | 14702 request.url = GURL("http://www.foo.com/"); |
| 14703 request.upload_data_stream = &upload_data_stream; | 14703 request.upload_data_stream = &upload_data_stream; |
| 14704 | 14704 |
| 14705 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 14705 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 14706 scoped_ptr<HttpTransaction> trans( | 14706 scoped_ptr<HttpTransaction> trans( |
| 14707 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 14707 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 14708 // Send headers successfully, but get an error while sending the body. | 14708 // Send headers successfully, but get an error while sending the body. |
| 14709 MockWrite data_writes[] = { | 14709 MockWrite data_writes[] = { |
| 14710 MockWrite("POST / HTTP/1.1\r\n" | 14710 MockWrite("POST / HTTP/1.1\r\n" |
| 14711 "Host: www.foo.com\r\n" | 14711 "Host: www.foo.com\r\n" |
| 14712 "Connection: keep-alive\r\n" | 14712 "Connection: keep-alive\r\n" |
| 14713 "Transfer-Encoding: chunked\r\n\r\n"), | 14713 "Transfer-Encoding: chunked\r\n\r\n"), |
| 14714 MockWrite("1\r\nf\r\n"), MockWrite("2\r\noo\r\n"), MockWrite("0\r\n\r\n"), | 14714 MockWrite("1\r\nf\r\n"), MockWrite("2\r\noo\r\n"), MockWrite("0\r\n\r\n"), |
| 14715 }; | 14715 }; |
| (...skipping 22 matching lines...) Expand all Loading... |
| 14738 std::string response_data; | 14738 std::string response_data; |
| 14739 EXPECT_EQ(OK, ReadTransaction(trans.get(), &response_data)); | 14739 EXPECT_EQ(OK, ReadTransaction(trans.get(), &response_data)); |
| 14740 | 14740 |
| 14741 EXPECT_EQ(CountWriteBytes(data_writes, arraysize(data_writes)), | 14741 EXPECT_EQ(CountWriteBytes(data_writes, arraysize(data_writes)), |
| 14742 trans->GetTotalSentBytes()); | 14742 trans->GetTotalSentBytes()); |
| 14743 EXPECT_EQ(CountReadBytes(data_reads, arraysize(data_reads)), | 14743 EXPECT_EQ(CountReadBytes(data_reads, arraysize(data_reads)), |
| 14744 trans->GetTotalReceivedBytes()); | 14744 trans->GetTotalReceivedBytes()); |
| 14745 } | 14745 } |
| 14746 | 14746 |
| 14747 } // namespace net | 14747 } // namespace net |
| OLD | NEW |