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 526 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
537 const std::string last_group_name_received() const { | 537 const std::string last_group_name_received() const { |
538 return last_group_name_; | 538 return last_group_name_; |
539 } | 539 } |
540 | 540 |
541 int RequestSocket(const std::string& group_name, | 541 int RequestSocket(const std::string& group_name, |
542 const void* socket_params, | 542 const void* socket_params, |
543 RequestPriority priority, | 543 RequestPriority priority, |
544 ClientSocketPool::RespectLimits respect_limits, | 544 ClientSocketPool::RespectLimits respect_limits, |
545 ClientSocketHandle* handle, | 545 ClientSocketHandle* handle, |
546 const CompletionCallback& callback, | 546 const CompletionCallback& callback, |
547 const BoundNetLog& net_log) override { | 547 const NetLogWithSource& net_log) override { |
548 last_group_name_ = group_name; | 548 last_group_name_ = group_name; |
549 return ERR_IO_PENDING; | 549 return ERR_IO_PENDING; |
550 } | 550 } |
551 void CancelRequest(const std::string& group_name, | 551 void CancelRequest(const std::string& group_name, |
552 ClientSocketHandle* handle) override {} | 552 ClientSocketHandle* handle) override {} |
553 void ReleaseSocket(const std::string& group_name, | 553 void ReleaseSocket(const std::string& group_name, |
554 std::unique_ptr<StreamSocket> socket, | 554 std::unique_ptr<StreamSocket> socket, |
555 int id) override {} | 555 int id) override {} |
556 void CloseIdleSockets() override {} | 556 void CloseIdleSockets() override {} |
557 int IdleSocketCount() const override { return 0; } | 557 int IdleSocketCount() const override { return 0; } |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
719 | 719 |
720 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 720 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
721 | 721 |
722 std::unique_ptr<HttpTransaction> trans( | 722 std::unique_ptr<HttpTransaction> trans( |
723 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 723 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
724 | 724 |
725 HttpRequestInfo request; | 725 HttpRequestInfo request; |
726 request.method = "GET"; | 726 request.method = "GET"; |
727 request.url = GURL("http://www.example.com:2000/"); | 727 request.url = GURL("http://www.example.com:2000/"); |
728 TestCompletionCallback callback; | 728 TestCompletionCallback callback; |
729 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 729 int rv = trans->Start(&request, callback.callback(), NetLogWithSource()); |
730 EXPECT_THAT(callback.GetResult(rv), IsError(ERR_INVALID_HTTP_RESPONSE)); | 730 EXPECT_THAT(callback.GetResult(rv), IsError(ERR_INVALID_HTTP_RESPONSE)); |
731 } | 731 } |
732 | 732 |
733 // Response with no status line, and a weird port. Option to allow weird ports | 733 // Response with no status line, and a weird port. Option to allow weird ports |
734 // enabled. | 734 // enabled. |
735 TEST_F(HttpNetworkTransactionTest, SimpleGETNoHeadersWeirdPortAllowed) { | 735 TEST_F(HttpNetworkTransactionTest, SimpleGETNoHeadersWeirdPortAllowed) { |
736 MockRead data_reads[] = { | 736 MockRead data_reads[] = { |
737 MockRead("hello world"), MockRead(SYNCHRONOUS, OK), | 737 MockRead("hello world"), MockRead(SYNCHRONOUS, OK), |
738 }; | 738 }; |
739 | 739 |
740 StaticSocketDataProvider data(data_reads, arraysize(data_reads), nullptr, 0); | 740 StaticSocketDataProvider data(data_reads, arraysize(data_reads), nullptr, 0); |
741 session_deps_.socket_factory->AddSocketDataProvider(&data); | 741 session_deps_.socket_factory->AddSocketDataProvider(&data); |
742 session_deps_.http_09_on_non_default_ports_enabled = true; | 742 session_deps_.http_09_on_non_default_ports_enabled = true; |
743 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 743 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
744 | 744 |
745 std::unique_ptr<HttpTransaction> trans( | 745 std::unique_ptr<HttpTransaction> trans( |
746 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 746 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
747 | 747 |
748 HttpRequestInfo request; | 748 HttpRequestInfo request; |
749 request.method = "GET"; | 749 request.method = "GET"; |
750 request.url = GURL("http://www.example.com:2000/"); | 750 request.url = GURL("http://www.example.com:2000/"); |
751 TestCompletionCallback callback; | 751 TestCompletionCallback callback; |
752 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 752 int rv = trans->Start(&request, callback.callback(), NetLogWithSource()); |
753 EXPECT_THAT(callback.GetResult(rv), IsOk()); | 753 EXPECT_THAT(callback.GetResult(rv), IsOk()); |
754 | 754 |
755 const HttpResponseInfo* info = trans->GetResponseInfo(); | 755 const HttpResponseInfo* info = trans->GetResponseInfo(); |
756 ASSERT_TRUE(info->headers); | 756 ASSERT_TRUE(info->headers); |
757 EXPECT_EQ("HTTP/0.9 200 OK", info->headers->GetStatusLine()); | 757 EXPECT_EQ("HTTP/0.9 200 OK", info->headers->GetStatusLine()); |
758 | 758 |
759 // Don't bother to read the body - that's verified elsewhere, important thing | 759 // Don't bother to read the body - that's verified elsewhere, important thing |
760 // is that the option to allow HTTP/0.9 on non-default ports is respected. | 760 // is that the option to allow HTTP/0.9 on non-default ports is respected. |
761 } | 761 } |
762 | 762 |
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1044 request.load_flags = 0; | 1044 request.load_flags = 0; |
1045 | 1045 |
1046 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 1046 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
1047 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 1047 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
1048 | 1048 |
1049 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 1049 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
1050 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1050 session_deps_.socket_factory->AddSocketDataProvider(&data); |
1051 | 1051 |
1052 TestCompletionCallback callback; | 1052 TestCompletionCallback callback; |
1053 | 1053 |
1054 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 1054 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
1055 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 1055 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
1056 | 1056 |
1057 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 1057 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
1058 | 1058 |
1059 const HttpResponseInfo* response = trans.GetResponseInfo(); | 1059 const HttpResponseInfo* response = trans.GetResponseInfo(); |
1060 ASSERT_TRUE(response); | 1060 ASSERT_TRUE(response); |
1061 ASSERT_TRUE(response->headers); | 1061 ASSERT_TRUE(response->headers); |
1062 EXPECT_EQ("HTTP/1.1 302 Redirect", response->headers->GetStatusLine()); | 1062 EXPECT_EQ("HTTP/1.1 302 Redirect", response->headers->GetStatusLine()); |
1063 std::string url; | 1063 std::string url; |
1064 EXPECT_TRUE(response->headers->IsRedirect(&url)); | 1064 EXPECT_TRUE(response->headers->IsRedirect(&url)); |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1107 // No response body because the test stops reading here. | 1107 // No response body because the test stops reading here. |
1108 MockRead(SYNCHRONOUS, ERR_UNEXPECTED), | 1108 MockRead(SYNCHRONOUS, ERR_UNEXPECTED), |
1109 }; | 1109 }; |
1110 | 1110 |
1111 StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), | 1111 StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), |
1112 data_writes1, arraysize(data_writes1)); | 1112 data_writes1, arraysize(data_writes1)); |
1113 session_deps_.socket_factory->AddSocketDataProvider(&data1); | 1113 session_deps_.socket_factory->AddSocketDataProvider(&data1); |
1114 | 1114 |
1115 TestCompletionCallback callback1; | 1115 TestCompletionCallback callback1; |
1116 | 1116 |
1117 int rv = trans.Start(&request, callback1.callback(), BoundNetLog()); | 1117 int rv = trans.Start(&request, callback1.callback(), NetLogWithSource()); |
1118 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 1118 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
1119 | 1119 |
1120 rv = callback1.WaitForResult(); | 1120 rv = callback1.WaitForResult(); |
1121 EXPECT_THAT(rv, IsOk()); | 1121 EXPECT_THAT(rv, IsOk()); |
1122 | 1122 |
1123 const HttpResponseInfo* response = trans.GetResponseInfo(); | 1123 const HttpResponseInfo* response = trans.GetResponseInfo(); |
1124 ASSERT_TRUE(response); | 1124 ASSERT_TRUE(response); |
1125 | 1125 |
1126 // Check that the headers got parsed. | 1126 // Check that the headers got parsed. |
1127 EXPECT_TRUE(response->headers); | 1127 EXPECT_TRUE(response->headers); |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1166 for (int i = 0; i < 2; ++i) { | 1166 for (int i = 0; i < 2; ++i) { |
1167 HttpRequestInfo request; | 1167 HttpRequestInfo request; |
1168 request.method = "GET"; | 1168 request.method = "GET"; |
1169 request.url = GURL("http://www.example.org/"); | 1169 request.url = GURL("http://www.example.org/"); |
1170 request.load_flags = 0; | 1170 request.load_flags = 0; |
1171 | 1171 |
1172 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 1172 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
1173 | 1173 |
1174 TestCompletionCallback callback; | 1174 TestCompletionCallback callback; |
1175 | 1175 |
1176 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 1176 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
1177 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 1177 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
1178 | 1178 |
1179 rv = callback.WaitForResult(); | 1179 rv = callback.WaitForResult(); |
1180 EXPECT_THAT(rv, IsOk()); | 1180 EXPECT_THAT(rv, IsOk()); |
1181 | 1181 |
1182 const HttpResponseInfo* response = trans.GetResponseInfo(); | 1182 const HttpResponseInfo* response = trans.GetResponseInfo(); |
1183 ASSERT_TRUE(response); | 1183 ASSERT_TRUE(response); |
1184 | 1184 |
1185 EXPECT_TRUE(response->headers); | 1185 EXPECT_TRUE(response->headers); |
1186 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 1186 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
(...skipping 30 matching lines...) Expand all Loading... |
1217 MockRead("HTTP/1.0 100 Continue\r\n\r\n"), | 1217 MockRead("HTTP/1.0 100 Continue\r\n\r\n"), |
1218 MockRead("HTTP/1.0 200 OK\r\n\r\n"), | 1218 MockRead("HTTP/1.0 200 OK\r\n\r\n"), |
1219 MockRead("hello world"), | 1219 MockRead("hello world"), |
1220 MockRead(SYNCHRONOUS, OK), | 1220 MockRead(SYNCHRONOUS, OK), |
1221 }; | 1221 }; |
1222 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 1222 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
1223 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1223 session_deps_.socket_factory->AddSocketDataProvider(&data); |
1224 | 1224 |
1225 TestCompletionCallback callback; | 1225 TestCompletionCallback callback; |
1226 | 1226 |
1227 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 1227 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
1228 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 1228 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
1229 | 1229 |
1230 rv = callback.WaitForResult(); | 1230 rv = callback.WaitForResult(); |
1231 EXPECT_THAT(rv, IsOk()); | 1231 EXPECT_THAT(rv, IsOk()); |
1232 | 1232 |
1233 const HttpResponseInfo* response = trans.GetResponseInfo(); | 1233 const HttpResponseInfo* response = trans.GetResponseInfo(); |
1234 ASSERT_TRUE(response); | 1234 ASSERT_TRUE(response); |
1235 | 1235 |
1236 EXPECT_TRUE(response->headers); | 1236 EXPECT_TRUE(response->headers); |
1237 EXPECT_EQ("HTTP/1.0 200 OK", response->headers->GetStatusLine()); | 1237 EXPECT_EQ("HTTP/1.0 200 OK", response->headers->GetStatusLine()); |
(...skipping 20 matching lines...) Expand all Loading... |
1258 MockRead("HTTP/1.1 102 Unspecified status code\r\n\r\n" | 1258 MockRead("HTTP/1.1 102 Unspecified status code\r\n\r\n" |
1259 "HTTP/1.1 200 OK\r\n\r\n"), | 1259 "HTTP/1.1 200 OK\r\n\r\n"), |
1260 MockRead("hello world"), | 1260 MockRead("hello world"), |
1261 MockRead(SYNCHRONOUS, OK), | 1261 MockRead(SYNCHRONOUS, OK), |
1262 }; | 1262 }; |
1263 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 1263 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
1264 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1264 session_deps_.socket_factory->AddSocketDataProvider(&data); |
1265 | 1265 |
1266 TestCompletionCallback callback; | 1266 TestCompletionCallback callback; |
1267 | 1267 |
1268 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 1268 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
1269 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 1269 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
1270 | 1270 |
1271 rv = callback.WaitForResult(); | 1271 rv = callback.WaitForResult(); |
1272 EXPECT_THAT(rv, IsOk()); | 1272 EXPECT_THAT(rv, IsOk()); |
1273 | 1273 |
1274 const HttpResponseInfo* response = trans.GetResponseInfo(); | 1274 const HttpResponseInfo* response = trans.GetResponseInfo(); |
1275 ASSERT_TRUE(response); | 1275 ASSERT_TRUE(response); |
1276 | 1276 |
1277 EXPECT_TRUE(response->headers); | 1277 EXPECT_TRUE(response->headers); |
1278 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 1278 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
(...skipping 15 matching lines...) Expand all Loading... |
1294 | 1294 |
1295 MockRead data_reads[] = { | 1295 MockRead data_reads[] = { |
1296 MockRead(SYNCHRONOUS, "HTTP/1.0 100 Continue\r\n"), | 1296 MockRead(SYNCHRONOUS, "HTTP/1.0 100 Continue\r\n"), |
1297 MockRead(ASYNC, 0), | 1297 MockRead(ASYNC, 0), |
1298 }; | 1298 }; |
1299 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 1299 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
1300 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1300 session_deps_.socket_factory->AddSocketDataProvider(&data); |
1301 | 1301 |
1302 TestCompletionCallback callback; | 1302 TestCompletionCallback callback; |
1303 | 1303 |
1304 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 1304 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
1305 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 1305 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
1306 | 1306 |
1307 rv = callback.WaitForResult(); | 1307 rv = callback.WaitForResult(); |
1308 EXPECT_THAT(rv, IsOk()); | 1308 EXPECT_THAT(rv, IsOk()); |
1309 | 1309 |
1310 std::string response_data; | 1310 std::string response_data; |
1311 rv = ReadTransaction(&trans, &response_data); | 1311 rv = ReadTransaction(&trans, &response_data); |
1312 EXPECT_THAT(rv, IsOk()); | 1312 EXPECT_THAT(rv, IsOk()); |
1313 EXPECT_EQ("", response_data); | 1313 EXPECT_EQ("", response_data); |
1314 } | 1314 } |
1315 | 1315 |
1316 TEST_F(HttpNetworkTransactionTest, EmptyResponse) { | 1316 TEST_F(HttpNetworkTransactionTest, EmptyResponse) { |
1317 HttpRequestInfo request; | 1317 HttpRequestInfo request; |
1318 request.method = "POST"; | 1318 request.method = "POST"; |
1319 request.url = GURL("http://www.foo.com/"); | 1319 request.url = GURL("http://www.foo.com/"); |
1320 request.load_flags = 0; | 1320 request.load_flags = 0; |
1321 | 1321 |
1322 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 1322 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
1323 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 1323 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
1324 | 1324 |
1325 MockRead data_reads[] = { | 1325 MockRead data_reads[] = { |
1326 MockRead(ASYNC, 0), | 1326 MockRead(ASYNC, 0), |
1327 }; | 1327 }; |
1328 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 1328 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
1329 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1329 session_deps_.socket_factory->AddSocketDataProvider(&data); |
1330 | 1330 |
1331 TestCompletionCallback callback; | 1331 TestCompletionCallback callback; |
1332 | 1332 |
1333 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 1333 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
1334 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 1334 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
1335 | 1335 |
1336 rv = callback.WaitForResult(); | 1336 rv = callback.WaitForResult(); |
1337 EXPECT_THAT(rv, IsError(ERR_EMPTY_RESPONSE)); | 1337 EXPECT_THAT(rv, IsError(ERR_EMPTY_RESPONSE)); |
1338 } | 1338 } |
1339 | 1339 |
1340 void HttpNetworkTransactionTest::KeepAliveConnectionResendRequestTest( | 1340 void HttpNetworkTransactionTest::KeepAliveConnectionResendRequestTest( |
1341 const MockWrite* write_failure, | 1341 const MockWrite* write_failure, |
1342 const MockRead* read_failure) { | 1342 const MockRead* read_failure) { |
1343 HttpRequestInfo request; | 1343 HttpRequestInfo request; |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1389 const char* const kExpectedResponseData[] = { | 1389 const char* const kExpectedResponseData[] = { |
1390 "hello", "world" | 1390 "hello", "world" |
1391 }; | 1391 }; |
1392 | 1392 |
1393 uint32_t first_socket_log_id = NetLog::Source::kInvalidId; | 1393 uint32_t first_socket_log_id = NetLog::Source::kInvalidId; |
1394 for (int i = 0; i < 2; ++i) { | 1394 for (int i = 0; i < 2; ++i) { |
1395 TestCompletionCallback callback; | 1395 TestCompletionCallback callback; |
1396 | 1396 |
1397 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 1397 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
1398 | 1398 |
1399 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 1399 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
1400 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 1400 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
1401 | 1401 |
1402 rv = callback.WaitForResult(); | 1402 rv = callback.WaitForResult(); |
1403 EXPECT_THAT(rv, IsOk()); | 1403 EXPECT_THAT(rv, IsOk()); |
1404 | 1404 |
1405 LoadTimingInfo load_timing_info; | 1405 LoadTimingInfo load_timing_info; |
1406 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info)); | 1406 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info)); |
1407 TestLoadTimingNotReused(load_timing_info, CONNECT_TIMING_HAS_DNS_TIMES); | 1407 TestLoadTimingNotReused(load_timing_info, CONNECT_TIMING_HAS_DNS_TIMES); |
1408 if (i == 0) { | 1408 if (i == 0) { |
1409 first_socket_log_id = load_timing_info.socket_log_id; | 1409 first_socket_log_id = load_timing_info.socket_log_id; |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1509 // Wait for the preconnect to complete. | 1509 // Wait for the preconnect to complete. |
1510 // TODO(davidben): Some way to wait for an idle socket count might be handy. | 1510 // TODO(davidben): Some way to wait for an idle socket count might be handy. |
1511 base::RunLoop().RunUntilIdle(); | 1511 base::RunLoop().RunUntilIdle(); |
1512 EXPECT_EQ(1, GetIdleSocketCountInSSLSocketPool(session.get())); | 1512 EXPECT_EQ(1, GetIdleSocketCountInSSLSocketPool(session.get())); |
1513 | 1513 |
1514 // Make the request. | 1514 // Make the request. |
1515 TestCompletionCallback callback; | 1515 TestCompletionCallback callback; |
1516 | 1516 |
1517 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 1517 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
1518 | 1518 |
1519 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 1519 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
1520 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 1520 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
1521 | 1521 |
1522 rv = callback.WaitForResult(); | 1522 rv = callback.WaitForResult(); |
1523 EXPECT_THAT(rv, IsOk()); | 1523 EXPECT_THAT(rv, IsOk()); |
1524 | 1524 |
1525 LoadTimingInfo load_timing_info; | 1525 LoadTimingInfo load_timing_info; |
1526 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info)); | 1526 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info)); |
1527 TestLoadTimingNotReused( | 1527 TestLoadTimingNotReused( |
1528 load_timing_info, | 1528 load_timing_info, |
1529 CONNECT_TIMING_HAS_DNS_TIMES|CONNECT_TIMING_HAS_SSL_TIMES); | 1529 CONNECT_TIMING_HAS_DNS_TIMES|CONNECT_TIMING_HAS_SSL_TIMES); |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1635 MockRead(ASYNC, ERR_CONNECTION_RESET), | 1635 MockRead(ASYNC, ERR_CONNECTION_RESET), |
1636 MockRead("HTTP/1.0 200 OK\r\n\r\n"), // Should not be used | 1636 MockRead("HTTP/1.0 200 OK\r\n\r\n"), // Should not be used |
1637 MockRead("hello world"), | 1637 MockRead("hello world"), |
1638 MockRead(SYNCHRONOUS, OK), | 1638 MockRead(SYNCHRONOUS, OK), |
1639 }; | 1639 }; |
1640 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 1640 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
1641 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1641 session_deps_.socket_factory->AddSocketDataProvider(&data); |
1642 | 1642 |
1643 TestCompletionCallback callback; | 1643 TestCompletionCallback callback; |
1644 | 1644 |
1645 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 1645 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
1646 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 1646 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
1647 | 1647 |
1648 rv = callback.WaitForResult(); | 1648 rv = callback.WaitForResult(); |
1649 EXPECT_THAT(rv, IsError(ERR_CONNECTION_RESET)); | 1649 EXPECT_THAT(rv, IsError(ERR_CONNECTION_RESET)); |
1650 | 1650 |
1651 IPEndPoint endpoint; | 1651 IPEndPoint endpoint; |
1652 EXPECT_TRUE(trans.GetRemoteEndpoint(&endpoint)); | 1652 EXPECT_TRUE(trans.GetRemoteEndpoint(&endpoint)); |
1653 EXPECT_LT(0u, endpoint.address().size()); | 1653 EXPECT_LT(0u, endpoint.address().size()); |
1654 } | 1654 } |
1655 | 1655 |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1693 MockRead("Connection: keep-alive\r\n"), | 1693 MockRead("Connection: keep-alive\r\n"), |
1694 MockRead("Content-Length: 100\r\n\r\n"), | 1694 MockRead("Content-Length: 100\r\n\r\n"), |
1695 MockRead("hello"), | 1695 MockRead("hello"), |
1696 MockRead(SYNCHRONOUS, 0), | 1696 MockRead(SYNCHRONOUS, 0), |
1697 }; | 1697 }; |
1698 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 1698 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
1699 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1699 session_deps_.socket_factory->AddSocketDataProvider(&data); |
1700 | 1700 |
1701 TestCompletionCallback callback; | 1701 TestCompletionCallback callback; |
1702 | 1702 |
1703 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 1703 int rv = trans->Start(&request, callback.callback(), NetLogWithSource()); |
1704 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 1704 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
1705 | 1705 |
1706 rv = callback.WaitForResult(); | 1706 rv = callback.WaitForResult(); |
1707 EXPECT_THAT(rv, IsOk()); | 1707 EXPECT_THAT(rv, IsOk()); |
1708 | 1708 |
1709 scoped_refptr<IOBufferWithSize> io_buf(new IOBufferWithSize(100)); | 1709 scoped_refptr<IOBufferWithSize> io_buf(new IOBufferWithSize(100)); |
1710 rv = trans->Read(io_buf.get(), io_buf->size(), callback.callback()); | 1710 rv = trans->Read(io_buf.get(), io_buf->size(), callback.callback()); |
1711 if (rv == ERR_IO_PENDING) | 1711 if (rv == ERR_IO_PENDING) |
1712 rv = callback.WaitForResult(); | 1712 rv = callback.WaitForResult(); |
1713 EXPECT_EQ(5, rv); | 1713 EXPECT_EQ(5, rv); |
(...skipping 19 matching lines...) Expand all Loading... |
1733 MockRead("HTTP/1.0 200 OK\r\n"), | 1733 MockRead("HTTP/1.0 200 OK\r\n"), |
1734 MockRead("Connection: keep-alive\r\n"), | 1734 MockRead("Connection: keep-alive\r\n"), |
1735 MockRead("Content-Length: 100\r\n\r\n"), | 1735 MockRead("Content-Length: 100\r\n\r\n"), |
1736 MockRead(SYNCHRONOUS, 0), | 1736 MockRead(SYNCHRONOUS, 0), |
1737 }; | 1737 }; |
1738 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 1738 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
1739 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1739 session_deps_.socket_factory->AddSocketDataProvider(&data); |
1740 | 1740 |
1741 TestCompletionCallback callback; | 1741 TestCompletionCallback callback; |
1742 | 1742 |
1743 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 1743 int rv = trans->Start(&request, callback.callback(), NetLogWithSource()); |
1744 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 1744 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
1745 | 1745 |
1746 rv = callback.WaitForResult(); | 1746 rv = callback.WaitForResult(); |
1747 EXPECT_THAT(rv, IsOk()); | 1747 EXPECT_THAT(rv, IsOk()); |
1748 | 1748 |
1749 scoped_refptr<IOBufferWithSize> io_buf(new IOBufferWithSize(100)); | 1749 scoped_refptr<IOBufferWithSize> io_buf(new IOBufferWithSize(100)); |
1750 rv = trans->Read(io_buf.get(), io_buf->size(), callback.callback()); | 1750 rv = trans->Read(io_buf.get(), io_buf->size(), callback.callback()); |
1751 if (rv == ERR_IO_PENDING) | 1751 if (rv == ERR_IO_PENDING) |
1752 rv = callback.WaitForResult(); | 1752 rv = callback.WaitForResult(); |
1753 EXPECT_THAT(rv, IsError(ERR_CONTENT_LENGTH_MISMATCH)); | 1753 EXPECT_THAT(rv, IsError(ERR_CONTENT_LENGTH_MISMATCH)); |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1830 const int kNumUnreadBodies = arraysize(data_writes) - 1; | 1830 const int kNumUnreadBodies = arraysize(data_writes) - 1; |
1831 std::string response_lines[kNumUnreadBodies]; | 1831 std::string response_lines[kNumUnreadBodies]; |
1832 | 1832 |
1833 uint32_t first_socket_log_id = NetLog::Source::kInvalidId; | 1833 uint32_t first_socket_log_id = NetLog::Source::kInvalidId; |
1834 for (size_t i = 0; i < kNumUnreadBodies; ++i) { | 1834 for (size_t i = 0; i < kNumUnreadBodies; ++i) { |
1835 TestCompletionCallback callback; | 1835 TestCompletionCallback callback; |
1836 | 1836 |
1837 std::unique_ptr<HttpNetworkTransaction> trans( | 1837 std::unique_ptr<HttpNetworkTransaction> trans( |
1838 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 1838 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
1839 | 1839 |
1840 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 1840 int rv = trans->Start(&request, callback.callback(), NetLogWithSource()); |
1841 EXPECT_THAT(callback.GetResult(rv), IsOk()); | 1841 EXPECT_THAT(callback.GetResult(rv), IsOk()); |
1842 | 1842 |
1843 LoadTimingInfo load_timing_info; | 1843 LoadTimingInfo load_timing_info; |
1844 EXPECT_TRUE(trans->GetLoadTimingInfo(&load_timing_info)); | 1844 EXPECT_TRUE(trans->GetLoadTimingInfo(&load_timing_info)); |
1845 if (i == 0) { | 1845 if (i == 0) { |
1846 TestLoadTimingNotReused(load_timing_info, CONNECT_TIMING_HAS_DNS_TIMES); | 1846 TestLoadTimingNotReused(load_timing_info, CONNECT_TIMING_HAS_DNS_TIMES); |
1847 first_socket_log_id = load_timing_info.socket_log_id; | 1847 first_socket_log_id = load_timing_info.socket_log_id; |
1848 } else { | 1848 } else { |
1849 TestLoadTimingReused(load_timing_info); | 1849 TestLoadTimingReused(load_timing_info); |
1850 EXPECT_EQ(first_socket_log_id, load_timing_info.socket_log_id); | 1850 EXPECT_EQ(first_socket_log_id, load_timing_info.socket_log_id); |
(...skipping 24 matching lines...) Expand all Loading... |
1875 }; | 1875 }; |
1876 | 1876 |
1877 static_assert(kNumUnreadBodies == arraysize(kStatusLines), | 1877 static_assert(kNumUnreadBodies == arraysize(kStatusLines), |
1878 "forgot to update kStatusLines"); | 1878 "forgot to update kStatusLines"); |
1879 | 1879 |
1880 for (int i = 0; i < kNumUnreadBodies; ++i) | 1880 for (int i = 0; i < kNumUnreadBodies; ++i) |
1881 EXPECT_EQ(kStatusLines[i], response_lines[i]); | 1881 EXPECT_EQ(kStatusLines[i], response_lines[i]); |
1882 | 1882 |
1883 TestCompletionCallback callback; | 1883 TestCompletionCallback callback; |
1884 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 1884 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
1885 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 1885 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
1886 EXPECT_THAT(callback.GetResult(rv), IsOk()); | 1886 EXPECT_THAT(callback.GetResult(rv), IsOk()); |
1887 const HttpResponseInfo* response = trans.GetResponseInfo(); | 1887 const HttpResponseInfo* response = trans.GetResponseInfo(); |
1888 ASSERT_TRUE(response); | 1888 ASSERT_TRUE(response); |
1889 ASSERT_TRUE(response->headers); | 1889 ASSERT_TRUE(response->headers); |
1890 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 1890 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
1891 std::string response_data; | 1891 std::string response_data; |
1892 rv = ReadTransaction(&trans, &response_data); | 1892 rv = ReadTransaction(&trans, &response_data); |
1893 EXPECT_THAT(rv, IsOk()); | 1893 EXPECT_THAT(rv, IsOk()); |
1894 EXPECT_EQ("hello", response_data); | 1894 EXPECT_EQ("hello", response_data); |
1895 } | 1895 } |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1929 data_writes2, arraysize(data_writes2)); | 1929 data_writes2, arraysize(data_writes2)); |
1930 session_deps_.socket_factory->AddSocketDataProvider(&data2); | 1930 session_deps_.socket_factory->AddSocketDataProvider(&data2); |
1931 | 1931 |
1932 TestCompletionCallback callback; | 1932 TestCompletionCallback callback; |
1933 HttpRequestInfo request1; | 1933 HttpRequestInfo request1; |
1934 request1.method = "HEAD"; | 1934 request1.method = "HEAD"; |
1935 request1.url = GURL("http://www.borked.com/"); | 1935 request1.url = GURL("http://www.borked.com/"); |
1936 | 1936 |
1937 std::unique_ptr<HttpNetworkTransaction> trans1( | 1937 std::unique_ptr<HttpNetworkTransaction> trans1( |
1938 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 1938 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
1939 int rv = trans1->Start(&request1, callback.callback(), BoundNetLog()); | 1939 int rv = trans1->Start(&request1, callback.callback(), NetLogWithSource()); |
1940 EXPECT_THAT(callback.GetResult(rv), IsOk()); | 1940 EXPECT_THAT(callback.GetResult(rv), IsOk()); |
1941 | 1941 |
1942 const HttpResponseInfo* response1 = trans1->GetResponseInfo(); | 1942 const HttpResponseInfo* response1 = trans1->GetResponseInfo(); |
1943 ASSERT_TRUE(response1); | 1943 ASSERT_TRUE(response1); |
1944 ASSERT_TRUE(response1->headers); | 1944 ASSERT_TRUE(response1->headers); |
1945 EXPECT_EQ(200, response1->headers->response_code()); | 1945 EXPECT_EQ(200, response1->headers->response_code()); |
1946 EXPECT_TRUE(response1->headers->IsKeepAlive()); | 1946 EXPECT_TRUE(response1->headers->IsKeepAlive()); |
1947 | 1947 |
1948 std::string response_data1; | 1948 std::string response_data1; |
1949 EXPECT_THAT(ReadTransaction(trans1.get(), &response_data1), IsOk()); | 1949 EXPECT_THAT(ReadTransaction(trans1.get(), &response_data1), IsOk()); |
1950 EXPECT_EQ("", response_data1); | 1950 EXPECT_EQ("", response_data1); |
1951 // Deleting the transaction attempts to release the socket back into the | 1951 // Deleting the transaction attempts to release the socket back into the |
1952 // socket pool. | 1952 // socket pool. |
1953 trans1.reset(); | 1953 trans1.reset(); |
1954 | 1954 |
1955 HttpRequestInfo request2; | 1955 HttpRequestInfo request2; |
1956 request2.method = "GET"; | 1956 request2.method = "GET"; |
1957 request2.url = GURL("http://www.borked.com/foo"); | 1957 request2.url = GURL("http://www.borked.com/foo"); |
1958 | 1958 |
1959 std::unique_ptr<HttpNetworkTransaction> trans2( | 1959 std::unique_ptr<HttpNetworkTransaction> trans2( |
1960 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 1960 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
1961 rv = trans2->Start(&request2, callback.callback(), BoundNetLog()); | 1961 rv = trans2->Start(&request2, callback.callback(), NetLogWithSource()); |
1962 EXPECT_THAT(callback.GetResult(rv), IsOk()); | 1962 EXPECT_THAT(callback.GetResult(rv), IsOk()); |
1963 | 1963 |
1964 const HttpResponseInfo* response2 = trans2->GetResponseInfo(); | 1964 const HttpResponseInfo* response2 = trans2->GetResponseInfo(); |
1965 ASSERT_TRUE(response2); | 1965 ASSERT_TRUE(response2); |
1966 ASSERT_TRUE(response2->headers); | 1966 ASSERT_TRUE(response2->headers); |
1967 EXPECT_EQ(200, response2->headers->response_code()); | 1967 EXPECT_EQ(200, response2->headers->response_code()); |
1968 | 1968 |
1969 std::string response_data2; | 1969 std::string response_data2; |
1970 EXPECT_THAT(ReadTransaction(trans2.get(), &response_data2), IsOk()); | 1970 EXPECT_THAT(ReadTransaction(trans2.get(), &response_data2), IsOk()); |
1971 EXPECT_EQ("foo", response_data2); | 1971 EXPECT_EQ("foo", response_data2); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2005 data_writes2, arraysize(data_writes2)); | 2005 data_writes2, arraysize(data_writes2)); |
2006 session_deps_.socket_factory->AddSocketDataProvider(&data2); | 2006 session_deps_.socket_factory->AddSocketDataProvider(&data2); |
2007 | 2007 |
2008 TestCompletionCallback callback; | 2008 TestCompletionCallback callback; |
2009 HttpRequestInfo request1; | 2009 HttpRequestInfo request1; |
2010 request1.method = "GET"; | 2010 request1.method = "GET"; |
2011 request1.url = GURL("http://www.borked.com/"); | 2011 request1.url = GURL("http://www.borked.com/"); |
2012 | 2012 |
2013 std::unique_ptr<HttpNetworkTransaction> trans1( | 2013 std::unique_ptr<HttpNetworkTransaction> trans1( |
2014 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 2014 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
2015 int rv = trans1->Start(&request1, callback.callback(), BoundNetLog()); | 2015 int rv = trans1->Start(&request1, callback.callback(), NetLogWithSource()); |
2016 EXPECT_THAT(callback.GetResult(rv), IsOk()); | 2016 EXPECT_THAT(callback.GetResult(rv), IsOk()); |
2017 | 2017 |
2018 const HttpResponseInfo* response1 = trans1->GetResponseInfo(); | 2018 const HttpResponseInfo* response1 = trans1->GetResponseInfo(); |
2019 ASSERT_TRUE(response1); | 2019 ASSERT_TRUE(response1); |
2020 ASSERT_TRUE(response1->headers); | 2020 ASSERT_TRUE(response1->headers); |
2021 EXPECT_EQ(200, response1->headers->response_code()); | 2021 EXPECT_EQ(200, response1->headers->response_code()); |
2022 EXPECT_TRUE(response1->headers->IsKeepAlive()); | 2022 EXPECT_TRUE(response1->headers->IsKeepAlive()); |
2023 | 2023 |
2024 std::string response_data1; | 2024 std::string response_data1; |
2025 EXPECT_THAT(ReadTransaction(trans1.get(), &response_data1), IsOk()); | 2025 EXPECT_THAT(ReadTransaction(trans1.get(), &response_data1), IsOk()); |
2026 EXPECT_EQ("This server is borked.", response_data1); | 2026 EXPECT_EQ("This server is borked.", response_data1); |
2027 // Deleting the transaction attempts to release the socket back into the | 2027 // Deleting the transaction attempts to release the socket back into the |
2028 // socket pool. | 2028 // socket pool. |
2029 trans1.reset(); | 2029 trans1.reset(); |
2030 | 2030 |
2031 HttpRequestInfo request2; | 2031 HttpRequestInfo request2; |
2032 request2.method = "GET"; | 2032 request2.method = "GET"; |
2033 request2.url = GURL("http://www.borked.com/foo"); | 2033 request2.url = GURL("http://www.borked.com/foo"); |
2034 | 2034 |
2035 std::unique_ptr<HttpNetworkTransaction> trans2( | 2035 std::unique_ptr<HttpNetworkTransaction> trans2( |
2036 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 2036 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
2037 rv = trans2->Start(&request2, callback.callback(), BoundNetLog()); | 2037 rv = trans2->Start(&request2, callback.callback(), NetLogWithSource()); |
2038 EXPECT_THAT(callback.GetResult(rv), IsOk()); | 2038 EXPECT_THAT(callback.GetResult(rv), IsOk()); |
2039 | 2039 |
2040 const HttpResponseInfo* response2 = trans2->GetResponseInfo(); | 2040 const HttpResponseInfo* response2 = trans2->GetResponseInfo(); |
2041 ASSERT_TRUE(response2); | 2041 ASSERT_TRUE(response2); |
2042 ASSERT_TRUE(response2->headers); | 2042 ASSERT_TRUE(response2->headers); |
2043 EXPECT_EQ(200, response2->headers->response_code()); | 2043 EXPECT_EQ(200, response2->headers->response_code()); |
2044 | 2044 |
2045 std::string response_data2; | 2045 std::string response_data2; |
2046 EXPECT_THAT(ReadTransaction(trans2.get(), &response_data2), IsOk()); | 2046 EXPECT_THAT(ReadTransaction(trans2.get(), &response_data2), IsOk()); |
2047 EXPECT_EQ("foo", response_data2); | 2047 EXPECT_EQ("foo", response_data2); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2081 data_writes2, arraysize(data_writes2)); | 2081 data_writes2, arraysize(data_writes2)); |
2082 session_deps_.socket_factory->AddSocketDataProvider(&data2); | 2082 session_deps_.socket_factory->AddSocketDataProvider(&data2); |
2083 | 2083 |
2084 TestCompletionCallback callback; | 2084 TestCompletionCallback callback; |
2085 HttpRequestInfo request1; | 2085 HttpRequestInfo request1; |
2086 request1.method = "GET"; | 2086 request1.method = "GET"; |
2087 request1.url = GURL("http://www.borked.com/"); | 2087 request1.url = GURL("http://www.borked.com/"); |
2088 | 2088 |
2089 std::unique_ptr<HttpNetworkTransaction> trans1( | 2089 std::unique_ptr<HttpNetworkTransaction> trans1( |
2090 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 2090 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
2091 int rv = trans1->Start(&request1, callback.callback(), BoundNetLog()); | 2091 int rv = trans1->Start(&request1, callback.callback(), NetLogWithSource()); |
2092 EXPECT_THAT(callback.GetResult(rv), IsOk()); | 2092 EXPECT_THAT(callback.GetResult(rv), IsOk()); |
2093 | 2093 |
2094 const HttpResponseInfo* response1 = trans1->GetResponseInfo(); | 2094 const HttpResponseInfo* response1 = trans1->GetResponseInfo(); |
2095 ASSERT_TRUE(response1); | 2095 ASSERT_TRUE(response1); |
2096 ASSERT_TRUE(response1->headers); | 2096 ASSERT_TRUE(response1->headers); |
2097 EXPECT_EQ(200, response1->headers->response_code()); | 2097 EXPECT_EQ(200, response1->headers->response_code()); |
2098 EXPECT_TRUE(response1->headers->IsKeepAlive()); | 2098 EXPECT_TRUE(response1->headers->IsKeepAlive()); |
2099 | 2099 |
2100 std::string response_data1; | 2100 std::string response_data1; |
2101 EXPECT_THAT(ReadTransaction(trans1.get(), &response_data1), IsOk()); | 2101 EXPECT_THAT(ReadTransaction(trans1.get(), &response_data1), IsOk()); |
2102 EXPECT_EQ("This server is borked.", response_data1); | 2102 EXPECT_EQ("This server is borked.", response_data1); |
2103 // Deleting the transaction attempts to release the socket back into the | 2103 // Deleting the transaction attempts to release the socket back into the |
2104 // socket pool. | 2104 // socket pool. |
2105 trans1.reset(); | 2105 trans1.reset(); |
2106 | 2106 |
2107 HttpRequestInfo request2; | 2107 HttpRequestInfo request2; |
2108 request2.method = "GET"; | 2108 request2.method = "GET"; |
2109 request2.url = GURL("http://www.borked.com/foo"); | 2109 request2.url = GURL("http://www.borked.com/foo"); |
2110 | 2110 |
2111 std::unique_ptr<HttpNetworkTransaction> trans2( | 2111 std::unique_ptr<HttpNetworkTransaction> trans2( |
2112 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 2112 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
2113 rv = trans2->Start(&request2, callback.callback(), BoundNetLog()); | 2113 rv = trans2->Start(&request2, callback.callback(), NetLogWithSource()); |
2114 EXPECT_THAT(callback.GetResult(rv), IsOk()); | 2114 EXPECT_THAT(callback.GetResult(rv), IsOk()); |
2115 | 2115 |
2116 const HttpResponseInfo* response2 = trans2->GetResponseInfo(); | 2116 const HttpResponseInfo* response2 = trans2->GetResponseInfo(); |
2117 ASSERT_TRUE(response2); | 2117 ASSERT_TRUE(response2); |
2118 ASSERT_TRUE(response2->headers); | 2118 ASSERT_TRUE(response2->headers); |
2119 EXPECT_EQ(200, response2->headers->response_code()); | 2119 EXPECT_EQ(200, response2->headers->response_code()); |
2120 | 2120 |
2121 std::string response_data2; | 2121 std::string response_data2; |
2122 EXPECT_THAT(ReadTransaction(trans2.get(), &response_data2), IsOk()); | 2122 EXPECT_THAT(ReadTransaction(trans2.get(), &response_data2), IsOk()); |
2123 EXPECT_EQ("foo", response_data2); | 2123 EXPECT_EQ("foo", response_data2); |
(...skipping 22 matching lines...) Expand all Loading... |
2146 data_writes1, arraysize(data_writes1)); | 2146 data_writes1, arraysize(data_writes1)); |
2147 session_deps_.socket_factory->AddSocketDataProvider(&data1); | 2147 session_deps_.socket_factory->AddSocketDataProvider(&data1); |
2148 | 2148 |
2149 TestCompletionCallback callback; | 2149 TestCompletionCallback callback; |
2150 HttpRequestInfo request1; | 2150 HttpRequestInfo request1; |
2151 request1.method = "GET"; | 2151 request1.method = "GET"; |
2152 request1.url = GURL("http://www.borked.com/"); | 2152 request1.url = GURL("http://www.borked.com/"); |
2153 | 2153 |
2154 std::unique_ptr<HttpNetworkTransaction> trans1( | 2154 std::unique_ptr<HttpNetworkTransaction> trans1( |
2155 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 2155 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
2156 int rv = trans1->Start(&request1, callback.callback(), BoundNetLog()); | 2156 int rv = trans1->Start(&request1, callback.callback(), NetLogWithSource()); |
2157 EXPECT_THAT(callback.GetResult(rv), IsOk()); | 2157 EXPECT_THAT(callback.GetResult(rv), IsOk()); |
2158 | 2158 |
2159 const HttpResponseInfo* response1 = trans1->GetResponseInfo(); | 2159 const HttpResponseInfo* response1 = trans1->GetResponseInfo(); |
2160 ASSERT_TRUE(response1); | 2160 ASSERT_TRUE(response1); |
2161 ASSERT_TRUE(response1->headers); | 2161 ASSERT_TRUE(response1->headers); |
2162 EXPECT_EQ(200, response1->headers->response_code()); | 2162 EXPECT_EQ(200, response1->headers->response_code()); |
2163 EXPECT_TRUE(response1->headers->IsKeepAlive()); | 2163 EXPECT_TRUE(response1->headers->IsKeepAlive()); |
2164 | 2164 |
2165 // Deleting the transaction creates an HttpResponseBodyDrainer to read the | 2165 // Deleting the transaction creates an HttpResponseBodyDrainer to read the |
2166 // response body. | 2166 // response body. |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2227 | 2227 |
2228 StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), | 2228 StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), |
2229 data_writes1, arraysize(data_writes1)); | 2229 data_writes1, arraysize(data_writes1)); |
2230 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), | 2230 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), |
2231 data_writes2, arraysize(data_writes2)); | 2231 data_writes2, arraysize(data_writes2)); |
2232 session_deps_.socket_factory->AddSocketDataProvider(&data1); | 2232 session_deps_.socket_factory->AddSocketDataProvider(&data1); |
2233 session_deps_.socket_factory->AddSocketDataProvider(&data2); | 2233 session_deps_.socket_factory->AddSocketDataProvider(&data2); |
2234 | 2234 |
2235 TestCompletionCallback callback1; | 2235 TestCompletionCallback callback1; |
2236 | 2236 |
2237 int rv = trans.Start(&request, callback1.callback(), BoundNetLog()); | 2237 int rv = trans.Start(&request, callback1.callback(), NetLogWithSource()); |
2238 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 2238 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
2239 | 2239 |
2240 rv = callback1.WaitForResult(); | 2240 rv = callback1.WaitForResult(); |
2241 EXPECT_THAT(rv, IsOk()); | 2241 EXPECT_THAT(rv, IsOk()); |
2242 | 2242 |
2243 LoadTimingInfo load_timing_info1; | 2243 LoadTimingInfo load_timing_info1; |
2244 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info1)); | 2244 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info1)); |
2245 TestLoadTimingNotReused(load_timing_info1, CONNECT_TIMING_HAS_DNS_TIMES); | 2245 TestLoadTimingNotReused(load_timing_info1, CONNECT_TIMING_HAS_DNS_TIMES); |
2246 | 2246 |
2247 int64_t writes_size1 = CountWriteBytes(data_writes1, arraysize(data_writes1)); | 2247 int64_t writes_size1 = CountWriteBytes(data_writes1, arraysize(data_writes1)); |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2337 StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), | 2337 StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), |
2338 data_writes1, arraysize(data_writes1)); | 2338 data_writes1, arraysize(data_writes1)); |
2339 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), | 2339 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), |
2340 data_writes2, arraysize(data_writes2)); | 2340 data_writes2, arraysize(data_writes2)); |
2341 session_deps_.socket_factory->AddSocketDataProvider(&data1); | 2341 session_deps_.socket_factory->AddSocketDataProvider(&data1); |
2342 session_deps_.socket_factory->AddSocketDataProvider(&data2); | 2342 session_deps_.socket_factory->AddSocketDataProvider(&data2); |
2343 | 2343 |
2344 TestCompletionCallback callback1; | 2344 TestCompletionCallback callback1; |
2345 | 2345 |
2346 EXPECT_EQ(OK, callback1.GetResult(trans.Start(&request, callback1.callback(), | 2346 EXPECT_EQ(OK, callback1.GetResult(trans.Start(&request, callback1.callback(), |
2347 BoundNetLog()))); | 2347 NetLogWithSource()))); |
2348 | 2348 |
2349 LoadTimingInfo load_timing_info1; | 2349 LoadTimingInfo load_timing_info1; |
2350 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info1)); | 2350 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info1)); |
2351 TestLoadTimingNotReused(load_timing_info1, CONNECT_TIMING_HAS_DNS_TIMES); | 2351 TestLoadTimingNotReused(load_timing_info1, CONNECT_TIMING_HAS_DNS_TIMES); |
2352 | 2352 |
2353 int64_t writes_size1 = CountWriteBytes(data_writes1, arraysize(data_writes1)); | 2353 int64_t writes_size1 = CountWriteBytes(data_writes1, arraysize(data_writes1)); |
2354 EXPECT_EQ(writes_size1, trans.GetTotalSentBytes()); | 2354 EXPECT_EQ(writes_size1, trans.GetTotalSentBytes()); |
2355 int64_t reads_size1 = CountReadBytes(data_reads1, arraysize(data_reads1)); | 2355 int64_t reads_size1 = CountReadBytes(data_reads1, arraysize(data_reads1)); |
2356 EXPECT_EQ(reads_size1, trans.GetTotalReceivedBytes()); | 2356 EXPECT_EQ(reads_size1, trans.GetTotalReceivedBytes()); |
2357 | 2357 |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2419 // Large content-length -- won't matter, as connection will be reset. | 2419 // Large content-length -- won't matter, as connection will be reset. |
2420 MockRead("Content-Length: 10000\r\n\r\n"), | 2420 MockRead("Content-Length: 10000\r\n\r\n"), |
2421 MockRead(SYNCHRONOUS, ERR_FAILED), | 2421 MockRead(SYNCHRONOUS, ERR_FAILED), |
2422 }; | 2422 }; |
2423 | 2423 |
2424 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 2424 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
2425 data_writes, arraysize(data_writes)); | 2425 data_writes, arraysize(data_writes)); |
2426 session_deps_.socket_factory->AddSocketDataProvider(&data); | 2426 session_deps_.socket_factory->AddSocketDataProvider(&data); |
2427 TestCompletionCallback callback; | 2427 TestCompletionCallback callback; |
2428 | 2428 |
2429 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 2429 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
2430 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 2430 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
2431 | 2431 |
2432 rv = callback.WaitForResult(); | 2432 rv = callback.WaitForResult(); |
2433 EXPECT_EQ(0, rv); | 2433 EXPECT_EQ(0, rv); |
2434 | 2434 |
2435 int64_t writes_size = CountWriteBytes(data_writes, arraysize(data_writes)); | 2435 int64_t writes_size = CountWriteBytes(data_writes, arraysize(data_writes)); |
2436 EXPECT_EQ(writes_size, trans.GetTotalSentBytes()); | 2436 EXPECT_EQ(writes_size, trans.GetTotalSentBytes()); |
2437 int64_t reads_size = CountReadBytes(data_reads, arraysize(data_reads)); | 2437 int64_t reads_size = CountReadBytes(data_reads, arraysize(data_reads)); |
2438 EXPECT_EQ(reads_size, trans.GetTotalReceivedBytes()); | 2438 EXPECT_EQ(reads_size, trans.GetTotalReceivedBytes()); |
2439 | 2439 |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2488 }; | 2488 }; |
2489 | 2489 |
2490 SequencedSocketData data(data_reads, arraysize(data_reads), data_writes, | 2490 SequencedSocketData data(data_reads, arraysize(data_reads), data_writes, |
2491 arraysize(data_writes)); | 2491 arraysize(data_writes)); |
2492 data.set_busy_before_sync_reads(true); | 2492 data.set_busy_before_sync_reads(true); |
2493 session_deps_.socket_factory->AddSocketDataProvider(&data); | 2493 session_deps_.socket_factory->AddSocketDataProvider(&data); |
2494 | 2494 |
2495 TestCompletionCallback callback1; | 2495 TestCompletionCallback callback1; |
2496 | 2496 |
2497 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 2497 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
2498 int rv = trans.Start(&request, callback1.callback(), BoundNetLog()); | 2498 int rv = trans.Start(&request, callback1.callback(), NetLogWithSource()); |
2499 ASSERT_THAT(callback1.GetResult(rv), IsOk()); | 2499 ASSERT_THAT(callback1.GetResult(rv), IsOk()); |
2500 | 2500 |
2501 LoadTimingInfo load_timing_info1; | 2501 LoadTimingInfo load_timing_info1; |
2502 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info1)); | 2502 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info1)); |
2503 TestLoadTimingNotReused(load_timing_info1, CONNECT_TIMING_HAS_DNS_TIMES); | 2503 TestLoadTimingNotReused(load_timing_info1, CONNECT_TIMING_HAS_DNS_TIMES); |
2504 | 2504 |
2505 const HttpResponseInfo* response = trans.GetResponseInfo(); | 2505 const HttpResponseInfo* response = trans.GetResponseInfo(); |
2506 ASSERT_TRUE(response); | 2506 ASSERT_TRUE(response); |
2507 EXPECT_TRUE(CheckBasicServerAuth(response->auth_challenge.get())); | 2507 EXPECT_TRUE(CheckBasicServerAuth(response->auth_challenge.get())); |
2508 | 2508 |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2579 StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), | 2579 StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), |
2580 data_writes1, arraysize(data_writes1)); | 2580 data_writes1, arraysize(data_writes1)); |
2581 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), | 2581 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), |
2582 NULL, 0); | 2582 NULL, 0); |
2583 session_deps_.socket_factory->AddSocketDataProvider(&data1); | 2583 session_deps_.socket_factory->AddSocketDataProvider(&data1); |
2584 session_deps_.socket_factory->AddSocketDataProvider(&data2); | 2584 session_deps_.socket_factory->AddSocketDataProvider(&data2); |
2585 | 2585 |
2586 TestCompletionCallback callback1; | 2586 TestCompletionCallback callback1; |
2587 | 2587 |
2588 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 2588 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
2589 int rv = trans.Start(&request, callback1.callback(), BoundNetLog()); | 2589 int rv = trans.Start(&request, callback1.callback(), NetLogWithSource()); |
2590 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 2590 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
2591 | 2591 |
2592 rv = callback1.WaitForResult(); | 2592 rv = callback1.WaitForResult(); |
2593 EXPECT_THAT(rv, IsOk()); | 2593 EXPECT_THAT(rv, IsOk()); |
2594 | 2594 |
2595 const HttpResponseInfo* response = trans.GetResponseInfo(); | 2595 const HttpResponseInfo* response = trans.GetResponseInfo(); |
2596 ASSERT_TRUE(response); | 2596 ASSERT_TRUE(response); |
2597 EXPECT_TRUE(CheckBasicServerAuth(response->auth_challenge.get())); | 2597 EXPECT_TRUE(CheckBasicServerAuth(response->auth_challenge.get())); |
2598 | 2598 |
2599 TestCompletionCallback callback2; | 2599 TestCompletionCallback callback2; |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2661 StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), | 2661 StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), |
2662 data_writes1, arraysize(data_writes1)); | 2662 data_writes1, arraysize(data_writes1)); |
2663 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), | 2663 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), |
2664 NULL, 0); | 2664 NULL, 0); |
2665 session_deps_.socket_factory->AddSocketDataProvider(&data1); | 2665 session_deps_.socket_factory->AddSocketDataProvider(&data1); |
2666 session_deps_.socket_factory->AddSocketDataProvider(&data2); | 2666 session_deps_.socket_factory->AddSocketDataProvider(&data2); |
2667 | 2667 |
2668 TestCompletionCallback callback1; | 2668 TestCompletionCallback callback1; |
2669 | 2669 |
2670 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 2670 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
2671 int rv = trans.Start(&request, callback1.callback(), BoundNetLog()); | 2671 int rv = trans.Start(&request, callback1.callback(), NetLogWithSource()); |
2672 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 2672 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
2673 | 2673 |
2674 rv = callback1.WaitForResult(); | 2674 rv = callback1.WaitForResult(); |
2675 EXPECT_THAT(rv, IsOk()); | 2675 EXPECT_THAT(rv, IsOk()); |
2676 | 2676 |
2677 const HttpResponseInfo* response = trans.GetResponseInfo(); | 2677 const HttpResponseInfo* response = trans.GetResponseInfo(); |
2678 ASSERT_TRUE(response); | 2678 ASSERT_TRUE(response); |
2679 EXPECT_TRUE(CheckBasicServerAuth(response->auth_challenge.get())); | 2679 EXPECT_TRUE(CheckBasicServerAuth(response->auth_challenge.get())); |
2680 | 2680 |
2681 TestCompletionCallback callback2; | 2681 TestCompletionCallback callback2; |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2748 StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), | 2748 StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), |
2749 data_writes1, arraysize(data_writes1)); | 2749 data_writes1, arraysize(data_writes1)); |
2750 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), | 2750 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), |
2751 data_writes2, arraysize(data_writes2)); | 2751 data_writes2, arraysize(data_writes2)); |
2752 session_deps_.socket_factory->AddSocketDataProvider(&data1); | 2752 session_deps_.socket_factory->AddSocketDataProvider(&data1); |
2753 session_deps_.socket_factory->AddSocketDataProvider(&data2); | 2753 session_deps_.socket_factory->AddSocketDataProvider(&data2); |
2754 | 2754 |
2755 TestCompletionCallback callback1; | 2755 TestCompletionCallback callback1; |
2756 | 2756 |
2757 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 2757 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
2758 int rv = trans.Start(&request, callback1.callback(), BoundNetLog()); | 2758 int rv = trans.Start(&request, callback1.callback(), NetLogWithSource()); |
2759 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 2759 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
2760 | 2760 |
2761 rv = callback1.WaitForResult(); | 2761 rv = callback1.WaitForResult(); |
2762 EXPECT_THAT(rv, IsOk()); | 2762 EXPECT_THAT(rv, IsOk()); |
2763 | 2763 |
2764 const HttpResponseInfo* response = trans.GetResponseInfo(); | 2764 const HttpResponseInfo* response = trans.GetResponseInfo(); |
2765 ASSERT_TRUE(response); | 2765 ASSERT_TRUE(response); |
2766 EXPECT_TRUE(CheckBasicServerAuth(response->auth_challenge.get())); | 2766 EXPECT_TRUE(CheckBasicServerAuth(response->auth_challenge.get())); |
2767 | 2767 |
2768 TestCompletionCallback callback2; | 2768 TestCompletionCallback callback2; |
(...skipping 664 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3433 data_writes1, arraysize(data_writes1)); | 3433 data_writes1, arraysize(data_writes1)); |
3434 session_deps_.socket_factory->AddSocketDataProvider(&data1); | 3434 session_deps_.socket_factory->AddSocketDataProvider(&data1); |
3435 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), | 3435 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), |
3436 data_writes2, arraysize(data_writes2)); | 3436 data_writes2, arraysize(data_writes2)); |
3437 session_deps_.socket_factory->AddSocketDataProvider(&data2); | 3437 session_deps_.socket_factory->AddSocketDataProvider(&data2); |
3438 SSLSocketDataProvider ssl(ASYNC, OK); | 3438 SSLSocketDataProvider ssl(ASYNC, OK); |
3439 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 3439 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
3440 | 3440 |
3441 TestCompletionCallback callback; | 3441 TestCompletionCallback callback; |
3442 | 3442 |
3443 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 3443 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
3444 EXPECT_THAT(callback.GetResult(rv), IsOk()); | 3444 EXPECT_THAT(callback.GetResult(rv), IsOk()); |
3445 | 3445 |
3446 const HttpResponseInfo* response = trans.GetResponseInfo(); | 3446 const HttpResponseInfo* response = trans.GetResponseInfo(); |
3447 ASSERT_TRUE(response); | 3447 ASSERT_TRUE(response); |
3448 ASSERT_TRUE(response->headers); | 3448 ASSERT_TRUE(response->headers); |
3449 EXPECT_TRUE(response->headers->IsKeepAlive()); | 3449 EXPECT_TRUE(response->headers->IsKeepAlive()); |
3450 EXPECT_EQ(407, response->headers->response_code()); | 3450 EXPECT_EQ(407, response->headers->response_code()); |
3451 EXPECT_TRUE(CheckBasicProxyAuth(response->auth_challenge.get())); | 3451 EXPECT_TRUE(CheckBasicProxyAuth(response->auth_challenge.get())); |
3452 | 3452 |
3453 rv = trans.RestartWithAuth(AuthCredentials(kFoo, kBar), callback.callback()); | 3453 rv = trans.RestartWithAuth(AuthCredentials(kFoo, kBar), callback.callback()); |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3493 MockRead("0123456789"), | 3493 MockRead("0123456789"), |
3494 MockRead(SYNCHRONOUS, ERR_UNEXPECTED), | 3494 MockRead(SYNCHRONOUS, ERR_UNEXPECTED), |
3495 }; | 3495 }; |
3496 | 3496 |
3497 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 3497 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
3498 data_writes, arraysize(data_writes)); | 3498 data_writes, arraysize(data_writes)); |
3499 session_deps_.socket_factory->AddSocketDataProvider(&data); | 3499 session_deps_.socket_factory->AddSocketDataProvider(&data); |
3500 | 3500 |
3501 TestCompletionCallback callback; | 3501 TestCompletionCallback callback; |
3502 | 3502 |
3503 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 3503 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
3504 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 3504 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
3505 | 3505 |
3506 rv = callback.WaitForResult(); | 3506 rv = callback.WaitForResult(); |
3507 EXPECT_THAT(rv, IsOk()); | 3507 EXPECT_THAT(rv, IsOk()); |
3508 | 3508 |
3509 const HttpResponseInfo* response = trans.GetResponseInfo(); | 3509 const HttpResponseInfo* response = trans.GetResponseInfo(); |
3510 ASSERT_TRUE(response); | 3510 ASSERT_TRUE(response); |
3511 ASSERT_TRUE(response->headers); | 3511 ASSERT_TRUE(response->headers); |
3512 EXPECT_TRUE(response->headers->IsKeepAlive()); | 3512 EXPECT_TRUE(response->headers->IsKeepAlive()); |
3513 EXPECT_EQ(407, response->headers->response_code()); | 3513 EXPECT_EQ(407, response->headers->response_code()); |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3552 MockRead("Content-Length: 10\r\n\r\n"), | 3552 MockRead("Content-Length: 10\r\n\r\n"), |
3553 MockRead(SYNCHRONOUS, ERR_UNEXPECTED), | 3553 MockRead(SYNCHRONOUS, ERR_UNEXPECTED), |
3554 }; | 3554 }; |
3555 | 3555 |
3556 StaticSocketDataProvider data(data_reads, arraysize(data_reads), data_writes, | 3556 StaticSocketDataProvider data(data_reads, arraysize(data_reads), data_writes, |
3557 arraysize(data_writes)); | 3557 arraysize(data_writes)); |
3558 session_deps_.socket_factory->AddSocketDataProvider(&data); | 3558 session_deps_.socket_factory->AddSocketDataProvider(&data); |
3559 | 3559 |
3560 TestCompletionCallback callback; | 3560 TestCompletionCallback callback; |
3561 | 3561 |
3562 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 3562 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
3563 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 3563 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
3564 | 3564 |
3565 rv = callback.WaitForResult(); | 3565 rv = callback.WaitForResult(); |
3566 EXPECT_THAT(rv, IsOk()); | 3566 EXPECT_THAT(rv, IsOk()); |
3567 | 3567 |
3568 const HttpResponseInfo* response = trans.GetResponseInfo(); | 3568 const HttpResponseInfo* response = trans.GetResponseInfo(); |
3569 ASSERT_TRUE(response); | 3569 ASSERT_TRUE(response); |
3570 ASSERT_TRUE(response->headers); | 3570 ASSERT_TRUE(response->headers); |
3571 EXPECT_TRUE(response->headers->IsKeepAlive()); | 3571 EXPECT_TRUE(response->headers->IsKeepAlive()); |
3572 EXPECT_EQ(407, response->headers->response_code()); | 3572 EXPECT_EQ(407, response->headers->response_code()); |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3608 MockRead("Content-Length: 10000\r\n\r\n"), | 3608 MockRead("Content-Length: 10000\r\n\r\n"), |
3609 MockRead(SYNCHRONOUS, ERR_FAILED), | 3609 MockRead(SYNCHRONOUS, ERR_FAILED), |
3610 }; | 3610 }; |
3611 | 3611 |
3612 StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), | 3612 StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), |
3613 data_writes1, arraysize(data_writes1)); | 3613 data_writes1, arraysize(data_writes1)); |
3614 session_deps_.socket_factory->AddSocketDataProvider(&data1); | 3614 session_deps_.socket_factory->AddSocketDataProvider(&data1); |
3615 | 3615 |
3616 TestCompletionCallback callback; | 3616 TestCompletionCallback callback; |
3617 | 3617 |
3618 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 3618 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
3619 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 3619 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
3620 | 3620 |
3621 rv = callback.WaitForResult(); | 3621 rv = callback.WaitForResult(); |
3622 EXPECT_THAT(rv, IsError(ERR_UNEXPECTED_PROXY_AUTH)); | 3622 EXPECT_THAT(rv, IsError(ERR_UNEXPECTED_PROXY_AUTH)); |
3623 } | 3623 } |
3624 | 3624 |
3625 // Tests when an HTTPS server (non-proxy) returns a 407 (proxy-authentication) | 3625 // Tests when an HTTPS server (non-proxy) returns a 407 (proxy-authentication) |
3626 // through a non-authenticating proxy. The request should fail with | 3626 // through a non-authenticating proxy. The request should fail with |
3627 // ERR_UNEXPECTED_PROXY_AUTH. | 3627 // ERR_UNEXPECTED_PROXY_AUTH. |
3628 // Note that it is impossible to detect if an HTTP server returns a 407 through | 3628 // Note that it is impossible to detect if an HTTP server returns a 407 through |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3757 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), | 3757 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), |
3758 data_writes2, arraysize(data_writes2)); | 3758 data_writes2, arraysize(data_writes2)); |
3759 session_deps_.socket_factory->AddSocketDataProvider(&data2); | 3759 session_deps_.socket_factory->AddSocketDataProvider(&data2); |
3760 SSLSocketDataProvider ssl(ASYNC, OK); | 3760 SSLSocketDataProvider ssl(ASYNC, OK); |
3761 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 3761 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
3762 | 3762 |
3763 std::unique_ptr<HttpNetworkTransaction> trans( | 3763 std::unique_ptr<HttpNetworkTransaction> trans( |
3764 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 3764 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
3765 | 3765 |
3766 TestCompletionCallback callback; | 3766 TestCompletionCallback callback; |
3767 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 3767 int rv = trans->Start(&request, callback.callback(), NetLogWithSource()); |
3768 EXPECT_THAT(callback.GetResult(rv), IsOk()); | 3768 EXPECT_THAT(callback.GetResult(rv), IsOk()); |
3769 | 3769 |
3770 const HttpResponseInfo* response = trans->GetResponseInfo(); | 3770 const HttpResponseInfo* response = trans->GetResponseInfo(); |
3771 ASSERT_TRUE(response); | 3771 ASSERT_TRUE(response); |
3772 ASSERT_TRUE(response->headers); | 3772 ASSERT_TRUE(response->headers); |
3773 EXPECT_FALSE(response->headers->IsKeepAlive()); | 3773 EXPECT_FALSE(response->headers->IsKeepAlive()); |
3774 EXPECT_EQ(407, response->headers->response_code()); | 3774 EXPECT_EQ(407, response->headers->response_code()); |
3775 EXPECT_TRUE(HttpVersion(1, 1) == response->headers->GetHttpVersion()); | 3775 EXPECT_TRUE(HttpVersion(1, 1) == response->headers->GetHttpVersion()); |
3776 EXPECT_TRUE(trans->IsReadyToRestartForAuth()); | 3776 EXPECT_TRUE(trans->IsReadyToRestartForAuth()); |
3777 EXPECT_FALSE(response->auth_challenge); | 3777 EXPECT_FALSE(response->auth_challenge); |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3877 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), | 3877 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), |
3878 data_writes2, arraysize(data_writes2)); | 3878 data_writes2, arraysize(data_writes2)); |
3879 session_deps_.socket_factory->AddSocketDataProvider(&data2); | 3879 session_deps_.socket_factory->AddSocketDataProvider(&data2); |
3880 SSLSocketDataProvider ssl(ASYNC, OK); | 3880 SSLSocketDataProvider ssl(ASYNC, OK); |
3881 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 3881 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
3882 | 3882 |
3883 std::unique_ptr<HttpNetworkTransaction> trans( | 3883 std::unique_ptr<HttpNetworkTransaction> trans( |
3884 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 3884 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
3885 | 3885 |
3886 TestCompletionCallback callback; | 3886 TestCompletionCallback callback; |
3887 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 3887 int rv = trans->Start(&request, callback.callback(), NetLogWithSource()); |
3888 EXPECT_THAT(callback.GetResult(rv), IsOk()); | 3888 EXPECT_THAT(callback.GetResult(rv), IsOk()); |
3889 | 3889 |
3890 const HttpResponseInfo* response = trans->GetResponseInfo(); | 3890 const HttpResponseInfo* response = trans->GetResponseInfo(); |
3891 ASSERT_TRUE(response); | 3891 ASSERT_TRUE(response); |
3892 ASSERT_TRUE(response->headers); | 3892 ASSERT_TRUE(response->headers); |
3893 EXPECT_TRUE(response->headers->IsKeepAlive()); | 3893 EXPECT_TRUE(response->headers->IsKeepAlive()); |
3894 EXPECT_EQ(407, response->headers->response_code()); | 3894 EXPECT_EQ(407, response->headers->response_code()); |
3895 EXPECT_TRUE(HttpVersion(1, 1) == response->headers->GetHttpVersion()); | 3895 EXPECT_TRUE(HttpVersion(1, 1) == response->headers->GetHttpVersion()); |
3896 EXPECT_TRUE(trans->IsReadyToRestartForAuth()); | 3896 EXPECT_TRUE(trans->IsReadyToRestartForAuth()); |
3897 EXPECT_FALSE(response->auth_challenge); | 3897 EXPECT_FALSE(response->auth_challenge); |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3992 data_writes1, arraysize(data_writes1)); | 3992 data_writes1, arraysize(data_writes1)); |
3993 session_deps_.socket_factory->AddSocketDataProvider(&data1); | 3993 session_deps_.socket_factory->AddSocketDataProvider(&data1); |
3994 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), | 3994 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), |
3995 data_writes2, arraysize(data_writes2)); | 3995 data_writes2, arraysize(data_writes2)); |
3996 session_deps_.socket_factory->AddSocketDataProvider(&data2); | 3996 session_deps_.socket_factory->AddSocketDataProvider(&data2); |
3997 | 3997 |
3998 std::unique_ptr<HttpNetworkTransaction> trans( | 3998 std::unique_ptr<HttpNetworkTransaction> trans( |
3999 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 3999 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
4000 | 4000 |
4001 TestCompletionCallback callback; | 4001 TestCompletionCallback callback; |
4002 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 4002 int rv = trans->Start(&request, callback.callback(), NetLogWithSource()); |
4003 EXPECT_THAT(callback.GetResult(rv), IsOk()); | 4003 EXPECT_THAT(callback.GetResult(rv), IsOk()); |
4004 | 4004 |
4005 const HttpResponseInfo* response = trans->GetResponseInfo(); | 4005 const HttpResponseInfo* response = trans->GetResponseInfo(); |
4006 ASSERT_TRUE(response); | 4006 ASSERT_TRUE(response); |
4007 ASSERT_TRUE(response->headers); | 4007 ASSERT_TRUE(response->headers); |
4008 EXPECT_TRUE(response->headers->IsKeepAlive()); | 4008 EXPECT_TRUE(response->headers->IsKeepAlive()); |
4009 EXPECT_EQ(407, response->headers->response_code()); | 4009 EXPECT_EQ(407, response->headers->response_code()); |
4010 EXPECT_TRUE(HttpVersion(1, 1) == response->headers->GetHttpVersion()); | 4010 EXPECT_TRUE(HttpVersion(1, 1) == response->headers->GetHttpVersion()); |
4011 EXPECT_TRUE(trans->IsReadyToRestartForAuth()); | 4011 EXPECT_TRUE(trans->IsReadyToRestartForAuth()); |
4012 EXPECT_FALSE(response->auth_challenge); | 4012 EXPECT_FALSE(response->auth_challenge); |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4091 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), | 4091 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), |
4092 data_writes2, arraysize(data_writes2)); | 4092 data_writes2, arraysize(data_writes2)); |
4093 session_deps_.socket_factory->AddSocketDataProvider(&data2); | 4093 session_deps_.socket_factory->AddSocketDataProvider(&data2); |
4094 SSLSocketDataProvider ssl(ASYNC, OK); | 4094 SSLSocketDataProvider ssl(ASYNC, OK); |
4095 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 4095 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
4096 | 4096 |
4097 std::unique_ptr<HttpNetworkTransaction> trans( | 4097 std::unique_ptr<HttpNetworkTransaction> trans( |
4098 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 4098 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
4099 | 4099 |
4100 TestCompletionCallback callback; | 4100 TestCompletionCallback callback; |
4101 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 4101 int rv = trans->Start(&request, callback.callback(), NetLogWithSource()); |
4102 EXPECT_THAT(callback.GetResult(rv), IsOk()); | 4102 EXPECT_THAT(callback.GetResult(rv), IsOk()); |
4103 | 4103 |
4104 const HttpResponseInfo* response = trans->GetResponseInfo(); | 4104 const HttpResponseInfo* response = trans->GetResponseInfo(); |
4105 ASSERT_TRUE(response); | 4105 ASSERT_TRUE(response); |
4106 ASSERT_TRUE(response->headers); | 4106 ASSERT_TRUE(response->headers); |
4107 EXPECT_EQ(407, response->headers->response_code()); | 4107 EXPECT_EQ(407, response->headers->response_code()); |
4108 EXPECT_TRUE(HttpVersion(1, 1) == response->headers->GetHttpVersion()); | 4108 EXPECT_TRUE(HttpVersion(1, 1) == response->headers->GetHttpVersion()); |
4109 EXPECT_TRUE(trans->IsReadyToRestartForAuth()); | 4109 EXPECT_TRUE(trans->IsReadyToRestartForAuth()); |
4110 EXPECT_FALSE(response->auth_challenge); | 4110 EXPECT_FALSE(response->auth_challenge); |
4111 | 4111 |
(...skipping 800 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4912 ssl.next_proto = kProtoHTTP2; | 4912 ssl.next_proto = kProtoHTTP2; |
4913 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 4913 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
4914 SSLSocketDataProvider ssl2(ASYNC, OK); | 4914 SSLSocketDataProvider ssl2(ASYNC, OK); |
4915 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl2); | 4915 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl2); |
4916 SSLSocketDataProvider ssl3(ASYNC, OK); | 4916 SSLSocketDataProvider ssl3(ASYNC, OK); |
4917 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl3); | 4917 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl3); |
4918 | 4918 |
4919 TestCompletionCallback callback; | 4919 TestCompletionCallback callback; |
4920 | 4920 |
4921 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 4921 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
4922 int rv = trans.Start(&request1, callback.callback(), BoundNetLog()); | 4922 int rv = trans.Start(&request1, callback.callback(), NetLogWithSource()); |
4923 EXPECT_THAT(callback.GetResult(rv), IsOk()); | 4923 EXPECT_THAT(callback.GetResult(rv), IsOk()); |
4924 | 4924 |
4925 LoadTimingInfo load_timing_info; | 4925 LoadTimingInfo load_timing_info; |
4926 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info)); | 4926 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info)); |
4927 TestLoadTimingNotReused(load_timing_info, CONNECT_TIMING_HAS_SSL_TIMES); | 4927 TestLoadTimingNotReused(load_timing_info, CONNECT_TIMING_HAS_SSL_TIMES); |
4928 | 4928 |
4929 const HttpResponseInfo* response = trans.GetResponseInfo(); | 4929 const HttpResponseInfo* response = trans.GetResponseInfo(); |
4930 ASSERT_TRUE(response); | 4930 ASSERT_TRUE(response); |
4931 ASSERT_TRUE(response->headers); | 4931 ASSERT_TRUE(response->headers); |
4932 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 4932 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
4933 | 4933 |
4934 std::string response_data; | 4934 std::string response_data; |
4935 scoped_refptr<IOBuffer> buf(new IOBuffer(256)); | 4935 scoped_refptr<IOBuffer> buf(new IOBuffer(256)); |
4936 rv = trans.Read(buf.get(), 256, callback.callback()); | 4936 rv = trans.Read(buf.get(), 256, callback.callback()); |
4937 EXPECT_EQ(1, callback.GetResult(rv)); | 4937 EXPECT_EQ(1, callback.GetResult(rv)); |
4938 | 4938 |
4939 HttpNetworkTransaction trans2(DEFAULT_PRIORITY, session.get()); | 4939 HttpNetworkTransaction trans2(DEFAULT_PRIORITY, session.get()); |
4940 rv = trans2.Start(&request2, callback.callback(), BoundNetLog()); | 4940 rv = trans2.Start(&request2, callback.callback(), NetLogWithSource()); |
4941 EXPECT_THAT(callback.GetResult(rv), IsOk()); | 4941 EXPECT_THAT(callback.GetResult(rv), IsOk()); |
4942 | 4942 |
4943 LoadTimingInfo load_timing_info2; | 4943 LoadTimingInfo load_timing_info2; |
4944 EXPECT_TRUE(trans2.GetLoadTimingInfo(&load_timing_info2)); | 4944 EXPECT_TRUE(trans2.GetLoadTimingInfo(&load_timing_info2)); |
4945 // Even though the SPDY connection is reused, a new tunnelled connection has | 4945 // Even though the SPDY connection is reused, a new tunnelled connection has |
4946 // to be created, so the socket's load timing looks like a fresh connection. | 4946 // to be created, so the socket's load timing looks like a fresh connection. |
4947 TestLoadTimingNotReused(load_timing_info2, CONNECT_TIMING_HAS_SSL_TIMES); | 4947 TestLoadTimingNotReused(load_timing_info2, CONNECT_TIMING_HAS_SSL_TIMES); |
4948 | 4948 |
4949 // The requests should have different IDs, since they each are using their own | 4949 // The requests should have different IDs, since they each are using their own |
4950 // separate stream. | 4950 // separate stream. |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5031 SSLSocketDataProvider ssl(ASYNC, OK); | 5031 SSLSocketDataProvider ssl(ASYNC, OK); |
5032 ssl.next_proto = kProtoHTTP2; | 5032 ssl.next_proto = kProtoHTTP2; |
5033 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 5033 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
5034 SSLSocketDataProvider ssl2(ASYNC, OK); | 5034 SSLSocketDataProvider ssl2(ASYNC, OK); |
5035 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl2); | 5035 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl2); |
5036 | 5036 |
5037 TestCompletionCallback callback; | 5037 TestCompletionCallback callback; |
5038 | 5038 |
5039 std::unique_ptr<HttpNetworkTransaction> trans( | 5039 std::unique_ptr<HttpNetworkTransaction> trans( |
5040 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 5040 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
5041 int rv = trans->Start(&request1, callback.callback(), BoundNetLog()); | 5041 int rv = trans->Start(&request1, callback.callback(), NetLogWithSource()); |
5042 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 5042 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
5043 | 5043 |
5044 rv = callback.WaitForResult(); | 5044 rv = callback.WaitForResult(); |
5045 EXPECT_THAT(rv, IsOk()); | 5045 EXPECT_THAT(rv, IsOk()); |
5046 | 5046 |
5047 LoadTimingInfo load_timing_info; | 5047 LoadTimingInfo load_timing_info; |
5048 EXPECT_TRUE(trans->GetLoadTimingInfo(&load_timing_info)); | 5048 EXPECT_TRUE(trans->GetLoadTimingInfo(&load_timing_info)); |
5049 TestLoadTimingNotReused(load_timing_info, CONNECT_TIMING_HAS_SSL_TIMES); | 5049 TestLoadTimingNotReused(load_timing_info, CONNECT_TIMING_HAS_SSL_TIMES); |
5050 | 5050 |
5051 const HttpResponseInfo* response = trans->GetResponseInfo(); | 5051 const HttpResponseInfo* response = trans->GetResponseInfo(); |
5052 ASSERT_TRUE(response); | 5052 ASSERT_TRUE(response); |
5053 ASSERT_TRUE(response->headers); | 5053 ASSERT_TRUE(response->headers); |
5054 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 5054 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
5055 | 5055 |
5056 std::string response_data; | 5056 std::string response_data; |
5057 scoped_refptr<IOBuffer> buf(new IOBuffer(256)); | 5057 scoped_refptr<IOBuffer> buf(new IOBuffer(256)); |
5058 EXPECT_EQ(1, trans->Read(buf.get(), 256, callback.callback())); | 5058 EXPECT_EQ(1, trans->Read(buf.get(), 256, callback.callback())); |
5059 trans.reset(); | 5059 trans.reset(); |
5060 | 5060 |
5061 std::unique_ptr<HttpNetworkTransaction> trans2( | 5061 std::unique_ptr<HttpNetworkTransaction> trans2( |
5062 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 5062 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
5063 rv = trans2->Start(&request2, callback.callback(), BoundNetLog()); | 5063 rv = trans2->Start(&request2, callback.callback(), NetLogWithSource()); |
5064 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 5064 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
5065 | 5065 |
5066 rv = callback.WaitForResult(); | 5066 rv = callback.WaitForResult(); |
5067 EXPECT_THAT(rv, IsOk()); | 5067 EXPECT_THAT(rv, IsOk()); |
5068 | 5068 |
5069 LoadTimingInfo load_timing_info2; | 5069 LoadTimingInfo load_timing_info2; |
5070 EXPECT_TRUE(trans2->GetLoadTimingInfo(&load_timing_info2)); | 5070 EXPECT_TRUE(trans2->GetLoadTimingInfo(&load_timing_info2)); |
5071 TestLoadTimingReused(load_timing_info2); | 5071 TestLoadTimingReused(load_timing_info2); |
5072 | 5072 |
5073 // The requests should have the same ID. | 5073 // The requests should have the same ID. |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5131 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); | 5131 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); |
5132 | 5132 |
5133 SSLSocketDataProvider ssl(ASYNC, OK); | 5133 SSLSocketDataProvider ssl(ASYNC, OK); |
5134 ssl.next_proto = kProtoHTTP2; | 5134 ssl.next_proto = kProtoHTTP2; |
5135 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 5135 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
5136 | 5136 |
5137 TestCompletionCallback callback; | 5137 TestCompletionCallback callback; |
5138 | 5138 |
5139 std::unique_ptr<HttpNetworkTransaction> trans( | 5139 std::unique_ptr<HttpNetworkTransaction> trans( |
5140 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 5140 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
5141 int rv = trans->Start(&request1, callback.callback(), BoundNetLog()); | 5141 int rv = trans->Start(&request1, callback.callback(), NetLogWithSource()); |
5142 EXPECT_THAT(callback.GetResult(rv), IsOk()); | 5142 EXPECT_THAT(callback.GetResult(rv), IsOk()); |
5143 | 5143 |
5144 LoadTimingInfo load_timing_info; | 5144 LoadTimingInfo load_timing_info; |
5145 EXPECT_TRUE(trans->GetLoadTimingInfo(&load_timing_info)); | 5145 EXPECT_TRUE(trans->GetLoadTimingInfo(&load_timing_info)); |
5146 TestLoadTimingNotReused(load_timing_info, | 5146 TestLoadTimingNotReused(load_timing_info, |
5147 CONNECT_TIMING_HAS_CONNECT_TIMES_ONLY); | 5147 CONNECT_TIMING_HAS_CONNECT_TIMES_ONLY); |
5148 | 5148 |
5149 const HttpResponseInfo* response = trans->GetResponseInfo(); | 5149 const HttpResponseInfo* response = trans->GetResponseInfo(); |
5150 ASSERT_TRUE(response); | 5150 ASSERT_TRUE(response); |
5151 ASSERT_TRUE(response->headers); | 5151 ASSERT_TRUE(response->headers); |
5152 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); | 5152 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); |
5153 | 5153 |
5154 std::string response_data; | 5154 std::string response_data; |
5155 scoped_refptr<IOBuffer> buf(new IOBuffer(256)); | 5155 scoped_refptr<IOBuffer> buf(new IOBuffer(256)); |
5156 rv = trans->Read(buf.get(), 256, callback.callback()); | 5156 rv = trans->Read(buf.get(), 256, callback.callback()); |
5157 EXPECT_EQ(1, callback.GetResult(rv)); | 5157 EXPECT_EQ(1, callback.GetResult(rv)); |
5158 // Delete the first request, so the second one can reuse the socket. | 5158 // Delete the first request, so the second one can reuse the socket. |
5159 trans.reset(); | 5159 trans.reset(); |
5160 | 5160 |
5161 HttpNetworkTransaction trans2(DEFAULT_PRIORITY, session.get()); | 5161 HttpNetworkTransaction trans2(DEFAULT_PRIORITY, session.get()); |
5162 rv = trans2.Start(&request2, callback.callback(), BoundNetLog()); | 5162 rv = trans2.Start(&request2, callback.callback(), NetLogWithSource()); |
5163 EXPECT_THAT(callback.GetResult(rv), IsOk()); | 5163 EXPECT_THAT(callback.GetResult(rv), IsOk()); |
5164 | 5164 |
5165 LoadTimingInfo load_timing_info2; | 5165 LoadTimingInfo load_timing_info2; |
5166 EXPECT_TRUE(trans2.GetLoadTimingInfo(&load_timing_info2)); | 5166 EXPECT_TRUE(trans2.GetLoadTimingInfo(&load_timing_info2)); |
5167 TestLoadTimingReused(load_timing_info2); | 5167 TestLoadTimingReused(load_timing_info2); |
5168 | 5168 |
5169 // The requests should have the same ID. | 5169 // The requests should have the same ID. |
5170 EXPECT_EQ(load_timing_info.socket_log_id, load_timing_info2.socket_log_id); | 5170 EXPECT_EQ(load_timing_info.socket_log_id, load_timing_info2.socket_log_id); |
5171 | 5171 |
5172 rv = trans2.Read(buf.get(), 256, callback.callback()); | 5172 rv = trans2.Read(buf.get(), 256, callback.callback()); |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5294 }; | 5294 }; |
5295 | 5295 |
5296 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 5296 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
5297 data_writes, arraysize(data_writes)); | 5297 data_writes, arraysize(data_writes)); |
5298 session_deps_.socket_factory->AddSocketDataProvider(&data); | 5298 session_deps_.socket_factory->AddSocketDataProvider(&data); |
5299 | 5299 |
5300 TestCompletionCallback callback; | 5300 TestCompletionCallback callback; |
5301 | 5301 |
5302 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 5302 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
5303 | 5303 |
5304 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 5304 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
5305 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 5305 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
5306 | 5306 |
5307 rv = callback.WaitForResult(); | 5307 rv = callback.WaitForResult(); |
5308 EXPECT_EQ(expected_status, rv); | 5308 EXPECT_EQ(expected_status, rv); |
5309 } | 5309 } |
5310 | 5310 |
5311 void HttpNetworkTransactionTest::ConnectStatusHelper( | 5311 void HttpNetworkTransactionTest::ConnectStatusHelper( |
5312 const MockRead& status) { | 5312 const MockRead& status) { |
5313 ConnectStatusHelperWithExpectedStatus( | 5313 ConnectStatusHelperWithExpectedStatus( |
5314 status, ERR_TUNNEL_CONNECTION_FAILED); | 5314 status, ERR_TUNNEL_CONNECTION_FAILED); |
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5564 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), | 5564 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), |
5565 data_writes2, arraysize(data_writes2)); | 5565 data_writes2, arraysize(data_writes2)); |
5566 StaticSocketDataProvider data3(data_reads3, arraysize(data_reads3), | 5566 StaticSocketDataProvider data3(data_reads3, arraysize(data_reads3), |
5567 data_writes3, arraysize(data_writes3)); | 5567 data_writes3, arraysize(data_writes3)); |
5568 session_deps_.socket_factory->AddSocketDataProvider(&data1); | 5568 session_deps_.socket_factory->AddSocketDataProvider(&data1); |
5569 session_deps_.socket_factory->AddSocketDataProvider(&data2); | 5569 session_deps_.socket_factory->AddSocketDataProvider(&data2); |
5570 session_deps_.socket_factory->AddSocketDataProvider(&data3); | 5570 session_deps_.socket_factory->AddSocketDataProvider(&data3); |
5571 | 5571 |
5572 TestCompletionCallback callback1; | 5572 TestCompletionCallback callback1; |
5573 | 5573 |
5574 int rv = trans.Start(&request, callback1.callback(), BoundNetLog()); | 5574 int rv = trans.Start(&request, callback1.callback(), NetLogWithSource()); |
5575 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 5575 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
5576 | 5576 |
5577 rv = callback1.WaitForResult(); | 5577 rv = callback1.WaitForResult(); |
5578 EXPECT_THAT(rv, IsOk()); | 5578 EXPECT_THAT(rv, IsOk()); |
5579 | 5579 |
5580 const HttpResponseInfo* response = trans.GetResponseInfo(); | 5580 const HttpResponseInfo* response = trans.GetResponseInfo(); |
5581 ASSERT_TRUE(response); | 5581 ASSERT_TRUE(response); |
5582 EXPECT_TRUE(CheckBasicProxyAuth(response->auth_challenge.get())); | 5582 EXPECT_TRUE(CheckBasicProxyAuth(response->auth_challenge.get())); |
5583 | 5583 |
5584 TestCompletionCallback callback2; | 5584 TestCompletionCallback callback2; |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5698 data_writes1, arraysize(data_writes1)); | 5698 data_writes1, arraysize(data_writes1)); |
5699 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), | 5699 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), |
5700 data_writes2, arraysize(data_writes2)); | 5700 data_writes2, arraysize(data_writes2)); |
5701 session_deps_.socket_factory->AddSocketDataProvider(&data1); | 5701 session_deps_.socket_factory->AddSocketDataProvider(&data1); |
5702 session_deps_.socket_factory->AddSocketDataProvider(&data2); | 5702 session_deps_.socket_factory->AddSocketDataProvider(&data2); |
5703 | 5703 |
5704 TestCompletionCallback callback1; | 5704 TestCompletionCallback callback1; |
5705 | 5705 |
5706 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 5706 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
5707 | 5707 |
5708 int rv = trans.Start(&request, callback1.callback(), BoundNetLog()); | 5708 int rv = trans.Start(&request, callback1.callback(), NetLogWithSource()); |
5709 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 5709 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
5710 | 5710 |
5711 rv = callback1.WaitForResult(); | 5711 rv = callback1.WaitForResult(); |
5712 EXPECT_THAT(rv, IsOk()); | 5712 EXPECT_THAT(rv, IsOk()); |
5713 | 5713 |
5714 EXPECT_FALSE(trans.IsReadyToRestartForAuth()); | 5714 EXPECT_FALSE(trans.IsReadyToRestartForAuth()); |
5715 | 5715 |
5716 const HttpResponseInfo* response = trans.GetResponseInfo(); | 5716 const HttpResponseInfo* response = trans.GetResponseInfo(); |
5717 ASSERT_TRUE(response); | 5717 ASSERT_TRUE(response); |
5718 EXPECT_TRUE(CheckNTLMServerAuth(response->auth_challenge.get())); | 5718 EXPECT_TRUE(CheckNTLMServerAuth(response->auth_challenge.get())); |
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5877 StaticSocketDataProvider data3(data_reads3, arraysize(data_reads3), | 5877 StaticSocketDataProvider data3(data_reads3, arraysize(data_reads3), |
5878 data_writes3, arraysize(data_writes3)); | 5878 data_writes3, arraysize(data_writes3)); |
5879 session_deps_.socket_factory->AddSocketDataProvider(&data1); | 5879 session_deps_.socket_factory->AddSocketDataProvider(&data1); |
5880 session_deps_.socket_factory->AddSocketDataProvider(&data2); | 5880 session_deps_.socket_factory->AddSocketDataProvider(&data2); |
5881 session_deps_.socket_factory->AddSocketDataProvider(&data3); | 5881 session_deps_.socket_factory->AddSocketDataProvider(&data3); |
5882 | 5882 |
5883 TestCompletionCallback callback1; | 5883 TestCompletionCallback callback1; |
5884 | 5884 |
5885 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 5885 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
5886 | 5886 |
5887 int rv = trans.Start(&request, callback1.callback(), BoundNetLog()); | 5887 int rv = trans.Start(&request, callback1.callback(), NetLogWithSource()); |
5888 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 5888 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
5889 | 5889 |
5890 rv = callback1.WaitForResult(); | 5890 rv = callback1.WaitForResult(); |
5891 EXPECT_THAT(rv, IsOk()); | 5891 EXPECT_THAT(rv, IsOk()); |
5892 | 5892 |
5893 EXPECT_FALSE(trans.IsReadyToRestartForAuth()); | 5893 EXPECT_FALSE(trans.IsReadyToRestartForAuth()); |
5894 | 5894 |
5895 const HttpResponseInfo* response = trans.GetResponseInfo(); | 5895 const HttpResponseInfo* response = trans.GetResponseInfo(); |
5896 ASSERT_TRUE(response); | 5896 ASSERT_TRUE(response); |
5897 EXPECT_TRUE(CheckNTLMServerAuth(response->auth_challenge.get())); | 5897 EXPECT_TRUE(CheckNTLMServerAuth(response->auth_challenge.get())); |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5965 MockRead("HTTP/1.0 200 OK\r\n"), | 5965 MockRead("HTTP/1.0 200 OK\r\n"), |
5966 MockRead(ASYNC, large_headers_string.data(), large_headers_string.size()), | 5966 MockRead(ASYNC, large_headers_string.data(), large_headers_string.size()), |
5967 MockRead("\r\nBODY"), | 5967 MockRead("\r\nBODY"), |
5968 MockRead(SYNCHRONOUS, OK), | 5968 MockRead(SYNCHRONOUS, OK), |
5969 }; | 5969 }; |
5970 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 5970 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
5971 session_deps_.socket_factory->AddSocketDataProvider(&data); | 5971 session_deps_.socket_factory->AddSocketDataProvider(&data); |
5972 | 5972 |
5973 TestCompletionCallback callback; | 5973 TestCompletionCallback callback; |
5974 | 5974 |
5975 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 5975 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
5976 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 5976 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
5977 | 5977 |
5978 rv = callback.WaitForResult(); | 5978 rv = callback.WaitForResult(); |
5979 EXPECT_THAT(rv, IsError(ERR_RESPONSE_HEADERS_TOO_BIG)); | 5979 EXPECT_THAT(rv, IsError(ERR_RESPONSE_HEADERS_TOO_BIG)); |
5980 } | 5980 } |
5981 | 5981 |
5982 // Make sure that we don't try to reuse a TCPClientSocket when failing to | 5982 // Make sure that we don't try to reuse a TCPClientSocket when failing to |
5983 // establish tunnel. | 5983 // establish tunnel. |
5984 // http://code.google.com/p/chromium/issues/detail?id=3772 | 5984 // http://code.google.com/p/chromium/issues/detail?id=3772 |
5985 TEST_F(HttpNetworkTransactionTest, DontRecycleTransportSocketForSSLTunnel) { | 5985 TEST_F(HttpNetworkTransactionTest, DontRecycleTransportSocketForSSLTunnel) { |
(...skipping 25 matching lines...) Expand all Loading... |
6011 MockRead("Content-Length: 10\r\n\r\n"), | 6011 MockRead("Content-Length: 10\r\n\r\n"), |
6012 MockRead(SYNCHRONOUS, ERR_UNEXPECTED), | 6012 MockRead(SYNCHRONOUS, ERR_UNEXPECTED), |
6013 }; | 6013 }; |
6014 | 6014 |
6015 StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), | 6015 StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), |
6016 data_writes1, arraysize(data_writes1)); | 6016 data_writes1, arraysize(data_writes1)); |
6017 session_deps_.socket_factory->AddSocketDataProvider(&data1); | 6017 session_deps_.socket_factory->AddSocketDataProvider(&data1); |
6018 | 6018 |
6019 TestCompletionCallback callback1; | 6019 TestCompletionCallback callback1; |
6020 | 6020 |
6021 int rv = trans->Start(&request, callback1.callback(), BoundNetLog()); | 6021 int rv = trans->Start(&request, callback1.callback(), NetLogWithSource()); |
6022 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 6022 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
6023 | 6023 |
6024 rv = callback1.WaitForResult(); | 6024 rv = callback1.WaitForResult(); |
6025 EXPECT_THAT(rv, IsError(ERR_TUNNEL_CONNECTION_FAILED)); | 6025 EXPECT_THAT(rv, IsError(ERR_TUNNEL_CONNECTION_FAILED)); |
6026 | 6026 |
6027 // Empty the current queue. This is necessary because idle sockets are | 6027 // Empty the current queue. This is necessary because idle sockets are |
6028 // added to the connection pool asynchronously with a PostTask. | 6028 // added to the connection pool asynchronously with a PostTask. |
6029 base::RunLoop().RunUntilIdle(); | 6029 base::RunLoop().RunUntilIdle(); |
6030 | 6030 |
6031 // We now check to make sure the TCPClientSocket was not added back to | 6031 // We now check to make sure the TCPClientSocket was not added back to |
(...skipping 24 matching lines...) Expand all Loading... |
6056 MockRead(" world"), | 6056 MockRead(" world"), |
6057 MockRead("junk"), // Should not be read!! | 6057 MockRead("junk"), // Should not be read!! |
6058 MockRead(SYNCHRONOUS, OK), | 6058 MockRead(SYNCHRONOUS, OK), |
6059 }; | 6059 }; |
6060 | 6060 |
6061 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 6061 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
6062 session_deps_.socket_factory->AddSocketDataProvider(&data); | 6062 session_deps_.socket_factory->AddSocketDataProvider(&data); |
6063 | 6063 |
6064 TestCompletionCallback callback; | 6064 TestCompletionCallback callback; |
6065 | 6065 |
6066 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 6066 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
6067 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 6067 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
6068 | 6068 |
6069 rv = callback.WaitForResult(); | 6069 rv = callback.WaitForResult(); |
6070 EXPECT_THAT(rv, IsOk()); | 6070 EXPECT_THAT(rv, IsOk()); |
6071 | 6071 |
6072 const HttpResponseInfo* response = trans.GetResponseInfo(); | 6072 const HttpResponseInfo* response = trans.GetResponseInfo(); |
6073 ASSERT_TRUE(response); | 6073 ASSERT_TRUE(response); |
6074 | 6074 |
6075 EXPECT_TRUE(response->headers); | 6075 EXPECT_TRUE(response->headers); |
6076 std::string status_line = response->headers->GetStatusLine(); | 6076 std::string status_line = response->headers->GetStatusLine(); |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6118 | 6118 |
6119 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 6119 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
6120 data_writes, arraysize(data_writes)); | 6120 data_writes, arraysize(data_writes)); |
6121 session_deps_.socket_factory->AddSocketDataProvider(&data); | 6121 session_deps_.socket_factory->AddSocketDataProvider(&data); |
6122 | 6122 |
6123 TestCompletionCallback callback; | 6123 TestCompletionCallback callback; |
6124 | 6124 |
6125 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 6125 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
6126 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 6126 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
6127 | 6127 |
6128 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 6128 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
6129 | 6129 |
6130 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 6130 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
6131 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 6131 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
6132 | 6132 |
6133 const HttpResponseInfo* response = trans.GetResponseInfo(); | 6133 const HttpResponseInfo* response = trans.GetResponseInfo(); |
6134 ASSERT_TRUE(response); | 6134 ASSERT_TRUE(response); |
6135 ASSERT_TRUE(response->headers); | 6135 ASSERT_TRUE(response->headers); |
6136 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 6136 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
6137 | 6137 |
6138 EXPECT_EQ(0, GetIdleSocketCountInTransportSocketPool(session.get())); | 6138 EXPECT_EQ(0, GetIdleSocketCountInTransportSocketPool(session.get())); |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6184 data_writes, arraysize(data_writes)); | 6184 data_writes, arraysize(data_writes)); |
6185 session_deps_.socket_factory->AddSocketDataProvider(&data); | 6185 session_deps_.socket_factory->AddSocketDataProvider(&data); |
6186 session_deps_.socket_factory->AddSocketDataProvider(&data2); | 6186 session_deps_.socket_factory->AddSocketDataProvider(&data2); |
6187 | 6187 |
6188 TestCompletionCallback callback; | 6188 TestCompletionCallback callback; |
6189 | 6189 |
6190 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 6190 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
6191 std::unique_ptr<HttpNetworkTransaction> trans( | 6191 std::unique_ptr<HttpNetworkTransaction> trans( |
6192 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 6192 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
6193 | 6193 |
6194 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 6194 int rv = trans->Start(&request, callback.callback(), NetLogWithSource()); |
6195 | 6195 |
6196 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 6196 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
6197 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 6197 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
6198 | 6198 |
6199 const HttpResponseInfo* response = trans->GetResponseInfo(); | 6199 const HttpResponseInfo* response = trans->GetResponseInfo(); |
6200 ASSERT_TRUE(response); | 6200 ASSERT_TRUE(response); |
6201 ASSERT_TRUE(response->headers); | 6201 ASSERT_TRUE(response->headers); |
6202 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 6202 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
6203 | 6203 |
6204 EXPECT_EQ(0, GetIdleSocketCountInTransportSocketPool(session.get())); | 6204 EXPECT_EQ(0, GetIdleSocketCountInTransportSocketPool(session.get())); |
6205 | 6205 |
6206 std::string response_data; | 6206 std::string response_data; |
6207 rv = ReadTransaction(trans.get(), &response_data); | 6207 rv = ReadTransaction(trans.get(), &response_data); |
6208 EXPECT_THAT(rv, IsOk()); | 6208 EXPECT_THAT(rv, IsOk()); |
6209 EXPECT_EQ("hello world", response_data); | 6209 EXPECT_EQ("hello world", response_data); |
6210 | 6210 |
6211 // Empty the current queue. This is necessary because idle sockets are | 6211 // Empty the current queue. This is necessary because idle sockets are |
6212 // added to the connection pool asynchronously with a PostTask. | 6212 // added to the connection pool asynchronously with a PostTask. |
6213 base::RunLoop().RunUntilIdle(); | 6213 base::RunLoop().RunUntilIdle(); |
6214 | 6214 |
6215 // We now check to make sure the socket was added back to the pool. | 6215 // We now check to make sure the socket was added back to the pool. |
6216 EXPECT_EQ(1, GetIdleSocketCountInSSLSocketPool(session.get())); | 6216 EXPECT_EQ(1, GetIdleSocketCountInSSLSocketPool(session.get())); |
6217 | 6217 |
6218 // Now start the second transaction, which should reuse the previous socket. | 6218 // Now start the second transaction, which should reuse the previous socket. |
6219 | 6219 |
6220 trans.reset(new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 6220 trans.reset(new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
6221 | 6221 |
6222 rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 6222 rv = trans->Start(&request, callback.callback(), NetLogWithSource()); |
6223 | 6223 |
6224 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 6224 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
6225 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 6225 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
6226 | 6226 |
6227 response = trans->GetResponseInfo(); | 6227 response = trans->GetResponseInfo(); |
6228 ASSERT_TRUE(response); | 6228 ASSERT_TRUE(response); |
6229 ASSERT_TRUE(response->headers); | 6229 ASSERT_TRUE(response->headers); |
6230 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 6230 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
6231 | 6231 |
6232 EXPECT_EQ(0, GetIdleSocketCountInTransportSocketPool(session.get())); | 6232 EXPECT_EQ(0, GetIdleSocketCountInTransportSocketPool(session.get())); |
(...skipping 29 matching lines...) Expand all Loading... |
6262 MockRead("lo"), MockRead(" world"), | 6262 MockRead("lo"), MockRead(" world"), |
6263 MockRead("junk"), // Should not be read!! | 6263 MockRead("junk"), // Should not be read!! |
6264 MockRead(SYNCHRONOUS, OK), | 6264 MockRead(SYNCHRONOUS, OK), |
6265 }; | 6265 }; |
6266 | 6266 |
6267 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 6267 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
6268 session_deps_.socket_factory->AddSocketDataProvider(&data); | 6268 session_deps_.socket_factory->AddSocketDataProvider(&data); |
6269 | 6269 |
6270 TestCompletionCallback callback; | 6270 TestCompletionCallback callback; |
6271 | 6271 |
6272 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 6272 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
6273 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 6273 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
6274 | 6274 |
6275 EXPECT_THAT(callback.GetResult(rv), IsOk()); | 6275 EXPECT_THAT(callback.GetResult(rv), IsOk()); |
6276 | 6276 |
6277 const HttpResponseInfo* response = trans.GetResponseInfo(); | 6277 const HttpResponseInfo* response = trans.GetResponseInfo(); |
6278 ASSERT_TRUE(response); | 6278 ASSERT_TRUE(response); |
6279 EXPECT_TRUE(response->headers); | 6279 EXPECT_TRUE(response->headers); |
6280 std::string status_line = response->headers->GetStatusLine(); | 6280 std::string status_line = response->headers->GetStatusLine(); |
6281 EXPECT_EQ("HTTP/1.1 200 OK", status_line); | 6281 EXPECT_EQ("HTTP/1.1 200 OK", status_line); |
6282 | 6282 |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6333 StaticSocketDataProvider data(data_reads, arraysize(data_reads), data_writes, | 6333 StaticSocketDataProvider data(data_reads, arraysize(data_reads), data_writes, |
6334 arraysize(data_writes)); | 6334 arraysize(data_writes)); |
6335 session_deps_.socket_factory->AddSocketDataProvider(&data); | 6335 session_deps_.socket_factory->AddSocketDataProvider(&data); |
6336 | 6336 |
6337 TestCompletionCallback callback; | 6337 TestCompletionCallback callback; |
6338 | 6338 |
6339 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 6339 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
6340 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 6340 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
6341 | 6341 |
6342 EXPECT_EQ(0, GetIdleSocketCountInSSLSocketPool(session.get())); | 6342 EXPECT_EQ(0, GetIdleSocketCountInSSLSocketPool(session.get())); |
6343 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 6343 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
6344 | 6344 |
6345 EXPECT_THAT(callback.GetResult(rv), IsOk()); | 6345 EXPECT_THAT(callback.GetResult(rv), IsOk()); |
6346 | 6346 |
6347 const HttpResponseInfo* response = trans.GetResponseInfo(); | 6347 const HttpResponseInfo* response = trans.GetResponseInfo(); |
6348 ASSERT_TRUE(response); | 6348 ASSERT_TRUE(response); |
6349 ASSERT_TRUE(response->headers); | 6349 ASSERT_TRUE(response->headers); |
6350 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 6350 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
6351 | 6351 |
6352 // Make memory critical notification and ensure the transaction still has been | 6352 // Make memory critical notification and ensure the transaction still has been |
6353 // operating right. | 6353 // operating right. |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6401 | 6401 |
6402 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 6402 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
6403 session_deps_.socket_factory->AddSocketDataProvider(&data); | 6403 session_deps_.socket_factory->AddSocketDataProvider(&data); |
6404 | 6404 |
6405 // Transaction must be created after the MockReads, so it's destroyed before | 6405 // Transaction must be created after the MockReads, so it's destroyed before |
6406 // them. | 6406 // them. |
6407 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 6407 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
6408 | 6408 |
6409 TestCompletionCallback callback; | 6409 TestCompletionCallback callback; |
6410 | 6410 |
6411 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 6411 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
6412 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 6412 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
6413 | 6413 |
6414 rv = callback.WaitForResult(); | 6414 rv = callback.WaitForResult(); |
6415 EXPECT_THAT(rv, IsOk()); | 6415 EXPECT_THAT(rv, IsOk()); |
6416 | 6416 |
6417 const HttpResponseInfo* response = trans.GetResponseInfo(); | 6417 const HttpResponseInfo* response = trans.GetResponseInfo(); |
6418 ASSERT_TRUE(response); | 6418 ASSERT_TRUE(response); |
6419 | 6419 |
6420 EXPECT_TRUE(response->headers); | 6420 EXPECT_TRUE(response->headers); |
6421 std::string status_line = response->headers->GetStatusLine(); | 6421 std::string status_line = response->headers->GetStatusLine(); |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6499 | 6499 |
6500 const char* const kExpectedResponseData[] = { | 6500 const char* const kExpectedResponseData[] = { |
6501 "hello world", "welcome" | 6501 "hello world", "welcome" |
6502 }; | 6502 }; |
6503 | 6503 |
6504 for (int i = 0; i < 2; ++i) { | 6504 for (int i = 0; i < 2; ++i) { |
6505 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 6505 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
6506 | 6506 |
6507 TestCompletionCallback callback; | 6507 TestCompletionCallback callback; |
6508 | 6508 |
6509 int rv = trans.Start(&request[i], callback.callback(), BoundNetLog()); | 6509 int rv = trans.Start(&request[i], callback.callback(), NetLogWithSource()); |
6510 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 6510 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
6511 | 6511 |
6512 rv = callback.WaitForResult(); | 6512 rv = callback.WaitForResult(); |
6513 EXPECT_THAT(rv, IsOk()); | 6513 EXPECT_THAT(rv, IsOk()); |
6514 | 6514 |
6515 const HttpResponseInfo* response = trans.GetResponseInfo(); | 6515 const HttpResponseInfo* response = trans.GetResponseInfo(); |
6516 ASSERT_TRUE(response); | 6516 ASSERT_TRUE(response); |
6517 | 6517 |
6518 EXPECT_TRUE(response->headers); | 6518 EXPECT_TRUE(response->headers); |
6519 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 6519 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6572 }; | 6572 }; |
6573 | 6573 |
6574 StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), | 6574 StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), |
6575 data_writes1, arraysize(data_writes1)); | 6575 data_writes1, arraysize(data_writes1)); |
6576 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), | 6576 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), |
6577 data_writes2, arraysize(data_writes2)); | 6577 data_writes2, arraysize(data_writes2)); |
6578 session_deps_.socket_factory->AddSocketDataProvider(&data1); | 6578 session_deps_.socket_factory->AddSocketDataProvider(&data1); |
6579 session_deps_.socket_factory->AddSocketDataProvider(&data2); | 6579 session_deps_.socket_factory->AddSocketDataProvider(&data2); |
6580 | 6580 |
6581 TestCompletionCallback callback1; | 6581 TestCompletionCallback callback1; |
6582 int rv = trans.Start(&request, callback1.callback(), BoundNetLog()); | 6582 int rv = trans.Start(&request, callback1.callback(), NetLogWithSource()); |
6583 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 6583 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
6584 rv = callback1.WaitForResult(); | 6584 rv = callback1.WaitForResult(); |
6585 EXPECT_THAT(rv, IsOk()); | 6585 EXPECT_THAT(rv, IsOk()); |
6586 EXPECT_TRUE(trans.IsReadyToRestartForAuth()); | 6586 EXPECT_TRUE(trans.IsReadyToRestartForAuth()); |
6587 | 6587 |
6588 TestCompletionCallback callback2; | 6588 TestCompletionCallback callback2; |
6589 rv = trans.RestartWithAuth(AuthCredentials(), callback2.callback()); | 6589 rv = trans.RestartWithAuth(AuthCredentials(), callback2.callback()); |
6590 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 6590 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
6591 rv = callback2.WaitForResult(); | 6591 rv = callback2.WaitForResult(); |
6592 EXPECT_THAT(rv, IsOk()); | 6592 EXPECT_THAT(rv, IsOk()); |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6671 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), | 6671 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), |
6672 data_writes2, arraysize(data_writes2)); | 6672 data_writes2, arraysize(data_writes2)); |
6673 StaticSocketDataProvider data3(data_reads3, arraysize(data_reads3), | 6673 StaticSocketDataProvider data3(data_reads3, arraysize(data_reads3), |
6674 data_writes3, arraysize(data_writes3)); | 6674 data_writes3, arraysize(data_writes3)); |
6675 session_deps_.socket_factory->AddSocketDataProvider(&data1); | 6675 session_deps_.socket_factory->AddSocketDataProvider(&data1); |
6676 session_deps_.socket_factory->AddSocketDataProvider(&data2); | 6676 session_deps_.socket_factory->AddSocketDataProvider(&data2); |
6677 session_deps_.socket_factory->AddSocketDataProvider(&data3); | 6677 session_deps_.socket_factory->AddSocketDataProvider(&data3); |
6678 | 6678 |
6679 TestCompletionCallback callback1; | 6679 TestCompletionCallback callback1; |
6680 | 6680 |
6681 int rv = trans.Start(&request, callback1.callback(), BoundNetLog()); | 6681 int rv = trans.Start(&request, callback1.callback(), NetLogWithSource()); |
6682 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 6682 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
6683 | 6683 |
6684 rv = callback1.WaitForResult(); | 6684 rv = callback1.WaitForResult(); |
6685 EXPECT_THAT(rv, IsOk()); | 6685 EXPECT_THAT(rv, IsOk()); |
6686 | 6686 |
6687 EXPECT_TRUE(trans.IsReadyToRestartForAuth()); | 6687 EXPECT_TRUE(trans.IsReadyToRestartForAuth()); |
6688 TestCompletionCallback callback2; | 6688 TestCompletionCallback callback2; |
6689 rv = trans.RestartWithAuth(AuthCredentials(), callback2.callback()); | 6689 rv = trans.RestartWithAuth(AuthCredentials(), callback2.callback()); |
6690 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 6690 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
6691 rv = callback2.WaitForResult(); | 6691 rv = callback2.WaitForResult(); |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6760 }; | 6760 }; |
6761 | 6761 |
6762 StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), | 6762 StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), |
6763 data_writes1, arraysize(data_writes1)); | 6763 data_writes1, arraysize(data_writes1)); |
6764 StaticSocketDataProvider data3(data_reads3, arraysize(data_reads3), | 6764 StaticSocketDataProvider data3(data_reads3, arraysize(data_reads3), |
6765 data_writes3, arraysize(data_writes3)); | 6765 data_writes3, arraysize(data_writes3)); |
6766 session_deps_.socket_factory->AddSocketDataProvider(&data1); | 6766 session_deps_.socket_factory->AddSocketDataProvider(&data1); |
6767 session_deps_.socket_factory->AddSocketDataProvider(&data3); | 6767 session_deps_.socket_factory->AddSocketDataProvider(&data3); |
6768 | 6768 |
6769 TestCompletionCallback callback1; | 6769 TestCompletionCallback callback1; |
6770 int rv = trans.Start(&request, callback1.callback(), BoundNetLog()); | 6770 int rv = trans.Start(&request, callback1.callback(), NetLogWithSource()); |
6771 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 6771 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
6772 rv = callback1.WaitForResult(); | 6772 rv = callback1.WaitForResult(); |
6773 EXPECT_THAT(rv, IsOk()); | 6773 EXPECT_THAT(rv, IsOk()); |
6774 EXPECT_FALSE(trans.IsReadyToRestartForAuth()); | 6774 EXPECT_FALSE(trans.IsReadyToRestartForAuth()); |
6775 | 6775 |
6776 const HttpResponseInfo* response = trans.GetResponseInfo(); | 6776 const HttpResponseInfo* response = trans.GetResponseInfo(); |
6777 ASSERT_TRUE(response); | 6777 ASSERT_TRUE(response); |
6778 EXPECT_TRUE(CheckBasicServerAuth(response->auth_challenge.get())); | 6778 EXPECT_TRUE(CheckBasicServerAuth(response->auth_challenge.get())); |
6779 | 6779 |
6780 TestCompletionCallback callback3; | 6780 TestCompletionCallback callback3; |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6840 | 6840 |
6841 StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), | 6841 StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), |
6842 data_writes1, arraysize(data_writes1)); | 6842 data_writes1, arraysize(data_writes1)); |
6843 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), | 6843 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), |
6844 data_writes2, arraysize(data_writes2)); | 6844 data_writes2, arraysize(data_writes2)); |
6845 session_deps_.socket_factory->AddSocketDataProvider(&data1); | 6845 session_deps_.socket_factory->AddSocketDataProvider(&data1); |
6846 session_deps_.socket_factory->AddSocketDataProvider(&data2); | 6846 session_deps_.socket_factory->AddSocketDataProvider(&data2); |
6847 | 6847 |
6848 TestCompletionCallback callback1; | 6848 TestCompletionCallback callback1; |
6849 | 6849 |
6850 int rv = trans.Start(&request, callback1.callback(), BoundNetLog()); | 6850 int rv = trans.Start(&request, callback1.callback(), NetLogWithSource()); |
6851 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 6851 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
6852 | 6852 |
6853 rv = callback1.WaitForResult(); | 6853 rv = callback1.WaitForResult(); |
6854 EXPECT_THAT(rv, IsOk()); | 6854 EXPECT_THAT(rv, IsOk()); |
6855 | 6855 |
6856 const HttpResponseInfo* response = trans.GetResponseInfo(); | 6856 const HttpResponseInfo* response = trans.GetResponseInfo(); |
6857 ASSERT_TRUE(response); | 6857 ASSERT_TRUE(response); |
6858 EXPECT_TRUE(CheckBasicServerAuth(response->auth_challenge.get())); | 6858 EXPECT_TRUE(CheckBasicServerAuth(response->auth_challenge.get())); |
6859 | 6859 |
6860 TestCompletionCallback callback2; | 6860 TestCompletionCallback callback2; |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6921 | 6921 |
6922 StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), | 6922 StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), |
6923 data_writes1, arraysize(data_writes1)); | 6923 data_writes1, arraysize(data_writes1)); |
6924 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), | 6924 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), |
6925 data_writes2, arraysize(data_writes2)); | 6925 data_writes2, arraysize(data_writes2)); |
6926 session_deps_.socket_factory->AddSocketDataProvider(&data1); | 6926 session_deps_.socket_factory->AddSocketDataProvider(&data1); |
6927 session_deps_.socket_factory->AddSocketDataProvider(&data2); | 6927 session_deps_.socket_factory->AddSocketDataProvider(&data2); |
6928 | 6928 |
6929 TestCompletionCallback callback1; | 6929 TestCompletionCallback callback1; |
6930 | 6930 |
6931 int rv = trans.Start(&request, callback1.callback(), BoundNetLog()); | 6931 int rv = trans.Start(&request, callback1.callback(), NetLogWithSource()); |
6932 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 6932 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
6933 | 6933 |
6934 rv = callback1.WaitForResult(); | 6934 rv = callback1.WaitForResult(); |
6935 EXPECT_THAT(rv, IsOk()); | 6935 EXPECT_THAT(rv, IsOk()); |
6936 | 6936 |
6937 const HttpResponseInfo* response = trans.GetResponseInfo(); | 6937 const HttpResponseInfo* response = trans.GetResponseInfo(); |
6938 ASSERT_TRUE(response); | 6938 ASSERT_TRUE(response); |
6939 ASSERT_TRUE(response->auth_challenge); | 6939 ASSERT_TRUE(response->auth_challenge); |
6940 EXPECT_FALSE(response->auth_challenge->is_proxy); | 6940 EXPECT_FALSE(response->auth_challenge->is_proxy); |
6941 EXPECT_EQ("http://www.example.org", | 6941 EXPECT_EQ("http://www.example.org", |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6986 MockRead("Content-Length: 100\r\n\r\n"), | 6986 MockRead("Content-Length: 100\r\n\r\n"), |
6987 MockRead(SYNCHRONOUS, OK), | 6987 MockRead(SYNCHRONOUS, OK), |
6988 }; | 6988 }; |
6989 | 6989 |
6990 StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), | 6990 StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), |
6991 data_writes1, arraysize(data_writes1)); | 6991 data_writes1, arraysize(data_writes1)); |
6992 session_deps_.socket_factory->AddSocketDataProvider(&data1); | 6992 session_deps_.socket_factory->AddSocketDataProvider(&data1); |
6993 | 6993 |
6994 TestCompletionCallback callback1; | 6994 TestCompletionCallback callback1; |
6995 | 6995 |
6996 int rv = trans.Start(&request, callback1.callback(), BoundNetLog()); | 6996 int rv = trans.Start(&request, callback1.callback(), NetLogWithSource()); |
6997 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 6997 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
6998 | 6998 |
6999 rv = callback1.WaitForResult(); | 6999 rv = callback1.WaitForResult(); |
7000 EXPECT_THAT(rv, IsOk()); | 7000 EXPECT_THAT(rv, IsOk()); |
7001 | 7001 |
7002 const HttpResponseInfo* response = trans.GetResponseInfo(); | 7002 const HttpResponseInfo* response = trans.GetResponseInfo(); |
7003 ASSERT_TRUE(response); | 7003 ASSERT_TRUE(response); |
7004 | 7004 |
7005 EXPECT_FALSE(response->auth_challenge); | 7005 EXPECT_FALSE(response->auth_challenge); |
7006 EXPECT_EQ(100, response->headers->GetContentLength()); | 7006 EXPECT_EQ(100, response->headers->GetContentLength()); |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7050 | 7050 |
7051 StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), | 7051 StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), |
7052 data_writes1, arraysize(data_writes1)); | 7052 data_writes1, arraysize(data_writes1)); |
7053 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), | 7053 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), |
7054 data_writes2, arraysize(data_writes2)); | 7054 data_writes2, arraysize(data_writes2)); |
7055 session_deps_.socket_factory->AddSocketDataProvider(&data1); | 7055 session_deps_.socket_factory->AddSocketDataProvider(&data1); |
7056 session_deps_.socket_factory->AddSocketDataProvider(&data2); | 7056 session_deps_.socket_factory->AddSocketDataProvider(&data2); |
7057 | 7057 |
7058 TestCompletionCallback callback1; | 7058 TestCompletionCallback callback1; |
7059 | 7059 |
7060 int rv = trans.Start(&request, callback1.callback(), BoundNetLog()); | 7060 int rv = trans.Start(&request, callback1.callback(), NetLogWithSource()); |
7061 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 7061 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
7062 | 7062 |
7063 rv = callback1.WaitForResult(); | 7063 rv = callback1.WaitForResult(); |
7064 EXPECT_THAT(rv, IsOk()); | 7064 EXPECT_THAT(rv, IsOk()); |
7065 | 7065 |
7066 EXPECT_TRUE(trans.IsReadyToRestartForAuth()); | 7066 EXPECT_TRUE(trans.IsReadyToRestartForAuth()); |
7067 TestCompletionCallback callback2; | 7067 TestCompletionCallback callback2; |
7068 rv = trans.RestartWithAuth(AuthCredentials(), callback2.callback()); | 7068 rv = trans.RestartWithAuth(AuthCredentials(), callback2.callback()); |
7069 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 7069 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
7070 rv = callback2.WaitForResult(); | 7070 rv = callback2.WaitForResult(); |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7142 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), | 7142 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), |
7143 data_writes2, arraysize(data_writes2)); | 7143 data_writes2, arraysize(data_writes2)); |
7144 StaticSocketDataProvider data3(data_reads3, arraysize(data_reads3), | 7144 StaticSocketDataProvider data3(data_reads3, arraysize(data_reads3), |
7145 data_writes3, arraysize(data_writes3)); | 7145 data_writes3, arraysize(data_writes3)); |
7146 session_deps_.socket_factory->AddSocketDataProvider(&data1); | 7146 session_deps_.socket_factory->AddSocketDataProvider(&data1); |
7147 session_deps_.socket_factory->AddSocketDataProvider(&data2); | 7147 session_deps_.socket_factory->AddSocketDataProvider(&data2); |
7148 session_deps_.socket_factory->AddSocketDataProvider(&data3); | 7148 session_deps_.socket_factory->AddSocketDataProvider(&data3); |
7149 | 7149 |
7150 TestCompletionCallback callback1; | 7150 TestCompletionCallback callback1; |
7151 | 7151 |
7152 int rv = trans.Start(&request, callback1.callback(), BoundNetLog()); | 7152 int rv = trans.Start(&request, callback1.callback(), NetLogWithSource()); |
7153 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 7153 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
7154 | 7154 |
7155 rv = callback1.WaitForResult(); | 7155 rv = callback1.WaitForResult(); |
7156 EXPECT_THAT(rv, IsOk()); | 7156 EXPECT_THAT(rv, IsOk()); |
7157 | 7157 |
7158 EXPECT_TRUE(trans.IsReadyToRestartForAuth()); | 7158 EXPECT_TRUE(trans.IsReadyToRestartForAuth()); |
7159 TestCompletionCallback callback2; | 7159 TestCompletionCallback callback2; |
7160 rv = trans.RestartWithAuth(AuthCredentials(), callback2.callback()); | 7160 rv = trans.RestartWithAuth(AuthCredentials(), callback2.callback()); |
7161 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 7161 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
7162 rv = callback2.WaitForResult(); | 7162 rv = callback2.WaitForResult(); |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7237 | 7237 |
7238 StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), | 7238 StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), |
7239 data_writes1, arraysize(data_writes1)); | 7239 data_writes1, arraysize(data_writes1)); |
7240 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), | 7240 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), |
7241 data_writes2, arraysize(data_writes2)); | 7241 data_writes2, arraysize(data_writes2)); |
7242 session_deps_.socket_factory->AddSocketDataProvider(&data1); | 7242 session_deps_.socket_factory->AddSocketDataProvider(&data1); |
7243 session_deps_.socket_factory->AddSocketDataProvider(&data2); | 7243 session_deps_.socket_factory->AddSocketDataProvider(&data2); |
7244 | 7244 |
7245 TestCompletionCallback callback1; | 7245 TestCompletionCallback callback1; |
7246 | 7246 |
7247 int rv = trans.Start(&request, callback1.callback(), BoundNetLog()); | 7247 int rv = trans.Start(&request, callback1.callback(), NetLogWithSource()); |
7248 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 7248 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
7249 | 7249 |
7250 rv = callback1.WaitForResult(); | 7250 rv = callback1.WaitForResult(); |
7251 EXPECT_THAT(rv, IsOk()); | 7251 EXPECT_THAT(rv, IsOk()); |
7252 | 7252 |
7253 const HttpResponseInfo* response = trans.GetResponseInfo(); | 7253 const HttpResponseInfo* response = trans.GetResponseInfo(); |
7254 ASSERT_TRUE(response); | 7254 ASSERT_TRUE(response); |
7255 EXPECT_TRUE(CheckDigestServerAuth(response->auth_challenge.get())); | 7255 EXPECT_TRUE(CheckDigestServerAuth(response->auth_challenge.get())); |
7256 | 7256 |
7257 TestCompletionCallback callback2; | 7257 TestCompletionCallback callback2; |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7300 MockRead("Content-Length: 100\r\n\r\n"), | 7300 MockRead("Content-Length: 100\r\n\r\n"), |
7301 MockRead(SYNCHRONOUS, OK), | 7301 MockRead(SYNCHRONOUS, OK), |
7302 }; | 7302 }; |
7303 | 7303 |
7304 StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), | 7304 StaticSocketDataProvider data1(data_reads1, arraysize(data_reads1), |
7305 data_writes1, arraysize(data_writes1)); | 7305 data_writes1, arraysize(data_writes1)); |
7306 session_deps_.socket_factory->AddSocketDataProvider(&data1); | 7306 session_deps_.socket_factory->AddSocketDataProvider(&data1); |
7307 | 7307 |
7308 TestCompletionCallback callback1; | 7308 TestCompletionCallback callback1; |
7309 | 7309 |
7310 int rv = trans.Start(&request, callback1.callback(), BoundNetLog()); | 7310 int rv = trans.Start(&request, callback1.callback(), NetLogWithSource()); |
7311 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 7311 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
7312 | 7312 |
7313 rv = callback1.WaitForResult(); | 7313 rv = callback1.WaitForResult(); |
7314 EXPECT_THAT(rv, IsOk()); | 7314 EXPECT_THAT(rv, IsOk()); |
7315 | 7315 |
7316 const HttpResponseInfo* response = trans.GetResponseInfo(); | 7316 const HttpResponseInfo* response = trans.GetResponseInfo(); |
7317 ASSERT_TRUE(response); | 7317 ASSERT_TRUE(response); |
7318 EXPECT_FALSE(response->auth_challenge); | 7318 EXPECT_FALSE(response->auth_challenge); |
7319 } | 7319 } |
7320 } | 7320 } |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7391 SSLSocketDataProvider ssl_bad(ASYNC, ERR_CERT_AUTHORITY_INVALID); | 7391 SSLSocketDataProvider ssl_bad(ASYNC, ERR_CERT_AUTHORITY_INVALID); |
7392 SSLSocketDataProvider ssl(ASYNC, OK); | 7392 SSLSocketDataProvider ssl(ASYNC, OK); |
7393 | 7393 |
7394 session_deps_.socket_factory->AddSocketDataProvider(&ssl_bad_certificate); | 7394 session_deps_.socket_factory->AddSocketDataProvider(&ssl_bad_certificate); |
7395 session_deps_.socket_factory->AddSocketDataProvider(&data); | 7395 session_deps_.socket_factory->AddSocketDataProvider(&data); |
7396 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_bad); | 7396 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_bad); |
7397 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 7397 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
7398 | 7398 |
7399 TestCompletionCallback callback; | 7399 TestCompletionCallback callback; |
7400 | 7400 |
7401 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 7401 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
7402 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 7402 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
7403 | 7403 |
7404 rv = callback.WaitForResult(); | 7404 rv = callback.WaitForResult(); |
7405 EXPECT_THAT(rv, IsError(ERR_CERT_AUTHORITY_INVALID)); | 7405 EXPECT_THAT(rv, IsError(ERR_CERT_AUTHORITY_INVALID)); |
7406 | 7406 |
7407 rv = trans.RestartIgnoringLastError(callback.callback()); | 7407 rv = trans.RestartIgnoringLastError(callback.callback()); |
7408 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 7408 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
7409 | 7409 |
7410 rv = callback.WaitForResult(); | 7410 rv = callback.WaitForResult(); |
7411 EXPECT_THAT(rv, IsOk()); | 7411 EXPECT_THAT(rv, IsOk()); |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7468 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 7468 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
7469 | 7469 |
7470 TestCompletionCallback callback; | 7470 TestCompletionCallback callback; |
7471 | 7471 |
7472 for (int i = 0; i < 2; i++) { | 7472 for (int i = 0; i < 2; i++) { |
7473 session_deps_.socket_factory->ResetNextMockIndexes(); | 7473 session_deps_.socket_factory->ResetNextMockIndexes(); |
7474 | 7474 |
7475 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7475 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
7476 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 7476 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
7477 | 7477 |
7478 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 7478 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
7479 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 7479 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
7480 | 7480 |
7481 rv = callback.WaitForResult(); | 7481 rv = callback.WaitForResult(); |
7482 EXPECT_THAT(rv, IsError(ERR_CERT_AUTHORITY_INVALID)); | 7482 EXPECT_THAT(rv, IsError(ERR_CERT_AUTHORITY_INVALID)); |
7483 | 7483 |
7484 rv = trans.RestartIgnoringLastError(callback.callback()); | 7484 rv = trans.RestartIgnoringLastError(callback.callback()); |
7485 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 7485 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
7486 | 7486 |
7487 rv = callback.WaitForResult(); | 7487 rv = callback.WaitForResult(); |
7488 EXPECT_THAT(rv, IsOk()); | 7488 EXPECT_THAT(rv, IsOk()); |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7531 | 7531 |
7532 session_deps_.socket_factory->AddSocketDataProvider(&data); | 7532 session_deps_.socket_factory->AddSocketDataProvider(&data); |
7533 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); | 7533 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); |
7534 session_deps_.socket_factory->AddSSLSocketDataProvider(&tunnel_ssl); | 7534 session_deps_.socket_factory->AddSSLSocketDataProvider(&tunnel_ssl); |
7535 | 7535 |
7536 TestCompletionCallback callback; | 7536 TestCompletionCallback callback; |
7537 | 7537 |
7538 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7538 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
7539 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 7539 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
7540 | 7540 |
7541 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 7541 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
7542 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 7542 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
7543 | 7543 |
7544 rv = callback.WaitForResult(); | 7544 rv = callback.WaitForResult(); |
7545 EXPECT_THAT(rv, IsOk()); | 7545 EXPECT_THAT(rv, IsOk()); |
7546 const HttpResponseInfo* response = trans.GetResponseInfo(); | 7546 const HttpResponseInfo* response = trans.GetResponseInfo(); |
7547 | 7547 |
7548 ASSERT_TRUE(response); | 7548 ASSERT_TRUE(response); |
7549 | 7549 |
7550 EXPECT_TRUE(response->headers->IsKeepAlive()); | 7550 EXPECT_TRUE(response->headers->IsKeepAlive()); |
7551 EXPECT_EQ(200, response->headers->response_code()); | 7551 EXPECT_EQ(200, response->headers->response_code()); |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7588 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy | 7588 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy |
7589 | 7589 |
7590 session_deps_.socket_factory->AddSocketDataProvider(&data); | 7590 session_deps_.socket_factory->AddSocketDataProvider(&data); |
7591 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); | 7591 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); |
7592 | 7592 |
7593 TestCompletionCallback callback; | 7593 TestCompletionCallback callback; |
7594 | 7594 |
7595 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7595 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
7596 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 7596 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
7597 | 7597 |
7598 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 7598 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
7599 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 7599 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
7600 | 7600 |
7601 rv = callback.WaitForResult(); | 7601 rv = callback.WaitForResult(); |
7602 EXPECT_THAT(rv, IsOk()); | 7602 EXPECT_THAT(rv, IsOk()); |
7603 const HttpResponseInfo* response = trans.GetResponseInfo(); | 7603 const HttpResponseInfo* response = trans.GetResponseInfo(); |
7604 | 7604 |
7605 ASSERT_TRUE(response); | 7605 ASSERT_TRUE(response); |
7606 | 7606 |
7607 EXPECT_EQ(302, response->headers->response_code()); | 7607 EXPECT_EQ(302, response->headers->response_code()); |
7608 std::string url; | 7608 std::string url; |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7667 proxy_ssl.next_proto = kProtoHTTP2; | 7667 proxy_ssl.next_proto = kProtoHTTP2; |
7668 | 7668 |
7669 session_deps_.socket_factory->AddSocketDataProvider(&data); | 7669 session_deps_.socket_factory->AddSocketDataProvider(&data); |
7670 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); | 7670 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); |
7671 | 7671 |
7672 TestCompletionCallback callback; | 7672 TestCompletionCallback callback; |
7673 | 7673 |
7674 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7674 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
7675 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 7675 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
7676 | 7676 |
7677 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 7677 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
7678 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 7678 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
7679 | 7679 |
7680 rv = callback.WaitForResult(); | 7680 rv = callback.WaitForResult(); |
7681 EXPECT_THAT(rv, IsOk()); | 7681 EXPECT_THAT(rv, IsOk()); |
7682 const HttpResponseInfo* response = trans.GetResponseInfo(); | 7682 const HttpResponseInfo* response = trans.GetResponseInfo(); |
7683 | 7683 |
7684 ASSERT_TRUE(response); | 7684 ASSERT_TRUE(response); |
7685 | 7685 |
7686 EXPECT_EQ(302, response->headers->response_code()); | 7686 EXPECT_EQ(302, response->headers->response_code()); |
7687 std::string url; | 7687 std::string url; |
(...skipping 28 matching lines...) Expand all Loading... |
7716 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy | 7716 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy |
7717 | 7717 |
7718 session_deps_.socket_factory->AddSocketDataProvider(&data); | 7718 session_deps_.socket_factory->AddSocketDataProvider(&data); |
7719 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); | 7719 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); |
7720 | 7720 |
7721 TestCompletionCallback callback; | 7721 TestCompletionCallback callback; |
7722 | 7722 |
7723 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7723 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
7724 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 7724 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
7725 | 7725 |
7726 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 7726 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
7727 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 7727 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
7728 | 7728 |
7729 rv = callback.WaitForResult(); | 7729 rv = callback.WaitForResult(); |
7730 EXPECT_THAT(rv, IsError(ERR_TUNNEL_CONNECTION_FAILED)); | 7730 EXPECT_THAT(rv, IsError(ERR_TUNNEL_CONNECTION_FAILED)); |
7731 | 7731 |
7732 // TODO(juliatuttle): Anything else to check here? | 7732 // TODO(juliatuttle): Anything else to check here? |
7733 } | 7733 } |
7734 | 7734 |
7735 // Test that a SPDY proxy's response to a CONNECT request is filtered. | 7735 // Test that a SPDY proxy's response to a CONNECT request is filtered. |
7736 TEST_F(HttpNetworkTransactionTest, ErrorResponseToHttpsConnectViaSpdyProxy) { | 7736 TEST_F(HttpNetworkTransactionTest, ErrorResponseToHttpsConnectViaSpdyProxy) { |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7768 proxy_ssl.next_proto = kProtoHTTP2; | 7768 proxy_ssl.next_proto = kProtoHTTP2; |
7769 | 7769 |
7770 session_deps_.socket_factory->AddSocketDataProvider(&data); | 7770 session_deps_.socket_factory->AddSocketDataProvider(&data); |
7771 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); | 7771 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); |
7772 | 7772 |
7773 TestCompletionCallback callback; | 7773 TestCompletionCallback callback; |
7774 | 7774 |
7775 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7775 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
7776 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 7776 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
7777 | 7777 |
7778 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 7778 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
7779 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 7779 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
7780 | 7780 |
7781 rv = callback.WaitForResult(); | 7781 rv = callback.WaitForResult(); |
7782 EXPECT_THAT(rv, IsError(ERR_TUNNEL_CONNECTION_FAILED)); | 7782 EXPECT_THAT(rv, IsError(ERR_TUNNEL_CONNECTION_FAILED)); |
7783 | 7783 |
7784 // TODO(juliatuttle): Anything else to check here? | 7784 // TODO(juliatuttle): Anything else to check here? |
7785 } | 7785 } |
7786 | 7786 |
7787 // Test the request-challenge-retry sequence for basic auth, through | 7787 // Test the request-challenge-retry sequence for basic auth, through |
7788 // a SPDY proxy over a single SPDY session. | 7788 // a SPDY proxy over a single SPDY session. |
(...skipping 466 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8255 // SSL to the proxy, then CONNECT request, then valid SSL certificate | 8255 // SSL to the proxy, then CONNECT request, then valid SSL certificate |
8256 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 8256 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
8257 session_deps_.socket_factory->AddSocketDataProvider(&data); | 8257 session_deps_.socket_factory->AddSocketDataProvider(&data); |
8258 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 8258 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
8259 | 8259 |
8260 TestCompletionCallback callback; | 8260 TestCompletionCallback callback; |
8261 | 8261 |
8262 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8262 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
8263 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 8263 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
8264 | 8264 |
8265 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 8265 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
8266 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 8266 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
8267 | 8267 |
8268 rv = callback.WaitForResult(); | 8268 rv = callback.WaitForResult(); |
8269 EXPECT_THAT(rv, IsError(ERR_CERT_AUTHORITY_INVALID)); | 8269 EXPECT_THAT(rv, IsError(ERR_CERT_AUTHORITY_INVALID)); |
8270 | 8270 |
8271 rv = trans.RestartIgnoringLastError(callback.callback()); | 8271 rv = trans.RestartIgnoringLastError(callback.callback()); |
8272 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 8272 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
8273 | 8273 |
8274 rv = callback.WaitForResult(); | 8274 rv = callback.WaitForResult(); |
8275 EXPECT_THAT(rv, IsOk()); | 8275 EXPECT_THAT(rv, IsOk()); |
(...skipping 29 matching lines...) Expand all Loading... |
8305 MockRead("Content-Length: 100\r\n\r\n"), | 8305 MockRead("Content-Length: 100\r\n\r\n"), |
8306 MockRead(SYNCHRONOUS, OK), | 8306 MockRead(SYNCHRONOUS, OK), |
8307 }; | 8307 }; |
8308 | 8308 |
8309 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 8309 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
8310 data_writes, arraysize(data_writes)); | 8310 data_writes, arraysize(data_writes)); |
8311 session_deps_.socket_factory->AddSocketDataProvider(&data); | 8311 session_deps_.socket_factory->AddSocketDataProvider(&data); |
8312 | 8312 |
8313 TestCompletionCallback callback; | 8313 TestCompletionCallback callback; |
8314 | 8314 |
8315 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 8315 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
8316 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 8316 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
8317 | 8317 |
8318 rv = callback.WaitForResult(); | 8318 rv = callback.WaitForResult(); |
8319 EXPECT_THAT(rv, IsOk()); | 8319 EXPECT_THAT(rv, IsOk()); |
8320 } | 8320 } |
8321 | 8321 |
8322 TEST_F(HttpNetworkTransactionTest, BuildRequest_UserAgentOverTunnel) { | 8322 TEST_F(HttpNetworkTransactionTest, BuildRequest_UserAgentOverTunnel) { |
8323 HttpRequestInfo request; | 8323 HttpRequestInfo request; |
8324 request.method = "GET"; | 8324 request.method = "GET"; |
8325 request.url = GURL("https://www.example.org/"); | 8325 request.url = GURL("https://www.example.org/"); |
(...skipping 17 matching lines...) Expand all Loading... |
8343 MockRead("Proxy-Authenticate: Basic realm=\"MyRealm1\"\r\n"), | 8343 MockRead("Proxy-Authenticate: Basic realm=\"MyRealm1\"\r\n"), |
8344 MockRead("Proxy-Connection: close\r\n\r\n"), | 8344 MockRead("Proxy-Connection: close\r\n\r\n"), |
8345 }; | 8345 }; |
8346 | 8346 |
8347 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 8347 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
8348 data_writes, arraysize(data_writes)); | 8348 data_writes, arraysize(data_writes)); |
8349 session_deps_.socket_factory->AddSocketDataProvider(&data); | 8349 session_deps_.socket_factory->AddSocketDataProvider(&data); |
8350 | 8350 |
8351 TestCompletionCallback callback; | 8351 TestCompletionCallback callback; |
8352 | 8352 |
8353 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 8353 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
8354 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 8354 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
8355 | 8355 |
8356 rv = callback.WaitForResult(); | 8356 rv = callback.WaitForResult(); |
8357 EXPECT_THAT(rv, IsOk()); | 8357 EXPECT_THAT(rv, IsOk()); |
8358 } | 8358 } |
8359 | 8359 |
8360 TEST_F(HttpNetworkTransactionTest, BuildRequest_Referer) { | 8360 TEST_F(HttpNetworkTransactionTest, BuildRequest_Referer) { |
8361 HttpRequestInfo request; | 8361 HttpRequestInfo request; |
8362 request.method = "GET"; | 8362 request.method = "GET"; |
8363 request.url = GURL("http://www.example.org/"); | 8363 request.url = GURL("http://www.example.org/"); |
(...skipping 19 matching lines...) Expand all Loading... |
8383 MockRead("Content-Length: 100\r\n\r\n"), | 8383 MockRead("Content-Length: 100\r\n\r\n"), |
8384 MockRead(SYNCHRONOUS, OK), | 8384 MockRead(SYNCHRONOUS, OK), |
8385 }; | 8385 }; |
8386 | 8386 |
8387 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 8387 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
8388 data_writes, arraysize(data_writes)); | 8388 data_writes, arraysize(data_writes)); |
8389 session_deps_.socket_factory->AddSocketDataProvider(&data); | 8389 session_deps_.socket_factory->AddSocketDataProvider(&data); |
8390 | 8390 |
8391 TestCompletionCallback callback; | 8391 TestCompletionCallback callback; |
8392 | 8392 |
8393 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 8393 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
8394 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 8394 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
8395 | 8395 |
8396 rv = callback.WaitForResult(); | 8396 rv = callback.WaitForResult(); |
8397 EXPECT_THAT(rv, IsOk()); | 8397 EXPECT_THAT(rv, IsOk()); |
8398 } | 8398 } |
8399 | 8399 |
8400 TEST_F(HttpNetworkTransactionTest, BuildRequest_PostContentLengthZero) { | 8400 TEST_F(HttpNetworkTransactionTest, BuildRequest_PostContentLengthZero) { |
8401 HttpRequestInfo request; | 8401 HttpRequestInfo request; |
8402 request.method = "POST"; | 8402 request.method = "POST"; |
8403 request.url = GURL("http://www.example.org/"); | 8403 request.url = GURL("http://www.example.org/"); |
(...skipping 16 matching lines...) Expand all Loading... |
8420 MockRead("Content-Length: 100\r\n\r\n"), | 8420 MockRead("Content-Length: 100\r\n\r\n"), |
8421 MockRead(SYNCHRONOUS, OK), | 8421 MockRead(SYNCHRONOUS, OK), |
8422 }; | 8422 }; |
8423 | 8423 |
8424 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 8424 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
8425 data_writes, arraysize(data_writes)); | 8425 data_writes, arraysize(data_writes)); |
8426 session_deps_.socket_factory->AddSocketDataProvider(&data); | 8426 session_deps_.socket_factory->AddSocketDataProvider(&data); |
8427 | 8427 |
8428 TestCompletionCallback callback; | 8428 TestCompletionCallback callback; |
8429 | 8429 |
8430 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 8430 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
8431 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 8431 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
8432 | 8432 |
8433 rv = callback.WaitForResult(); | 8433 rv = callback.WaitForResult(); |
8434 EXPECT_THAT(rv, IsOk()); | 8434 EXPECT_THAT(rv, IsOk()); |
8435 } | 8435 } |
8436 | 8436 |
8437 TEST_F(HttpNetworkTransactionTest, BuildRequest_PutContentLengthZero) { | 8437 TEST_F(HttpNetworkTransactionTest, BuildRequest_PutContentLengthZero) { |
8438 HttpRequestInfo request; | 8438 HttpRequestInfo request; |
8439 request.method = "PUT"; | 8439 request.method = "PUT"; |
8440 request.url = GURL("http://www.example.org/"); | 8440 request.url = GURL("http://www.example.org/"); |
(...skipping 16 matching lines...) Expand all Loading... |
8457 MockRead("Content-Length: 100\r\n\r\n"), | 8457 MockRead("Content-Length: 100\r\n\r\n"), |
8458 MockRead(SYNCHRONOUS, OK), | 8458 MockRead(SYNCHRONOUS, OK), |
8459 }; | 8459 }; |
8460 | 8460 |
8461 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 8461 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
8462 data_writes, arraysize(data_writes)); | 8462 data_writes, arraysize(data_writes)); |
8463 session_deps_.socket_factory->AddSocketDataProvider(&data); | 8463 session_deps_.socket_factory->AddSocketDataProvider(&data); |
8464 | 8464 |
8465 TestCompletionCallback callback; | 8465 TestCompletionCallback callback; |
8466 | 8466 |
8467 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 8467 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
8468 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 8468 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
8469 | 8469 |
8470 rv = callback.WaitForResult(); | 8470 rv = callback.WaitForResult(); |
8471 EXPECT_THAT(rv, IsOk()); | 8471 EXPECT_THAT(rv, IsOk()); |
8472 } | 8472 } |
8473 | 8473 |
8474 TEST_F(HttpNetworkTransactionTest, BuildRequest_HeadContentLengthZero) { | 8474 TEST_F(HttpNetworkTransactionTest, BuildRequest_HeadContentLengthZero) { |
8475 HttpRequestInfo request; | 8475 HttpRequestInfo request; |
8476 request.method = "HEAD"; | 8476 request.method = "HEAD"; |
8477 request.url = GURL("http://www.example.org/"); | 8477 request.url = GURL("http://www.example.org/"); |
(...skipping 14 matching lines...) Expand all Loading... |
8492 MockRead("Content-Length: 100\r\n\r\n"), | 8492 MockRead("Content-Length: 100\r\n\r\n"), |
8493 MockRead(SYNCHRONOUS, OK), | 8493 MockRead(SYNCHRONOUS, OK), |
8494 }; | 8494 }; |
8495 | 8495 |
8496 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 8496 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
8497 data_writes, arraysize(data_writes)); | 8497 data_writes, arraysize(data_writes)); |
8498 session_deps_.socket_factory->AddSocketDataProvider(&data); | 8498 session_deps_.socket_factory->AddSocketDataProvider(&data); |
8499 | 8499 |
8500 TestCompletionCallback callback; | 8500 TestCompletionCallback callback; |
8501 | 8501 |
8502 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 8502 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
8503 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 8503 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
8504 | 8504 |
8505 rv = callback.WaitForResult(); | 8505 rv = callback.WaitForResult(); |
8506 EXPECT_THAT(rv, IsOk()); | 8506 EXPECT_THAT(rv, IsOk()); |
8507 } | 8507 } |
8508 | 8508 |
8509 TEST_F(HttpNetworkTransactionTest, BuildRequest_CacheControlNoCache) { | 8509 TEST_F(HttpNetworkTransactionTest, BuildRequest_CacheControlNoCache) { |
8510 HttpRequestInfo request; | 8510 HttpRequestInfo request; |
8511 request.method = "GET"; | 8511 request.method = "GET"; |
8512 request.url = GURL("http://www.example.org/"); | 8512 request.url = GURL("http://www.example.org/"); |
(...skipping 18 matching lines...) Expand all Loading... |
8531 MockRead("Content-Length: 100\r\n\r\n"), | 8531 MockRead("Content-Length: 100\r\n\r\n"), |
8532 MockRead(SYNCHRONOUS, OK), | 8532 MockRead(SYNCHRONOUS, OK), |
8533 }; | 8533 }; |
8534 | 8534 |
8535 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 8535 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
8536 data_writes, arraysize(data_writes)); | 8536 data_writes, arraysize(data_writes)); |
8537 session_deps_.socket_factory->AddSocketDataProvider(&data); | 8537 session_deps_.socket_factory->AddSocketDataProvider(&data); |
8538 | 8538 |
8539 TestCompletionCallback callback; | 8539 TestCompletionCallback callback; |
8540 | 8540 |
8541 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 8541 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
8542 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 8542 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
8543 | 8543 |
8544 rv = callback.WaitForResult(); | 8544 rv = callback.WaitForResult(); |
8545 EXPECT_THAT(rv, IsOk()); | 8545 EXPECT_THAT(rv, IsOk()); |
8546 } | 8546 } |
8547 | 8547 |
8548 TEST_F(HttpNetworkTransactionTest, BuildRequest_CacheControlValidateCache) { | 8548 TEST_F(HttpNetworkTransactionTest, BuildRequest_CacheControlValidateCache) { |
8549 HttpRequestInfo request; | 8549 HttpRequestInfo request; |
8550 request.method = "GET"; | 8550 request.method = "GET"; |
8551 request.url = GURL("http://www.example.org/"); | 8551 request.url = GURL("http://www.example.org/"); |
(...skipping 17 matching lines...) Expand all Loading... |
8569 MockRead("Content-Length: 100\r\n\r\n"), | 8569 MockRead("Content-Length: 100\r\n\r\n"), |
8570 MockRead(SYNCHRONOUS, OK), | 8570 MockRead(SYNCHRONOUS, OK), |
8571 }; | 8571 }; |
8572 | 8572 |
8573 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 8573 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
8574 data_writes, arraysize(data_writes)); | 8574 data_writes, arraysize(data_writes)); |
8575 session_deps_.socket_factory->AddSocketDataProvider(&data); | 8575 session_deps_.socket_factory->AddSocketDataProvider(&data); |
8576 | 8576 |
8577 TestCompletionCallback callback; | 8577 TestCompletionCallback callback; |
8578 | 8578 |
8579 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 8579 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
8580 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 8580 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
8581 | 8581 |
8582 rv = callback.WaitForResult(); | 8582 rv = callback.WaitForResult(); |
8583 EXPECT_THAT(rv, IsOk()); | 8583 EXPECT_THAT(rv, IsOk()); |
8584 } | 8584 } |
8585 | 8585 |
8586 TEST_F(HttpNetworkTransactionTest, BuildRequest_ExtraHeaders) { | 8586 TEST_F(HttpNetworkTransactionTest, BuildRequest_ExtraHeaders) { |
8587 HttpRequestInfo request; | 8587 HttpRequestInfo request; |
8588 request.method = "GET"; | 8588 request.method = "GET"; |
8589 request.url = GURL("http://www.example.org/"); | 8589 request.url = GURL("http://www.example.org/"); |
(...skipping 17 matching lines...) Expand all Loading... |
8607 MockRead("Content-Length: 100\r\n\r\n"), | 8607 MockRead("Content-Length: 100\r\n\r\n"), |
8608 MockRead(SYNCHRONOUS, OK), | 8608 MockRead(SYNCHRONOUS, OK), |
8609 }; | 8609 }; |
8610 | 8610 |
8611 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 8611 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
8612 data_writes, arraysize(data_writes)); | 8612 data_writes, arraysize(data_writes)); |
8613 session_deps_.socket_factory->AddSocketDataProvider(&data); | 8613 session_deps_.socket_factory->AddSocketDataProvider(&data); |
8614 | 8614 |
8615 TestCompletionCallback callback; | 8615 TestCompletionCallback callback; |
8616 | 8616 |
8617 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 8617 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
8618 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 8618 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
8619 | 8619 |
8620 rv = callback.WaitForResult(); | 8620 rv = callback.WaitForResult(); |
8621 EXPECT_THAT(rv, IsOk()); | 8621 EXPECT_THAT(rv, IsOk()); |
8622 } | 8622 } |
8623 | 8623 |
8624 TEST_F(HttpNetworkTransactionTest, BuildRequest_ExtraHeadersStripped) { | 8624 TEST_F(HttpNetworkTransactionTest, BuildRequest_ExtraHeadersStripped) { |
8625 HttpRequestInfo request; | 8625 HttpRequestInfo request; |
8626 request.method = "GET"; | 8626 request.method = "GET"; |
8627 request.url = GURL("http://www.example.org/"); | 8627 request.url = GURL("http://www.example.org/"); |
(...skipping 21 matching lines...) Expand all Loading... |
8649 MockRead("Content-Length: 100\r\n\r\n"), | 8649 MockRead("Content-Length: 100\r\n\r\n"), |
8650 MockRead(SYNCHRONOUS, OK), | 8650 MockRead(SYNCHRONOUS, OK), |
8651 }; | 8651 }; |
8652 | 8652 |
8653 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 8653 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
8654 data_writes, arraysize(data_writes)); | 8654 data_writes, arraysize(data_writes)); |
8655 session_deps_.socket_factory->AddSocketDataProvider(&data); | 8655 session_deps_.socket_factory->AddSocketDataProvider(&data); |
8656 | 8656 |
8657 TestCompletionCallback callback; | 8657 TestCompletionCallback callback; |
8658 | 8658 |
8659 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 8659 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
8660 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 8660 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
8661 | 8661 |
8662 rv = callback.WaitForResult(); | 8662 rv = callback.WaitForResult(); |
8663 EXPECT_THAT(rv, IsOk()); | 8663 EXPECT_THAT(rv, IsOk()); |
8664 } | 8664 } |
8665 | 8665 |
8666 TEST_F(HttpNetworkTransactionTest, SOCKS4_HTTP_GET) { | 8666 TEST_F(HttpNetworkTransactionTest, SOCKS4_HTTP_GET) { |
8667 HttpRequestInfo request; | 8667 HttpRequestInfo request; |
8668 request.method = "GET"; | 8668 request.method = "GET"; |
8669 request.url = GURL("http://www.example.org/"); | 8669 request.url = GURL("http://www.example.org/"); |
(...skipping 24 matching lines...) Expand all Loading... |
8694 MockRead("Payload"), | 8694 MockRead("Payload"), |
8695 MockRead(SYNCHRONOUS, OK) | 8695 MockRead(SYNCHRONOUS, OK) |
8696 }; | 8696 }; |
8697 | 8697 |
8698 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 8698 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
8699 data_writes, arraysize(data_writes)); | 8699 data_writes, arraysize(data_writes)); |
8700 session_deps_.socket_factory->AddSocketDataProvider(&data); | 8700 session_deps_.socket_factory->AddSocketDataProvider(&data); |
8701 | 8701 |
8702 TestCompletionCallback callback; | 8702 TestCompletionCallback callback; |
8703 | 8703 |
8704 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 8704 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
8705 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 8705 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
8706 | 8706 |
8707 rv = callback.WaitForResult(); | 8707 rv = callback.WaitForResult(); |
8708 EXPECT_THAT(rv, IsOk()); | 8708 EXPECT_THAT(rv, IsOk()); |
8709 | 8709 |
8710 const HttpResponseInfo* response = trans.GetResponseInfo(); | 8710 const HttpResponseInfo* response = trans.GetResponseInfo(); |
8711 ASSERT_TRUE(response); | 8711 ASSERT_TRUE(response); |
8712 | 8712 |
8713 LoadTimingInfo load_timing_info; | 8713 LoadTimingInfo load_timing_info; |
8714 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info)); | 8714 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info)); |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8757 | 8757 |
8758 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 8758 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
8759 data_writes, arraysize(data_writes)); | 8759 data_writes, arraysize(data_writes)); |
8760 session_deps_.socket_factory->AddSocketDataProvider(&data); | 8760 session_deps_.socket_factory->AddSocketDataProvider(&data); |
8761 | 8761 |
8762 SSLSocketDataProvider ssl(ASYNC, OK); | 8762 SSLSocketDataProvider ssl(ASYNC, OK); |
8763 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 8763 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
8764 | 8764 |
8765 TestCompletionCallback callback; | 8765 TestCompletionCallback callback; |
8766 | 8766 |
8767 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 8767 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
8768 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 8768 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
8769 | 8769 |
8770 rv = callback.WaitForResult(); | 8770 rv = callback.WaitForResult(); |
8771 EXPECT_THAT(rv, IsOk()); | 8771 EXPECT_THAT(rv, IsOk()); |
8772 | 8772 |
8773 LoadTimingInfo load_timing_info; | 8773 LoadTimingInfo load_timing_info; |
8774 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info)); | 8774 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info)); |
8775 TestLoadTimingNotReusedWithPac(load_timing_info, | 8775 TestLoadTimingNotReusedWithPac(load_timing_info, |
8776 CONNECT_TIMING_HAS_SSL_TIMES); | 8776 CONNECT_TIMING_HAS_SSL_TIMES); |
8777 | 8777 |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8815 MockRead("Payload"), | 8815 MockRead("Payload"), |
8816 MockRead(SYNCHRONOUS, OK) | 8816 MockRead(SYNCHRONOUS, OK) |
8817 }; | 8817 }; |
8818 | 8818 |
8819 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 8819 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
8820 data_writes, arraysize(data_writes)); | 8820 data_writes, arraysize(data_writes)); |
8821 session_deps_.socket_factory->AddSocketDataProvider(&data); | 8821 session_deps_.socket_factory->AddSocketDataProvider(&data); |
8822 | 8822 |
8823 TestCompletionCallback callback; | 8823 TestCompletionCallback callback; |
8824 | 8824 |
8825 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 8825 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
8826 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 8826 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
8827 | 8827 |
8828 rv = callback.WaitForResult(); | 8828 rv = callback.WaitForResult(); |
8829 EXPECT_THAT(rv, IsOk()); | 8829 EXPECT_THAT(rv, IsOk()); |
8830 | 8830 |
8831 const HttpResponseInfo* response = trans.GetResponseInfo(); | 8831 const HttpResponseInfo* response = trans.GetResponseInfo(); |
8832 ASSERT_TRUE(response); | 8832 ASSERT_TRUE(response); |
8833 | 8833 |
8834 LoadTimingInfo load_timing_info; | 8834 LoadTimingInfo load_timing_info; |
8835 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info)); | 8835 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info)); |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8886 MockRead("Payload"), | 8886 MockRead("Payload"), |
8887 MockRead(SYNCHRONOUS, OK) | 8887 MockRead(SYNCHRONOUS, OK) |
8888 }; | 8888 }; |
8889 | 8889 |
8890 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 8890 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
8891 data_writes, arraysize(data_writes)); | 8891 data_writes, arraysize(data_writes)); |
8892 session_deps_.socket_factory->AddSocketDataProvider(&data); | 8892 session_deps_.socket_factory->AddSocketDataProvider(&data); |
8893 | 8893 |
8894 TestCompletionCallback callback; | 8894 TestCompletionCallback callback; |
8895 | 8895 |
8896 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 8896 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
8897 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 8897 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
8898 | 8898 |
8899 rv = callback.WaitForResult(); | 8899 rv = callback.WaitForResult(); |
8900 EXPECT_THAT(rv, IsOk()); | 8900 EXPECT_THAT(rv, IsOk()); |
8901 | 8901 |
8902 const HttpResponseInfo* response = trans.GetResponseInfo(); | 8902 const HttpResponseInfo* response = trans.GetResponseInfo(); |
8903 ASSERT_TRUE(response); | 8903 ASSERT_TRUE(response); |
8904 | 8904 |
8905 LoadTimingInfo load_timing_info; | 8905 LoadTimingInfo load_timing_info; |
8906 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info)); | 8906 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info)); |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8962 | 8962 |
8963 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 8963 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
8964 data_writes, arraysize(data_writes)); | 8964 data_writes, arraysize(data_writes)); |
8965 session_deps_.socket_factory->AddSocketDataProvider(&data); | 8965 session_deps_.socket_factory->AddSocketDataProvider(&data); |
8966 | 8966 |
8967 SSLSocketDataProvider ssl(ASYNC, OK); | 8967 SSLSocketDataProvider ssl(ASYNC, OK); |
8968 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 8968 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
8969 | 8969 |
8970 TestCompletionCallback callback; | 8970 TestCompletionCallback callback; |
8971 | 8971 |
8972 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 8972 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
8973 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 8973 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
8974 | 8974 |
8975 rv = callback.WaitForResult(); | 8975 rv = callback.WaitForResult(); |
8976 EXPECT_THAT(rv, IsOk()); | 8976 EXPECT_THAT(rv, IsOk()); |
8977 | 8977 |
8978 const HttpResponseInfo* response = trans.GetResponseInfo(); | 8978 const HttpResponseInfo* response = trans.GetResponseInfo(); |
8979 ASSERT_TRUE(response); | 8979 ASSERT_TRUE(response); |
8980 | 8980 |
8981 LoadTimingInfo load_timing_info; | 8981 LoadTimingInfo load_timing_info; |
8982 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info)); | 8982 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info)); |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9021 HttpRequestInfo request; | 9021 HttpRequestInfo request; |
9022 request.method = "GET"; | 9022 request.method = "GET"; |
9023 request.url = GURL(url); | 9023 request.url = GURL(url); |
9024 request.load_flags = 0; | 9024 request.load_flags = 0; |
9025 | 9025 |
9026 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session); | 9026 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session); |
9027 | 9027 |
9028 TestCompletionCallback callback; | 9028 TestCompletionCallback callback; |
9029 | 9029 |
9030 // We do not complete this request, the dtor will clean the transaction up. | 9030 // We do not complete this request, the dtor will clean the transaction up. |
9031 return trans.Start(&request, callback.callback(), BoundNetLog()); | 9031 return trans.Start(&request, callback.callback(), NetLogWithSource()); |
9032 } | 9032 } |
9033 | 9033 |
9034 } // namespace | 9034 } // namespace |
9035 | 9035 |
9036 TEST_F(HttpNetworkTransactionTest, GroupNameForDirectConnections) { | 9036 TEST_F(HttpNetworkTransactionTest, GroupNameForDirectConnections) { |
9037 const GroupNameTest tests[] = { | 9037 const GroupNameTest tests[] = { |
9038 { | 9038 { |
9039 "", // unused | 9039 "", // unused |
9040 "http://www.example.org/direct", | 9040 "http://www.example.org/direct", |
9041 "www.example.org:80", | 9041 "www.example.org:80", |
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9240 | 9240 |
9241 // This simulates failure resolving all hostnames; that means we will fail | 9241 // This simulates failure resolving all hostnames; that means we will fail |
9242 // connecting to both proxies (myproxy:70 and foobar:80). | 9242 // connecting to both proxies (myproxy:70 and foobar:80). |
9243 session_deps_.host_resolver->rules()->AddSimulatedFailure("*"); | 9243 session_deps_.host_resolver->rules()->AddSimulatedFailure("*"); |
9244 | 9244 |
9245 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 9245 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
9246 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 9246 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
9247 | 9247 |
9248 TestCompletionCallback callback; | 9248 TestCompletionCallback callback; |
9249 | 9249 |
9250 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 9250 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
9251 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 9251 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
9252 | 9252 |
9253 rv = callback.WaitForResult(); | 9253 rv = callback.WaitForResult(); |
9254 EXPECT_THAT(rv, IsError(ERR_PROXY_CONNECTION_FAILED)); | 9254 EXPECT_THAT(rv, IsError(ERR_PROXY_CONNECTION_FAILED)); |
9255 } | 9255 } |
9256 | 9256 |
9257 // Base test to make sure that when the load flags for a request specify to | 9257 // Base test to make sure that when the load flags for a request specify to |
9258 // bypass the cache, the DNS cache is not used. | 9258 // bypass the cache, the DNS cache is not used. |
9259 void HttpNetworkTransactionTest::BypassHostCacheOnRefreshHelper( | 9259 void HttpNetworkTransactionTest::BypassHostCacheOnRefreshHelper( |
9260 int load_flags) { | 9260 int load_flags) { |
9261 // Issue a request, asking to bypass the cache(s). | 9261 // Issue a request, asking to bypass the cache(s). |
9262 HttpRequestInfo request_info; | 9262 HttpRequestInfo request_info; |
9263 request_info.method = "GET"; | 9263 request_info.method = "GET"; |
9264 request_info.load_flags = load_flags; | 9264 request_info.load_flags = load_flags; |
9265 request_info.url = GURL("http://www.example.org/"); | 9265 request_info.url = GURL("http://www.example.org/"); |
9266 | 9266 |
9267 // Select a host resolver that does caching. | 9267 // Select a host resolver that does caching. |
9268 session_deps_.host_resolver.reset(new MockCachingHostResolver); | 9268 session_deps_.host_resolver.reset(new MockCachingHostResolver); |
9269 | 9269 |
9270 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 9270 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
9271 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 9271 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
9272 | 9272 |
9273 // Warm up the host cache so it has an entry for "www.example.org". | 9273 // Warm up the host cache so it has an entry for "www.example.org". |
9274 AddressList addrlist; | 9274 AddressList addrlist; |
9275 TestCompletionCallback callback; | 9275 TestCompletionCallback callback; |
9276 std::unique_ptr<HostResolver::Request> request1; | 9276 std::unique_ptr<HostResolver::Request> request1; |
9277 int rv = session_deps_.host_resolver->Resolve( | 9277 int rv = session_deps_.host_resolver->Resolve( |
9278 HostResolver::RequestInfo(HostPortPair("www.example.org", 80)), | 9278 HostResolver::RequestInfo(HostPortPair("www.example.org", 80)), |
9279 DEFAULT_PRIORITY, &addrlist, callback.callback(), &request1, | 9279 DEFAULT_PRIORITY, &addrlist, callback.callback(), &request1, |
9280 BoundNetLog()); | 9280 NetLogWithSource()); |
9281 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 9281 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
9282 rv = callback.WaitForResult(); | 9282 rv = callback.WaitForResult(); |
9283 EXPECT_THAT(rv, IsOk()); | 9283 EXPECT_THAT(rv, IsOk()); |
9284 | 9284 |
9285 // Verify that it was added to host cache, by doing a subsequent async lookup | 9285 // Verify that it was added to host cache, by doing a subsequent async lookup |
9286 // and confirming it completes synchronously. | 9286 // and confirming it completes synchronously. |
9287 std::unique_ptr<HostResolver::Request> request2; | 9287 std::unique_ptr<HostResolver::Request> request2; |
9288 rv = session_deps_.host_resolver->Resolve( | 9288 rv = session_deps_.host_resolver->Resolve( |
9289 HostResolver::RequestInfo(HostPortPair("www.example.org", 80)), | 9289 HostResolver::RequestInfo(HostPortPair("www.example.org", 80)), |
9290 DEFAULT_PRIORITY, &addrlist, callback.callback(), &request2, | 9290 DEFAULT_PRIORITY, &addrlist, callback.callback(), &request2, |
9291 BoundNetLog()); | 9291 NetLogWithSource()); |
9292 ASSERT_THAT(rv, IsOk()); | 9292 ASSERT_THAT(rv, IsOk()); |
9293 | 9293 |
9294 // Inject a failure the next time that "www.example.org" is resolved. This way | 9294 // Inject a failure the next time that "www.example.org" is resolved. This way |
9295 // we can tell if the next lookup hit the cache, or the "network". | 9295 // we can tell if the next lookup hit the cache, or the "network". |
9296 // (cache --> success, "network" --> failure). | 9296 // (cache --> success, "network" --> failure). |
9297 session_deps_.host_resolver->rules()->AddSimulatedFailure("www.example.org"); | 9297 session_deps_.host_resolver->rules()->AddSimulatedFailure("www.example.org"); |
9298 | 9298 |
9299 // Connect up a mock socket which will fail with ERR_UNEXPECTED during the | 9299 // Connect up a mock socket which will fail with ERR_UNEXPECTED during the |
9300 // first read -- this won't be reached as the host resolution will fail first. | 9300 // first read -- this won't be reached as the host resolution will fail first. |
9301 MockRead data_reads[] = { MockRead(SYNCHRONOUS, ERR_UNEXPECTED) }; | 9301 MockRead data_reads[] = { MockRead(SYNCHRONOUS, ERR_UNEXPECTED) }; |
9302 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 9302 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
9303 session_deps_.socket_factory->AddSocketDataProvider(&data); | 9303 session_deps_.socket_factory->AddSocketDataProvider(&data); |
9304 | 9304 |
9305 // Run the request. | 9305 // Run the request. |
9306 rv = trans.Start(&request_info, callback.callback(), BoundNetLog()); | 9306 rv = trans.Start(&request_info, callback.callback(), NetLogWithSource()); |
9307 ASSERT_THAT(rv, IsError(ERR_IO_PENDING)); | 9307 ASSERT_THAT(rv, IsError(ERR_IO_PENDING)); |
9308 rv = callback.WaitForResult(); | 9308 rv = callback.WaitForResult(); |
9309 | 9309 |
9310 // If we bypassed the cache, we would have gotten a failure while resolving | 9310 // If we bypassed the cache, we would have gotten a failure while resolving |
9311 // "www.example.org". | 9311 // "www.example.org". |
9312 EXPECT_THAT(rv, IsError(ERR_NAME_NOT_RESOLVED)); | 9312 EXPECT_THAT(rv, IsError(ERR_NAME_NOT_RESOLVED)); |
9313 } | 9313 } |
9314 | 9314 |
9315 // There are multiple load flags that should trigger the host cache bypass. | 9315 // There are multiple load flags that should trigger the host cache bypass. |
9316 // Test each in isolation: | 9316 // Test each in isolation: |
(...skipping 21 matching lines...) Expand all Loading... |
9338 }; | 9338 }; |
9339 StaticSocketDataProvider data(NULL, 0, | 9339 StaticSocketDataProvider data(NULL, 0, |
9340 write_failure, arraysize(write_failure)); | 9340 write_failure, arraysize(write_failure)); |
9341 session_deps_.socket_factory->AddSocketDataProvider(&data); | 9341 session_deps_.socket_factory->AddSocketDataProvider(&data); |
9342 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 9342 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
9343 | 9343 |
9344 TestCompletionCallback callback; | 9344 TestCompletionCallback callback; |
9345 | 9345 |
9346 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 9346 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
9347 | 9347 |
9348 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 9348 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
9349 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 9349 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
9350 | 9350 |
9351 rv = callback.WaitForResult(); | 9351 rv = callback.WaitForResult(); |
9352 EXPECT_THAT(rv, IsError(ERR_CONNECTION_RESET)); | 9352 EXPECT_THAT(rv, IsError(ERR_CONNECTION_RESET)); |
9353 | 9353 |
9354 IPEndPoint endpoint; | 9354 IPEndPoint endpoint; |
9355 EXPECT_TRUE(trans.GetRemoteEndpoint(&endpoint)); | 9355 EXPECT_TRUE(trans.GetRemoteEndpoint(&endpoint)); |
9356 EXPECT_LT(0u, endpoint.address().size()); | 9356 EXPECT_LT(0u, endpoint.address().size()); |
9357 } | 9357 } |
9358 | 9358 |
(...skipping 10 matching lines...) Expand all Loading... |
9369 }; | 9369 }; |
9370 | 9370 |
9371 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 9371 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
9372 session_deps_.socket_factory->AddSocketDataProvider(&data); | 9372 session_deps_.socket_factory->AddSocketDataProvider(&data); |
9373 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 9373 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
9374 | 9374 |
9375 TestCompletionCallback callback; | 9375 TestCompletionCallback callback; |
9376 | 9376 |
9377 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 9377 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
9378 | 9378 |
9379 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 9379 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
9380 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 9380 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
9381 | 9381 |
9382 rv = callback.WaitForResult(); | 9382 rv = callback.WaitForResult(); |
9383 EXPECT_THAT(rv, IsOk()); | 9383 EXPECT_THAT(rv, IsOk()); |
9384 | 9384 |
9385 const HttpResponseInfo* response = trans.GetResponseInfo(); | 9385 const HttpResponseInfo* response = trans.GetResponseInfo(); |
9386 ASSERT_TRUE(response); | 9386 ASSERT_TRUE(response); |
9387 | 9387 |
9388 EXPECT_TRUE(response->headers); | 9388 EXPECT_TRUE(response->headers); |
9389 EXPECT_EQ("HTTP/1.0 200 OK", response->headers->GetStatusLine()); | 9389 EXPECT_EQ("HTTP/1.0 200 OK", response->headers->GetStatusLine()); |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9446 | 9446 |
9447 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), | 9447 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), |
9448 data_writes2, arraysize(data_writes2)); | 9448 data_writes2, arraysize(data_writes2)); |
9449 session_deps_.socket_factory->AddSocketDataProvider(&data2); | 9449 session_deps_.socket_factory->AddSocketDataProvider(&data2); |
9450 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 9450 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
9451 | 9451 |
9452 TestCompletionCallback callback1; | 9452 TestCompletionCallback callback1; |
9453 | 9453 |
9454 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 9454 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
9455 | 9455 |
9456 int rv = trans.Start(&request, callback1.callback(), BoundNetLog()); | 9456 int rv = trans.Start(&request, callback1.callback(), NetLogWithSource()); |
9457 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 9457 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
9458 | 9458 |
9459 rv = callback1.WaitForResult(); | 9459 rv = callback1.WaitForResult(); |
9460 EXPECT_THAT(rv, IsOk()); | 9460 EXPECT_THAT(rv, IsOk()); |
9461 | 9461 |
9462 const HttpResponseInfo* response = trans.GetResponseInfo(); | 9462 const HttpResponseInfo* response = trans.GetResponseInfo(); |
9463 ASSERT_TRUE(response); | 9463 ASSERT_TRUE(response); |
9464 EXPECT_TRUE(CheckBasicServerAuth(response->auth_challenge.get())); | 9464 EXPECT_TRUE(CheckBasicServerAuth(response->auth_challenge.get())); |
9465 | 9465 |
9466 TestCompletionCallback callback2; | 9466 TestCompletionCallback callback2; |
(...skipping 30 matching lines...) Expand all Loading... |
9497 session_deps_.socket_factory->AddSocketDataProvider(&data); | 9497 session_deps_.socket_factory->AddSocketDataProvider(&data); |
9498 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 9498 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
9499 | 9499 |
9500 TestCompletionCallback callback; | 9500 TestCompletionCallback callback; |
9501 | 9501 |
9502 session_deps_.socket_factory->ResetNextMockIndexes(); | 9502 session_deps_.socket_factory->ResetNextMockIndexes(); |
9503 | 9503 |
9504 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 9504 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
9505 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 9505 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
9506 | 9506 |
9507 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 9507 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
9508 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 9508 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
9509 | 9509 |
9510 rv = callback.WaitForResult(); | 9510 rv = callback.WaitForResult(); |
9511 EXPECT_THAT(rv, IsError(ERR_TUNNEL_CONNECTION_FAILED)); | 9511 EXPECT_THAT(rv, IsError(ERR_TUNNEL_CONNECTION_FAILED)); |
9512 } | 9512 } |
9513 | 9513 |
9514 TEST_F(HttpNetworkTransactionTest, LargeContentLengthThenClose) { | 9514 TEST_F(HttpNetworkTransactionTest, LargeContentLengthThenClose) { |
9515 HttpRequestInfo request; | 9515 HttpRequestInfo request; |
9516 request.method = "GET"; | 9516 request.method = "GET"; |
9517 request.url = GURL("http://www.example.org/"); | 9517 request.url = GURL("http://www.example.org/"); |
9518 request.load_flags = 0; | 9518 request.load_flags = 0; |
9519 | 9519 |
9520 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 9520 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
9521 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 9521 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
9522 | 9522 |
9523 MockRead data_reads[] = { | 9523 MockRead data_reads[] = { |
9524 MockRead("HTTP/1.0 200 OK\r\nContent-Length:6719476739\r\n\r\n"), | 9524 MockRead("HTTP/1.0 200 OK\r\nContent-Length:6719476739\r\n\r\n"), |
9525 MockRead(SYNCHRONOUS, OK), | 9525 MockRead(SYNCHRONOUS, OK), |
9526 }; | 9526 }; |
9527 | 9527 |
9528 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 9528 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
9529 session_deps_.socket_factory->AddSocketDataProvider(&data); | 9529 session_deps_.socket_factory->AddSocketDataProvider(&data); |
9530 | 9530 |
9531 TestCompletionCallback callback; | 9531 TestCompletionCallback callback; |
9532 | 9532 |
9533 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 9533 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
9534 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 9534 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
9535 | 9535 |
9536 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 9536 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
9537 | 9537 |
9538 const HttpResponseInfo* response = trans.GetResponseInfo(); | 9538 const HttpResponseInfo* response = trans.GetResponseInfo(); |
9539 ASSERT_TRUE(response); | 9539 ASSERT_TRUE(response); |
9540 | 9540 |
9541 EXPECT_TRUE(response->headers); | 9541 EXPECT_TRUE(response->headers); |
9542 EXPECT_EQ("HTTP/1.0 200 OK", response->headers->GetStatusLine()); | 9542 EXPECT_EQ("HTTP/1.0 200 OK", response->headers->GetStatusLine()); |
9543 | 9543 |
(...skipping 27 matching lines...) Expand all Loading... |
9571 MockRead data_reads[] = { | 9571 MockRead data_reads[] = { |
9572 MockRead("HTTP/1.0 200 OK\r\n\r\n"), | 9572 MockRead("HTTP/1.0 200 OK\r\n\r\n"), |
9573 MockRead("hello world"), | 9573 MockRead("hello world"), |
9574 MockRead(SYNCHRONOUS, OK), | 9574 MockRead(SYNCHRONOUS, OK), |
9575 }; | 9575 }; |
9576 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 9576 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
9577 session_deps_.socket_factory->AddSocketDataProvider(&data); | 9577 session_deps_.socket_factory->AddSocketDataProvider(&data); |
9578 | 9578 |
9579 TestCompletionCallback callback; | 9579 TestCompletionCallback callback; |
9580 | 9580 |
9581 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 9581 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
9582 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 9582 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
9583 | 9583 |
9584 rv = callback.WaitForResult(); | 9584 rv = callback.WaitForResult(); |
9585 EXPECT_THAT(rv, IsError(ERR_UPLOAD_FILE_CHANGED)); | 9585 EXPECT_THAT(rv, IsError(ERR_UPLOAD_FILE_CHANGED)); |
9586 | 9586 |
9587 const HttpResponseInfo* response = trans.GetResponseInfo(); | 9587 const HttpResponseInfo* response = trans.GetResponseInfo(); |
9588 ASSERT_TRUE(response); | 9588 ASSERT_TRUE(response); |
9589 | 9589 |
9590 EXPECT_FALSE(response->headers); | 9590 EXPECT_FALSE(response->headers); |
9591 | 9591 |
(...skipping 22 matching lines...) Expand all Loading... |
9614 | 9614 |
9615 // If we try to upload an unreadable file, the transaction should fail. | 9615 // If we try to upload an unreadable file, the transaction should fail. |
9616 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 9616 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
9617 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 9617 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
9618 | 9618 |
9619 StaticSocketDataProvider data(NULL, 0, NULL, 0); | 9619 StaticSocketDataProvider data(NULL, 0, NULL, 0); |
9620 session_deps_.socket_factory->AddSocketDataProvider(&data); | 9620 session_deps_.socket_factory->AddSocketDataProvider(&data); |
9621 | 9621 |
9622 TestCompletionCallback callback; | 9622 TestCompletionCallback callback; |
9623 | 9623 |
9624 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 9624 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
9625 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 9625 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
9626 | 9626 |
9627 rv = callback.WaitForResult(); | 9627 rv = callback.WaitForResult(); |
9628 EXPECT_THAT(rv, IsError(ERR_ACCESS_DENIED)); | 9628 EXPECT_THAT(rv, IsError(ERR_ACCESS_DENIED)); |
9629 | 9629 |
9630 base::DeleteFile(temp_file, false); | 9630 base::DeleteFile(temp_file, false); |
9631 } | 9631 } |
9632 | 9632 |
9633 TEST_F(HttpNetworkTransactionTest, CancelDuringInitRequestBody) { | 9633 TEST_F(HttpNetworkTransactionTest, CancelDuringInitRequestBody) { |
9634 class FakeUploadElementReader : public UploadElementReader { | 9634 class FakeUploadElementReader : public UploadElementReader { |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9667 request.load_flags = 0; | 9667 request.load_flags = 0; |
9668 | 9668 |
9669 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 9669 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
9670 std::unique_ptr<HttpNetworkTransaction> trans( | 9670 std::unique_ptr<HttpNetworkTransaction> trans( |
9671 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 9671 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
9672 | 9672 |
9673 StaticSocketDataProvider data; | 9673 StaticSocketDataProvider data; |
9674 session_deps_.socket_factory->AddSocketDataProvider(&data); | 9674 session_deps_.socket_factory->AddSocketDataProvider(&data); |
9675 | 9675 |
9676 TestCompletionCallback callback; | 9676 TestCompletionCallback callback; |
9677 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 9677 int rv = trans->Start(&request, callback.callback(), NetLogWithSource()); |
9678 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 9678 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
9679 base::RunLoop().RunUntilIdle(); | 9679 base::RunLoop().RunUntilIdle(); |
9680 | 9680 |
9681 // Transaction is pending on request body initialization. | 9681 // Transaction is pending on request body initialization. |
9682 ASSERT_FALSE(fake_reader->callback().is_null()); | 9682 ASSERT_FALSE(fake_reader->callback().is_null()); |
9683 | 9683 |
9684 // Return Init()'s result after the transaction gets destroyed. | 9684 // Return Init()'s result after the transaction gets destroyed. |
9685 trans.reset(); | 9685 trans.reset(); |
9686 fake_reader->callback().Run(OK); // Should not crash. | 9686 fake_reader->callback().Run(OK); // Should not crash. |
9687 } | 9687 } |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9772 session_deps_.socket_factory->AddSocketDataProvider(&data4); | 9772 session_deps_.socket_factory->AddSocketDataProvider(&data4); |
9773 | 9773 |
9774 TestCompletionCallback callback1; | 9774 TestCompletionCallback callback1; |
9775 | 9775 |
9776 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 9776 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
9777 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 9777 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
9778 | 9778 |
9779 // Issue the first request with Authorize headers. There should be a | 9779 // Issue the first request with Authorize headers. There should be a |
9780 // password prompt for first_realm waiting to be filled in after the | 9780 // password prompt for first_realm waiting to be filled in after the |
9781 // transaction completes. | 9781 // transaction completes. |
9782 int rv = trans.Start(&request, callback1.callback(), BoundNetLog()); | 9782 int rv = trans.Start(&request, callback1.callback(), NetLogWithSource()); |
9783 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 9783 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
9784 rv = callback1.WaitForResult(); | 9784 rv = callback1.WaitForResult(); |
9785 EXPECT_THAT(rv, IsOk()); | 9785 EXPECT_THAT(rv, IsOk()); |
9786 const HttpResponseInfo* response = trans.GetResponseInfo(); | 9786 const HttpResponseInfo* response = trans.GetResponseInfo(); |
9787 ASSERT_TRUE(response); | 9787 ASSERT_TRUE(response); |
9788 const AuthChallengeInfo* challenge = response->auth_challenge.get(); | 9788 const AuthChallengeInfo* challenge = response->auth_challenge.get(); |
9789 ASSERT_TRUE(challenge); | 9789 ASSERT_TRUE(challenge); |
9790 EXPECT_FALSE(challenge->is_proxy); | 9790 EXPECT_FALSE(challenge->is_proxy); |
9791 EXPECT_EQ("http://www.example.org", challenge->challenger.Serialize()); | 9791 EXPECT_EQ("http://www.example.org", challenge->challenger.Serialize()); |
9792 EXPECT_EQ("first_realm", challenge->realm); | 9792 EXPECT_EQ("first_realm", challenge->realm); |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9859 session_deps_.socket_factory->AddSocketDataProvider(&data); | 9859 session_deps_.socket_factory->AddSocketDataProvider(&data); |
9860 | 9860 |
9861 SSLSocketDataProvider ssl(ASYNC, OK); | 9861 SSLSocketDataProvider ssl(ASYNC, OK); |
9862 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 9862 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
9863 | 9863 |
9864 TestCompletionCallback callback; | 9864 TestCompletionCallback callback; |
9865 | 9865 |
9866 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 9866 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
9867 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 9867 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
9868 | 9868 |
9869 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 9869 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
9870 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 9870 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
9871 | 9871 |
9872 url::SchemeHostPort test_server(request.url); | 9872 url::SchemeHostPort test_server(request.url); |
9873 HttpServerProperties* http_server_properties = | 9873 HttpServerProperties* http_server_properties = |
9874 session->http_server_properties(); | 9874 session->http_server_properties(); |
9875 AlternativeServiceVector alternative_service_vector = | 9875 AlternativeServiceVector alternative_service_vector = |
9876 http_server_properties->GetAlternativeServices(test_server); | 9876 http_server_properties->GetAlternativeServices(test_server); |
9877 EXPECT_TRUE(alternative_service_vector.empty()); | 9877 EXPECT_TRUE(alternative_service_vector.empty()); |
9878 | 9878 |
9879 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 9879 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9922 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 9922 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
9923 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 9923 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
9924 | 9924 |
9925 url::SchemeHostPort test_server(request.url); | 9925 url::SchemeHostPort test_server(request.url); |
9926 HttpServerProperties* http_server_properties = | 9926 HttpServerProperties* http_server_properties = |
9927 session->http_server_properties(); | 9927 session->http_server_properties(); |
9928 AlternativeServiceVector alternative_service_vector = | 9928 AlternativeServiceVector alternative_service_vector = |
9929 http_server_properties->GetAlternativeServices(test_server); | 9929 http_server_properties->GetAlternativeServices(test_server); |
9930 EXPECT_TRUE(alternative_service_vector.empty()); | 9930 EXPECT_TRUE(alternative_service_vector.empty()); |
9931 | 9931 |
9932 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 9932 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
9933 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 9933 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
9934 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 9934 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
9935 | 9935 |
9936 const HttpResponseInfo* response = trans.GetResponseInfo(); | 9936 const HttpResponseInfo* response = trans.GetResponseInfo(); |
9937 ASSERT_TRUE(response); | 9937 ASSERT_TRUE(response); |
9938 ASSERT_TRUE(response->headers); | 9938 ASSERT_TRUE(response->headers); |
9939 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 9939 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
9940 EXPECT_FALSE(response->was_fetched_via_spdy); | 9940 EXPECT_FALSE(response->was_fetched_via_spdy); |
9941 EXPECT_FALSE(response->was_alpn_negotiated); | 9941 EXPECT_FALSE(response->was_alpn_negotiated); |
9942 | 9942 |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9984 AlternativeService alternative_service( | 9984 AlternativeService alternative_service( |
9985 AlternateProtocolFromNextProto(kProtoHTTP2), "different.example.org", | 9985 AlternateProtocolFromNextProto(kProtoHTTP2), "different.example.org", |
9986 444); | 9986 444); |
9987 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); | 9987 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); |
9988 http_server_properties->SetAlternativeService( | 9988 http_server_properties->SetAlternativeService( |
9989 url::SchemeHostPort(request.url), alternative_service, expiration); | 9989 url::SchemeHostPort(request.url), alternative_service, expiration); |
9990 | 9990 |
9991 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 9991 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
9992 TestCompletionCallback callback; | 9992 TestCompletionCallback callback; |
9993 | 9993 |
9994 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 9994 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
9995 // Alternative service is not used, request fails. | 9995 // Alternative service is not used, request fails. |
9996 EXPECT_THAT(callback.GetResult(rv), IsError(ERR_CONNECTION_REFUSED)); | 9996 EXPECT_THAT(callback.GetResult(rv), IsError(ERR_CONNECTION_REFUSED)); |
9997 } | 9997 } |
9998 | 9998 |
9999 // Regression test for https://crbug.com/615497: | 9999 // Regression test for https://crbug.com/615497: |
10000 // Alternative Services should be disabled for http origin. | 10000 // Alternative Services should be disabled for http origin. |
10001 TEST_F(HttpNetworkTransactionTest, | 10001 TEST_F(HttpNetworkTransactionTest, |
10002 DisableAlternativeServicesForInsecureOrigin) { | 10002 DisableAlternativeServicesForInsecureOrigin) { |
10003 HttpRequestInfo request; | 10003 HttpRequestInfo request; |
10004 request.method = "GET"; | 10004 request.method = "GET"; |
(...skipping 19 matching lines...) Expand all Loading... |
10024 session->http_server_properties(); | 10024 session->http_server_properties(); |
10025 AlternativeService alternative_service( | 10025 AlternativeService alternative_service( |
10026 AlternateProtocolFromNextProto(kProtoHTTP2), "", 444); | 10026 AlternateProtocolFromNextProto(kProtoHTTP2), "", 444); |
10027 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); | 10027 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); |
10028 http_server_properties->SetAlternativeService( | 10028 http_server_properties->SetAlternativeService( |
10029 url::SchemeHostPort(request.url), alternative_service, expiration); | 10029 url::SchemeHostPort(request.url), alternative_service, expiration); |
10030 | 10030 |
10031 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 10031 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
10032 TestCompletionCallback callback; | 10032 TestCompletionCallback callback; |
10033 | 10033 |
10034 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 10034 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
10035 // Alternative service is not used, request fails. | 10035 // Alternative service is not used, request fails. |
10036 EXPECT_THAT(callback.GetResult(rv), IsError(ERR_CONNECTION_REFUSED)); | 10036 EXPECT_THAT(callback.GetResult(rv), IsError(ERR_CONNECTION_REFUSED)); |
10037 } | 10037 } |
10038 | 10038 |
10039 TEST_F(HttpNetworkTransactionTest, ClearAlternativeServices) { | 10039 TEST_F(HttpNetworkTransactionTest, ClearAlternativeServices) { |
10040 // Set an alternative service for origin. | 10040 // Set an alternative service for origin. |
10041 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 10041 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
10042 HttpServerProperties* http_server_properties = | 10042 HttpServerProperties* http_server_properties = |
10043 session->http_server_properties(); | 10043 session->http_server_properties(); |
10044 url::SchemeHostPort test_server("https", "www.example.org", 443); | 10044 url::SchemeHostPort test_server("https", "www.example.org", 443); |
(...skipping 21 matching lines...) Expand all Loading... |
10066 | 10066 |
10067 HttpRequestInfo request; | 10067 HttpRequestInfo request; |
10068 request.method = "GET"; | 10068 request.method = "GET"; |
10069 request.url = GURL("https://www.example.org/"); | 10069 request.url = GURL("https://www.example.org/"); |
10070 request.load_flags = 0; | 10070 request.load_flags = 0; |
10071 | 10071 |
10072 TestCompletionCallback callback; | 10072 TestCompletionCallback callback; |
10073 | 10073 |
10074 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 10074 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
10075 | 10075 |
10076 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 10076 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
10077 EXPECT_THAT(callback.GetResult(rv), IsOk()); | 10077 EXPECT_THAT(callback.GetResult(rv), IsOk()); |
10078 | 10078 |
10079 const HttpResponseInfo* response = trans.GetResponseInfo(); | 10079 const HttpResponseInfo* response = trans.GetResponseInfo(); |
10080 ASSERT_TRUE(response); | 10080 ASSERT_TRUE(response); |
10081 ASSERT_TRUE(response->headers); | 10081 ASSERT_TRUE(response->headers); |
10082 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 10082 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
10083 EXPECT_FALSE(response->was_fetched_via_spdy); | 10083 EXPECT_FALSE(response->was_fetched_via_spdy); |
10084 EXPECT_FALSE(response->was_alpn_negotiated); | 10084 EXPECT_FALSE(response->was_alpn_negotiated); |
10085 | 10085 |
10086 std::string response_data; | 10086 std::string response_data; |
(...skipping 23 matching lines...) Expand all Loading... |
10110 session_deps_.socket_factory->AddSocketDataProvider(&data); | 10110 session_deps_.socket_factory->AddSocketDataProvider(&data); |
10111 | 10111 |
10112 SSLSocketDataProvider ssl(ASYNC, OK); | 10112 SSLSocketDataProvider ssl(ASYNC, OK); |
10113 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 10113 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
10114 | 10114 |
10115 TestCompletionCallback callback; | 10115 TestCompletionCallback callback; |
10116 | 10116 |
10117 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 10117 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
10118 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 10118 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
10119 | 10119 |
10120 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 10120 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
10121 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 10121 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
10122 | 10122 |
10123 url::SchemeHostPort test_server("https", "www.example.org", 443); | 10123 url::SchemeHostPort test_server("https", "www.example.org", 443); |
10124 HttpServerProperties* http_server_properties = | 10124 HttpServerProperties* http_server_properties = |
10125 session->http_server_properties(); | 10125 session->http_server_properties(); |
10126 AlternativeServiceVector alternative_service_vector = | 10126 AlternativeServiceVector alternative_service_vector = |
10127 http_server_properties->GetAlternativeServices(test_server); | 10127 http_server_properties->GetAlternativeServices(test_server); |
10128 EXPECT_TRUE(alternative_service_vector.empty()); | 10128 EXPECT_TRUE(alternative_service_vector.empty()); |
10129 | 10129 |
10130 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 10130 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10198 | 10198 |
10199 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 10199 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
10200 HttpRequestInfo request; | 10200 HttpRequestInfo request; |
10201 request.method = "GET"; | 10201 request.method = "GET"; |
10202 request.url = GURL(origin_url); | 10202 request.url = GURL(origin_url); |
10203 request.load_flags = 0; | 10203 request.load_flags = 0; |
10204 TestCompletionCallback callback; | 10204 TestCompletionCallback callback; |
10205 NetErrorDetails details; | 10205 NetErrorDetails details; |
10206 EXPECT_FALSE(details.quic_broken); | 10206 EXPECT_FALSE(details.quic_broken); |
10207 | 10207 |
10208 trans.Start(&request, callback.callback(), BoundNetLog()); | 10208 trans.Start(&request, callback.callback(), NetLogWithSource()); |
10209 trans.PopulateNetErrorDetails(&details); | 10209 trans.PopulateNetErrorDetails(&details); |
10210 EXPECT_TRUE(details.quic_broken); | 10210 EXPECT_TRUE(details.quic_broken); |
10211 } | 10211 } |
10212 | 10212 |
10213 TEST_F(HttpNetworkTransactionTest, IdentifyQuicNotBroken) { | 10213 TEST_F(HttpNetworkTransactionTest, IdentifyQuicNotBroken) { |
10214 url::SchemeHostPort server("https", "origin.example.org", 443); | 10214 url::SchemeHostPort server("https", "origin.example.org", 443); |
10215 HostPortPair alternative1("alternative1.example.org", 443); | 10215 HostPortPair alternative1("alternative1.example.org", 443); |
10216 HostPortPair alternative2("alternative2.example.org", 443); | 10216 HostPortPair alternative2("alternative2.example.org", 443); |
10217 std::string origin_url = "https://origin.example.org:443"; | 10217 std::string origin_url = "https://origin.example.org:443"; |
10218 std::string alternative_url1 = "https://alternative1.example.org:443"; | 10218 std::string alternative_url1 = "https://alternative1.example.org:443"; |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10272 | 10272 |
10273 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 10273 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
10274 HttpRequestInfo request; | 10274 HttpRequestInfo request; |
10275 request.method = "GET"; | 10275 request.method = "GET"; |
10276 request.url = GURL(origin_url); | 10276 request.url = GURL(origin_url); |
10277 request.load_flags = 0; | 10277 request.load_flags = 0; |
10278 TestCompletionCallback callback; | 10278 TestCompletionCallback callback; |
10279 NetErrorDetails details; | 10279 NetErrorDetails details; |
10280 EXPECT_FALSE(details.quic_broken); | 10280 EXPECT_FALSE(details.quic_broken); |
10281 | 10281 |
10282 trans.Start(&request, callback.callback(), BoundNetLog()); | 10282 trans.Start(&request, callback.callback(), NetLogWithSource()); |
10283 trans.PopulateNetErrorDetails(&details); | 10283 trans.PopulateNetErrorDetails(&details); |
10284 EXPECT_FALSE(details.quic_broken); | 10284 EXPECT_FALSE(details.quic_broken); |
10285 } | 10285 } |
10286 | 10286 |
10287 TEST_F(HttpNetworkTransactionTest, MarkBrokenAlternateProtocolAndFallback) { | 10287 TEST_F(HttpNetworkTransactionTest, MarkBrokenAlternateProtocolAndFallback) { |
10288 HttpRequestInfo request; | 10288 HttpRequestInfo request; |
10289 request.method = "GET"; | 10289 request.method = "GET"; |
10290 request.url = GURL("https://www.example.org/"); | 10290 request.url = GURL("https://www.example.org/"); |
10291 request.load_flags = 0; | 10291 request.load_flags = 0; |
10292 | 10292 |
(...skipping 24 matching lines...) Expand all Loading... |
10317 const AlternativeService alternative_service( | 10317 const AlternativeService alternative_service( |
10318 AlternateProtocolFromNextProto(kProtoHTTP2), "www.example.org", | 10318 AlternateProtocolFromNextProto(kProtoHTTP2), "www.example.org", |
10319 666); // Port is ignored by MockConnect anyway. | 10319 666); // Port is ignored by MockConnect anyway. |
10320 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); | 10320 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); |
10321 http_server_properties->SetAlternativeService(server, alternative_service, | 10321 http_server_properties->SetAlternativeService(server, alternative_service, |
10322 expiration); | 10322 expiration); |
10323 | 10323 |
10324 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 10324 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
10325 TestCompletionCallback callback; | 10325 TestCompletionCallback callback; |
10326 | 10326 |
10327 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 10327 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
10328 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 10328 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
10329 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 10329 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
10330 | 10330 |
10331 const HttpResponseInfo* response = trans.GetResponseInfo(); | 10331 const HttpResponseInfo* response = trans.GetResponseInfo(); |
10332 ASSERT_TRUE(response); | 10332 ASSERT_TRUE(response); |
10333 ASSERT_TRUE(response->headers); | 10333 ASSERT_TRUE(response->headers); |
10334 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 10334 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
10335 | 10335 |
10336 std::string response_data; | 10336 std::string response_data; |
10337 ASSERT_THAT(ReadTransaction(&trans, &response_data), IsOk()); | 10337 ASSERT_THAT(ReadTransaction(&trans, &response_data), IsOk()); |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10381 AlternateProtocolFromNextProto(kProtoHTTP2), "www.example.org", | 10381 AlternateProtocolFromNextProto(kProtoHTTP2), "www.example.org", |
10382 kUnrestrictedAlternatePort); | 10382 kUnrestrictedAlternatePort); |
10383 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); | 10383 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); |
10384 http_server_properties->SetAlternativeService( | 10384 http_server_properties->SetAlternativeService( |
10385 url::SchemeHostPort(restricted_port_request.url), alternative_service, | 10385 url::SchemeHostPort(restricted_port_request.url), alternative_service, |
10386 expiration); | 10386 expiration); |
10387 | 10387 |
10388 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 10388 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
10389 TestCompletionCallback callback; | 10389 TestCompletionCallback callback; |
10390 | 10390 |
10391 int rv = | 10391 int rv = trans.Start(&restricted_port_request, callback.callback(), |
10392 trans.Start(&restricted_port_request, callback.callback(), BoundNetLog()); | 10392 NetLogWithSource()); |
10393 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 10393 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
10394 // Invalid change to unrestricted port should fail. | 10394 // Invalid change to unrestricted port should fail. |
10395 EXPECT_THAT(callback.WaitForResult(), IsError(ERR_CONNECTION_REFUSED)); | 10395 EXPECT_THAT(callback.WaitForResult(), IsError(ERR_CONNECTION_REFUSED)); |
10396 } | 10396 } |
10397 | 10397 |
10398 // Ensure that we are allowed to redirect traffic via an alternate protocol to | 10398 // Ensure that we are allowed to redirect traffic via an alternate protocol to |
10399 // an unrestricted (port >= 1024) when the original traffic was on a restricted | 10399 // an unrestricted (port >= 1024) when the original traffic was on a restricted |
10400 // port (port < 1024) if we set |enable_user_alternate_protocol_ports|. | 10400 // port (port < 1024) if we set |enable_user_alternate_protocol_ports|. |
10401 TEST_F(HttpNetworkTransactionTest, AlternateProtocolPortRestrictedPermitted) { | 10401 TEST_F(HttpNetworkTransactionTest, AlternateProtocolPortRestrictedPermitted) { |
10402 session_deps_.enable_user_alternate_protocol_ports = true; | 10402 session_deps_.enable_user_alternate_protocol_ports = true; |
(...skipping 29 matching lines...) Expand all Loading... |
10432 AlternateProtocolFromNextProto(kProtoHTTP2), "www.example.org", | 10432 AlternateProtocolFromNextProto(kProtoHTTP2), "www.example.org", |
10433 kUnrestrictedAlternatePort); | 10433 kUnrestrictedAlternatePort); |
10434 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); | 10434 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); |
10435 http_server_properties->SetAlternativeService( | 10435 http_server_properties->SetAlternativeService( |
10436 url::SchemeHostPort(restricted_port_request.url), alternative_service, | 10436 url::SchemeHostPort(restricted_port_request.url), alternative_service, |
10437 expiration); | 10437 expiration); |
10438 | 10438 |
10439 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 10439 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
10440 TestCompletionCallback callback; | 10440 TestCompletionCallback callback; |
10441 | 10441 |
10442 EXPECT_EQ(ERR_IO_PENDING, trans.Start(&restricted_port_request, | 10442 EXPECT_EQ(ERR_IO_PENDING, |
10443 callback.callback(), BoundNetLog())); | 10443 trans.Start(&restricted_port_request, callback.callback(), |
| 10444 NetLogWithSource())); |
10444 // Change to unrestricted port should succeed. | 10445 // Change to unrestricted port should succeed. |
10445 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 10446 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
10446 } | 10447 } |
10447 | 10448 |
10448 // Ensure that we are not allowed to redirect traffic via an alternate protocol | 10449 // Ensure that we are not allowed to redirect traffic via an alternate protocol |
10449 // to an unrestricted (port >= 1024) when the original traffic was on a | 10450 // to an unrestricted (port >= 1024) when the original traffic was on a |
10450 // restricted port (port < 1024). Ensure that we can redirect in all other | 10451 // restricted port (port < 1024). Ensure that we can redirect in all other |
10451 // cases. | 10452 // cases. |
10452 TEST_F(HttpNetworkTransactionTest, AlternateProtocolPortRestrictedAllowed) { | 10453 TEST_F(HttpNetworkTransactionTest, AlternateProtocolPortRestrictedAllowed) { |
10453 HttpRequestInfo restricted_port_request; | 10454 HttpRequestInfo restricted_port_request; |
(...skipping 27 matching lines...) Expand all Loading... |
10481 AlternateProtocolFromNextProto(kProtoHTTP2), "www.example.org", | 10482 AlternateProtocolFromNextProto(kProtoHTTP2), "www.example.org", |
10482 kRestrictedAlternatePort); | 10483 kRestrictedAlternatePort); |
10483 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); | 10484 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); |
10484 http_server_properties->SetAlternativeService( | 10485 http_server_properties->SetAlternativeService( |
10485 url::SchemeHostPort(restricted_port_request.url), alternative_service, | 10486 url::SchemeHostPort(restricted_port_request.url), alternative_service, |
10486 expiration); | 10487 expiration); |
10487 | 10488 |
10488 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 10489 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
10489 TestCompletionCallback callback; | 10490 TestCompletionCallback callback; |
10490 | 10491 |
10491 int rv = | 10492 int rv = trans.Start(&restricted_port_request, callback.callback(), |
10492 trans.Start(&restricted_port_request, callback.callback(), BoundNetLog()); | 10493 NetLogWithSource()); |
10493 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 10494 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
10494 // Valid change to restricted port should pass. | 10495 // Valid change to restricted port should pass. |
10495 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 10496 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
10496 } | 10497 } |
10497 | 10498 |
10498 // Ensure that we are not allowed to redirect traffic via an alternate protocol | 10499 // Ensure that we are not allowed to redirect traffic via an alternate protocol |
10499 // to an unrestricted (port >= 1024) when the original traffic was on a | 10500 // to an unrestricted (port >= 1024) when the original traffic was on a |
10500 // restricted port (port < 1024). Ensure that we can redirect in all other | 10501 // restricted port (port < 1024). Ensure that we can redirect in all other |
10501 // cases. | 10502 // cases. |
10502 TEST_F(HttpNetworkTransactionTest, AlternateProtocolPortUnrestrictedAllowed1) { | 10503 TEST_F(HttpNetworkTransactionTest, AlternateProtocolPortUnrestrictedAllowed1) { |
(...skipping 29 matching lines...) Expand all Loading... |
10532 kRestrictedAlternatePort); | 10533 kRestrictedAlternatePort); |
10533 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); | 10534 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); |
10534 http_server_properties->SetAlternativeService( | 10535 http_server_properties->SetAlternativeService( |
10535 url::SchemeHostPort(unrestricted_port_request.url), alternative_service, | 10536 url::SchemeHostPort(unrestricted_port_request.url), alternative_service, |
10536 expiration); | 10537 expiration); |
10537 | 10538 |
10538 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 10539 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
10539 TestCompletionCallback callback; | 10540 TestCompletionCallback callback; |
10540 | 10541 |
10541 int rv = trans.Start(&unrestricted_port_request, callback.callback(), | 10542 int rv = trans.Start(&unrestricted_port_request, callback.callback(), |
10542 BoundNetLog()); | 10543 NetLogWithSource()); |
10543 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 10544 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
10544 // Valid change to restricted port should pass. | 10545 // Valid change to restricted port should pass. |
10545 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 10546 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
10546 } | 10547 } |
10547 | 10548 |
10548 // Ensure that we are not allowed to redirect traffic via an alternate protocol | 10549 // Ensure that we are not allowed to redirect traffic via an alternate protocol |
10549 // to an unrestricted (port >= 1024) when the original traffic was on a | 10550 // to an unrestricted (port >= 1024) when the original traffic was on a |
10550 // restricted port (port < 1024). Ensure that we can redirect in all other | 10551 // restricted port (port < 1024). Ensure that we can redirect in all other |
10551 // cases. | 10552 // cases. |
10552 TEST_F(HttpNetworkTransactionTest, AlternateProtocolPortUnrestrictedAllowed2) { | 10553 TEST_F(HttpNetworkTransactionTest, AlternateProtocolPortUnrestrictedAllowed2) { |
(...skipping 29 matching lines...) Expand all Loading... |
10582 kUnrestrictedAlternatePort); | 10583 kUnrestrictedAlternatePort); |
10583 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); | 10584 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); |
10584 http_server_properties->SetAlternativeService( | 10585 http_server_properties->SetAlternativeService( |
10585 url::SchemeHostPort(unrestricted_port_request.url), alternative_service, | 10586 url::SchemeHostPort(unrestricted_port_request.url), alternative_service, |
10586 expiration); | 10587 expiration); |
10587 | 10588 |
10588 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 10589 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
10589 TestCompletionCallback callback; | 10590 TestCompletionCallback callback; |
10590 | 10591 |
10591 int rv = trans.Start(&unrestricted_port_request, callback.callback(), | 10592 int rv = trans.Start(&unrestricted_port_request, callback.callback(), |
10592 BoundNetLog()); | 10593 NetLogWithSource()); |
10593 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 10594 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
10594 // Valid change to an unrestricted port should pass. | 10595 // Valid change to an unrestricted port should pass. |
10595 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 10596 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
10596 } | 10597 } |
10597 | 10598 |
10598 // Ensure that we are not allowed to redirect traffic via an alternate protocol | 10599 // Ensure that we are not allowed to redirect traffic via an alternate protocol |
10599 // to an unsafe port, and that we resume the second HttpStreamFactoryImpl::Job | 10600 // to an unsafe port, and that we resume the second HttpStreamFactoryImpl::Job |
10600 // once the alternate protocol request fails. | 10601 // once the alternate protocol request fails. |
10601 TEST_F(HttpNetworkTransactionTest, AlternateProtocolUnsafeBlocked) { | 10602 TEST_F(HttpNetworkTransactionTest, AlternateProtocolUnsafeBlocked) { |
10602 HttpRequestInfo request; | 10603 HttpRequestInfo request; |
(...skipping 20 matching lines...) Expand all Loading... |
10623 AlternativeService alternative_service( | 10624 AlternativeService alternative_service( |
10624 AlternateProtocolFromNextProto(kProtoHTTP2), "www.example.org", | 10625 AlternateProtocolFromNextProto(kProtoHTTP2), "www.example.org", |
10625 kUnsafePort); | 10626 kUnsafePort); |
10626 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); | 10627 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); |
10627 http_server_properties->SetAlternativeService( | 10628 http_server_properties->SetAlternativeService( |
10628 url::SchemeHostPort(request.url), alternative_service, expiration); | 10629 url::SchemeHostPort(request.url), alternative_service, expiration); |
10629 | 10630 |
10630 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 10631 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
10631 TestCompletionCallback callback; | 10632 TestCompletionCallback callback; |
10632 | 10633 |
10633 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 10634 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
10634 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 10635 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
10635 // The HTTP request should succeed. | 10636 // The HTTP request should succeed. |
10636 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 10637 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
10637 | 10638 |
10638 const HttpResponseInfo* response = trans.GetResponseInfo(); | 10639 const HttpResponseInfo* response = trans.GetResponseInfo(); |
10639 ASSERT_TRUE(response); | 10640 ASSERT_TRUE(response); |
10640 ASSERT_TRUE(response->headers); | 10641 ASSERT_TRUE(response->headers); |
10641 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 10642 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
10642 | 10643 |
10643 std::string response_data; | 10644 std::string response_data; |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10694 never_finishing_connect); | 10695 never_finishing_connect); |
10695 session_deps_.socket_factory->AddSocketDataProvider( | 10696 session_deps_.socket_factory->AddSocketDataProvider( |
10696 &hanging_non_alternate_protocol_socket); | 10697 &hanging_non_alternate_protocol_socket); |
10697 | 10698 |
10698 TestCompletionCallback callback; | 10699 TestCompletionCallback callback; |
10699 | 10700 |
10700 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 10701 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
10701 std::unique_ptr<HttpNetworkTransaction> trans( | 10702 std::unique_ptr<HttpNetworkTransaction> trans( |
10702 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 10703 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
10703 | 10704 |
10704 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 10705 int rv = trans->Start(&request, callback.callback(), NetLogWithSource()); |
10705 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 10706 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
10706 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 10707 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
10707 | 10708 |
10708 const HttpResponseInfo* response = trans->GetResponseInfo(); | 10709 const HttpResponseInfo* response = trans->GetResponseInfo(); |
10709 ASSERT_TRUE(response); | 10710 ASSERT_TRUE(response); |
10710 ASSERT_TRUE(response->headers); | 10711 ASSERT_TRUE(response->headers); |
10711 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 10712 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
10712 | 10713 |
10713 std::string response_data; | 10714 std::string response_data; |
10714 ASSERT_THAT(ReadTransaction(trans.get(), &response_data), IsOk()); | 10715 ASSERT_THAT(ReadTransaction(trans.get(), &response_data), IsOk()); |
10715 EXPECT_EQ("hello world", response_data); | 10716 EXPECT_EQ("hello world", response_data); |
10716 | 10717 |
10717 trans.reset(new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 10718 trans.reset(new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
10718 | 10719 |
10719 rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 10720 rv = trans->Start(&request, callback.callback(), NetLogWithSource()); |
10720 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 10721 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
10721 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 10722 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
10722 | 10723 |
10723 response = trans->GetResponseInfo(); | 10724 response = trans->GetResponseInfo(); |
10724 ASSERT_TRUE(response); | 10725 ASSERT_TRUE(response); |
10725 ASSERT_TRUE(response->headers); | 10726 ASSERT_TRUE(response->headers); |
10726 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); | 10727 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); |
10727 EXPECT_TRUE(response->was_fetched_via_spdy); | 10728 EXPECT_TRUE(response->was_fetched_via_spdy); |
10728 EXPECT_TRUE(response->was_alpn_negotiated); | 10729 EXPECT_TRUE(response->was_alpn_negotiated); |
10729 | 10730 |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10797 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_http2); | 10798 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_http2); |
10798 | 10799 |
10799 StaticSocketDataProvider hanging_socket3(NULL, 0, NULL, 0); | 10800 StaticSocketDataProvider hanging_socket3(NULL, 0, NULL, 0); |
10800 hanging_socket3.set_connect_data(never_finishing_connect); | 10801 hanging_socket3.set_connect_data(never_finishing_connect); |
10801 session_deps_.socket_factory->AddSocketDataProvider(&hanging_socket3); | 10802 session_deps_.socket_factory->AddSocketDataProvider(&hanging_socket3); |
10802 | 10803 |
10803 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 10804 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
10804 TestCompletionCallback callback1; | 10805 TestCompletionCallback callback1; |
10805 HttpNetworkTransaction trans1(DEFAULT_PRIORITY, session.get()); | 10806 HttpNetworkTransaction trans1(DEFAULT_PRIORITY, session.get()); |
10806 | 10807 |
10807 int rv = trans1.Start(&request, callback1.callback(), BoundNetLog()); | 10808 int rv = trans1.Start(&request, callback1.callback(), NetLogWithSource()); |
10808 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 10809 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
10809 EXPECT_THAT(callback1.WaitForResult(), IsOk()); | 10810 EXPECT_THAT(callback1.WaitForResult(), IsOk()); |
10810 | 10811 |
10811 const HttpResponseInfo* response = trans1.GetResponseInfo(); | 10812 const HttpResponseInfo* response = trans1.GetResponseInfo(); |
10812 ASSERT_TRUE(response); | 10813 ASSERT_TRUE(response); |
10813 ASSERT_TRUE(response->headers); | 10814 ASSERT_TRUE(response->headers); |
10814 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 10815 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
10815 | 10816 |
10816 std::string response_data; | 10817 std::string response_data; |
10817 ASSERT_THAT(ReadTransaction(&trans1, &response_data), IsOk()); | 10818 ASSERT_THAT(ReadTransaction(&trans1, &response_data), IsOk()); |
10818 EXPECT_EQ("hello world", response_data); | 10819 EXPECT_EQ("hello world", response_data); |
10819 | 10820 |
10820 TestCompletionCallback callback2; | 10821 TestCompletionCallback callback2; |
10821 HttpNetworkTransaction trans2(DEFAULT_PRIORITY, session.get()); | 10822 HttpNetworkTransaction trans2(DEFAULT_PRIORITY, session.get()); |
10822 rv = trans2.Start(&request, callback2.callback(), BoundNetLog()); | 10823 rv = trans2.Start(&request, callback2.callback(), NetLogWithSource()); |
10823 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 10824 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
10824 | 10825 |
10825 TestCompletionCallback callback3; | 10826 TestCompletionCallback callback3; |
10826 HttpNetworkTransaction trans3(DEFAULT_PRIORITY, session.get()); | 10827 HttpNetworkTransaction trans3(DEFAULT_PRIORITY, session.get()); |
10827 rv = trans3.Start(&request, callback3.callback(), BoundNetLog()); | 10828 rv = trans3.Start(&request, callback3.callback(), NetLogWithSource()); |
10828 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 10829 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
10829 | 10830 |
10830 EXPECT_THAT(callback2.WaitForResult(), IsOk()); | 10831 EXPECT_THAT(callback2.WaitForResult(), IsOk()); |
10831 EXPECT_THAT(callback3.WaitForResult(), IsOk()); | 10832 EXPECT_THAT(callback3.WaitForResult(), IsOk()); |
10832 | 10833 |
10833 response = trans2.GetResponseInfo(); | 10834 response = trans2.GetResponseInfo(); |
10834 ASSERT_TRUE(response); | 10835 ASSERT_TRUE(response); |
10835 ASSERT_TRUE(response->headers); | 10836 ASSERT_TRUE(response->headers); |
10836 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); | 10837 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); |
10837 EXPECT_TRUE(response->was_fetched_via_spdy); | 10838 EXPECT_TRUE(response->was_fetched_via_spdy); |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10884 NULL, 0); | 10885 NULL, 0); |
10885 session_deps_.socket_factory->AddSocketDataProvider(&second_transaction); | 10886 session_deps_.socket_factory->AddSocketDataProvider(&second_transaction); |
10886 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 10887 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
10887 | 10888 |
10888 TestCompletionCallback callback; | 10889 TestCompletionCallback callback; |
10889 | 10890 |
10890 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 10891 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
10891 std::unique_ptr<HttpNetworkTransaction> trans( | 10892 std::unique_ptr<HttpNetworkTransaction> trans( |
10892 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 10893 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
10893 | 10894 |
10894 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 10895 int rv = trans->Start(&request, callback.callback(), NetLogWithSource()); |
10895 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 10896 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
10896 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 10897 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
10897 | 10898 |
10898 const HttpResponseInfo* response = trans->GetResponseInfo(); | 10899 const HttpResponseInfo* response = trans->GetResponseInfo(); |
10899 ASSERT_TRUE(response); | 10900 ASSERT_TRUE(response); |
10900 ASSERT_TRUE(response->headers); | 10901 ASSERT_TRUE(response->headers); |
10901 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 10902 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
10902 | 10903 |
10903 std::string response_data; | 10904 std::string response_data; |
10904 ASSERT_THAT(ReadTransaction(trans.get(), &response_data), IsOk()); | 10905 ASSERT_THAT(ReadTransaction(trans.get(), &response_data), IsOk()); |
10905 EXPECT_EQ("hello world", response_data); | 10906 EXPECT_EQ("hello world", response_data); |
10906 | 10907 |
10907 trans.reset(new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 10908 trans.reset(new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
10908 | 10909 |
10909 rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 10910 rv = trans->Start(&request, callback.callback(), NetLogWithSource()); |
10910 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 10911 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
10911 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 10912 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
10912 | 10913 |
10913 response = trans->GetResponseInfo(); | 10914 response = trans->GetResponseInfo(); |
10914 ASSERT_TRUE(response); | 10915 ASSERT_TRUE(response); |
10915 ASSERT_TRUE(response->headers); | 10916 ASSERT_TRUE(response->headers); |
10916 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 10917 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
10917 EXPECT_FALSE(response->was_fetched_via_spdy); | 10918 EXPECT_FALSE(response->was_fetched_via_spdy); |
10918 EXPECT_FALSE(response->was_alpn_negotiated); | 10919 EXPECT_FALSE(response->was_alpn_negotiated); |
10919 | 10920 |
10920 ASSERT_THAT(ReadTransaction(trans.get(), &response_data), IsOk()); | 10921 ASSERT_THAT(ReadTransaction(trans.get(), &response_data), IsOk()); |
10921 EXPECT_EQ("hello world", response_data); | 10922 EXPECT_EQ("hello world", response_data); |
10922 } | 10923 } |
10923 | 10924 |
10924 class CapturingProxyResolver : public ProxyResolver { | 10925 class CapturingProxyResolver : public ProxyResolver { |
10925 public: | 10926 public: |
10926 CapturingProxyResolver() {} | 10927 CapturingProxyResolver() {} |
10927 ~CapturingProxyResolver() override {} | 10928 ~CapturingProxyResolver() override {} |
10928 | 10929 |
10929 int GetProxyForURL(const GURL& url, | 10930 int GetProxyForURL(const GURL& url, |
10930 ProxyInfo* results, | 10931 ProxyInfo* results, |
10931 const CompletionCallback& callback, | 10932 const CompletionCallback& callback, |
10932 RequestHandle* request, | 10933 RequestHandle* request, |
10933 const BoundNetLog& net_log) override { | 10934 const NetLogWithSource& net_log) override { |
10934 ProxyServer proxy_server(ProxyServer::SCHEME_HTTP, | 10935 ProxyServer proxy_server(ProxyServer::SCHEME_HTTP, |
10935 HostPortPair("myproxy", 80)); | 10936 HostPortPair("myproxy", 80)); |
10936 results->UseProxyServer(proxy_server); | 10937 results->UseProxyServer(proxy_server); |
10937 resolved_.push_back(url); | 10938 resolved_.push_back(url); |
10938 return OK; | 10939 return OK; |
10939 } | 10940 } |
10940 | 10941 |
10941 void CancelRequest(RequestHandle request) override { NOTREACHED(); } | 10942 void CancelRequest(RequestHandle request) override { NOTREACHED(); } |
10942 | 10943 |
10943 LoadState GetLoadState(RequestHandle request) const override { | 10944 LoadState GetLoadState(RequestHandle request) const override { |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11038 }; | 11039 }; |
11039 | 11040 |
11040 SequencedSocketData spdy_data(spdy_reads, arraysize(spdy_reads), spdy_writes, | 11041 SequencedSocketData spdy_data(spdy_reads, arraysize(spdy_reads), spdy_writes, |
11041 arraysize(spdy_writes)); | 11042 arraysize(spdy_writes)); |
11042 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); | 11043 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); |
11043 | 11044 |
11044 TestCompletionCallback callback; | 11045 TestCompletionCallback callback; |
11045 | 11046 |
11046 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 11047 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
11047 | 11048 |
11048 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 11049 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
11049 EXPECT_THAT(callback.GetResult(rv), IsOk()); | 11050 EXPECT_THAT(callback.GetResult(rv), IsOk()); |
11050 | 11051 |
11051 const HttpResponseInfo* response = trans.GetResponseInfo(); | 11052 const HttpResponseInfo* response = trans.GetResponseInfo(); |
11052 ASSERT_TRUE(response); | 11053 ASSERT_TRUE(response); |
11053 ASSERT_TRUE(response->headers); | 11054 ASSERT_TRUE(response->headers); |
11054 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); | 11055 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); |
11055 EXPECT_TRUE(response->was_fetched_via_spdy); | 11056 EXPECT_TRUE(response->was_fetched_via_spdy); |
11056 EXPECT_TRUE(response->was_alpn_negotiated); | 11057 EXPECT_TRUE(response->was_alpn_negotiated); |
11057 | 11058 |
11058 std::string response_data; | 11059 std::string response_data; |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11135 never_finishing_connect); | 11136 never_finishing_connect); |
11136 session_deps_.socket_factory->AddSocketDataProvider( | 11137 session_deps_.socket_factory->AddSocketDataProvider( |
11137 &hanging_non_alternate_protocol_socket); | 11138 &hanging_non_alternate_protocol_socket); |
11138 | 11139 |
11139 TestCompletionCallback callback; | 11140 TestCompletionCallback callback; |
11140 | 11141 |
11141 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 11142 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
11142 std::unique_ptr<HttpNetworkTransaction> trans( | 11143 std::unique_ptr<HttpNetworkTransaction> trans( |
11143 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 11144 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
11144 | 11145 |
11145 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 11146 int rv = trans->Start(&request, callback.callback(), NetLogWithSource()); |
11146 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 11147 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
11147 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 11148 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
11148 | 11149 |
11149 const HttpResponseInfo* response = trans->GetResponseInfo(); | 11150 const HttpResponseInfo* response = trans->GetResponseInfo(); |
11150 ASSERT_TRUE(response); | 11151 ASSERT_TRUE(response); |
11151 ASSERT_TRUE(response->headers); | 11152 ASSERT_TRUE(response->headers); |
11152 EXPECT_EQ("HTTP/0.9 200 OK", response->headers->GetStatusLine()); | 11153 EXPECT_EQ("HTTP/0.9 200 OK", response->headers->GetStatusLine()); |
11153 EXPECT_FALSE(response->was_fetched_via_spdy); | 11154 EXPECT_FALSE(response->was_fetched_via_spdy); |
11154 EXPECT_TRUE(response->was_alpn_negotiated); | 11155 EXPECT_TRUE(response->was_alpn_negotiated); |
11155 | 11156 |
11156 std::string response_data; | 11157 std::string response_data; |
11157 ASSERT_THAT(ReadTransaction(trans.get(), &response_data), IsOk()); | 11158 ASSERT_THAT(ReadTransaction(trans.get(), &response_data), IsOk()); |
11158 EXPECT_EQ("hello world", response_data); | 11159 EXPECT_EQ("hello world", response_data); |
11159 | 11160 |
11160 trans.reset(new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 11161 trans.reset(new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
11161 | 11162 |
11162 rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 11163 rv = trans->Start(&request, callback.callback(), NetLogWithSource()); |
11163 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 11164 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
11164 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 11165 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
11165 | 11166 |
11166 response = trans->GetResponseInfo(); | 11167 response = trans->GetResponseInfo(); |
11167 ASSERT_TRUE(response); | 11168 ASSERT_TRUE(response); |
11168 ASSERT_TRUE(response->headers); | 11169 ASSERT_TRUE(response->headers); |
11169 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); | 11170 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); |
11170 EXPECT_TRUE(response->was_fetched_via_spdy); | 11171 EXPECT_TRUE(response->was_fetched_via_spdy); |
11171 EXPECT_TRUE(response->was_alpn_negotiated); | 11172 EXPECT_TRUE(response->was_alpn_negotiated); |
11172 | 11173 |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11227 arraysize(spdy_writes)); | 11228 arraysize(spdy_writes)); |
11228 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); | 11229 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); |
11229 | 11230 |
11230 TestCompletionCallback callback; | 11231 TestCompletionCallback callback; |
11231 | 11232 |
11232 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 11233 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
11233 | 11234 |
11234 std::unique_ptr<HttpNetworkTransaction> trans( | 11235 std::unique_ptr<HttpNetworkTransaction> trans( |
11235 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 11236 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
11236 | 11237 |
11237 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 11238 int rv = trans->Start(&request, callback.callback(), NetLogWithSource()); |
11238 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 11239 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
11239 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 11240 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
11240 | 11241 |
11241 const HttpResponseInfo* response = trans->GetResponseInfo(); | 11242 const HttpResponseInfo* response = trans->GetResponseInfo(); |
11242 ASSERT_TRUE(response); | 11243 ASSERT_TRUE(response); |
11243 ASSERT_TRUE(response->headers); | 11244 ASSERT_TRUE(response->headers); |
11244 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 11245 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
11245 | 11246 |
11246 std::string response_data; | 11247 std::string response_data; |
11247 ASSERT_THAT(ReadTransaction(trans.get(), &response_data), IsOk()); | 11248 ASSERT_THAT(ReadTransaction(trans.get(), &response_data), IsOk()); |
11248 EXPECT_EQ("hello world", response_data); | 11249 EXPECT_EQ("hello world", response_data); |
11249 | 11250 |
11250 // Set up an initial SpdySession in the pool to reuse. | 11251 // Set up an initial SpdySession in the pool to reuse. |
11251 HostPortPair host_port_pair("www.example.org", 443); | 11252 HostPortPair host_port_pair("www.example.org", 443); |
11252 SpdySessionKey key(host_port_pair, ProxyServer::Direct(), | 11253 SpdySessionKey key(host_port_pair, ProxyServer::Direct(), |
11253 PRIVACY_MODE_DISABLED); | 11254 PRIVACY_MODE_DISABLED); |
11254 base::WeakPtr<SpdySession> spdy_session = | 11255 base::WeakPtr<SpdySession> spdy_session = |
11255 CreateSecureSpdySession(session.get(), key, BoundNetLog()); | 11256 CreateSecureSpdySession(session.get(), key, NetLogWithSource()); |
11256 | 11257 |
11257 trans.reset(new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 11258 trans.reset(new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
11258 | 11259 |
11259 rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 11260 rv = trans->Start(&request, callback.callback(), NetLogWithSource()); |
11260 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 11261 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
11261 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 11262 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
11262 | 11263 |
11263 response = trans->GetResponseInfo(); | 11264 response = trans->GetResponseInfo(); |
11264 ASSERT_TRUE(response); | 11265 ASSERT_TRUE(response); |
11265 ASSERT_TRUE(response->headers); | 11266 ASSERT_TRUE(response->headers); |
11266 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); | 11267 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); |
11267 EXPECT_TRUE(response->was_fetched_via_spdy); | 11268 EXPECT_TRUE(response->was_fetched_via_spdy); |
11268 EXPECT_TRUE(response->was_alpn_negotiated); | 11269 EXPECT_TRUE(response->was_alpn_negotiated); |
11269 | 11270 |
(...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11583 | 11584 |
11584 // Set up authentication handlers as necessary. | 11585 // Set up authentication handlers as necessary. |
11585 if (test_config.proxy_auth_timing != AUTH_NONE) { | 11586 if (test_config.proxy_auth_timing != AUTH_NONE) { |
11586 for (int n = 0; n < 2; n++) { | 11587 for (int n = 0; n < 2; n++) { |
11587 HttpAuthHandlerMock* auth_handler(new HttpAuthHandlerMock()); | 11588 HttpAuthHandlerMock* auth_handler(new HttpAuthHandlerMock()); |
11588 std::string auth_challenge = "Mock realm=proxy"; | 11589 std::string auth_challenge = "Mock realm=proxy"; |
11589 GURL origin(test_config.proxy_url); | 11590 GURL origin(test_config.proxy_url); |
11590 HttpAuthChallengeTokenizer tokenizer(auth_challenge.begin(), | 11591 HttpAuthChallengeTokenizer tokenizer(auth_challenge.begin(), |
11591 auth_challenge.end()); | 11592 auth_challenge.end()); |
11592 auth_handler->InitFromChallenge(&tokenizer, HttpAuth::AUTH_PROXY, | 11593 auth_handler->InitFromChallenge(&tokenizer, HttpAuth::AUTH_PROXY, |
11593 empty_ssl_info, origin, BoundNetLog()); | 11594 empty_ssl_info, origin, |
| 11595 NetLogWithSource()); |
11594 auth_handler->SetGenerateExpectation( | 11596 auth_handler->SetGenerateExpectation( |
11595 test_config.proxy_auth_timing == AUTH_ASYNC, | 11597 test_config.proxy_auth_timing == AUTH_ASYNC, |
11596 test_config.proxy_auth_rv); | 11598 test_config.proxy_auth_rv); |
11597 auth_factory->AddMockHandler(auth_handler, HttpAuth::AUTH_PROXY); | 11599 auth_factory->AddMockHandler(auth_handler, HttpAuth::AUTH_PROXY); |
11598 } | 11600 } |
11599 } | 11601 } |
11600 if (test_config.server_auth_timing != AUTH_NONE) { | 11602 if (test_config.server_auth_timing != AUTH_NONE) { |
11601 HttpAuthHandlerMock* auth_handler(new HttpAuthHandlerMock()); | 11603 HttpAuthHandlerMock* auth_handler(new HttpAuthHandlerMock()); |
11602 std::string auth_challenge = "Mock realm=server"; | 11604 std::string auth_challenge = "Mock realm=server"; |
11603 GURL origin(test_config.server_url); | 11605 GURL origin(test_config.server_url); |
11604 HttpAuthChallengeTokenizer tokenizer(auth_challenge.begin(), | 11606 HttpAuthChallengeTokenizer tokenizer(auth_challenge.begin(), |
11605 auth_challenge.end()); | 11607 auth_challenge.end()); |
11606 auth_handler->InitFromChallenge(&tokenizer, HttpAuth::AUTH_SERVER, | 11608 auth_handler->InitFromChallenge(&tokenizer, HttpAuth::AUTH_SERVER, |
11607 empty_ssl_info, origin, BoundNetLog()); | 11609 empty_ssl_info, origin, |
| 11610 NetLogWithSource()); |
11608 auth_handler->SetGenerateExpectation( | 11611 auth_handler->SetGenerateExpectation( |
11609 test_config.server_auth_timing == AUTH_ASYNC, | 11612 test_config.server_auth_timing == AUTH_ASYNC, |
11610 test_config.server_auth_rv); | 11613 test_config.server_auth_rv); |
11611 auth_factory->AddMockHandler(auth_handler, HttpAuth::AUTH_SERVER); | 11614 auth_factory->AddMockHandler(auth_handler, HttpAuth::AUTH_SERVER); |
11612 } | 11615 } |
11613 if (test_config.proxy_url) { | 11616 if (test_config.proxy_url) { |
11614 session_deps_.proxy_service = | 11617 session_deps_.proxy_service = |
11615 ProxyService::CreateFixed(test_config.proxy_url); | 11618 ProxyService::CreateFixed(test_config.proxy_url); |
11616 } else { | 11619 } else { |
11617 session_deps_.proxy_service = ProxyService::CreateDirect(); | 11620 session_deps_.proxy_service = ProxyService::CreateDirect(); |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11667 // Transaction must be created after DataProviders, so it's destroyed before | 11670 // Transaction must be created after DataProviders, so it's destroyed before |
11668 // they are as well. | 11671 // they are as well. |
11669 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 11672 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
11670 | 11673 |
11671 for (int round = 0; round < test_config.num_auth_rounds; ++round) { | 11674 for (int round = 0; round < test_config.num_auth_rounds; ++round) { |
11672 const TestRound& read_write_round = test_config.rounds[round]; | 11675 const TestRound& read_write_round = test_config.rounds[round]; |
11673 // Start or restart the transaction. | 11676 // Start or restart the transaction. |
11674 TestCompletionCallback callback; | 11677 TestCompletionCallback callback; |
11675 int rv; | 11678 int rv; |
11676 if (round == 0) { | 11679 if (round == 0) { |
11677 rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 11680 rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
11678 } else { | 11681 } else { |
11679 rv = trans.RestartWithAuth( | 11682 rv = trans.RestartWithAuth( |
11680 AuthCredentials(kFoo, kBar), callback.callback()); | 11683 AuthCredentials(kFoo, kBar), callback.callback()); |
11681 } | 11684 } |
11682 if (rv == ERR_IO_PENDING) | 11685 if (rv == ERR_IO_PENDING) |
11683 rv = callback.WaitForResult(); | 11686 rv = callback.WaitForResult(); |
11684 | 11687 |
11685 // Compare results with expected data. | 11688 // Compare results with expected data. |
11686 EXPECT_EQ(read_write_round.expected_rv, rv); | 11689 EXPECT_EQ(read_write_round.expected_rv, rv); |
11687 const HttpResponseInfo* response = trans.GetResponseInfo(); | 11690 const HttpResponseInfo* response = trans.GetResponseInfo(); |
(...skipping 20 matching lines...) Expand all Loading... |
11708 session_deps_.host_resolver->set_synchronous_mode(true); | 11711 session_deps_.host_resolver->set_synchronous_mode(true); |
11709 | 11712 |
11710 HttpAuthHandlerMock* auth_handler(new HttpAuthHandlerMock()); | 11713 HttpAuthHandlerMock* auth_handler(new HttpAuthHandlerMock()); |
11711 auth_handler->set_connection_based(true); | 11714 auth_handler->set_connection_based(true); |
11712 std::string auth_challenge = "Mock realm=server"; | 11715 std::string auth_challenge = "Mock realm=server"; |
11713 GURL origin("http://www.example.com"); | 11716 GURL origin("http://www.example.com"); |
11714 HttpAuthChallengeTokenizer tokenizer(auth_challenge.begin(), | 11717 HttpAuthChallengeTokenizer tokenizer(auth_challenge.begin(), |
11715 auth_challenge.end()); | 11718 auth_challenge.end()); |
11716 SSLInfo empty_ssl_info; | 11719 SSLInfo empty_ssl_info; |
11717 auth_handler->InitFromChallenge(&tokenizer, HttpAuth::AUTH_SERVER, | 11720 auth_handler->InitFromChallenge(&tokenizer, HttpAuth::AUTH_SERVER, |
11718 empty_ssl_info, origin, BoundNetLog()); | 11721 empty_ssl_info, origin, NetLogWithSource()); |
11719 auth_factory->AddMockHandler(auth_handler, HttpAuth::AUTH_SERVER); | 11722 auth_factory->AddMockHandler(auth_handler, HttpAuth::AUTH_SERVER); |
11720 | 11723 |
11721 int rv = OK; | 11724 int rv = OK; |
11722 const HttpResponseInfo* response = NULL; | 11725 const HttpResponseInfo* response = NULL; |
11723 HttpRequestInfo request; | 11726 HttpRequestInfo request; |
11724 request.method = "GET"; | 11727 request.method = "GET"; |
11725 request.url = origin; | 11728 request.url = origin; |
11726 request.load_flags = 0; | 11729 request.load_flags = 0; |
11727 | 11730 |
11728 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 11731 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11791 kSuccess, | 11794 kSuccess, |
11792 }; | 11795 }; |
11793 StaticSocketDataProvider data_provider(reads, arraysize(reads), | 11796 StaticSocketDataProvider data_provider(reads, arraysize(reads), |
11794 writes, arraysize(writes)); | 11797 writes, arraysize(writes)); |
11795 session_deps_.socket_factory->AddSocketDataProvider(&data_provider); | 11798 session_deps_.socket_factory->AddSocketDataProvider(&data_provider); |
11796 | 11799 |
11797 const char kSocketGroup[] = "www.example.com:80"; | 11800 const char kSocketGroup[] = "www.example.com:80"; |
11798 | 11801 |
11799 // First round of authentication. | 11802 // First round of authentication. |
11800 auth_handler->SetGenerateExpectation(false, OK); | 11803 auth_handler->SetGenerateExpectation(false, OK); |
11801 rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 11804 rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
11802 if (rv == ERR_IO_PENDING) | 11805 if (rv == ERR_IO_PENDING) |
11803 rv = callback.WaitForResult(); | 11806 rv = callback.WaitForResult(); |
11804 EXPECT_THAT(rv, IsOk()); | 11807 EXPECT_THAT(rv, IsOk()); |
11805 response = trans.GetResponseInfo(); | 11808 response = trans.GetResponseInfo(); |
11806 ASSERT_TRUE(response); | 11809 ASSERT_TRUE(response); |
11807 EXPECT_TRUE(response->auth_challenge); | 11810 EXPECT_TRUE(response->auth_challenge); |
11808 EXPECT_EQ(0, transport_pool->IdleSocketCountInGroup(kSocketGroup)); | 11811 EXPECT_EQ(0, transport_pool->IdleSocketCountInGroup(kSocketGroup)); |
11809 | 11812 |
11810 // In between rounds, another request comes in for the same domain. | 11813 // In between rounds, another request comes in for the same domain. |
11811 // It should not be able to grab the TCP socket that trans has already | 11814 // It should not be able to grab the TCP socket that trans has already |
11812 // claimed. | 11815 // claimed. |
11813 HttpNetworkTransaction trans_compete(DEFAULT_PRIORITY, session.get()); | 11816 HttpNetworkTransaction trans_compete(DEFAULT_PRIORITY, session.get()); |
11814 TestCompletionCallback callback_compete; | 11817 TestCompletionCallback callback_compete; |
11815 rv = | 11818 rv = trans_compete.Start(&request, callback_compete.callback(), |
11816 trans_compete.Start(&request, callback_compete.callback(), BoundNetLog()); | 11819 NetLogWithSource()); |
11817 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 11820 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
11818 // callback_compete.WaitForResult at this point would stall forever, | 11821 // callback_compete.WaitForResult at this point would stall forever, |
11819 // since the HttpNetworkTransaction does not release the request back to | 11822 // since the HttpNetworkTransaction does not release the request back to |
11820 // the pool until after authentication completes. | 11823 // the pool until after authentication completes. |
11821 | 11824 |
11822 // Second round of authentication. | 11825 // Second round of authentication. |
11823 auth_handler->SetGenerateExpectation(false, OK); | 11826 auth_handler->SetGenerateExpectation(false, OK); |
11824 rv = trans.RestartWithAuth(AuthCredentials(kFoo, kBar), callback.callback()); | 11827 rv = trans.RestartWithAuth(AuthCredentials(kFoo, kBar), callback.callback()); |
11825 if (rv == ERR_IO_PENDING) | 11828 if (rv == ERR_IO_PENDING) |
11826 rv = callback.WaitForResult(); | 11829 rv = callback.WaitForResult(); |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11910 | 11913 |
11911 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 11914 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
11912 data_writes, arraysize(data_writes)); | 11915 data_writes, arraysize(data_writes)); |
11913 session_deps_.socket_factory->AddSocketDataProvider(&data); | 11916 session_deps_.socket_factory->AddSocketDataProvider(&data); |
11914 | 11917 |
11915 TestCompletionCallback callback; | 11918 TestCompletionCallback callback; |
11916 | 11919 |
11917 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 11920 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
11918 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 11921 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
11919 | 11922 |
11920 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 11923 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
11921 | 11924 |
11922 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 11925 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
11923 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 11926 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
11924 | 11927 |
11925 const HttpResponseInfo* response = trans.GetResponseInfo(); | 11928 const HttpResponseInfo* response = trans.GetResponseInfo(); |
11926 ASSERT_TRUE(response); | 11929 ASSERT_TRUE(response); |
11927 ASSERT_TRUE(response->headers); | 11930 ASSERT_TRUE(response->headers); |
11928 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 11931 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
11929 | 11932 |
11930 std::string response_data; | 11933 std::string response_data; |
(...skipping 27 matching lines...) Expand all Loading... |
11958 | 11961 |
11959 SequencedSocketData spdy_data(spdy_reads, arraysize(spdy_reads), spdy_writes, | 11962 SequencedSocketData spdy_data(spdy_reads, arraysize(spdy_reads), spdy_writes, |
11960 arraysize(spdy_writes)); | 11963 arraysize(spdy_writes)); |
11961 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); | 11964 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); |
11962 | 11965 |
11963 TestCompletionCallback callback; | 11966 TestCompletionCallback callback; |
11964 | 11967 |
11965 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 11968 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
11966 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 11969 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
11967 | 11970 |
11968 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 11971 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
11969 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 11972 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
11970 EXPECT_THAT(callback.WaitForResult(), IsError(ERR_CONNECTION_CLOSED)); | 11973 EXPECT_THAT(callback.WaitForResult(), IsError(ERR_CONNECTION_CLOSED)); |
11971 } | 11974 } |
11972 | 11975 |
11973 // A subclass of HttpAuthHandlerMock that records the request URL when | 11976 // A subclass of HttpAuthHandlerMock that records the request URL when |
11974 // it gets it. This is needed since the auth handler may get destroyed | 11977 // it gets it. This is needed since the auth handler may get destroyed |
11975 // before we get a chance to query it. | 11978 // before we get a chance to query it. |
11976 class UrlRecordingHttpAuthHandlerMock : public HttpAuthHandlerMock { | 11979 class UrlRecordingHttpAuthHandlerMock : public HttpAuthHandlerMock { |
11977 public: | 11980 public: |
11978 explicit UrlRecordingHttpAuthHandlerMock(GURL* url) : url_(url) {} | 11981 explicit UrlRecordingHttpAuthHandlerMock(GURL* url) : url_(url) {} |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12056 | 12059 |
12057 { | 12060 { |
12058 HttpRequestInfo request; | 12061 HttpRequestInfo request; |
12059 request.method = "GET"; | 12062 request.method = "GET"; |
12060 request.url = GURL("http://www.example.org/"); | 12063 request.url = GURL("http://www.example.org/"); |
12061 request.load_flags = 0; | 12064 request.load_flags = 0; |
12062 | 12065 |
12063 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 12066 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
12064 TestCompletionCallback callback; | 12067 TestCompletionCallback callback; |
12065 | 12068 |
12066 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 12069 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
12067 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 12070 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
12068 callback.WaitForResult(); | 12071 callback.WaitForResult(); |
12069 | 12072 |
12070 const HttpResponseInfo* response = trans.GetResponseInfo(); | 12073 const HttpResponseInfo* response = trans.GetResponseInfo(); |
12071 ASSERT_TRUE(response); | 12074 ASSERT_TRUE(response); |
12072 EXPECT_TRUE(response->headers); | 12075 EXPECT_TRUE(response->headers); |
12073 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 12076 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
12074 | 12077 |
12075 // The transaction and HttpRequestInfo are deleted. | 12078 // The transaction and HttpRequestInfo are deleted. |
12076 } | 12079 } |
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12377 ssl.next_proto = kProtoHTTP2; | 12380 ssl.next_proto = kProtoHTTP2; |
12378 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 12381 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
12379 | 12382 |
12380 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 12383 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
12381 | 12384 |
12382 // Set up an initial SpdySession in the pool to reuse. | 12385 // Set up an initial SpdySession in the pool to reuse. |
12383 HostPortPair host_port_pair("www.example.org", 443); | 12386 HostPortPair host_port_pair("www.example.org", 443); |
12384 SpdySessionKey key(host_port_pair, ProxyServer::Direct(), | 12387 SpdySessionKey key(host_port_pair, ProxyServer::Direct(), |
12385 PRIVACY_MODE_DISABLED); | 12388 PRIVACY_MODE_DISABLED); |
12386 base::WeakPtr<SpdySession> spdy_session = | 12389 base::WeakPtr<SpdySession> spdy_session = |
12387 CreateInsecureSpdySession(session.get(), key, BoundNetLog()); | 12390 CreateInsecureSpdySession(session.get(), key, NetLogWithSource()); |
12388 | 12391 |
12389 HttpRequestInfo request; | 12392 HttpRequestInfo request; |
12390 request.method = "GET"; | 12393 request.method = "GET"; |
12391 request.url = GURL("https://www.example.org/"); | 12394 request.url = GURL("https://www.example.org/"); |
12392 request.load_flags = 0; | 12395 request.load_flags = 0; |
12393 | 12396 |
12394 // This is the important line that marks this as a preconnect. | 12397 // This is the important line that marks this as a preconnect. |
12395 request.motivation = HttpRequestInfo::PRECONNECT_MOTIVATED; | 12398 request.motivation = HttpRequestInfo::PRECONNECT_MOTIVATED; |
12396 | 12399 |
12397 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 12400 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
12398 | 12401 |
12399 TestCompletionCallback callback; | 12402 TestCompletionCallback callback; |
12400 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 12403 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
12401 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 12404 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
12402 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 12405 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
12403 } | 12406 } |
12404 | 12407 |
12405 // Given a net error, cause that error to be returned from the first Write() | 12408 // Given a net error, cause that error to be returned from the first Write() |
12406 // call and verify that the HttpNetworkTransaction fails with that error. | 12409 // call and verify that the HttpNetworkTransaction fails with that error. |
12407 void HttpNetworkTransactionTest::CheckErrorIsPassedBack( | 12410 void HttpNetworkTransactionTest::CheckErrorIsPassedBack( |
12408 int error, IoMode mode) { | 12411 int error, IoMode mode) { |
12409 HttpRequestInfo request_info; | 12412 HttpRequestInfo request_info; |
12410 request_info.url = GURL("https://www.example.com/"); | 12413 request_info.url = GURL("https://www.example.com/"); |
12411 request_info.method = "GET"; | 12414 request_info.method = "GET"; |
12412 request_info.load_flags = LOAD_NORMAL; | 12415 request_info.load_flags = LOAD_NORMAL; |
12413 | 12416 |
12414 SSLSocketDataProvider ssl_data(mode, OK); | 12417 SSLSocketDataProvider ssl_data(mode, OK); |
12415 MockWrite data_writes[] = { | 12418 MockWrite data_writes[] = { |
12416 MockWrite(mode, error), | 12419 MockWrite(mode, error), |
12417 }; | 12420 }; |
12418 StaticSocketDataProvider data(NULL, 0, data_writes, arraysize(data_writes)); | 12421 StaticSocketDataProvider data(NULL, 0, data_writes, arraysize(data_writes)); |
12419 session_deps_.socket_factory->AddSocketDataProvider(&data); | 12422 session_deps_.socket_factory->AddSocketDataProvider(&data); |
12420 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_data); | 12423 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_data); |
12421 | 12424 |
12422 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 12425 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
12423 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 12426 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
12424 | 12427 |
12425 TestCompletionCallback callback; | 12428 TestCompletionCallback callback; |
12426 int rv = trans.Start(&request_info, callback.callback(), BoundNetLog()); | 12429 int rv = trans.Start(&request_info, callback.callback(), NetLogWithSource()); |
12427 if (rv == ERR_IO_PENDING) | 12430 if (rv == ERR_IO_PENDING) |
12428 rv = callback.WaitForResult(); | 12431 rv = callback.WaitForResult(); |
12429 ASSERT_EQ(error, rv); | 12432 ASSERT_EQ(error, rv); |
12430 } | 12433 } |
12431 | 12434 |
12432 TEST_F(HttpNetworkTransactionTest, SSLWriteCertError) { | 12435 TEST_F(HttpNetworkTransactionTest, SSLWriteCertError) { |
12433 // Just check a grab bag of cert errors. | 12436 // Just check a grab bag of cert errors. |
12434 static const int kErrors[] = { | 12437 static const int kErrors[] = { |
12435 ERR_CERT_COMMON_NAME_INVALID, | 12438 ERR_CERT_COMMON_NAME_INVALID, |
12436 ERR_CERT_AUTHORITY_INVALID, | 12439 ERR_CERT_AUTHORITY_INVALID, |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12502 ssl_data4.cert_request_info = cert_request.get(); | 12505 ssl_data4.cert_request_info = cert_request.get(); |
12503 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_data4); | 12506 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_data4); |
12504 StaticSocketDataProvider data4(NULL, 0, NULL, 0); | 12507 StaticSocketDataProvider data4(NULL, 0, NULL, 0); |
12505 session_deps_.socket_factory->AddSocketDataProvider(&data4); | 12508 session_deps_.socket_factory->AddSocketDataProvider(&data4); |
12506 | 12509 |
12507 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 12510 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
12508 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 12511 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
12509 | 12512 |
12510 // Begin the SSL handshake with the peer. This consumes ssl_data1. | 12513 // Begin the SSL handshake with the peer. This consumes ssl_data1. |
12511 TestCompletionCallback callback; | 12514 TestCompletionCallback callback; |
12512 int rv = trans.Start(&request_info, callback.callback(), BoundNetLog()); | 12515 int rv = trans.Start(&request_info, callback.callback(), NetLogWithSource()); |
12513 ASSERT_THAT(rv, IsError(ERR_IO_PENDING)); | 12516 ASSERT_THAT(rv, IsError(ERR_IO_PENDING)); |
12514 | 12517 |
12515 // Complete the SSL handshake, which should abort due to requiring a | 12518 // Complete the SSL handshake, which should abort due to requiring a |
12516 // client certificate. | 12519 // client certificate. |
12517 rv = callback.WaitForResult(); | 12520 rv = callback.WaitForResult(); |
12518 ASSERT_THAT(rv, IsError(ERR_SSL_CLIENT_AUTH_CERT_NEEDED)); | 12521 ASSERT_THAT(rv, IsError(ERR_SSL_CLIENT_AUTH_CERT_NEEDED)); |
12519 | 12522 |
12520 // Indicate that no certificate should be supplied. From the perspective | 12523 // Indicate that no certificate should be supplied. From the perspective |
12521 // of SSLClientCertCache, NULL is just as meaningful as a real | 12524 // of SSLClientCertCache, NULL is just as meaningful as a real |
12522 // certificate, so this is the same as supply a | 12525 // certificate, so this is the same as supply a |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12618 ssl_data5.cert_request_info = cert_request.get(); | 12621 ssl_data5.cert_request_info = cert_request.get(); |
12619 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_data5); | 12622 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_data5); |
12620 StaticSocketDataProvider data5(data2_reads, arraysize(data2_reads), NULL, 0); | 12623 StaticSocketDataProvider data5(data2_reads, arraysize(data2_reads), NULL, 0); |
12621 session_deps_.socket_factory->AddSocketDataProvider(&data5); | 12624 session_deps_.socket_factory->AddSocketDataProvider(&data5); |
12622 | 12625 |
12623 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 12626 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
12624 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 12627 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
12625 | 12628 |
12626 // Begin the initial SSL handshake. | 12629 // Begin the initial SSL handshake. |
12627 TestCompletionCallback callback; | 12630 TestCompletionCallback callback; |
12628 int rv = trans.Start(&request_info, callback.callback(), BoundNetLog()); | 12631 int rv = trans.Start(&request_info, callback.callback(), NetLogWithSource()); |
12629 ASSERT_THAT(rv, IsError(ERR_IO_PENDING)); | 12632 ASSERT_THAT(rv, IsError(ERR_IO_PENDING)); |
12630 | 12633 |
12631 // Complete the SSL handshake, which should abort due to requiring a | 12634 // Complete the SSL handshake, which should abort due to requiring a |
12632 // client certificate. | 12635 // client certificate. |
12633 rv = callback.WaitForResult(); | 12636 rv = callback.WaitForResult(); |
12634 ASSERT_THAT(rv, IsError(ERR_SSL_CLIENT_AUTH_CERT_NEEDED)); | 12637 ASSERT_THAT(rv, IsError(ERR_SSL_CLIENT_AUTH_CERT_NEEDED)); |
12635 | 12638 |
12636 // Indicate that no certificate should be supplied. From the perspective | 12639 // Indicate that no certificate should be supplied. From the perspective |
12637 // of SSLClientCertCache, NULL is just as meaningful as a real | 12640 // of SSLClientCertCache, NULL is just as meaningful as a real |
12638 // certificate, so this is the same as supply a | 12641 // certificate, so this is the same as supply a |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12710 requests[1].method = "GET"; | 12713 requests[1].method = "GET"; |
12711 requests[1].load_flags = LOAD_NORMAL; | 12714 requests[1].load_flags = LOAD_NORMAL; |
12712 | 12715 |
12713 for (size_t i = 0; i < arraysize(requests); ++i) { | 12716 for (size_t i = 0; i < arraysize(requests); ++i) { |
12714 session_deps_.socket_factory->ResetNextMockIndexes(); | 12717 session_deps_.socket_factory->ResetNextMockIndexes(); |
12715 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 12718 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
12716 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 12719 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
12717 | 12720 |
12718 // Begin the SSL handshake with the proxy. | 12721 // Begin the SSL handshake with the proxy. |
12719 TestCompletionCallback callback; | 12722 TestCompletionCallback callback; |
12720 int rv = trans.Start(&requests[i], callback.callback(), BoundNetLog()); | 12723 int rv = trans.Start(&requests[i], callback.callback(), NetLogWithSource()); |
12721 ASSERT_THAT(rv, IsError(ERR_IO_PENDING)); | 12724 ASSERT_THAT(rv, IsError(ERR_IO_PENDING)); |
12722 | 12725 |
12723 // Complete the SSL handshake, which should abort due to requiring a | 12726 // Complete the SSL handshake, which should abort due to requiring a |
12724 // client certificate. | 12727 // client certificate. |
12725 rv = callback.WaitForResult(); | 12728 rv = callback.WaitForResult(); |
12726 ASSERT_THAT(rv, IsError(ERR_SSL_CLIENT_AUTH_CERT_NEEDED)); | 12729 ASSERT_THAT(rv, IsError(ERR_SSL_CLIENT_AUTH_CERT_NEEDED)); |
12727 | 12730 |
12728 // Indicate that no certificate should be supplied. From the perspective | 12731 // Indicate that no certificate should be supplied. From the perspective |
12729 // of SSLClientCertCache, NULL is just as meaningful as a real | 12732 // of SSLClientCertCache, NULL is just as meaningful as a real |
12730 // certificate, so this is the same as supply a | 12733 // certificate, so this is the same as supply a |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12798 spdy_writes, arraysize(spdy_writes)); | 12801 spdy_writes, arraysize(spdy_writes)); |
12799 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); | 12802 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); |
12800 | 12803 |
12801 TestCompletionCallback callback; | 12804 TestCompletionCallback callback; |
12802 HttpRequestInfo request1; | 12805 HttpRequestInfo request1; |
12803 request1.method = "GET"; | 12806 request1.method = "GET"; |
12804 request1.url = GURL("https://www.example.org/"); | 12807 request1.url = GURL("https://www.example.org/"); |
12805 request1.load_flags = 0; | 12808 request1.load_flags = 0; |
12806 HttpNetworkTransaction trans1(DEFAULT_PRIORITY, session.get()); | 12809 HttpNetworkTransaction trans1(DEFAULT_PRIORITY, session.get()); |
12807 | 12810 |
12808 int rv = trans1.Start(&request1, callback.callback(), BoundNetLog()); | 12811 int rv = trans1.Start(&request1, callback.callback(), NetLogWithSource()); |
12809 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 12812 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
12810 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 12813 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
12811 | 12814 |
12812 const HttpResponseInfo* response = trans1.GetResponseInfo(); | 12815 const HttpResponseInfo* response = trans1.GetResponseInfo(); |
12813 ASSERT_TRUE(response); | 12816 ASSERT_TRUE(response); |
12814 ASSERT_TRUE(response->headers); | 12817 ASSERT_TRUE(response->headers); |
12815 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); | 12818 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); |
12816 | 12819 |
12817 std::string response_data; | 12820 std::string response_data; |
12818 ASSERT_THAT(ReadTransaction(&trans1, &response_data), IsOk()); | 12821 ASSERT_THAT(ReadTransaction(&trans1, &response_data), IsOk()); |
12819 EXPECT_EQ("hello!", response_data); | 12822 EXPECT_EQ("hello!", response_data); |
12820 | 12823 |
12821 // Preload www.gmail.com into HostCache. | 12824 // Preload www.gmail.com into HostCache. |
12822 HostPortPair host_port("www.gmail.com", 443); | 12825 HostPortPair host_port("www.gmail.com", 443); |
12823 HostResolver::RequestInfo resolve_info(host_port); | 12826 HostResolver::RequestInfo resolve_info(host_port); |
12824 AddressList ignored; | 12827 AddressList ignored; |
12825 std::unique_ptr<HostResolver::Request> request; | 12828 std::unique_ptr<HostResolver::Request> request; |
12826 rv = session_deps_.host_resolver->Resolve(resolve_info, DEFAULT_PRIORITY, | 12829 rv = session_deps_.host_resolver->Resolve(resolve_info, DEFAULT_PRIORITY, |
12827 &ignored, callback.callback(), | 12830 &ignored, callback.callback(), |
12828 &request, BoundNetLog()); | 12831 &request, NetLogWithSource()); |
12829 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 12832 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
12830 rv = callback.WaitForResult(); | 12833 rv = callback.WaitForResult(); |
12831 EXPECT_THAT(rv, IsOk()); | 12834 EXPECT_THAT(rv, IsOk()); |
12832 | 12835 |
12833 HttpRequestInfo request2; | 12836 HttpRequestInfo request2; |
12834 request2.method = "GET"; | 12837 request2.method = "GET"; |
12835 request2.url = GURL("https://www.gmail.com/"); | 12838 request2.url = GURL("https://www.gmail.com/"); |
12836 request2.load_flags = 0; | 12839 request2.load_flags = 0; |
12837 HttpNetworkTransaction trans2(DEFAULT_PRIORITY, session.get()); | 12840 HttpNetworkTransaction trans2(DEFAULT_PRIORITY, session.get()); |
12838 | 12841 |
12839 rv = trans2.Start(&request2, callback.callback(), BoundNetLog()); | 12842 rv = trans2.Start(&request2, callback.callback(), NetLogWithSource()); |
12840 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 12843 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
12841 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 12844 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
12842 | 12845 |
12843 response = trans2.GetResponseInfo(); | 12846 response = trans2.GetResponseInfo(); |
12844 ASSERT_TRUE(response); | 12847 ASSERT_TRUE(response); |
12845 ASSERT_TRUE(response->headers); | 12848 ASSERT_TRUE(response->headers); |
12846 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); | 12849 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); |
12847 EXPECT_TRUE(response->was_fetched_via_spdy); | 12850 EXPECT_TRUE(response->was_fetched_via_spdy); |
12848 EXPECT_TRUE(response->was_alpn_negotiated); | 12851 EXPECT_TRUE(response->was_alpn_negotiated); |
12849 ASSERT_THAT(ReadTransaction(&trans2, &response_data), IsOk()); | 12852 ASSERT_THAT(ReadTransaction(&trans2, &response_data), IsOk()); |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12887 spdy_writes, arraysize(spdy_writes)); | 12890 spdy_writes, arraysize(spdy_writes)); |
12888 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); | 12891 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); |
12889 | 12892 |
12890 TestCompletionCallback callback; | 12893 TestCompletionCallback callback; |
12891 HttpRequestInfo request1; | 12894 HttpRequestInfo request1; |
12892 request1.method = "GET"; | 12895 request1.method = "GET"; |
12893 request1.url = GURL("https://www.example.org/"); | 12896 request1.url = GURL("https://www.example.org/"); |
12894 request1.load_flags = 0; | 12897 request1.load_flags = 0; |
12895 HttpNetworkTransaction trans1(DEFAULT_PRIORITY, session.get()); | 12898 HttpNetworkTransaction trans1(DEFAULT_PRIORITY, session.get()); |
12896 | 12899 |
12897 int rv = trans1.Start(&request1, callback.callback(), BoundNetLog()); | 12900 int rv = trans1.Start(&request1, callback.callback(), NetLogWithSource()); |
12898 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 12901 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
12899 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 12902 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
12900 | 12903 |
12901 const HttpResponseInfo* response = trans1.GetResponseInfo(); | 12904 const HttpResponseInfo* response = trans1.GetResponseInfo(); |
12902 ASSERT_TRUE(response); | 12905 ASSERT_TRUE(response); |
12903 ASSERT_TRUE(response->headers); | 12906 ASSERT_TRUE(response->headers); |
12904 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); | 12907 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); |
12905 | 12908 |
12906 std::string response_data; | 12909 std::string response_data; |
12907 ASSERT_THAT(ReadTransaction(&trans1, &response_data), IsOk()); | 12910 ASSERT_THAT(ReadTransaction(&trans1, &response_data), IsOk()); |
12908 EXPECT_EQ("hello!", response_data); | 12911 EXPECT_EQ("hello!", response_data); |
12909 | 12912 |
12910 HttpRequestInfo request2; | 12913 HttpRequestInfo request2; |
12911 request2.method = "GET"; | 12914 request2.method = "GET"; |
12912 request2.url = GURL("https://www.gmail.com/"); | 12915 request2.url = GURL("https://www.gmail.com/"); |
12913 request2.load_flags = 0; | 12916 request2.load_flags = 0; |
12914 HttpNetworkTransaction trans2(DEFAULT_PRIORITY, session.get()); | 12917 HttpNetworkTransaction trans2(DEFAULT_PRIORITY, session.get()); |
12915 | 12918 |
12916 rv = trans2.Start(&request2, callback.callback(), BoundNetLog()); | 12919 rv = trans2.Start(&request2, callback.callback(), NetLogWithSource()); |
12917 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 12920 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
12918 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 12921 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
12919 | 12922 |
12920 response = trans2.GetResponseInfo(); | 12923 response = trans2.GetResponseInfo(); |
12921 ASSERT_TRUE(response); | 12924 ASSERT_TRUE(response); |
12922 ASSERT_TRUE(response->headers); | 12925 ASSERT_TRUE(response->headers); |
12923 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); | 12926 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); |
12924 EXPECT_TRUE(response->was_fetched_via_spdy); | 12927 EXPECT_TRUE(response->was_fetched_via_spdy); |
12925 EXPECT_TRUE(response->was_alpn_negotiated); | 12928 EXPECT_TRUE(response->was_alpn_negotiated); |
12926 ASSERT_THAT(ReadTransaction(&trans2, &response_data), IsOk()); | 12929 ASSERT_THAT(ReadTransaction(&trans2, &response_data), IsOk()); |
12927 EXPECT_EQ("hello!", response_data); | 12930 EXPECT_EQ("hello!", response_data); |
12928 } | 12931 } |
12929 | 12932 |
12930 class OneTimeCachingHostResolver : public HostResolver { | 12933 class OneTimeCachingHostResolver : public HostResolver { |
12931 public: | 12934 public: |
12932 explicit OneTimeCachingHostResolver(const HostPortPair& host_port) | 12935 explicit OneTimeCachingHostResolver(const HostPortPair& host_port) |
12933 : host_port_(host_port) {} | 12936 : host_port_(host_port) {} |
12934 ~OneTimeCachingHostResolver() override {} | 12937 ~OneTimeCachingHostResolver() override {} |
12935 | 12938 |
12936 RuleBasedHostResolverProc* rules() { return host_resolver_.rules(); } | 12939 RuleBasedHostResolverProc* rules() { return host_resolver_.rules(); } |
12937 | 12940 |
12938 // HostResolver methods: | 12941 // HostResolver methods: |
12939 int Resolve(const RequestInfo& info, | 12942 int Resolve(const RequestInfo& info, |
12940 RequestPriority priority, | 12943 RequestPriority priority, |
12941 AddressList* addresses, | 12944 AddressList* addresses, |
12942 const CompletionCallback& callback, | 12945 const CompletionCallback& callback, |
12943 std::unique_ptr<Request>* out_req, | 12946 std::unique_ptr<Request>* out_req, |
12944 const BoundNetLog& net_log) override { | 12947 const NetLogWithSource& net_log) override { |
12945 return host_resolver_.Resolve( | 12948 return host_resolver_.Resolve( |
12946 info, priority, addresses, callback, out_req, net_log); | 12949 info, priority, addresses, callback, out_req, net_log); |
12947 } | 12950 } |
12948 | 12951 |
12949 int ResolveFromCache(const RequestInfo& info, | 12952 int ResolveFromCache(const RequestInfo& info, |
12950 AddressList* addresses, | 12953 AddressList* addresses, |
12951 const BoundNetLog& net_log) override { | 12954 const NetLogWithSource& net_log) override { |
12952 int rv = host_resolver_.ResolveFromCache(info, addresses, net_log); | 12955 int rv = host_resolver_.ResolveFromCache(info, addresses, net_log); |
12953 if (rv == OK && info.host_port_pair().Equals(host_port_)) | 12956 if (rv == OK && info.host_port_pair().Equals(host_port_)) |
12954 host_resolver_.GetHostCache()->clear(); | 12957 host_resolver_.GetHostCache()->clear(); |
12955 return rv; | 12958 return rv; |
12956 } | 12959 } |
12957 | 12960 |
12958 MockCachingHostResolver* GetMockHostResolver() { | 12961 MockCachingHostResolver* GetMockHostResolver() { |
12959 return &host_resolver_; | 12962 return &host_resolver_; |
12960 } | 12963 } |
12961 | 12964 |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
13005 spdy_writes, arraysize(spdy_writes)); | 13008 spdy_writes, arraysize(spdy_writes)); |
13006 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); | 13009 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); |
13007 | 13010 |
13008 TestCompletionCallback callback; | 13011 TestCompletionCallback callback; |
13009 HttpRequestInfo request1; | 13012 HttpRequestInfo request1; |
13010 request1.method = "GET"; | 13013 request1.method = "GET"; |
13011 request1.url = GURL("https://www.example.org/"); | 13014 request1.url = GURL("https://www.example.org/"); |
13012 request1.load_flags = 0; | 13015 request1.load_flags = 0; |
13013 HttpNetworkTransaction trans1(DEFAULT_PRIORITY, session.get()); | 13016 HttpNetworkTransaction trans1(DEFAULT_PRIORITY, session.get()); |
13014 | 13017 |
13015 int rv = trans1.Start(&request1, callback.callback(), BoundNetLog()); | 13018 int rv = trans1.Start(&request1, callback.callback(), NetLogWithSource()); |
13016 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 13019 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
13017 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 13020 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
13018 | 13021 |
13019 const HttpResponseInfo* response = trans1.GetResponseInfo(); | 13022 const HttpResponseInfo* response = trans1.GetResponseInfo(); |
13020 ASSERT_TRUE(response); | 13023 ASSERT_TRUE(response); |
13021 ASSERT_TRUE(response->headers); | 13024 ASSERT_TRUE(response->headers); |
13022 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); | 13025 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); |
13023 | 13026 |
13024 std::string response_data; | 13027 std::string response_data; |
13025 ASSERT_THAT(ReadTransaction(&trans1, &response_data), IsOk()); | 13028 ASSERT_THAT(ReadTransaction(&trans1, &response_data), IsOk()); |
13026 EXPECT_EQ("hello!", response_data); | 13029 EXPECT_EQ("hello!", response_data); |
13027 | 13030 |
13028 // Preload cache entries into HostCache. | 13031 // Preload cache entries into HostCache. |
13029 HostResolver::RequestInfo resolve_info(HostPortPair("www.gmail.com", 443)); | 13032 HostResolver::RequestInfo resolve_info(HostPortPair("www.gmail.com", 443)); |
13030 AddressList ignored; | 13033 AddressList ignored; |
13031 std::unique_ptr<HostResolver::Request> request; | 13034 std::unique_ptr<HostResolver::Request> request; |
13032 rv = host_resolver.Resolve(resolve_info, DEFAULT_PRIORITY, &ignored, | 13035 rv = host_resolver.Resolve(resolve_info, DEFAULT_PRIORITY, &ignored, |
13033 callback.callback(), &request, BoundNetLog()); | 13036 callback.callback(), &request, NetLogWithSource()); |
13034 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 13037 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
13035 rv = callback.WaitForResult(); | 13038 rv = callback.WaitForResult(); |
13036 EXPECT_THAT(rv, IsOk()); | 13039 EXPECT_THAT(rv, IsOk()); |
13037 | 13040 |
13038 HttpRequestInfo request2; | 13041 HttpRequestInfo request2; |
13039 request2.method = "GET"; | 13042 request2.method = "GET"; |
13040 request2.url = GURL("https://www.gmail.com/"); | 13043 request2.url = GURL("https://www.gmail.com/"); |
13041 request2.load_flags = 0; | 13044 request2.load_flags = 0; |
13042 HttpNetworkTransaction trans2(DEFAULT_PRIORITY, session.get()); | 13045 HttpNetworkTransaction trans2(DEFAULT_PRIORITY, session.get()); |
13043 | 13046 |
13044 rv = trans2.Start(&request2, callback.callback(), BoundNetLog()); | 13047 rv = trans2.Start(&request2, callback.callback(), NetLogWithSource()); |
13045 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 13048 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
13046 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 13049 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
13047 | 13050 |
13048 response = trans2.GetResponseInfo(); | 13051 response = trans2.GetResponseInfo(); |
13049 ASSERT_TRUE(response); | 13052 ASSERT_TRUE(response); |
13050 ASSERT_TRUE(response->headers); | 13053 ASSERT_TRUE(response->headers); |
13051 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); | 13054 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); |
13052 EXPECT_TRUE(response->was_fetched_via_spdy); | 13055 EXPECT_TRUE(response->was_fetched_via_spdy); |
13053 EXPECT_TRUE(response->was_alpn_negotiated); | 13056 EXPECT_TRUE(response->was_alpn_negotiated); |
13054 ASSERT_THAT(ReadTransaction(&trans2, &response_data), IsOk()); | 13057 ASSERT_THAT(ReadTransaction(&trans2, &response_data), IsOk()); |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
13103 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 13106 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
13104 | 13107 |
13105 // Start the first transaction to set up the SpdySession | 13108 // Start the first transaction to set up the SpdySession |
13106 HttpRequestInfo request1; | 13109 HttpRequestInfo request1; |
13107 request1.method = "GET"; | 13110 request1.method = "GET"; |
13108 request1.url = GURL(https_url); | 13111 request1.url = GURL(https_url); |
13109 request1.load_flags = 0; | 13112 request1.load_flags = 0; |
13110 HttpNetworkTransaction trans1(LOWEST, session.get()); | 13113 HttpNetworkTransaction trans1(LOWEST, session.get()); |
13111 TestCompletionCallback callback1; | 13114 TestCompletionCallback callback1; |
13112 EXPECT_EQ(ERR_IO_PENDING, | 13115 EXPECT_EQ(ERR_IO_PENDING, |
13113 trans1.Start(&request1, callback1.callback(), BoundNetLog())); | 13116 trans1.Start(&request1, callback1.callback(), NetLogWithSource())); |
13114 base::RunLoop().RunUntilIdle(); | 13117 base::RunLoop().RunUntilIdle(); |
13115 | 13118 |
13116 EXPECT_THAT(callback1.WaitForResult(), IsOk()); | 13119 EXPECT_THAT(callback1.WaitForResult(), IsOk()); |
13117 EXPECT_TRUE(trans1.GetResponseInfo()->was_fetched_via_spdy); | 13120 EXPECT_TRUE(trans1.GetResponseInfo()->was_fetched_via_spdy); |
13118 | 13121 |
13119 // Now, start the HTTP request | 13122 // Now, start the HTTP request |
13120 HttpRequestInfo request2; | 13123 HttpRequestInfo request2; |
13121 request2.method = "GET"; | 13124 request2.method = "GET"; |
13122 request2.url = GURL(http_url); | 13125 request2.url = GURL(http_url); |
13123 request2.load_flags = 0; | 13126 request2.load_flags = 0; |
13124 HttpNetworkTransaction trans2(MEDIUM, session.get()); | 13127 HttpNetworkTransaction trans2(MEDIUM, session.get()); |
13125 TestCompletionCallback callback2; | 13128 TestCompletionCallback callback2; |
13126 EXPECT_EQ(ERR_IO_PENDING, | 13129 EXPECT_EQ(ERR_IO_PENDING, |
13127 trans2.Start(&request2, callback2.callback(), BoundNetLog())); | 13130 trans2.Start(&request2, callback2.callback(), NetLogWithSource())); |
13128 base::RunLoop().RunUntilIdle(); | 13131 base::RunLoop().RunUntilIdle(); |
13129 | 13132 |
13130 EXPECT_THAT(callback2.WaitForResult(), IsOk()); | 13133 EXPECT_THAT(callback2.WaitForResult(), IsOk()); |
13131 EXPECT_FALSE(trans2.GetResponseInfo()->was_fetched_via_spdy); | 13134 EXPECT_FALSE(trans2.GetResponseInfo()->was_fetched_via_spdy); |
13132 } | 13135 } |
13133 | 13136 |
13134 // Alternative service requires HTTP/2 (or SPDY), but HTTP/1.1 is negotiated | 13137 // Alternative service requires HTTP/2 (or SPDY), but HTTP/1.1 is negotiated |
13135 // with the alternative server. That connection should not be used. | 13138 // with the alternative server. That connection should not be used. |
13136 TEST_F(HttpNetworkTransactionTest, AlternativeServiceNotOnHttp11) { | 13139 TEST_F(HttpNetworkTransactionTest, AlternativeServiceNotOnHttp11) { |
13137 url::SchemeHostPort server("https", "www.example.org", 443); | 13140 url::SchemeHostPort server("https", "www.example.org", 443); |
(...skipping 28 matching lines...) Expand all Loading... |
13166 | 13169 |
13167 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 13170 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
13168 HttpRequestInfo request; | 13171 HttpRequestInfo request; |
13169 request.method = "GET"; | 13172 request.method = "GET"; |
13170 request.url = GURL("https://www.example.org:443"); | 13173 request.url = GURL("https://www.example.org:443"); |
13171 request.load_flags = 0; | 13174 request.load_flags = 0; |
13172 TestCompletionCallback callback; | 13175 TestCompletionCallback callback; |
13173 | 13176 |
13174 // HTTP/2 (or SPDY) is required for alternative service, if HTTP/1.1 is | 13177 // HTTP/2 (or SPDY) is required for alternative service, if HTTP/1.1 is |
13175 // negotiated, the alternate Job should fail with ERR_ALPN_NEGOTIATION_FAILED. | 13178 // negotiated, the alternate Job should fail with ERR_ALPN_NEGOTIATION_FAILED. |
13176 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 13179 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
13177 EXPECT_THAT(callback.GetResult(rv), IsError(ERR_ALPN_NEGOTIATION_FAILED)); | 13180 EXPECT_THAT(callback.GetResult(rv), IsError(ERR_ALPN_NEGOTIATION_FAILED)); |
13178 } | 13181 } |
13179 | 13182 |
13180 // A request to a server with an alternative service fires two Jobs: one to the | 13183 // A request to a server with an alternative service fires two Jobs: one to the |
13181 // server, and an alternate one to the alternative server. If the former | 13184 // server, and an alternate one to the alternative server. If the former |
13182 // succeeds, the request should succeed, even if the latter fails because | 13185 // succeeds, the request should succeed, even if the latter fails because |
13183 // HTTP/1.1 is negotiated which is insufficient for alternative service. | 13186 // HTTP/1.1 is negotiated which is insufficient for alternative service. |
13184 TEST_F(HttpNetworkTransactionTest, FailedAlternativeServiceIsNotUserVisible) { | 13187 TEST_F(HttpNetworkTransactionTest, FailedAlternativeServiceIsNotUserVisible) { |
13185 url::SchemeHostPort server("https", "www.example.org", 443); | 13188 url::SchemeHostPort server("https", "www.example.org", 443); |
13186 HostPortPair alternative("www.example.org", 444); | 13189 HostPortPair alternative("www.example.org", 444); |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
13233 http_server_properties->SetAlternativeService(server, alternative_service, | 13236 http_server_properties->SetAlternativeService(server, alternative_service, |
13234 expiration); | 13237 expiration); |
13235 | 13238 |
13236 HttpNetworkTransaction trans1(DEFAULT_PRIORITY, session.get()); | 13239 HttpNetworkTransaction trans1(DEFAULT_PRIORITY, session.get()); |
13237 HttpRequestInfo request1; | 13240 HttpRequestInfo request1; |
13238 request1.method = "GET"; | 13241 request1.method = "GET"; |
13239 request1.url = GURL("https://www.example.org:443"); | 13242 request1.url = GURL("https://www.example.org:443"); |
13240 request1.load_flags = 0; | 13243 request1.load_flags = 0; |
13241 TestCompletionCallback callback1; | 13244 TestCompletionCallback callback1; |
13242 | 13245 |
13243 int rv = trans1.Start(&request1, callback1.callback(), BoundNetLog()); | 13246 int rv = trans1.Start(&request1, callback1.callback(), NetLogWithSource()); |
13244 rv = callback1.GetResult(rv); | 13247 rv = callback1.GetResult(rv); |
13245 EXPECT_THAT(rv, IsOk()); | 13248 EXPECT_THAT(rv, IsOk()); |
13246 | 13249 |
13247 const HttpResponseInfo* response1 = trans1.GetResponseInfo(); | 13250 const HttpResponseInfo* response1 = trans1.GetResponseInfo(); |
13248 ASSERT_TRUE(response1); | 13251 ASSERT_TRUE(response1); |
13249 ASSERT_TRUE(response1->headers); | 13252 ASSERT_TRUE(response1->headers); |
13250 EXPECT_EQ("HTTP/1.1 200 OK", response1->headers->GetStatusLine()); | 13253 EXPECT_EQ("HTTP/1.1 200 OK", response1->headers->GetStatusLine()); |
13251 | 13254 |
13252 std::string response_data1; | 13255 std::string response_data1; |
13253 ASSERT_THAT(ReadTransaction(&trans1, &response_data1), IsOk()); | 13256 ASSERT_THAT(ReadTransaction(&trans1, &response_data1), IsOk()); |
13254 EXPECT_EQ("foobar", response_data1); | 13257 EXPECT_EQ("foobar", response_data1); |
13255 | 13258 |
13256 // Alternative should be marked as broken, because HTTP/1.1 is not sufficient | 13259 // Alternative should be marked as broken, because HTTP/1.1 is not sufficient |
13257 // for alternative service. | 13260 // for alternative service. |
13258 EXPECT_TRUE( | 13261 EXPECT_TRUE( |
13259 http_server_properties->IsAlternativeServiceBroken(alternative_service)); | 13262 http_server_properties->IsAlternativeServiceBroken(alternative_service)); |
13260 | 13263 |
13261 // Since |alternative_service| is broken, a second transaction to server | 13264 // Since |alternative_service| is broken, a second transaction to server |
13262 // should not start an alternate Job. It should pool to existing connection | 13265 // should not start an alternate Job. It should pool to existing connection |
13263 // to server. | 13266 // to server. |
13264 HttpNetworkTransaction trans2(DEFAULT_PRIORITY, session.get()); | 13267 HttpNetworkTransaction trans2(DEFAULT_PRIORITY, session.get()); |
13265 HttpRequestInfo request2; | 13268 HttpRequestInfo request2; |
13266 request2.method = "GET"; | 13269 request2.method = "GET"; |
13267 request2.url = GURL("https://www.example.org:443/second"); | 13270 request2.url = GURL("https://www.example.org:443/second"); |
13268 request2.load_flags = 0; | 13271 request2.load_flags = 0; |
13269 TestCompletionCallback callback2; | 13272 TestCompletionCallback callback2; |
13270 | 13273 |
13271 rv = trans2.Start(&request2, callback2.callback(), BoundNetLog()); | 13274 rv = trans2.Start(&request2, callback2.callback(), NetLogWithSource()); |
13272 rv = callback2.GetResult(rv); | 13275 rv = callback2.GetResult(rv); |
13273 EXPECT_THAT(rv, IsOk()); | 13276 EXPECT_THAT(rv, IsOk()); |
13274 | 13277 |
13275 const HttpResponseInfo* response2 = trans2.GetResponseInfo(); | 13278 const HttpResponseInfo* response2 = trans2.GetResponseInfo(); |
13276 ASSERT_TRUE(response2); | 13279 ASSERT_TRUE(response2); |
13277 ASSERT_TRUE(response2->headers); | 13280 ASSERT_TRUE(response2->headers); |
13278 EXPECT_EQ("HTTP/1.1 200 OK", response2->headers->GetStatusLine()); | 13281 EXPECT_EQ("HTTP/1.1 200 OK", response2->headers->GetStatusLine()); |
13279 | 13282 |
13280 std::string response_data2; | 13283 std::string response_data2; |
13281 ASSERT_THAT(ReadTransaction(&trans2, &response_data2), IsOk()); | 13284 ASSERT_THAT(ReadTransaction(&trans2, &response_data2), IsOk()); |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
13342 expiration); | 13345 expiration); |
13343 | 13346 |
13344 // First transaction to alternative to open an HTTP/1.1 socket. | 13347 // First transaction to alternative to open an HTTP/1.1 socket. |
13345 HttpNetworkTransaction trans1(DEFAULT_PRIORITY, session.get()); | 13348 HttpNetworkTransaction trans1(DEFAULT_PRIORITY, session.get()); |
13346 HttpRequestInfo request1; | 13349 HttpRequestInfo request1; |
13347 request1.method = "GET"; | 13350 request1.method = "GET"; |
13348 request1.url = GURL(alternative_url); | 13351 request1.url = GURL(alternative_url); |
13349 request1.load_flags = 0; | 13352 request1.load_flags = 0; |
13350 TestCompletionCallback callback1; | 13353 TestCompletionCallback callback1; |
13351 | 13354 |
13352 int rv = trans1.Start(&request1, callback1.callback(), BoundNetLog()); | 13355 int rv = trans1.Start(&request1, callback1.callback(), NetLogWithSource()); |
13353 EXPECT_THAT(callback1.GetResult(rv), IsOk()); | 13356 EXPECT_THAT(callback1.GetResult(rv), IsOk()); |
13354 const HttpResponseInfo* response1 = trans1.GetResponseInfo(); | 13357 const HttpResponseInfo* response1 = trans1.GetResponseInfo(); |
13355 ASSERT_TRUE(response1); | 13358 ASSERT_TRUE(response1); |
13356 ASSERT_TRUE(response1->headers); | 13359 ASSERT_TRUE(response1->headers); |
13357 EXPECT_EQ("HTTP/1.1 200 OK", response1->headers->GetStatusLine()); | 13360 EXPECT_EQ("HTTP/1.1 200 OK", response1->headers->GetStatusLine()); |
13358 EXPECT_TRUE(response1->was_alpn_negotiated); | 13361 EXPECT_TRUE(response1->was_alpn_negotiated); |
13359 EXPECT_FALSE(response1->was_fetched_via_spdy); | 13362 EXPECT_FALSE(response1->was_fetched_via_spdy); |
13360 std::string response_data1; | 13363 std::string response_data1; |
13361 ASSERT_THAT(ReadTransaction(&trans1, &response_data1), IsOk()); | 13364 ASSERT_THAT(ReadTransaction(&trans1, &response_data1), IsOk()); |
13362 EXPECT_EQ("first HTTP/1.1 response from alternative", response_data1); | 13365 EXPECT_EQ("first HTTP/1.1 response from alternative", response_data1); |
13363 | 13366 |
13364 // Request for origin.example.org, which has an alternative service. This | 13367 // Request for origin.example.org, which has an alternative service. This |
13365 // will start two Jobs: the alternative looks for connections to pool to, | 13368 // will start two Jobs: the alternative looks for connections to pool to, |
13366 // finds one which is HTTP/1.1, and should ignore it, and should not try to | 13369 // finds one which is HTTP/1.1, and should ignore it, and should not try to |
13367 // open other connections to alternative server. The Job to server fails, so | 13370 // open other connections to alternative server. The Job to server fails, so |
13368 // this request fails. | 13371 // this request fails. |
13369 HttpNetworkTransaction trans2(DEFAULT_PRIORITY, session.get()); | 13372 HttpNetworkTransaction trans2(DEFAULT_PRIORITY, session.get()); |
13370 HttpRequestInfo request2; | 13373 HttpRequestInfo request2; |
13371 request2.method = "GET"; | 13374 request2.method = "GET"; |
13372 request2.url = GURL(origin_url); | 13375 request2.url = GURL(origin_url); |
13373 request2.load_flags = 0; | 13376 request2.load_flags = 0; |
13374 TestCompletionCallback callback2; | 13377 TestCompletionCallback callback2; |
13375 | 13378 |
13376 rv = trans2.Start(&request2, callback2.callback(), BoundNetLog()); | 13379 rv = trans2.Start(&request2, callback2.callback(), NetLogWithSource()); |
13377 EXPECT_THAT(callback2.GetResult(rv), IsError(ERR_CONNECTION_REFUSED)); | 13380 EXPECT_THAT(callback2.GetResult(rv), IsError(ERR_CONNECTION_REFUSED)); |
13378 | 13381 |
13379 // Another transaction to alternative. This is to test that the HTTP/1.1 | 13382 // Another transaction to alternative. This is to test that the HTTP/1.1 |
13380 // socket is still open and in the pool. | 13383 // socket is still open and in the pool. |
13381 HttpNetworkTransaction trans3(DEFAULT_PRIORITY, session.get()); | 13384 HttpNetworkTransaction trans3(DEFAULT_PRIORITY, session.get()); |
13382 HttpRequestInfo request3; | 13385 HttpRequestInfo request3; |
13383 request3.method = "GET"; | 13386 request3.method = "GET"; |
13384 request3.url = GURL(alternative_url); | 13387 request3.url = GURL(alternative_url); |
13385 request3.load_flags = 0; | 13388 request3.load_flags = 0; |
13386 TestCompletionCallback callback3; | 13389 TestCompletionCallback callback3; |
13387 | 13390 |
13388 rv = trans3.Start(&request3, callback3.callback(), BoundNetLog()); | 13391 rv = trans3.Start(&request3, callback3.callback(), NetLogWithSource()); |
13389 EXPECT_THAT(callback3.GetResult(rv), IsOk()); | 13392 EXPECT_THAT(callback3.GetResult(rv), IsOk()); |
13390 const HttpResponseInfo* response3 = trans3.GetResponseInfo(); | 13393 const HttpResponseInfo* response3 = trans3.GetResponseInfo(); |
13391 ASSERT_TRUE(response3); | 13394 ASSERT_TRUE(response3); |
13392 ASSERT_TRUE(response3->headers); | 13395 ASSERT_TRUE(response3->headers); |
13393 EXPECT_EQ("HTTP/1.1 200 OK", response3->headers->GetStatusLine()); | 13396 EXPECT_EQ("HTTP/1.1 200 OK", response3->headers->GetStatusLine()); |
13394 EXPECT_TRUE(response3->was_alpn_negotiated); | 13397 EXPECT_TRUE(response3->was_alpn_negotiated); |
13395 EXPECT_FALSE(response3->was_fetched_via_spdy); | 13398 EXPECT_FALSE(response3->was_fetched_via_spdy); |
13396 std::string response_data3; | 13399 std::string response_data3; |
13397 ASSERT_THAT(ReadTransaction(&trans3, &response_data3), IsOk()); | 13400 ASSERT_THAT(ReadTransaction(&trans3, &response_data3), IsOk()); |
13398 EXPECT_EQ("second HTTP/1.1 response from alternative", response_data3); | 13401 EXPECT_EQ("second HTTP/1.1 response from alternative", response_data3); |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
13469 | 13472 |
13470 std::unique_ptr<HttpNetworkSession> session = CreateSession(&session_deps_); | 13473 std::unique_ptr<HttpNetworkSession> session = CreateSession(&session_deps_); |
13471 | 13474 |
13472 // Start the first transaction to set up the SpdySession | 13475 // Start the first transaction to set up the SpdySession |
13473 HttpRequestInfo request1; | 13476 HttpRequestInfo request1; |
13474 request1.method = "GET"; | 13477 request1.method = "GET"; |
13475 request1.url = GURL(https_url); | 13478 request1.url = GURL(https_url); |
13476 request1.load_flags = 0; | 13479 request1.load_flags = 0; |
13477 HttpNetworkTransaction trans1(LOWEST, session.get()); | 13480 HttpNetworkTransaction trans1(LOWEST, session.get()); |
13478 TestCompletionCallback callback1; | 13481 TestCompletionCallback callback1; |
13479 int rv = trans1.Start(&request1, callback1.callback(), BoundNetLog()); | 13482 int rv = trans1.Start(&request1, callback1.callback(), NetLogWithSource()); |
13480 | 13483 |
13481 // This pause is a hack to avoid running into https://crbug.com/497228. | 13484 // This pause is a hack to avoid running into https://crbug.com/497228. |
13482 data1.RunUntilPaused(); | 13485 data1.RunUntilPaused(); |
13483 base::RunLoop().RunUntilIdle(); | 13486 base::RunLoop().RunUntilIdle(); |
13484 data1.Resume(); | 13487 data1.Resume(); |
13485 EXPECT_THAT(callback1.GetResult(rv), IsOk()); | 13488 EXPECT_THAT(callback1.GetResult(rv), IsOk()); |
13486 EXPECT_TRUE(trans1.GetResponseInfo()->was_fetched_via_spdy); | 13489 EXPECT_TRUE(trans1.GetResponseInfo()->was_fetched_via_spdy); |
13487 | 13490 |
13488 LoadTimingInfo load_timing_info1; | 13491 LoadTimingInfo load_timing_info1; |
13489 EXPECT_TRUE(trans1.GetLoadTimingInfo(&load_timing_info1)); | 13492 EXPECT_TRUE(trans1.GetLoadTimingInfo(&load_timing_info1)); |
13490 TestLoadTimingNotReusedWithPac(load_timing_info1, | 13493 TestLoadTimingNotReusedWithPac(load_timing_info1, |
13491 CONNECT_TIMING_HAS_SSL_TIMES); | 13494 CONNECT_TIMING_HAS_SSL_TIMES); |
13492 | 13495 |
13493 // Now, start the HTTP request. | 13496 // Now, start the HTTP request. |
13494 HttpRequestInfo request2; | 13497 HttpRequestInfo request2; |
13495 request2.method = "GET"; | 13498 request2.method = "GET"; |
13496 request2.url = GURL(http_url); | 13499 request2.url = GURL(http_url); |
13497 request2.load_flags = 0; | 13500 request2.load_flags = 0; |
13498 HttpNetworkTransaction trans2(MEDIUM, session.get()); | 13501 HttpNetworkTransaction trans2(MEDIUM, session.get()); |
13499 TestCompletionCallback callback2; | 13502 TestCompletionCallback callback2; |
13500 rv = trans2.Start(&request2, callback2.callback(), BoundNetLog()); | 13503 rv = trans2.Start(&request2, callback2.callback(), NetLogWithSource()); |
13501 | 13504 |
13502 // This pause is a hack to avoid running into https://crbug.com/497228. | 13505 // This pause is a hack to avoid running into https://crbug.com/497228. |
13503 data1.RunUntilPaused(); | 13506 data1.RunUntilPaused(); |
13504 base::RunLoop().RunUntilIdle(); | 13507 base::RunLoop().RunUntilIdle(); |
13505 data1.Resume(); | 13508 data1.Resume(); |
13506 EXPECT_THAT(callback2.GetResult(rv), IsOk()); | 13509 EXPECT_THAT(callback2.GetResult(rv), IsOk()); |
13507 | 13510 |
13508 EXPECT_TRUE(trans2.GetResponseInfo()->was_fetched_via_spdy); | 13511 EXPECT_TRUE(trans2.GetResponseInfo()->was_fetched_via_spdy); |
13509 | 13512 |
13510 LoadTimingInfo load_timing_info2; | 13513 LoadTimingInfo load_timing_info2; |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
13602 std::unique_ptr<HttpNetworkSession> session = CreateSession(&session_deps_); | 13605 std::unique_ptr<HttpNetworkSession> session = CreateSession(&session_deps_); |
13603 | 13606 |
13604 // Start the first transaction to set up the SpdySession | 13607 // Start the first transaction to set up the SpdySession |
13605 HttpRequestInfo request1; | 13608 HttpRequestInfo request1; |
13606 request1.method = "GET"; | 13609 request1.method = "GET"; |
13607 request1.url = GURL(url1); | 13610 request1.url = GURL(url1); |
13608 request1.load_flags = 0; | 13611 request1.load_flags = 0; |
13609 HttpNetworkTransaction trans1(LOWEST, session.get()); | 13612 HttpNetworkTransaction trans1(LOWEST, session.get()); |
13610 TestCompletionCallback callback1; | 13613 TestCompletionCallback callback1; |
13611 ASSERT_EQ(ERR_IO_PENDING, | 13614 ASSERT_EQ(ERR_IO_PENDING, |
13612 trans1.Start(&request1, callback1.callback(), BoundNetLog())); | 13615 trans1.Start(&request1, callback1.callback(), NetLogWithSource())); |
13613 // This pause is a hack to avoid running into https://crbug.com/497228. | 13616 // This pause is a hack to avoid running into https://crbug.com/497228. |
13614 data1.RunUntilPaused(); | 13617 data1.RunUntilPaused(); |
13615 base::RunLoop().RunUntilIdle(); | 13618 base::RunLoop().RunUntilIdle(); |
13616 data1.Resume(); | 13619 data1.Resume(); |
13617 | 13620 |
13618 EXPECT_THAT(callback1.WaitForResult(), IsOk()); | 13621 EXPECT_THAT(callback1.WaitForResult(), IsOk()); |
13619 EXPECT_TRUE(trans1.GetResponseInfo()->was_fetched_via_spdy); | 13622 EXPECT_TRUE(trans1.GetResponseInfo()->was_fetched_via_spdy); |
13620 | 13623 |
13621 // Now, start the HTTP request | 13624 // Now, start the HTTP request |
13622 HttpRequestInfo request2; | 13625 HttpRequestInfo request2; |
13623 request2.method = "GET"; | 13626 request2.method = "GET"; |
13624 request2.url = GURL(url2); | 13627 request2.url = GURL(url2); |
13625 request2.load_flags = 0; | 13628 request2.load_flags = 0; |
13626 HttpNetworkTransaction trans2(MEDIUM, session.get()); | 13629 HttpNetworkTransaction trans2(MEDIUM, session.get()); |
13627 TestCompletionCallback callback2; | 13630 TestCompletionCallback callback2; |
13628 EXPECT_EQ(ERR_IO_PENDING, | 13631 EXPECT_EQ(ERR_IO_PENDING, |
13629 trans2.Start(&request2, callback2.callback(), BoundNetLog())); | 13632 trans2.Start(&request2, callback2.callback(), NetLogWithSource())); |
13630 base::RunLoop().RunUntilIdle(); | 13633 base::RunLoop().RunUntilIdle(); |
13631 | 13634 |
13632 ASSERT_TRUE(callback2.have_result()); | 13635 ASSERT_TRUE(callback2.have_result()); |
13633 EXPECT_THAT(callback2.WaitForResult(), IsOk()); | 13636 EXPECT_THAT(callback2.WaitForResult(), IsOk()); |
13634 EXPECT_TRUE(trans2.GetResponseInfo()->was_fetched_via_spdy); | 13637 EXPECT_TRUE(trans2.GetResponseInfo()->was_fetched_via_spdy); |
13635 } | 13638 } |
13636 | 13639 |
13637 // Test to verify that a failed socket read (due to an ERR_CONNECTION_CLOSED | 13640 // Test to verify that a failed socket read (due to an ERR_CONNECTION_CLOSED |
13638 // error) in SPDY session, removes the socket from pool and closes the SPDY | 13641 // error) in SPDY session, removes the socket from pool and closes the SPDY |
13639 // session. Verify that new url's from the same HttpNetworkSession (and a new | 13642 // session. Verify that new url's from the same HttpNetworkSession (and a new |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
13678 | 13681 |
13679 // Start the first transaction to set up the SpdySession and verify that | 13682 // Start the first transaction to set up the SpdySession and verify that |
13680 // connection was closed. | 13683 // connection was closed. |
13681 HttpRequestInfo request1; | 13684 HttpRequestInfo request1; |
13682 request1.method = "GET"; | 13685 request1.method = "GET"; |
13683 request1.url = GURL(https_url); | 13686 request1.url = GURL(https_url); |
13684 request1.load_flags = 0; | 13687 request1.load_flags = 0; |
13685 HttpNetworkTransaction trans1(MEDIUM, session.get()); | 13688 HttpNetworkTransaction trans1(MEDIUM, session.get()); |
13686 TestCompletionCallback callback1; | 13689 TestCompletionCallback callback1; |
13687 EXPECT_EQ(ERR_IO_PENDING, | 13690 EXPECT_EQ(ERR_IO_PENDING, |
13688 trans1.Start(&request1, callback1.callback(), BoundNetLog())); | 13691 trans1.Start(&request1, callback1.callback(), NetLogWithSource())); |
13689 EXPECT_THAT(callback1.WaitForResult(), IsError(ERR_CONNECTION_CLOSED)); | 13692 EXPECT_THAT(callback1.WaitForResult(), IsError(ERR_CONNECTION_CLOSED)); |
13690 | 13693 |
13691 // Now, start the second request and make sure it succeeds. | 13694 // Now, start the second request and make sure it succeeds. |
13692 HttpRequestInfo request2; | 13695 HttpRequestInfo request2; |
13693 request2.method = "GET"; | 13696 request2.method = "GET"; |
13694 request2.url = GURL(https_url); | 13697 request2.url = GURL(https_url); |
13695 request2.load_flags = 0; | 13698 request2.load_flags = 0; |
13696 HttpNetworkTransaction trans2(MEDIUM, session.get()); | 13699 HttpNetworkTransaction trans2(MEDIUM, session.get()); |
13697 TestCompletionCallback callback2; | 13700 TestCompletionCallback callback2; |
13698 EXPECT_EQ(ERR_IO_PENDING, | 13701 EXPECT_EQ(ERR_IO_PENDING, |
13699 trans2.Start(&request2, callback2.callback(), BoundNetLog())); | 13702 trans2.Start(&request2, callback2.callback(), NetLogWithSource())); |
13700 | 13703 |
13701 ASSERT_THAT(callback2.WaitForResult(), IsOk()); | 13704 ASSERT_THAT(callback2.WaitForResult(), IsOk()); |
13702 EXPECT_TRUE(trans2.GetResponseInfo()->was_fetched_via_spdy); | 13705 EXPECT_TRUE(trans2.GetResponseInfo()->was_fetched_via_spdy); |
13703 } | 13706 } |
13704 | 13707 |
13705 TEST_F(HttpNetworkTransactionTest, CloseIdleSpdySessionToOpenNewOne) { | 13708 TEST_F(HttpNetworkTransactionTest, CloseIdleSpdySessionToOpenNewOne) { |
13706 ClientSocketPoolManager::set_max_sockets_per_group( | 13709 ClientSocketPoolManager::set_max_sockets_per_group( |
13707 HttpNetworkSession::NORMAL_SOCKET_POOL, 1); | 13710 HttpNetworkSession::NORMAL_SOCKET_POOL, 1); |
13708 ClientSocketPoolManager::set_max_sockets_per_pool( | 13711 ClientSocketPoolManager::set_max_sockets_per_pool( |
13709 HttpNetworkSession::NORMAL_SOCKET_POOL, 1); | 13712 HttpNetworkSession::NORMAL_SOCKET_POOL, 1); |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
13782 HasSpdySession(session->spdy_session_pool(), spdy_session_key_a)); | 13785 HasSpdySession(session->spdy_session_pool(), spdy_session_key_a)); |
13783 | 13786 |
13784 TestCompletionCallback callback; | 13787 TestCompletionCallback callback; |
13785 HttpRequestInfo request1; | 13788 HttpRequestInfo request1; |
13786 request1.method = "GET"; | 13789 request1.method = "GET"; |
13787 request1.url = GURL("https://www.a.com/"); | 13790 request1.url = GURL("https://www.a.com/"); |
13788 request1.load_flags = 0; | 13791 request1.load_flags = 0; |
13789 std::unique_ptr<HttpNetworkTransaction> trans( | 13792 std::unique_ptr<HttpNetworkTransaction> trans( |
13790 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 13793 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
13791 | 13794 |
13792 int rv = trans->Start(&request1, callback.callback(), BoundNetLog()); | 13795 int rv = trans->Start(&request1, callback.callback(), NetLogWithSource()); |
13793 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 13796 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
13794 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 13797 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
13795 | 13798 |
13796 const HttpResponseInfo* response = trans->GetResponseInfo(); | 13799 const HttpResponseInfo* response = trans->GetResponseInfo(); |
13797 ASSERT_TRUE(response); | 13800 ASSERT_TRUE(response); |
13798 ASSERT_TRUE(response->headers); | 13801 ASSERT_TRUE(response->headers); |
13799 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); | 13802 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); |
13800 EXPECT_TRUE(response->was_fetched_via_spdy); | 13803 EXPECT_TRUE(response->was_fetched_via_spdy); |
13801 EXPECT_TRUE(response->was_alpn_negotiated); | 13804 EXPECT_TRUE(response->was_alpn_negotiated); |
13802 | 13805 |
13803 std::string response_data; | 13806 std::string response_data; |
13804 ASSERT_THAT(ReadTransaction(trans.get(), &response_data), IsOk()); | 13807 ASSERT_THAT(ReadTransaction(trans.get(), &response_data), IsOk()); |
13805 EXPECT_EQ("hello!", response_data); | 13808 EXPECT_EQ("hello!", response_data); |
13806 trans.reset(); | 13809 trans.reset(); |
13807 EXPECT_TRUE( | 13810 EXPECT_TRUE( |
13808 HasSpdySession(session->spdy_session_pool(), spdy_session_key_a)); | 13811 HasSpdySession(session->spdy_session_pool(), spdy_session_key_a)); |
13809 | 13812 |
13810 HostPortPair host_port_pair_b("www.b.com", 443); | 13813 HostPortPair host_port_pair_b("www.b.com", 443); |
13811 SpdySessionKey spdy_session_key_b( | 13814 SpdySessionKey spdy_session_key_b( |
13812 host_port_pair_b, ProxyServer::Direct(), PRIVACY_MODE_DISABLED); | 13815 host_port_pair_b, ProxyServer::Direct(), PRIVACY_MODE_DISABLED); |
13813 EXPECT_FALSE( | 13816 EXPECT_FALSE( |
13814 HasSpdySession(session->spdy_session_pool(), spdy_session_key_b)); | 13817 HasSpdySession(session->spdy_session_pool(), spdy_session_key_b)); |
13815 HttpRequestInfo request2; | 13818 HttpRequestInfo request2; |
13816 request2.method = "GET"; | 13819 request2.method = "GET"; |
13817 request2.url = GURL("https://www.b.com/"); | 13820 request2.url = GURL("https://www.b.com/"); |
13818 request2.load_flags = 0; | 13821 request2.load_flags = 0; |
13819 trans.reset(new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 13822 trans.reset(new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
13820 | 13823 |
13821 rv = trans->Start(&request2, callback.callback(), BoundNetLog()); | 13824 rv = trans->Start(&request2, callback.callback(), NetLogWithSource()); |
13822 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 13825 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
13823 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 13826 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
13824 | 13827 |
13825 response = trans->GetResponseInfo(); | 13828 response = trans->GetResponseInfo(); |
13826 ASSERT_TRUE(response); | 13829 ASSERT_TRUE(response); |
13827 ASSERT_TRUE(response->headers); | 13830 ASSERT_TRUE(response->headers); |
13828 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); | 13831 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); |
13829 EXPECT_TRUE(response->was_fetched_via_spdy); | 13832 EXPECT_TRUE(response->was_fetched_via_spdy); |
13830 EXPECT_TRUE(response->was_alpn_negotiated); | 13833 EXPECT_TRUE(response->was_alpn_negotiated); |
13831 ASSERT_THAT(ReadTransaction(trans.get(), &response_data), IsOk()); | 13834 ASSERT_THAT(ReadTransaction(trans.get(), &response_data), IsOk()); |
13832 EXPECT_EQ("hello!", response_data); | 13835 EXPECT_EQ("hello!", response_data); |
13833 EXPECT_FALSE( | 13836 EXPECT_FALSE( |
13834 HasSpdySession(session->spdy_session_pool(), spdy_session_key_a)); | 13837 HasSpdySession(session->spdy_session_pool(), spdy_session_key_a)); |
13835 EXPECT_TRUE( | 13838 EXPECT_TRUE( |
13836 HasSpdySession(session->spdy_session_pool(), spdy_session_key_b)); | 13839 HasSpdySession(session->spdy_session_pool(), spdy_session_key_b)); |
13837 | 13840 |
13838 HostPortPair host_port_pair_a1("www.a.com", 80); | 13841 HostPortPair host_port_pair_a1("www.a.com", 80); |
13839 SpdySessionKey spdy_session_key_a1( | 13842 SpdySessionKey spdy_session_key_a1( |
13840 host_port_pair_a1, ProxyServer::Direct(), PRIVACY_MODE_DISABLED); | 13843 host_port_pair_a1, ProxyServer::Direct(), PRIVACY_MODE_DISABLED); |
13841 EXPECT_FALSE( | 13844 EXPECT_FALSE( |
13842 HasSpdySession(session->spdy_session_pool(), spdy_session_key_a1)); | 13845 HasSpdySession(session->spdy_session_pool(), spdy_session_key_a1)); |
13843 HttpRequestInfo request3; | 13846 HttpRequestInfo request3; |
13844 request3.method = "GET"; | 13847 request3.method = "GET"; |
13845 request3.url = GURL("http://www.a.com/"); | 13848 request3.url = GURL("http://www.a.com/"); |
13846 request3.load_flags = 0; | 13849 request3.load_flags = 0; |
13847 trans.reset(new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 13850 trans.reset(new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
13848 | 13851 |
13849 rv = trans->Start(&request3, callback.callback(), BoundNetLog()); | 13852 rv = trans->Start(&request3, callback.callback(), NetLogWithSource()); |
13850 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 13853 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
13851 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 13854 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
13852 | 13855 |
13853 response = trans->GetResponseInfo(); | 13856 response = trans->GetResponseInfo(); |
13854 ASSERT_TRUE(response); | 13857 ASSERT_TRUE(response); |
13855 ASSERT_TRUE(response->headers); | 13858 ASSERT_TRUE(response->headers); |
13856 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 13859 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
13857 EXPECT_FALSE(response->was_fetched_via_spdy); | 13860 EXPECT_FALSE(response->was_fetched_via_spdy); |
13858 EXPECT_FALSE(response->was_alpn_negotiated); | 13861 EXPECT_FALSE(response->was_alpn_negotiated); |
13859 ASSERT_THAT(ReadTransaction(trans.get(), &response_data), IsOk()); | 13862 ASSERT_THAT(ReadTransaction(trans.get(), &response_data), IsOk()); |
(...skipping 13 matching lines...) Expand all Loading... |
13873 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 13876 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
13874 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 13877 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
13875 | 13878 |
13876 MockConnect mock_connect(SYNCHRONOUS, ERR_NAME_NOT_RESOLVED); | 13879 MockConnect mock_connect(SYNCHRONOUS, ERR_NAME_NOT_RESOLVED); |
13877 StaticSocketDataProvider data; | 13880 StaticSocketDataProvider data; |
13878 data.set_connect_data(mock_connect); | 13881 data.set_connect_data(mock_connect); |
13879 session_deps_.socket_factory->AddSocketDataProvider(&data); | 13882 session_deps_.socket_factory->AddSocketDataProvider(&data); |
13880 | 13883 |
13881 TestCompletionCallback callback; | 13884 TestCompletionCallback callback; |
13882 | 13885 |
13883 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 13886 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
13884 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 13887 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
13885 | 13888 |
13886 rv = callback.WaitForResult(); | 13889 rv = callback.WaitForResult(); |
13887 EXPECT_THAT(rv, IsError(ERR_NAME_NOT_RESOLVED)); | 13890 EXPECT_THAT(rv, IsError(ERR_NAME_NOT_RESOLVED)); |
13888 | 13891 |
13889 // We don't care whether this succeeds or fails, but it shouldn't crash. | 13892 // We don't care whether this succeeds or fails, but it shouldn't crash. |
13890 HttpRequestHeaders request_headers; | 13893 HttpRequestHeaders request_headers; |
13891 trans.GetFullRequestHeaders(&request_headers); | 13894 trans.GetFullRequestHeaders(&request_headers); |
13892 | 13895 |
13893 ConnectionAttempts attempts; | 13896 ConnectionAttempts attempts; |
(...skipping 15 matching lines...) Expand all Loading... |
13909 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 13912 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
13910 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 13913 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
13911 | 13914 |
13912 MockConnect mock_connect(ASYNC, ERR_NAME_NOT_RESOLVED); | 13915 MockConnect mock_connect(ASYNC, ERR_NAME_NOT_RESOLVED); |
13913 StaticSocketDataProvider data; | 13916 StaticSocketDataProvider data; |
13914 data.set_connect_data(mock_connect); | 13917 data.set_connect_data(mock_connect); |
13915 session_deps_.socket_factory->AddSocketDataProvider(&data); | 13918 session_deps_.socket_factory->AddSocketDataProvider(&data); |
13916 | 13919 |
13917 TestCompletionCallback callback; | 13920 TestCompletionCallback callback; |
13918 | 13921 |
13919 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 13922 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
13920 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 13923 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
13921 | 13924 |
13922 rv = callback.WaitForResult(); | 13925 rv = callback.WaitForResult(); |
13923 EXPECT_THAT(rv, IsError(ERR_NAME_NOT_RESOLVED)); | 13926 EXPECT_THAT(rv, IsError(ERR_NAME_NOT_RESOLVED)); |
13924 | 13927 |
13925 // We don't care whether this succeeds or fails, but it shouldn't crash. | 13928 // We don't care whether this succeeds or fails, but it shouldn't crash. |
13926 HttpRequestHeaders request_headers; | 13929 HttpRequestHeaders request_headers; |
13927 trans.GetFullRequestHeaders(&request_headers); | 13930 trans.GetFullRequestHeaders(&request_headers); |
13928 | 13931 |
13929 ConnectionAttempts attempts; | 13932 ConnectionAttempts attempts; |
(...skipping 21 matching lines...) Expand all Loading... |
13951 MockRead data_reads[] = { | 13954 MockRead data_reads[] = { |
13952 MockRead(SYNCHRONOUS, ERR_UNEXPECTED), // Should not be reached. | 13955 MockRead(SYNCHRONOUS, ERR_UNEXPECTED), // Should not be reached. |
13953 }; | 13956 }; |
13954 | 13957 |
13955 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 13958 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
13956 data_writes, arraysize(data_writes)); | 13959 data_writes, arraysize(data_writes)); |
13957 session_deps_.socket_factory->AddSocketDataProvider(&data); | 13960 session_deps_.socket_factory->AddSocketDataProvider(&data); |
13958 | 13961 |
13959 TestCompletionCallback callback; | 13962 TestCompletionCallback callback; |
13960 | 13963 |
13961 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 13964 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
13962 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 13965 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
13963 | 13966 |
13964 rv = callback.WaitForResult(); | 13967 rv = callback.WaitForResult(); |
13965 EXPECT_THAT(rv, IsError(ERR_CONNECTION_RESET)); | 13968 EXPECT_THAT(rv, IsError(ERR_CONNECTION_RESET)); |
13966 | 13969 |
13967 HttpRequestHeaders request_headers; | 13970 HttpRequestHeaders request_headers; |
13968 EXPECT_TRUE(trans.GetFullRequestHeaders(&request_headers)); | 13971 EXPECT_TRUE(trans.GetFullRequestHeaders(&request_headers)); |
13969 EXPECT_TRUE(request_headers.HasHeader("Host")); | 13972 EXPECT_TRUE(request_headers.HasHeader("Host")); |
13970 } | 13973 } |
13971 | 13974 |
(...skipping 12 matching lines...) Expand all Loading... |
13984 MockRead data_reads[] = { | 13987 MockRead data_reads[] = { |
13985 MockRead(SYNCHRONOUS, ERR_UNEXPECTED), // Should not be reached. | 13988 MockRead(SYNCHRONOUS, ERR_UNEXPECTED), // Should not be reached. |
13986 }; | 13989 }; |
13987 | 13990 |
13988 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 13991 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
13989 data_writes, arraysize(data_writes)); | 13992 data_writes, arraysize(data_writes)); |
13990 session_deps_.socket_factory->AddSocketDataProvider(&data); | 13993 session_deps_.socket_factory->AddSocketDataProvider(&data); |
13991 | 13994 |
13992 TestCompletionCallback callback; | 13995 TestCompletionCallback callback; |
13993 | 13996 |
13994 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 13997 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
13995 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 13998 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
13996 | 13999 |
13997 rv = callback.WaitForResult(); | 14000 rv = callback.WaitForResult(); |
13998 EXPECT_THAT(rv, IsError(ERR_CONNECTION_RESET)); | 14001 EXPECT_THAT(rv, IsError(ERR_CONNECTION_RESET)); |
13999 | 14002 |
14000 HttpRequestHeaders request_headers; | 14003 HttpRequestHeaders request_headers; |
14001 EXPECT_TRUE(trans.GetFullRequestHeaders(&request_headers)); | 14004 EXPECT_TRUE(trans.GetFullRequestHeaders(&request_headers)); |
14002 EXPECT_TRUE(request_headers.HasHeader("Host")); | 14005 EXPECT_TRUE(request_headers.HasHeader("Host")); |
14003 } | 14006 } |
14004 | 14007 |
(...skipping 15 matching lines...) Expand all Loading... |
14020 MockRead data_reads[] = { | 14023 MockRead data_reads[] = { |
14021 MockRead(SYNCHRONOUS, ERR_CONNECTION_RESET), | 14024 MockRead(SYNCHRONOUS, ERR_CONNECTION_RESET), |
14022 }; | 14025 }; |
14023 | 14026 |
14024 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 14027 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
14025 data_writes, arraysize(data_writes)); | 14028 data_writes, arraysize(data_writes)); |
14026 session_deps_.socket_factory->AddSocketDataProvider(&data); | 14029 session_deps_.socket_factory->AddSocketDataProvider(&data); |
14027 | 14030 |
14028 TestCompletionCallback callback; | 14031 TestCompletionCallback callback; |
14029 | 14032 |
14030 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 14033 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
14031 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 14034 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
14032 | 14035 |
14033 rv = callback.WaitForResult(); | 14036 rv = callback.WaitForResult(); |
14034 EXPECT_THAT(rv, IsError(ERR_CONNECTION_RESET)); | 14037 EXPECT_THAT(rv, IsError(ERR_CONNECTION_RESET)); |
14035 | 14038 |
14036 HttpRequestHeaders request_headers; | 14039 HttpRequestHeaders request_headers; |
14037 EXPECT_TRUE(trans.GetFullRequestHeaders(&request_headers)); | 14040 EXPECT_TRUE(trans.GetFullRequestHeaders(&request_headers)); |
14038 EXPECT_TRUE(request_headers.HasHeader("Host")); | 14041 EXPECT_TRUE(request_headers.HasHeader("Host")); |
14039 } | 14042 } |
14040 | 14043 |
(...skipping 15 matching lines...) Expand all Loading... |
14056 MockRead data_reads[] = { | 14059 MockRead data_reads[] = { |
14057 MockRead(ASYNC, ERR_CONNECTION_RESET), | 14060 MockRead(ASYNC, ERR_CONNECTION_RESET), |
14058 }; | 14061 }; |
14059 | 14062 |
14060 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 14063 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
14061 data_writes, arraysize(data_writes)); | 14064 data_writes, arraysize(data_writes)); |
14062 session_deps_.socket_factory->AddSocketDataProvider(&data); | 14065 session_deps_.socket_factory->AddSocketDataProvider(&data); |
14063 | 14066 |
14064 TestCompletionCallback callback; | 14067 TestCompletionCallback callback; |
14065 | 14068 |
14066 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 14069 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
14067 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 14070 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
14068 | 14071 |
14069 rv = callback.WaitForResult(); | 14072 rv = callback.WaitForResult(); |
14070 EXPECT_THAT(rv, IsError(ERR_CONNECTION_RESET)); | 14073 EXPECT_THAT(rv, IsError(ERR_CONNECTION_RESET)); |
14071 | 14074 |
14072 HttpRequestHeaders request_headers; | 14075 HttpRequestHeaders request_headers; |
14073 EXPECT_TRUE(trans.GetFullRequestHeaders(&request_headers)); | 14076 EXPECT_TRUE(trans.GetFullRequestHeaders(&request_headers)); |
14074 EXPECT_TRUE(request_headers.HasHeader("Host")); | 14077 EXPECT_TRUE(request_headers.HasHeader("Host")); |
14075 } | 14078 } |
14076 | 14079 |
(...skipping 20 matching lines...) Expand all Loading... |
14097 "hello"), | 14100 "hello"), |
14098 MockRead(ASYNC, ERR_UNEXPECTED), | 14101 MockRead(ASYNC, ERR_UNEXPECTED), |
14099 }; | 14102 }; |
14100 | 14103 |
14101 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 14104 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
14102 data_writes, arraysize(data_writes)); | 14105 data_writes, arraysize(data_writes)); |
14103 session_deps_.socket_factory->AddSocketDataProvider(&data); | 14106 session_deps_.socket_factory->AddSocketDataProvider(&data); |
14104 | 14107 |
14105 TestCompletionCallback callback; | 14108 TestCompletionCallback callback; |
14106 | 14109 |
14107 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 14110 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
14108 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 14111 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
14109 | 14112 |
14110 rv = callback.WaitForResult(); | 14113 rv = callback.WaitForResult(); |
14111 EXPECT_THAT(rv, IsOk()); | 14114 EXPECT_THAT(rv, IsOk()); |
14112 | 14115 |
14113 HttpRequestHeaders request_headers; | 14116 HttpRequestHeaders request_headers; |
14114 EXPECT_TRUE(trans.GetFullRequestHeaders(&request_headers)); | 14117 EXPECT_TRUE(trans.GetFullRequestHeaders(&request_headers)); |
14115 std::string foo; | 14118 std::string foo; |
14116 EXPECT_TRUE(request_headers.GetHeader("X-Foo", &foo)); | 14119 EXPECT_TRUE(request_headers.GetHeader("X-Foo", &foo)); |
14117 EXPECT_EQ("bar", foo); | 14120 EXPECT_EQ("bar", foo); |
14118 } | 14121 } |
14119 | 14122 |
14120 namespace { | 14123 namespace { |
14121 | 14124 |
14122 // Fake HttpStream that simply records calls to SetPriority(). | 14125 // Fake HttpStream that simply records calls to SetPriority(). |
14123 class FakeStream : public HttpStream, | 14126 class FakeStream : public HttpStream, |
14124 public base::SupportsWeakPtr<FakeStream> { | 14127 public base::SupportsWeakPtr<FakeStream> { |
14125 public: | 14128 public: |
14126 explicit FakeStream(RequestPriority priority) : priority_(priority) {} | 14129 explicit FakeStream(RequestPriority priority) : priority_(priority) {} |
14127 ~FakeStream() override {} | 14130 ~FakeStream() override {} |
14128 | 14131 |
14129 RequestPriority priority() const { return priority_; } | 14132 RequestPriority priority() const { return priority_; } |
14130 | 14133 |
14131 int InitializeStream(const HttpRequestInfo* request_info, | 14134 int InitializeStream(const HttpRequestInfo* request_info, |
14132 RequestPriority priority, | 14135 RequestPriority priority, |
14133 const BoundNetLog& net_log, | 14136 const NetLogWithSource& net_log, |
14134 const CompletionCallback& callback) override { | 14137 const CompletionCallback& callback) override { |
14135 return ERR_IO_PENDING; | 14138 return ERR_IO_PENDING; |
14136 } | 14139 } |
14137 | 14140 |
14138 int SendRequest(const HttpRequestHeaders& request_headers, | 14141 int SendRequest(const HttpRequestHeaders& request_headers, |
14139 HttpResponseInfo* response, | 14142 HttpResponseInfo* response, |
14140 const CompletionCallback& callback) override { | 14143 const CompletionCallback& callback) override { |
14141 ADD_FAILURE(); | 14144 ADD_FAILURE(); |
14142 return ERR_UNEXPECTED; | 14145 return ERR_UNEXPECTED; |
14143 } | 14146 } |
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
14293 // RequestStream() (which may be NULL if it was destroyed already). | 14296 // RequestStream() (which may be NULL if it was destroyed already). |
14294 base::WeakPtr<FakeStreamRequest> last_stream_request() { | 14297 base::WeakPtr<FakeStreamRequest> last_stream_request() { |
14295 return last_stream_request_; | 14298 return last_stream_request_; |
14296 } | 14299 } |
14297 | 14300 |
14298 HttpStreamRequest* RequestStream(const HttpRequestInfo& info, | 14301 HttpStreamRequest* RequestStream(const HttpRequestInfo& info, |
14299 RequestPriority priority, | 14302 RequestPriority priority, |
14300 const SSLConfig& server_ssl_config, | 14303 const SSLConfig& server_ssl_config, |
14301 const SSLConfig& proxy_ssl_config, | 14304 const SSLConfig& proxy_ssl_config, |
14302 HttpStreamRequest::Delegate* delegate, | 14305 HttpStreamRequest::Delegate* delegate, |
14303 const BoundNetLog& net_log) override { | 14306 const NetLogWithSource& net_log) override { |
14304 FakeStreamRequest* fake_request = new FakeStreamRequest(priority, delegate); | 14307 FakeStreamRequest* fake_request = new FakeStreamRequest(priority, delegate); |
14305 last_stream_request_ = fake_request->AsWeakPtr(); | 14308 last_stream_request_ = fake_request->AsWeakPtr(); |
14306 return fake_request; | 14309 return fake_request; |
14307 } | 14310 } |
14308 | 14311 |
14309 HttpStreamRequest* RequestBidirectionalStreamImpl( | 14312 HttpStreamRequest* RequestBidirectionalStreamImpl( |
14310 const HttpRequestInfo& info, | 14313 const HttpRequestInfo& info, |
14311 RequestPriority priority, | 14314 RequestPriority priority, |
14312 const SSLConfig& server_ssl_config, | 14315 const SSLConfig& server_ssl_config, |
14313 const SSLConfig& proxy_ssl_config, | 14316 const SSLConfig& proxy_ssl_config, |
14314 HttpStreamRequest::Delegate* delegate, | 14317 HttpStreamRequest::Delegate* delegate, |
14315 const BoundNetLog& net_log) override { | 14318 const NetLogWithSource& net_log) override { |
14316 NOTREACHED(); | 14319 NOTREACHED(); |
14317 return nullptr; | 14320 return nullptr; |
14318 } | 14321 } |
14319 | 14322 |
14320 HttpStreamRequest* RequestWebSocketHandshakeStream( | 14323 HttpStreamRequest* RequestWebSocketHandshakeStream( |
14321 const HttpRequestInfo& info, | 14324 const HttpRequestInfo& info, |
14322 RequestPriority priority, | 14325 RequestPriority priority, |
14323 const SSLConfig& server_ssl_config, | 14326 const SSLConfig& server_ssl_config, |
14324 const SSLConfig& proxy_ssl_config, | 14327 const SSLConfig& proxy_ssl_config, |
14325 HttpStreamRequest::Delegate* delegate, | 14328 HttpStreamRequest::Delegate* delegate, |
14326 WebSocketHandshakeStreamBase::CreateHelper* create_helper, | 14329 WebSocketHandshakeStreamBase::CreateHelper* create_helper, |
14327 const BoundNetLog& net_log) override { | 14330 const NetLogWithSource& net_log) override { |
14328 FakeStreamRequest* fake_request = | 14331 FakeStreamRequest* fake_request = |
14329 new FakeStreamRequest(priority, delegate, create_helper); | 14332 new FakeStreamRequest(priority, delegate, create_helper); |
14330 last_stream_request_ = fake_request->AsWeakPtr(); | 14333 last_stream_request_ = fake_request->AsWeakPtr(); |
14331 return fake_request; | 14334 return fake_request; |
14332 } | 14335 } |
14333 | 14336 |
14334 void PreconnectStreams(int num_streams, | 14337 void PreconnectStreams(int num_streams, |
14335 const HttpRequestInfo& info) override { | 14338 const HttpRequestInfo& info) override { |
14336 ADD_FAILURE(); | 14339 ADD_FAILURE(); |
14337 } | 14340 } |
(...skipping 18 matching lines...) Expand all Loading... |
14356 bool using_proxy) | 14359 bool using_proxy) |
14357 : state_(std::move(connection), using_proxy, false) {} | 14360 : state_(std::move(connection), using_proxy, false) {} |
14358 | 14361 |
14359 // Fake implementation of HttpStreamBase methods. | 14362 // Fake implementation of HttpStreamBase methods. |
14360 // This ends up being quite "real" because this object has to really send data | 14363 // This ends up being quite "real" because this object has to really send data |
14361 // on the mock socket. It might be easier to use the real implementation, but | 14364 // on the mock socket. It might be easier to use the real implementation, but |
14362 // the fact that the WebSocket code is not compiled on iOS makes that | 14365 // the fact that the WebSocket code is not compiled on iOS makes that |
14363 // difficult. | 14366 // difficult. |
14364 int InitializeStream(const HttpRequestInfo* request_info, | 14367 int InitializeStream(const HttpRequestInfo* request_info, |
14365 RequestPriority priority, | 14368 RequestPriority priority, |
14366 const BoundNetLog& net_log, | 14369 const NetLogWithSource& net_log, |
14367 const CompletionCallback& callback) override { | 14370 const CompletionCallback& callback) override { |
14368 state_.Initialize(request_info, priority, net_log, callback); | 14371 state_.Initialize(request_info, priority, net_log, callback); |
14369 return OK; | 14372 return OK; |
14370 } | 14373 } |
14371 | 14374 |
14372 int SendRequest(const HttpRequestHeaders& request_headers, | 14375 int SendRequest(const HttpRequestHeaders& request_headers, |
14373 HttpResponseInfo* response, | 14376 HttpResponseInfo* response, |
14374 const CompletionCallback& callback) override { | 14377 const CompletionCallback& callback) override { |
14375 return parser()->SendRequest(state_.GenerateRequestLine(), request_headers, | 14378 return parser()->SendRequest(state_.GenerateRequestLine(), request_headers, |
14376 response, callback); | 14379 response, callback); |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
14496 FakeStreamFactory* fake_factory = new FakeStreamFactory(); | 14499 FakeStreamFactory* fake_factory = new FakeStreamFactory(); |
14497 peer.SetHttpStreamFactory(std::unique_ptr<HttpStreamFactory>(fake_factory)); | 14500 peer.SetHttpStreamFactory(std::unique_ptr<HttpStreamFactory>(fake_factory)); |
14498 | 14501 |
14499 HttpNetworkTransaction trans(LOW, session.get()); | 14502 HttpNetworkTransaction trans(LOW, session.get()); |
14500 | 14503 |
14501 ASSERT_FALSE(fake_factory->last_stream_request()); | 14504 ASSERT_FALSE(fake_factory->last_stream_request()); |
14502 | 14505 |
14503 HttpRequestInfo request; | 14506 HttpRequestInfo request; |
14504 TestCompletionCallback callback; | 14507 TestCompletionCallback callback; |
14505 EXPECT_EQ(ERR_IO_PENDING, | 14508 EXPECT_EQ(ERR_IO_PENDING, |
14506 trans.Start(&request, callback.callback(), BoundNetLog())); | 14509 trans.Start(&request, callback.callback(), NetLogWithSource())); |
14507 | 14510 |
14508 base::WeakPtr<FakeStreamRequest> fake_request = | 14511 base::WeakPtr<FakeStreamRequest> fake_request = |
14509 fake_factory->last_stream_request(); | 14512 fake_factory->last_stream_request(); |
14510 ASSERT_TRUE(fake_request); | 14513 ASSERT_TRUE(fake_request); |
14511 EXPECT_EQ(LOW, fake_request->priority()); | 14514 EXPECT_EQ(LOW, fake_request->priority()); |
14512 } | 14515 } |
14513 | 14516 |
14514 // Make sure that HttpNetworkTransaction passes on its priority | 14517 // Make sure that HttpNetworkTransaction passes on its priority |
14515 // updates to its stream request. | 14518 // updates to its stream request. |
14516 TEST_F(HttpNetworkTransactionTest, SetStreamRequestPriority) { | 14519 TEST_F(HttpNetworkTransactionTest, SetStreamRequestPriority) { |
14517 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 14520 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
14518 HttpNetworkSessionPeer peer(session.get()); | 14521 HttpNetworkSessionPeer peer(session.get()); |
14519 FakeStreamFactory* fake_factory = new FakeStreamFactory(); | 14522 FakeStreamFactory* fake_factory = new FakeStreamFactory(); |
14520 peer.SetHttpStreamFactory(std::unique_ptr<HttpStreamFactory>(fake_factory)); | 14523 peer.SetHttpStreamFactory(std::unique_ptr<HttpStreamFactory>(fake_factory)); |
14521 | 14524 |
14522 HttpNetworkTransaction trans(LOW, session.get()); | 14525 HttpNetworkTransaction trans(LOW, session.get()); |
14523 | 14526 |
14524 HttpRequestInfo request; | 14527 HttpRequestInfo request; |
14525 TestCompletionCallback callback; | 14528 TestCompletionCallback callback; |
14526 EXPECT_EQ(ERR_IO_PENDING, | 14529 EXPECT_EQ(ERR_IO_PENDING, |
14527 trans.Start(&request, callback.callback(), BoundNetLog())); | 14530 trans.Start(&request, callback.callback(), NetLogWithSource())); |
14528 | 14531 |
14529 base::WeakPtr<FakeStreamRequest> fake_request = | 14532 base::WeakPtr<FakeStreamRequest> fake_request = |
14530 fake_factory->last_stream_request(); | 14533 fake_factory->last_stream_request(); |
14531 ASSERT_TRUE(fake_request); | 14534 ASSERT_TRUE(fake_request); |
14532 EXPECT_EQ(LOW, fake_request->priority()); | 14535 EXPECT_EQ(LOW, fake_request->priority()); |
14533 | 14536 |
14534 trans.SetPriority(LOWEST); | 14537 trans.SetPriority(LOWEST); |
14535 ASSERT_TRUE(fake_request); | 14538 ASSERT_TRUE(fake_request); |
14536 EXPECT_EQ(LOWEST, fake_request->priority()); | 14539 EXPECT_EQ(LOWEST, fake_request->priority()); |
14537 } | 14540 } |
14538 | 14541 |
14539 // Make sure that HttpNetworkTransaction passes on its priority | 14542 // Make sure that HttpNetworkTransaction passes on its priority |
14540 // updates to its stream. | 14543 // updates to its stream. |
14541 TEST_F(HttpNetworkTransactionTest, SetStreamPriority) { | 14544 TEST_F(HttpNetworkTransactionTest, SetStreamPriority) { |
14542 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 14545 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
14543 HttpNetworkSessionPeer peer(session.get()); | 14546 HttpNetworkSessionPeer peer(session.get()); |
14544 FakeStreamFactory* fake_factory = new FakeStreamFactory(); | 14547 FakeStreamFactory* fake_factory = new FakeStreamFactory(); |
14545 peer.SetHttpStreamFactory(std::unique_ptr<HttpStreamFactory>(fake_factory)); | 14548 peer.SetHttpStreamFactory(std::unique_ptr<HttpStreamFactory>(fake_factory)); |
14546 | 14549 |
14547 HttpNetworkTransaction trans(LOW, session.get()); | 14550 HttpNetworkTransaction trans(LOW, session.get()); |
14548 | 14551 |
14549 HttpRequestInfo request; | 14552 HttpRequestInfo request; |
14550 TestCompletionCallback callback; | 14553 TestCompletionCallback callback; |
14551 EXPECT_EQ(ERR_IO_PENDING, | 14554 EXPECT_EQ(ERR_IO_PENDING, |
14552 trans.Start(&request, callback.callback(), BoundNetLog())); | 14555 trans.Start(&request, callback.callback(), NetLogWithSource())); |
14553 | 14556 |
14554 base::WeakPtr<FakeStreamRequest> fake_request = | 14557 base::WeakPtr<FakeStreamRequest> fake_request = |
14555 fake_factory->last_stream_request(); | 14558 fake_factory->last_stream_request(); |
14556 ASSERT_TRUE(fake_request); | 14559 ASSERT_TRUE(fake_request); |
14557 base::WeakPtr<FakeStream> fake_stream = fake_request->FinishStreamRequest(); | 14560 base::WeakPtr<FakeStream> fake_stream = fake_request->FinishStreamRequest(); |
14558 ASSERT_TRUE(fake_stream); | 14561 ASSERT_TRUE(fake_stream); |
14559 EXPECT_EQ(LOW, fake_stream->priority()); | 14562 EXPECT_EQ(LOW, fake_stream->priority()); |
14560 | 14563 |
14561 trans.SetPriority(LOWEST); | 14564 trans.SetPriority(LOWEST); |
14562 EXPECT_EQ(LOWEST, fake_stream->priority()); | 14565 EXPECT_EQ(LOWEST, fake_stream->priority()); |
(...skipping 16 matching lines...) Expand all Loading... |
14579 HttpNetworkTransaction trans(LOW, session.get()); | 14582 HttpNetworkTransaction trans(LOW, session.get()); |
14580 trans.SetWebSocketHandshakeStreamCreateHelper( | 14583 trans.SetWebSocketHandshakeStreamCreateHelper( |
14581 &websocket_stream_create_helper); | 14584 &websocket_stream_create_helper); |
14582 | 14585 |
14583 HttpRequestInfo request; | 14586 HttpRequestInfo request; |
14584 TestCompletionCallback callback; | 14587 TestCompletionCallback callback; |
14585 request.method = "GET"; | 14588 request.method = "GET"; |
14586 request.url = GURL(test_cases[i]); | 14589 request.url = GURL(test_cases[i]); |
14587 | 14590 |
14588 EXPECT_EQ(ERR_IO_PENDING, | 14591 EXPECT_EQ(ERR_IO_PENDING, |
14589 trans.Start(&request, callback.callback(), BoundNetLog())); | 14592 trans.Start(&request, callback.callback(), NetLogWithSource())); |
14590 | 14593 |
14591 base::WeakPtr<FakeStreamRequest> fake_request = | 14594 base::WeakPtr<FakeStreamRequest> fake_request = |
14592 fake_factory->last_stream_request(); | 14595 fake_factory->last_stream_request(); |
14593 ASSERT_TRUE(fake_request); | 14596 ASSERT_TRUE(fake_request); |
14594 EXPECT_EQ(&websocket_stream_create_helper, | 14597 EXPECT_EQ(&websocket_stream_create_helper, |
14595 fake_request->websocket_stream_create_helper()); | 14598 fake_request->websocket_stream_create_helper()); |
14596 } | 14599 } |
14597 } | 14600 } |
14598 | 14601 |
14599 // Tests that when a used socket is returned to the SSL socket pool, it's closed | 14602 // Tests that when a used socket is returned to the SSL socket pool, it's closed |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
14649 }; | 14652 }; |
14650 StaticSocketDataProvider http_data(http_reads, arraysize(http_reads), | 14653 StaticSocketDataProvider http_data(http_reads, arraysize(http_reads), |
14651 http_writes, arraysize(http_writes)); | 14654 http_writes, arraysize(http_writes)); |
14652 session_deps_.socket_factory->AddSocketDataProvider(&http_data); | 14655 session_deps_.socket_factory->AddSocketDataProvider(&http_data); |
14653 | 14656 |
14654 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 14657 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
14655 | 14658 |
14656 // Start the SSL request. | 14659 // Start the SSL request. |
14657 TestCompletionCallback ssl_callback; | 14660 TestCompletionCallback ssl_callback; |
14658 HttpNetworkTransaction ssl_trans(DEFAULT_PRIORITY, session.get()); | 14661 HttpNetworkTransaction ssl_trans(DEFAULT_PRIORITY, session.get()); |
14659 ASSERT_EQ( | 14662 ASSERT_EQ(ERR_IO_PENDING, |
14660 ERR_IO_PENDING, | 14663 ssl_trans.Start(&ssl_request, ssl_callback.callback(), |
14661 ssl_trans.Start(&ssl_request, ssl_callback.callback(), BoundNetLog())); | 14664 NetLogWithSource())); |
14662 | 14665 |
14663 // Start the HTTP request. Pool should stall. | 14666 // Start the HTTP request. Pool should stall. |
14664 TestCompletionCallback http_callback; | 14667 TestCompletionCallback http_callback; |
14665 HttpNetworkTransaction http_trans(DEFAULT_PRIORITY, session.get()); | 14668 HttpNetworkTransaction http_trans(DEFAULT_PRIORITY, session.get()); |
14666 ASSERT_EQ( | 14669 ASSERT_EQ(ERR_IO_PENDING, |
14667 ERR_IO_PENDING, | 14670 http_trans.Start(&http_request, http_callback.callback(), |
14668 http_trans.Start(&http_request, http_callback.callback(), BoundNetLog())); | 14671 NetLogWithSource())); |
14669 EXPECT_TRUE(IsTransportSocketPoolStalled(session.get())); | 14672 EXPECT_TRUE(IsTransportSocketPoolStalled(session.get())); |
14670 | 14673 |
14671 // Wait for response from SSL request. | 14674 // Wait for response from SSL request. |
14672 ASSERT_THAT(ssl_callback.WaitForResult(), IsOk()); | 14675 ASSERT_THAT(ssl_callback.WaitForResult(), IsOk()); |
14673 std::string response_data; | 14676 std::string response_data; |
14674 ASSERT_THAT(ReadTransaction(&ssl_trans, &response_data), IsOk()); | 14677 ASSERT_THAT(ReadTransaction(&ssl_trans, &response_data), IsOk()); |
14675 EXPECT_EQ("hello world", response_data); | 14678 EXPECT_EQ("hello world", response_data); |
14676 | 14679 |
14677 // The SSL socket should automatically be closed, so the HTTP request can | 14680 // The SSL socket should automatically be closed, so the HTTP request can |
14678 // start. | 14681 // start. |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
14735 | 14738 |
14736 // Preconnect an SSL socket. A preconnect is needed because connect jobs are | 14739 // Preconnect an SSL socket. A preconnect is needed because connect jobs are |
14737 // cancelled when a normal transaction is cancelled. | 14740 // cancelled when a normal transaction is cancelled. |
14738 HttpStreamFactory* http_stream_factory = session->http_stream_factory(); | 14741 HttpStreamFactory* http_stream_factory = session->http_stream_factory(); |
14739 http_stream_factory->PreconnectStreams(1, ssl_request); | 14742 http_stream_factory->PreconnectStreams(1, ssl_request); |
14740 EXPECT_EQ(0, GetIdleSocketCountInSSLSocketPool(session.get())); | 14743 EXPECT_EQ(0, GetIdleSocketCountInSSLSocketPool(session.get())); |
14741 | 14744 |
14742 // Start the HTTP request. Pool should stall. | 14745 // Start the HTTP request. Pool should stall. |
14743 TestCompletionCallback http_callback; | 14746 TestCompletionCallback http_callback; |
14744 HttpNetworkTransaction http_trans(DEFAULT_PRIORITY, session.get()); | 14747 HttpNetworkTransaction http_trans(DEFAULT_PRIORITY, session.get()); |
14745 ASSERT_EQ( | 14748 ASSERT_EQ(ERR_IO_PENDING, |
14746 ERR_IO_PENDING, | 14749 http_trans.Start(&http_request, http_callback.callback(), |
14747 http_trans.Start(&http_request, http_callback.callback(), BoundNetLog())); | 14750 NetLogWithSource())); |
14748 EXPECT_TRUE(IsTransportSocketPoolStalled(session.get())); | 14751 EXPECT_TRUE(IsTransportSocketPoolStalled(session.get())); |
14749 | 14752 |
14750 // The SSL connection will automatically be closed once the connection is | 14753 // The SSL connection will automatically be closed once the connection is |
14751 // established, to let the HTTP request start. | 14754 // established, to let the HTTP request start. |
14752 ASSERT_THAT(http_callback.WaitForResult(), IsOk()); | 14755 ASSERT_THAT(http_callback.WaitForResult(), IsOk()); |
14753 std::string response_data; | 14756 std::string response_data; |
14754 ASSERT_THAT(ReadTransaction(&http_trans, &response_data), IsOk()); | 14757 ASSERT_THAT(ReadTransaction(&http_trans, &response_data), IsOk()); |
14755 EXPECT_EQ("falafel", response_data); | 14758 EXPECT_EQ("falafel", response_data); |
14756 | 14759 |
14757 EXPECT_EQ(1, GetIdleSocketCountInTransportSocketPool(session.get())); | 14760 EXPECT_EQ(1, GetIdleSocketCountInTransportSocketPool(session.get())); |
(...skipping 26 matching lines...) Expand all Loading... |
14784 MockRead("HTTP/1.0 400 Not OK\r\n\r\n"), | 14787 MockRead("HTTP/1.0 400 Not OK\r\n\r\n"), |
14785 MockRead("hello world"), | 14788 MockRead("hello world"), |
14786 MockRead(SYNCHRONOUS, OK), | 14789 MockRead(SYNCHRONOUS, OK), |
14787 }; | 14790 }; |
14788 StaticSocketDataProvider data(data_reads, arraysize(data_reads), data_writes, | 14791 StaticSocketDataProvider data(data_reads, arraysize(data_reads), data_writes, |
14789 arraysize(data_writes)); | 14792 arraysize(data_writes)); |
14790 session_deps_.socket_factory->AddSocketDataProvider(&data); | 14793 session_deps_.socket_factory->AddSocketDataProvider(&data); |
14791 | 14794 |
14792 TestCompletionCallback callback; | 14795 TestCompletionCallback callback; |
14793 | 14796 |
14794 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 14797 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
14795 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 14798 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
14796 | 14799 |
14797 rv = callback.WaitForResult(); | 14800 rv = callback.WaitForResult(); |
14798 EXPECT_THAT(rv, IsOk()); | 14801 EXPECT_THAT(rv, IsOk()); |
14799 | 14802 |
14800 const HttpResponseInfo* response = trans.GetResponseInfo(); | 14803 const HttpResponseInfo* response = trans.GetResponseInfo(); |
14801 ASSERT_TRUE(response); | 14804 ASSERT_TRUE(response); |
14802 | 14805 |
14803 EXPECT_TRUE(response->headers); | 14806 EXPECT_TRUE(response->headers); |
14804 EXPECT_EQ("HTTP/1.0 400 Not OK", response->headers->GetStatusLine()); | 14807 EXPECT_EQ("HTTP/1.0 400 Not OK", response->headers->GetStatusLine()); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
14839 session_deps_.socket_factory->AddSocketDataProvider(&data); | 14842 session_deps_.socket_factory->AddSocketDataProvider(&data); |
14840 | 14843 |
14841 TestCompletionCallback callback; | 14844 TestCompletionCallback callback; |
14842 HttpRequestInfo request1; | 14845 HttpRequestInfo request1; |
14843 request1.method = "GET"; | 14846 request1.method = "GET"; |
14844 request1.url = GURL("http://www.foo.com/"); | 14847 request1.url = GURL("http://www.foo.com/"); |
14845 request1.load_flags = 0; | 14848 request1.load_flags = 0; |
14846 | 14849 |
14847 std::unique_ptr<HttpNetworkTransaction> trans1( | 14850 std::unique_ptr<HttpNetworkTransaction> trans1( |
14848 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 14851 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
14849 int rv = trans1->Start(&request1, callback.callback(), BoundNetLog()); | 14852 int rv = trans1->Start(&request1, callback.callback(), NetLogWithSource()); |
14850 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 14853 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
14851 | 14854 |
14852 rv = callback.WaitForResult(); | 14855 rv = callback.WaitForResult(); |
14853 EXPECT_THAT(rv, IsOk()); | 14856 EXPECT_THAT(rv, IsOk()); |
14854 | 14857 |
14855 const HttpResponseInfo* response1 = trans1->GetResponseInfo(); | 14858 const HttpResponseInfo* response1 = trans1->GetResponseInfo(); |
14856 ASSERT_TRUE(response1); | 14859 ASSERT_TRUE(response1); |
14857 | 14860 |
14858 EXPECT_TRUE(response1->headers); | 14861 EXPECT_TRUE(response1->headers); |
14859 EXPECT_EQ("HTTP/1.1 200 Peachy", response1->headers->GetStatusLine()); | 14862 EXPECT_EQ("HTTP/1.1 200 Peachy", response1->headers->GetStatusLine()); |
(...skipping 10 matching lines...) Expand all Loading... |
14870 base::WrapUnique(new UploadBytesElementReader("foo", 3))); | 14873 base::WrapUnique(new UploadBytesElementReader("foo", 3))); |
14871 ElementsUploadDataStream upload_data_stream(std::move(element_readers), 0); | 14874 ElementsUploadDataStream upload_data_stream(std::move(element_readers), 0); |
14872 | 14875 |
14873 HttpRequestInfo request2; | 14876 HttpRequestInfo request2; |
14874 request2.method = "POST"; | 14877 request2.method = "POST"; |
14875 request2.url = GURL("http://www.foo.com/"); | 14878 request2.url = GURL("http://www.foo.com/"); |
14876 request2.upload_data_stream = &upload_data_stream; | 14879 request2.upload_data_stream = &upload_data_stream; |
14877 request2.load_flags = 0; | 14880 request2.load_flags = 0; |
14878 | 14881 |
14879 HttpNetworkTransaction trans2(DEFAULT_PRIORITY, session.get()); | 14882 HttpNetworkTransaction trans2(DEFAULT_PRIORITY, session.get()); |
14880 rv = trans2.Start(&request2, callback.callback(), BoundNetLog()); | 14883 rv = trans2.Start(&request2, callback.callback(), NetLogWithSource()); |
14881 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 14884 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
14882 | 14885 |
14883 rv = callback.WaitForResult(); | 14886 rv = callback.WaitForResult(); |
14884 EXPECT_THAT(rv, IsOk()); | 14887 EXPECT_THAT(rv, IsOk()); |
14885 | 14888 |
14886 const HttpResponseInfo* response2 = trans2.GetResponseInfo(); | 14889 const HttpResponseInfo* response2 = trans2.GetResponseInfo(); |
14887 ASSERT_TRUE(response2); | 14890 ASSERT_TRUE(response2); |
14888 | 14891 |
14889 EXPECT_TRUE(response2->headers); | 14892 EXPECT_TRUE(response2->headers); |
14890 EXPECT_EQ("HTTP/1.1 400 Not OK", response2->headers->GetStatusLine()); | 14893 EXPECT_EQ("HTTP/1.1 400 Not OK", response2->headers->GetStatusLine()); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
14924 MockRead("HTTP/1.0 400 Not OK\r\n\r\n"), | 14927 MockRead("HTTP/1.0 400 Not OK\r\n\r\n"), |
14925 MockRead("hello world"), | 14928 MockRead("hello world"), |
14926 MockRead(SYNCHRONOUS, OK), | 14929 MockRead(SYNCHRONOUS, OK), |
14927 }; | 14930 }; |
14928 StaticSocketDataProvider data(data_reads, arraysize(data_reads), data_writes, | 14931 StaticSocketDataProvider data(data_reads, arraysize(data_reads), data_writes, |
14929 arraysize(data_writes)); | 14932 arraysize(data_writes)); |
14930 session_deps_.socket_factory->AddSocketDataProvider(&data); | 14933 session_deps_.socket_factory->AddSocketDataProvider(&data); |
14931 | 14934 |
14932 TestCompletionCallback callback; | 14935 TestCompletionCallback callback; |
14933 | 14936 |
14934 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 14937 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
14935 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 14938 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
14936 | 14939 |
14937 rv = callback.WaitForResult(); | 14940 rv = callback.WaitForResult(); |
14938 EXPECT_THAT(rv, IsOk()); | 14941 EXPECT_THAT(rv, IsOk()); |
14939 | 14942 |
14940 const HttpResponseInfo* response = trans.GetResponseInfo(); | 14943 const HttpResponseInfo* response = trans.GetResponseInfo(); |
14941 ASSERT_TRUE(response); | 14944 ASSERT_TRUE(response); |
14942 | 14945 |
14943 EXPECT_TRUE(response->headers); | 14946 EXPECT_TRUE(response->headers); |
14944 EXPECT_EQ("HTTP/1.0 400 Not OK", response->headers->GetStatusLine()); | 14947 EXPECT_EQ("HTTP/1.0 400 Not OK", response->headers->GetStatusLine()); |
(...skipping 30 matching lines...) Expand all Loading... |
14975 MockRead("HTTP/1.0 400 Not OK\r\n\r\n"), | 14978 MockRead("HTTP/1.0 400 Not OK\r\n\r\n"), |
14976 MockRead("hello world"), | 14979 MockRead("hello world"), |
14977 MockRead(SYNCHRONOUS, OK), | 14980 MockRead(SYNCHRONOUS, OK), |
14978 }; | 14981 }; |
14979 StaticSocketDataProvider data(data_reads, arraysize(data_reads), data_writes, | 14982 StaticSocketDataProvider data(data_reads, arraysize(data_reads), data_writes, |
14980 arraysize(data_writes)); | 14983 arraysize(data_writes)); |
14981 session_deps_.socket_factory->AddSocketDataProvider(&data); | 14984 session_deps_.socket_factory->AddSocketDataProvider(&data); |
14982 | 14985 |
14983 TestCompletionCallback callback; | 14986 TestCompletionCallback callback; |
14984 | 14987 |
14985 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 14988 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
14986 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 14989 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
14987 // Make sure the headers are sent before adding a chunk. This ensures that | 14990 // Make sure the headers are sent before adding a chunk. This ensures that |
14988 // they can't be merged with the body in a single send. Not currently | 14991 // they can't be merged with the body in a single send. Not currently |
14989 // necessary since a chunked body is never merged with headers, but this makes | 14992 // necessary since a chunked body is never merged with headers, but this makes |
14990 // the test more future proof. | 14993 // the test more future proof. |
14991 base::RunLoop().RunUntilIdle(); | 14994 base::RunLoop().RunUntilIdle(); |
14992 | 14995 |
14993 upload_data_stream.AppendData("last chunk", 10, true); | 14996 upload_data_stream.AppendData("last chunk", 10, true); |
14994 | 14997 |
14995 rv = callback.WaitForResult(); | 14998 rv = callback.WaitForResult(); |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
15035 MockRead("HTTP/1.0 400 Not OK\r\n\r\n"), | 15038 MockRead("HTTP/1.0 400 Not OK\r\n\r\n"), |
15036 MockRead("hello world"), | 15039 MockRead("hello world"), |
15037 MockRead(SYNCHRONOUS, OK), | 15040 MockRead(SYNCHRONOUS, OK), |
15038 }; | 15041 }; |
15039 StaticSocketDataProvider data(data_reads, arraysize(data_reads), data_writes, | 15042 StaticSocketDataProvider data(data_reads, arraysize(data_reads), data_writes, |
15040 arraysize(data_writes)); | 15043 arraysize(data_writes)); |
15041 session_deps_.socket_factory->AddSocketDataProvider(&data); | 15044 session_deps_.socket_factory->AddSocketDataProvider(&data); |
15042 | 15045 |
15043 TestCompletionCallback callback; | 15046 TestCompletionCallback callback; |
15044 | 15047 |
15045 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 15048 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
15046 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 15049 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
15047 | 15050 |
15048 rv = callback.WaitForResult(); | 15051 rv = callback.WaitForResult(); |
15049 EXPECT_THAT(rv, IsOk()); | 15052 EXPECT_THAT(rv, IsOk()); |
15050 | 15053 |
15051 const HttpResponseInfo* response = trans.GetResponseInfo(); | 15054 const HttpResponseInfo* response = trans.GetResponseInfo(); |
15052 ASSERT_TRUE(response); | 15055 ASSERT_TRUE(response); |
15053 | 15056 |
15054 EXPECT_TRUE(response->headers); | 15057 EXPECT_TRUE(response->headers); |
15055 EXPECT_EQ("HTTP/1.0 400 Not OK", response->headers->GetStatusLine()); | 15058 EXPECT_EQ("HTTP/1.0 400 Not OK", response->headers->GetStatusLine()); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
15087 MockRead("HTTP/1.0 200 Just Dandy\r\n\r\n"), | 15090 MockRead("HTTP/1.0 200 Just Dandy\r\n\r\n"), |
15088 MockRead("hello world"), | 15091 MockRead("hello world"), |
15089 MockRead(SYNCHRONOUS, OK), | 15092 MockRead(SYNCHRONOUS, OK), |
15090 }; | 15093 }; |
15091 StaticSocketDataProvider data(data_reads, arraysize(data_reads), data_writes, | 15094 StaticSocketDataProvider data(data_reads, arraysize(data_reads), data_writes, |
15092 arraysize(data_writes)); | 15095 arraysize(data_writes)); |
15093 session_deps_.socket_factory->AddSocketDataProvider(&data); | 15096 session_deps_.socket_factory->AddSocketDataProvider(&data); |
15094 | 15097 |
15095 TestCompletionCallback callback; | 15098 TestCompletionCallback callback; |
15096 | 15099 |
15097 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 15100 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
15098 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 15101 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
15099 | 15102 |
15100 rv = callback.WaitForResult(); | 15103 rv = callback.WaitForResult(); |
15101 EXPECT_THAT(rv, IsError(ERR_CONNECTION_RESET)); | 15104 EXPECT_THAT(rv, IsError(ERR_CONNECTION_RESET)); |
15102 } | 15105 } |
15103 | 15106 |
15104 TEST_F(HttpNetworkTransactionTest, | 15107 TEST_F(HttpNetworkTransactionTest, |
15105 PostIgnoresNonErrorResponseAfterResetAnd100) { | 15108 PostIgnoresNonErrorResponseAfterResetAnd100) { |
15106 std::vector<std::unique_ptr<UploadElementReader>> element_readers; | 15109 std::vector<std::unique_ptr<UploadElementReader>> element_readers; |
15107 element_readers.push_back( | 15110 element_readers.push_back( |
(...skipping 23 matching lines...) Expand all Loading... |
15131 MockRead("Location: http://somewhere-else.com/\r\n"), | 15134 MockRead("Location: http://somewhere-else.com/\r\n"), |
15132 MockRead("Content-Length: 0\r\n\r\n"), | 15135 MockRead("Content-Length: 0\r\n\r\n"), |
15133 MockRead(SYNCHRONOUS, OK), | 15136 MockRead(SYNCHRONOUS, OK), |
15134 }; | 15137 }; |
15135 StaticSocketDataProvider data(data_reads, arraysize(data_reads), data_writes, | 15138 StaticSocketDataProvider data(data_reads, arraysize(data_reads), data_writes, |
15136 arraysize(data_writes)); | 15139 arraysize(data_writes)); |
15137 session_deps_.socket_factory->AddSocketDataProvider(&data); | 15140 session_deps_.socket_factory->AddSocketDataProvider(&data); |
15138 | 15141 |
15139 TestCompletionCallback callback; | 15142 TestCompletionCallback callback; |
15140 | 15143 |
15141 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 15144 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
15142 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 15145 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
15143 | 15146 |
15144 rv = callback.WaitForResult(); | 15147 rv = callback.WaitForResult(); |
15145 EXPECT_THAT(rv, IsError(ERR_CONNECTION_RESET)); | 15148 EXPECT_THAT(rv, IsError(ERR_CONNECTION_RESET)); |
15146 } | 15149 } |
15147 | 15150 |
15148 TEST_F(HttpNetworkTransactionTest, PostIgnoresHttp09ResponseAfterReset) { | 15151 TEST_F(HttpNetworkTransactionTest, PostIgnoresHttp09ResponseAfterReset) { |
15149 std::vector<std::unique_ptr<UploadElementReader>> element_readers; | 15152 std::vector<std::unique_ptr<UploadElementReader>> element_readers; |
15150 element_readers.push_back( | 15153 element_readers.push_back( |
15151 base::MakeUnique<UploadBytesElementReader>("foo", 3)); | 15154 base::MakeUnique<UploadBytesElementReader>("foo", 3)); |
(...skipping 19 matching lines...) Expand all Loading... |
15171 MockRead data_reads[] = { | 15174 MockRead data_reads[] = { |
15172 MockRead("HTTP 0.9 rocks!"), | 15175 MockRead("HTTP 0.9 rocks!"), |
15173 MockRead(SYNCHRONOUS, OK), | 15176 MockRead(SYNCHRONOUS, OK), |
15174 }; | 15177 }; |
15175 StaticSocketDataProvider data(data_reads, arraysize(data_reads), data_writes, | 15178 StaticSocketDataProvider data(data_reads, arraysize(data_reads), data_writes, |
15176 arraysize(data_writes)); | 15179 arraysize(data_writes)); |
15177 session_deps_.socket_factory->AddSocketDataProvider(&data); | 15180 session_deps_.socket_factory->AddSocketDataProvider(&data); |
15178 | 15181 |
15179 TestCompletionCallback callback; | 15182 TestCompletionCallback callback; |
15180 | 15183 |
15181 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 15184 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
15182 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 15185 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
15183 | 15186 |
15184 rv = callback.WaitForResult(); | 15187 rv = callback.WaitForResult(); |
15185 EXPECT_THAT(rv, IsError(ERR_CONNECTION_RESET)); | 15188 EXPECT_THAT(rv, IsError(ERR_CONNECTION_RESET)); |
15186 } | 15189 } |
15187 | 15190 |
15188 TEST_F(HttpNetworkTransactionTest, PostIgnoresPartial400HeadersAfterReset) { | 15191 TEST_F(HttpNetworkTransactionTest, PostIgnoresPartial400HeadersAfterReset) { |
15189 std::vector<std::unique_ptr<UploadElementReader>> element_readers; | 15192 std::vector<std::unique_ptr<UploadElementReader>> element_readers; |
15190 element_readers.push_back( | 15193 element_readers.push_back( |
15191 base::MakeUnique<UploadBytesElementReader>("foo", 3)); | 15194 base::MakeUnique<UploadBytesElementReader>("foo", 3)); |
(...skipping 19 matching lines...) Expand all Loading... |
15211 MockRead data_reads[] = { | 15214 MockRead data_reads[] = { |
15212 MockRead("HTTP/1.0 400 Not a Full Response\r\n"), | 15215 MockRead("HTTP/1.0 400 Not a Full Response\r\n"), |
15213 MockRead(SYNCHRONOUS, OK), | 15216 MockRead(SYNCHRONOUS, OK), |
15214 }; | 15217 }; |
15215 StaticSocketDataProvider data(data_reads, arraysize(data_reads), data_writes, | 15218 StaticSocketDataProvider data(data_reads, arraysize(data_reads), data_writes, |
15216 arraysize(data_writes)); | 15219 arraysize(data_writes)); |
15217 session_deps_.socket_factory->AddSocketDataProvider(&data); | 15220 session_deps_.socket_factory->AddSocketDataProvider(&data); |
15218 | 15221 |
15219 TestCompletionCallback callback; | 15222 TestCompletionCallback callback; |
15220 | 15223 |
15221 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); | 15224 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
15222 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 15225 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
15223 | 15226 |
15224 rv = callback.WaitForResult(); | 15227 rv = callback.WaitForResult(); |
15225 EXPECT_THAT(rv, IsError(ERR_CONNECTION_RESET)); | 15228 EXPECT_THAT(rv, IsError(ERR_CONNECTION_RESET)); |
15226 } | 15229 } |
15227 | 15230 |
15228 // Verify that proxy headers are not sent to the destination server when | 15231 // Verify that proxy headers are not sent to the destination server when |
15229 // establishing a tunnel for a secure WebSocket connection. | 15232 // establishing a tunnel for a secure WebSocket connection. |
15230 TEST_F(HttpNetworkTransactionTest, ProxyHeadersNotSentOverWssTunnel) { | 15233 TEST_F(HttpNetworkTransactionTest, ProxyHeadersNotSentOverWssTunnel) { |
15231 HttpRequestInfo request; | 15234 HttpRequestInfo request; |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
15286 | 15289 |
15287 std::unique_ptr<HttpNetworkTransaction> trans( | 15290 std::unique_ptr<HttpNetworkTransaction> trans( |
15288 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 15291 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
15289 FakeWebSocketStreamCreateHelper websocket_stream_create_helper; | 15292 FakeWebSocketStreamCreateHelper websocket_stream_create_helper; |
15290 trans->SetWebSocketHandshakeStreamCreateHelper( | 15293 trans->SetWebSocketHandshakeStreamCreateHelper( |
15291 &websocket_stream_create_helper); | 15294 &websocket_stream_create_helper); |
15292 | 15295 |
15293 { | 15296 { |
15294 TestCompletionCallback callback; | 15297 TestCompletionCallback callback; |
15295 | 15298 |
15296 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 15299 int rv = trans->Start(&request, callback.callback(), NetLogWithSource()); |
15297 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 15300 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
15298 | 15301 |
15299 rv = callback.WaitForResult(); | 15302 rv = callback.WaitForResult(); |
15300 EXPECT_THAT(rv, IsOk()); | 15303 EXPECT_THAT(rv, IsOk()); |
15301 } | 15304 } |
15302 | 15305 |
15303 const HttpResponseInfo* response = trans->GetResponseInfo(); | 15306 const HttpResponseInfo* response = trans->GetResponseInfo(); |
15304 ASSERT_TRUE(response); | 15307 ASSERT_TRUE(response); |
15305 ASSERT_TRUE(response->headers); | 15308 ASSERT_TRUE(response->headers); |
15306 EXPECT_EQ(407, response->headers->response_code()); | 15309 EXPECT_EQ(407, response->headers->response_code()); |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
15384 "Basic realm=MyRealm1", AuthCredentials(kFoo, kBar), "/"); | 15387 "Basic realm=MyRealm1", AuthCredentials(kFoo, kBar), "/"); |
15385 | 15388 |
15386 std::unique_ptr<HttpNetworkTransaction> trans( | 15389 std::unique_ptr<HttpNetworkTransaction> trans( |
15387 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 15390 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
15388 FakeWebSocketStreamCreateHelper websocket_stream_create_helper; | 15391 FakeWebSocketStreamCreateHelper websocket_stream_create_helper; |
15389 trans->SetWebSocketHandshakeStreamCreateHelper( | 15392 trans->SetWebSocketHandshakeStreamCreateHelper( |
15390 &websocket_stream_create_helper); | 15393 &websocket_stream_create_helper); |
15391 | 15394 |
15392 TestCompletionCallback callback; | 15395 TestCompletionCallback callback; |
15393 | 15396 |
15394 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 15397 int rv = trans->Start(&request, callback.callback(), NetLogWithSource()); |
15395 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 15398 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
15396 | 15399 |
15397 rv = callback.WaitForResult(); | 15400 rv = callback.WaitForResult(); |
15398 EXPECT_THAT(rv, IsOk()); | 15401 EXPECT_THAT(rv, IsOk()); |
15399 | 15402 |
15400 const HttpResponseInfo* response = trans->GetResponseInfo(); | 15403 const HttpResponseInfo* response = trans->GetResponseInfo(); |
15401 ASSERT_TRUE(response); | 15404 ASSERT_TRUE(response); |
15402 ASSERT_TRUE(response->headers); | 15405 ASSERT_TRUE(response->headers); |
15403 | 15406 |
15404 EXPECT_EQ(101, response->headers->response_code()); | 15407 EXPECT_EQ(101, response->headers->response_code()); |
(...skipping 27 matching lines...) Expand all Loading... |
15432 MockRead("HTTP/1.1 200 OK\r\n\r\n"), MockRead("hello world"), | 15435 MockRead("HTTP/1.1 200 OK\r\n\r\n"), MockRead("hello world"), |
15433 MockRead(SYNCHRONOUS, OK), | 15436 MockRead(SYNCHRONOUS, OK), |
15434 }; | 15437 }; |
15435 StaticSocketDataProvider data(data_reads, arraysize(data_reads), data_writes, | 15438 StaticSocketDataProvider data(data_reads, arraysize(data_reads), data_writes, |
15436 arraysize(data_writes)); | 15439 arraysize(data_writes)); |
15437 session_deps_.socket_factory->AddSocketDataProvider(&data); | 15440 session_deps_.socket_factory->AddSocketDataProvider(&data); |
15438 | 15441 |
15439 TestCompletionCallback callback; | 15442 TestCompletionCallback callback; |
15440 | 15443 |
15441 EXPECT_EQ(ERR_IO_PENDING, | 15444 EXPECT_EQ(ERR_IO_PENDING, |
15442 trans.Start(&request, callback.callback(), BoundNetLog())); | 15445 trans.Start(&request, callback.callback(), NetLogWithSource())); |
15443 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 15446 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
15444 | 15447 |
15445 std::string response_data; | 15448 std::string response_data; |
15446 EXPECT_THAT(ReadTransaction(&trans, &response_data), IsOk()); | 15449 EXPECT_THAT(ReadTransaction(&trans, &response_data), IsOk()); |
15447 | 15450 |
15448 EXPECT_EQ(CountWriteBytes(data_writes, arraysize(data_writes)), | 15451 EXPECT_EQ(CountWriteBytes(data_writes, arraysize(data_writes)), |
15449 trans.GetTotalSentBytes()); | 15452 trans.GetTotalSentBytes()); |
15450 EXPECT_EQ(CountReadBytes(data_reads, arraysize(data_reads)), | 15453 EXPECT_EQ(CountReadBytes(data_reads, arraysize(data_reads)), |
15451 trans.GetTotalReceivedBytes()); | 15454 trans.GetTotalReceivedBytes()); |
15452 } | 15455 } |
(...skipping 24 matching lines...) Expand all Loading... |
15477 MockRead("HTTP/1.1 200 OK\r\n\r\n"), MockRead("hello world"), | 15480 MockRead("HTTP/1.1 200 OK\r\n\r\n"), MockRead("hello world"), |
15478 MockRead(SYNCHRONOUS, OK), | 15481 MockRead(SYNCHRONOUS, OK), |
15479 }; | 15482 }; |
15480 StaticSocketDataProvider data(data_reads, arraysize(data_reads), data_writes, | 15483 StaticSocketDataProvider data(data_reads, arraysize(data_reads), data_writes, |
15481 arraysize(data_writes)); | 15484 arraysize(data_writes)); |
15482 session_deps_.socket_factory->AddSocketDataProvider(&data); | 15485 session_deps_.socket_factory->AddSocketDataProvider(&data); |
15483 | 15486 |
15484 TestCompletionCallback callback; | 15487 TestCompletionCallback callback; |
15485 | 15488 |
15486 EXPECT_EQ(ERR_IO_PENDING, | 15489 EXPECT_EQ(ERR_IO_PENDING, |
15487 trans.Start(&request, callback.callback(), BoundNetLog())); | 15490 trans.Start(&request, callback.callback(), NetLogWithSource())); |
15488 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 15491 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
15489 | 15492 |
15490 std::string response_data; | 15493 std::string response_data; |
15491 EXPECT_THAT(ReadTransaction(&trans, &response_data), IsOk()); | 15494 EXPECT_THAT(ReadTransaction(&trans, &response_data), IsOk()); |
15492 | 15495 |
15493 EXPECT_EQ(CountWriteBytes(data_writes, arraysize(data_writes)), | 15496 EXPECT_EQ(CountWriteBytes(data_writes, arraysize(data_writes)), |
15494 trans.GetTotalSentBytes()); | 15497 trans.GetTotalSentBytes()); |
15495 EXPECT_EQ(CountReadBytes(data_reads, arraysize(data_reads)), | 15498 EXPECT_EQ(CountReadBytes(data_reads, arraysize(data_reads)), |
15496 trans.GetTotalReceivedBytes()); | 15499 trans.GetTotalReceivedBytes()); |
15497 } | 15500 } |
(...skipping 21 matching lines...) Expand all Loading... |
15519 MockRead("HTTP/1.1 200 OK\r\n\r\n"), MockRead("hello world"), | 15522 MockRead("HTTP/1.1 200 OK\r\n\r\n"), MockRead("hello world"), |
15520 MockRead(SYNCHRONOUS, OK), | 15523 MockRead(SYNCHRONOUS, OK), |
15521 }; | 15524 }; |
15522 StaticSocketDataProvider data(data_reads, arraysize(data_reads), data_writes, | 15525 StaticSocketDataProvider data(data_reads, arraysize(data_reads), data_writes, |
15523 arraysize(data_writes)); | 15526 arraysize(data_writes)); |
15524 session_deps_.socket_factory->AddSocketDataProvider(&data); | 15527 session_deps_.socket_factory->AddSocketDataProvider(&data); |
15525 | 15528 |
15526 TestCompletionCallback callback; | 15529 TestCompletionCallback callback; |
15527 | 15530 |
15528 EXPECT_EQ(ERR_IO_PENDING, | 15531 EXPECT_EQ(ERR_IO_PENDING, |
15529 trans.Start(&request, callback.callback(), BoundNetLog())); | 15532 trans.Start(&request, callback.callback(), NetLogWithSource())); |
15530 | 15533 |
15531 base::RunLoop().RunUntilIdle(); | 15534 base::RunLoop().RunUntilIdle(); |
15532 upload_data_stream.AppendData("f", 1, false); | 15535 upload_data_stream.AppendData("f", 1, false); |
15533 | 15536 |
15534 base::RunLoop().RunUntilIdle(); | 15537 base::RunLoop().RunUntilIdle(); |
15535 upload_data_stream.AppendData("oo", 2, true); | 15538 upload_data_stream.AppendData("oo", 2, true); |
15536 | 15539 |
15537 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 15540 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
15538 | 15541 |
15539 std::string response_data; | 15542 std::string response_data; |
(...skipping 24 matching lines...) Expand all Loading... |
15564 MockRead(ASYNC, ERR_IO_PENDING)}; | 15567 MockRead(ASYNC, ERR_IO_PENDING)}; |
15565 StaticSocketDataProvider data(reads, arraysize(reads), nullptr, 0); | 15568 StaticSocketDataProvider data(reads, arraysize(reads), nullptr, 0); |
15566 session_deps_.socket_factory->AddSocketDataProvider(&data); | 15569 session_deps_.socket_factory->AddSocketDataProvider(&data); |
15567 session_deps_.channel_id_service.reset(new ChannelIDService( | 15570 session_deps_.channel_id_service.reset(new ChannelIDService( |
15568 new DefaultChannelIDStore(nullptr), base::ThreadTaskRunnerHandle::Get())); | 15571 new DefaultChannelIDStore(nullptr), base::ThreadTaskRunnerHandle::Get())); |
15569 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 15572 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
15570 | 15573 |
15571 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 15574 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
15572 TestCompletionCallback callback; | 15575 TestCompletionCallback callback; |
15573 EXPECT_EQ(ERR_IO_PENDING, | 15576 EXPECT_EQ(ERR_IO_PENDING, |
15574 trans.Start(&request, callback.callback(), BoundNetLog())); | 15577 trans.Start(&request, callback.callback(), NetLogWithSource())); |
15575 base::RunLoop().RunUntilIdle(); | 15578 base::RunLoop().RunUntilIdle(); |
15576 | 15579 |
15577 EXPECT_TRUE(trans.GetResponseInfo()->was_fetched_via_spdy); | 15580 EXPECT_TRUE(trans.GetResponseInfo()->was_fetched_via_spdy); |
15578 HttpRequestHeaders headers; | 15581 HttpRequestHeaders headers; |
15579 ASSERT_TRUE(trans.GetFullRequestHeaders(&headers)); | 15582 ASSERT_TRUE(trans.GetFullRequestHeaders(&headers)); |
15580 EXPECT_TRUE(headers.HasHeader(HttpRequestHeaders::kTokenBinding)); | 15583 EXPECT_TRUE(headers.HasHeader(HttpRequestHeaders::kTokenBinding)); |
15581 } | 15584 } |
15582 #endif // !defined(OS_IOS) | 15585 #endif // !defined(OS_IOS) |
15583 | 15586 |
15584 } // namespace net | 15587 } // namespace net |
OLD | NEW |