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

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

Issue 2919011: Implement MAX_CONCURRENT_STREAMS SETTINGS header (Closed)
Patch Set: landing soon on a repo near you Created 10 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/http/http_network_transaction.cc ('k') | net/spdy/spdy_framer.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 <vector> 8 #include <vector>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 5201 matching lines...) Expand 10 before | Expand all | Expand 10 after
5212 StaticSocketDataProvider first_transaction( 5212 StaticSocketDataProvider first_transaction(
5213 data_reads, arraysize(data_reads), NULL, 0); 5213 data_reads, arraysize(data_reads), NULL, 0);
5214 session_deps.socket_factory.AddSocketDataProvider(&first_transaction); 5214 session_deps.socket_factory.AddSocketDataProvider(&first_transaction);
5215 5215
5216 SSLSocketDataProvider ssl(true, OK); 5216 SSLSocketDataProvider ssl(true, OK);
5217 ssl.next_proto_status = SSLClientSocket::kNextProtoNegotiated; 5217 ssl.next_proto_status = SSLClientSocket::kNextProtoNegotiated;
5218 ssl.next_proto = "spdy/1"; 5218 ssl.next_proto = "spdy/1";
5219 ssl.was_npn_negotiated = true; 5219 ssl.was_npn_negotiated = true;
5220 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl); 5220 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl);
5221 5221
5222 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0)); 5222 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST));
5223 MockWrite spdy_writes[] = { CreateMockWrite(*req) }; 5223 MockWrite spdy_writes[] = { CreateMockWrite(*req) };
5224 5224
5225 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0)); 5225 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
5226 scoped_ptr<spdy::SpdyFrame> data(ConstructSpdyBodyFrame()); 5226 scoped_ptr<spdy::SpdyFrame> data(ConstructSpdyBodyFrame(1, true));
5227 MockRead spdy_reads[] = { 5227 MockRead spdy_reads[] = {
5228 CreateMockRead(*resp), 5228 CreateMockRead(*resp),
5229 CreateMockRead(*data), 5229 CreateMockRead(*data),
5230 MockRead(true, 0, 0), 5230 MockRead(true, 0, 0),
5231 }; 5231 };
5232 5232
5233 scoped_refptr<DelayedSocketData> spdy_data( 5233 scoped_refptr<DelayedSocketData> spdy_data(
5234 new DelayedSocketData( 5234 new DelayedSocketData(
5235 1, // wait for one write to finish before reading. 5235 1, // wait for one write to finish before reading.
5236 spdy_reads, arraysize(spdy_reads), 5236 spdy_reads, arraysize(spdy_reads),
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
5341 StaticSocketDataProvider first_transaction( 5341 StaticSocketDataProvider first_transaction(
5342 data_reads, arraysize(data_reads), NULL, 0); 5342 data_reads, arraysize(data_reads), NULL, 0);
5343 session_deps.socket_factory.AddSocketDataProvider(&first_transaction); 5343 session_deps.socket_factory.AddSocketDataProvider(&first_transaction);
5344 5344
5345 SSLSocketDataProvider ssl(true, OK); 5345 SSLSocketDataProvider ssl(true, OK);
5346 ssl.next_proto_status = SSLClientSocket::kNextProtoNegotiated; 5346 ssl.next_proto_status = SSLClientSocket::kNextProtoNegotiated;
5347 ssl.next_proto = "spdy/1"; 5347 ssl.next_proto = "spdy/1";
5348 ssl.was_npn_negotiated = true; 5348 ssl.was_npn_negotiated = true;
5349 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl); 5349 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl);
5350 5350
5351 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0)); 5351 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST));
5352 MockWrite spdy_writes[] = { 5352 MockWrite spdy_writes[] = {
5353 MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n" 5353 MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n"
5354 "Host: www.google.com\r\n" 5354 "Host: www.google.com\r\n"
5355 "Proxy-Connection: keep-alive\r\n\r\n"), // 0 5355 "Proxy-Connection: keep-alive\r\n\r\n"), // 0
5356 CreateMockWrite(*req) // 3 5356 CreateMockWrite(*req) // 3
5357 }; 5357 };
5358 5358
5359 const char kCONNECTResponse[] = "HTTP/1.1 200 Connected\r\n\r\n"; 5359 const char kCONNECTResponse[] = "HTTP/1.1 200 Connected\r\n\r\n";
5360 5360
5361 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0)); 5361 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
5362 scoped_ptr<spdy::SpdyFrame> data(ConstructSpdyBodyFrame()); 5362 scoped_ptr<spdy::SpdyFrame> data(ConstructSpdyBodyFrame(1, true));
5363 MockRead spdy_reads[] = { 5363 MockRead spdy_reads[] = {
5364 MockRead(true, kCONNECTResponse, arraysize(kCONNECTResponse) - 1, 1), // 1 5364 MockRead(true, kCONNECTResponse, arraysize(kCONNECTResponse) - 1, 1), // 1
5365 CreateMockRead(*resp.get(), 4), // 2, 4 5365 CreateMockRead(*resp.get(), 4), // 2, 4
5366 CreateMockRead(*data.get(), 4), // 5 5366 CreateMockRead(*data.get(), 4), // 5
5367 MockRead(true, 0, 0, 4), // 6 5367 MockRead(true, 0, 0, 4), // 6
5368 }; 5368 };
5369 5369
5370 scoped_refptr<OrderedSocketData> spdy_data( 5370 scoped_refptr<OrderedSocketData> spdy_data(
5371 new OrderedSocketData( 5371 new OrderedSocketData(
5372 spdy_reads, arraysize(spdy_reads), 5372 spdy_reads, arraysize(spdy_reads),
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
5442 session_deps.socket_factory.AddSocketDataProvider(&first_transaction); 5442 session_deps.socket_factory.AddSocketDataProvider(&first_transaction);
5443 5443
5444 SSLSocketDataProvider ssl(true, OK); 5444 SSLSocketDataProvider ssl(true, OK);
5445 ssl.next_proto_status = SSLClientSocket::kNextProtoNegotiated; 5445 ssl.next_proto_status = SSLClientSocket::kNextProtoNegotiated;
5446 ssl.next_proto = "spdy/1"; 5446 ssl.next_proto = "spdy/1";
5447 ssl.was_npn_negotiated = true; 5447 ssl.was_npn_negotiated = true;
5448 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl); 5448 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl);
5449 // Make sure we use ssl for spdy here. 5449 // Make sure we use ssl for spdy here.
5450 SpdySession::SetSSLMode(true); 5450 SpdySession::SetSSLMode(true);
5451 5451
5452 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0)); 5452 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST));
5453 MockWrite spdy_writes[] = { CreateMockWrite(*req) }; 5453 MockWrite spdy_writes[] = { CreateMockWrite(*req) };
5454 5454
5455 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0)); 5455 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
5456 scoped_ptr<spdy::SpdyFrame> data(ConstructSpdyBodyFrame()); 5456 scoped_ptr<spdy::SpdyFrame> data(ConstructSpdyBodyFrame(1, true));
5457 MockRead spdy_reads[] = { 5457 MockRead spdy_reads[] = {
5458 CreateMockRead(*resp), 5458 CreateMockRead(*resp),
5459 CreateMockRead(*data), 5459 CreateMockRead(*data),
5460 MockRead(true, 0, 0), 5460 MockRead(true, 0, 0),
5461 }; 5461 };
5462 5462
5463 scoped_refptr<DelayedSocketData> spdy_data( 5463 scoped_refptr<DelayedSocketData> spdy_data(
5464 new DelayedSocketData( 5464 new DelayedSocketData(
5465 1, // wait for one write to finish before reading. 5465 1, // wait for one write to finish before reading.
5466 spdy_reads, arraysize(spdy_reads), 5466 spdy_reads, arraysize(spdy_reads),
(...skipping 754 matching lines...) Expand 10 before | Expand all | Expand 10 after
6221 request.method = "GET"; 6221 request.method = "GET";
6222 request.url = GURL("https://www.google.com/"); 6222 request.url = GURL("https://www.google.com/");
6223 request.load_flags = 0; 6223 request.load_flags = 0;
6224 6224
6225 SSLSocketDataProvider ssl(true, OK); 6225 SSLSocketDataProvider ssl(true, OK);
6226 ssl.next_proto_status = SSLClientSocket::kNextProtoNegotiated; 6226 ssl.next_proto_status = SSLClientSocket::kNextProtoNegotiated;
6227 ssl.next_proto = "spdy/1"; 6227 ssl.next_proto = "spdy/1";
6228 ssl.was_npn_negotiated = true; 6228 ssl.was_npn_negotiated = true;
6229 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl); 6229 session_deps.socket_factory.AddSSLSocketDataProvider(&ssl);
6230 6230
6231 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0)); 6231 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST));
6232 MockWrite spdy_writes[] = { CreateMockWrite(*req) }; 6232 MockWrite spdy_writes[] = { CreateMockWrite(*req) };
6233 6233
6234 MockRead spdy_reads[] = { 6234 MockRead spdy_reads[] = {
6235 MockRead(false, 0, 0) // Not async - return 0 immediately. 6235 MockRead(false, 0, 0) // Not async - return 0 immediately.
6236 }; 6236 };
6237 6237
6238 scoped_refptr<DelayedSocketData> spdy_data( 6238 scoped_refptr<DelayedSocketData> spdy_data(
6239 new DelayedSocketData( 6239 new DelayedSocketData(
6240 0, // don't wait in this case, immediate hangup. 6240 0, // don't wait in this case, immediate hangup.
6241 spdy_reads, arraysize(spdy_reads), 6241 spdy_reads, arraysize(spdy_reads),
6242 spdy_writes, arraysize(spdy_writes))); 6242 spdy_writes, arraysize(spdy_writes)));
6243 session_deps.socket_factory.AddSocketDataProvider(spdy_data); 6243 session_deps.socket_factory.AddSocketDataProvider(spdy_data);
6244 6244
6245 TestCompletionCallback callback; 6245 TestCompletionCallback callback;
6246 6246
6247 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps)); 6247 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
6248 scoped_ptr<HttpNetworkTransaction> trans(new HttpNetworkTransaction(session)); 6248 scoped_ptr<HttpNetworkTransaction> trans(new HttpNetworkTransaction(session));
6249 6249
6250 int rv = trans->Start(&request, &callback, BoundNetLog()); 6250 int rv = trans->Start(&request, &callback, BoundNetLog());
6251 EXPECT_EQ(ERR_IO_PENDING, rv); 6251 EXPECT_EQ(ERR_IO_PENDING, rv);
6252 EXPECT_EQ(ERR_CONNECTION_CLOSED, callback.WaitForResult()); 6252 EXPECT_EQ(ERR_CONNECTION_CLOSED, callback.WaitForResult());
6253 6253
6254 HttpNetworkTransaction::SetNextProtos(""); 6254 HttpNetworkTransaction::SetNextProtos("");
6255 HttpNetworkTransaction::SetUseAlternateProtocols(false); 6255 HttpNetworkTransaction::SetUseAlternateProtocols(false);
6256 } 6256 }
6257 6257
6258 } // namespace net 6258 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_network_transaction.cc ('k') | net/spdy/spdy_framer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698