OLD | NEW |
---|---|
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "net/http/http_network_transaction.h" | 5 #include "net/http/http_network_transaction.h" |
6 | 6 |
7 #include <math.h> // ceil | 7 #include <math.h> // ceil |
8 #include <stdarg.h> | 8 #include <stdarg.h> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
282 size_t data_count) { | 282 size_t data_count) { |
283 SimpleGetHelperResult out; | 283 SimpleGetHelperResult out; |
284 | 284 |
285 HttpRequestInfo request; | 285 HttpRequestInfo request; |
286 request.method = "GET"; | 286 request.method = "GET"; |
287 request.url = GURL("http://www.google.com/"); | 287 request.url = GURL("http://www.google.com/"); |
288 request.load_flags = 0; | 288 request.load_flags = 0; |
289 | 289 |
290 CapturingBoundNetLog log; | 290 CapturingBoundNetLog log; |
291 session_deps_.net_log = log.bound().net_log(); | 291 session_deps_.net_log = log.bound().net_log(); |
292 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
292 scoped_ptr<HttpTransaction> trans( | 293 scoped_ptr<HttpTransaction> trans( |
293 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 294 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
294 CreateSession(&session_deps_))); | |
295 | 295 |
296 for (size_t i = 0; i < data_count; ++i) { | 296 for (size_t i = 0; i < data_count; ++i) { |
297 session_deps_.socket_factory->AddSocketDataProvider(data[i]); | 297 session_deps_.socket_factory->AddSocketDataProvider(data[i]); |
298 } | 298 } |
299 | 299 |
300 TestCompletionCallback callback; | 300 TestCompletionCallback callback; |
301 | 301 |
302 EXPECT_TRUE(log.bound().IsLoggingAllEvents()); | 302 EXPECT_TRUE(log.bound().IsLoggingAllEvents()); |
303 int rv = trans->Start(&request, callback.callback(), log.bound()); | 303 int rv = trans->Start(&request, callback.callback(), log.bound()); |
304 EXPECT_EQ(ERR_IO_PENDING, rv); | 304 EXPECT_EQ(ERR_IO_PENDING, rv); |
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
559 EXPECT_FALSE(auth_challenge->is_proxy); | 559 EXPECT_FALSE(auth_challenge->is_proxy); |
560 EXPECT_EQ("172.22.68.17:80", auth_challenge->challenger.ToString()); | 560 EXPECT_EQ("172.22.68.17:80", auth_challenge->challenger.ToString()); |
561 EXPECT_EQ(std::string(), auth_challenge->realm); | 561 EXPECT_EQ(std::string(), auth_challenge->realm); |
562 EXPECT_EQ("ntlm", auth_challenge->scheme); | 562 EXPECT_EQ("ntlm", auth_challenge->scheme); |
563 return true; | 563 return true; |
564 } | 564 } |
565 | 565 |
566 } // namespace | 566 } // namespace |
567 | 567 |
568 TEST_P(HttpNetworkTransactionTest, Basic) { | 568 TEST_P(HttpNetworkTransactionTest, Basic) { |
569 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
569 scoped_ptr<HttpTransaction> trans( | 570 scoped_ptr<HttpTransaction> trans( |
570 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 571 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
571 CreateSession(&session_deps_))); | |
572 } | 572 } |
573 | 573 |
574 TEST_P(HttpNetworkTransactionTest, SimpleGET) { | 574 TEST_P(HttpNetworkTransactionTest, SimpleGET) { |
575 MockRead data_reads[] = { | 575 MockRead data_reads[] = { |
576 MockRead("HTTP/1.0 200 OK\r\n\r\n"), | 576 MockRead("HTTP/1.0 200 OK\r\n\r\n"), |
577 MockRead("hello world"), | 577 MockRead("hello world"), |
578 MockRead(SYNCHRONOUS, OK), | 578 MockRead(SYNCHRONOUS, OK), |
579 }; | 579 }; |
580 SimpleGetHelperResult out = SimpleGetHelper(data_reads, | 580 SimpleGetHelperResult out = SimpleGetHelper(data_reads, |
581 arraysize(data_reads)); | 581 arraysize(data_reads)); |
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
854 MockRead("Location: http://good.com/\r\n"), | 854 MockRead("Location: http://good.com/\r\n"), |
855 MockRead("Content-Length: 0\r\n\r\n"), | 855 MockRead("Content-Length: 0\r\n\r\n"), |
856 MockRead(SYNCHRONOUS, OK), | 856 MockRead(SYNCHRONOUS, OK), |
857 }; | 857 }; |
858 | 858 |
859 HttpRequestInfo request; | 859 HttpRequestInfo request; |
860 request.method = "GET"; | 860 request.method = "GET"; |
861 request.url = GURL("http://redirect.com/"); | 861 request.url = GURL("http://redirect.com/"); |
862 request.load_flags = 0; | 862 request.load_flags = 0; |
863 | 863 |
864 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
864 scoped_ptr<HttpTransaction> trans( | 865 scoped_ptr<HttpTransaction> trans( |
865 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 866 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
866 CreateSession(&session_deps_))); | |
867 | 867 |
868 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 868 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
869 session_deps_.socket_factory->AddSocketDataProvider(&data); | 869 session_deps_.socket_factory->AddSocketDataProvider(&data); |
870 | 870 |
871 TestCompletionCallback callback; | 871 TestCompletionCallback callback; |
872 | 872 |
873 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 873 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
874 EXPECT_EQ(ERR_IO_PENDING, rv); | 874 EXPECT_EQ(ERR_IO_PENDING, rv); |
875 | 875 |
876 EXPECT_EQ(OK, callback.WaitForResult()); | 876 EXPECT_EQ(OK, callback.WaitForResult()); |
(...skipping 21 matching lines...) Expand all Loading... | |
898 } | 898 } |
899 | 899 |
900 // Do a request using the HEAD method. Verify that we don't try to read the | 900 // Do a request using the HEAD method. Verify that we don't try to read the |
901 // message body (since HEAD has none). | 901 // message body (since HEAD has none). |
902 TEST_P(HttpNetworkTransactionTest, Head) { | 902 TEST_P(HttpNetworkTransactionTest, Head) { |
903 HttpRequestInfo request; | 903 HttpRequestInfo request; |
904 request.method = "HEAD"; | 904 request.method = "HEAD"; |
905 request.url = GURL("http://www.google.com/"); | 905 request.url = GURL("http://www.google.com/"); |
906 request.load_flags = 0; | 906 request.load_flags = 0; |
907 | 907 |
908 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
908 scoped_ptr<HttpTransaction> trans( | 909 scoped_ptr<HttpTransaction> trans( |
909 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 910 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
910 CreateSession(&session_deps_))); | |
911 | 911 |
912 MockWrite data_writes1[] = { | 912 MockWrite data_writes1[] = { |
913 MockWrite("HEAD / HTTP/1.1\r\n" | 913 MockWrite("HEAD / HTTP/1.1\r\n" |
914 "Host: www.google.com\r\n" | 914 "Host: www.google.com\r\n" |
915 "Connection: keep-alive\r\n" | 915 "Connection: keep-alive\r\n" |
916 "Content-Length: 0\r\n\r\n"), | 916 "Content-Length: 0\r\n\r\n"), |
917 }; | 917 }; |
918 MockRead data_reads1[] = { | 918 MockRead data_reads1[] = { |
919 MockRead("HTTP/1.1 404 Not Found\r\n"), | 919 MockRead("HTTP/1.1 404 Not Found\r\n"), |
920 MockRead("Server: Blah\r\n"), | 920 MockRead("Server: Blah\r\n"), |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1010 ScopedVector<UploadElementReader> element_readers; | 1010 ScopedVector<UploadElementReader> element_readers; |
1011 element_readers.push_back(new UploadBytesElementReader("foo", 3)); | 1011 element_readers.push_back(new UploadBytesElementReader("foo", 3)); |
1012 UploadDataStream upload_data_stream(element_readers.Pass(), 0); | 1012 UploadDataStream upload_data_stream(element_readers.Pass(), 0); |
1013 | 1013 |
1014 HttpRequestInfo request; | 1014 HttpRequestInfo request; |
1015 request.method = "POST"; | 1015 request.method = "POST"; |
1016 request.url = GURL("http://www.foo.com/"); | 1016 request.url = GURL("http://www.foo.com/"); |
1017 request.upload_data_stream = &upload_data_stream; | 1017 request.upload_data_stream = &upload_data_stream; |
1018 request.load_flags = 0; | 1018 request.load_flags = 0; |
1019 | 1019 |
1020 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
1020 scoped_ptr<HttpTransaction> trans( | 1021 scoped_ptr<HttpTransaction> trans( |
1021 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 1022 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
1022 CreateSession(&session_deps_))); | |
1023 | 1023 |
1024 MockRead data_reads[] = { | 1024 MockRead data_reads[] = { |
1025 MockRead("HTTP/1.0 100 Continue\r\n\r\n"), | 1025 MockRead("HTTP/1.0 100 Continue\r\n\r\n"), |
1026 MockRead("HTTP/1.0 200 OK\r\n\r\n"), | 1026 MockRead("HTTP/1.0 200 OK\r\n\r\n"), |
1027 MockRead("hello world"), | 1027 MockRead("hello world"), |
1028 MockRead(SYNCHRONOUS, OK), | 1028 MockRead(SYNCHRONOUS, OK), |
1029 }; | 1029 }; |
1030 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 1030 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
1031 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1031 session_deps_.socket_factory->AddSocketDataProvider(&data); |
1032 | 1032 |
(...skipping 19 matching lines...) Expand all Loading... | |
1052 | 1052 |
1053 // This test is almost the same as Ignores100 above, but the response contains | 1053 // This test is almost the same as Ignores100 above, but the response contains |
1054 // a 102 instead of a 100. Also, instead of HTTP/1.0 the response is | 1054 // a 102 instead of a 100. Also, instead of HTTP/1.0 the response is |
1055 // HTTP/1.1 and the two status headers are read in one read. | 1055 // HTTP/1.1 and the two status headers are read in one read. |
1056 TEST_P(HttpNetworkTransactionTest, Ignores1xx) { | 1056 TEST_P(HttpNetworkTransactionTest, Ignores1xx) { |
1057 HttpRequestInfo request; | 1057 HttpRequestInfo request; |
1058 request.method = "GET"; | 1058 request.method = "GET"; |
1059 request.url = GURL("http://www.foo.com/"); | 1059 request.url = GURL("http://www.foo.com/"); |
1060 request.load_flags = 0; | 1060 request.load_flags = 0; |
1061 | 1061 |
1062 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
1062 scoped_ptr<HttpTransaction> trans( | 1063 scoped_ptr<HttpTransaction> trans( |
1063 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 1064 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
1064 CreateSession(&session_deps_))); | |
1065 | 1065 |
1066 MockRead data_reads[] = { | 1066 MockRead data_reads[] = { |
1067 MockRead("HTTP/1.1 102 Unspecified status code\r\n\r\n" | 1067 MockRead("HTTP/1.1 102 Unspecified status code\r\n\r\n" |
1068 "HTTP/1.1 200 OK\r\n\r\n"), | 1068 "HTTP/1.1 200 OK\r\n\r\n"), |
1069 MockRead("hello world"), | 1069 MockRead("hello world"), |
1070 MockRead(SYNCHRONOUS, OK), | 1070 MockRead(SYNCHRONOUS, OK), |
1071 }; | 1071 }; |
1072 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 1072 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
1073 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1073 session_deps_.socket_factory->AddSocketDataProvider(&data); |
1074 | 1074 |
(...skipping 16 matching lines...) Expand all Loading... | |
1091 EXPECT_EQ(OK, rv); | 1091 EXPECT_EQ(OK, rv); |
1092 EXPECT_EQ("hello world", response_data); | 1092 EXPECT_EQ("hello world", response_data); |
1093 } | 1093 } |
1094 | 1094 |
1095 TEST_P(HttpNetworkTransactionTest, Incomplete100ThenEOF) { | 1095 TEST_P(HttpNetworkTransactionTest, Incomplete100ThenEOF) { |
1096 HttpRequestInfo request; | 1096 HttpRequestInfo request; |
1097 request.method = "POST"; | 1097 request.method = "POST"; |
1098 request.url = GURL("http://www.foo.com/"); | 1098 request.url = GURL("http://www.foo.com/"); |
1099 request.load_flags = 0; | 1099 request.load_flags = 0; |
1100 | 1100 |
1101 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
1101 scoped_ptr<HttpTransaction> trans( | 1102 scoped_ptr<HttpTransaction> trans( |
1102 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 1103 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
1103 CreateSession(&session_deps_))); | |
1104 | 1104 |
1105 MockRead data_reads[] = { | 1105 MockRead data_reads[] = { |
1106 MockRead(SYNCHRONOUS, "HTTP/1.0 100 Continue\r\n"), | 1106 MockRead(SYNCHRONOUS, "HTTP/1.0 100 Continue\r\n"), |
1107 MockRead(ASYNC, 0), | 1107 MockRead(ASYNC, 0), |
1108 }; | 1108 }; |
1109 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 1109 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
1110 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1110 session_deps_.socket_factory->AddSocketDataProvider(&data); |
1111 | 1111 |
1112 TestCompletionCallback callback; | 1112 TestCompletionCallback callback; |
1113 | 1113 |
1114 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 1114 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
1115 EXPECT_EQ(ERR_IO_PENDING, rv); | 1115 EXPECT_EQ(ERR_IO_PENDING, rv); |
1116 | 1116 |
1117 rv = callback.WaitForResult(); | 1117 rv = callback.WaitForResult(); |
1118 EXPECT_EQ(OK, rv); | 1118 EXPECT_EQ(OK, rv); |
1119 | 1119 |
1120 std::string response_data; | 1120 std::string response_data; |
1121 rv = ReadTransaction(trans.get(), &response_data); | 1121 rv = ReadTransaction(trans.get(), &response_data); |
1122 EXPECT_EQ(OK, rv); | 1122 EXPECT_EQ(OK, rv); |
1123 EXPECT_EQ("", response_data); | 1123 EXPECT_EQ("", response_data); |
1124 } | 1124 } |
1125 | 1125 |
1126 TEST_P(HttpNetworkTransactionTest, EmptyResponse) { | 1126 TEST_P(HttpNetworkTransactionTest, EmptyResponse) { |
1127 HttpRequestInfo request; | 1127 HttpRequestInfo request; |
1128 request.method = "POST"; | 1128 request.method = "POST"; |
1129 request.url = GURL("http://www.foo.com/"); | 1129 request.url = GURL("http://www.foo.com/"); |
1130 request.load_flags = 0; | 1130 request.load_flags = 0; |
1131 | 1131 |
1132 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
1132 scoped_ptr<HttpTransaction> trans( | 1133 scoped_ptr<HttpTransaction> trans( |
1133 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 1134 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
1134 CreateSession(&session_deps_))); | 1135 |
1135 | 1136 |
1136 MockRead data_reads[] = { | 1137 MockRead data_reads[] = { |
1137 MockRead(ASYNC, 0), | 1138 MockRead(ASYNC, 0), |
1138 }; | 1139 }; |
1139 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 1140 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
1140 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1141 session_deps_.socket_factory->AddSocketDataProvider(&data); |
1141 | 1142 |
1142 TestCompletionCallback callback; | 1143 TestCompletionCallback callback; |
1143 | 1144 |
1144 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 1145 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1252 MockRead read_failure(SYNCHRONOUS, OK); // EOF | 1253 MockRead read_failure(SYNCHRONOUS, OK); // EOF |
1253 KeepAliveConnectionResendRequestTest(NULL, &read_failure); | 1254 KeepAliveConnectionResendRequestTest(NULL, &read_failure); |
1254 } | 1255 } |
1255 | 1256 |
1256 TEST_P(HttpNetworkTransactionTest, NonKeepAliveConnectionReset) { | 1257 TEST_P(HttpNetworkTransactionTest, NonKeepAliveConnectionReset) { |
1257 HttpRequestInfo request; | 1258 HttpRequestInfo request; |
1258 request.method = "GET"; | 1259 request.method = "GET"; |
1259 request.url = GURL("http://www.google.com/"); | 1260 request.url = GURL("http://www.google.com/"); |
1260 request.load_flags = 0; | 1261 request.load_flags = 0; |
1261 | 1262 |
1263 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
1262 scoped_ptr<HttpTransaction> trans( | 1264 scoped_ptr<HttpTransaction> trans( |
1263 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 1265 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
1264 CreateSession(&session_deps_))); | |
1265 | 1266 |
1266 MockRead data_reads[] = { | 1267 MockRead data_reads[] = { |
1267 MockRead(ASYNC, ERR_CONNECTION_RESET), | 1268 MockRead(ASYNC, ERR_CONNECTION_RESET), |
1268 MockRead("HTTP/1.0 200 OK\r\n\r\n"), // Should not be used | 1269 MockRead("HTTP/1.0 200 OK\r\n\r\n"), // Should not be used |
1269 MockRead("hello world"), | 1270 MockRead("hello world"), |
1270 MockRead(SYNCHRONOUS, OK), | 1271 MockRead(SYNCHRONOUS, OK), |
1271 }; | 1272 }; |
1272 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 1273 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
1273 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1274 session_deps_.socket_factory->AddSocketDataProvider(&data); |
1274 | 1275 |
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1500 // Test the request-challenge-retry sequence for basic auth. | 1501 // Test the request-challenge-retry sequence for basic auth. |
1501 // (basic auth is the easiest to mock, because it has no randomness). | 1502 // (basic auth is the easiest to mock, because it has no randomness). |
1502 TEST_P(HttpNetworkTransactionTest, BasicAuth) { | 1503 TEST_P(HttpNetworkTransactionTest, BasicAuth) { |
1503 HttpRequestInfo request; | 1504 HttpRequestInfo request; |
1504 request.method = "GET"; | 1505 request.method = "GET"; |
1505 request.url = GURL("http://www.google.com/"); | 1506 request.url = GURL("http://www.google.com/"); |
1506 request.load_flags = 0; | 1507 request.load_flags = 0; |
1507 | 1508 |
1508 CapturingNetLog log; | 1509 CapturingNetLog log; |
1509 session_deps_.net_log = &log; | 1510 session_deps_.net_log = &log; |
1511 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
1510 scoped_ptr<HttpTransaction> trans( | 1512 scoped_ptr<HttpTransaction> trans( |
1511 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 1513 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
1512 CreateSession(&session_deps_))); | |
1513 | 1514 |
1514 MockWrite data_writes1[] = { | 1515 MockWrite data_writes1[] = { |
1515 MockWrite("GET / HTTP/1.1\r\n" | 1516 MockWrite("GET / HTTP/1.1\r\n" |
1516 "Host: www.google.com\r\n" | 1517 "Host: www.google.com\r\n" |
1517 "Connection: keep-alive\r\n\r\n"), | 1518 "Connection: keep-alive\r\n\r\n"), |
1518 }; | 1519 }; |
1519 | 1520 |
1520 MockRead data_reads1[] = { | 1521 MockRead data_reads1[] = { |
1521 MockRead("HTTP/1.0 401 Unauthorized\r\n"), | 1522 MockRead("HTTP/1.0 401 Unauthorized\r\n"), |
1522 // Give a couple authenticate options (only the middle one is actually | 1523 // Give a couple authenticate options (only the middle one is actually |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1593 EXPECT_TRUE(response->auth_challenge.get() == NULL); | 1594 EXPECT_TRUE(response->auth_challenge.get() == NULL); |
1594 EXPECT_EQ(100, response->headers->GetContentLength()); | 1595 EXPECT_EQ(100, response->headers->GetContentLength()); |
1595 } | 1596 } |
1596 | 1597 |
1597 TEST_P(HttpNetworkTransactionTest, DoNotSendAuth) { | 1598 TEST_P(HttpNetworkTransactionTest, DoNotSendAuth) { |
1598 HttpRequestInfo request; | 1599 HttpRequestInfo request; |
1599 request.method = "GET"; | 1600 request.method = "GET"; |
1600 request.url = GURL("http://www.google.com/"); | 1601 request.url = GURL("http://www.google.com/"); |
1601 request.load_flags = net::LOAD_DO_NOT_SEND_AUTH_DATA; | 1602 request.load_flags = net::LOAD_DO_NOT_SEND_AUTH_DATA; |
1602 | 1603 |
1604 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
1603 scoped_ptr<HttpTransaction> trans( | 1605 scoped_ptr<HttpTransaction> trans( |
1604 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 1606 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
1605 CreateSession(&session_deps_))); | |
1606 | 1607 |
1607 MockWrite data_writes[] = { | 1608 MockWrite data_writes[] = { |
1608 MockWrite("GET / HTTP/1.1\r\n" | 1609 MockWrite("GET / HTTP/1.1\r\n" |
1609 "Host: www.google.com\r\n" | 1610 "Host: www.google.com\r\n" |
1610 "Connection: keep-alive\r\n\r\n"), | 1611 "Connection: keep-alive\r\n\r\n"), |
1611 }; | 1612 }; |
1612 | 1613 |
1613 MockRead data_reads[] = { | 1614 MockRead data_reads[] = { |
1614 MockRead("HTTP/1.0 401 Unauthorized\r\n"), | 1615 MockRead("HTTP/1.0 401 Unauthorized\r\n"), |
1615 MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"), | 1616 MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"), |
(...skipping 640 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2256 | 2257 |
2257 // Test when a server (non-proxy) returns a 407 (proxy-authenticate). | 2258 // Test when a server (non-proxy) returns a 407 (proxy-authenticate). |
2258 // The request should fail with ERR_UNEXPECTED_PROXY_AUTH. | 2259 // The request should fail with ERR_UNEXPECTED_PROXY_AUTH. |
2259 TEST_P(HttpNetworkTransactionTest, UnexpectedProxyAuth) { | 2260 TEST_P(HttpNetworkTransactionTest, UnexpectedProxyAuth) { |
2260 HttpRequestInfo request; | 2261 HttpRequestInfo request; |
2261 request.method = "GET"; | 2262 request.method = "GET"; |
2262 request.url = GURL("http://www.google.com/"); | 2263 request.url = GURL("http://www.google.com/"); |
2263 request.load_flags = 0; | 2264 request.load_flags = 0; |
2264 | 2265 |
2265 // We are using a DIRECT connection (i.e. no proxy) for this session. | 2266 // We are using a DIRECT connection (i.e. no proxy) for this session. |
2267 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
2266 scoped_ptr<HttpTransaction> trans( | 2268 scoped_ptr<HttpTransaction> trans( |
2267 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 2269 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
2268 CreateSession(&session_deps_))); | |
2269 | 2270 |
2270 MockWrite data_writes1[] = { | 2271 MockWrite data_writes1[] = { |
2271 MockWrite("GET / HTTP/1.1\r\n" | 2272 MockWrite("GET / HTTP/1.1\r\n" |
2272 "Host: www.google.com\r\n" | 2273 "Host: www.google.com\r\n" |
2273 "Connection: keep-alive\r\n\r\n"), | 2274 "Connection: keep-alive\r\n\r\n"), |
2274 }; | 2275 }; |
2275 | 2276 |
2276 MockRead data_reads1[] = { | 2277 MockRead data_reads1[] = { |
2277 MockRead("HTTP/1.0 407 Proxy Auth required\r\n"), | 2278 MockRead("HTTP/1.0 407 Proxy Auth required\r\n"), |
2278 MockRead("Proxy-Authenticate: Basic realm=\"MyRealm1\"\r\n"), | 2279 MockRead("Proxy-Authenticate: Basic realm=\"MyRealm1\"\r\n"), |
(...skipping 1456 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3735 // Test the flow when both the proxy server AND origin server require | 3736 // Test the flow when both the proxy server AND origin server require |
3736 // authentication. Again, this uses basic auth for both since that is | 3737 // authentication. Again, this uses basic auth for both since that is |
3737 // the simplest to mock. | 3738 // the simplest to mock. |
3738 TEST_P(HttpNetworkTransactionTest, BasicAuthProxyThenServer) { | 3739 TEST_P(HttpNetworkTransactionTest, BasicAuthProxyThenServer) { |
3739 HttpRequestInfo request; | 3740 HttpRequestInfo request; |
3740 request.method = "GET"; | 3741 request.method = "GET"; |
3741 request.url = GURL("http://www.google.com/"); | 3742 request.url = GURL("http://www.google.com/"); |
3742 request.load_flags = 0; | 3743 request.load_flags = 0; |
3743 | 3744 |
3744 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); | 3745 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); |
3746 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
3745 | 3747 |
3746 // Configure against proxy server "myproxy:70". | 3748 // Configure against proxy server "myproxy:70". |
wtc
2013/10/15 23:08:21
Nit: this comment could be describing |session| be
mmenke
2013/10/16 15:58:44
Done.
| |
3747 scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(DEFAULT_PRIORITY, | 3749 scoped_ptr<HttpTransaction> trans( |
3748 CreateSession(&session_deps_))); | 3750 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
3749 | 3751 |
3750 MockWrite data_writes1[] = { | 3752 MockWrite data_writes1[] = { |
3751 MockWrite("GET http://www.google.com/ HTTP/1.1\r\n" | 3753 MockWrite("GET http://www.google.com/ HTTP/1.1\r\n" |
3752 "Host: www.google.com\r\n" | 3754 "Host: www.google.com\r\n" |
3753 "Proxy-Connection: keep-alive\r\n\r\n"), | 3755 "Proxy-Connection: keep-alive\r\n\r\n"), |
3754 }; | 3756 }; |
3755 | 3757 |
3756 MockRead data_reads1[] = { | 3758 MockRead data_reads1[] = { |
3757 MockRead("HTTP/1.0 407 Unauthorized\r\n"), | 3759 MockRead("HTTP/1.0 407 Unauthorized\r\n"), |
3758 // Give a couple authenticate options (only the middle one is actually | 3760 // Give a couple authenticate options (only the middle one is actually |
(...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
4194 | 4196 |
4195 // Test reading a server response which has only headers, and no body. | 4197 // Test reading a server response which has only headers, and no body. |
4196 // After some maximum number of bytes is consumed, the transaction should | 4198 // After some maximum number of bytes is consumed, the transaction should |
4197 // fail with ERR_RESPONSE_HEADERS_TOO_BIG. | 4199 // fail with ERR_RESPONSE_HEADERS_TOO_BIG. |
4198 TEST_P(HttpNetworkTransactionTest, LargeHeadersNoBody) { | 4200 TEST_P(HttpNetworkTransactionTest, LargeHeadersNoBody) { |
4199 HttpRequestInfo request; | 4201 HttpRequestInfo request; |
4200 request.method = "GET"; | 4202 request.method = "GET"; |
4201 request.url = GURL("http://www.google.com/"); | 4203 request.url = GURL("http://www.google.com/"); |
4202 request.load_flags = 0; | 4204 request.load_flags = 0; |
4203 | 4205 |
4206 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
4204 scoped_ptr<HttpTransaction> trans( | 4207 scoped_ptr<HttpTransaction> trans( |
4205 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 4208 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
4206 CreateSession(&session_deps_))); | |
4207 | 4209 |
4208 // Respond with 300 kb of headers (we should fail after 256 kb). | 4210 // Respond with 300 kb of headers (we should fail after 256 kb). |
4209 std::string large_headers_string; | 4211 std::string large_headers_string; |
4210 FillLargeHeadersString(&large_headers_string, 300 * 1024); | 4212 FillLargeHeadersString(&large_headers_string, 300 * 1024); |
4211 | 4213 |
4212 MockRead data_reads[] = { | 4214 MockRead data_reads[] = { |
4213 MockRead("HTTP/1.0 200 OK\r\n"), | 4215 MockRead("HTTP/1.0 200 OK\r\n"), |
4214 MockRead(ASYNC, large_headers_string.data(), large_headers_string.size()), | 4216 MockRead(ASYNC, large_headers_string.data(), large_headers_string.size()), |
4215 MockRead("\r\nBODY"), | 4217 MockRead("\r\nBODY"), |
4216 MockRead(SYNCHRONOUS, OK), | 4218 MockRead(SYNCHRONOUS, OK), |
(...skipping 432 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
4649 | 4651 |
4650 // Test the request-challenge-retry sequence for basic auth when there is | 4652 // Test the request-challenge-retry sequence for basic auth when there is |
4651 // an identity in the URL. The request should be sent as normal, but when | 4653 // an identity in the URL. The request should be sent as normal, but when |
4652 // it fails the identity from the URL is used to answer the challenge. | 4654 // it fails the identity from the URL is used to answer the challenge. |
4653 TEST_P(HttpNetworkTransactionTest, AuthIdentityInURL) { | 4655 TEST_P(HttpNetworkTransactionTest, AuthIdentityInURL) { |
4654 HttpRequestInfo request; | 4656 HttpRequestInfo request; |
4655 request.method = "GET"; | 4657 request.method = "GET"; |
4656 request.url = GURL("http://foo:b@r@www.google.com/"); | 4658 request.url = GURL("http://foo:b@r@www.google.com/"); |
4657 request.load_flags = LOAD_NORMAL; | 4659 request.load_flags = LOAD_NORMAL; |
4658 | 4660 |
4661 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
4659 scoped_ptr<HttpTransaction> trans( | 4662 scoped_ptr<HttpTransaction> trans( |
4660 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 4663 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
4661 CreateSession(&session_deps_))); | |
4662 | 4664 |
4663 // The password contains an escaped character -- for this test to pass it | 4665 // The password contains an escaped character -- for this test to pass it |
4664 // will need to be unescaped by HttpNetworkTransaction. | 4666 // will need to be unescaped by HttpNetworkTransaction. |
4665 EXPECT_EQ("b%40r", request.url.password()); | 4667 EXPECT_EQ("b%40r", request.url.password()); |
4666 | 4668 |
4667 MockWrite data_writes1[] = { | 4669 MockWrite data_writes1[] = { |
4668 MockWrite("GET / HTTP/1.1\r\n" | 4670 MockWrite("GET / HTTP/1.1\r\n" |
4669 "Host: www.google.com\r\n" | 4671 "Host: www.google.com\r\n" |
4670 "Connection: keep-alive\r\n\r\n"), | 4672 "Connection: keep-alive\r\n\r\n"), |
4671 }; | 4673 }; |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
4730 // once. | 4732 // once. |
4731 TEST_P(HttpNetworkTransactionTest, WrongAuthIdentityInURL) { | 4733 TEST_P(HttpNetworkTransactionTest, WrongAuthIdentityInURL) { |
4732 HttpRequestInfo request; | 4734 HttpRequestInfo request; |
4733 request.method = "GET"; | 4735 request.method = "GET"; |
4734 // Note: the URL has a username:password in it. The password "baz" is | 4736 // Note: the URL has a username:password in it. The password "baz" is |
4735 // wrong (should be "bar"). | 4737 // wrong (should be "bar"). |
4736 request.url = GURL("http://foo:baz@www.google.com/"); | 4738 request.url = GURL("http://foo:baz@www.google.com/"); |
4737 | 4739 |
4738 request.load_flags = LOAD_NORMAL; | 4740 request.load_flags = LOAD_NORMAL; |
4739 | 4741 |
4742 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
4740 scoped_ptr<HttpTransaction> trans( | 4743 scoped_ptr<HttpTransaction> trans( |
4741 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 4744 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
4742 CreateSession(&session_deps_))); | |
4743 | 4745 |
4744 MockWrite data_writes1[] = { | 4746 MockWrite data_writes1[] = { |
4745 MockWrite("GET / HTTP/1.1\r\n" | 4747 MockWrite("GET / HTTP/1.1\r\n" |
4746 "Host: www.google.com\r\n" | 4748 "Host: www.google.com\r\n" |
4747 "Connection: keep-alive\r\n\r\n"), | 4749 "Connection: keep-alive\r\n\r\n"), |
4748 }; | 4750 }; |
4749 | 4751 |
4750 MockRead data_reads1[] = { | 4752 MockRead data_reads1[] = { |
4751 MockRead("HTTP/1.0 401 Unauthorized\r\n"), | 4753 MockRead("HTTP/1.0 401 Unauthorized\r\n"), |
4752 MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"), | 4754 MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"), |
(...skipping 596 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
5349 | 5351 |
5350 const HttpResponseInfo* response = trans->GetResponseInfo(); | 5352 const HttpResponseInfo* response = trans->GetResponseInfo(); |
5351 ASSERT_TRUE(response != NULL); | 5353 ASSERT_TRUE(response != NULL); |
5352 EXPECT_TRUE(response->auth_challenge.get() == NULL); | 5354 EXPECT_TRUE(response->auth_challenge.get() == NULL); |
5353 } | 5355 } |
5354 } | 5356 } |
5355 | 5357 |
5356 // Test the ResetStateForRestart() private method. | 5358 // Test the ResetStateForRestart() private method. |
5357 TEST_P(HttpNetworkTransactionTest, ResetStateForRestart) { | 5359 TEST_P(HttpNetworkTransactionTest, ResetStateForRestart) { |
5358 // Create a transaction (the dependencies aren't important). | 5360 // Create a transaction (the dependencies aren't important). |
5361 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
5359 scoped_ptr<HttpNetworkTransaction> trans( | 5362 scoped_ptr<HttpNetworkTransaction> trans( |
5360 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 5363 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
5361 CreateSession(&session_deps_))); | |
5362 | 5364 |
5363 // Setup some state (which we expect ResetStateForRestart() will clear). | 5365 // Setup some state (which we expect ResetStateForRestart() will clear). |
5364 trans->read_buf_ = new IOBuffer(15); | 5366 trans->read_buf_ = new IOBuffer(15); |
5365 trans->read_buf_len_ = 15; | 5367 trans->read_buf_len_ = 15; |
5366 trans->request_headers_.SetHeader("Authorization", "NTLM"); | 5368 trans->request_headers_.SetHeader("Authorization", "NTLM"); |
5367 | 5369 |
5368 // Setup state in response_ | 5370 // Setup state in response_ |
5369 HttpResponseInfo* response = &trans->response_; | 5371 HttpResponseInfo* response = &trans->response_; |
5370 response->auth_challenge = new AuthChallengeInfo(); | 5372 response->auth_challenge = new AuthChallengeInfo(); |
5371 response->ssl_info.cert_status = static_cast<CertStatus>(-1); // Nonsensical. | 5373 response->ssl_info.cert_status = static_cast<CertStatus>(-1); // Nonsensical. |
(...skipping 24 matching lines...) Expand all Loading... | |
5396 EXPECT_FALSE(response->vary_data.is_valid()); | 5398 EXPECT_FALSE(response->vary_data.is_valid()); |
5397 } | 5399 } |
5398 | 5400 |
5399 // Test HTTPS connections to a site with a bad certificate | 5401 // Test HTTPS connections to a site with a bad certificate |
5400 TEST_P(HttpNetworkTransactionTest, HTTPSBadCertificate) { | 5402 TEST_P(HttpNetworkTransactionTest, HTTPSBadCertificate) { |
5401 HttpRequestInfo request; | 5403 HttpRequestInfo request; |
5402 request.method = "GET"; | 5404 request.method = "GET"; |
5403 request.url = GURL("https://www.google.com/"); | 5405 request.url = GURL("https://www.google.com/"); |
5404 request.load_flags = 0; | 5406 request.load_flags = 0; |
5405 | 5407 |
5408 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
5406 scoped_ptr<HttpTransaction> trans( | 5409 scoped_ptr<HttpTransaction> trans( |
5407 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 5410 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
5408 CreateSession(&session_deps_))); | |
5409 | 5411 |
5410 MockWrite data_writes[] = { | 5412 MockWrite data_writes[] = { |
5411 MockWrite("GET / HTTP/1.1\r\n" | 5413 MockWrite("GET / HTTP/1.1\r\n" |
5412 "Host: www.google.com\r\n" | 5414 "Host: www.google.com\r\n" |
5413 "Connection: keep-alive\r\n\r\n"), | 5415 "Connection: keep-alive\r\n\r\n"), |
5414 }; | 5416 }; |
5415 | 5417 |
5416 MockRead data_reads[] = { | 5418 MockRead data_reads[] = { |
5417 MockRead("HTTP/1.0 200 OK\r\n"), | 5419 MockRead("HTTP/1.0 200 OK\r\n"), |
5418 MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"), | 5420 MockRead("Content-Type: text/html; charset=iso-8859-1\r\n"), |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
5497 SSLSocketDataProvider ssl_bad(ASYNC, ERR_CERT_AUTHORITY_INVALID); | 5499 SSLSocketDataProvider ssl_bad(ASYNC, ERR_CERT_AUTHORITY_INVALID); |
5498 SSLSocketDataProvider ssl(ASYNC, OK); | 5500 SSLSocketDataProvider ssl(ASYNC, OK); |
5499 | 5501 |
5500 session_deps_.socket_factory->AddSocketDataProvider(&ssl_bad_certificate); | 5502 session_deps_.socket_factory->AddSocketDataProvider(&ssl_bad_certificate); |
5501 session_deps_.socket_factory->AddSocketDataProvider(&data); | 5503 session_deps_.socket_factory->AddSocketDataProvider(&data); |
5502 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_bad); | 5504 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_bad); |
5503 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 5505 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
5504 | 5506 |
5505 TestCompletionCallback callback; | 5507 TestCompletionCallback callback; |
5506 | 5508 |
5507 for (int i = 0; i < 2; i++) { | 5509 for (int i = 0; i < 2; i++) { |
wtc
2013/10/16 15:04:32
I wonder why this test needs to repeat this twice.
mmenke
2013/10/16 15:58:44
https://codereview.chromium.org/43115 - sounds lik
| |
5508 session_deps_.socket_factory->ResetNextMockIndexes(); | 5510 session_deps_.socket_factory->ResetNextMockIndexes(); |
5509 | 5511 |
5512 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
5510 scoped_ptr<HttpTransaction> trans( | 5513 scoped_ptr<HttpTransaction> trans( |
5511 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 5514 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
5512 CreateSession(&session_deps_))); | |
5513 | 5515 |
5514 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 5516 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
5515 EXPECT_EQ(ERR_IO_PENDING, rv); | 5517 EXPECT_EQ(ERR_IO_PENDING, rv); |
5516 | 5518 |
5517 rv = callback.WaitForResult(); | 5519 rv = callback.WaitForResult(); |
5518 EXPECT_EQ(ERR_CERT_AUTHORITY_INVALID, rv); | 5520 EXPECT_EQ(ERR_CERT_AUTHORITY_INVALID, rv); |
5519 | 5521 |
5520 rv = trans->RestartIgnoringLastError(callback.callback()); | 5522 rv = trans->RestartIgnoringLastError(callback.callback()); |
5521 EXPECT_EQ(ERR_IO_PENDING, rv); | 5523 EXPECT_EQ(ERR_IO_PENDING, rv); |
5522 | 5524 |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
5564 data_writes, arraysize(data_writes)); | 5566 data_writes, arraysize(data_writes)); |
5565 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy | 5567 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy |
5566 SSLSocketDataProvider tunnel_ssl(ASYNC, OK); // SSL through the tunnel | 5568 SSLSocketDataProvider tunnel_ssl(ASYNC, OK); // SSL through the tunnel |
5567 | 5569 |
5568 session_deps_.socket_factory->AddSocketDataProvider(&data); | 5570 session_deps_.socket_factory->AddSocketDataProvider(&data); |
5569 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); | 5571 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); |
5570 session_deps_.socket_factory->AddSSLSocketDataProvider(&tunnel_ssl); | 5572 session_deps_.socket_factory->AddSSLSocketDataProvider(&tunnel_ssl); |
5571 | 5573 |
5572 TestCompletionCallback callback; | 5574 TestCompletionCallback callback; |
5573 | 5575 |
5576 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
5574 scoped_ptr<HttpTransaction> trans( | 5577 scoped_ptr<HttpTransaction> trans( |
5575 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 5578 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
5576 CreateSession(&session_deps_))); | |
5577 | 5579 |
5578 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 5580 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
5579 EXPECT_EQ(ERR_IO_PENDING, rv); | 5581 EXPECT_EQ(ERR_IO_PENDING, rv); |
5580 | 5582 |
5581 rv = callback.WaitForResult(); | 5583 rv = callback.WaitForResult(); |
5582 EXPECT_EQ(OK, rv); | 5584 EXPECT_EQ(OK, rv); |
5583 const HttpResponseInfo* response = trans->GetResponseInfo(); | 5585 const HttpResponseInfo* response = trans->GetResponseInfo(); |
5584 | 5586 |
5585 ASSERT_TRUE(response != NULL); | 5587 ASSERT_TRUE(response != NULL); |
5586 | 5588 |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
5622 | 5624 |
5623 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 5625 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
5624 data_writes, arraysize(data_writes)); | 5626 data_writes, arraysize(data_writes)); |
5625 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy | 5627 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy |
5626 | 5628 |
5627 session_deps_.socket_factory->AddSocketDataProvider(&data); | 5629 session_deps_.socket_factory->AddSocketDataProvider(&data); |
5628 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); | 5630 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); |
5629 | 5631 |
5630 TestCompletionCallback callback; | 5632 TestCompletionCallback callback; |
5631 | 5633 |
5634 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
5632 scoped_ptr<HttpTransaction> trans( | 5635 scoped_ptr<HttpTransaction> trans( |
5633 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 5636 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
5634 CreateSession(&session_deps_))); | |
5635 | 5637 |
5636 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 5638 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
5637 EXPECT_EQ(ERR_IO_PENDING, rv); | 5639 EXPECT_EQ(ERR_IO_PENDING, rv); |
5638 | 5640 |
5639 rv = callback.WaitForResult(); | 5641 rv = callback.WaitForResult(); |
5640 EXPECT_EQ(OK, rv); | 5642 EXPECT_EQ(OK, rv); |
5641 const HttpResponseInfo* response = trans->GetResponseInfo(); | 5643 const HttpResponseInfo* response = trans->GetResponseInfo(); |
5642 | 5644 |
5643 ASSERT_TRUE(response != NULL); | 5645 ASSERT_TRUE(response != NULL); |
5644 | 5646 |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
5707 data_reads, arraysize(data_reads), | 5709 data_reads, arraysize(data_reads), |
5708 data_writes, arraysize(data_writes)); | 5710 data_writes, arraysize(data_writes)); |
5709 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy | 5711 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy |
5710 proxy_ssl.SetNextProto(GetParam()); | 5712 proxy_ssl.SetNextProto(GetParam()); |
5711 | 5713 |
5712 session_deps_.socket_factory->AddSocketDataProvider(&data); | 5714 session_deps_.socket_factory->AddSocketDataProvider(&data); |
5713 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); | 5715 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); |
5714 | 5716 |
5715 TestCompletionCallback callback; | 5717 TestCompletionCallback callback; |
5716 | 5718 |
5719 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
5717 scoped_ptr<HttpTransaction> trans( | 5720 scoped_ptr<HttpTransaction> trans( |
5718 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 5721 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
5719 CreateSession(&session_deps_))); | |
5720 | 5722 |
5721 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 5723 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
5722 EXPECT_EQ(ERR_IO_PENDING, rv); | 5724 EXPECT_EQ(ERR_IO_PENDING, rv); |
5723 | 5725 |
5724 rv = callback.WaitForResult(); | 5726 rv = callback.WaitForResult(); |
5725 EXPECT_EQ(OK, rv); | 5727 EXPECT_EQ(OK, rv); |
5726 const HttpResponseInfo* response = trans->GetResponseInfo(); | 5728 const HttpResponseInfo* response = trans->GetResponseInfo(); |
5727 | 5729 |
5728 ASSERT_TRUE(response != NULL); | 5730 ASSERT_TRUE(response != NULL); |
5729 | 5731 |
(...skipping 29 matching lines...) Expand all Loading... | |
5759 | 5761 |
5760 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 5762 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
5761 data_writes, arraysize(data_writes)); | 5763 data_writes, arraysize(data_writes)); |
5762 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy | 5764 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy |
5763 | 5765 |
5764 session_deps_.socket_factory->AddSocketDataProvider(&data); | 5766 session_deps_.socket_factory->AddSocketDataProvider(&data); |
5765 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); | 5767 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); |
5766 | 5768 |
5767 TestCompletionCallback callback; | 5769 TestCompletionCallback callback; |
5768 | 5770 |
5771 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
5769 scoped_ptr<HttpTransaction> trans( | 5772 scoped_ptr<HttpTransaction> trans( |
5770 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 5773 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
5771 CreateSession(&session_deps_))); | |
5772 | 5774 |
5773 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 5775 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
5774 EXPECT_EQ(ERR_IO_PENDING, rv); | 5776 EXPECT_EQ(ERR_IO_PENDING, rv); |
5775 | 5777 |
5776 rv = callback.WaitForResult(); | 5778 rv = callback.WaitForResult(); |
5777 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, rv); | 5779 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, rv); |
5778 | 5780 |
5779 // TODO(ttuttle): Anything else to check here? | 5781 // TODO(ttuttle): Anything else to check here? |
5780 } | 5782 } |
5781 | 5783 |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
5820 data_reads, arraysize(data_reads), | 5822 data_reads, arraysize(data_reads), |
5821 data_writes, arraysize(data_writes)); | 5823 data_writes, arraysize(data_writes)); |
5822 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy | 5824 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy |
5823 proxy_ssl.SetNextProto(GetParam()); | 5825 proxy_ssl.SetNextProto(GetParam()); |
5824 | 5826 |
5825 session_deps_.socket_factory->AddSocketDataProvider(&data); | 5827 session_deps_.socket_factory->AddSocketDataProvider(&data); |
5826 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); | 5828 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy_ssl); |
5827 | 5829 |
5828 TestCompletionCallback callback; | 5830 TestCompletionCallback callback; |
5829 | 5831 |
5832 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
5830 scoped_ptr<HttpTransaction> trans( | 5833 scoped_ptr<HttpTransaction> trans( |
5831 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 5834 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
5832 CreateSession(&session_deps_))); | |
5833 | 5835 |
5834 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 5836 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
5835 EXPECT_EQ(ERR_IO_PENDING, rv); | 5837 EXPECT_EQ(ERR_IO_PENDING, rv); |
5836 | 5838 |
5837 rv = callback.WaitForResult(); | 5839 rv = callback.WaitForResult(); |
5838 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, rv); | 5840 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, rv); |
5839 | 5841 |
5840 // TODO(ttuttle): Anything else to check here? | 5842 // TODO(ttuttle): Anything else to check here? |
5841 } | 5843 } |
5842 | 5844 |
(...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
6245 session_deps_.socket_factory->AddSocketDataProvider(&ssl_bad_certificate); | 6247 session_deps_.socket_factory->AddSocketDataProvider(&ssl_bad_certificate); |
6246 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_bad); | 6248 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_bad); |
6247 | 6249 |
6248 // SSL to the proxy, then CONNECT request, then valid SSL certificate | 6250 // SSL to the proxy, then CONNECT request, then valid SSL certificate |
6249 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 6251 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
6250 session_deps_.socket_factory->AddSocketDataProvider(&data); | 6252 session_deps_.socket_factory->AddSocketDataProvider(&data); |
6251 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 6253 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
6252 | 6254 |
6253 TestCompletionCallback callback; | 6255 TestCompletionCallback callback; |
6254 | 6256 |
6257 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
6255 scoped_ptr<HttpTransaction> trans( | 6258 scoped_ptr<HttpTransaction> trans( |
6256 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 6259 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
6257 CreateSession(&session_deps_))); | |
6258 | 6260 |
6259 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 6261 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
6260 EXPECT_EQ(ERR_IO_PENDING, rv); | 6262 EXPECT_EQ(ERR_IO_PENDING, rv); |
6261 | 6263 |
6262 rv = callback.WaitForResult(); | 6264 rv = callback.WaitForResult(); |
6263 EXPECT_EQ(ERR_CERT_AUTHORITY_INVALID, rv); | 6265 EXPECT_EQ(ERR_CERT_AUTHORITY_INVALID, rv); |
6264 | 6266 |
6265 rv = trans->RestartIgnoringLastError(callback.callback()); | 6267 rv = trans->RestartIgnoringLastError(callback.callback()); |
6266 EXPECT_EQ(ERR_IO_PENDING, rv); | 6268 EXPECT_EQ(ERR_IO_PENDING, rv); |
6267 | 6269 |
6268 rv = callback.WaitForResult(); | 6270 rv = callback.WaitForResult(); |
6269 EXPECT_EQ(OK, rv); | 6271 EXPECT_EQ(OK, rv); |
6270 | 6272 |
6271 const HttpResponseInfo* response = trans->GetResponseInfo(); | 6273 const HttpResponseInfo* response = trans->GetResponseInfo(); |
6272 | 6274 |
6273 ASSERT_TRUE(response != NULL); | 6275 ASSERT_TRUE(response != NULL); |
6274 EXPECT_EQ(100, response->headers->GetContentLength()); | 6276 EXPECT_EQ(100, response->headers->GetContentLength()); |
6275 } | 6277 } |
6276 | 6278 |
6277 TEST_P(HttpNetworkTransactionTest, BuildRequest_UserAgent) { | 6279 TEST_P(HttpNetworkTransactionTest, BuildRequest_UserAgent) { |
6278 HttpRequestInfo request; | 6280 HttpRequestInfo request; |
6279 request.method = "GET"; | 6281 request.method = "GET"; |
6280 request.url = GURL("http://www.google.com/"); | 6282 request.url = GURL("http://www.google.com/"); |
6281 request.extra_headers.SetHeader(HttpRequestHeaders::kUserAgent, | 6283 request.extra_headers.SetHeader(HttpRequestHeaders::kUserAgent, |
6282 "Chromium Ultra Awesome X Edition"); | 6284 "Chromium Ultra Awesome X Edition"); |
6283 | 6285 |
6286 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
6284 scoped_ptr<HttpTransaction> trans( | 6287 scoped_ptr<HttpTransaction> trans( |
6285 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 6288 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
6286 CreateSession(&session_deps_))); | |
6287 | 6289 |
6288 MockWrite data_writes[] = { | 6290 MockWrite data_writes[] = { |
6289 MockWrite("GET / HTTP/1.1\r\n" | 6291 MockWrite("GET / HTTP/1.1\r\n" |
6290 "Host: www.google.com\r\n" | 6292 "Host: www.google.com\r\n" |
6291 "Connection: keep-alive\r\n" | 6293 "Connection: keep-alive\r\n" |
6292 "User-Agent: Chromium Ultra Awesome X Edition\r\n\r\n"), | 6294 "User-Agent: Chromium Ultra Awesome X Edition\r\n\r\n"), |
6293 }; | 6295 }; |
6294 | 6296 |
6295 // Lastly, the server responds with the actual content. | 6297 // Lastly, the server responds with the actual content. |
6296 MockRead data_reads[] = { | 6298 MockRead data_reads[] = { |
(...skipping 17 matching lines...) Expand all Loading... | |
6314 } | 6316 } |
6315 | 6317 |
6316 TEST_P(HttpNetworkTransactionTest, BuildRequest_UserAgentOverTunnel) { | 6318 TEST_P(HttpNetworkTransactionTest, BuildRequest_UserAgentOverTunnel) { |
6317 HttpRequestInfo request; | 6319 HttpRequestInfo request; |
6318 request.method = "GET"; | 6320 request.method = "GET"; |
6319 request.url = GURL("https://www.google.com/"); | 6321 request.url = GURL("https://www.google.com/"); |
6320 request.extra_headers.SetHeader(HttpRequestHeaders::kUserAgent, | 6322 request.extra_headers.SetHeader(HttpRequestHeaders::kUserAgent, |
6321 "Chromium Ultra Awesome X Edition"); | 6323 "Chromium Ultra Awesome X Edition"); |
6322 | 6324 |
6323 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); | 6325 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); |
6326 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
6324 scoped_ptr<HttpTransaction> trans( | 6327 scoped_ptr<HttpTransaction> trans( |
6325 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 6328 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
6326 CreateSession(&session_deps_))); | |
6327 | 6329 |
6328 MockWrite data_writes[] = { | 6330 MockWrite data_writes[] = { |
6329 MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n" | 6331 MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n" |
6330 "Host: www.google.com\r\n" | 6332 "Host: www.google.com\r\n" |
6331 "Proxy-Connection: keep-alive\r\n" | 6333 "Proxy-Connection: keep-alive\r\n" |
6332 "User-Agent: Chromium Ultra Awesome X Edition\r\n\r\n"), | 6334 "User-Agent: Chromium Ultra Awesome X Edition\r\n\r\n"), |
6333 }; | 6335 }; |
6334 MockRead data_reads[] = { | 6336 MockRead data_reads[] = { |
6335 // Return an error, so the transaction stops here (this test isn't | 6337 // Return an error, so the transaction stops here (this test isn't |
6336 // interested in the rest). | 6338 // interested in the rest). |
(...skipping 16 matching lines...) Expand all Loading... | |
6353 } | 6355 } |
6354 | 6356 |
6355 TEST_P(HttpNetworkTransactionTest, BuildRequest_Referer) { | 6357 TEST_P(HttpNetworkTransactionTest, BuildRequest_Referer) { |
6356 HttpRequestInfo request; | 6358 HttpRequestInfo request; |
6357 request.method = "GET"; | 6359 request.method = "GET"; |
6358 request.url = GURL("http://www.google.com/"); | 6360 request.url = GURL("http://www.google.com/"); |
6359 request.load_flags = 0; | 6361 request.load_flags = 0; |
6360 request.extra_headers.SetHeader(HttpRequestHeaders::kReferer, | 6362 request.extra_headers.SetHeader(HttpRequestHeaders::kReferer, |
6361 "http://the.previous.site.com/"); | 6363 "http://the.previous.site.com/"); |
6362 | 6364 |
6365 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
6363 scoped_ptr<HttpTransaction> trans( | 6366 scoped_ptr<HttpTransaction> trans( |
6364 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 6367 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
6365 CreateSession(&session_deps_))); | |
6366 | 6368 |
6367 MockWrite data_writes[] = { | 6369 MockWrite data_writes[] = { |
6368 MockWrite("GET / HTTP/1.1\r\n" | 6370 MockWrite("GET / HTTP/1.1\r\n" |
6369 "Host: www.google.com\r\n" | 6371 "Host: www.google.com\r\n" |
6370 "Connection: keep-alive\r\n" | 6372 "Connection: keep-alive\r\n" |
6371 "Referer: http://the.previous.site.com/\r\n\r\n"), | 6373 "Referer: http://the.previous.site.com/\r\n\r\n"), |
6372 }; | 6374 }; |
6373 | 6375 |
6374 // Lastly, the server responds with the actual content. | 6376 // Lastly, the server responds with the actual content. |
6375 MockRead data_reads[] = { | 6377 MockRead data_reads[] = { |
(...skipping 14 matching lines...) Expand all Loading... | |
6390 | 6392 |
6391 rv = callback.WaitForResult(); | 6393 rv = callback.WaitForResult(); |
6392 EXPECT_EQ(OK, rv); | 6394 EXPECT_EQ(OK, rv); |
6393 } | 6395 } |
6394 | 6396 |
6395 TEST_P(HttpNetworkTransactionTest, BuildRequest_PostContentLengthZero) { | 6397 TEST_P(HttpNetworkTransactionTest, BuildRequest_PostContentLengthZero) { |
6396 HttpRequestInfo request; | 6398 HttpRequestInfo request; |
6397 request.method = "POST"; | 6399 request.method = "POST"; |
6398 request.url = GURL("http://www.google.com/"); | 6400 request.url = GURL("http://www.google.com/"); |
6399 | 6401 |
6402 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
6400 scoped_ptr<HttpTransaction> trans( | 6403 scoped_ptr<HttpTransaction> trans( |
6401 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 6404 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
6402 CreateSession(&session_deps_))); | |
6403 | 6405 |
6404 MockWrite data_writes[] = { | 6406 MockWrite data_writes[] = { |
6405 MockWrite("POST / HTTP/1.1\r\n" | 6407 MockWrite("POST / HTTP/1.1\r\n" |
6406 "Host: www.google.com\r\n" | 6408 "Host: www.google.com\r\n" |
6407 "Connection: keep-alive\r\n" | 6409 "Connection: keep-alive\r\n" |
6408 "Content-Length: 0\r\n\r\n"), | 6410 "Content-Length: 0\r\n\r\n"), |
6409 }; | 6411 }; |
6410 | 6412 |
6411 // Lastly, the server responds with the actual content. | 6413 // Lastly, the server responds with the actual content. |
6412 MockRead data_reads[] = { | 6414 MockRead data_reads[] = { |
(...skipping 14 matching lines...) Expand all Loading... | |
6427 | 6429 |
6428 rv = callback.WaitForResult(); | 6430 rv = callback.WaitForResult(); |
6429 EXPECT_EQ(OK, rv); | 6431 EXPECT_EQ(OK, rv); |
6430 } | 6432 } |
6431 | 6433 |
6432 TEST_P(HttpNetworkTransactionTest, BuildRequest_PutContentLengthZero) { | 6434 TEST_P(HttpNetworkTransactionTest, BuildRequest_PutContentLengthZero) { |
6433 HttpRequestInfo request; | 6435 HttpRequestInfo request; |
6434 request.method = "PUT"; | 6436 request.method = "PUT"; |
6435 request.url = GURL("http://www.google.com/"); | 6437 request.url = GURL("http://www.google.com/"); |
6436 | 6438 |
6439 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
6437 scoped_ptr<HttpTransaction> trans( | 6440 scoped_ptr<HttpTransaction> trans( |
6438 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 6441 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
6439 CreateSession(&session_deps_))); | |
6440 | 6442 |
6441 MockWrite data_writes[] = { | 6443 MockWrite data_writes[] = { |
6442 MockWrite("PUT / HTTP/1.1\r\n" | 6444 MockWrite("PUT / HTTP/1.1\r\n" |
6443 "Host: www.google.com\r\n" | 6445 "Host: www.google.com\r\n" |
6444 "Connection: keep-alive\r\n" | 6446 "Connection: keep-alive\r\n" |
6445 "Content-Length: 0\r\n\r\n"), | 6447 "Content-Length: 0\r\n\r\n"), |
6446 }; | 6448 }; |
6447 | 6449 |
6448 // Lastly, the server responds with the actual content. | 6450 // Lastly, the server responds with the actual content. |
6449 MockRead data_reads[] = { | 6451 MockRead data_reads[] = { |
(...skipping 14 matching lines...) Expand all Loading... | |
6464 | 6466 |
6465 rv = callback.WaitForResult(); | 6467 rv = callback.WaitForResult(); |
6466 EXPECT_EQ(OK, rv); | 6468 EXPECT_EQ(OK, rv); |
6467 } | 6469 } |
6468 | 6470 |
6469 TEST_P(HttpNetworkTransactionTest, BuildRequest_HeadContentLengthZero) { | 6471 TEST_P(HttpNetworkTransactionTest, BuildRequest_HeadContentLengthZero) { |
6470 HttpRequestInfo request; | 6472 HttpRequestInfo request; |
6471 request.method = "HEAD"; | 6473 request.method = "HEAD"; |
6472 request.url = GURL("http://www.google.com/"); | 6474 request.url = GURL("http://www.google.com/"); |
6473 | 6475 |
6476 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
6474 scoped_ptr<HttpTransaction> trans( | 6477 scoped_ptr<HttpTransaction> trans( |
6475 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 6478 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
6476 CreateSession(&session_deps_))); | |
6477 | 6479 |
6478 MockWrite data_writes[] = { | 6480 MockWrite data_writes[] = { |
6479 MockWrite("HEAD / HTTP/1.1\r\n" | 6481 MockWrite("HEAD / HTTP/1.1\r\n" |
6480 "Host: www.google.com\r\n" | 6482 "Host: www.google.com\r\n" |
6481 "Connection: keep-alive\r\n" | 6483 "Connection: keep-alive\r\n" |
6482 "Content-Length: 0\r\n\r\n"), | 6484 "Content-Length: 0\r\n\r\n"), |
6483 }; | 6485 }; |
6484 | 6486 |
6485 // Lastly, the server responds with the actual content. | 6487 // Lastly, the server responds with the actual content. |
6486 MockRead data_reads[] = { | 6488 MockRead data_reads[] = { |
(...skipping 15 matching lines...) Expand all Loading... | |
6502 rv = callback.WaitForResult(); | 6504 rv = callback.WaitForResult(); |
6503 EXPECT_EQ(OK, rv); | 6505 EXPECT_EQ(OK, rv); |
6504 } | 6506 } |
6505 | 6507 |
6506 TEST_P(HttpNetworkTransactionTest, BuildRequest_CacheControlNoCache) { | 6508 TEST_P(HttpNetworkTransactionTest, BuildRequest_CacheControlNoCache) { |
6507 HttpRequestInfo request; | 6509 HttpRequestInfo request; |
6508 request.method = "GET"; | 6510 request.method = "GET"; |
6509 request.url = GURL("http://www.google.com/"); | 6511 request.url = GURL("http://www.google.com/"); |
6510 request.load_flags = LOAD_BYPASS_CACHE; | 6512 request.load_flags = LOAD_BYPASS_CACHE; |
6511 | 6513 |
6514 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
6512 scoped_ptr<HttpTransaction> trans( | 6515 scoped_ptr<HttpTransaction> trans( |
6513 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 6516 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
6514 CreateSession(&session_deps_))); | |
6515 | 6517 |
6516 MockWrite data_writes[] = { | 6518 MockWrite data_writes[] = { |
6517 MockWrite("GET / HTTP/1.1\r\n" | 6519 MockWrite("GET / HTTP/1.1\r\n" |
6518 "Host: www.google.com\r\n" | 6520 "Host: www.google.com\r\n" |
6519 "Connection: keep-alive\r\n" | 6521 "Connection: keep-alive\r\n" |
6520 "Pragma: no-cache\r\n" | 6522 "Pragma: no-cache\r\n" |
6521 "Cache-Control: no-cache\r\n\r\n"), | 6523 "Cache-Control: no-cache\r\n\r\n"), |
6522 }; | 6524 }; |
6523 | 6525 |
6524 // Lastly, the server responds with the actual content. | 6526 // Lastly, the server responds with the actual content. |
(...skipping 17 matching lines...) Expand all Loading... | |
6542 EXPECT_EQ(OK, rv); | 6544 EXPECT_EQ(OK, rv); |
6543 } | 6545 } |
6544 | 6546 |
6545 TEST_P(HttpNetworkTransactionTest, | 6547 TEST_P(HttpNetworkTransactionTest, |
6546 BuildRequest_CacheControlValidateCache) { | 6548 BuildRequest_CacheControlValidateCache) { |
6547 HttpRequestInfo request; | 6549 HttpRequestInfo request; |
6548 request.method = "GET"; | 6550 request.method = "GET"; |
6549 request.url = GURL("http://www.google.com/"); | 6551 request.url = GURL("http://www.google.com/"); |
6550 request.load_flags = LOAD_VALIDATE_CACHE; | 6552 request.load_flags = LOAD_VALIDATE_CACHE; |
6551 | 6553 |
6554 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
6552 scoped_ptr<HttpTransaction> trans( | 6555 scoped_ptr<HttpTransaction> trans( |
6553 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 6556 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
6554 CreateSession(&session_deps_))); | |
6555 | 6557 |
6556 MockWrite data_writes[] = { | 6558 MockWrite data_writes[] = { |
6557 MockWrite("GET / HTTP/1.1\r\n" | 6559 MockWrite("GET / HTTP/1.1\r\n" |
6558 "Host: www.google.com\r\n" | 6560 "Host: www.google.com\r\n" |
6559 "Connection: keep-alive\r\n" | 6561 "Connection: keep-alive\r\n" |
6560 "Cache-Control: max-age=0\r\n\r\n"), | 6562 "Cache-Control: max-age=0\r\n\r\n"), |
6561 }; | 6563 }; |
6562 | 6564 |
6563 // Lastly, the server responds with the actual content. | 6565 // Lastly, the server responds with the actual content. |
6564 MockRead data_reads[] = { | 6566 MockRead data_reads[] = { |
(...skipping 15 matching lines...) Expand all Loading... | |
6580 rv = callback.WaitForResult(); | 6582 rv = callback.WaitForResult(); |
6581 EXPECT_EQ(OK, rv); | 6583 EXPECT_EQ(OK, rv); |
6582 } | 6584 } |
6583 | 6585 |
6584 TEST_P(HttpNetworkTransactionTest, BuildRequest_ExtraHeaders) { | 6586 TEST_P(HttpNetworkTransactionTest, BuildRequest_ExtraHeaders) { |
6585 HttpRequestInfo request; | 6587 HttpRequestInfo request; |
6586 request.method = "GET"; | 6588 request.method = "GET"; |
6587 request.url = GURL("http://www.google.com/"); | 6589 request.url = GURL("http://www.google.com/"); |
6588 request.extra_headers.SetHeader("FooHeader", "Bar"); | 6590 request.extra_headers.SetHeader("FooHeader", "Bar"); |
6589 | 6591 |
6592 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
6590 scoped_ptr<HttpTransaction> trans( | 6593 scoped_ptr<HttpTransaction> trans( |
6591 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 6594 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
6592 CreateSession(&session_deps_))); | |
6593 | 6595 |
6594 MockWrite data_writes[] = { | 6596 MockWrite data_writes[] = { |
6595 MockWrite("GET / HTTP/1.1\r\n" | 6597 MockWrite("GET / HTTP/1.1\r\n" |
6596 "Host: www.google.com\r\n" | 6598 "Host: www.google.com\r\n" |
6597 "Connection: keep-alive\r\n" | 6599 "Connection: keep-alive\r\n" |
6598 "FooHeader: Bar\r\n\r\n"), | 6600 "FooHeader: Bar\r\n\r\n"), |
6599 }; | 6601 }; |
6600 | 6602 |
6601 // Lastly, the server responds with the actual content. | 6603 // Lastly, the server responds with the actual content. |
6602 MockRead data_reads[] = { | 6604 MockRead data_reads[] = { |
(...skipping 17 matching lines...) Expand all Loading... | |
6620 } | 6622 } |
6621 | 6623 |
6622 TEST_P(HttpNetworkTransactionTest, BuildRequest_ExtraHeadersStripped) { | 6624 TEST_P(HttpNetworkTransactionTest, BuildRequest_ExtraHeadersStripped) { |
6623 HttpRequestInfo request; | 6625 HttpRequestInfo request; |
6624 request.method = "GET"; | 6626 request.method = "GET"; |
6625 request.url = GURL("http://www.google.com/"); | 6627 request.url = GURL("http://www.google.com/"); |
6626 request.extra_headers.SetHeader("referer", "www.foo.com"); | 6628 request.extra_headers.SetHeader("referer", "www.foo.com"); |
6627 request.extra_headers.SetHeader("hEllo", "Kitty"); | 6629 request.extra_headers.SetHeader("hEllo", "Kitty"); |
6628 request.extra_headers.SetHeader("FoO", "bar"); | 6630 request.extra_headers.SetHeader("FoO", "bar"); |
6629 | 6631 |
6632 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
6630 scoped_ptr<HttpTransaction> trans( | 6633 scoped_ptr<HttpTransaction> trans( |
6631 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 6634 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
6632 CreateSession(&session_deps_))); | |
6633 | 6635 |
6634 MockWrite data_writes[] = { | 6636 MockWrite data_writes[] = { |
6635 MockWrite("GET / HTTP/1.1\r\n" | 6637 MockWrite("GET / HTTP/1.1\r\n" |
6636 "Host: www.google.com\r\n" | 6638 "Host: www.google.com\r\n" |
6637 "Connection: keep-alive\r\n" | 6639 "Connection: keep-alive\r\n" |
6638 "referer: www.foo.com\r\n" | 6640 "referer: www.foo.com\r\n" |
6639 "hEllo: Kitty\r\n" | 6641 "hEllo: Kitty\r\n" |
6640 "FoO: bar\r\n\r\n"), | 6642 "FoO: bar\r\n\r\n"), |
6641 }; | 6643 }; |
6642 | 6644 |
(...skipping 22 matching lines...) Expand all Loading... | |
6665 HttpRequestInfo request; | 6667 HttpRequestInfo request; |
6666 request.method = "GET"; | 6668 request.method = "GET"; |
6667 request.url = GURL("http://www.google.com/"); | 6669 request.url = GURL("http://www.google.com/"); |
6668 request.load_flags = 0; | 6670 request.load_flags = 0; |
6669 | 6671 |
6670 session_deps_.proxy_service.reset( | 6672 session_deps_.proxy_service.reset( |
6671 ProxyService::CreateFixedFromPacResult("SOCKS myproxy:1080")); | 6673 ProxyService::CreateFixedFromPacResult("SOCKS myproxy:1080")); |
6672 CapturingNetLog net_log; | 6674 CapturingNetLog net_log; |
6673 session_deps_.net_log = &net_log; | 6675 session_deps_.net_log = &net_log; |
6674 | 6676 |
6677 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
6675 scoped_ptr<HttpTransaction> trans( | 6678 scoped_ptr<HttpTransaction> trans( |
6676 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 6679 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
6677 CreateSession(&session_deps_))); | |
6678 | 6680 |
6679 char write_buffer[] = { 0x04, 0x01, 0x00, 0x50, 127, 0, 0, 1, 0 }; | 6681 char write_buffer[] = { 0x04, 0x01, 0x00, 0x50, 127, 0, 0, 1, 0 }; |
6680 char read_buffer[] = { 0x00, 0x5A, 0x00, 0x00, 0, 0, 0, 0 }; | 6682 char read_buffer[] = { 0x00, 0x5A, 0x00, 0x00, 0, 0, 0, 0 }; |
6681 | 6683 |
6682 MockWrite data_writes[] = { | 6684 MockWrite data_writes[] = { |
6683 MockWrite(ASYNC, write_buffer, arraysize(write_buffer)), | 6685 MockWrite(ASYNC, write_buffer, arraysize(write_buffer)), |
6684 MockWrite("GET / HTTP/1.1\r\n" | 6686 MockWrite("GET / HTTP/1.1\r\n" |
6685 "Host: www.google.com\r\n" | 6687 "Host: www.google.com\r\n" |
6686 "Connection: keep-alive\r\n\r\n") | 6688 "Connection: keep-alive\r\n\r\n") |
6687 }; | 6689 }; |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
6724 HttpRequestInfo request; | 6726 HttpRequestInfo request; |
6725 request.method = "GET"; | 6727 request.method = "GET"; |
6726 request.url = GURL("https://www.google.com/"); | 6728 request.url = GURL("https://www.google.com/"); |
6727 request.load_flags = 0; | 6729 request.load_flags = 0; |
6728 | 6730 |
6729 session_deps_.proxy_service.reset( | 6731 session_deps_.proxy_service.reset( |
6730 ProxyService::CreateFixedFromPacResult("SOCKS myproxy:1080")); | 6732 ProxyService::CreateFixedFromPacResult("SOCKS myproxy:1080")); |
6731 CapturingNetLog net_log; | 6733 CapturingNetLog net_log; |
6732 session_deps_.net_log = &net_log; | 6734 session_deps_.net_log = &net_log; |
6733 | 6735 |
6736 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
6734 scoped_ptr<HttpTransaction> trans( | 6737 scoped_ptr<HttpTransaction> trans( |
6735 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 6738 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
6736 CreateSession(&session_deps_))); | |
6737 | 6739 |
6738 unsigned char write_buffer[] = { 0x04, 0x01, 0x01, 0xBB, 127, 0, 0, 1, 0 }; | 6740 unsigned char write_buffer[] = { 0x04, 0x01, 0x01, 0xBB, 127, 0, 0, 1, 0 }; |
6739 unsigned char read_buffer[] = { 0x00, 0x5A, 0x00, 0x00, 0, 0, 0, 0 }; | 6741 unsigned char read_buffer[] = { 0x00, 0x5A, 0x00, 0x00, 0, 0, 0, 0 }; |
6740 | 6742 |
6741 MockWrite data_writes[] = { | 6743 MockWrite data_writes[] = { |
6742 MockWrite(ASYNC, reinterpret_cast<char*>(write_buffer), | 6744 MockWrite(ASYNC, reinterpret_cast<char*>(write_buffer), |
6743 arraysize(write_buffer)), | 6745 arraysize(write_buffer)), |
6744 MockWrite("GET / HTTP/1.1\r\n" | 6746 MockWrite("GET / HTTP/1.1\r\n" |
6745 "Host: www.google.com\r\n" | 6747 "Host: www.google.com\r\n" |
6746 "Connection: keep-alive\r\n\r\n") | 6748 "Connection: keep-alive\r\n\r\n") |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
6788 HttpRequestInfo request; | 6790 HttpRequestInfo request; |
6789 request.method = "GET"; | 6791 request.method = "GET"; |
6790 request.url = GURL("http://www.google.com/"); | 6792 request.url = GURL("http://www.google.com/"); |
6791 request.load_flags = 0; | 6793 request.load_flags = 0; |
6792 | 6794 |
6793 session_deps_.proxy_service.reset( | 6795 session_deps_.proxy_service.reset( |
6794 ProxyService::CreateFixed("socks4://myproxy:1080")); | 6796 ProxyService::CreateFixed("socks4://myproxy:1080")); |
6795 CapturingNetLog net_log; | 6797 CapturingNetLog net_log; |
6796 session_deps_.net_log = &net_log; | 6798 session_deps_.net_log = &net_log; |
6797 | 6799 |
6800 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
6798 scoped_ptr<HttpTransaction> trans( | 6801 scoped_ptr<HttpTransaction> trans( |
6799 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 6802 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
6800 CreateSession(&session_deps_))); | |
6801 | 6803 |
6802 char write_buffer[] = { 0x04, 0x01, 0x00, 0x50, 127, 0, 0, 1, 0 }; | 6804 char write_buffer[] = { 0x04, 0x01, 0x00, 0x50, 127, 0, 0, 1, 0 }; |
6803 char read_buffer[] = { 0x00, 0x5A, 0x00, 0x00, 0, 0, 0, 0 }; | 6805 char read_buffer[] = { 0x00, 0x5A, 0x00, 0x00, 0, 0, 0, 0 }; |
6804 | 6806 |
6805 MockWrite data_writes[] = { | 6807 MockWrite data_writes[] = { |
6806 MockWrite(ASYNC, write_buffer, arraysize(write_buffer)), | 6808 MockWrite(ASYNC, write_buffer, arraysize(write_buffer)), |
6807 MockWrite("GET / HTTP/1.1\r\n" | 6809 MockWrite("GET / HTTP/1.1\r\n" |
6808 "Host: www.google.com\r\n" | 6810 "Host: www.google.com\r\n" |
6809 "Connection: keep-alive\r\n\r\n") | 6811 "Connection: keep-alive\r\n\r\n") |
6810 }; | 6812 }; |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
6847 HttpRequestInfo request; | 6849 HttpRequestInfo request; |
6848 request.method = "GET"; | 6850 request.method = "GET"; |
6849 request.url = GURL("http://www.google.com/"); | 6851 request.url = GURL("http://www.google.com/"); |
6850 request.load_flags = 0; | 6852 request.load_flags = 0; |
6851 | 6853 |
6852 session_deps_.proxy_service.reset( | 6854 session_deps_.proxy_service.reset( |
6853 ProxyService::CreateFixedFromPacResult("SOCKS5 myproxy:1080")); | 6855 ProxyService::CreateFixedFromPacResult("SOCKS5 myproxy:1080")); |
6854 CapturingNetLog net_log; | 6856 CapturingNetLog net_log; |
6855 session_deps_.net_log = &net_log; | 6857 session_deps_.net_log = &net_log; |
6856 | 6858 |
6859 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
6857 scoped_ptr<HttpTransaction> trans( | 6860 scoped_ptr<HttpTransaction> trans( |
6858 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 6861 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
6859 CreateSession(&session_deps_))); | |
6860 | 6862 |
6861 const char kSOCKS5GreetRequest[] = { 0x05, 0x01, 0x00 }; | 6863 const char kSOCKS5GreetRequest[] = { 0x05, 0x01, 0x00 }; |
6862 const char kSOCKS5GreetResponse[] = { 0x05, 0x00 }; | 6864 const char kSOCKS5GreetResponse[] = { 0x05, 0x00 }; |
6863 const char kSOCKS5OkRequest[] = { | 6865 const char kSOCKS5OkRequest[] = { |
6864 0x05, // Version | 6866 0x05, // Version |
6865 0x01, // Command (CONNECT) | 6867 0x01, // Command (CONNECT) |
6866 0x00, // Reserved. | 6868 0x00, // Reserved. |
6867 0x03, // Address type (DOMAINNAME). | 6869 0x03, // Address type (DOMAINNAME). |
6868 0x0E, // Length of domain (14) | 6870 0x0E, // Length of domain (14) |
6869 // Domain string: | 6871 // Domain string: |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
6920 HttpRequestInfo request; | 6922 HttpRequestInfo request; |
6921 request.method = "GET"; | 6923 request.method = "GET"; |
6922 request.url = GURL("https://www.google.com/"); | 6924 request.url = GURL("https://www.google.com/"); |
6923 request.load_flags = 0; | 6925 request.load_flags = 0; |
6924 | 6926 |
6925 session_deps_.proxy_service.reset( | 6927 session_deps_.proxy_service.reset( |
6926 ProxyService::CreateFixedFromPacResult("SOCKS5 myproxy:1080")); | 6928 ProxyService::CreateFixedFromPacResult("SOCKS5 myproxy:1080")); |
6927 CapturingNetLog net_log; | 6929 CapturingNetLog net_log; |
6928 session_deps_.net_log = &net_log; | 6930 session_deps_.net_log = &net_log; |
6929 | 6931 |
6932 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
6930 scoped_ptr<HttpTransaction> trans( | 6933 scoped_ptr<HttpTransaction> trans( |
6931 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 6934 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
6932 CreateSession(&session_deps_))); | |
6933 | 6935 |
6934 const char kSOCKS5GreetRequest[] = { 0x05, 0x01, 0x00 }; | 6936 const char kSOCKS5GreetRequest[] = { 0x05, 0x01, 0x00 }; |
6935 const char kSOCKS5GreetResponse[] = { 0x05, 0x00 }; | 6937 const char kSOCKS5GreetResponse[] = { 0x05, 0x00 }; |
6936 const unsigned char kSOCKS5OkRequest[] = { | 6938 const unsigned char kSOCKS5OkRequest[] = { |
6937 0x05, // Version | 6939 0x05, // Version |
6938 0x01, // Command (CONNECT) | 6940 0x01, // Command (CONNECT) |
6939 0x00, // Reserved. | 6941 0x00, // Reserved. |
6940 0x03, // Address type (DOMAINNAME). | 6942 0x03, // Address type (DOMAINNAME). |
6941 0x0E, // Length of domain (14) | 6943 0x0E, // Length of domain (14) |
6942 // Domain string: | 6944 // Domain string: |
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
7248 request.method = "GET"; | 7250 request.method = "GET"; |
7249 request.url = GURL("http://www.google.com/"); | 7251 request.url = GURL("http://www.google.com/"); |
7250 | 7252 |
7251 session_deps_.proxy_service.reset( | 7253 session_deps_.proxy_service.reset( |
7252 ProxyService::CreateFixed("myproxy:70;foobar:80")); | 7254 ProxyService::CreateFixed("myproxy:70;foobar:80")); |
7253 | 7255 |
7254 // This simulates failure resolving all hostnames; that means we will fail | 7256 // This simulates failure resolving all hostnames; that means we will fail |
7255 // connecting to both proxies (myproxy:70 and foobar:80). | 7257 // connecting to both proxies (myproxy:70 and foobar:80). |
7256 session_deps_.host_resolver->rules()->AddSimulatedFailure("*"); | 7258 session_deps_.host_resolver->rules()->AddSimulatedFailure("*"); |
7257 | 7259 |
7260 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
7258 scoped_ptr<HttpTransaction> trans( | 7261 scoped_ptr<HttpTransaction> trans( |
7259 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 7262 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
7260 CreateSession(&session_deps_))); | |
7261 | 7263 |
7262 TestCompletionCallback callback; | 7264 TestCompletionCallback callback; |
7263 | 7265 |
7264 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 7266 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
7265 EXPECT_EQ(ERR_IO_PENDING, rv); | 7267 EXPECT_EQ(ERR_IO_PENDING, rv); |
7266 | 7268 |
7267 rv = callback.WaitForResult(); | 7269 rv = callback.WaitForResult(); |
7268 EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED, rv); | 7270 EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED, rv); |
7269 } | 7271 } |
7270 | 7272 |
7271 // Base test to make sure that when the load flags for a request specify to | 7273 // Base test to make sure that when the load flags for a request specify to |
7272 // bypass the cache, the DNS cache is not used. | 7274 // bypass the cache, the DNS cache is not used. |
7273 void HttpNetworkTransactionTest::BypassHostCacheOnRefreshHelper( | 7275 void HttpNetworkTransactionTest::BypassHostCacheOnRefreshHelper( |
7274 int load_flags) { | 7276 int load_flags) { |
7275 // Issue a request, asking to bypass the cache(s). | 7277 // Issue a request, asking to bypass the cache(s). |
7276 HttpRequestInfo request; | 7278 HttpRequestInfo request; |
7277 request.method = "GET"; | 7279 request.method = "GET"; |
7278 request.load_flags = load_flags; | 7280 request.load_flags = load_flags; |
7279 request.url = GURL("http://www.google.com/"); | 7281 request.url = GURL("http://www.google.com/"); |
7280 | 7282 |
7281 // Select a host resolver that does caching. | 7283 // Select a host resolver that does caching. |
7282 session_deps_.host_resolver.reset(new MockCachingHostResolver); | 7284 session_deps_.host_resolver.reset(new MockCachingHostResolver); |
7283 | 7285 |
7284 scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(DEFAULT_PRIORITY, | 7286 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
7285 CreateSession(&session_deps_))); | 7287 scoped_ptr<HttpTransaction> trans( |
7288 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | |
7286 | 7289 |
7287 // Warm up the host cache so it has an entry for "www.google.com". | 7290 // Warm up the host cache so it has an entry for "www.google.com". |
7288 AddressList addrlist; | 7291 AddressList addrlist; |
7289 TestCompletionCallback callback; | 7292 TestCompletionCallback callback; |
7290 int rv = session_deps_.host_resolver->Resolve( | 7293 int rv = session_deps_.host_resolver->Resolve( |
7291 HostResolver::RequestInfo(HostPortPair("www.google.com", 80)), | 7294 HostResolver::RequestInfo(HostPortPair("www.google.com", 80)), |
7292 DEFAULT_PRIORITY, | 7295 DEFAULT_PRIORITY, |
7293 &addrlist, | 7296 &addrlist, |
7294 callback.callback(), | 7297 callback.callback(), |
7295 NULL, | 7298 NULL, |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
7351 HttpRequestInfo request; | 7354 HttpRequestInfo request; |
7352 request.method = "GET"; | 7355 request.method = "GET"; |
7353 request.url = GURL("http://www.foo.com/"); | 7356 request.url = GURL("http://www.foo.com/"); |
7354 request.load_flags = 0; | 7357 request.load_flags = 0; |
7355 | 7358 |
7356 MockWrite write_failure[] = { | 7359 MockWrite write_failure[] = { |
7357 MockWrite(ASYNC, ERR_CONNECTION_RESET), | 7360 MockWrite(ASYNC, ERR_CONNECTION_RESET), |
7358 }; | 7361 }; |
7359 StaticSocketDataProvider data(NULL, 0, | 7362 StaticSocketDataProvider data(NULL, 0, |
7360 write_failure, arraysize(write_failure)); | 7363 write_failure, arraysize(write_failure)); |
7361 session_deps_.socket_factory->AddSocketDataProvider(&data); | 7364 session_deps_.socket_factory->AddSocketDataProvider(&data); |
wtc
2013/10/15 23:08:21
Nit: it may be safer to move line 7352 after this
wtc
2013/10/16 15:04:32
I took another look at this. I think your change i
mmenke
2013/10/16 15:58:44
Order changed. I agree with you that the ordering
| |
7362 | 7365 |
7363 TestCompletionCallback callback; | 7366 TestCompletionCallback callback; |
7364 | 7367 |
7365 scoped_ptr<HttpTransaction> trans( | 7368 scoped_ptr<HttpTransaction> trans( |
7366 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 7369 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
7367 CreateSession(&session_deps_))); | |
7368 | 7370 |
7369 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 7371 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
7370 EXPECT_EQ(ERR_IO_PENDING, rv); | 7372 EXPECT_EQ(ERR_IO_PENDING, rv); |
7371 | 7373 |
7372 rv = callback.WaitForResult(); | 7374 rv = callback.WaitForResult(); |
7373 EXPECT_EQ(ERR_CONNECTION_RESET, rv); | 7375 EXPECT_EQ(ERR_CONNECTION_RESET, rv); |
7374 } | 7376 } |
7375 | 7377 |
7376 // Check that a connection closed after the start of the headers finishes ok. | 7378 // Check that a connection closed after the start of the headers finishes ok. |
7377 TEST_P(HttpNetworkTransactionTest, ConnectionClosedAfterStartOfHeaders) { | 7379 TEST_P(HttpNetworkTransactionTest, ConnectionClosedAfterStartOfHeaders) { |
7378 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7380 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
7379 | 7381 |
7380 HttpRequestInfo request; | 7382 HttpRequestInfo request; |
7381 request.method = "GET"; | 7383 request.method = "GET"; |
7382 request.url = GURL("http://www.foo.com/"); | 7384 request.url = GURL("http://www.foo.com/"); |
7383 request.load_flags = 0; | 7385 request.load_flags = 0; |
7384 | 7386 |
7385 MockRead data_reads[] = { | 7387 MockRead data_reads[] = { |
7386 MockRead("HTTP/1."), | 7388 MockRead("HTTP/1."), |
7387 MockRead(SYNCHRONOUS, OK), | 7389 MockRead(SYNCHRONOUS, OK), |
7388 }; | 7390 }; |
7389 | 7391 |
7390 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 7392 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
7391 session_deps_.socket_factory->AddSocketDataProvider(&data); | 7393 session_deps_.socket_factory->AddSocketDataProvider(&data); |
wtc
2013/10/15 23:08:21
Nit: same here. Consider creating |session| after
mmenke
2013/10/16 15:58:44
Done.
| |
7392 | 7394 |
7393 TestCompletionCallback callback; | 7395 TestCompletionCallback callback; |
7394 | 7396 |
7395 scoped_ptr<HttpTransaction> trans( | 7397 scoped_ptr<HttpTransaction> trans( |
7396 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 7398 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
7397 CreateSession(&session_deps_))); | |
7398 | 7399 |
7399 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 7400 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
7400 EXPECT_EQ(ERR_IO_PENDING, rv); | 7401 EXPECT_EQ(ERR_IO_PENDING, rv); |
7401 | 7402 |
7402 rv = callback.WaitForResult(); | 7403 rv = callback.WaitForResult(); |
7403 EXPECT_EQ(OK, rv); | 7404 EXPECT_EQ(OK, rv); |
7404 | 7405 |
7405 const HttpResponseInfo* response = trans->GetResponseInfo(); | 7406 const HttpResponseInfo* response = trans->GetResponseInfo(); |
7406 ASSERT_TRUE(response != NULL); | 7407 ASSERT_TRUE(response != NULL); |
7407 | 7408 |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
7511 StaticSocketDataProvider data(proxy_reads, arraysize(proxy_reads), NULL, 0); | 7512 StaticSocketDataProvider data(proxy_reads, arraysize(proxy_reads), NULL, 0); |
7512 SSLSocketDataProvider ssl(ASYNC, OK); | 7513 SSLSocketDataProvider ssl(ASYNC, OK); |
7513 | 7514 |
7514 session_deps_.socket_factory->AddSocketDataProvider(&data); | 7515 session_deps_.socket_factory->AddSocketDataProvider(&data); |
7515 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 7516 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
7516 | 7517 |
7517 TestCompletionCallback callback; | 7518 TestCompletionCallback callback; |
7518 | 7519 |
7519 session_deps_.socket_factory->ResetNextMockIndexes(); | 7520 session_deps_.socket_factory->ResetNextMockIndexes(); |
7520 | 7521 |
7522 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
7521 scoped_ptr<HttpTransaction> trans( | 7523 scoped_ptr<HttpTransaction> trans( |
7522 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 7524 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
7523 CreateSession(&session_deps_))); | |
7524 | 7525 |
7525 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 7526 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
7526 EXPECT_EQ(ERR_IO_PENDING, rv); | 7527 EXPECT_EQ(ERR_IO_PENDING, rv); |
7527 | 7528 |
7528 rv = callback.WaitForResult(); | 7529 rv = callback.WaitForResult(); |
7529 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, rv); | 7530 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, rv); |
7530 } | 7531 } |
7531 | 7532 |
7532 TEST_P(HttpNetworkTransactionTest, LargeContentLengthThenClose) { | 7533 TEST_P(HttpNetworkTransactionTest, LargeContentLengthThenClose) { |
7533 HttpRequestInfo request; | 7534 HttpRequestInfo request; |
7534 request.method = "GET"; | 7535 request.method = "GET"; |
7535 request.url = GURL("http://www.google.com/"); | 7536 request.url = GURL("http://www.google.com/"); |
7536 request.load_flags = 0; | 7537 request.load_flags = 0; |
7537 | 7538 |
7539 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
7538 scoped_ptr<HttpTransaction> trans( | 7540 scoped_ptr<HttpTransaction> trans( |
7539 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 7541 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
7540 CreateSession(&session_deps_))); | |
7541 | 7542 |
7542 MockRead data_reads[] = { | 7543 MockRead data_reads[] = { |
7543 MockRead("HTTP/1.0 200 OK\r\nContent-Length:6719476739\r\n\r\n"), | 7544 MockRead("HTTP/1.0 200 OK\r\nContent-Length:6719476739\r\n\r\n"), |
7544 MockRead(SYNCHRONOUS, OK), | 7545 MockRead(SYNCHRONOUS, OK), |
7545 }; | 7546 }; |
7546 | 7547 |
7547 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 7548 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
7548 session_deps_.socket_factory->AddSocketDataProvider(&data); | 7549 session_deps_.socket_factory->AddSocketDataProvider(&data); |
7549 | 7550 |
7550 TestCompletionCallback callback; | 7551 TestCompletionCallback callback; |
(...skipping 29 matching lines...) Expand all Loading... | |
7580 kuint64max, | 7581 kuint64max, |
7581 base::Time())); | 7582 base::Time())); |
7582 UploadDataStream upload_data_stream(element_readers.Pass(), 0); | 7583 UploadDataStream upload_data_stream(element_readers.Pass(), 0); |
7583 | 7584 |
7584 HttpRequestInfo request; | 7585 HttpRequestInfo request; |
7585 request.method = "POST"; | 7586 request.method = "POST"; |
7586 request.url = GURL("http://www.google.com/upload"); | 7587 request.url = GURL("http://www.google.com/upload"); |
7587 request.upload_data_stream = &upload_data_stream; | 7588 request.upload_data_stream = &upload_data_stream; |
7588 request.load_flags = 0; | 7589 request.load_flags = 0; |
7589 | 7590 |
7591 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
7590 scoped_ptr<HttpTransaction> trans( | 7592 scoped_ptr<HttpTransaction> trans( |
7591 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 7593 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
7592 CreateSession(&session_deps_))); | |
7593 | 7594 |
7594 MockRead data_reads[] = { | 7595 MockRead data_reads[] = { |
7595 MockRead("HTTP/1.0 200 OK\r\n\r\n"), | 7596 MockRead("HTTP/1.0 200 OK\r\n\r\n"), |
7596 MockRead("hello world"), | 7597 MockRead("hello world"), |
7597 MockRead(SYNCHRONOUS, OK), | 7598 MockRead(SYNCHRONOUS, OK), |
7598 }; | 7599 }; |
7599 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 7600 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
7600 session_deps_.socket_factory->AddSocketDataProvider(&data); | 7601 session_deps_.socket_factory->AddSocketDataProvider(&data); |
7601 | 7602 |
7602 TestCompletionCallback callback; | 7603 TestCompletionCallback callback; |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
7639 UploadDataStream upload_data_stream(element_readers.Pass(), 0); | 7640 UploadDataStream upload_data_stream(element_readers.Pass(), 0); |
7640 | 7641 |
7641 HttpRequestInfo request; | 7642 HttpRequestInfo request; |
7642 request.method = "POST"; | 7643 request.method = "POST"; |
7643 request.url = GURL("http://www.google.com/upload"); | 7644 request.url = GURL("http://www.google.com/upload"); |
7644 request.upload_data_stream = &upload_data_stream; | 7645 request.upload_data_stream = &upload_data_stream; |
7645 request.load_flags = 0; | 7646 request.load_flags = 0; |
7646 | 7647 |
7647 // If we try to upload an unreadable file, the network stack should report | 7648 // If we try to upload an unreadable file, the network stack should report |
7648 // the file size as zero and upload zero bytes for that file. | 7649 // the file size as zero and upload zero bytes for that file. |
7650 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
7649 scoped_ptr<HttpTransaction> trans( | 7651 scoped_ptr<HttpTransaction> trans( |
7650 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 7652 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
7651 CreateSession(&session_deps_))); | |
7652 | 7653 |
7653 MockRead data_reads[] = { | 7654 MockRead data_reads[] = { |
7654 MockRead("HTTP/1.0 200 OK\r\n\r\n"), | 7655 MockRead("HTTP/1.0 200 OK\r\n\r\n"), |
7655 MockRead(SYNCHRONOUS, OK), | 7656 MockRead(SYNCHRONOUS, OK), |
7656 }; | 7657 }; |
7657 MockWrite data_writes[] = { | 7658 MockWrite data_writes[] = { |
7658 MockWrite("POST /upload HTTP/1.1\r\n" | 7659 MockWrite("POST /upload HTTP/1.1\r\n" |
7659 "Host: www.google.com\r\n" | 7660 "Host: www.google.com\r\n" |
7660 "Connection: keep-alive\r\n" | 7661 "Connection: keep-alive\r\n" |
7661 "Content-Length: 0\r\n\r\n"), | 7662 "Content-Length: 0\r\n\r\n"), |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
7697 kuint64max, | 7698 kuint64max, |
7698 base::Time())); | 7699 base::Time())); |
7699 UploadDataStream upload_data_stream(element_readers.Pass(), 0); | 7700 UploadDataStream upload_data_stream(element_readers.Pass(), 0); |
7700 | 7701 |
7701 HttpRequestInfo request; | 7702 HttpRequestInfo request; |
7702 request.method = "POST"; | 7703 request.method = "POST"; |
7703 request.url = GURL("http://www.google.com/upload"); | 7704 request.url = GURL("http://www.google.com/upload"); |
7704 request.upload_data_stream = &upload_data_stream; | 7705 request.upload_data_stream = &upload_data_stream; |
7705 request.load_flags = 0; | 7706 request.load_flags = 0; |
7706 | 7707 |
7708 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
7707 scoped_ptr<HttpTransaction> trans( | 7709 scoped_ptr<HttpTransaction> trans( |
7708 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 7710 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
7709 CreateSession(&session_deps_))); | |
7710 | 7711 |
7711 MockRead data_reads[] = { | 7712 MockRead data_reads[] = { |
7712 MockRead("HTTP/1.1 401 Unauthorized\r\n"), | 7713 MockRead("HTTP/1.1 401 Unauthorized\r\n"), |
7713 MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"), | 7714 MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"), |
7714 MockRead("Content-Length: 0\r\n\r\n"), // No response body. | 7715 MockRead("Content-Length: 0\r\n\r\n"), // No response body. |
7715 | 7716 |
7716 MockRead("HTTP/1.1 200 OK\r\n"), | 7717 MockRead("HTTP/1.1 200 OK\r\n"), |
7717 MockRead("Content-Length: 0\r\n\r\n"), | 7718 MockRead("Content-Length: 0\r\n\r\n"), |
7718 MockRead(SYNCHRONOUS, OK), | 7719 MockRead(SYNCHRONOUS, OK), |
7719 }; | 7720 }; |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
7801 ScopedVector<UploadElementReader> element_readers; | 7802 ScopedVector<UploadElementReader> element_readers; |
7802 element_readers.push_back(fake_reader); | 7803 element_readers.push_back(fake_reader); |
7803 UploadDataStream upload_data_stream(element_readers.Pass(), 0); | 7804 UploadDataStream upload_data_stream(element_readers.Pass(), 0); |
7804 | 7805 |
7805 HttpRequestInfo request; | 7806 HttpRequestInfo request; |
7806 request.method = "POST"; | 7807 request.method = "POST"; |
7807 request.url = GURL("http://www.google.com/upload"); | 7808 request.url = GURL("http://www.google.com/upload"); |
7808 request.upload_data_stream = &upload_data_stream; | 7809 request.upload_data_stream = &upload_data_stream; |
7809 request.load_flags = 0; | 7810 request.load_flags = 0; |
7810 | 7811 |
7812 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
7811 scoped_ptr<HttpTransaction> trans( | 7813 scoped_ptr<HttpTransaction> trans( |
7812 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 7814 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
7813 CreateSession(&session_deps_))); | |
7814 | 7815 |
7815 StaticSocketDataProvider data; | 7816 StaticSocketDataProvider data; |
7816 session_deps_.socket_factory->AddSocketDataProvider(&data); | 7817 session_deps_.socket_factory->AddSocketDataProvider(&data); |
7817 | 7818 |
7818 TestCompletionCallback callback; | 7819 TestCompletionCallback callback; |
7819 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 7820 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
7820 EXPECT_EQ(ERR_IO_PENDING, rv); | 7821 EXPECT_EQ(ERR_IO_PENDING, rv); |
7821 base::MessageLoop::current()->RunUntilIdle(); | 7822 base::MessageLoop::current()->RunUntilIdle(); |
7822 | 7823 |
7823 // Transaction is pending on request body initialization. | 7824 // Transaction is pending on request body initialization. |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
7905 data_writes3, arraysize(data_writes3)); | 7906 data_writes3, arraysize(data_writes3)); |
7906 StaticSocketDataProvider data4(data_reads4, arraysize(data_reads4), | 7907 StaticSocketDataProvider data4(data_reads4, arraysize(data_reads4), |
7907 data_writes4, arraysize(data_writes4)); | 7908 data_writes4, arraysize(data_writes4)); |
7908 session_deps_.socket_factory->AddSocketDataProvider(&data1); | 7909 session_deps_.socket_factory->AddSocketDataProvider(&data1); |
7909 session_deps_.socket_factory->AddSocketDataProvider(&data2); | 7910 session_deps_.socket_factory->AddSocketDataProvider(&data2); |
7910 session_deps_.socket_factory->AddSocketDataProvider(&data3); | 7911 session_deps_.socket_factory->AddSocketDataProvider(&data3); |
7911 session_deps_.socket_factory->AddSocketDataProvider(&data4); | 7912 session_deps_.socket_factory->AddSocketDataProvider(&data4); |
7912 | 7913 |
7913 TestCompletionCallback callback1; | 7914 TestCompletionCallback callback1; |
7914 | 7915 |
7916 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
7915 scoped_ptr<HttpTransaction> trans( | 7917 scoped_ptr<HttpTransaction> trans( |
7916 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 7918 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
7917 CreateSession(&session_deps_))); | |
7918 | 7919 |
7919 // Issue the first request with Authorize headers. There should be a | 7920 // Issue the first request with Authorize headers. There should be a |
7920 // password prompt for first_realm waiting to be filled in after the | 7921 // password prompt for first_realm waiting to be filled in after the |
7921 // transaction completes. | 7922 // transaction completes. |
7922 int rv = trans->Start(&request, callback1.callback(), BoundNetLog()); | 7923 int rv = trans->Start(&request, callback1.callback(), BoundNetLog()); |
7923 EXPECT_EQ(ERR_IO_PENDING, rv); | 7924 EXPECT_EQ(ERR_IO_PENDING, rv); |
7924 rv = callback1.WaitForResult(); | 7925 rv = callback1.WaitForResult(); |
7925 EXPECT_EQ(OK, rv); | 7926 EXPECT_EQ(OK, rv); |
7926 const HttpResponseInfo* response = trans->GetResponseInfo(); | 7927 const HttpResponseInfo* response = trans->GetResponseInfo(); |
7927 ASSERT_TRUE(response != NULL); | 7928 ASSERT_TRUE(response != NULL); |
(...skipping 1352 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
9280 } else { | 9281 } else { |
9281 session_deps_.proxy_service.reset(ProxyService::CreateDirect()); | 9282 session_deps_.proxy_service.reset(ProxyService::CreateDirect()); |
9282 } | 9283 } |
9283 | 9284 |
9284 HttpRequestInfo request; | 9285 HttpRequestInfo request; |
9285 request.method = "GET"; | 9286 request.method = "GET"; |
9286 request.url = GURL(test_config.server_url); | 9287 request.url = GURL(test_config.server_url); |
9287 request.load_flags = 0; | 9288 request.load_flags = 0; |
9288 | 9289 |
9289 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 9290 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
9290 HttpNetworkTransaction trans( | 9291 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session); |
9291 DEFAULT_PRIORITY, CreateSession(&session_deps_)); | |
9292 | 9292 |
9293 for (int round = 0; round < test_config.num_auth_rounds; ++round) { | 9293 for (int round = 0; round < test_config.num_auth_rounds; ++round) { |
9294 const TestRound& read_write_round = test_config.rounds[round]; | 9294 const TestRound& read_write_round = test_config.rounds[round]; |
9295 | 9295 |
9296 // Set up expected reads and writes. | 9296 // Set up expected reads and writes. |
9297 MockRead reads[2]; | 9297 MockRead reads[2]; |
9298 reads[0] = read_write_round.read; | 9298 reads[0] = read_write_round.read; |
9299 size_t length_reads = 1; | 9299 size_t length_reads = 1; |
9300 if (read_write_round.extra_read) { | 9300 if (read_write_round.extra_read) { |
9301 reads[1] = *read_write_round.extra_read; | 9301 reads[1] = *read_write_round.extra_read; |
(...skipping 534 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
9836 MockRead(SYNCHRONOUS, "hello world"), | 9836 MockRead(SYNCHRONOUS, "hello world"), |
9837 MockRead(SYNCHRONOUS, OK), | 9837 MockRead(SYNCHRONOUS, OK), |
9838 }; | 9838 }; |
9839 | 9839 |
9840 HttpRequestInfo request; | 9840 HttpRequestInfo request; |
9841 request.method = "GET"; | 9841 request.method = "GET"; |
9842 request.url = GURL("http://www.google.com/"); | 9842 request.url = GURL("http://www.google.com/"); |
9843 request.load_flags = 0; | 9843 request.load_flags = 0; |
9844 | 9844 |
9845 session_deps_.host_resolver->set_synchronous_mode(true); | 9845 session_deps_.host_resolver->set_synchronous_mode(true); |
9846 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
9846 scoped_ptr<HttpTransaction> trans( | 9847 scoped_ptr<HttpTransaction> trans( |
9847 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 9848 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
9848 CreateSession(&session_deps_))); | |
9849 | 9849 |
9850 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); | 9850 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); |
9851 data.set_connect_data(mock_connect); | 9851 data.set_connect_data(mock_connect); |
9852 session_deps_.socket_factory->AddSocketDataProvider(&data); | 9852 session_deps_.socket_factory->AddSocketDataProvider(&data); |
9853 | 9853 |
9854 TestCompletionCallback callback; | 9854 TestCompletionCallback callback; |
9855 | 9855 |
9856 CapturingBoundNetLog log; | 9856 CapturingBoundNetLog log; |
9857 int rv = trans->Start(&request, callback.callback(), log.bound()); | 9857 int rv = trans->Start(&request, callback.callback(), log.bound()); |
9858 EXPECT_EQ(ERR_IO_PENDING, rv); | 9858 EXPECT_EQ(ERR_IO_PENDING, rv); |
(...skipping 1659 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
11518 EXPECT_FALSE( | 11518 EXPECT_FALSE( |
11519 HasSpdySession(session->spdy_session_pool(), spdy_session_key_b)); | 11519 HasSpdySession(session->spdy_session_pool(), spdy_session_key_b)); |
11520 } | 11520 } |
11521 | 11521 |
11522 TEST_P(HttpNetworkTransactionTest, HttpSyncConnectError) { | 11522 TEST_P(HttpNetworkTransactionTest, HttpSyncConnectError) { |
11523 HttpRequestInfo request; | 11523 HttpRequestInfo request; |
11524 request.method = "GET"; | 11524 request.method = "GET"; |
11525 request.url = GURL("http://www.google.com/"); | 11525 request.url = GURL("http://www.google.com/"); |
11526 request.load_flags = 0; | 11526 request.load_flags = 0; |
11527 | 11527 |
11528 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
11528 scoped_ptr<HttpTransaction> trans( | 11529 scoped_ptr<HttpTransaction> trans( |
11529 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 11530 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
11530 CreateSession(&session_deps_))); | |
11531 | 11531 |
11532 MockConnect mock_connect(SYNCHRONOUS, ERR_CONNECTION_REFUSED); | 11532 MockConnect mock_connect(SYNCHRONOUS, ERR_CONNECTION_REFUSED); |
11533 StaticSocketDataProvider data; | 11533 StaticSocketDataProvider data; |
11534 data.set_connect_data(mock_connect); | 11534 data.set_connect_data(mock_connect); |
11535 session_deps_.socket_factory->AddSocketDataProvider(&data); | 11535 session_deps_.socket_factory->AddSocketDataProvider(&data); |
11536 | 11536 |
11537 TestCompletionCallback callback; | 11537 TestCompletionCallback callback; |
11538 | 11538 |
11539 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 11539 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
11540 EXPECT_EQ(ERR_IO_PENDING, rv); | 11540 EXPECT_EQ(ERR_IO_PENDING, rv); |
11541 | 11541 |
11542 rv = callback.WaitForResult(); | 11542 rv = callback.WaitForResult(); |
11543 EXPECT_EQ(ERR_CONNECTION_REFUSED, rv); | 11543 EXPECT_EQ(ERR_CONNECTION_REFUSED, rv); |
11544 | 11544 |
11545 EXPECT_EQ(NULL, trans->GetResponseInfo()); | 11545 EXPECT_EQ(NULL, trans->GetResponseInfo()); |
11546 | 11546 |
11547 // We don't care whether this succeeds or fails, but it shouldn't crash. | 11547 // We don't care whether this succeeds or fails, but it shouldn't crash. |
11548 HttpRequestHeaders request_headers; | 11548 HttpRequestHeaders request_headers; |
11549 trans->GetFullRequestHeaders(&request_headers); | 11549 trans->GetFullRequestHeaders(&request_headers); |
11550 } | 11550 } |
11551 | 11551 |
11552 TEST_P(HttpNetworkTransactionTest, HttpAsyncConnectError) { | 11552 TEST_P(HttpNetworkTransactionTest, HttpAsyncConnectError) { |
11553 HttpRequestInfo request; | 11553 HttpRequestInfo request; |
11554 request.method = "GET"; | 11554 request.method = "GET"; |
11555 request.url = GURL("http://www.google.com/"); | 11555 request.url = GURL("http://www.google.com/"); |
11556 request.load_flags = 0; | 11556 request.load_flags = 0; |
11557 | 11557 |
11558 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
11558 scoped_ptr<HttpTransaction> trans( | 11559 scoped_ptr<HttpTransaction> trans( |
11559 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 11560 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
11560 CreateSession(&session_deps_))); | |
11561 | 11561 |
11562 MockConnect mock_connect(ASYNC, ERR_CONNECTION_REFUSED); | 11562 MockConnect mock_connect(ASYNC, ERR_CONNECTION_REFUSED); |
11563 StaticSocketDataProvider data; | 11563 StaticSocketDataProvider data; |
11564 data.set_connect_data(mock_connect); | 11564 data.set_connect_data(mock_connect); |
11565 session_deps_.socket_factory->AddSocketDataProvider(&data); | 11565 session_deps_.socket_factory->AddSocketDataProvider(&data); |
11566 | 11566 |
11567 TestCompletionCallback callback; | 11567 TestCompletionCallback callback; |
11568 | 11568 |
11569 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 11569 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
11570 EXPECT_EQ(ERR_IO_PENDING, rv); | 11570 EXPECT_EQ(ERR_IO_PENDING, rv); |
11571 | 11571 |
11572 rv = callback.WaitForResult(); | 11572 rv = callback.WaitForResult(); |
11573 EXPECT_EQ(ERR_CONNECTION_REFUSED, rv); | 11573 EXPECT_EQ(ERR_CONNECTION_REFUSED, rv); |
11574 | 11574 |
11575 EXPECT_EQ(NULL, trans->GetResponseInfo()); | 11575 EXPECT_EQ(NULL, trans->GetResponseInfo()); |
11576 | 11576 |
11577 // We don't care whether this succeeds or fails, but it shouldn't crash. | 11577 // We don't care whether this succeeds or fails, but it shouldn't crash. |
11578 HttpRequestHeaders request_headers; | 11578 HttpRequestHeaders request_headers; |
11579 trans->GetFullRequestHeaders(&request_headers); | 11579 trans->GetFullRequestHeaders(&request_headers); |
11580 } | 11580 } |
11581 | 11581 |
11582 TEST_P(HttpNetworkTransactionTest, HttpSyncWriteError) { | 11582 TEST_P(HttpNetworkTransactionTest, HttpSyncWriteError) { |
11583 HttpRequestInfo request; | 11583 HttpRequestInfo request; |
11584 request.method = "GET"; | 11584 request.method = "GET"; |
11585 request.url = GURL("http://www.google.com/"); | 11585 request.url = GURL("http://www.google.com/"); |
11586 request.load_flags = 0; | 11586 request.load_flags = 0; |
11587 | 11587 |
11588 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
11588 scoped_ptr<HttpTransaction> trans( | 11589 scoped_ptr<HttpTransaction> trans( |
11589 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 11590 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
11590 CreateSession(&session_deps_))); | |
11591 | 11591 |
11592 MockWrite data_writes[] = { | 11592 MockWrite data_writes[] = { |
11593 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), | 11593 MockWrite(SYNCHRONOUS, ERR_CONNECTION_RESET), |
11594 }; | 11594 }; |
11595 MockRead data_reads[] = { | 11595 MockRead data_reads[] = { |
11596 MockRead(SYNCHRONOUS, ERR_UNEXPECTED), // Should not be reached. | 11596 MockRead(SYNCHRONOUS, ERR_UNEXPECTED), // Should not be reached. |
11597 }; | 11597 }; |
11598 | 11598 |
11599 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 11599 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
11600 data_writes, arraysize(data_writes)); | 11600 data_writes, arraysize(data_writes)); |
(...skipping 13 matching lines...) Expand all Loading... | |
11614 EXPECT_TRUE(trans->GetFullRequestHeaders(&request_headers)); | 11614 EXPECT_TRUE(trans->GetFullRequestHeaders(&request_headers)); |
11615 EXPECT_TRUE(request_headers.HasHeader("Host")); | 11615 EXPECT_TRUE(request_headers.HasHeader("Host")); |
11616 } | 11616 } |
11617 | 11617 |
11618 TEST_P(HttpNetworkTransactionTest, HttpAsyncWriteError) { | 11618 TEST_P(HttpNetworkTransactionTest, HttpAsyncWriteError) { |
11619 HttpRequestInfo request; | 11619 HttpRequestInfo request; |
11620 request.method = "GET"; | 11620 request.method = "GET"; |
11621 request.url = GURL("http://www.google.com/"); | 11621 request.url = GURL("http://www.google.com/"); |
11622 request.load_flags = 0; | 11622 request.load_flags = 0; |
11623 | 11623 |
11624 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
11624 scoped_ptr<HttpTransaction> trans( | 11625 scoped_ptr<HttpTransaction> trans( |
11625 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 11626 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
11626 CreateSession(&session_deps_))); | |
11627 | 11627 |
11628 MockWrite data_writes[] = { | 11628 MockWrite data_writes[] = { |
11629 MockWrite(ASYNC, ERR_CONNECTION_RESET), | 11629 MockWrite(ASYNC, ERR_CONNECTION_RESET), |
11630 }; | 11630 }; |
11631 MockRead data_reads[] = { | 11631 MockRead data_reads[] = { |
11632 MockRead(SYNCHRONOUS, ERR_UNEXPECTED), // Should not be reached. | 11632 MockRead(SYNCHRONOUS, ERR_UNEXPECTED), // Should not be reached. |
11633 }; | 11633 }; |
11634 | 11634 |
11635 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 11635 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
11636 data_writes, arraysize(data_writes)); | 11636 data_writes, arraysize(data_writes)); |
(...skipping 13 matching lines...) Expand all Loading... | |
11650 EXPECT_TRUE(trans->GetFullRequestHeaders(&request_headers)); | 11650 EXPECT_TRUE(trans->GetFullRequestHeaders(&request_headers)); |
11651 EXPECT_TRUE(request_headers.HasHeader("Host")); | 11651 EXPECT_TRUE(request_headers.HasHeader("Host")); |
11652 } | 11652 } |
11653 | 11653 |
11654 TEST_P(HttpNetworkTransactionTest, HttpSyncReadError) { | 11654 TEST_P(HttpNetworkTransactionTest, HttpSyncReadError) { |
11655 HttpRequestInfo request; | 11655 HttpRequestInfo request; |
11656 request.method = "GET"; | 11656 request.method = "GET"; |
11657 request.url = GURL("http://www.google.com/"); | 11657 request.url = GURL("http://www.google.com/"); |
11658 request.load_flags = 0; | 11658 request.load_flags = 0; |
11659 | 11659 |
11660 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
11660 scoped_ptr<HttpTransaction> trans( | 11661 scoped_ptr<HttpTransaction> trans( |
11661 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 11662 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
11662 CreateSession(&session_deps_))); | |
11663 | 11663 |
11664 MockWrite data_writes[] = { | 11664 MockWrite data_writes[] = { |
11665 MockWrite("GET / HTTP/1.1\r\n" | 11665 MockWrite("GET / HTTP/1.1\r\n" |
11666 "Host: www.google.com\r\n" | 11666 "Host: www.google.com\r\n" |
11667 "Connection: keep-alive\r\n\r\n"), | 11667 "Connection: keep-alive\r\n\r\n"), |
11668 }; | 11668 }; |
11669 MockRead data_reads[] = { | 11669 MockRead data_reads[] = { |
11670 MockRead(SYNCHRONOUS, ERR_CONNECTION_RESET), | 11670 MockRead(SYNCHRONOUS, ERR_CONNECTION_RESET), |
11671 }; | 11671 }; |
11672 | 11672 |
(...skipping 15 matching lines...) Expand all Loading... | |
11688 EXPECT_TRUE(trans->GetFullRequestHeaders(&request_headers)); | 11688 EXPECT_TRUE(trans->GetFullRequestHeaders(&request_headers)); |
11689 EXPECT_TRUE(request_headers.HasHeader("Host")); | 11689 EXPECT_TRUE(request_headers.HasHeader("Host")); |
11690 } | 11690 } |
11691 | 11691 |
11692 TEST_P(HttpNetworkTransactionTest, HttpAsyncReadError) { | 11692 TEST_P(HttpNetworkTransactionTest, HttpAsyncReadError) { |
11693 HttpRequestInfo request; | 11693 HttpRequestInfo request; |
11694 request.method = "GET"; | 11694 request.method = "GET"; |
11695 request.url = GURL("http://www.google.com/"); | 11695 request.url = GURL("http://www.google.com/"); |
11696 request.load_flags = 0; | 11696 request.load_flags = 0; |
11697 | 11697 |
11698 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
11698 scoped_ptr<HttpTransaction> trans( | 11699 scoped_ptr<HttpTransaction> trans( |
11699 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 11700 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
11700 CreateSession(&session_deps_))); | |
11701 | 11701 |
11702 MockWrite data_writes[] = { | 11702 MockWrite data_writes[] = { |
11703 MockWrite("GET / HTTP/1.1\r\n" | 11703 MockWrite("GET / HTTP/1.1\r\n" |
11704 "Host: www.google.com\r\n" | 11704 "Host: www.google.com\r\n" |
11705 "Connection: keep-alive\r\n\r\n"), | 11705 "Connection: keep-alive\r\n\r\n"), |
11706 }; | 11706 }; |
11707 MockRead data_reads[] = { | 11707 MockRead data_reads[] = { |
11708 MockRead(ASYNC, ERR_CONNECTION_RESET), | 11708 MockRead(ASYNC, ERR_CONNECTION_RESET), |
11709 }; | 11709 }; |
11710 | 11710 |
(...skipping 16 matching lines...) Expand all Loading... | |
11727 EXPECT_TRUE(request_headers.HasHeader("Host")); | 11727 EXPECT_TRUE(request_headers.HasHeader("Host")); |
11728 } | 11728 } |
11729 | 11729 |
11730 TEST_P(HttpNetworkTransactionTest, GetFullRequestHeadersIncludesExtraHeader) { | 11730 TEST_P(HttpNetworkTransactionTest, GetFullRequestHeadersIncludesExtraHeader) { |
11731 HttpRequestInfo request; | 11731 HttpRequestInfo request; |
11732 request.method = "GET"; | 11732 request.method = "GET"; |
11733 request.url = GURL("http://www.google.com/"); | 11733 request.url = GURL("http://www.google.com/"); |
11734 request.load_flags = 0; | 11734 request.load_flags = 0; |
11735 request.extra_headers.SetHeader("X-Foo", "bar"); | 11735 request.extra_headers.SetHeader("X-Foo", "bar"); |
11736 | 11736 |
11737 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | |
11737 scoped_ptr<HttpTransaction> trans( | 11738 scoped_ptr<HttpTransaction> trans( |
11738 new HttpNetworkTransaction(DEFAULT_PRIORITY, | 11739 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
11739 CreateSession(&session_deps_))); | |
11740 | 11740 |
11741 MockWrite data_writes[] = { | 11741 MockWrite data_writes[] = { |
11742 MockWrite("GET / HTTP/1.1\r\n" | 11742 MockWrite("GET / HTTP/1.1\r\n" |
11743 "Host: www.google.com\r\n" | 11743 "Host: www.google.com\r\n" |
11744 "Connection: keep-alive\r\n" | 11744 "Connection: keep-alive\r\n" |
11745 "X-Foo: bar\r\n\r\n"), | 11745 "X-Foo: bar\r\n\r\n"), |
11746 }; | 11746 }; |
11747 MockRead data_reads[] = { | 11747 MockRead data_reads[] = { |
11748 MockRead("HTTP/1.1 200 OK\r\n" | 11748 MockRead("HTTP/1.1 200 OK\r\n" |
11749 "Content-Length: 5\r\n\r\n" | 11749 "Content-Length: 5\r\n\r\n" |
(...skipping 473 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
12223 // established, to let the HTTP request start. | 12223 // established, to let the HTTP request start. |
12224 ASSERT_EQ(OK, http_callback.WaitForResult()); | 12224 ASSERT_EQ(OK, http_callback.WaitForResult()); |
12225 std::string response_data; | 12225 std::string response_data; |
12226 ASSERT_EQ(OK, ReadTransaction(http_trans.get(), &response_data)); | 12226 ASSERT_EQ(OK, ReadTransaction(http_trans.get(), &response_data)); |
12227 EXPECT_EQ("falafel", response_data); | 12227 EXPECT_EQ("falafel", response_data); |
12228 | 12228 |
12229 EXPECT_EQ(1, GetIdleSocketCountInTransportSocketPool(session)); | 12229 EXPECT_EQ(1, GetIdleSocketCountInTransportSocketPool(session)); |
12230 } | 12230 } |
12231 | 12231 |
12232 } // namespace net | 12232 } // namespace net |
OLD | NEW |