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

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

Issue 2334623003: Store net::ProxyServer in HttpResponseInfo object (Closed)
Patch Set: Rebased, fix compile error Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/http/http_network_transaction.cc ('k') | net/http/http_response_info.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/http/http_network_transaction.h" 5 #include "net/http/http_network_transaction.h"
6 6
7 #include <math.h> // ceil 7 #include <math.h> // ceil
8 #include <stdarg.h> 8 #include <stdarg.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 10
(...skipping 1055 matching lines...) Expand 10 before | Expand all | Expand 10 after
1066 1066
1067 EXPECT_THAT(callback.WaitForResult(), IsOk()); 1067 EXPECT_THAT(callback.WaitForResult(), IsOk());
1068 1068
1069 const HttpResponseInfo* response = trans.GetResponseInfo(); 1069 const HttpResponseInfo* response = trans.GetResponseInfo();
1070 ASSERT_TRUE(response); 1070 ASSERT_TRUE(response);
1071 ASSERT_TRUE(response->headers); 1071 ASSERT_TRUE(response->headers);
1072 EXPECT_EQ("HTTP/1.1 302 Redirect", response->headers->GetStatusLine()); 1072 EXPECT_EQ("HTTP/1.1 302 Redirect", response->headers->GetStatusLine());
1073 std::string url; 1073 std::string url;
1074 EXPECT_TRUE(response->headers->IsRedirect(&url)); 1074 EXPECT_TRUE(response->headers->IsRedirect(&url));
1075 EXPECT_EQ("http://good.com/", url); 1075 EXPECT_EQ("http://good.com/", url);
1076 EXPECT_TRUE(response->proxy_server.IsEmpty()); 1076 EXPECT_TRUE(response->proxy_server.is_direct());
1077 } 1077 }
1078 1078
1079 // Checks that two distinct Location headers result in an error. 1079 // Checks that two distinct Location headers result in an error.
1080 TEST_F(HttpNetworkTransactionTest, TwoDistinctLocationHeaders) { 1080 TEST_F(HttpNetworkTransactionTest, TwoDistinctLocationHeaders) {
1081 MockRead data_reads[] = { 1081 MockRead data_reads[] = {
1082 MockRead("HTTP/1.1 302 Redirect\r\n"), 1082 MockRead("HTTP/1.1 302 Redirect\r\n"),
1083 MockRead("Location: http://good.com/\r\n"), 1083 MockRead("Location: http://good.com/\r\n"),
1084 MockRead("Location: http://evil.com/\r\n"), 1084 MockRead("Location: http://evil.com/\r\n"),
1085 MockRead("Content-Length: 0\r\n\r\n"), 1085 MockRead("Content-Length: 0\r\n\r\n"),
1086 MockRead(SYNCHRONOUS, OK), 1086 MockRead(SYNCHRONOUS, OK),
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
1130 rv = callback1.WaitForResult(); 1130 rv = callback1.WaitForResult();
1131 EXPECT_THAT(rv, IsOk()); 1131 EXPECT_THAT(rv, IsOk());
1132 1132
1133 const HttpResponseInfo* response = trans.GetResponseInfo(); 1133 const HttpResponseInfo* response = trans.GetResponseInfo();
1134 ASSERT_TRUE(response); 1134 ASSERT_TRUE(response);
1135 1135
1136 // Check that the headers got parsed. 1136 // Check that the headers got parsed.
1137 EXPECT_TRUE(response->headers); 1137 EXPECT_TRUE(response->headers);
1138 EXPECT_EQ(1234, response->headers->GetContentLength()); 1138 EXPECT_EQ(1234, response->headers->GetContentLength());
1139 EXPECT_EQ("HTTP/1.1 404 Not Found", response->headers->GetStatusLine()); 1139 EXPECT_EQ("HTTP/1.1 404 Not Found", response->headers->GetStatusLine());
1140 EXPECT_TRUE(response->proxy_server.IsEmpty()); 1140 EXPECT_TRUE(response->proxy_server.is_direct());
1141 EXPECT_TRUE(headers_handler.observed_before_headers_sent()); 1141 EXPECT_TRUE(headers_handler.observed_before_headers_sent());
1142 EXPECT_FALSE(headers_handler.observed_before_headers_sent_with_proxy()); 1142 EXPECT_FALSE(headers_handler.observed_before_headers_sent_with_proxy());
1143 1143
1144 std::string server_header; 1144 std::string server_header;
1145 size_t iter = 0; 1145 size_t iter = 0;
1146 bool has_server_header = response->headers->EnumerateHeader( 1146 bool has_server_header = response->headers->EnumerateHeader(
1147 &iter, "Server", &server_header); 1147 &iter, "Server", &server_header);
1148 EXPECT_TRUE(has_server_header); 1148 EXPECT_TRUE(has_server_header);
1149 EXPECT_EQ("Blah", server_header); 1149 EXPECT_EQ("Blah", server_header);
1150 1150
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
1187 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); 1187 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
1188 1188
1189 rv = callback.WaitForResult(); 1189 rv = callback.WaitForResult();
1190 EXPECT_THAT(rv, IsOk()); 1190 EXPECT_THAT(rv, IsOk());
1191 1191
1192 const HttpResponseInfo* response = trans.GetResponseInfo(); 1192 const HttpResponseInfo* response = trans.GetResponseInfo();
1193 ASSERT_TRUE(response); 1193 ASSERT_TRUE(response);
1194 1194
1195 EXPECT_TRUE(response->headers); 1195 EXPECT_TRUE(response->headers);
1196 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); 1196 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine());
1197 EXPECT_TRUE(response->proxy_server.IsEmpty()); 1197 EXPECT_TRUE(response->proxy_server.is_direct());
1198 1198
1199 std::string response_data; 1199 std::string response_data;
1200 rv = ReadTransaction(&trans, &response_data); 1200 rv = ReadTransaction(&trans, &response_data);
1201 EXPECT_THAT(rv, IsOk()); 1201 EXPECT_THAT(rv, IsOk());
1202 EXPECT_EQ(kExpectedResponseData[i], response_data); 1202 EXPECT_EQ(kExpectedResponseData[i], response_data);
1203 } 1203 }
1204 } 1204 }
1205 1205
1206 TEST_F(HttpNetworkTransactionTest, Ignores100) { 1206 TEST_F(HttpNetworkTransactionTest, Ignores100) {
1207 std::vector<std::unique_ptr<UploadElementReader>> element_readers; 1207 std::vector<std::unique_ptr<UploadElementReader>> element_readers;
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after
1419 first_socket_log_id = load_timing_info.socket_log_id; 1419 first_socket_log_id = load_timing_info.socket_log_id;
1420 } else { 1420 } else {
1421 // The second request should be using a new socket. 1421 // The second request should be using a new socket.
1422 EXPECT_NE(first_socket_log_id, load_timing_info.socket_log_id); 1422 EXPECT_NE(first_socket_log_id, load_timing_info.socket_log_id);
1423 } 1423 }
1424 1424
1425 const HttpResponseInfo* response = trans.GetResponseInfo(); 1425 const HttpResponseInfo* response = trans.GetResponseInfo();
1426 ASSERT_TRUE(response); 1426 ASSERT_TRUE(response);
1427 1427
1428 EXPECT_TRUE(response->headers); 1428 EXPECT_TRUE(response->headers);
1429 EXPECT_TRUE(response->proxy_server.is_direct());
1429 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); 1430 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine());
1430 1431
1431 std::string response_data; 1432 std::string response_data;
1432 rv = ReadTransaction(&trans, &response_data); 1433 rv = ReadTransaction(&trans, &response_data);
1433 EXPECT_THAT(rv, IsOk()); 1434 EXPECT_THAT(rv, IsOk());
1434 EXPECT_EQ(kExpectedResponseData[i], response_data); 1435 EXPECT_EQ(kExpectedResponseData[i], response_data);
1435 } 1436 }
1436 } 1437 }
1437 1438
1438 void HttpNetworkTransactionTest::PreconnectErrorResendRequestTest( 1439 void HttpNetworkTransactionTest::PreconnectErrorResendRequestTest(
(...skipping 2752 matching lines...) Expand 10 before | Expand all | Expand 10 after
4191 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); 4192 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
4192 4193
4193 int rv = trans1->Start(&request1, callback1.callback(), log.bound()); 4194 int rv = trans1->Start(&request1, callback1.callback(), log.bound());
4194 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); 4195 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
4195 4196
4196 rv = callback1.WaitForResult(); 4197 rv = callback1.WaitForResult();
4197 EXPECT_THAT(rv, IsOk()); 4198 EXPECT_THAT(rv, IsOk());
4198 4199
4199 const HttpResponseInfo* response1 = trans1->GetResponseInfo(); 4200 const HttpResponseInfo* response1 = trans1->GetResponseInfo();
4200 ASSERT_TRUE(response1); 4201 ASSERT_TRUE(response1);
4202 EXPECT_TRUE(response1->proxy_server.is_http());
4201 ASSERT_TRUE(response1->headers); 4203 ASSERT_TRUE(response1->headers);
4202 EXPECT_EQ(1, response1->headers->GetContentLength()); 4204 EXPECT_EQ(1, response1->headers->GetContentLength());
4203 4205
4204 LoadTimingInfo load_timing_info1; 4206 LoadTimingInfo load_timing_info1;
4205 EXPECT_TRUE(trans1->GetLoadTimingInfo(&load_timing_info1)); 4207 EXPECT_TRUE(trans1->GetLoadTimingInfo(&load_timing_info1));
4206 TestLoadTimingNotReused(load_timing_info1, CONNECT_TIMING_HAS_SSL_TIMES); 4208 TestLoadTimingNotReused(load_timing_info1, CONNECT_TIMING_HAS_SSL_TIMES);
4207 4209
4208 trans1.reset(); 4210 trans1.reset();
4209 4211
4210 TestCompletionCallback callback2; 4212 TestCompletionCallback callback2;
4211 std::unique_ptr<HttpNetworkTransaction> trans2( 4213 std::unique_ptr<HttpNetworkTransaction> trans2(
4212 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); 4214 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
4213 4215
4214 rv = trans2->Start(&request2, callback2.callback(), log.bound()); 4216 rv = trans2->Start(&request2, callback2.callback(), log.bound());
4215 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); 4217 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
4216 4218
4217 rv = callback2.WaitForResult(); 4219 rv = callback2.WaitForResult();
4218 EXPECT_THAT(rv, IsOk()); 4220 EXPECT_THAT(rv, IsOk());
4219 4221
4220 const HttpResponseInfo* response2 = trans2->GetResponseInfo(); 4222 const HttpResponseInfo* response2 = trans2->GetResponseInfo();
4221 ASSERT_TRUE(response2); 4223 ASSERT_TRUE(response2);
4224 EXPECT_TRUE(response2->proxy_server.is_http());
4222 ASSERT_TRUE(response2->headers); 4225 ASSERT_TRUE(response2->headers);
4223 EXPECT_EQ(2, response2->headers->GetContentLength()); 4226 EXPECT_EQ(2, response2->headers->GetContentLength());
4224 4227
4225 LoadTimingInfo load_timing_info2; 4228 LoadTimingInfo load_timing_info2;
4226 EXPECT_TRUE(trans2->GetLoadTimingInfo(&load_timing_info2)); 4229 EXPECT_TRUE(trans2->GetLoadTimingInfo(&load_timing_info2));
4227 TestLoadTimingReused(load_timing_info2); 4230 TestLoadTimingReused(load_timing_info2);
4228 4231
4229 EXPECT_EQ(load_timing_info1.socket_log_id, load_timing_info2.socket_log_id); 4232 EXPECT_EQ(load_timing_info1.socket_log_id, load_timing_info2.socket_log_id);
4230 4233
4231 trans2.reset(); 4234 trans2.reset();
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
4375 EXPECT_THAT(rv, IsOk()); 4378 EXPECT_THAT(rv, IsOk());
4376 4379
4377 LoadTimingInfo load_timing_info; 4380 LoadTimingInfo load_timing_info;
4378 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info)); 4381 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info));
4379 TestLoadTimingNotReused(load_timing_info, 4382 TestLoadTimingNotReused(load_timing_info,
4380 CONNECT_TIMING_HAS_CONNECT_TIMES_ONLY); 4383 CONNECT_TIMING_HAS_CONNECT_TIMES_ONLY);
4381 4384
4382 const HttpResponseInfo* response = trans.GetResponseInfo(); 4385 const HttpResponseInfo* response = trans.GetResponseInfo();
4383 ASSERT_TRUE(response); 4386 ASSERT_TRUE(response);
4384 4387
4388 EXPECT_TRUE(response->proxy_server.is_https());
4385 EXPECT_TRUE(response->headers->IsKeepAlive()); 4389 EXPECT_TRUE(response->headers->IsKeepAlive());
4386 EXPECT_EQ(200, response->headers->response_code()); 4390 EXPECT_EQ(200, response->headers->response_code());
4387 EXPECT_EQ(100, response->headers->GetContentLength()); 4391 EXPECT_EQ(100, response->headers->GetContentLength());
4388 EXPECT_TRUE(HttpVersion(1, 1) == response->headers->GetHttpVersion()); 4392 EXPECT_TRUE(HttpVersion(1, 1) == response->headers->GetHttpVersion());
4389 4393
4390 // The password prompt info should not be set. 4394 // The password prompt info should not be set.
4391 EXPECT_FALSE(response->auth_challenge); 4395 EXPECT_FALSE(response->auth_challenge);
4392 } 4396 }
4393 4397
4394 // Test a SPDY get through an HTTPS Proxy. 4398 // Test a SPDY get through an HTTPS Proxy.
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
4433 rv = callback1.WaitForResult(); 4437 rv = callback1.WaitForResult();
4434 EXPECT_THAT(rv, IsOk()); 4438 EXPECT_THAT(rv, IsOk());
4435 4439
4436 LoadTimingInfo load_timing_info; 4440 LoadTimingInfo load_timing_info;
4437 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info)); 4441 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info));
4438 TestLoadTimingNotReused(load_timing_info, 4442 TestLoadTimingNotReused(load_timing_info,
4439 CONNECT_TIMING_HAS_CONNECT_TIMES_ONLY); 4443 CONNECT_TIMING_HAS_CONNECT_TIMES_ONLY);
4440 4444
4441 const HttpResponseInfo* response = trans.GetResponseInfo(); 4445 const HttpResponseInfo* response = trans.GetResponseInfo();
4442 ASSERT_TRUE(response); 4446 ASSERT_TRUE(response);
4447 EXPECT_TRUE(response->proxy_server.is_https());
4443 ASSERT_TRUE(response->headers); 4448 ASSERT_TRUE(response->headers);
4444 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); 4449 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine());
4445 4450
4446 std::string response_data; 4451 std::string response_data;
4447 ASSERT_THAT(ReadTransaction(&trans, &response_data), IsOk()); 4452 ASSERT_THAT(ReadTransaction(&trans, &response_data), IsOk());
4448 EXPECT_EQ(kUploadData, response_data); 4453 EXPECT_EQ(kUploadData, response_data);
4449 } 4454 }
4450 4455
4451 // Verifies that a session which races and wins against the owning transaction 4456 // Verifies that a session which races and wins against the owning transaction
4452 // (completing prior to host resolution), doesn't fail the transaction. 4457 // (completing prior to host resolution), doesn't fail the transaction.
(...skipping 3097 matching lines...) Expand 10 before | Expand all | Expand 10 after
7550 7555
7551 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); 7556 int rv = trans.Start(&request, callback.callback(), NetLogWithSource());
7552 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); 7557 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
7553 7558
7554 rv = callback.WaitForResult(); 7559 rv = callback.WaitForResult();
7555 EXPECT_THAT(rv, IsOk()); 7560 EXPECT_THAT(rv, IsOk());
7556 const HttpResponseInfo* response = trans.GetResponseInfo(); 7561 const HttpResponseInfo* response = trans.GetResponseInfo();
7557 7562
7558 ASSERT_TRUE(response); 7563 ASSERT_TRUE(response);
7559 7564
7565 EXPECT_TRUE(response->proxy_server.is_https());
7560 EXPECT_TRUE(response->headers->IsKeepAlive()); 7566 EXPECT_TRUE(response->headers->IsKeepAlive());
7561 EXPECT_EQ(200, response->headers->response_code()); 7567 EXPECT_EQ(200, response->headers->response_code());
7562 EXPECT_EQ(100, response->headers->GetContentLength()); 7568 EXPECT_EQ(100, response->headers->GetContentLength());
7563 EXPECT_TRUE(HttpVersion(1, 1) == response->headers->GetHttpVersion()); 7569 EXPECT_TRUE(HttpVersion(1, 1) == response->headers->GetHttpVersion());
7564 7570
7565 LoadTimingInfo load_timing_info; 7571 LoadTimingInfo load_timing_info;
7566 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info)); 7572 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info));
7567 TestLoadTimingNotReusedWithPac(load_timing_info, 7573 TestLoadTimingNotReusedWithPac(load_timing_info,
7568 CONNECT_TIMING_HAS_SSL_TIMES); 7574 CONNECT_TIMING_HAS_SSL_TIMES);
7569 } 7575 }
(...skipping 1143 matching lines...) Expand 10 before | Expand all | Expand 10 after
8713 8719
8714 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); 8720 int rv = trans.Start(&request, callback.callback(), NetLogWithSource());
8715 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); 8721 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
8716 8722
8717 rv = callback.WaitForResult(); 8723 rv = callback.WaitForResult();
8718 EXPECT_THAT(rv, IsOk()); 8724 EXPECT_THAT(rv, IsOk());
8719 8725
8720 const HttpResponseInfo* response = trans.GetResponseInfo(); 8726 const HttpResponseInfo* response = trans.GetResponseInfo();
8721 ASSERT_TRUE(response); 8727 ASSERT_TRUE(response);
8722 8728
8729 EXPECT_EQ(ProxyServer::SCHEME_SOCKS4, response->proxy_server.scheme());
8723 LoadTimingInfo load_timing_info; 8730 LoadTimingInfo load_timing_info;
8724 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info)); 8731 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info));
8725 TestLoadTimingNotReusedWithPac(load_timing_info, 8732 TestLoadTimingNotReusedWithPac(load_timing_info,
8726 CONNECT_TIMING_HAS_CONNECT_TIMES_ONLY); 8733 CONNECT_TIMING_HAS_CONNECT_TIMES_ONLY);
8727 8734
8728 std::string response_text; 8735 std::string response_text;
8729 rv = ReadTransaction(&trans, &response_text); 8736 rv = ReadTransaction(&trans, &response_text);
8730 EXPECT_THAT(rv, IsOk()); 8737 EXPECT_THAT(rv, IsOk());
8731 EXPECT_EQ("Payload", response_text); 8738 EXPECT_EQ("Payload", response_text);
8732 } 8739 }
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
8780 rv = callback.WaitForResult(); 8787 rv = callback.WaitForResult();
8781 EXPECT_THAT(rv, IsOk()); 8788 EXPECT_THAT(rv, IsOk());
8782 8789
8783 LoadTimingInfo load_timing_info; 8790 LoadTimingInfo load_timing_info;
8784 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info)); 8791 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info));
8785 TestLoadTimingNotReusedWithPac(load_timing_info, 8792 TestLoadTimingNotReusedWithPac(load_timing_info,
8786 CONNECT_TIMING_HAS_SSL_TIMES); 8793 CONNECT_TIMING_HAS_SSL_TIMES);
8787 8794
8788 const HttpResponseInfo* response = trans.GetResponseInfo(); 8795 const HttpResponseInfo* response = trans.GetResponseInfo();
8789 ASSERT_TRUE(response); 8796 ASSERT_TRUE(response);
8797 EXPECT_EQ(ProxyServer::SCHEME_SOCKS4, response->proxy_server.scheme());
8790 8798
8791 std::string response_text; 8799 std::string response_text;
8792 rv = ReadTransaction(&trans, &response_text); 8800 rv = ReadTransaction(&trans, &response_text);
8793 EXPECT_THAT(rv, IsOk()); 8801 EXPECT_THAT(rv, IsOk());
8794 EXPECT_EQ("Payload", response_text); 8802 EXPECT_EQ("Payload", response_text);
8795 } 8803 }
8796 8804
8797 TEST_F(HttpNetworkTransactionTest, SOCKS4_HTTP_GET_no_PAC) { 8805 TEST_F(HttpNetworkTransactionTest, SOCKS4_HTTP_GET_no_PAC) {
8798 HttpRequestInfo request; 8806 HttpRequestInfo request;
8799 request.method = "GET"; 8807 request.method = "GET";
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
8904 TestCompletionCallback callback; 8912 TestCompletionCallback callback;
8905 8913
8906 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); 8914 int rv = trans.Start(&request, callback.callback(), NetLogWithSource());
8907 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); 8915 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
8908 8916
8909 rv = callback.WaitForResult(); 8917 rv = callback.WaitForResult();
8910 EXPECT_THAT(rv, IsOk()); 8918 EXPECT_THAT(rv, IsOk());
8911 8919
8912 const HttpResponseInfo* response = trans.GetResponseInfo(); 8920 const HttpResponseInfo* response = trans.GetResponseInfo();
8913 ASSERT_TRUE(response); 8921 ASSERT_TRUE(response);
8922 EXPECT_EQ(ProxyServer::SCHEME_SOCKS5, response->proxy_server.scheme());
8914 8923
8915 LoadTimingInfo load_timing_info; 8924 LoadTimingInfo load_timing_info;
8916 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info)); 8925 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info));
8917 TestLoadTimingNotReusedWithPac(load_timing_info, 8926 TestLoadTimingNotReusedWithPac(load_timing_info,
8918 CONNECT_TIMING_HAS_CONNECT_TIMES_ONLY); 8927 CONNECT_TIMING_HAS_CONNECT_TIMES_ONLY);
8919 8928
8920 std::string response_text; 8929 std::string response_text;
8921 rv = ReadTransaction(&trans, &response_text); 8930 rv = ReadTransaction(&trans, &response_text);
8922 EXPECT_THAT(rv, IsOk()); 8931 EXPECT_THAT(rv, IsOk());
8923 EXPECT_EQ("Payload", response_text); 8932 EXPECT_EQ("Payload", response_text);
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
8980 TestCompletionCallback callback; 8989 TestCompletionCallback callback;
8981 8990
8982 int rv = trans.Start(&request, callback.callback(), NetLogWithSource()); 8991 int rv = trans.Start(&request, callback.callback(), NetLogWithSource());
8983 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); 8992 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
8984 8993
8985 rv = callback.WaitForResult(); 8994 rv = callback.WaitForResult();
8986 EXPECT_THAT(rv, IsOk()); 8995 EXPECT_THAT(rv, IsOk());
8987 8996
8988 const HttpResponseInfo* response = trans.GetResponseInfo(); 8997 const HttpResponseInfo* response = trans.GetResponseInfo();
8989 ASSERT_TRUE(response); 8998 ASSERT_TRUE(response);
8999 EXPECT_EQ(ProxyServer::SCHEME_SOCKS5, response->proxy_server.scheme());
8990 9000
8991 LoadTimingInfo load_timing_info; 9001 LoadTimingInfo load_timing_info;
8992 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info)); 9002 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info));
8993 TestLoadTimingNotReusedWithPac(load_timing_info, 9003 TestLoadTimingNotReusedWithPac(load_timing_info,
8994 CONNECT_TIMING_HAS_SSL_TIMES); 9004 CONNECT_TIMING_HAS_SSL_TIMES);
8995 9005
8996 std::string response_text; 9006 std::string response_text;
8997 rv = ReadTransaction(&trans, &response_text); 9007 rv = ReadTransaction(&trans, &response_text);
8998 EXPECT_THAT(rv, IsOk()); 9008 EXPECT_THAT(rv, IsOk());
8999 EXPECT_EQ("Payload", response_text); 9009 EXPECT_EQ("Payload", response_text);
(...skipping 3431 matching lines...) Expand 10 before | Expand all | Expand 10 after
12431 rv = callback1.WaitForResult(); 12441 rv = callback1.WaitForResult();
12432 EXPECT_THAT(rv, IsOk()); 12442 EXPECT_THAT(rv, IsOk());
12433 12443
12434 const HttpResponseInfo* response = trans.GetResponseInfo(); 12444 const HttpResponseInfo* response = trans.GetResponseInfo();
12435 ASSERT_TRUE(response); 12445 ASSERT_TRUE(response);
12436 12446
12437 EXPECT_TRUE(response->headers->IsKeepAlive()); 12447 EXPECT_TRUE(response->headers->IsKeepAlive());
12438 EXPECT_EQ(200, response->headers->response_code()); 12448 EXPECT_EQ(200, response->headers->response_code());
12439 EXPECT_EQ(100, response->headers->GetContentLength()); 12449 EXPECT_EQ(100, response->headers->GetContentLength());
12440 EXPECT_TRUE(response->was_fetched_via_proxy); 12450 EXPECT_TRUE(response->was_fetched_via_proxy);
12441 EXPECT_TRUE( 12451 EXPECT_EQ(ProxyServer(ProxyServer::SCHEME_HTTP,
12442 response->proxy_server.Equals(HostPortPair::FromString("myproxy:70"))); 12452 HostPortPair::FromString("myproxy:70")),
12453 response->proxy_server);
12443 EXPECT_TRUE(headers_handler.observed_before_headers_sent()); 12454 EXPECT_TRUE(headers_handler.observed_before_headers_sent());
12444 EXPECT_TRUE(headers_handler.observed_before_headers_sent_with_proxy()); 12455 EXPECT_TRUE(headers_handler.observed_before_headers_sent_with_proxy());
12445 EXPECT_EQ("myproxy:70", headers_handler.observed_proxy_server_uri()); 12456 EXPECT_EQ("myproxy:70", headers_handler.observed_proxy_server_uri());
12446 EXPECT_TRUE(HttpVersion(1, 1) == response->headers->GetHttpVersion()); 12457 EXPECT_TRUE(HttpVersion(1, 1) == response->headers->GetHttpVersion());
12447 12458
12448 LoadTimingInfo load_timing_info; 12459 LoadTimingInfo load_timing_info;
12449 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info)); 12460 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info));
12450 TestLoadTimingNotReusedWithPac(load_timing_info, 12461 TestLoadTimingNotReusedWithPac(load_timing_info,
12451 CONNECT_TIMING_HAS_CONNECT_TIMES_ONLY); 12462 CONNECT_TIMING_HAS_CONNECT_TIMES_ONLY);
12452 } 12463 }
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
12513 NetLogEventPhase::NONE); 12524 NetLogEventPhase::NONE);
12514 12525
12515 const HttpResponseInfo* response = trans.GetResponseInfo(); 12526 const HttpResponseInfo* response = trans.GetResponseInfo();
12516 ASSERT_TRUE(response); 12527 ASSERT_TRUE(response);
12517 12528
12518 EXPECT_TRUE(response->headers->IsKeepAlive()); 12529 EXPECT_TRUE(response->headers->IsKeepAlive());
12519 EXPECT_EQ(200, response->headers->response_code()); 12530 EXPECT_EQ(200, response->headers->response_code());
12520 EXPECT_EQ(100, response->headers->GetContentLength()); 12531 EXPECT_EQ(100, response->headers->GetContentLength());
12521 EXPECT_TRUE(HttpVersion(1, 1) == response->headers->GetHttpVersion()); 12532 EXPECT_TRUE(HttpVersion(1, 1) == response->headers->GetHttpVersion());
12522 EXPECT_TRUE(response->was_fetched_via_proxy); 12533 EXPECT_TRUE(response->was_fetched_via_proxy);
12523 EXPECT_TRUE( 12534 EXPECT_EQ(ProxyServer(ProxyServer::SCHEME_HTTP,
12524 response->proxy_server.Equals(HostPortPair::FromString("myproxy:70"))); 12535 HostPortPair::FromString("myproxy:70")),
12536 response->proxy_server);
12525 EXPECT_TRUE(headers_handler.observed_before_headers_sent()); 12537 EXPECT_TRUE(headers_handler.observed_before_headers_sent());
12526 EXPECT_TRUE(headers_handler.observed_before_headers_sent_with_proxy()); 12538 EXPECT_TRUE(headers_handler.observed_before_headers_sent_with_proxy());
12527 EXPECT_EQ("myproxy:70", headers_handler.observed_proxy_server_uri()); 12539 EXPECT_EQ("myproxy:70", headers_handler.observed_proxy_server_uri());
12528 12540
12529 LoadTimingInfo load_timing_info; 12541 LoadTimingInfo load_timing_info;
12530 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info)); 12542 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info));
12531 TestLoadTimingNotReusedWithPac(load_timing_info, 12543 TestLoadTimingNotReusedWithPac(load_timing_info,
12532 CONNECT_TIMING_HAS_SSL_TIMES); 12544 CONNECT_TIMING_HAS_SSL_TIMES);
12533 } 12545 }
12534 12546
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
12591 NetLogEventPhase::NONE); 12603 NetLogEventPhase::NONE);
12592 12604
12593 const HttpResponseInfo* response = trans.GetResponseInfo(); 12605 const HttpResponseInfo* response = trans.GetResponseInfo();
12594 ASSERT_TRUE(response); 12606 ASSERT_TRUE(response);
12595 12607
12596 EXPECT_TRUE(response->headers->IsKeepAlive()); 12608 EXPECT_TRUE(response->headers->IsKeepAlive());
12597 EXPECT_EQ(200, response->headers->response_code()); 12609 EXPECT_EQ(200, response->headers->response_code());
12598 EXPECT_EQ(100, response->headers->GetContentLength()); 12610 EXPECT_EQ(100, response->headers->GetContentLength());
12599 EXPECT_TRUE(HttpVersion(1, 1) == response->headers->GetHttpVersion()); 12611 EXPECT_TRUE(HttpVersion(1, 1) == response->headers->GetHttpVersion());
12600 EXPECT_TRUE(response->was_fetched_via_proxy); 12612 EXPECT_TRUE(response->was_fetched_via_proxy);
12601 EXPECT_TRUE( 12613 EXPECT_EQ(ProxyServer(ProxyServer::SCHEME_HTTP,
12602 response->proxy_server.Equals(HostPortPair::FromString("myproxy:70"))); 12614 HostPortPair::FromString("myproxy:70")),
12615 response->proxy_server);
12603 12616
12604 LoadTimingInfo load_timing_info; 12617 LoadTimingInfo load_timing_info;
12605 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info)); 12618 EXPECT_TRUE(trans.GetLoadTimingInfo(&load_timing_info));
12606 TestLoadTimingNotReusedWithPac(load_timing_info, 12619 TestLoadTimingNotReusedWithPac(load_timing_info,
12607 CONNECT_TIMING_HAS_SSL_TIMES); 12620 CONNECT_TIMING_HAS_SSL_TIMES);
12608 } 12621 }
12609 12622
12610 // Test a basic HTTPS GET request through a proxy, but the server hangs up 12623 // Test a basic HTTPS GET request through a proxy, but the server hangs up
12611 // while establishing the tunnel. 12624 // while establishing the tunnel.
12612 TEST_F(HttpNetworkTransactionTest, ProxyTunnelGetHangup) { 12625 TEST_F(HttpNetworkTransactionTest, ProxyTunnelGetHangup) {
(...skipping 3256 matching lines...) Expand 10 before | Expand all | Expand 10 after
15869 base::RunLoop().RunUntilIdle(); 15882 base::RunLoop().RunUntilIdle();
15870 15883
15871 EXPECT_TRUE(trans.GetResponseInfo()->was_fetched_via_spdy); 15884 EXPECT_TRUE(trans.GetResponseInfo()->was_fetched_via_spdy);
15872 HttpRequestHeaders headers; 15885 HttpRequestHeaders headers;
15873 ASSERT_TRUE(trans.GetFullRequestHeaders(&headers)); 15886 ASSERT_TRUE(trans.GetFullRequestHeaders(&headers));
15874 EXPECT_TRUE(headers.HasHeader(HttpRequestHeaders::kTokenBinding)); 15887 EXPECT_TRUE(headers.HasHeader(HttpRequestHeaders::kTokenBinding));
15875 } 15888 }
15876 #endif // !defined(OS_IOS) 15889 #endif // !defined(OS_IOS)
15877 15890
15878 } // namespace net 15891 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_network_transaction.cc ('k') | net/http/http_response_info.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698