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

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: 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 9053 matching lines...) Expand 10 before | Expand all | Expand 10 after
9064 std::string url; 9064 std::string url;
9065 std::string expected_group_name; 9065 std::string expected_group_name;
9066 bool ssl; 9066 bool ssl;
9067 }; 9067 };
9068 9068
9069 std::unique_ptr<HttpNetworkSession> SetupSessionForGroupNameTests( 9069 std::unique_ptr<HttpNetworkSession> SetupSessionForGroupNameTests(
9070 NextProto next_proto, 9070 NextProto next_proto,
9071 SpdySessionDependencies* session_deps_) { 9071 SpdySessionDependencies* session_deps_) {
9072 std::unique_ptr<HttpNetworkSession> session(CreateSession(session_deps_)); 9072 std::unique_ptr<HttpNetworkSession> session(CreateSession(session_deps_));
9073 9073
9074 base::WeakPtr<HttpServerProperties> http_server_properties = 9074 HttpServerProperties* http_server_properties =
9075 session->http_server_properties(); 9075 session->http_server_properties();
9076 AlternativeService alternative_service( 9076 AlternativeService alternative_service(
9077 AlternateProtocolFromNextProto(next_proto), "", 443); 9077 AlternateProtocolFromNextProto(next_proto), "", 443);
9078 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 9078 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
9079 http_server_properties->SetAlternativeService( 9079 http_server_properties->SetAlternativeService(
9080 url::SchemeHostPort("http", "host.with.alternate", 80), 9080 url::SchemeHostPort("http", "host.with.alternate", 80),
9081 alternative_service, expiration); 9081 alternative_service, expiration);
9082 9082
9083 return session; 9083 return session;
9084 } 9084 }
(...skipping 870 matching lines...) Expand 10 before | Expand all | Expand 10 after
9955 TestCompletionCallback callback; 9955 TestCompletionCallback callback;
9956 9956
9957 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 9957 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
9958 std::unique_ptr<HttpTransaction> trans( 9958 std::unique_ptr<HttpTransaction> trans(
9959 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); 9959 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
9960 9960
9961 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); 9961 int rv = trans->Start(&request, callback.callback(), BoundNetLog());
9962 EXPECT_EQ(ERR_IO_PENDING, rv); 9962 EXPECT_EQ(ERR_IO_PENDING, rv);
9963 9963
9964 url::SchemeHostPort test_server("http", "www.example.org", 80); 9964 url::SchemeHostPort test_server("http", "www.example.org", 80);
9965 HttpServerProperties& http_server_properties = 9965 HttpServerProperties* http_server_properties =
9966 *session->http_server_properties(); 9966 session->http_server_properties();
9967 AlternativeServiceVector alternative_service_vector = 9967 AlternativeServiceVector alternative_service_vector =
9968 http_server_properties.GetAlternativeServices(test_server); 9968 http_server_properties->GetAlternativeServices(test_server);
9969 EXPECT_TRUE(alternative_service_vector.empty()); 9969 EXPECT_TRUE(alternative_service_vector.empty());
9970 9970
9971 EXPECT_EQ(OK, callback.WaitForResult()); 9971 EXPECT_EQ(OK, callback.WaitForResult());
9972 9972
9973 const HttpResponseInfo* response = trans->GetResponseInfo(); 9973 const HttpResponseInfo* response = trans->GetResponseInfo();
9974 ASSERT_TRUE(response); 9974 ASSERT_TRUE(response);
9975 ASSERT_TRUE(response->headers); 9975 ASSERT_TRUE(response->headers);
9976 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); 9976 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine());
9977 EXPECT_FALSE(response->was_fetched_via_spdy); 9977 EXPECT_FALSE(response->was_fetched_via_spdy);
9978 EXPECT_FALSE(response->was_npn_negotiated); 9978 EXPECT_FALSE(response->was_npn_negotiated);
9979 9979
9980 std::string response_data; 9980 std::string response_data;
9981 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data)); 9981 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data));
9982 EXPECT_EQ("hello world", response_data); 9982 EXPECT_EQ("hello world", response_data);
9983 9983
9984 alternative_service_vector = 9984 alternative_service_vector =
9985 http_server_properties.GetAlternativeServices(test_server); 9985 http_server_properties->GetAlternativeServices(test_server);
9986 ASSERT_EQ(1u, alternative_service_vector.size()); 9986 ASSERT_EQ(1u, alternative_service_vector.size());
9987 EXPECT_EQ(AlternateProtocolFromNextProto(GetProtocol()), 9987 EXPECT_EQ(AlternateProtocolFromNextProto(GetProtocol()),
9988 alternative_service_vector[0].protocol); 9988 alternative_service_vector[0].protocol);
9989 EXPECT_EQ("www.example.org", alternative_service_vector[0].host); 9989 EXPECT_EQ("www.example.org", alternative_service_vector[0].host);
9990 EXPECT_EQ(443, alternative_service_vector[0].port); 9990 EXPECT_EQ(443, alternative_service_vector[0].port);
9991 } 9991 }
9992 9992
9993 // Regression test for https://crbug.com/615497. 9993 // Regression test for https://crbug.com/615497.
9994 TEST_P(HttpNetworkTransactionTest, 9994 TEST_P(HttpNetworkTransactionTest,
9995 DoNotParseAlternativeServiceHeaderOnInsecureRequest) { 9995 DoNotParseAlternativeServiceHeaderOnInsecureRequest) {
(...skipping 18 matching lines...) Expand all
10014 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0); 10014 StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0);
10015 session_deps_.socket_factory->AddSocketDataProvider(&data); 10015 session_deps_.socket_factory->AddSocketDataProvider(&data);
10016 10016
10017 TestCompletionCallback callback; 10017 TestCompletionCallback callback;
10018 10018
10019 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 10019 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
10020 std::unique_ptr<HttpTransaction> trans( 10020 std::unique_ptr<HttpTransaction> trans(
10021 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); 10021 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
10022 10022
10023 url::SchemeHostPort test_server(request.url); 10023 url::SchemeHostPort test_server(request.url);
10024 HttpServerProperties& http_server_properties = 10024 HttpServerProperties* http_server_properties =
10025 *session->http_server_properties(); 10025 session->http_server_properties();
10026 AlternativeServiceVector alternative_service_vector = 10026 AlternativeServiceVector alternative_service_vector =
10027 http_server_properties.GetAlternativeServices(test_server); 10027 http_server_properties->GetAlternativeServices(test_server);
10028 EXPECT_TRUE(alternative_service_vector.empty()); 10028 EXPECT_TRUE(alternative_service_vector.empty());
10029 10029
10030 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); 10030 int rv = trans->Start(&request, callback.callback(), BoundNetLog());
10031 EXPECT_EQ(ERR_IO_PENDING, rv); 10031 EXPECT_EQ(ERR_IO_PENDING, rv);
10032 EXPECT_EQ(OK, callback.WaitForResult()); 10032 EXPECT_EQ(OK, callback.WaitForResult());
10033 10033
10034 const HttpResponseInfo* response = trans->GetResponseInfo(); 10034 const HttpResponseInfo* response = trans->GetResponseInfo();
10035 ASSERT_TRUE(response); 10035 ASSERT_TRUE(response);
10036 ASSERT_TRUE(response->headers); 10036 ASSERT_TRUE(response->headers);
10037 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); 10037 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine());
10038 EXPECT_FALSE(response->was_fetched_via_spdy); 10038 EXPECT_FALSE(response->was_fetched_via_spdy);
10039 EXPECT_FALSE(response->was_npn_negotiated); 10039 EXPECT_FALSE(response->was_npn_negotiated);
10040 10040
10041 std::string response_data; 10041 std::string response_data;
10042 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data)); 10042 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data));
10043 EXPECT_EQ("hello world", response_data); 10043 EXPECT_EQ("hello world", response_data);
10044 10044
10045 alternative_service_vector = 10045 alternative_service_vector =
10046 http_server_properties.GetAlternativeServices(test_server); 10046 http_server_properties->GetAlternativeServices(test_server);
10047 EXPECT_TRUE(alternative_service_vector.empty()); 10047 EXPECT_TRUE(alternative_service_vector.empty());
10048 } 10048 }
10049 10049
10050 // HTTP/2 Alternative Services should be disabled if alternative service 10050 // HTTP/2 Alternative Services should be disabled if alternative service
10051 // hostname is different from that of origin. 10051 // hostname is different from that of origin.
10052 // TODO(bnc): Remove when https://crbug.com/615413 is fixed. 10052 // TODO(bnc): Remove when https://crbug.com/615413 is fixed.
10053 TEST_P(HttpNetworkTransactionTest, 10053 TEST_P(HttpNetworkTransactionTest,
10054 DisableHTTP2AlternativeServicesWithDifferentHost) { 10054 DisableHTTP2AlternativeServicesWithDifferentHost) {
10055 session_deps_.enable_alternative_service_with_different_host = true; 10055 session_deps_.enable_alternative_service_with_different_host = true;
10056 10056
(...skipping 10 matching lines...) Expand all
10067 MockRead data_reads[] = { 10067 MockRead data_reads[] = {
10068 MockRead("HTTP/1.1 200 OK\r\n\r\n"), MockRead("hello world"), 10068 MockRead("HTTP/1.1 200 OK\r\n\r\n"), MockRead("hello world"),
10069 MockRead(ASYNC, OK), 10069 MockRead(ASYNC, OK),
10070 }; 10070 };
10071 StaticSocketDataProvider second_data(data_reads, arraysize(data_reads), NULL, 10071 StaticSocketDataProvider second_data(data_reads, arraysize(data_reads), NULL,
10072 0); 10072 0);
10073 session_deps_.socket_factory->AddSocketDataProvider(&second_data); 10073 session_deps_.socket_factory->AddSocketDataProvider(&second_data);
10074 10074
10075 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 10075 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
10076 10076
10077 base::WeakPtr<HttpServerProperties> http_server_properties = 10077 HttpServerProperties* http_server_properties =
10078 session->http_server_properties(); 10078 session->http_server_properties();
10079 AlternativeService alternative_service( 10079 AlternativeService alternative_service(
10080 AlternateProtocolFromNextProto(GetProtocol()), "different.example.org", 10080 AlternateProtocolFromNextProto(GetProtocol()), "different.example.org",
10081 444); 10081 444);
10082 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 10082 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
10083 http_server_properties->SetAlternativeService( 10083 http_server_properties->SetAlternativeService(
10084 url::SchemeHostPort(request.url), alternative_service, expiration); 10084 url::SchemeHostPort(request.url), alternative_service, expiration);
10085 10085
10086 std::unique_ptr<HttpTransaction> trans( 10086 std::unique_ptr<HttpTransaction> trans(
10087 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); 10087 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
(...skipping 23 matching lines...) Expand all
10111 MockRead data_reads[] = { 10111 MockRead data_reads[] = {
10112 MockRead("HTTP/1.1 200 OK\r\n\r\n"), MockRead("hello world"), 10112 MockRead("HTTP/1.1 200 OK\r\n\r\n"), MockRead("hello world"),
10113 MockRead(ASYNC, OK), 10113 MockRead(ASYNC, OK),
10114 }; 10114 };
10115 StaticSocketDataProvider second_data(data_reads, arraysize(data_reads), NULL, 10115 StaticSocketDataProvider second_data(data_reads, arraysize(data_reads), NULL,
10116 0); 10116 0);
10117 session_deps_.socket_factory->AddSocketDataProvider(&second_data); 10117 session_deps_.socket_factory->AddSocketDataProvider(&second_data);
10118 10118
10119 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 10119 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
10120 10120
10121 base::WeakPtr<HttpServerProperties> http_server_properties = 10121 HttpServerProperties* http_server_properties =
10122 session->http_server_properties(); 10122 session->http_server_properties();
10123 AlternativeService alternative_service( 10123 AlternativeService alternative_service(
10124 AlternateProtocolFromNextProto(GetProtocol()), "", 444); 10124 AlternateProtocolFromNextProto(GetProtocol()), "", 444);
10125 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 10125 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
10126 http_server_properties->SetAlternativeService( 10126 http_server_properties->SetAlternativeService(
10127 url::SchemeHostPort(request.url), alternative_service, expiration); 10127 url::SchemeHostPort(request.url), alternative_service, expiration);
10128 10128
10129 std::unique_ptr<HttpTransaction> trans( 10129 std::unique_ptr<HttpTransaction> trans(
10130 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); 10130 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
10131 TestCompletionCallback callback; 10131 TestCompletionCallback callback;
10132 10132
10133 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); 10133 int rv = trans->Start(&request, callback.callback(), BoundNetLog());
10134 // Alternative service is not used, request fails. 10134 // Alternative service is not used, request fails.
10135 EXPECT_EQ(ERR_CONNECTION_REFUSED, callback.GetResult(rv)); 10135 EXPECT_EQ(ERR_CONNECTION_REFUSED, callback.GetResult(rv));
10136 } 10136 }
10137 10137
10138 TEST_P(HttpNetworkTransactionTest, ClearAlternativeServices) { 10138 TEST_P(HttpNetworkTransactionTest, ClearAlternativeServices) {
10139 session_deps_.enable_alternative_service_with_different_host = false; 10139 session_deps_.enable_alternative_service_with_different_host = false;
10140 10140
10141 // Set an alternative service for origin. 10141 // Set an alternative service for origin.
10142 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 10142 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
10143 HttpServerProperties& http_server_properties = 10143 HttpServerProperties* http_server_properties =
10144 *session->http_server_properties(); 10144 session->http_server_properties();
10145 url::SchemeHostPort test_server("http", "www.example.org", 80); 10145 url::SchemeHostPort test_server("http", "www.example.org", 80);
10146 AlternativeService alternative_service(QUIC, "", 80); 10146 AlternativeService alternative_service(QUIC, "", 80);
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(test_server, alternative_service, 10148 http_server_properties->SetAlternativeService(
10149 expiration); 10149 test_server, alternative_service, expiration);
10150 AlternativeServiceVector alternative_service_vector = 10150 AlternativeServiceVector alternative_service_vector =
10151 http_server_properties.GetAlternativeServices(test_server); 10151 http_server_properties->GetAlternativeServices(test_server);
10152 EXPECT_EQ(1u, alternative_service_vector.size()); 10152 EXPECT_EQ(1u, alternative_service_vector.size());
10153 10153
10154 // Send a clear header. 10154 // Send a clear header.
10155 MockRead data_reads[] = { 10155 MockRead data_reads[] = {
10156 MockRead("HTTP/1.1 200 OK\r\n"), 10156 MockRead("HTTP/1.1 200 OK\r\n"),
10157 MockRead("Alt-Svc: clear\r\n"), 10157 MockRead("Alt-Svc: clear\r\n"),
10158 MockRead("\r\n"), 10158 MockRead("\r\n"),
10159 MockRead("hello world"), 10159 MockRead("hello world"),
10160 MockRead(SYNCHRONOUS, OK), 10160 MockRead(SYNCHRONOUS, OK),
10161 }; 10161 };
(...skipping 18 matching lines...) Expand all
10180 ASSERT_TRUE(response->headers); 10180 ASSERT_TRUE(response->headers);
10181 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); 10181 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine());
10182 EXPECT_FALSE(response->was_fetched_via_spdy); 10182 EXPECT_FALSE(response->was_fetched_via_spdy);
10183 EXPECT_FALSE(response->was_npn_negotiated); 10183 EXPECT_FALSE(response->was_npn_negotiated);
10184 10184
10185 std::string response_data; 10185 std::string response_data;
10186 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data)); 10186 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data));
10187 EXPECT_EQ("hello world", response_data); 10187 EXPECT_EQ("hello world", response_data);
10188 10188
10189 alternative_service_vector = 10189 alternative_service_vector =
10190 http_server_properties.GetAlternativeServices(test_server); 10190 http_server_properties->GetAlternativeServices(test_server);
10191 EXPECT_TRUE(alternative_service_vector.empty()); 10191 EXPECT_TRUE(alternative_service_vector.empty());
10192 } 10192 }
10193 10193
10194 TEST_P(HttpNetworkTransactionTest, HonorMultipleAlternativeServiceHeader) { 10194 TEST_P(HttpNetworkTransactionTest, HonorMultipleAlternativeServiceHeader) {
10195 session_deps_.enable_alternative_service_with_different_host = false; 10195 session_deps_.enable_alternative_service_with_different_host = false;
10196 10196
10197 MockRead data_reads[] = { 10197 MockRead data_reads[] = {
10198 MockRead("HTTP/1.1 200 OK\r\n"), 10198 MockRead("HTTP/1.1 200 OK\r\n"),
10199 MockRead("Alt-Svc: "), 10199 MockRead("Alt-Svc: "),
10200 MockRead(GetAlternateProtocolFromParam()), 10200 MockRead(GetAlternateProtocolFromParam()),
(...skipping 16 matching lines...) Expand all
10217 TestCompletionCallback callback; 10217 TestCompletionCallback callback;
10218 10218
10219 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 10219 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
10220 std::unique_ptr<HttpTransaction> trans( 10220 std::unique_ptr<HttpTransaction> trans(
10221 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); 10221 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
10222 10222
10223 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); 10223 int rv = trans->Start(&request, callback.callback(), BoundNetLog());
10224 EXPECT_EQ(ERR_IO_PENDING, rv); 10224 EXPECT_EQ(ERR_IO_PENDING, rv);
10225 10225
10226 url::SchemeHostPort test_server("http", "www.example.org", 80); 10226 url::SchemeHostPort test_server("http", "www.example.org", 80);
10227 HttpServerProperties& http_server_properties = 10227 HttpServerProperties* http_server_properties =
10228 *session->http_server_properties(); 10228 session->http_server_properties();
10229 AlternativeServiceVector alternative_service_vector = 10229 AlternativeServiceVector alternative_service_vector =
10230 http_server_properties.GetAlternativeServices(test_server); 10230 http_server_properties->GetAlternativeServices(test_server);
10231 EXPECT_TRUE(alternative_service_vector.empty()); 10231 EXPECT_TRUE(alternative_service_vector.empty());
10232 10232
10233 EXPECT_EQ(OK, callback.WaitForResult()); 10233 EXPECT_EQ(OK, callback.WaitForResult());
10234 10234
10235 const HttpResponseInfo* response = trans->GetResponseInfo(); 10235 const HttpResponseInfo* response = trans->GetResponseInfo();
10236 ASSERT_TRUE(response); 10236 ASSERT_TRUE(response);
10237 ASSERT_TRUE(response->headers); 10237 ASSERT_TRUE(response->headers);
10238 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); 10238 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine());
10239 EXPECT_FALSE(response->was_fetched_via_spdy); 10239 EXPECT_FALSE(response->was_fetched_via_spdy);
10240 EXPECT_FALSE(response->was_npn_negotiated); 10240 EXPECT_FALSE(response->was_npn_negotiated);
10241 10241
10242 std::string response_data; 10242 std::string response_data;
10243 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data)); 10243 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data));
10244 EXPECT_EQ("hello world", response_data); 10244 EXPECT_EQ("hello world", response_data);
10245 10245
10246 alternative_service_vector = 10246 alternative_service_vector =
10247 http_server_properties.GetAlternativeServices(test_server); 10247 http_server_properties->GetAlternativeServices(test_server);
10248 ASSERT_EQ(2u, alternative_service_vector.size()); 10248 ASSERT_EQ(2u, alternative_service_vector.size());
10249 EXPECT_EQ(AlternateProtocolFromNextProto(GetProtocol()), 10249 EXPECT_EQ(AlternateProtocolFromNextProto(GetProtocol()),
10250 alternative_service_vector[0].protocol); 10250 alternative_service_vector[0].protocol);
10251 EXPECT_EQ("www.example.com", alternative_service_vector[0].host); 10251 EXPECT_EQ("www.example.com", alternative_service_vector[0].host);
10252 EXPECT_EQ(443, alternative_service_vector[0].port); 10252 EXPECT_EQ(443, alternative_service_vector[0].port);
10253 EXPECT_EQ(AlternateProtocolFromNextProto(GetProtocol()), 10253 EXPECT_EQ(AlternateProtocolFromNextProto(GetProtocol()),
10254 alternative_service_vector[1].protocol); 10254 alternative_service_vector[1].protocol);
10255 EXPECT_EQ("www.example.org", alternative_service_vector[1].host); 10255 EXPECT_EQ("www.example.org", alternative_service_vector[1].host);
10256 EXPECT_EQ(1234, alternative_service_vector[1].port); 10256 EXPECT_EQ(1234, alternative_service_vector[1].port);
10257 } 10257 }
(...skipping 16 matching lines...) Expand all
10274 MockRead data_reads[] = { 10274 MockRead data_reads[] = {
10275 MockRead("HTTP/1.1 200 OK\r\n\r\n"), MockRead("hello world"), 10275 MockRead("HTTP/1.1 200 OK\r\n\r\n"), MockRead("hello world"),
10276 MockRead(ASYNC, OK), 10276 MockRead(ASYNC, OK),
10277 }; 10277 };
10278 StaticSocketDataProvider second_data(data_reads, arraysize(data_reads), 10278 StaticSocketDataProvider second_data(data_reads, arraysize(data_reads),
10279 nullptr, 0); 10279 nullptr, 0);
10280 session_deps_.socket_factory->AddSocketDataProvider(&second_data); 10280 session_deps_.socket_factory->AddSocketDataProvider(&second_data);
10281 10281
10282 std::unique_ptr<HttpNetworkSession> session = CreateSession(&session_deps_); 10282 std::unique_ptr<HttpNetworkSession> session = CreateSession(&session_deps_);
10283 10283
10284 base::WeakPtr<HttpServerProperties> http_server_properties = 10284 HttpServerProperties* http_server_properties =
10285 session->http_server_properties(); 10285 session->http_server_properties();
10286 AlternativeService alternative_service( 10286 AlternativeService alternative_service(
10287 AlternateProtocolFromNextProto(GetProtocol()), "different.example.org", 10287 AlternateProtocolFromNextProto(GetProtocol()), "different.example.org",
10288 80); 10288 80);
10289 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 10289 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
10290 http_server_properties->SetAlternativeService( 10290 http_server_properties->SetAlternativeService(
10291 url::SchemeHostPort(request.url), alternative_service, expiration); 10291 url::SchemeHostPort(request.url), alternative_service, expiration);
10292 10292
10293 std::unique_ptr<HttpTransaction> trans( 10293 std::unique_ptr<HttpTransaction> trans(
10294 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); 10294 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
10329 http_writes, arraysize(http_writes)); 10329 http_writes, arraysize(http_writes));
10330 session_deps_.socket_factory->AddSocketDataProvider(&http_data); 10330 session_deps_.socket_factory->AddSocketDataProvider(&http_data);
10331 10331
10332 StaticSocketDataProvider data_refused; 10332 StaticSocketDataProvider data_refused;
10333 data_refused.set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_REFUSED)); 10333 data_refused.set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_REFUSED));
10334 session_deps_.socket_factory->AddSocketDataProvider(&data_refused); 10334 session_deps_.socket_factory->AddSocketDataProvider(&data_refused);
10335 10335
10336 // Set up a QUIC alternative service for server. 10336 // Set up a QUIC alternative service for server.
10337 session_deps_.enable_alternative_service_with_different_host = false; 10337 session_deps_.enable_alternative_service_with_different_host = false;
10338 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 10338 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
10339 base::WeakPtr<HttpServerProperties> http_server_properties = 10339 HttpServerProperties* http_server_properties =
10340 session->http_server_properties(); 10340 session->http_server_properties();
10341 AlternativeService alternative_service(QUIC, alternative); 10341 AlternativeService alternative_service(QUIC, alternative);
10342 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 10342 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
10343 http_server_properties->SetAlternativeService(server, alternative_service, 10343 http_server_properties->SetAlternativeService(server, alternative_service,
10344 expiration); 10344 expiration);
10345 // Mark the QUIC alternative service as broken. 10345 // Mark the QUIC alternative service as broken.
10346 http_server_properties->MarkAlternativeServiceBroken(alternative_service); 10346 http_server_properties->MarkAlternativeServiceBroken(alternative_service);
10347 10347
10348 std::unique_ptr<HttpTransaction> trans( 10348 std::unique_ptr<HttpTransaction> trans(
10349 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); 10349 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
10389 StaticSocketDataProvider http_data(http_reads, arraysize(http_reads), 10389 StaticSocketDataProvider http_data(http_reads, arraysize(http_reads),
10390 http_writes, arraysize(http_writes)); 10390 http_writes, arraysize(http_writes));
10391 session_deps_.socket_factory->AddSocketDataProvider(&http_data); 10391 session_deps_.socket_factory->AddSocketDataProvider(&http_data);
10392 10392
10393 StaticSocketDataProvider data_refused; 10393 StaticSocketDataProvider data_refused;
10394 data_refused.set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_REFUSED)); 10394 data_refused.set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_REFUSED));
10395 session_deps_.socket_factory->AddSocketDataProvider(&data_refused); 10395 session_deps_.socket_factory->AddSocketDataProvider(&data_refused);
10396 10396
10397 session_deps_.enable_alternative_service_with_different_host = true; 10397 session_deps_.enable_alternative_service_with_different_host = true;
10398 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 10398 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
10399 base::WeakPtr<HttpServerProperties> http_server_properties = 10399 HttpServerProperties* http_server_properties =
10400 session->http_server_properties(); 10400 session->http_server_properties();
10401 10401
10402 // Set up two QUIC alternative services for server. 10402 // Set up two QUIC alternative services for server.
10403 AlternativeServiceInfoVector alternative_service_info_vector; 10403 AlternativeServiceInfoVector alternative_service_info_vector;
10404 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 10404 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
10405 10405
10406 AlternativeService alternative_service1(QUIC, alternative1); 10406 AlternativeService alternative_service1(QUIC, alternative1);
10407 AlternativeServiceInfo alternative_service_info1(alternative_service1, 10407 AlternativeServiceInfo alternative_service_info1(alternative_service1,
10408 expiration); 10408 expiration);
10409 alternative_service_info_vector.push_back(alternative_service_info1); 10409 alternative_service_info_vector.push_back(alternative_service_info1);
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
10454 MockRead("HTTP/1.1 200 OK\r\n\r\n"), 10454 MockRead("HTTP/1.1 200 OK\r\n\r\n"),
10455 MockRead("hello world"), 10455 MockRead("hello world"),
10456 MockRead(ASYNC, OK), 10456 MockRead(ASYNC, OK),
10457 }; 10457 };
10458 StaticSocketDataProvider second_data( 10458 StaticSocketDataProvider second_data(
10459 data_reads, arraysize(data_reads), NULL, 0); 10459 data_reads, arraysize(data_reads), NULL, 0);
10460 session_deps_.socket_factory->AddSocketDataProvider(&second_data); 10460 session_deps_.socket_factory->AddSocketDataProvider(&second_data);
10461 10461
10462 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 10462 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
10463 10463
10464 base::WeakPtr<HttpServerProperties> http_server_properties = 10464 HttpServerProperties* http_server_properties =
10465 session->http_server_properties(); 10465 session->http_server_properties();
10466 const url::SchemeHostPort server(request.url); 10466 const url::SchemeHostPort server(request.url);
10467 // Port must be < 1024, or the header will be ignored (since initial port was 10467 // Port must be < 1024, or the header will be ignored (since initial port was
10468 // port 80 (another restricted port). 10468 // port 80 (another restricted port).
10469 const AlternativeService alternative_service( 10469 const AlternativeService alternative_service(
10470 AlternateProtocolFromNextProto(GetProtocol()), "www.example.org", 10470 AlternateProtocolFromNextProto(GetProtocol()), "www.example.org",
10471 666); // Port is ignored by MockConnect anyway. 10471 666); // Port is ignored by MockConnect anyway.
10472 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 10472 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
10473 http_server_properties->SetAlternativeService(server, alternative_service, 10473 http_server_properties->SetAlternativeService(server, alternative_service,
10474 expiration); 10474 expiration);
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
10520 MockRead("HTTP/1.1 200 OK\r\n\r\n"), 10520 MockRead("HTTP/1.1 200 OK\r\n\r\n"),
10521 MockRead("hello world"), 10521 MockRead("hello world"),
10522 MockRead(ASYNC, OK), 10522 MockRead(ASYNC, OK),
10523 }; 10523 };
10524 StaticSocketDataProvider second_data( 10524 StaticSocketDataProvider second_data(
10525 data_reads, arraysize(data_reads), NULL, 0); 10525 data_reads, arraysize(data_reads), NULL, 0);
10526 session_deps_.socket_factory->AddSocketDataProvider(&second_data); 10526 session_deps_.socket_factory->AddSocketDataProvider(&second_data);
10527 10527
10528 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 10528 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
10529 10529
10530 base::WeakPtr<HttpServerProperties> http_server_properties = 10530 HttpServerProperties* http_server_properties =
10531 session->http_server_properties(); 10531 session->http_server_properties();
10532 const int kUnrestrictedAlternatePort = 1024; 10532 const int kUnrestrictedAlternatePort = 1024;
10533 AlternativeService alternative_service( 10533 AlternativeService alternative_service(
10534 AlternateProtocolFromNextProto(GetProtocol()), "www.example.org", 10534 AlternateProtocolFromNextProto(GetProtocol()), "www.example.org",
10535 kUnrestrictedAlternatePort); 10535 kUnrestrictedAlternatePort);
10536 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 10536 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
10537 http_server_properties->SetAlternativeService( 10537 http_server_properties->SetAlternativeService(
10538 url::SchemeHostPort(restricted_port_request.url), alternative_service, 10538 url::SchemeHostPort(restricted_port_request.url), alternative_service,
10539 expiration); 10539 expiration);
10540 10540
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
10572 MockRead("HTTP/1.1 200 OK\r\n\r\n"), 10572 MockRead("HTTP/1.1 200 OK\r\n\r\n"),
10573 MockRead("hello world"), 10573 MockRead("hello world"),
10574 MockRead(ASYNC, OK), 10574 MockRead(ASYNC, OK),
10575 }; 10575 };
10576 StaticSocketDataProvider second_data( 10576 StaticSocketDataProvider second_data(
10577 data_reads, arraysize(data_reads), NULL, 0); 10577 data_reads, arraysize(data_reads), NULL, 0);
10578 session_deps_.socket_factory->AddSocketDataProvider(&second_data); 10578 session_deps_.socket_factory->AddSocketDataProvider(&second_data);
10579 10579
10580 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 10580 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
10581 10581
10582 base::WeakPtr<HttpServerProperties> http_server_properties = 10582 HttpServerProperties* http_server_properties =
10583 session->http_server_properties(); 10583 session->http_server_properties();
10584 const int kUnrestrictedAlternatePort = 1024; 10584 const int kUnrestrictedAlternatePort = 1024;
10585 AlternativeService alternative_service( 10585 AlternativeService alternative_service(
10586 AlternateProtocolFromNextProto(GetProtocol()), "www.example.org", 10586 AlternateProtocolFromNextProto(GetProtocol()), "www.example.org",
10587 kUnrestrictedAlternatePort); 10587 kUnrestrictedAlternatePort);
10588 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 10588 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
10589 http_server_properties->SetAlternativeService( 10589 http_server_properties->SetAlternativeService(
10590 url::SchemeHostPort(restricted_port_request.url), alternative_service, 10590 url::SchemeHostPort(restricted_port_request.url), alternative_service,
10591 expiration); 10591 expiration);
10592 10592
(...skipping 30 matching lines...) Expand all
10623 MockRead("HTTP/1.1 200 OK\r\n\r\n"), 10623 MockRead("HTTP/1.1 200 OK\r\n\r\n"),
10624 MockRead("hello world"), 10624 MockRead("hello world"),
10625 MockRead(ASYNC, OK), 10625 MockRead(ASYNC, OK),
10626 }; 10626 };
10627 StaticSocketDataProvider second_data( 10627 StaticSocketDataProvider second_data(
10628 data_reads, arraysize(data_reads), NULL, 0); 10628 data_reads, arraysize(data_reads), NULL, 0);
10629 session_deps_.socket_factory->AddSocketDataProvider(&second_data); 10629 session_deps_.socket_factory->AddSocketDataProvider(&second_data);
10630 10630
10631 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 10631 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
10632 10632
10633 base::WeakPtr<HttpServerProperties> http_server_properties = 10633 HttpServerProperties* http_server_properties =
10634 session->http_server_properties(); 10634 session->http_server_properties();
10635 const int kRestrictedAlternatePort = 80; 10635 const int kRestrictedAlternatePort = 80;
10636 AlternativeService alternative_service( 10636 AlternativeService alternative_service(
10637 AlternateProtocolFromNextProto(GetProtocol()), "www.example.org", 10637 AlternateProtocolFromNextProto(GetProtocol()), "www.example.org",
10638 kRestrictedAlternatePort); 10638 kRestrictedAlternatePort);
10639 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 10639 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
10640 http_server_properties->SetAlternativeService( 10640 http_server_properties->SetAlternativeService(
10641 url::SchemeHostPort(restricted_port_request.url), alternative_service, 10641 url::SchemeHostPort(restricted_port_request.url), alternative_service,
10642 expiration); 10642 expiration);
10643 10643
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
10675 MockRead("HTTP/1.1 200 OK\r\n\r\n"), 10675 MockRead("HTTP/1.1 200 OK\r\n\r\n"),
10676 MockRead("hello world"), 10676 MockRead("hello world"),
10677 MockRead(ASYNC, OK), 10677 MockRead(ASYNC, OK),
10678 }; 10678 };
10679 StaticSocketDataProvider second_data( 10679 StaticSocketDataProvider second_data(
10680 data_reads, arraysize(data_reads), NULL, 0); 10680 data_reads, arraysize(data_reads), NULL, 0);
10681 session_deps_.socket_factory->AddSocketDataProvider(&second_data); 10681 session_deps_.socket_factory->AddSocketDataProvider(&second_data);
10682 10682
10683 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 10683 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
10684 10684
10685 base::WeakPtr<HttpServerProperties> http_server_properties = 10685 HttpServerProperties* http_server_properties =
10686 session->http_server_properties(); 10686 session->http_server_properties();
10687 const int kRestrictedAlternatePort = 80; 10687 const int kRestrictedAlternatePort = 80;
10688 AlternativeService alternative_service( 10688 AlternativeService alternative_service(
10689 AlternateProtocolFromNextProto(GetProtocol()), "www.example.org", 10689 AlternateProtocolFromNextProto(GetProtocol()), "www.example.org",
10690 kRestrictedAlternatePort); 10690 kRestrictedAlternatePort);
10691 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 10691 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
10692 http_server_properties->SetAlternativeService( 10692 http_server_properties->SetAlternativeService(
10693 url::SchemeHostPort(unrestricted_port_request.url), alternative_service, 10693 url::SchemeHostPort(unrestricted_port_request.url), alternative_service,
10694 expiration); 10694 expiration);
10695 10695
(...skipping 30 matching lines...) Expand all
10726 MockRead("HTTP/1.1 200 OK\r\n\r\n"), 10726 MockRead("HTTP/1.1 200 OK\r\n\r\n"),
10727 MockRead("hello world"), 10727 MockRead("hello world"),
10728 MockRead(ASYNC, OK), 10728 MockRead(ASYNC, OK),
10729 }; 10729 };
10730 StaticSocketDataProvider second_data( 10730 StaticSocketDataProvider second_data(
10731 data_reads, arraysize(data_reads), NULL, 0); 10731 data_reads, arraysize(data_reads), NULL, 0);
10732 session_deps_.socket_factory->AddSocketDataProvider(&second_data); 10732 session_deps_.socket_factory->AddSocketDataProvider(&second_data);
10733 10733
10734 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 10734 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
10735 10735
10736 base::WeakPtr<HttpServerProperties> http_server_properties = 10736 HttpServerProperties* http_server_properties =
10737 session->http_server_properties(); 10737 session->http_server_properties();
10738 const int kUnrestrictedAlternatePort = 1025; 10738 const int kUnrestrictedAlternatePort = 1025;
10739 AlternativeService alternative_service( 10739 AlternativeService alternative_service(
10740 AlternateProtocolFromNextProto(GetProtocol()), "www.example.org", 10740 AlternateProtocolFromNextProto(GetProtocol()), "www.example.org",
10741 kUnrestrictedAlternatePort); 10741 kUnrestrictedAlternatePort);
10742 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 10742 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
10743 http_server_properties->SetAlternativeService( 10743 http_server_properties->SetAlternativeService(
10744 url::SchemeHostPort(unrestricted_port_request.url), alternative_service, 10744 url::SchemeHostPort(unrestricted_port_request.url), alternative_service,
10745 expiration); 10745 expiration);
10746 10746
(...skipping 25 matching lines...) Expand all
10772 MockRead("HTTP/1.1 200 OK\r\n\r\n"), 10772 MockRead("HTTP/1.1 200 OK\r\n\r\n"),
10773 MockRead("hello world"), 10773 MockRead("hello world"),
10774 MockRead(ASYNC, OK), 10774 MockRead(ASYNC, OK),
10775 }; 10775 };
10776 StaticSocketDataProvider data( 10776 StaticSocketDataProvider data(
10777 data_reads, arraysize(data_reads), NULL, 0); 10777 data_reads, arraysize(data_reads), NULL, 0);
10778 session_deps_.socket_factory->AddSocketDataProvider(&data); 10778 session_deps_.socket_factory->AddSocketDataProvider(&data);
10779 10779
10780 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 10780 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
10781 10781
10782 base::WeakPtr<HttpServerProperties> http_server_properties = 10782 HttpServerProperties* http_server_properties =
10783 session->http_server_properties(); 10783 session->http_server_properties();
10784 const int kUnsafePort = 7; 10784 const int kUnsafePort = 7;
10785 AlternativeService alternative_service( 10785 AlternativeService alternative_service(
10786 AlternateProtocolFromNextProto(GetProtocol()), "www.example.org", 10786 AlternateProtocolFromNextProto(GetProtocol()), "www.example.org",
10787 kUnsafePort); 10787 kUnsafePort);
10788 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 10788 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
10789 http_server_properties->SetAlternativeService( 10789 http_server_properties->SetAlternativeService(
10790 url::SchemeHostPort(request.url), alternative_service, expiration); 10790 url::SchemeHostPort(request.url), alternative_service, expiration);
10791 10791
10792 std::unique_ptr<HttpTransaction> trans( 10792 std::unique_ptr<HttpTransaction> trans(
(...skipping 2711 matching lines...) Expand 10 before | Expand all | Expand 10 after
13504 session_deps_.socket_factory->AddSocketDataProvider(&data); 13504 session_deps_.socket_factory->AddSocketDataProvider(&data);
13505 13505
13506 // Connection to the server fails. 13506 // Connection to the server fails.
13507 MockConnect mock_connect(ASYNC, ERR_CONNECTION_REFUSED); 13507 MockConnect mock_connect(ASYNC, ERR_CONNECTION_REFUSED);
13508 StaticSocketDataProvider data_refused; 13508 StaticSocketDataProvider data_refused;
13509 data_refused.set_connect_data(mock_connect); 13509 data_refused.set_connect_data(mock_connect);
13510 session_deps_.socket_factory->AddSocketDataProvider(&data_refused); 13510 session_deps_.socket_factory->AddSocketDataProvider(&data_refused);
13511 13511
13512 session_deps_.enable_alternative_service_with_different_host = true; 13512 session_deps_.enable_alternative_service_with_different_host = true;
13513 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 13513 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
13514 base::WeakPtr<HttpServerProperties> http_server_properties = 13514 HttpServerProperties* http_server_properties =
13515 session->http_server_properties(); 13515 session->http_server_properties();
13516 AlternativeService alternative_service( 13516 AlternativeService alternative_service(
13517 AlternateProtocolFromNextProto(GetProtocol()), alternative); 13517 AlternateProtocolFromNextProto(GetProtocol()), alternative);
13518 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 13518 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
13519 http_server_properties->SetAlternativeService(server, alternative_service, 13519 http_server_properties->SetAlternativeService(server, alternative_service,
13520 expiration); 13520 expiration);
13521 13521
13522 // First request to alternative. 13522 // First request to alternative.
13523 if (pooling) { 13523 if (pooling) {
13524 std::unique_ptr<HttpTransaction> trans0( 13524 std::unique_ptr<HttpTransaction> trans0(
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
13609 // This test documents that an alternate Job should not be used if HTTP/1.1 is 13609 // This test documents that an alternate Job should not be used if HTTP/1.1 is
13610 // negotiated. In order to test this, a failed connection to the server is 13610 // negotiated. In order to test this, a failed connection to the server is
13611 // mocked. This way the request relies on the alternate Job. 13611 // mocked. This way the request relies on the alternate Job.
13612 StaticSocketDataProvider data_refused; 13612 StaticSocketDataProvider data_refused;
13613 data_refused.set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_REFUSED)); 13613 data_refused.set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_REFUSED));
13614 session_deps_.socket_factory->AddSocketDataProvider(&data_refused); 13614 session_deps_.socket_factory->AddSocketDataProvider(&data_refused);
13615 13615
13616 // Set up alternative service for server. 13616 // Set up alternative service for server.
13617 session_deps_.enable_alternative_service_with_different_host = true; 13617 session_deps_.enable_alternative_service_with_different_host = true;
13618 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 13618 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
13619 base::WeakPtr<HttpServerProperties> http_server_properties = 13619 HttpServerProperties* http_server_properties =
13620 session->http_server_properties(); 13620 session->http_server_properties();
13621 AlternativeService alternative_service( 13621 AlternativeService alternative_service(
13622 AlternateProtocolFromNextProto(GetProtocol()), alternative); 13622 AlternateProtocolFromNextProto(GetProtocol()), alternative);
13623 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 13623 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
13624 http_server_properties->SetAlternativeService(server, alternative_service, 13624 http_server_properties->SetAlternativeService(server, alternative_service,
13625 expiration); 13625 expiration);
13626 13626
13627 std::unique_ptr<HttpTransaction> trans( 13627 std::unique_ptr<HttpTransaction> trans(
13628 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); 13628 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
13629 HttpRequestInfo request; 13629 HttpRequestInfo request;
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
13680 MockRead("Content-Length: 7\r\n\r\n"), 13680 MockRead("Content-Length: 7\r\n\r\n"),
13681 MockRead("another"), 13681 MockRead("another"),
13682 }; 13682 };
13683 StaticSocketDataProvider http_data(http_reads, arraysize(http_reads), 13683 StaticSocketDataProvider http_data(http_reads, arraysize(http_reads),
13684 http_writes, arraysize(http_writes)); 13684 http_writes, arraysize(http_writes));
13685 session_deps_.socket_factory->AddSocketDataProvider(&http_data); 13685 session_deps_.socket_factory->AddSocketDataProvider(&http_data);
13686 13686
13687 // Set up alternative service for server. 13687 // Set up alternative service for server.
13688 session_deps_.enable_alternative_service_with_different_host = true; 13688 session_deps_.enable_alternative_service_with_different_host = true;
13689 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 13689 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
13690 base::WeakPtr<HttpServerProperties> http_server_properties = 13690 HttpServerProperties* http_server_properties =
13691 session->http_server_properties(); 13691 session->http_server_properties();
13692 AlternativeService alternative_service( 13692 AlternativeService alternative_service(
13693 AlternateProtocolFromNextProto(GetProtocol()), alternative); 13693 AlternateProtocolFromNextProto(GetProtocol()), alternative);
13694 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 13694 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
13695 http_server_properties->SetAlternativeService(server, alternative_service, 13695 http_server_properties->SetAlternativeService(server, alternative_service,
13696 expiration); 13696 expiration);
13697 13697
13698 HttpNetworkTransaction trans1(DEFAULT_PRIORITY, session.get()); 13698 HttpNetworkTransaction trans1(DEFAULT_PRIORITY, session.get());
13699 HttpRequestInfo request1; 13699 HttpRequestInfo request1;
13700 request1.method = "GET"; 13700 request1.method = "GET";
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
13789 // This test documents that an alternate Job should not pool to an already 13789 // This test documents that an alternate Job should not pool to an already
13790 // existing HTTP/1.1 connection. In order to test this, a failed connection 13790 // existing HTTP/1.1 connection. In order to test this, a failed connection
13791 // to the server is mocked. This way |request2| relies on the alternate Job. 13791 // to the server is mocked. This way |request2| relies on the alternate Job.
13792 StaticSocketDataProvider data_refused; 13792 StaticSocketDataProvider data_refused;
13793 data_refused.set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_REFUSED)); 13793 data_refused.set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_REFUSED));
13794 session_deps_.socket_factory->AddSocketDataProvider(&data_refused); 13794 session_deps_.socket_factory->AddSocketDataProvider(&data_refused);
13795 13795
13796 // Set up alternative service for server. 13796 // Set up alternative service for server.
13797 session_deps_.enable_alternative_service_with_different_host = false; 13797 session_deps_.enable_alternative_service_with_different_host = false;
13798 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 13798 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
13799 base::WeakPtr<HttpServerProperties> http_server_properties = 13799 HttpServerProperties* http_server_properties =
13800 session->http_server_properties(); 13800 session->http_server_properties();
13801 AlternativeService alternative_service( 13801 AlternativeService alternative_service(
13802 AlternateProtocolFromNextProto(GetProtocol()), alternative); 13802 AlternateProtocolFromNextProto(GetProtocol()), alternative);
13803 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 13803 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
13804 http_server_properties->SetAlternativeService(server, alternative_service, 13804 http_server_properties->SetAlternativeService(server, alternative_service,
13805 expiration); 13805 expiration);
13806 13806
13807 // First transaction to alternative to open an HTTP/1.1 socket. 13807 // First transaction to alternative to open an HTTP/1.1 socket.
13808 std::unique_ptr<HttpTransaction> trans1( 13808 std::unique_ptr<HttpTransaction> trans1(
13809 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); 13809 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
(...skipping 2304 matching lines...) Expand 10 before | Expand all | Expand 10 after
16114 base::MessageLoop::current()->RunUntilIdle(); 16114 base::MessageLoop::current()->RunUntilIdle();
16115 16115
16116 EXPECT_TRUE(trans.GetResponseInfo()->was_fetched_via_spdy); 16116 EXPECT_TRUE(trans.GetResponseInfo()->was_fetched_via_spdy);
16117 HttpRequestHeaders headers; 16117 HttpRequestHeaders headers;
16118 ASSERT_TRUE(trans.GetFullRequestHeaders(&headers)); 16118 ASSERT_TRUE(trans.GetFullRequestHeaders(&headers));
16119 EXPECT_TRUE(headers.HasHeader(HttpRequestHeaders::kTokenBinding)); 16119 EXPECT_TRUE(headers.HasHeader(HttpRequestHeaders::kTokenBinding));
16120 } 16120 }
16121 #endif // !defined(OS_IOS) 16121 #endif // !defined(OS_IOS)
16122 16122
16123 } // namespace net 16123 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698