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

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

Issue 2041863002: Remove HttpServerProperies::GetWeakPtr(). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 4 years, 6 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
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 9075 matching lines...) Expand 10 before | Expand all | Expand 10 after
9086 std::string url; 9086 std::string url;
9087 std::string expected_group_name; 9087 std::string expected_group_name;
9088 bool ssl; 9088 bool ssl;
9089 }; 9089 };
9090 9090
9091 std::unique_ptr<HttpNetworkSession> SetupSessionForGroupNameTests( 9091 std::unique_ptr<HttpNetworkSession> SetupSessionForGroupNameTests(
9092 NextProto next_proto, 9092 NextProto next_proto,
9093 SpdySessionDependencies* session_deps_) { 9093 SpdySessionDependencies* session_deps_) {
9094 std::unique_ptr<HttpNetworkSession> session(CreateSession(session_deps_)); 9094 std::unique_ptr<HttpNetworkSession> session(CreateSession(session_deps_));
9095 9095
9096 base::WeakPtr<HttpServerProperties> http_server_properties = 9096 HttpServerProperties* http_server_properties =
9097 session->http_server_properties(); 9097 session->http_server_properties();
9098 AlternativeService alternative_service( 9098 AlternativeService alternative_service(
9099 AlternateProtocolFromNextProto(next_proto), "", 443); 9099 AlternateProtocolFromNextProto(next_proto), "", 443);
9100 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 9100 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
9101 http_server_properties->SetAlternativeService( 9101 http_server_properties->SetAlternativeService(
9102 url::SchemeHostPort("http", "host.with.alternate", 80), 9102 url::SchemeHostPort("http", "host.with.alternate", 80),
9103 alternative_service, expiration); 9103 alternative_service, expiration);
9104 9104
9105 return session; 9105 return session;
9106 } 9106 }
(...skipping 870 matching lines...) Expand 10 before | Expand all | Expand 10 after
9977 TestCompletionCallback callback; 9977 TestCompletionCallback callback;
9978 9978
9979 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 9979 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
9980 std::unique_ptr<HttpTransaction> trans( 9980 std::unique_ptr<HttpTransaction> trans(
9981 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); 9981 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
9982 9982
9983 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); 9983 int rv = trans->Start(&request, callback.callback(), BoundNetLog());
9984 EXPECT_EQ(ERR_IO_PENDING, rv); 9984 EXPECT_EQ(ERR_IO_PENDING, rv);
9985 9985
9986 url::SchemeHostPort test_server("http", "www.example.org", 80); 9986 url::SchemeHostPort test_server("http", "www.example.org", 80);
9987 HttpServerProperties& http_server_properties = 9987 HttpServerProperties* http_server_properties =
9988 *session->http_server_properties(); 9988 session->http_server_properties();
9989 AlternativeServiceVector alternative_service_vector = 9989 AlternativeServiceVector alternative_service_vector =
9990 http_server_properties.GetAlternativeServices(test_server); 9990 http_server_properties->GetAlternativeServices(test_server);
9991 EXPECT_TRUE(alternative_service_vector.empty()); 9991 EXPECT_TRUE(alternative_service_vector.empty());
9992 9992
9993 EXPECT_EQ(OK, callback.WaitForResult()); 9993 EXPECT_EQ(OK, callback.WaitForResult());
9994 9994
9995 const HttpResponseInfo* response = trans->GetResponseInfo(); 9995 const HttpResponseInfo* response = trans->GetResponseInfo();
9996 ASSERT_TRUE(response); 9996 ASSERT_TRUE(response);
9997 ASSERT_TRUE(response->headers); 9997 ASSERT_TRUE(response->headers);
9998 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); 9998 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine());
9999 EXPECT_FALSE(response->was_fetched_via_spdy); 9999 EXPECT_FALSE(response->was_fetched_via_spdy);
10000 EXPECT_FALSE(response->was_npn_negotiated); 10000 EXPECT_FALSE(response->was_npn_negotiated);
10001 10001
10002 std::string response_data; 10002 std::string response_data;
10003 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data)); 10003 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data));
10004 EXPECT_EQ("hello world", response_data); 10004 EXPECT_EQ("hello world", response_data);
10005 10005
10006 alternative_service_vector = 10006 alternative_service_vector =
10007 http_server_properties.GetAlternativeServices(test_server); 10007 http_server_properties->GetAlternativeServices(test_server);
10008 ASSERT_EQ(1u, alternative_service_vector.size()); 10008 ASSERT_EQ(1u, alternative_service_vector.size());
10009 EXPECT_EQ(AlternateProtocolFromNextProto(GetProtocol()), 10009 EXPECT_EQ(AlternateProtocolFromNextProto(GetProtocol()),
10010 alternative_service_vector[0].protocol); 10010 alternative_service_vector[0].protocol);
10011 EXPECT_EQ("www.example.org", alternative_service_vector[0].host); 10011 EXPECT_EQ("www.example.org", alternative_service_vector[0].host);
10012 EXPECT_EQ(443, alternative_service_vector[0].port); 10012 EXPECT_EQ(443, alternative_service_vector[0].port);
10013 } 10013 }
10014 10014
10015 // Regression test for https://crbug.com/615497. 10015 // Regression test for https://crbug.com/615497.
10016 TEST_P(HttpNetworkTransactionTest, 10016 TEST_P(HttpNetworkTransactionTest,
10017 DoNotParseAlternativeServiceHeaderOnInsecureRequest) { 10017 DoNotParseAlternativeServiceHeaderOnInsecureRequest) {
(...skipping 18 matching lines...) Expand all
10036 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); 10036 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0);
10037 session_deps_.socket_factory->AddSocketDataProvider(&data); 10037 session_deps_.socket_factory->AddSocketDataProvider(&data);
10038 10038
10039 TestCompletionCallback callback; 10039 TestCompletionCallback callback;
10040 10040
10041 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 10041 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
10042 std::unique_ptr<HttpTransaction> trans( 10042 std::unique_ptr<HttpTransaction> trans(
10043 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); 10043 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
10044 10044
10045 url::SchemeHostPort test_server(request.url); 10045 url::SchemeHostPort test_server(request.url);
10046 HttpServerProperties& http_server_properties = 10046 HttpServerProperties* http_server_properties =
10047 *session->http_server_properties(); 10047 session->http_server_properties();
10048 AlternativeServiceVector alternative_service_vector = 10048 AlternativeServiceVector alternative_service_vector =
10049 http_server_properties.GetAlternativeServices(test_server); 10049 http_server_properties->GetAlternativeServices(test_server);
10050 EXPECT_TRUE(alternative_service_vector.empty()); 10050 EXPECT_TRUE(alternative_service_vector.empty());
10051 10051
10052 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); 10052 int rv = trans->Start(&request, callback.callback(), BoundNetLog());
10053 EXPECT_EQ(ERR_IO_PENDING, rv); 10053 EXPECT_EQ(ERR_IO_PENDING, rv);
10054 EXPECT_EQ(OK, callback.WaitForResult()); 10054 EXPECT_EQ(OK, callback.WaitForResult());
10055 10055
10056 const HttpResponseInfo* response = trans->GetResponseInfo(); 10056 const HttpResponseInfo* response = trans->GetResponseInfo();
10057 ASSERT_TRUE(response); 10057 ASSERT_TRUE(response);
10058 ASSERT_TRUE(response->headers); 10058 ASSERT_TRUE(response->headers);
10059 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); 10059 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine());
10060 EXPECT_FALSE(response->was_fetched_via_spdy); 10060 EXPECT_FALSE(response->was_fetched_via_spdy);
10061 EXPECT_FALSE(response->was_npn_negotiated); 10061 EXPECT_FALSE(response->was_npn_negotiated);
10062 10062
10063 std::string response_data; 10063 std::string response_data;
10064 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data)); 10064 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data));
10065 EXPECT_EQ("hello world", response_data); 10065 EXPECT_EQ("hello world", response_data);
10066 10066
10067 alternative_service_vector = 10067 alternative_service_vector =
10068 http_server_properties.GetAlternativeServices(test_server); 10068 http_server_properties->GetAlternativeServices(test_server);
10069 EXPECT_TRUE(alternative_service_vector.empty()); 10069 EXPECT_TRUE(alternative_service_vector.empty());
10070 } 10070 }
10071 10071
10072 // HTTP/2 Alternative Services should be disabled if alternative service 10072 // HTTP/2 Alternative Services should be disabled if alternative service
10073 // hostname is different from that of origin. 10073 // hostname is different from that of origin.
10074 // TODO(bnc): Remove when https://crbug.com/615413 is fixed. 10074 // TODO(bnc): Remove when https://crbug.com/615413 is fixed.
10075 TEST_P(HttpNetworkTransactionTest, 10075 TEST_P(HttpNetworkTransactionTest,
10076 DisableHTTP2AlternativeServicesWithDifferentHost) { 10076 DisableHTTP2AlternativeServicesWithDifferentHost) {
10077 session_deps_.enable_alternative_service_with_different_host = true; 10077 session_deps_.enable_alternative_service_with_different_host = true;
10078 10078
(...skipping 10 matching lines...) Expand all
10089 MockRead data_reads[] = { 10089 MockRead data_reads[] = {
10090 MockRead("HTTP/1.1 200 OK\r\n\r\n"), MockRead("hello world"), 10090 MockRead("HTTP/1.1 200 OK\r\n\r\n"), MockRead("hello world"),
10091 MockRead(ASYNC, OK), 10091 MockRead(ASYNC, OK),
10092 }; 10092 };
10093 StaticSocketDataProvider second_data(data_reads, arraysize(data_reads), NULL, 10093 StaticSocketDataProvider second_data(data_reads, arraysize(data_reads), NULL,
10094 0); 10094 0);
10095 session_deps_.socket_factory->AddSocketDataProvider(&second_data); 10095 session_deps_.socket_factory->AddSocketDataProvider(&second_data);
10096 10096
10097 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 10097 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
10098 10098
10099 base::WeakPtr<HttpServerProperties> http_server_properties = 10099 HttpServerProperties* http_server_properties =
10100 session->http_server_properties(); 10100 session->http_server_properties();
10101 AlternativeService alternative_service( 10101 AlternativeService alternative_service(
10102 AlternateProtocolFromNextProto(GetProtocol()), "different.example.org", 10102 AlternateProtocolFromNextProto(GetProtocol()), "different.example.org",
10103 444); 10103 444);
10104 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 10104 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
10105 http_server_properties->SetAlternativeService( 10105 http_server_properties->SetAlternativeService(
10106 url::SchemeHostPort(request.url), alternative_service, expiration); 10106 url::SchemeHostPort(request.url), alternative_service, expiration);
10107 10107
10108 std::unique_ptr<HttpTransaction> trans( 10108 std::unique_ptr<HttpTransaction> trans(
10109 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); 10109 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
(...skipping 23 matching lines...) Expand all
10133 MockRead data_reads[] = { 10133 MockRead data_reads[] = {
10134 MockRead("HTTP/1.1 200 OK\r\n\r\n"), MockRead("hello world"), 10134 MockRead("HTTP/1.1 200 OK\r\n\r\n"), MockRead("hello world"),
10135 MockRead(ASYNC, OK), 10135 MockRead(ASYNC, OK),
10136 }; 10136 };
10137 StaticSocketDataProvider second_data(data_reads, arraysize(data_reads), NULL, 10137 StaticSocketDataProvider second_data(data_reads, arraysize(data_reads), NULL,
10138 0); 10138 0);
10139 session_deps_.socket_factory->AddSocketDataProvider(&second_data); 10139 session_deps_.socket_factory->AddSocketDataProvider(&second_data);
10140 10140
10141 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 10141 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
10142 10142
10143 base::WeakPtr<HttpServerProperties> http_server_properties = 10143 HttpServerProperties* http_server_properties =
10144 session->http_server_properties(); 10144 session->http_server_properties();
10145 AlternativeService alternative_service( 10145 AlternativeService alternative_service(
10146 AlternateProtocolFromNextProto(GetProtocol()), "", 444); 10146 AlternateProtocolFromNextProto(GetProtocol()), "", 444);
10147 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 10147 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
10148 http_server_properties->SetAlternativeService( 10148 http_server_properties->SetAlternativeService(
10149 url::SchemeHostPort(request.url), alternative_service, expiration); 10149 url::SchemeHostPort(request.url), alternative_service, expiration);
10150 10150
10151 std::unique_ptr<HttpTransaction> trans( 10151 std::unique_ptr<HttpTransaction> trans(
10152 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); 10152 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
10153 TestCompletionCallback callback; 10153 TestCompletionCallback callback;
10154 10154
10155 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); 10155 int rv = trans->Start(&request, callback.callback(), BoundNetLog());
10156 // Alternative service is not used, request fails. 10156 // Alternative service is not used, request fails.
10157 EXPECT_EQ(ERR_CONNECTION_REFUSED, callback.GetResult(rv)); 10157 EXPECT_EQ(ERR_CONNECTION_REFUSED, callback.GetResult(rv));
10158 } 10158 }
10159 10159
10160 TEST_P(HttpNetworkTransactionTest, ClearAlternativeServices) { 10160 TEST_P(HttpNetworkTransactionTest, ClearAlternativeServices) {
10161 session_deps_.enable_alternative_service_with_different_host = false; 10161 session_deps_.enable_alternative_service_with_different_host = false;
10162 10162
10163 // Set an alternative service for origin. 10163 // Set an alternative service for origin.
10164 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 10164 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
10165 HttpServerProperties& http_server_properties = 10165 HttpServerProperties* http_server_properties =
10166 *session->http_server_properties(); 10166 session->http_server_properties();
10167 url::SchemeHostPort test_server("http", "www.example.org", 80); 10167 url::SchemeHostPort test_server("http", "www.example.org", 80);
10168 AlternativeService alternative_service(QUIC, "", 80); 10168 AlternativeService alternative_service(QUIC, "", 80);
10169 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 10169 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
10170 http_server_properties.SetAlternativeService(test_server, alternative_service, 10170 http_server_properties->SetAlternativeService(
10171 expiration); 10171 test_server, alternative_service, expiration);
10172 AlternativeServiceVector alternative_service_vector = 10172 AlternativeServiceVector alternative_service_vector =
10173 http_server_properties.GetAlternativeServices(test_server); 10173 http_server_properties->GetAlternativeServices(test_server);
10174 EXPECT_EQ(1u, alternative_service_vector.size()); 10174 EXPECT_EQ(1u, alternative_service_vector.size());
10175 10175
10176 // Send a clear header. 10176 // Send a clear header.
10177 MockRead data_reads[] = { 10177 MockRead data_reads[] = {
10178 MockRead("HTTP/1.1 200 OK\r\n"), 10178 MockRead("HTTP/1.1 200 OK\r\n"),
10179 MockRead("Alt-Svc: clear\r\n"), 10179 MockRead("Alt-Svc: clear\r\n"),
10180 MockRead("\r\n"), 10180 MockRead("\r\n"),
10181 MockRead("hello world"), 10181 MockRead("hello world"),
10182 MockRead(SYNCHRONOUS, OK), 10182 MockRead(SYNCHRONOUS, OK),
10183 }; 10183 };
(...skipping 18 matching lines...) Expand all
10202 ASSERT_TRUE(response->headers); 10202 ASSERT_TRUE(response->headers);
10203 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); 10203 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine());
10204 EXPECT_FALSE(response->was_fetched_via_spdy); 10204 EXPECT_FALSE(response->was_fetched_via_spdy);
10205 EXPECT_FALSE(response->was_npn_negotiated); 10205 EXPECT_FALSE(response->was_npn_negotiated);
10206 10206
10207 std::string response_data; 10207 std::string response_data;
10208 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data)); 10208 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data));
10209 EXPECT_EQ("hello world", response_data); 10209 EXPECT_EQ("hello world", response_data);
10210 10210
10211 alternative_service_vector = 10211 alternative_service_vector =
10212 http_server_properties.GetAlternativeServices(test_server); 10212 http_server_properties->GetAlternativeServices(test_server);
10213 EXPECT_TRUE(alternative_service_vector.empty()); 10213 EXPECT_TRUE(alternative_service_vector.empty());
10214 } 10214 }
10215 10215
10216 TEST_P(HttpNetworkTransactionTest, HonorMultipleAlternativeServiceHeader) { 10216 TEST_P(HttpNetworkTransactionTest, HonorMultipleAlternativeServiceHeader) {
10217 session_deps_.enable_alternative_service_with_different_host = false; 10217 session_deps_.enable_alternative_service_with_different_host = false;
10218 10218
10219 MockRead data_reads[] = { 10219 MockRead data_reads[] = {
10220 MockRead("HTTP/1.1 200 OK\r\n"), 10220 MockRead("HTTP/1.1 200 OK\r\n"),
10221 MockRead("Alt-Svc: "), 10221 MockRead("Alt-Svc: "),
10222 MockRead(GetAlternateProtocolFromParam()), 10222 MockRead(GetAlternateProtocolFromParam()),
(...skipping 16 matching lines...) Expand all
10239 TestCompletionCallback callback; 10239 TestCompletionCallback callback;
10240 10240
10241 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 10241 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
10242 std::unique_ptr<HttpTransaction> trans( 10242 std::unique_ptr<HttpTransaction> trans(
10243 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); 10243 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
10244 10244
10245 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); 10245 int rv = trans->Start(&request, callback.callback(), BoundNetLog());
10246 EXPECT_EQ(ERR_IO_PENDING, rv); 10246 EXPECT_EQ(ERR_IO_PENDING, rv);
10247 10247
10248 url::SchemeHostPort test_server("http", "www.example.org", 80); 10248 url::SchemeHostPort test_server("http", "www.example.org", 80);
10249 HttpServerProperties& http_server_properties = 10249 HttpServerProperties* http_server_properties =
10250 *session->http_server_properties(); 10250 session->http_server_properties();
10251 AlternativeServiceVector alternative_service_vector = 10251 AlternativeServiceVector alternative_service_vector =
10252 http_server_properties.GetAlternativeServices(test_server); 10252 http_server_properties->GetAlternativeServices(test_server);
10253 EXPECT_TRUE(alternative_service_vector.empty()); 10253 EXPECT_TRUE(alternative_service_vector.empty());
10254 10254
10255 EXPECT_EQ(OK, callback.WaitForResult()); 10255 EXPECT_EQ(OK, callback.WaitForResult());
10256 10256
10257 const HttpResponseInfo* response = trans->GetResponseInfo(); 10257 const HttpResponseInfo* response = trans->GetResponseInfo();
10258 ASSERT_TRUE(response); 10258 ASSERT_TRUE(response);
10259 ASSERT_TRUE(response->headers); 10259 ASSERT_TRUE(response->headers);
10260 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); 10260 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine());
10261 EXPECT_FALSE(response->was_fetched_via_spdy); 10261 EXPECT_FALSE(response->was_fetched_via_spdy);
10262 EXPECT_FALSE(response->was_npn_negotiated); 10262 EXPECT_FALSE(response->was_npn_negotiated);
10263 10263
10264 std::string response_data; 10264 std::string response_data;
10265 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data)); 10265 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data));
10266 EXPECT_EQ("hello world", response_data); 10266 EXPECT_EQ("hello world", response_data);
10267 10267
10268 alternative_service_vector = 10268 alternative_service_vector =
10269 http_server_properties.GetAlternativeServices(test_server); 10269 http_server_properties->GetAlternativeServices(test_server);
10270 ASSERT_EQ(2u, alternative_service_vector.size()); 10270 ASSERT_EQ(2u, alternative_service_vector.size());
10271 EXPECT_EQ(AlternateProtocolFromNextProto(GetProtocol()), 10271 EXPECT_EQ(AlternateProtocolFromNextProto(GetProtocol()),
10272 alternative_service_vector[0].protocol); 10272 alternative_service_vector[0].protocol);
10273 EXPECT_EQ("www.example.com", alternative_service_vector[0].host); 10273 EXPECT_EQ("www.example.com", alternative_service_vector[0].host);
10274 EXPECT_EQ(443, alternative_service_vector[0].port); 10274 EXPECT_EQ(443, alternative_service_vector[0].port);
10275 EXPECT_EQ(AlternateProtocolFromNextProto(GetProtocol()), 10275 EXPECT_EQ(AlternateProtocolFromNextProto(GetProtocol()),
10276 alternative_service_vector[1].protocol); 10276 alternative_service_vector[1].protocol);
10277 EXPECT_EQ("www.example.org", alternative_service_vector[1].host); 10277 EXPECT_EQ("www.example.org", alternative_service_vector[1].host);
10278 EXPECT_EQ(1234, alternative_service_vector[1].port); 10278 EXPECT_EQ(1234, alternative_service_vector[1].port);
10279 } 10279 }
(...skipping 16 matching lines...) Expand all
10296 MockRead data_reads[] = { 10296 MockRead data_reads[] = {
10297 MockRead("HTTP/1.1 200 OK\r\n\r\n"), MockRead("hello world"), 10297 MockRead("HTTP/1.1 200 OK\r\n\r\n"), MockRead("hello world"),
10298 MockRead(ASYNC, OK), 10298 MockRead(ASYNC, OK),
10299 }; 10299 };
10300 StaticSocketDataProvider second_data(data_reads, arraysize(data_reads), 10300 StaticSocketDataProvider second_data(data_reads, arraysize(data_reads),
10301 nullptr, 0); 10301 nullptr, 0);
10302 session_deps_.socket_factory->AddSocketDataProvider(&second_data); 10302 session_deps_.socket_factory->AddSocketDataProvider(&second_data);
10303 10303
10304 std::unique_ptr<HttpNetworkSession> session = CreateSession(&session_deps_); 10304 std::unique_ptr<HttpNetworkSession> session = CreateSession(&session_deps_);
10305 10305
10306 base::WeakPtr<HttpServerProperties> http_server_properties = 10306 HttpServerProperties* http_server_properties =
10307 session->http_server_properties(); 10307 session->http_server_properties();
10308 AlternativeService alternative_service( 10308 AlternativeService alternative_service(
10309 AlternateProtocolFromNextProto(GetProtocol()), "different.example.org", 10309 AlternateProtocolFromNextProto(GetProtocol()), "different.example.org",
10310 80); 10310 80);
10311 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 10311 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
10312 http_server_properties->SetAlternativeService( 10312 http_server_properties->SetAlternativeService(
10313 url::SchemeHostPort(request.url), alternative_service, expiration); 10313 url::SchemeHostPort(request.url), alternative_service, expiration);
10314 10314
10315 std::unique_ptr<HttpTransaction> trans( 10315 std::unique_ptr<HttpTransaction> trans(
10316 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); 10316 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
10351 http_writes, arraysize(http_writes)); 10351 http_writes, arraysize(http_writes));
10352 session_deps_.socket_factory->AddSocketDataProvider(&http_data); 10352 session_deps_.socket_factory->AddSocketDataProvider(&http_data);
10353 10353
10354 StaticSocketDataProvider data_refused; 10354 StaticSocketDataProvider data_refused;
10355 data_refused.set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_REFUSED)); 10355 data_refused.set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_REFUSED));
10356 session_deps_.socket_factory->AddSocketDataProvider(&data_refused); 10356 session_deps_.socket_factory->AddSocketDataProvider(&data_refused);
10357 10357
10358 // Set up a QUIC alternative service for server. 10358 // Set up a QUIC alternative service for server.
10359 session_deps_.enable_alternative_service_with_different_host = false; 10359 session_deps_.enable_alternative_service_with_different_host = false;
10360 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 10360 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
10361 base::WeakPtr<HttpServerProperties> http_server_properties = 10361 HttpServerProperties* http_server_properties =
10362 session->http_server_properties(); 10362 session->http_server_properties();
10363 AlternativeService alternative_service(QUIC, alternative); 10363 AlternativeService alternative_service(QUIC, alternative);
10364 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 10364 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
10365 http_server_properties->SetAlternativeService(server, alternative_service, 10365 http_server_properties->SetAlternativeService(server, alternative_service,
10366 expiration); 10366 expiration);
10367 // Mark the QUIC alternative service as broken. 10367 // Mark the QUIC alternative service as broken.
10368 http_server_properties->MarkAlternativeServiceBroken(alternative_service); 10368 http_server_properties->MarkAlternativeServiceBroken(alternative_service);
10369 10369
10370 std::unique_ptr<HttpTransaction> trans( 10370 std::unique_ptr<HttpTransaction> trans(
10371 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); 10371 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
10411 StaticSocketDataProvider http_data(http_reads, arraysize(http_reads), 10411 StaticSocketDataProvider http_data(http_reads, arraysize(http_reads),
10412 http_writes, arraysize(http_writes)); 10412 http_writes, arraysize(http_writes));
10413 session_deps_.socket_factory->AddSocketDataProvider(&http_data); 10413 session_deps_.socket_factory->AddSocketDataProvider(&http_data);
10414 10414
10415 StaticSocketDataProvider data_refused; 10415 StaticSocketDataProvider data_refused;
10416 data_refused.set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_REFUSED)); 10416 data_refused.set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_REFUSED));
10417 session_deps_.socket_factory->AddSocketDataProvider(&data_refused); 10417 session_deps_.socket_factory->AddSocketDataProvider(&data_refused);
10418 10418
10419 session_deps_.enable_alternative_service_with_different_host = true; 10419 session_deps_.enable_alternative_service_with_different_host = true;
10420 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 10420 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
10421 base::WeakPtr<HttpServerProperties> http_server_properties = 10421 HttpServerProperties* http_server_properties =
10422 session->http_server_properties(); 10422 session->http_server_properties();
10423 10423
10424 // Set up two QUIC alternative services for server. 10424 // Set up two QUIC alternative services for server.
10425 AlternativeServiceInfoVector alternative_service_info_vector; 10425 AlternativeServiceInfoVector alternative_service_info_vector;
10426 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 10426 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
10427 10427
10428 AlternativeService alternative_service1(QUIC, alternative1); 10428 AlternativeService alternative_service1(QUIC, alternative1);
10429 AlternativeServiceInfo alternative_service_info1(alternative_service1, 10429 AlternativeServiceInfo alternative_service_info1(alternative_service1,
10430 expiration); 10430 expiration);
10431 alternative_service_info_vector.push_back(alternative_service_info1); 10431 alternative_service_info_vector.push_back(alternative_service_info1);
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
10476 MockRead("HTTP/1.1 200 OK\r\n\r\n"), 10476 MockRead("HTTP/1.1 200 OK\r\n\r\n"),
10477 MockRead("hello world"), 10477 MockRead("hello world"),
10478 MockRead(ASYNC, OK), 10478 MockRead(ASYNC, OK),
10479 }; 10479 };
10480 StaticSocketDataProvider second_data( 10480 StaticSocketDataProvider second_data(
10481 data_reads, arraysize(data_reads), NULL, 0); 10481 data_reads, arraysize(data_reads), NULL, 0);
10482 session_deps_.socket_factory->AddSocketDataProvider(&second_data); 10482 session_deps_.socket_factory->AddSocketDataProvider(&second_data);
10483 10483
10484 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 10484 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
10485 10485
10486 base::WeakPtr<HttpServerProperties> http_server_properties = 10486 HttpServerProperties* http_server_properties =
10487 session->http_server_properties(); 10487 session->http_server_properties();
10488 const url::SchemeHostPort server(request.url); 10488 const url::SchemeHostPort server(request.url);
10489 // Port must be < 1024, or the header will be ignored (since initial port was 10489 // Port must be < 1024, or the header will be ignored (since initial port was
10490 // port 80 (another restricted port). 10490 // port 80 (another restricted port).
10491 const AlternativeService alternative_service( 10491 const AlternativeService alternative_service(
10492 AlternateProtocolFromNextProto(GetProtocol()), "www.example.org", 10492 AlternateProtocolFromNextProto(GetProtocol()), "www.example.org",
10493 666); // Port is ignored by MockConnect anyway. 10493 666); // Port is ignored by MockConnect anyway.
10494 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 10494 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
10495 http_server_properties->SetAlternativeService(server, alternative_service, 10495 http_server_properties->SetAlternativeService(server, alternative_service,
10496 expiration); 10496 expiration);
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
10542 MockRead("HTTP/1.1 200 OK\r\n\r\n"), 10542 MockRead("HTTP/1.1 200 OK\r\n\r\n"),
10543 MockRead("hello world"), 10543 MockRead("hello world"),
10544 MockRead(ASYNC, OK), 10544 MockRead(ASYNC, OK),
10545 }; 10545 };
10546 StaticSocketDataProvider second_data( 10546 StaticSocketDataProvider second_data(
10547 data_reads, arraysize(data_reads), NULL, 0); 10547 data_reads, arraysize(data_reads), NULL, 0);
10548 session_deps_.socket_factory->AddSocketDataProvider(&second_data); 10548 session_deps_.socket_factory->AddSocketDataProvider(&second_data);
10549 10549
10550 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 10550 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
10551 10551
10552 base::WeakPtr<HttpServerProperties> http_server_properties = 10552 HttpServerProperties* http_server_properties =
10553 session->http_server_properties(); 10553 session->http_server_properties();
10554 const int kUnrestrictedAlternatePort = 1024; 10554 const int kUnrestrictedAlternatePort = 1024;
10555 AlternativeService alternative_service( 10555 AlternativeService alternative_service(
10556 AlternateProtocolFromNextProto(GetProtocol()), "www.example.org", 10556 AlternateProtocolFromNextProto(GetProtocol()), "www.example.org",
10557 kUnrestrictedAlternatePort); 10557 kUnrestrictedAlternatePort);
10558 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 10558 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
10559 http_server_properties->SetAlternativeService( 10559 http_server_properties->SetAlternativeService(
10560 url::SchemeHostPort(restricted_port_request.url), alternative_service, 10560 url::SchemeHostPort(restricted_port_request.url), alternative_service,
10561 expiration); 10561 expiration);
10562 10562
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
10594 MockRead("HTTP/1.1 200 OK\r\n\r\n"), 10594 MockRead("HTTP/1.1 200 OK\r\n\r\n"),
10595 MockRead("hello world"), 10595 MockRead("hello world"),
10596 MockRead(ASYNC, OK), 10596 MockRead(ASYNC, OK),
10597 }; 10597 };
10598 StaticSocketDataProvider second_data( 10598 StaticSocketDataProvider second_data(
10599 data_reads, arraysize(data_reads), NULL, 0); 10599 data_reads, arraysize(data_reads), NULL, 0);
10600 session_deps_.socket_factory->AddSocketDataProvider(&second_data); 10600 session_deps_.socket_factory->AddSocketDataProvider(&second_data);
10601 10601
10602 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 10602 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
10603 10603
10604 base::WeakPtr<HttpServerProperties> http_server_properties = 10604 HttpServerProperties* http_server_properties =
10605 session->http_server_properties(); 10605 session->http_server_properties();
10606 const int kUnrestrictedAlternatePort = 1024; 10606 const int kUnrestrictedAlternatePort = 1024;
10607 AlternativeService alternative_service( 10607 AlternativeService alternative_service(
10608 AlternateProtocolFromNextProto(GetProtocol()), "www.example.org", 10608 AlternateProtocolFromNextProto(GetProtocol()), "www.example.org",
10609 kUnrestrictedAlternatePort); 10609 kUnrestrictedAlternatePort);
10610 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 10610 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
10611 http_server_properties->SetAlternativeService( 10611 http_server_properties->SetAlternativeService(
10612 url::SchemeHostPort(restricted_port_request.url), alternative_service, 10612 url::SchemeHostPort(restricted_port_request.url), alternative_service,
10613 expiration); 10613 expiration);
10614 10614
(...skipping 30 matching lines...) Expand all
10645 MockRead("HTTP/1.1 200 OK\r\n\r\n"), 10645 MockRead("HTTP/1.1 200 OK\r\n\r\n"),
10646 MockRead("hello world"), 10646 MockRead("hello world"),
10647 MockRead(ASYNC, OK), 10647 MockRead(ASYNC, OK),
10648 }; 10648 };
10649 StaticSocketDataProvider second_data( 10649 StaticSocketDataProvider second_data(
10650 data_reads, arraysize(data_reads), NULL, 0); 10650 data_reads, arraysize(data_reads), NULL, 0);
10651 session_deps_.socket_factory->AddSocketDataProvider(&second_data); 10651 session_deps_.socket_factory->AddSocketDataProvider(&second_data);
10652 10652
10653 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 10653 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
10654 10654
10655 base::WeakPtr<HttpServerProperties> http_server_properties = 10655 HttpServerProperties* http_server_properties =
10656 session->http_server_properties(); 10656 session->http_server_properties();
10657 const int kRestrictedAlternatePort = 80; 10657 const int kRestrictedAlternatePort = 80;
10658 AlternativeService alternative_service( 10658 AlternativeService alternative_service(
10659 AlternateProtocolFromNextProto(GetProtocol()), "www.example.org", 10659 AlternateProtocolFromNextProto(GetProtocol()), "www.example.org",
10660 kRestrictedAlternatePort); 10660 kRestrictedAlternatePort);
10661 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 10661 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
10662 http_server_properties->SetAlternativeService( 10662 http_server_properties->SetAlternativeService(
10663 url::SchemeHostPort(restricted_port_request.url), alternative_service, 10663 url::SchemeHostPort(restricted_port_request.url), alternative_service,
10664 expiration); 10664 expiration);
10665 10665
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
10697 MockRead("HTTP/1.1 200 OK\r\n\r\n"), 10697 MockRead("HTTP/1.1 200 OK\r\n\r\n"),
10698 MockRead("hello world"), 10698 MockRead("hello world"),
10699 MockRead(ASYNC, OK), 10699 MockRead(ASYNC, OK),
10700 }; 10700 };
10701 StaticSocketDataProvider second_data( 10701 StaticSocketDataProvider second_data(
10702 data_reads, arraysize(data_reads), NULL, 0); 10702 data_reads, arraysize(data_reads), NULL, 0);
10703 session_deps_.socket_factory->AddSocketDataProvider(&second_data); 10703 session_deps_.socket_factory->AddSocketDataProvider(&second_data);
10704 10704
10705 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 10705 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
10706 10706
10707 base::WeakPtr<HttpServerProperties> http_server_properties = 10707 HttpServerProperties* http_server_properties =
10708 session->http_server_properties(); 10708 session->http_server_properties();
10709 const int kRestrictedAlternatePort = 80; 10709 const int kRestrictedAlternatePort = 80;
10710 AlternativeService alternative_service( 10710 AlternativeService alternative_service(
10711 AlternateProtocolFromNextProto(GetProtocol()), "www.example.org", 10711 AlternateProtocolFromNextProto(GetProtocol()), "www.example.org",
10712 kRestrictedAlternatePort); 10712 kRestrictedAlternatePort);
10713 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 10713 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
10714 http_server_properties->SetAlternativeService( 10714 http_server_properties->SetAlternativeService(
10715 url::SchemeHostPort(unrestricted_port_request.url), alternative_service, 10715 url::SchemeHostPort(unrestricted_port_request.url), alternative_service,
10716 expiration); 10716 expiration);
10717 10717
(...skipping 30 matching lines...) Expand all
10748 MockRead("HTTP/1.1 200 OK\r\n\r\n"), 10748 MockRead("HTTP/1.1 200 OK\r\n\r\n"),
10749 MockRead("hello world"), 10749 MockRead("hello world"),
10750 MockRead(ASYNC, OK), 10750 MockRead(ASYNC, OK),
10751 }; 10751 };
10752 StaticSocketDataProvider second_data( 10752 StaticSocketDataProvider second_data(
10753 data_reads, arraysize(data_reads), NULL, 0); 10753 data_reads, arraysize(data_reads), NULL, 0);
10754 session_deps_.socket_factory->AddSocketDataProvider(&second_data); 10754 session_deps_.socket_factory->AddSocketDataProvider(&second_data);
10755 10755
10756 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 10756 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
10757 10757
10758 base::WeakPtr<HttpServerProperties> http_server_properties = 10758 HttpServerProperties* http_server_properties =
10759 session->http_server_properties(); 10759 session->http_server_properties();
10760 const int kUnrestrictedAlternatePort = 1025; 10760 const int kUnrestrictedAlternatePort = 1025;
10761 AlternativeService alternative_service( 10761 AlternativeService alternative_service(
10762 AlternateProtocolFromNextProto(GetProtocol()), "www.example.org", 10762 AlternateProtocolFromNextProto(GetProtocol()), "www.example.org",
10763 kUnrestrictedAlternatePort); 10763 kUnrestrictedAlternatePort);
10764 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 10764 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
10765 http_server_properties->SetAlternativeService( 10765 http_server_properties->SetAlternativeService(
10766 url::SchemeHostPort(unrestricted_port_request.url), alternative_service, 10766 url::SchemeHostPort(unrestricted_port_request.url), alternative_service,
10767 expiration); 10767 expiration);
10768 10768
(...skipping 25 matching lines...) Expand all
10794 MockRead("HTTP/1.1 200 OK\r\n\r\n"), 10794 MockRead("HTTP/1.1 200 OK\r\n\r\n"),
10795 MockRead("hello world"), 10795 MockRead("hello world"),
10796 MockRead(ASYNC, OK), 10796 MockRead(ASYNC, OK),
10797 }; 10797 };
10798 StaticSocketDataProvider data( 10798 StaticSocketDataProvider data(
10799 data_reads, arraysize(data_reads), NULL, 0); 10799 data_reads, arraysize(data_reads), NULL, 0);
10800 session_deps_.socket_factory->AddSocketDataProvider(&data); 10800 session_deps_.socket_factory->AddSocketDataProvider(&data);
10801 10801
10802 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 10802 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
10803 10803
10804 base::WeakPtr<HttpServerProperties> http_server_properties = 10804 HttpServerProperties* http_server_properties =
10805 session->http_server_properties(); 10805 session->http_server_properties();
10806 const int kUnsafePort = 7; 10806 const int kUnsafePort = 7;
10807 AlternativeService alternative_service( 10807 AlternativeService alternative_service(
10808 AlternateProtocolFromNextProto(GetProtocol()), "www.example.org", 10808 AlternateProtocolFromNextProto(GetProtocol()), "www.example.org",
10809 kUnsafePort); 10809 kUnsafePort);
10810 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 10810 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
10811 http_server_properties->SetAlternativeService( 10811 http_server_properties->SetAlternativeService(
10812 url::SchemeHostPort(request.url), alternative_service, expiration); 10812 url::SchemeHostPort(request.url), alternative_service, expiration);
10813 10813
10814 std::unique_ptr<HttpTransaction> trans( 10814 std::unique_ptr<HttpTransaction> trans(
(...skipping 2719 matching lines...) Expand 10 before | Expand all | Expand 10 after
13534 session_deps_.socket_factory->AddSocketDataProvider(&data); 13534 session_deps_.socket_factory->AddSocketDataProvider(&data);
13535 13535
13536 // Connection to the server fails. 13536 // Connection to the server fails.
13537 MockConnect mock_connect(ASYNC, ERR_CONNECTION_REFUSED); 13537 MockConnect mock_connect(ASYNC, ERR_CONNECTION_REFUSED);
13538 StaticSocketDataProvider data_refused; 13538 StaticSocketDataProvider data_refused;
13539 data_refused.set_connect_data(mock_connect); 13539 data_refused.set_connect_data(mock_connect);
13540 session_deps_.socket_factory->AddSocketDataProvider(&data_refused); 13540 session_deps_.socket_factory->AddSocketDataProvider(&data_refused);
13541 13541
13542 session_deps_.enable_alternative_service_with_different_host = true; 13542 session_deps_.enable_alternative_service_with_different_host = true;
13543 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 13543 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
13544 base::WeakPtr<HttpServerProperties> http_server_properties = 13544 HttpServerProperties* http_server_properties =
13545 session->http_server_properties(); 13545 session->http_server_properties();
13546 AlternativeService alternative_service( 13546 AlternativeService alternative_service(
13547 AlternateProtocolFromNextProto(GetProtocol()), alternative); 13547 AlternateProtocolFromNextProto(GetProtocol()), alternative);
13548 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 13548 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
13549 http_server_properties->SetAlternativeService(server, alternative_service, 13549 http_server_properties->SetAlternativeService(server, alternative_service,
13550 expiration); 13550 expiration);
13551 13551
13552 // First request to alternative. 13552 // First request to alternative.
13553 if (pooling) { 13553 if (pooling) {
13554 std::unique_ptr<HttpTransaction> trans0( 13554 std::unique_ptr<HttpTransaction> trans0(
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
13639 // This test documents that an alternate Job should not be used if HTTP/1.1 is 13639 // This test documents that an alternate Job should not be used if HTTP/1.1 is
13640 // negotiated. In order to test this, a failed connection to the server is 13640 // negotiated. In order to test this, a failed connection to the server is
13641 // mocked. This way the request relies on the alternate Job. 13641 // mocked. This way the request relies on the alternate Job.
13642 StaticSocketDataProvider data_refused; 13642 StaticSocketDataProvider data_refused;
13643 data_refused.set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_REFUSED)); 13643 data_refused.set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_REFUSED));
13644 session_deps_.socket_factory->AddSocketDataProvider(&data_refused); 13644 session_deps_.socket_factory->AddSocketDataProvider(&data_refused);
13645 13645
13646 // Set up alternative service for server. 13646 // Set up alternative service for server.
13647 session_deps_.enable_alternative_service_with_different_host = true; 13647 session_deps_.enable_alternative_service_with_different_host = true;
13648 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 13648 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
13649 base::WeakPtr<HttpServerProperties> http_server_properties = 13649 HttpServerProperties* http_server_properties =
13650 session->http_server_properties(); 13650 session->http_server_properties();
13651 AlternativeService alternative_service( 13651 AlternativeService alternative_service(
13652 AlternateProtocolFromNextProto(GetProtocol()), alternative); 13652 AlternateProtocolFromNextProto(GetProtocol()), alternative);
13653 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 13653 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
13654 http_server_properties->SetAlternativeService(server, alternative_service, 13654 http_server_properties->SetAlternativeService(server, alternative_service,
13655 expiration); 13655 expiration);
13656 13656
13657 std::unique_ptr<HttpTransaction> trans( 13657 std::unique_ptr<HttpTransaction> trans(
13658 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); 13658 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
13659 HttpRequestInfo request; 13659 HttpRequestInfo request;
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
13710 MockRead("Content-Length: 7\r\n\r\n"), 13710 MockRead("Content-Length: 7\r\n\r\n"),
13711 MockRead("another"), 13711 MockRead("another"),
13712 }; 13712 };
13713 StaticSocketDataProvider http_data(http_reads, arraysize(http_reads), 13713 StaticSocketDataProvider http_data(http_reads, arraysize(http_reads),
13714 http_writes, arraysize(http_writes)); 13714 http_writes, arraysize(http_writes));
13715 session_deps_.socket_factory->AddSocketDataProvider(&http_data); 13715 session_deps_.socket_factory->AddSocketDataProvider(&http_data);
13716 13716
13717 // Set up alternative service for server. 13717 // Set up alternative service for server.
13718 session_deps_.enable_alternative_service_with_different_host = true; 13718 session_deps_.enable_alternative_service_with_different_host = true;
13719 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 13719 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
13720 base::WeakPtr<HttpServerProperties> http_server_properties = 13720 HttpServerProperties* http_server_properties =
13721 session->http_server_properties(); 13721 session->http_server_properties();
13722 AlternativeService alternative_service( 13722 AlternativeService alternative_service(
13723 AlternateProtocolFromNextProto(GetProtocol()), alternative); 13723 AlternateProtocolFromNextProto(GetProtocol()), alternative);
13724 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 13724 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
13725 http_server_properties->SetAlternativeService(server, alternative_service, 13725 http_server_properties->SetAlternativeService(server, alternative_service,
13726 expiration); 13726 expiration);
13727 13727
13728 HttpNetworkTransaction trans1(DEFAULT_PRIORITY, session.get()); 13728 HttpNetworkTransaction trans1(DEFAULT_PRIORITY, session.get());
13729 HttpRequestInfo request1; 13729 HttpRequestInfo request1;
13730 request1.method = "GET"; 13730 request1.method = "GET";
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
13819 // This test documents that an alternate Job should not pool to an already 13819 // This test documents that an alternate Job should not pool to an already
13820 // existing HTTP/1.1 connection. In order to test this, a failed connection 13820 // existing HTTP/1.1 connection. In order to test this, a failed connection
13821 // to the server is mocked. This way |request2| relies on the alternate Job. 13821 // to the server is mocked. This way |request2| relies on the alternate Job.
13822 StaticSocketDataProvider data_refused; 13822 StaticSocketDataProvider data_refused;
13823 data_refused.set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_REFUSED)); 13823 data_refused.set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_REFUSED));
13824 session_deps_.socket_factory->AddSocketDataProvider(&data_refused); 13824 session_deps_.socket_factory->AddSocketDataProvider(&data_refused);
13825 13825
13826 // Set up alternative service for server. 13826 // Set up alternative service for server.
13827 session_deps_.enable_alternative_service_with_different_host = false; 13827 session_deps_.enable_alternative_service_with_different_host = false;
13828 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 13828 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
13829 base::WeakPtr<HttpServerProperties> http_server_properties = 13829 HttpServerProperties* http_server_properties =
13830 session->http_server_properties(); 13830 session->http_server_properties();
13831 AlternativeService alternative_service( 13831 AlternativeService alternative_service(
13832 AlternateProtocolFromNextProto(GetProtocol()), alternative); 13832 AlternateProtocolFromNextProto(GetProtocol()), alternative);
13833 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 13833 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
13834 http_server_properties->SetAlternativeService(server, alternative_service, 13834 http_server_properties->SetAlternativeService(server, alternative_service,
13835 expiration); 13835 expiration);
13836 13836
13837 // First transaction to alternative to open an HTTP/1.1 socket. 13837 // First transaction to alternative to open an HTTP/1.1 socket.
13838 std::unique_ptr<HttpTransaction> trans1( 13838 std::unique_ptr<HttpTransaction> trans1(
13839 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); 13839 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
(...skipping 2304 matching lines...) Expand 10 before | Expand all | Expand 10 after
16144 base::RunLoop().RunUntilIdle(); 16144 base::RunLoop().RunUntilIdle();
16145 16145
16146 EXPECT_TRUE(trans.GetResponseInfo()->was_fetched_via_spdy); 16146 EXPECT_TRUE(trans.GetResponseInfo()->was_fetched_via_spdy);
16147 HttpRequestHeaders headers; 16147 HttpRequestHeaders headers;
16148 ASSERT_TRUE(trans.GetFullRequestHeaders(&headers)); 16148 ASSERT_TRUE(trans.GetFullRequestHeaders(&headers));
16149 EXPECT_TRUE(headers.HasHeader(HttpRequestHeaders::kTokenBinding)); 16149 EXPECT_TRUE(headers.HasHeader(HttpRequestHeaders::kTokenBinding));
16150 } 16150 }
16151 #endif // !defined(OS_IOS) 16151 #endif // !defined(OS_IOS)
16152 16152
16153 } // namespace net 16153 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_network_transaction_ssl_unittest.cc ('k') | net/http/http_response_body_drainer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698