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

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

Issue 2347163002: s/NPN/ALPN/ (Closed)
Patch Set: Re: #12. Created 4 years, 3 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 9860 matching lines...) Expand 10 before | Expand all | Expand 10 after
9871 http_server_properties->GetAlternativeServices(test_server); 9871 http_server_properties->GetAlternativeServices(test_server);
9872 EXPECT_TRUE(alternative_service_vector.empty()); 9872 EXPECT_TRUE(alternative_service_vector.empty());
9873 9873
9874 EXPECT_THAT(callback.WaitForResult(), IsOk()); 9874 EXPECT_THAT(callback.WaitForResult(), IsOk());
9875 9875
9876 const HttpResponseInfo* response = trans.GetResponseInfo(); 9876 const HttpResponseInfo* response = trans.GetResponseInfo();
9877 ASSERT_TRUE(response); 9877 ASSERT_TRUE(response);
9878 ASSERT_TRUE(response->headers); 9878 ASSERT_TRUE(response->headers);
9879 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); 9879 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine());
9880 EXPECT_FALSE(response->was_fetched_via_spdy); 9880 EXPECT_FALSE(response->was_fetched_via_spdy);
9881 EXPECT_FALSE(response->was_npn_negotiated); 9881 EXPECT_FALSE(response->was_alpn_negotiated);
9882 9882
9883 std::string response_data; 9883 std::string response_data;
9884 ASSERT_THAT(ReadTransaction(&trans, &response_data), IsOk()); 9884 ASSERT_THAT(ReadTransaction(&trans, &response_data), IsOk());
9885 EXPECT_EQ("hello world", response_data); 9885 EXPECT_EQ("hello world", response_data);
9886 9886
9887 alternative_service_vector = 9887 alternative_service_vector =
9888 http_server_properties->GetAlternativeServices(test_server); 9888 http_server_properties->GetAlternativeServices(test_server);
9889 ASSERT_EQ(1u, alternative_service_vector.size()); 9889 ASSERT_EQ(1u, alternative_service_vector.size());
9890 EXPECT_EQ(AlternateProtocolFromNextProto(kProtoHTTP2), 9890 EXPECT_EQ(AlternateProtocolFromNextProto(kProtoHTTP2),
9891 alternative_service_vector[0].protocol); 9891 alternative_service_vector[0].protocol);
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
9926 9926
9927 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); 9927 int rv = trans.Start(&request, callback.callback(), BoundNetLog());
9928 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); 9928 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
9929 EXPECT_THAT(callback.WaitForResult(), IsOk()); 9929 EXPECT_THAT(callback.WaitForResult(), IsOk());
9930 9930
9931 const HttpResponseInfo* response = trans.GetResponseInfo(); 9931 const HttpResponseInfo* response = trans.GetResponseInfo();
9932 ASSERT_TRUE(response); 9932 ASSERT_TRUE(response);
9933 ASSERT_TRUE(response->headers); 9933 ASSERT_TRUE(response->headers);
9934 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); 9934 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine());
9935 EXPECT_FALSE(response->was_fetched_via_spdy); 9935 EXPECT_FALSE(response->was_fetched_via_spdy);
9936 EXPECT_FALSE(response->was_npn_negotiated); 9936 EXPECT_FALSE(response->was_alpn_negotiated);
9937 9937
9938 std::string response_data; 9938 std::string response_data;
9939 ASSERT_THAT(ReadTransaction(&trans, &response_data), IsOk()); 9939 ASSERT_THAT(ReadTransaction(&trans, &response_data), IsOk());
9940 EXPECT_EQ("hello world", response_data); 9940 EXPECT_EQ("hello world", response_data);
9941 9941
9942 alternative_service_vector = 9942 alternative_service_vector =
9943 http_server_properties->GetAlternativeServices(test_server); 9943 http_server_properties->GetAlternativeServices(test_server);
9944 EXPECT_TRUE(alternative_service_vector.empty()); 9944 EXPECT_TRUE(alternative_service_vector.empty());
9945 } 9945 }
9946 9946
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
10069 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); 10069 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
10070 10070
10071 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); 10071 int rv = trans.Start(&request, callback.callback(), BoundNetLog());
10072 EXPECT_THAT(callback.GetResult(rv), IsOk()); 10072 EXPECT_THAT(callback.GetResult(rv), IsOk());
10073 10073
10074 const HttpResponseInfo* response = trans.GetResponseInfo(); 10074 const HttpResponseInfo* response = trans.GetResponseInfo();
10075 ASSERT_TRUE(response); 10075 ASSERT_TRUE(response);
10076 ASSERT_TRUE(response->headers); 10076 ASSERT_TRUE(response->headers);
10077 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); 10077 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine());
10078 EXPECT_FALSE(response->was_fetched_via_spdy); 10078 EXPECT_FALSE(response->was_fetched_via_spdy);
10079 EXPECT_FALSE(response->was_npn_negotiated); 10079 EXPECT_FALSE(response->was_alpn_negotiated);
10080 10080
10081 std::string response_data; 10081 std::string response_data;
10082 ASSERT_THAT(ReadTransaction(&trans, &response_data), IsOk()); 10082 ASSERT_THAT(ReadTransaction(&trans, &response_data), IsOk());
10083 EXPECT_EQ("hello world", response_data); 10083 EXPECT_EQ("hello world", response_data);
10084 10084
10085 alternative_service_vector = 10085 alternative_service_vector =
10086 http_server_properties->GetAlternativeServices(test_server); 10086 http_server_properties->GetAlternativeServices(test_server);
10087 EXPECT_TRUE(alternative_service_vector.empty()); 10087 EXPECT_TRUE(alternative_service_vector.empty());
10088 } 10088 }
10089 10089
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
10122 http_server_properties->GetAlternativeServices(test_server); 10122 http_server_properties->GetAlternativeServices(test_server);
10123 EXPECT_TRUE(alternative_service_vector.empty()); 10123 EXPECT_TRUE(alternative_service_vector.empty());
10124 10124
10125 EXPECT_THAT(callback.WaitForResult(), IsOk()); 10125 EXPECT_THAT(callback.WaitForResult(), IsOk());
10126 10126
10127 const HttpResponseInfo* response = trans.GetResponseInfo(); 10127 const HttpResponseInfo* response = trans.GetResponseInfo();
10128 ASSERT_TRUE(response); 10128 ASSERT_TRUE(response);
10129 ASSERT_TRUE(response->headers); 10129 ASSERT_TRUE(response->headers);
10130 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); 10130 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine());
10131 EXPECT_FALSE(response->was_fetched_via_spdy); 10131 EXPECT_FALSE(response->was_fetched_via_spdy);
10132 EXPECT_FALSE(response->was_npn_negotiated); 10132 EXPECT_FALSE(response->was_alpn_negotiated);
10133 10133
10134 std::string response_data; 10134 std::string response_data;
10135 ASSERT_THAT(ReadTransaction(&trans, &response_data), IsOk()); 10135 ASSERT_THAT(ReadTransaction(&trans, &response_data), IsOk());
10136 EXPECT_EQ("hello world", response_data); 10136 EXPECT_EQ("hello world", response_data);
10137 10137
10138 alternative_service_vector = 10138 alternative_service_vector =
10139 http_server_properties->GetAlternativeServices(test_server); 10139 http_server_properties->GetAlternativeServices(test_server);
10140 ASSERT_EQ(2u, alternative_service_vector.size()); 10140 ASSERT_EQ(2u, alternative_service_vector.size());
10141 EXPECT_EQ(AlternateProtocolFromNextProto(kProtoHTTP2), 10141 EXPECT_EQ(AlternateProtocolFromNextProto(kProtoHTTP2),
10142 alternative_service_vector[0].protocol); 10142 alternative_service_vector[0].protocol);
(...skipping 570 matching lines...) Expand 10 before | Expand all | Expand 10 after
10713 10713
10714 rv = trans->Start(&request, callback.callback(), BoundNetLog()); 10714 rv = trans->Start(&request, callback.callback(), BoundNetLog());
10715 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); 10715 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
10716 EXPECT_THAT(callback.WaitForResult(), IsOk()); 10716 EXPECT_THAT(callback.WaitForResult(), IsOk());
10717 10717
10718 response = trans->GetResponseInfo(); 10718 response = trans->GetResponseInfo();
10719 ASSERT_TRUE(response); 10719 ASSERT_TRUE(response);
10720 ASSERT_TRUE(response->headers); 10720 ASSERT_TRUE(response->headers);
10721 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); 10721 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine());
10722 EXPECT_TRUE(response->was_fetched_via_spdy); 10722 EXPECT_TRUE(response->was_fetched_via_spdy);
10723 EXPECT_TRUE(response->was_npn_negotiated); 10723 EXPECT_TRUE(response->was_alpn_negotiated);
10724 10724
10725 ASSERT_THAT(ReadTransaction(trans.get(), &response_data), IsOk()); 10725 ASSERT_THAT(ReadTransaction(trans.get(), &response_data), IsOk());
10726 EXPECT_EQ("hello!", response_data); 10726 EXPECT_EQ("hello!", response_data);
10727 } 10727 }
10728 10728
10729 TEST_F(HttpNetworkTransactionTest, AlternateProtocolWithSpdyLateBinding) { 10729 TEST_F(HttpNetworkTransactionTest, AlternateProtocolWithSpdyLateBinding) {
10730 HttpRequestInfo request; 10730 HttpRequestInfo request;
10731 request.method = "GET"; 10731 request.method = "GET";
10732 request.url = GURL("https://www.example.org/"); 10732 request.url = GURL("https://www.example.org/");
10733 request.load_flags = 0; 10733 request.load_flags = 0;
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
10823 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); 10823 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
10824 10824
10825 EXPECT_THAT(callback2.WaitForResult(), IsOk()); 10825 EXPECT_THAT(callback2.WaitForResult(), IsOk());
10826 EXPECT_THAT(callback3.WaitForResult(), IsOk()); 10826 EXPECT_THAT(callback3.WaitForResult(), IsOk());
10827 10827
10828 response = trans2.GetResponseInfo(); 10828 response = trans2.GetResponseInfo();
10829 ASSERT_TRUE(response); 10829 ASSERT_TRUE(response);
10830 ASSERT_TRUE(response->headers); 10830 ASSERT_TRUE(response->headers);
10831 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); 10831 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine());
10832 EXPECT_TRUE(response->was_fetched_via_spdy); 10832 EXPECT_TRUE(response->was_fetched_via_spdy);
10833 EXPECT_TRUE(response->was_npn_negotiated); 10833 EXPECT_TRUE(response->was_alpn_negotiated);
10834 ASSERT_THAT(ReadTransaction(&trans2, &response_data), IsOk()); 10834 ASSERT_THAT(ReadTransaction(&trans2, &response_data), IsOk());
10835 EXPECT_EQ("hello!", response_data); 10835 EXPECT_EQ("hello!", response_data);
10836 10836
10837 response = trans3.GetResponseInfo(); 10837 response = trans3.GetResponseInfo();
10838 ASSERT_TRUE(response); 10838 ASSERT_TRUE(response);
10839 ASSERT_TRUE(response->headers); 10839 ASSERT_TRUE(response->headers);
10840 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); 10840 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine());
10841 EXPECT_TRUE(response->was_fetched_via_spdy); 10841 EXPECT_TRUE(response->was_fetched_via_spdy);
10842 EXPECT_TRUE(response->was_npn_negotiated); 10842 EXPECT_TRUE(response->was_alpn_negotiated);
10843 ASSERT_THAT(ReadTransaction(&trans3, &response_data), IsOk()); 10843 ASSERT_THAT(ReadTransaction(&trans3, &response_data), IsOk());
10844 EXPECT_EQ("hello!", response_data); 10844 EXPECT_EQ("hello!", response_data);
10845 } 10845 }
10846 10846
10847 TEST_F(HttpNetworkTransactionTest, StallAlternativeServiceForNpnSpdy) { 10847 TEST_F(HttpNetworkTransactionTest, StallAlternativeServiceForNpnSpdy) {
10848 HttpRequestInfo request; 10848 HttpRequestInfo request;
10849 request.method = "GET"; 10849 request.method = "GET";
10850 request.url = GURL("https://www.example.org/"); 10850 request.url = GURL("https://www.example.org/");
10851 request.load_flags = 0; 10851 request.load_flags = 0;
10852 10852
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
10903 10903
10904 rv = trans->Start(&request, callback.callback(), BoundNetLog()); 10904 rv = trans->Start(&request, callback.callback(), BoundNetLog());
10905 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); 10905 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
10906 EXPECT_THAT(callback.WaitForResult(), IsOk()); 10906 EXPECT_THAT(callback.WaitForResult(), IsOk());
10907 10907
10908 response = trans->GetResponseInfo(); 10908 response = trans->GetResponseInfo();
10909 ASSERT_TRUE(response); 10909 ASSERT_TRUE(response);
10910 ASSERT_TRUE(response->headers); 10910 ASSERT_TRUE(response->headers);
10911 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); 10911 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine());
10912 EXPECT_FALSE(response->was_fetched_via_spdy); 10912 EXPECT_FALSE(response->was_fetched_via_spdy);
10913 EXPECT_FALSE(response->was_npn_negotiated); 10913 EXPECT_FALSE(response->was_alpn_negotiated);
10914 10914
10915 ASSERT_THAT(ReadTransaction(trans.get(), &response_data), IsOk()); 10915 ASSERT_THAT(ReadTransaction(trans.get(), &response_data), IsOk());
10916 EXPECT_EQ("hello world", response_data); 10916 EXPECT_EQ("hello world", response_data);
10917 } 10917 }
10918 10918
10919 class CapturingProxyResolver : public ProxyResolver { 10919 class CapturingProxyResolver : public ProxyResolver {
10920 public: 10920 public:
10921 CapturingProxyResolver() {} 10921 CapturingProxyResolver() {}
10922 ~CapturingProxyResolver() override {} 10922 ~CapturingProxyResolver() override {}
10923 10923
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
11041 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); 11041 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
11042 11042
11043 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); 11043 int rv = trans.Start(&request, callback.callback(), BoundNetLog());
11044 EXPECT_THAT(callback.GetResult(rv), IsOk()); 11044 EXPECT_THAT(callback.GetResult(rv), IsOk());
11045 11045
11046 const HttpResponseInfo* response = trans.GetResponseInfo(); 11046 const HttpResponseInfo* response = trans.GetResponseInfo();
11047 ASSERT_TRUE(response); 11047 ASSERT_TRUE(response);
11048 ASSERT_TRUE(response->headers); 11048 ASSERT_TRUE(response->headers);
11049 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); 11049 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine());
11050 EXPECT_TRUE(response->was_fetched_via_spdy); 11050 EXPECT_TRUE(response->was_fetched_via_spdy);
11051 EXPECT_TRUE(response->was_npn_negotiated); 11051 EXPECT_TRUE(response->was_alpn_negotiated);
11052 11052
11053 std::string response_data; 11053 std::string response_data;
11054 ASSERT_THAT(ReadTransaction(&trans, &response_data), IsOk()); 11054 ASSERT_THAT(ReadTransaction(&trans, &response_data), IsOk());
11055 EXPECT_EQ("hello!", response_data); 11055 EXPECT_EQ("hello!", response_data);
11056 11056
11057 // Origin host bypasses proxy, no resolution should have happened. 11057 // Origin host bypasses proxy, no resolution should have happened.
11058 ASSERT_TRUE(capturing_proxy_resolver.resolved().empty()); 11058 ASSERT_TRUE(capturing_proxy_resolver.resolved().empty());
11059 } 11059 }
11060 11060
11061 TEST_F(HttpNetworkTransactionTest, UseAlternativeServiceForTunneledNpnSpdy) { 11061 TEST_F(HttpNetworkTransactionTest, UseAlternativeServiceForTunneledNpnSpdy) {
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
11139 11139
11140 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); 11140 int rv = trans->Start(&request, callback.callback(), BoundNetLog());
11141 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); 11141 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
11142 EXPECT_THAT(callback.WaitForResult(), IsOk()); 11142 EXPECT_THAT(callback.WaitForResult(), IsOk());
11143 11143
11144 const HttpResponseInfo* response = trans->GetResponseInfo(); 11144 const HttpResponseInfo* response = trans->GetResponseInfo();
11145 ASSERT_TRUE(response); 11145 ASSERT_TRUE(response);
11146 ASSERT_TRUE(response->headers); 11146 ASSERT_TRUE(response->headers);
11147 EXPECT_EQ("HTTP/0.9 200 OK", response->headers->GetStatusLine()); 11147 EXPECT_EQ("HTTP/0.9 200 OK", response->headers->GetStatusLine());
11148 EXPECT_FALSE(response->was_fetched_via_spdy); 11148 EXPECT_FALSE(response->was_fetched_via_spdy);
11149 EXPECT_TRUE(response->was_npn_negotiated); 11149 EXPECT_TRUE(response->was_alpn_negotiated);
11150 11150
11151 std::string response_data; 11151 std::string response_data;
11152 ASSERT_THAT(ReadTransaction(trans.get(), &response_data), IsOk()); 11152 ASSERT_THAT(ReadTransaction(trans.get(), &response_data), IsOk());
11153 EXPECT_EQ("hello world", response_data); 11153 EXPECT_EQ("hello world", response_data);
11154 11154
11155 trans.reset(new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); 11155 trans.reset(new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
11156 11156
11157 rv = trans->Start(&request, callback.callback(), BoundNetLog()); 11157 rv = trans->Start(&request, callback.callback(), BoundNetLog());
11158 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); 11158 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
11159 EXPECT_THAT(callback.WaitForResult(), IsOk()); 11159 EXPECT_THAT(callback.WaitForResult(), IsOk());
11160 11160
11161 response = trans->GetResponseInfo(); 11161 response = trans->GetResponseInfo();
11162 ASSERT_TRUE(response); 11162 ASSERT_TRUE(response);
11163 ASSERT_TRUE(response->headers); 11163 ASSERT_TRUE(response->headers);
11164 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); 11164 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine());
11165 EXPECT_TRUE(response->was_fetched_via_spdy); 11165 EXPECT_TRUE(response->was_fetched_via_spdy);
11166 EXPECT_TRUE(response->was_npn_negotiated); 11166 EXPECT_TRUE(response->was_alpn_negotiated);
11167 11167
11168 ASSERT_THAT(ReadTransaction(trans.get(), &response_data), IsOk()); 11168 ASSERT_THAT(ReadTransaction(trans.get(), &response_data), IsOk());
11169 EXPECT_EQ("hello!", response_data); 11169 EXPECT_EQ("hello!", response_data);
11170 ASSERT_EQ(2u, capturing_proxy_resolver.resolved().size()); 11170 ASSERT_EQ(2u, capturing_proxy_resolver.resolved().size());
11171 EXPECT_EQ("https://www.example.org/", 11171 EXPECT_EQ("https://www.example.org/",
11172 capturing_proxy_resolver.resolved()[0].spec()); 11172 capturing_proxy_resolver.resolved()[0].spec());
11173 EXPECT_EQ("https://www.example.org/", 11173 EXPECT_EQ("https://www.example.org/",
11174 capturing_proxy_resolver.resolved()[1].spec()); 11174 capturing_proxy_resolver.resolved()[1].spec());
11175 11175
11176 LoadTimingInfo load_timing_info; 11176 LoadTimingInfo load_timing_info;
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
11253 11253
11254 rv = trans->Start(&request, callback.callback(), BoundNetLog()); 11254 rv = trans->Start(&request, callback.callback(), BoundNetLog());
11255 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); 11255 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
11256 EXPECT_THAT(callback.WaitForResult(), IsOk()); 11256 EXPECT_THAT(callback.WaitForResult(), IsOk());
11257 11257
11258 response = trans->GetResponseInfo(); 11258 response = trans->GetResponseInfo();
11259 ASSERT_TRUE(response); 11259 ASSERT_TRUE(response);
11260 ASSERT_TRUE(response->headers); 11260 ASSERT_TRUE(response->headers);
11261 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); 11261 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine());
11262 EXPECT_TRUE(response->was_fetched_via_spdy); 11262 EXPECT_TRUE(response->was_fetched_via_spdy);
11263 EXPECT_TRUE(response->was_npn_negotiated); 11263 EXPECT_TRUE(response->was_alpn_negotiated);
11264 11264
11265 ASSERT_THAT(ReadTransaction(trans.get(), &response_data), IsOk()); 11265 ASSERT_THAT(ReadTransaction(trans.get(), &response_data), IsOk());
11266 EXPECT_EQ("hello!", response_data); 11266 EXPECT_EQ("hello!", response_data);
11267 } 11267 }
11268 11268
11269 // GenerateAuthToken is a mighty big test. 11269 // GenerateAuthToken is a mighty big test.
11270 // It tests all permutation of GenerateAuthToken behavior: 11270 // It tests all permutation of GenerateAuthToken behavior:
11271 // - Synchronous and Asynchronous completion. 11271 // - Synchronous and Asynchronous completion.
11272 // - OK or error on completion. 11272 // - OK or error on completion.
11273 // - Direct connection, non-authenticating proxy, and authenticating proxy. 11273 // - Direct connection, non-authenticating proxy, and authenticating proxy.
(...skipping 646 matching lines...) Expand 10 before | Expand all | Expand 10 after
11920 const HttpResponseInfo* response = trans.GetResponseInfo(); 11920 const HttpResponseInfo* response = trans.GetResponseInfo();
11921 ASSERT_TRUE(response); 11921 ASSERT_TRUE(response);
11922 ASSERT_TRUE(response->headers); 11922 ASSERT_TRUE(response->headers);
11923 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); 11923 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine());
11924 11924
11925 std::string response_data; 11925 std::string response_data;
11926 ASSERT_THAT(ReadTransaction(&trans, &response_data), IsOk()); 11926 ASSERT_THAT(ReadTransaction(&trans, &response_data), IsOk());
11927 EXPECT_EQ("hello world", response_data); 11927 EXPECT_EQ("hello world", response_data);
11928 11928
11929 EXPECT_FALSE(response->was_fetched_via_spdy); 11929 EXPECT_FALSE(response->was_fetched_via_spdy);
11930 EXPECT_TRUE(response->was_npn_negotiated); 11930 EXPECT_TRUE(response->was_alpn_negotiated);
11931 } 11931 }
11932 11932
11933 // Simulate the SSL handshake completing with an NPN negotiation followed by an 11933 // Simulate the SSL handshake completing with an NPN negotiation followed by an
11934 // immediate server closing of the socket. 11934 // immediate server closing of the socket.
11935 // Regression test for https://crbug.com/46369. 11935 // Regression test for https://crbug.com/46369.
11936 TEST_F(HttpNetworkTransactionTest, SpdyPostNPNServerHangup) { 11936 TEST_F(HttpNetworkTransactionTest, SpdyPostNPNServerHangup) {
11937 HttpRequestInfo request; 11937 HttpRequestInfo request;
11938 request.method = "GET"; 11938 request.method = "GET";
11939 request.url = GURL("https://www.example.org/"); 11939 request.url = GURL("https://www.example.org/");
11940 request.load_flags = 0; 11940 request.load_flags = 0;
(...skipping 892 matching lines...) Expand 10 before | Expand all | Expand 10 after
12833 12833
12834 rv = trans2.Start(&request2, callback.callback(), BoundNetLog()); 12834 rv = trans2.Start(&request2, callback.callback(), BoundNetLog());
12835 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); 12835 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
12836 EXPECT_THAT(callback.WaitForResult(), IsOk()); 12836 EXPECT_THAT(callback.WaitForResult(), IsOk());
12837 12837
12838 response = trans2.GetResponseInfo(); 12838 response = trans2.GetResponseInfo();
12839 ASSERT_TRUE(response); 12839 ASSERT_TRUE(response);
12840 ASSERT_TRUE(response->headers); 12840 ASSERT_TRUE(response->headers);
12841 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); 12841 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine());
12842 EXPECT_TRUE(response->was_fetched_via_spdy); 12842 EXPECT_TRUE(response->was_fetched_via_spdy);
12843 EXPECT_TRUE(response->was_npn_negotiated); 12843 EXPECT_TRUE(response->was_alpn_negotiated);
12844 ASSERT_THAT(ReadTransaction(&trans2, &response_data), IsOk()); 12844 ASSERT_THAT(ReadTransaction(&trans2, &response_data), IsOk());
12845 EXPECT_EQ("hello!", response_data); 12845 EXPECT_EQ("hello!", response_data);
12846 } 12846 }
12847 12847
12848 TEST_F(HttpNetworkTransactionTest, UseIPConnectionPoolingAfterResolution) { 12848 TEST_F(HttpNetworkTransactionTest, UseIPConnectionPoolingAfterResolution) {
12849 // Set up a special HttpNetworkSession with a MockCachingHostResolver. 12849 // Set up a special HttpNetworkSession with a MockCachingHostResolver.
12850 session_deps_.host_resolver.reset(new MockCachingHostResolver()); 12850 session_deps_.host_resolver.reset(new MockCachingHostResolver());
12851 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 12851 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
12852 SpdySessionPoolPeer pool_peer(session->spdy_session_pool()); 12852 SpdySessionPoolPeer pool_peer(session->spdy_session_pool());
12853 pool_peer.DisableDomainAuthenticationVerification(); 12853 pool_peer.DisableDomainAuthenticationVerification();
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
12910 12910
12911 rv = trans2.Start(&request2, callback.callback(), BoundNetLog()); 12911 rv = trans2.Start(&request2, callback.callback(), BoundNetLog());
12912 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); 12912 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
12913 EXPECT_THAT(callback.WaitForResult(), IsOk()); 12913 EXPECT_THAT(callback.WaitForResult(), IsOk());
12914 12914
12915 response = trans2.GetResponseInfo(); 12915 response = trans2.GetResponseInfo();
12916 ASSERT_TRUE(response); 12916 ASSERT_TRUE(response);
12917 ASSERT_TRUE(response->headers); 12917 ASSERT_TRUE(response->headers);
12918 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); 12918 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine());
12919 EXPECT_TRUE(response->was_fetched_via_spdy); 12919 EXPECT_TRUE(response->was_fetched_via_spdy);
12920 EXPECT_TRUE(response->was_npn_negotiated); 12920 EXPECT_TRUE(response->was_alpn_negotiated);
12921 ASSERT_THAT(ReadTransaction(&trans2, &response_data), IsOk()); 12921 ASSERT_THAT(ReadTransaction(&trans2, &response_data), IsOk());
12922 EXPECT_EQ("hello!", response_data); 12922 EXPECT_EQ("hello!", response_data);
12923 } 12923 }
12924 12924
12925 class OneTimeCachingHostResolver : public HostResolver { 12925 class OneTimeCachingHostResolver : public HostResolver {
12926 public: 12926 public:
12927 explicit OneTimeCachingHostResolver(const HostPortPair& host_port) 12927 explicit OneTimeCachingHostResolver(const HostPortPair& host_port)
12928 : host_port_(host_port) {} 12928 : host_port_(host_port) {}
12929 ~OneTimeCachingHostResolver() override {} 12929 ~OneTimeCachingHostResolver() override {}
12930 12930
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
13038 13038
13039 rv = trans2.Start(&request2, callback.callback(), BoundNetLog()); 13039 rv = trans2.Start(&request2, callback.callback(), BoundNetLog());
13040 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); 13040 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
13041 EXPECT_THAT(callback.WaitForResult(), IsOk()); 13041 EXPECT_THAT(callback.WaitForResult(), IsOk());
13042 13042
13043 response = trans2.GetResponseInfo(); 13043 response = trans2.GetResponseInfo();
13044 ASSERT_TRUE(response); 13044 ASSERT_TRUE(response);
13045 ASSERT_TRUE(response->headers); 13045 ASSERT_TRUE(response->headers);
13046 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); 13046 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine());
13047 EXPECT_TRUE(response->was_fetched_via_spdy); 13047 EXPECT_TRUE(response->was_fetched_via_spdy);
13048 EXPECT_TRUE(response->was_npn_negotiated); 13048 EXPECT_TRUE(response->was_alpn_negotiated);
13049 ASSERT_THAT(ReadTransaction(&trans2, &response_data), IsOk()); 13049 ASSERT_THAT(ReadTransaction(&trans2, &response_data), IsOk());
13050 EXPECT_EQ("hello!", response_data); 13050 EXPECT_EQ("hello!", response_data);
13051 } 13051 }
13052 13052
13053 TEST_F(HttpNetworkTransactionTest, DoNotUseSpdySessionForHttp) { 13053 TEST_F(HttpNetworkTransactionTest, DoNotUseSpdySessionForHttp) {
13054 const std::string https_url = "https://www.example.org:8080/"; 13054 const std::string https_url = "https://www.example.org:8080/";
13055 const std::string http_url = "http://www.example.org:8080/"; 13055 const std::string http_url = "http://www.example.org:8080/";
13056 13056
13057 // SPDY GET for HTTPS URL 13057 // SPDY GET for HTTPS URL
13058 SpdySerializedFrame req1( 13058 SpdySerializedFrame req1(
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
13160 expiration); 13160 expiration);
13161 13161
13162 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); 13162 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
13163 HttpRequestInfo request; 13163 HttpRequestInfo request;
13164 request.method = "GET"; 13164 request.method = "GET";
13165 request.url = GURL("https://www.example.org:443"); 13165 request.url = GURL("https://www.example.org:443");
13166 request.load_flags = 0; 13166 request.load_flags = 0;
13167 TestCompletionCallback callback; 13167 TestCompletionCallback callback;
13168 13168
13169 // HTTP/2 (or SPDY) is required for alternative service, if HTTP/1.1 is 13169 // HTTP/2 (or SPDY) is required for alternative service, if HTTP/1.1 is
13170 // negotiated, the alternate Job should fail with ERR_NPN_NEGOTIATION_FAILED. 13170 // negotiated, the alternate Job should fail with ERR_ALPN_NEGOTIATION_FAILED.
13171 int rv = trans.Start(&request, callback.callback(), BoundNetLog()); 13171 int rv = trans.Start(&request, callback.callback(), BoundNetLog());
13172 EXPECT_THAT(callback.GetResult(rv), IsError(ERR_NPN_NEGOTIATION_FAILED)); 13172 EXPECT_THAT(callback.GetResult(rv), IsError(ERR_ALPN_NEGOTIATION_FAILED));
13173 } 13173 }
13174 13174
13175 // A request to a server with an alternative service fires two Jobs: one to the 13175 // A request to a server with an alternative service fires two Jobs: one to the
13176 // server, and an alternate one to the alternative server. If the former 13176 // server, and an alternate one to the alternative server. If the former
13177 // succeeds, the request should succeed, even if the latter fails because 13177 // succeeds, the request should succeed, even if the latter fails because
13178 // HTTP/1.1 is negotiated which is insufficient for alternative service. 13178 // HTTP/1.1 is negotiated which is insufficient for alternative service.
13179 TEST_F(HttpNetworkTransactionTest, FailedAlternativeServiceIsNotUserVisible) { 13179 TEST_F(HttpNetworkTransactionTest, FailedAlternativeServiceIsNotUserVisible) {
13180 url::SchemeHostPort server("https", "www.example.org", 443); 13180 url::SchemeHostPort server("https", "www.example.org", 443);
13181 HostPortPair alternative("www.example.org", 444); 13181 HostPortPair alternative("www.example.org", 444);
13182 13182
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
13343 request1.url = GURL(alternative_url); 13343 request1.url = GURL(alternative_url);
13344 request1.load_flags = 0; 13344 request1.load_flags = 0;
13345 TestCompletionCallback callback1; 13345 TestCompletionCallback callback1;
13346 13346
13347 int rv = trans1.Start(&request1, callback1.callback(), BoundNetLog()); 13347 int rv = trans1.Start(&request1, callback1.callback(), BoundNetLog());
13348 EXPECT_THAT(callback1.GetResult(rv), IsOk()); 13348 EXPECT_THAT(callback1.GetResult(rv), IsOk());
13349 const HttpResponseInfo* response1 = trans1.GetResponseInfo(); 13349 const HttpResponseInfo* response1 = trans1.GetResponseInfo();
13350 ASSERT_TRUE(response1); 13350 ASSERT_TRUE(response1);
13351 ASSERT_TRUE(response1->headers); 13351 ASSERT_TRUE(response1->headers);
13352 EXPECT_EQ("HTTP/1.1 200 OK", response1->headers->GetStatusLine()); 13352 EXPECT_EQ("HTTP/1.1 200 OK", response1->headers->GetStatusLine());
13353 EXPECT_TRUE(response1->was_npn_negotiated); 13353 EXPECT_TRUE(response1->was_alpn_negotiated);
13354 EXPECT_FALSE(response1->was_fetched_via_spdy); 13354 EXPECT_FALSE(response1->was_fetched_via_spdy);
13355 std::string response_data1; 13355 std::string response_data1;
13356 ASSERT_THAT(ReadTransaction(&trans1, &response_data1), IsOk()); 13356 ASSERT_THAT(ReadTransaction(&trans1, &response_data1), IsOk());
13357 EXPECT_EQ("first HTTP/1.1 response from alternative", response_data1); 13357 EXPECT_EQ("first HTTP/1.1 response from alternative", response_data1);
13358 13358
13359 // Request for origin.example.org, which has an alternative service. This 13359 // Request for origin.example.org, which has an alternative service. This
13360 // will start two Jobs: the alternative looks for connections to pool to, 13360 // will start two Jobs: the alternative looks for connections to pool to,
13361 // finds one which is HTTP/1.1, and should ignore it, and should not try to 13361 // finds one which is HTTP/1.1, and should ignore it, and should not try to
13362 // open other connections to alternative server. The Job to server fails, so 13362 // open other connections to alternative server. The Job to server fails, so
13363 // this request fails. 13363 // this request fails.
(...skipping 15 matching lines...) Expand all
13379 request3.url = GURL(alternative_url); 13379 request3.url = GURL(alternative_url);
13380 request3.load_flags = 0; 13380 request3.load_flags = 0;
13381 TestCompletionCallback callback3; 13381 TestCompletionCallback callback3;
13382 13382
13383 rv = trans3.Start(&request3, callback3.callback(), BoundNetLog()); 13383 rv = trans3.Start(&request3, callback3.callback(), BoundNetLog());
13384 EXPECT_THAT(callback3.GetResult(rv), IsOk()); 13384 EXPECT_THAT(callback3.GetResult(rv), IsOk());
13385 const HttpResponseInfo* response3 = trans3.GetResponseInfo(); 13385 const HttpResponseInfo* response3 = trans3.GetResponseInfo();
13386 ASSERT_TRUE(response3); 13386 ASSERT_TRUE(response3);
13387 ASSERT_TRUE(response3->headers); 13387 ASSERT_TRUE(response3->headers);
13388 EXPECT_EQ("HTTP/1.1 200 OK", response3->headers->GetStatusLine()); 13388 EXPECT_EQ("HTTP/1.1 200 OK", response3->headers->GetStatusLine());
13389 EXPECT_TRUE(response3->was_npn_negotiated); 13389 EXPECT_TRUE(response3->was_alpn_negotiated);
13390 EXPECT_FALSE(response3->was_fetched_via_spdy); 13390 EXPECT_FALSE(response3->was_fetched_via_spdy);
13391 std::string response_data3; 13391 std::string response_data3;
13392 ASSERT_THAT(ReadTransaction(&trans3, &response_data3), IsOk()); 13392 ASSERT_THAT(ReadTransaction(&trans3, &response_data3), IsOk());
13393 EXPECT_EQ("second HTTP/1.1 response from alternative", response_data3); 13393 EXPECT_EQ("second HTTP/1.1 response from alternative", response_data3);
13394 } 13394 }
13395 13395
13396 TEST_F(HttpNetworkTransactionTest, DoNotUseSpdySessionForHttpOverTunnel) { 13396 TEST_F(HttpNetworkTransactionTest, DoNotUseSpdySessionForHttpOverTunnel) {
13397 const std::string https_url = "https://www.example.org:8080/"; 13397 const std::string https_url = "https://www.example.org:8080/";
13398 const std::string http_url = "http://www.example.org:8080/"; 13398 const std::string http_url = "http://www.example.org:8080/";
13399 13399
(...skipping 386 matching lines...) Expand 10 before | Expand all | Expand 10 after
13786 13786
13787 int rv = trans->Start(&request1, callback.callback(), BoundNetLog()); 13787 int rv = trans->Start(&request1, callback.callback(), BoundNetLog());
13788 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); 13788 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
13789 EXPECT_THAT(callback.WaitForResult(), IsOk()); 13789 EXPECT_THAT(callback.WaitForResult(), IsOk());
13790 13790
13791 const HttpResponseInfo* response = trans->GetResponseInfo(); 13791 const HttpResponseInfo* response = trans->GetResponseInfo();
13792 ASSERT_TRUE(response); 13792 ASSERT_TRUE(response);
13793 ASSERT_TRUE(response->headers); 13793 ASSERT_TRUE(response->headers);
13794 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); 13794 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine());
13795 EXPECT_TRUE(response->was_fetched_via_spdy); 13795 EXPECT_TRUE(response->was_fetched_via_spdy);
13796 EXPECT_TRUE(response->was_npn_negotiated); 13796 EXPECT_TRUE(response->was_alpn_negotiated);
13797 13797
13798 std::string response_data; 13798 std::string response_data;
13799 ASSERT_THAT(ReadTransaction(trans.get(), &response_data), IsOk()); 13799 ASSERT_THAT(ReadTransaction(trans.get(), &response_data), IsOk());
13800 EXPECT_EQ("hello!", response_data); 13800 EXPECT_EQ("hello!", response_data);
13801 trans.reset(); 13801 trans.reset();
13802 EXPECT_TRUE( 13802 EXPECT_TRUE(
13803 HasSpdySession(session->spdy_session_pool(), spdy_session_key_a)); 13803 HasSpdySession(session->spdy_session_pool(), spdy_session_key_a));
13804 13804
13805 HostPortPair host_port_pair_b("www.b.com", 443); 13805 HostPortPair host_port_pair_b("www.b.com", 443);
13806 SpdySessionKey spdy_session_key_b( 13806 SpdySessionKey spdy_session_key_b(
13807 host_port_pair_b, ProxyServer::Direct(), PRIVACY_MODE_DISABLED); 13807 host_port_pair_b, ProxyServer::Direct(), PRIVACY_MODE_DISABLED);
13808 EXPECT_FALSE( 13808 EXPECT_FALSE(
13809 HasSpdySession(session->spdy_session_pool(), spdy_session_key_b)); 13809 HasSpdySession(session->spdy_session_pool(), spdy_session_key_b));
13810 HttpRequestInfo request2; 13810 HttpRequestInfo request2;
13811 request2.method = "GET"; 13811 request2.method = "GET";
13812 request2.url = GURL("https://www.b.com/"); 13812 request2.url = GURL("https://www.b.com/");
13813 request2.load_flags = 0; 13813 request2.load_flags = 0;
13814 trans.reset(new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); 13814 trans.reset(new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
13815 13815
13816 rv = trans->Start(&request2, callback.callback(), BoundNetLog()); 13816 rv = trans->Start(&request2, callback.callback(), BoundNetLog());
13817 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); 13817 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
13818 EXPECT_THAT(callback.WaitForResult(), IsOk()); 13818 EXPECT_THAT(callback.WaitForResult(), IsOk());
13819 13819
13820 response = trans->GetResponseInfo(); 13820 response = trans->GetResponseInfo();
13821 ASSERT_TRUE(response); 13821 ASSERT_TRUE(response);
13822 ASSERT_TRUE(response->headers); 13822 ASSERT_TRUE(response->headers);
13823 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); 13823 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine());
13824 EXPECT_TRUE(response->was_fetched_via_spdy); 13824 EXPECT_TRUE(response->was_fetched_via_spdy);
13825 EXPECT_TRUE(response->was_npn_negotiated); 13825 EXPECT_TRUE(response->was_alpn_negotiated);
13826 ASSERT_THAT(ReadTransaction(trans.get(), &response_data), IsOk()); 13826 ASSERT_THAT(ReadTransaction(trans.get(), &response_data), IsOk());
13827 EXPECT_EQ("hello!", response_data); 13827 EXPECT_EQ("hello!", response_data);
13828 EXPECT_FALSE( 13828 EXPECT_FALSE(
13829 HasSpdySession(session->spdy_session_pool(), spdy_session_key_a)); 13829 HasSpdySession(session->spdy_session_pool(), spdy_session_key_a));
13830 EXPECT_TRUE( 13830 EXPECT_TRUE(
13831 HasSpdySession(session->spdy_session_pool(), spdy_session_key_b)); 13831 HasSpdySession(session->spdy_session_pool(), spdy_session_key_b));
13832 13832
13833 HostPortPair host_port_pair_a1("www.a.com", 80); 13833 HostPortPair host_port_pair_a1("www.a.com", 80);
13834 SpdySessionKey spdy_session_key_a1( 13834 SpdySessionKey spdy_session_key_a1(
13835 host_port_pair_a1, ProxyServer::Direct(), PRIVACY_MODE_DISABLED); 13835 host_port_pair_a1, ProxyServer::Direct(), PRIVACY_MODE_DISABLED);
13836 EXPECT_FALSE( 13836 EXPECT_FALSE(
13837 HasSpdySession(session->spdy_session_pool(), spdy_session_key_a1)); 13837 HasSpdySession(session->spdy_session_pool(), spdy_session_key_a1));
13838 HttpRequestInfo request3; 13838 HttpRequestInfo request3;
13839 request3.method = "GET"; 13839 request3.method = "GET";
13840 request3.url = GURL("http://www.a.com/"); 13840 request3.url = GURL("http://www.a.com/");
13841 request3.load_flags = 0; 13841 request3.load_flags = 0;
13842 trans.reset(new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); 13842 trans.reset(new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
13843 13843
13844 rv = trans->Start(&request3, callback.callback(), BoundNetLog()); 13844 rv = trans->Start(&request3, callback.callback(), BoundNetLog());
13845 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); 13845 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
13846 EXPECT_THAT(callback.WaitForResult(), IsOk()); 13846 EXPECT_THAT(callback.WaitForResult(), IsOk());
13847 13847
13848 response = trans->GetResponseInfo(); 13848 response = trans->GetResponseInfo();
13849 ASSERT_TRUE(response); 13849 ASSERT_TRUE(response);
13850 ASSERT_TRUE(response->headers); 13850 ASSERT_TRUE(response->headers);
13851 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); 13851 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine());
13852 EXPECT_FALSE(response->was_fetched_via_spdy); 13852 EXPECT_FALSE(response->was_fetched_via_spdy);
13853 EXPECT_FALSE(response->was_npn_negotiated); 13853 EXPECT_FALSE(response->was_alpn_negotiated);
13854 ASSERT_THAT(ReadTransaction(trans.get(), &response_data), IsOk()); 13854 ASSERT_THAT(ReadTransaction(trans.get(), &response_data), IsOk());
13855 EXPECT_EQ("hello!", response_data); 13855 EXPECT_EQ("hello!", response_data);
13856 EXPECT_FALSE( 13856 EXPECT_FALSE(
13857 HasSpdySession(session->spdy_session_pool(), spdy_session_key_a)); 13857 HasSpdySession(session->spdy_session_pool(), spdy_session_key_a));
13858 EXPECT_FALSE( 13858 EXPECT_FALSE(
13859 HasSpdySession(session->spdy_session_pool(), spdy_session_key_b)); 13859 HasSpdySession(session->spdy_session_pool(), spdy_session_key_b));
13860 } 13860 }
13861 13861
13862 TEST_F(HttpNetworkTransactionTest, HttpSyncConnectError) { 13862 TEST_F(HttpNetworkTransactionTest, HttpSyncConnectError) {
13863 HttpRequestInfo request; 13863 HttpRequestInfo request;
(...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after
14253 return ERR_UNEXPECTED; 14253 return ERR_UNEXPECTED;
14254 } 14254 }
14255 14255
14256 LoadState GetLoadState() const override { 14256 LoadState GetLoadState() const override {
14257 ADD_FAILURE(); 14257 ADD_FAILURE();
14258 return LoadState(); 14258 return LoadState();
14259 } 14259 }
14260 14260
14261 void SetPriority(RequestPriority priority) override { priority_ = priority; } 14261 void SetPriority(RequestPriority priority) override { priority_ = priority; }
14262 14262
14263 bool was_npn_negotiated() const override { return false; } 14263 bool was_alpn_negotiated() const override { return false; }
14264 14264
14265 NextProto negotiated_protocol() const override { return kProtoUnknown; } 14265 NextProto negotiated_protocol() const override { return kProtoUnknown; }
14266 14266
14267 bool using_spdy() const override { return false; } 14267 bool using_spdy() const override { return false; }
14268 14268
14269 const ConnectionAttempts& connection_attempts() const override { 14269 const ConnectionAttempts& connection_attempts() const override {
14270 static ConnectionAttempts no_attempts; 14270 static ConnectionAttempts no_attempts;
14271 return no_attempts; 14271 return no_attempts;
14272 } 14272 }
14273 14273
(...skipping 1301 matching lines...) Expand 10 before | Expand all | Expand 10 after
15575 base::RunLoop().RunUntilIdle(); 15575 base::RunLoop().RunUntilIdle();
15576 15576
15577 EXPECT_TRUE(trans.GetResponseInfo()->was_fetched_via_spdy); 15577 EXPECT_TRUE(trans.GetResponseInfo()->was_fetched_via_spdy);
15578 HttpRequestHeaders headers; 15578 HttpRequestHeaders headers;
15579 ASSERT_TRUE(trans.GetFullRequestHeaders(&headers)); 15579 ASSERT_TRUE(trans.GetFullRequestHeaders(&headers));
15580 EXPECT_TRUE(headers.HasHeader(HttpRequestHeaders::kTokenBinding)); 15580 EXPECT_TRUE(headers.HasHeader(HttpRequestHeaders::kTokenBinding));
15581 } 15581 }
15582 #endif // !defined(OS_IOS) 15582 #endif // !defined(OS_IOS)
15583 15583
15584 } // namespace net 15584 } // 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