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

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

Issue 754433003: Update from https://crrev.com/305340 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years 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 <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 void TearDown() override { 261 void TearDown() override {
262 NetworkChangeNotifier::NotifyObserversOfIPAddressChangeForTests(); 262 NetworkChangeNotifier::NotifyObserversOfIPAddressChangeForTests();
263 base::MessageLoop::current()->RunUntilIdle(); 263 base::MessageLoop::current()->RunUntilIdle();
264 // Empty the current queue. 264 // Empty the current queue.
265 base::MessageLoop::current()->RunUntilIdle(); 265 base::MessageLoop::current()->RunUntilIdle();
266 PlatformTest::TearDown(); 266 PlatformTest::TearDown();
267 NetworkChangeNotifier::NotifyObserversOfIPAddressChangeForTests(); 267 NetworkChangeNotifier::NotifyObserversOfIPAddressChangeForTests();
268 base::MessageLoop::current()->RunUntilIdle(); 268 base::MessageLoop::current()->RunUntilIdle();
269 } 269 }
270 270
271 const char* GetAlternateProtocolFromParam() {
272 return
273 AlternateProtocolToString(AlternateProtocolFromNextProto(GetParam()));
274 }
275
271 // This is the expected return from a current server advertising SPDY. 276 // This is the expected return from a current server advertising SPDY.
272 std::string GetAlternateProtocolHttpHeader() { 277 std::string GetAlternateProtocolHttpHeader() {
273 return 278 return std::string("Alternate-Protocol: 443:") +
274 std::string("Alternate-Protocol: 443:") + 279 GetAlternateProtocolFromParam() + "\r\n\r\n";
275 AlternateProtocolToString(AlternateProtocolFromNextProto(GetParam())) +
276 "\r\n\r\n";
277 } 280 }
278 281
279 // Either |write_failure| specifies a write failure or |read_failure| 282 // Either |write_failure| specifies a write failure or |read_failure|
280 // specifies a read failure when using a reused socket. In either case, the 283 // specifies a read failure when using a reused socket. In either case, the
281 // failure should cause the network transaction to resend the request, and the 284 // failure should cause the network transaction to resend the request, and the
282 // other argument should be NULL. 285 // other argument should be NULL.
283 void KeepAliveConnectionResendRequestTest(const MockWrite* write_failure, 286 void KeepAliveConnectionResendRequestTest(const MockWrite* write_failure,
284 const MockRead* read_failure); 287 const MockRead* read_failure);
285 288
286 // Either |write_failure| specifies a write failure or |read_failure| 289 // Either |write_failure| specifies a write failure or |read_failure|
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
400 403
401 // Original socket limits. Some tests set these. Safest to always restore 404 // Original socket limits. Some tests set these. Safest to always restore
402 // them once each test has been run. 405 // them once each test has been run.
403 int old_max_group_sockets_; 406 int old_max_group_sockets_;
404 int old_max_pool_sockets_; 407 int old_max_pool_sockets_;
405 }; 408 };
406 409
407 INSTANTIATE_TEST_CASE_P( 410 INSTANTIATE_TEST_CASE_P(
408 NextProto, 411 NextProto,
409 HttpNetworkTransactionTest, 412 HttpNetworkTransactionTest,
410 testing::Values(kProtoDeprecatedSPDY2, 413 testing::Values(kProtoSPDY31, kProtoSPDY4_14, kProtoSPDY4_15));
411 kProtoSPDY3, kProtoSPDY31, kProtoSPDY4_14, kProtoSPDY4_15));
412 414
413 namespace { 415 namespace {
414 416
415 class BeforeNetworkStartHandler { 417 class BeforeNetworkStartHandler {
416 public: 418 public:
417 explicit BeforeNetworkStartHandler(bool defer) 419 explicit BeforeNetworkStartHandler(bool defer)
418 : defer_on_before_network_start_(defer), 420 : defer_on_before_network_start_(defer),
419 observed_before_network_start_(false) {} 421 observed_before_network_start_(false) {}
420 422
421 void OnBeforeNetworkStart(bool* defer) { 423 void OnBeforeNetworkStart(bool* defer) {
(...skipping 9678 matching lines...) Expand 10 before | Expand all | Expand 10 after
10100 10102
10101 // First round goes unauthenticated through the proxy. 10103 // First round goes unauthenticated through the proxy.
10102 MockWrite data_writes_1[] = { 10104 MockWrite data_writes_1[] = {
10103 MockWrite("GET http://www.google.com/ HTTP/1.1\r\n" 10105 MockWrite("GET http://www.google.com/ HTTP/1.1\r\n"
10104 "Host: www.google.com\r\n" 10106 "Host: www.google.com\r\n"
10105 "Proxy-Connection: keep-alive\r\n" 10107 "Proxy-Connection: keep-alive\r\n"
10106 "\r\n"), 10108 "\r\n"),
10107 }; 10109 };
10108 MockRead data_reads_1[] = { 10110 MockRead data_reads_1[] = {
10109 MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ), 10111 MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ),
10110 MockRead("HTTP/1.1 200 OK\r\n" 10112 MockRead("HTTP/1.1 200 OK\r\n"),
10111 "Alternate-Protocol: 443:npn-spdy/2\r\n" 10113 MockRead("Alternate-Protocol: 443:"),
10112 "Proxy-Connection: close\r\n" 10114 MockRead(GetAlternateProtocolFromParam()),
10113 "\r\n"), 10115 MockRead("\r\n"),
10116 MockRead("Proxy-Connection: close\r\n"),
10117 MockRead("\r\n"),
10114 }; 10118 };
10115 StaticSocketDataProvider data_1(data_reads_1, arraysize(data_reads_1), 10119 StaticSocketDataProvider data_1(data_reads_1, arraysize(data_reads_1),
10116 data_writes_1, arraysize(data_writes_1)); 10120 data_writes_1, arraysize(data_writes_1));
10117 10121
10118 // Second round tries to tunnel to www.google.com due to the 10122 // Second round tries to tunnel to www.google.com due to the
10119 // Alternate-Protocol announcement in the first round. It fails due 10123 // Alternate-Protocol announcement in the first round. It fails due
10120 // to a proxy authentication challenge. 10124 // to a proxy authentication challenge.
10121 // After the failure, a tunnel is established to www.google.com using 10125 // After the failure, a tunnel is established to www.google.com using
10122 // Proxy-Authorization headers. There is then a SPDY request round. 10126 // Proxy-Authorization headers. There is then a SPDY request round.
10123 // 10127 //
(...skipping 1271 matching lines...) Expand 10 before | Expand all | Expand 10 after
11395 scoped_ptr<SpdyFrame> connect(spdy_util_.ConstructSpdyConnect(NULL, 0, 1, 11399 scoped_ptr<SpdyFrame> connect(spdy_util_.ConstructSpdyConnect(NULL, 0, 1,
11396 LOWEST)); 11400 LOWEST));
11397 scoped_ptr<SpdyFrame> req1( 11401 scoped_ptr<SpdyFrame> req1(
11398 spdy_util_.ConstructSpdyGet(https_url.c_str(), false, 1, LOWEST)); 11402 spdy_util_.ConstructSpdyGet(https_url.c_str(), false, 1, LOWEST));
11399 scoped_ptr<SpdyFrame> wrapped_req1( 11403 scoped_ptr<SpdyFrame> wrapped_req1(
11400 spdy_util_.ConstructWrappedSpdyFrame(req1, 1)); 11404 spdy_util_.ConstructWrappedSpdyFrame(req1, 1));
11401 11405
11402 // SPDY GET for HTTP URL (through the proxy, but not the tunnel). 11406 // SPDY GET for HTTP URL (through the proxy, but not the tunnel).
11403 SpdyHeaderBlock req2_block; 11407 SpdyHeaderBlock req2_block;
11404 req2_block[spdy_util_.GetMethodKey()] = "GET"; 11408 req2_block[spdy_util_.GetMethodKey()] = "GET";
11405 req2_block[spdy_util_.GetPathKey()] = 11409 req2_block[spdy_util_.GetPathKey()] = "/";
11406 spdy_util_.is_spdy2() ? http_url.c_str() : "/";
11407 req2_block[spdy_util_.GetHostKey()] = "www.google.com:443"; 11410 req2_block[spdy_util_.GetHostKey()] = "www.google.com:443";
11408 req2_block[spdy_util_.GetSchemeKey()] = "http"; 11411 req2_block[spdy_util_.GetSchemeKey()] = "http";
11409 spdy_util_.MaybeAddVersionHeader(&req2_block); 11412 spdy_util_.MaybeAddVersionHeader(&req2_block);
11410 scoped_ptr<SpdyFrame> req2( 11413 scoped_ptr<SpdyFrame> req2(
11411 spdy_util_.ConstructSpdySyn(3, req2_block, MEDIUM, false, true)); 11414 spdy_util_.ConstructSpdySyn(3, req2_block, MEDIUM, false, true));
11412 11415
11413 MockWrite writes1[] = { 11416 MockWrite writes1[] = {
11414 CreateMockWrite(*connect, 0), 11417 CreateMockWrite(*connect, 0),
11415 CreateMockWrite(*wrapped_req1, 2), 11418 CreateMockWrite(*wrapped_req1, 2),
11416 CreateMockWrite(*req2, 5), 11419 CreateMockWrite(*req2, 5),
(...skipping 1764 matching lines...) Expand 10 before | Expand all | Expand 10 after
13181 EXPECT_EQ(ERR_IO_PENDING, rv); 13184 EXPECT_EQ(ERR_IO_PENDING, rv);
13182 13185
13183 rv = callback.WaitForResult(); 13186 rv = callback.WaitForResult();
13184 EXPECT_EQ(ERR_CONNECTION_RESET, rv); 13187 EXPECT_EQ(ERR_CONNECTION_RESET, rv);
13185 13188
13186 const HttpResponseInfo* response = trans->GetResponseInfo(); 13189 const HttpResponseInfo* response = trans->GetResponseInfo();
13187 EXPECT_TRUE(response == NULL); 13190 EXPECT_TRUE(response == NULL);
13188 } 13191 }
13189 13192
13190 } // namespace net 13193 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_network_transaction.cc ('k') | net/http/http_proxy_client_socket_pool_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698