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

Side by Side Diff: net/spdy/spdy_network_transaction_unittest.cc

Issue 9425016: Change MockRead and MockWrite (et. al.) to take an IoMode enum, instead (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: sync Created 8 years, 10 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 RunPreTestSetup(); 224 RunPreTestSetup();
225 AddData(data); 225 AddData(data);
226 RunDefaultTest(); 226 RunDefaultTest();
227 VerifyDataConsumed(); 227 VerifyDataConsumed();
228 } 228 }
229 229
230 void AddData(StaticSocketDataProvider* data) { 230 void AddData(StaticSocketDataProvider* data) {
231 DCHECK(!deterministic_); 231 DCHECK(!deterministic_);
232 data_vector_.push_back(data); 232 data_vector_.push_back(data);
233 linked_ptr<SSLSocketDataProvider> ssl_( 233 linked_ptr<SSLSocketDataProvider> ssl_(
234 new SSLSocketDataProvider(true, OK)); 234 new SSLSocketDataProvider(ASYNC, OK));
235 if (test_type_ == SPDYNPN) { 235 if (test_type_ == SPDYNPN) {
236 ssl_->next_proto_status = SSLClientSocket::kNextProtoNegotiated; 236 ssl_->next_proto_status = SSLClientSocket::kNextProtoNegotiated;
237 ssl_->next_proto = "spdy/2.1"; 237 ssl_->next_proto = "spdy/2.1";
238 ssl_->was_npn_negotiated = true; 238 ssl_->was_npn_negotiated = true;
239 ssl_->protocol_negotiated = SSLClientSocket::kProtoSPDY21; 239 ssl_->protocol_negotiated = SSLClientSocket::kProtoSPDY21;
240 } 240 }
241 ssl_vector_.push_back(ssl_); 241 ssl_vector_.push_back(ssl_);
242 if (test_type_ == SPDYNPN || test_type_ == SPDYSSL) 242 if (test_type_ == SPDYNPN || test_type_ == SPDYSSL)
243 session_deps_->socket_factory->AddSSLSocketDataProvider(ssl_.get()); 243 session_deps_->socket_factory->AddSSLSocketDataProvider(ssl_.get());
244 session_deps_->socket_factory->AddSocketDataProvider(data); 244 session_deps_->socket_factory->AddSocketDataProvider(data);
245 if (test_type_ == SPDYNPN) { 245 if (test_type_ == SPDYNPN) {
246 MockConnect never_finishing_connect(SYNCHRONOUS, ERR_IO_PENDING); 246 MockConnect never_finishing_connect(SYNCHRONOUS, ERR_IO_PENDING);
247 linked_ptr<StaticSocketDataProvider> 247 linked_ptr<StaticSocketDataProvider>
248 hanging_non_alternate_protocol_socket( 248 hanging_non_alternate_protocol_socket(
249 new StaticSocketDataProvider(NULL, 0, NULL, 0)); 249 new StaticSocketDataProvider(NULL, 0, NULL, 0));
250 hanging_non_alternate_protocol_socket->set_connect_data( 250 hanging_non_alternate_protocol_socket->set_connect_data(
251 never_finishing_connect); 251 never_finishing_connect);
252 session_deps_->socket_factory->AddSocketDataProvider( 252 session_deps_->socket_factory->AddSocketDataProvider(
253 hanging_non_alternate_protocol_socket.get()); 253 hanging_non_alternate_protocol_socket.get());
254 alternate_vector_.push_back(hanging_non_alternate_protocol_socket); 254 alternate_vector_.push_back(hanging_non_alternate_protocol_socket);
255 } 255 }
256 } 256 }
257 257
258 void AddDeterministicData(DeterministicSocketData* data) { 258 void AddDeterministicData(DeterministicSocketData* data) {
259 DCHECK(deterministic_); 259 DCHECK(deterministic_);
260 data_vector_.push_back(data); 260 data_vector_.push_back(data);
261 linked_ptr<SSLSocketDataProvider> ssl_( 261 linked_ptr<SSLSocketDataProvider> ssl_(
262 new SSLSocketDataProvider(true, OK)); 262 new SSLSocketDataProvider(ASYNC, OK));
263 if (test_type_ == SPDYNPN) { 263 if (test_type_ == SPDYNPN) {
264 ssl_->next_proto_status = SSLClientSocket::kNextProtoNegotiated; 264 ssl_->next_proto_status = SSLClientSocket::kNextProtoNegotiated;
265 ssl_->next_proto = "spdy/2.1"; 265 ssl_->next_proto = "spdy/2.1";
266 ssl_->was_npn_negotiated = true; 266 ssl_->was_npn_negotiated = true;
267 ssl_->protocol_negotiated = SSLClientSocket::kProtoSPDY21; 267 ssl_->protocol_negotiated = SSLClientSocket::kProtoSPDY21;
268 } 268 }
269 ssl_vector_.push_back(ssl_); 269 ssl_vector_.push_back(ssl_);
270 if (test_type_ == SPDYNPN || test_type_ == SPDYSSL) { 270 if (test_type_ == SPDYNPN || test_type_ == SPDYSSL) {
271 session_deps_->deterministic_socket_factory-> 271 session_deps_->deterministic_socket_factory->
272 AddSSLSocketDataProvider(ssl_.get()); 272 AddSSLSocketDataProvider(ssl_.get());
(...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after
550 TEST_P(SpdyNetworkTransactionTest, Get) { 550 TEST_P(SpdyNetworkTransactionTest, Get) {
551 // Construct the request. 551 // Construct the request.
552 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); 552 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST));
553 MockWrite writes[] = { CreateMockWrite(*req) }; 553 MockWrite writes[] = { CreateMockWrite(*req) };
554 554
555 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 555 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
556 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); 556 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
557 MockRead reads[] = { 557 MockRead reads[] = {
558 CreateMockRead(*resp), 558 CreateMockRead(*resp),
559 CreateMockRead(*body), 559 CreateMockRead(*body),
560 MockRead(true, 0, 0) // EOF 560 MockRead(ASYNC, 0, 0) // EOF
561 }; 561 };
562 562
563 scoped_ptr<DelayedSocketData> data( 563 scoped_ptr<DelayedSocketData> data(
564 new DelayedSocketData(1, reads, arraysize(reads), 564 new DelayedSocketData(1, reads, arraysize(reads),
565 writes, arraysize(writes))); 565 writes, arraysize(writes)));
566 NormalSpdyTransactionHelper helper(CreateGetRequest(), 566 NormalSpdyTransactionHelper helper(CreateGetRequest(),
567 BoundNetLog(), GetParam()); 567 BoundNetLog(), GetParam());
568 helper.RunToCompletion(data.get()); 568 helper.RunToCompletion(data.get());
569 TransactionHelperResult out = helper.output(); 569 TransactionHelperResult out = helper.output();
570 EXPECT_EQ(OK, out.rv); 570 EXPECT_EQ(OK, out.rv);
(...skipping 29 matching lines...) Expand all
600 break; 600 break;
601 default: 601 default:
602 FAIL(); 602 FAIL();
603 } 603 }
604 604
605 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 605 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
606 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); 606 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
607 MockRead reads[] = { 607 MockRead reads[] = {
608 CreateMockRead(*resp), 608 CreateMockRead(*resp),
609 CreateMockRead(*body), 609 CreateMockRead(*body),
610 MockRead(true, 0, 0) // EOF 610 MockRead(ASYNC, 0, 0) // EOF
611 }; 611 };
612 612
613 scoped_ptr<DelayedSocketData> data( 613 scoped_ptr<DelayedSocketData> data(
614 new DelayedSocketData(1, reads, arraysize(reads), 614 new DelayedSocketData(1, reads, arraysize(reads),
615 writes, arraysize(writes))); 615 writes, arraysize(writes)));
616 HttpRequestInfo http_req = CreateGetRequest(); 616 HttpRequestInfo http_req = CreateGetRequest();
617 http_req.priority = p; 617 http_req.priority = p;
618 618
619 NormalSpdyTransactionHelper helper(http_req, BoundNetLog(), GetParam()); 619 NormalSpdyTransactionHelper helper(http_req, BoundNetLog(), GetParam());
620 helper.RunToCompletion(data.get()); 620 helper.RunToCompletion(data.get());
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
661 CreateMockRead(*body), 661 CreateMockRead(*body),
662 CreateMockRead(*resp2, 4), 662 CreateMockRead(*resp2, 4),
663 CreateMockRead(*body2), 663 CreateMockRead(*body2),
664 CreateMockRead(*resp3, 7), 664 CreateMockRead(*resp3, 7),
665 CreateMockRead(*body3), 665 CreateMockRead(*body3),
666 666
667 CreateMockRead(*fbody), 667 CreateMockRead(*fbody),
668 CreateMockRead(*fbody2), 668 CreateMockRead(*fbody2),
669 CreateMockRead(*fbody3), 669 CreateMockRead(*fbody3),
670 670
671 MockRead(true, 0, 0), // EOF 671 MockRead(ASYNC, 0, 0), // EOF
672 }; 672 };
673 scoped_ptr<OrderedSocketData> data( 673 scoped_ptr<OrderedSocketData> data(
674 new OrderedSocketData(reads, arraysize(reads), 674 new OrderedSocketData(reads, arraysize(reads),
675 writes, arraysize(writes))); 675 writes, arraysize(writes)));
676 scoped_ptr<OrderedSocketData> data_placeholder( 676 scoped_ptr<OrderedSocketData> data_placeholder(
677 new OrderedSocketData(NULL, 0, NULL, 0)); 677 new OrderedSocketData(NULL, 0, NULL, 0));
678 678
679 BoundNetLog log; 679 BoundNetLog log;
680 TransactionHelperResult out; 680 TransactionHelperResult out;
681 NormalSpdyTransactionHelper helper(CreateGetRequest(), 681 NormalSpdyTransactionHelper helper(CreateGetRequest(),
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
745 CreateMockWrite(*req), 745 CreateMockWrite(*req),
746 CreateMockWrite(*req2), 746 CreateMockWrite(*req2),
747 }; 747 };
748 MockRead reads[] = { 748 MockRead reads[] = {
749 CreateMockRead(*resp, 1), 749 CreateMockRead(*resp, 1),
750 CreateMockRead(*body), 750 CreateMockRead(*body),
751 CreateMockRead(*resp2, 4), 751 CreateMockRead(*resp2, 4),
752 CreateMockRead(*body2), 752 CreateMockRead(*body2),
753 CreateMockRead(*fbody), 753 CreateMockRead(*fbody),
754 CreateMockRead(*fbody2), 754 CreateMockRead(*fbody2),
755 MockRead(true, 0, 0), // EOF 755 MockRead(ASYNC, 0, 0), // EOF
756 }; 756 };
757 scoped_ptr<OrderedSocketData> data( 757 scoped_ptr<OrderedSocketData> data(
758 new OrderedSocketData(reads, arraysize(reads), 758 new OrderedSocketData(reads, arraysize(reads),
759 writes, arraysize(writes))); 759 writes, arraysize(writes)));
760 760
761 MockConnect never_finishing_connect(SYNCHRONOUS, ERR_IO_PENDING); 761 MockConnect never_finishing_connect(SYNCHRONOUS, ERR_IO_PENDING);
762 762
763 scoped_ptr<OrderedSocketData> data_placeholder( 763 scoped_ptr<OrderedSocketData> data_placeholder(
764 new OrderedSocketData(NULL, 0, NULL, 0)); 764 new OrderedSocketData(NULL, 0, NULL, 0));
765 data_placeholder->set_connect_data(never_finishing_connect); 765 data_placeholder->set_connect_data(never_finishing_connect);
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
832 CreateMockWrite(*req), 832 CreateMockWrite(*req),
833 CreateMockWrite(*req2), 833 CreateMockWrite(*req2),
834 }; 834 };
835 MockRead reads[] = { 835 MockRead reads[] = {
836 CreateMockRead(*resp, 1), 836 CreateMockRead(*resp, 1),
837 CreateMockRead(*body), 837 CreateMockRead(*body),
838 CreateMockRead(*resp2, 4), 838 CreateMockRead(*resp2, 4),
839 CreateMockRead(*body2), 839 CreateMockRead(*body2),
840 CreateMockRead(*fbody), 840 CreateMockRead(*fbody),
841 CreateMockRead(*fbody2), 841 CreateMockRead(*fbody2),
842 MockRead(true, 0, 0), // EOF 842 MockRead(ASYNC, 0, 0), // EOF
843 }; 843 };
844 scoped_ptr<OrderedSocketData> preconnect_data( 844 scoped_ptr<OrderedSocketData> preconnect_data(
845 new OrderedSocketData(reads, arraysize(reads), 845 new OrderedSocketData(reads, arraysize(reads),
846 writes, arraysize(writes))); 846 writes, arraysize(writes)));
847 847
848 MockConnect never_finishing_connect(ASYNC, ERR_IO_PENDING); 848 MockConnect never_finishing_connect(ASYNC, ERR_IO_PENDING);
849 849
850 scoped_ptr<OrderedSocketData> data_placeholder( 850 scoped_ptr<OrderedSocketData> data_placeholder(
851 new OrderedSocketData(NULL, 0, NULL, 0)); 851 new OrderedSocketData(NULL, 0, NULL, 0));
852 data_placeholder->set_connect_data(never_finishing_connect); 852 data_placeholder->set_connect_data(never_finishing_connect);
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
958 CreateMockRead(*resp), 958 CreateMockRead(*resp),
959 CreateMockRead(*body), 959 CreateMockRead(*body),
960 CreateMockRead(*fbody), 960 CreateMockRead(*fbody),
961 CreateMockRead(*resp2, 7), 961 CreateMockRead(*resp2, 7),
962 CreateMockRead(*body2), 962 CreateMockRead(*body2),
963 CreateMockRead(*fbody2), 963 CreateMockRead(*fbody2),
964 CreateMockRead(*resp3, 12), 964 CreateMockRead(*resp3, 12),
965 CreateMockRead(*body3), 965 CreateMockRead(*body3),
966 CreateMockRead(*fbody3), 966 CreateMockRead(*fbody3),
967 967
968 MockRead(true, 0, 0), // EOF 968 MockRead(ASYNC, 0, 0), // EOF
969 }; 969 };
970 970
971 scoped_ptr<OrderedSocketData> data( 971 scoped_ptr<OrderedSocketData> data(
972 new OrderedSocketData(reads, arraysize(reads), 972 new OrderedSocketData(reads, arraysize(reads),
973 writes, arraysize(writes))); 973 writes, arraysize(writes)));
974 scoped_ptr<OrderedSocketData> data_placeholder( 974 scoped_ptr<OrderedSocketData> data_placeholder(
975 new OrderedSocketData(NULL, 0, NULL, 0)); 975 new OrderedSocketData(NULL, 0, NULL, 0));
976 976
977 BoundNetLog log; 977 BoundNetLog log;
978 TransactionHelperResult out; 978 TransactionHelperResult out;
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
1098 CreateMockRead(*fbody), 1098 CreateMockRead(*fbody),
1099 CreateMockRead(*resp2, 7), 1099 CreateMockRead(*resp2, 7),
1100 CreateMockRead(*body2), 1100 CreateMockRead(*body2),
1101 CreateMockRead(*fbody2), 1101 CreateMockRead(*fbody2),
1102 CreateMockRead(*resp4, 13), 1102 CreateMockRead(*resp4, 13),
1103 CreateMockRead(*fbody4), 1103 CreateMockRead(*fbody4),
1104 CreateMockRead(*resp3, 16), 1104 CreateMockRead(*resp3, 16),
1105 CreateMockRead(*body3), 1105 CreateMockRead(*body3),
1106 CreateMockRead(*fbody3), 1106 CreateMockRead(*fbody3),
1107 1107
1108 MockRead(true, 0, 0), // EOF 1108 MockRead(ASYNC, 0, 0), // EOF
1109 }; 1109 };
1110 1110
1111 scoped_ptr<OrderedSocketData> data( 1111 scoped_ptr<OrderedSocketData> data(
1112 new OrderedSocketData(reads, arraysize(reads), 1112 new OrderedSocketData(reads, arraysize(reads),
1113 writes, arraysize(writes))); 1113 writes, arraysize(writes)));
1114 scoped_ptr<OrderedSocketData> data_placeholder( 1114 scoped_ptr<OrderedSocketData> data_placeholder(
1115 new OrderedSocketData(NULL, 0, NULL, 0)); 1115 new OrderedSocketData(NULL, 0, NULL, 0));
1116 1116
1117 BoundNetLog log; 1117 BoundNetLog log;
1118 TransactionHelperResult out; 1118 TransactionHelperResult out;
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
1235 CreateMockWrite(*req2), 1235 CreateMockWrite(*req2),
1236 }; 1236 };
1237 MockRead reads[] = { 1237 MockRead reads[] = {
1238 CreateMockRead(*settings_frame, 1), 1238 CreateMockRead(*settings_frame, 1),
1239 CreateMockRead(*resp), 1239 CreateMockRead(*resp),
1240 CreateMockRead(*body), 1240 CreateMockRead(*body),
1241 CreateMockRead(*fbody), 1241 CreateMockRead(*fbody),
1242 CreateMockRead(*resp2, 7), 1242 CreateMockRead(*resp2, 7),
1243 CreateMockRead(*body2), 1243 CreateMockRead(*body2),
1244 CreateMockRead(*fbody2), 1244 CreateMockRead(*fbody2),
1245 MockRead(true, 0, 0), // EOF 1245 MockRead(ASYNC, 0, 0), // EOF
1246 }; 1246 };
1247 1247
1248 scoped_ptr<OrderedSocketData> data( 1248 scoped_ptr<OrderedSocketData> data(
1249 new OrderedSocketData(reads, arraysize(reads), 1249 new OrderedSocketData(reads, arraysize(reads),
1250 writes, arraysize(writes))); 1250 writes, arraysize(writes)));
1251 scoped_ptr<OrderedSocketData> data_placeholder( 1251 scoped_ptr<OrderedSocketData> data_placeholder(
1252 new OrderedSocketData(NULL, 0, NULL, 0)); 1252 new OrderedSocketData(NULL, 0, NULL, 0));
1253 1253
1254 BoundNetLog log; 1254 BoundNetLog log;
1255 TransactionHelperResult out; 1255 TransactionHelperResult out;
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
1365 1365
1366 MockWrite writes[] = { CreateMockWrite(*req), 1366 MockWrite writes[] = { CreateMockWrite(*req),
1367 CreateMockWrite(*req2), 1367 CreateMockWrite(*req2),
1368 }; 1368 };
1369 MockRead reads[] = { 1369 MockRead reads[] = {
1370 CreateMockRead(*settings_frame, 1), 1370 CreateMockRead(*settings_frame, 1),
1371 CreateMockRead(*resp), 1371 CreateMockRead(*resp),
1372 CreateMockRead(*body), 1372 CreateMockRead(*body),
1373 CreateMockRead(*fin_body), 1373 CreateMockRead(*fin_body),
1374 CreateMockRead(*resp2, 7), 1374 CreateMockRead(*resp2, 7),
1375 MockRead(true, ERR_CONNECTION_RESET, 0), // Abort! 1375 MockRead(ASYNC, ERR_CONNECTION_RESET, 0), // Abort!
1376 }; 1376 };
1377 1377
1378 scoped_ptr<OrderedSocketData> data( 1378 scoped_ptr<OrderedSocketData> data(
1379 new OrderedSocketData(reads, arraysize(reads), 1379 new OrderedSocketData(reads, arraysize(reads),
1380 writes, arraysize(writes))); 1380 writes, arraysize(writes)));
1381 scoped_ptr<OrderedSocketData> data_placeholder( 1381 scoped_ptr<OrderedSocketData> data_placeholder(
1382 new OrderedSocketData(NULL, 0, NULL, 0)); 1382 new OrderedSocketData(NULL, 0, NULL, 0));
1383 1383
1384 BoundNetLog log; 1384 BoundNetLog log;
1385 TransactionHelperResult out; 1385 TransactionHelperResult out;
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
1487 static const char* const kStandardGetHeaders[] = { 1487 static const char* const kStandardGetHeaders[] = {
1488 "status", "200", 1488 "status", "200",
1489 "version", "HTTP/1.1" 1489 "version", "HTTP/1.1"
1490 "content-length", "1234" 1490 "content-length", "1234"
1491 }; 1491 };
1492 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyPacket(kSynReplyHeader, 1492 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyPacket(kSynReplyHeader,
1493 NULL, 0, kStandardGetHeaders, arraysize(kStandardGetHeaders) / 2)); 1493 NULL, 0, kStandardGetHeaders, arraysize(kStandardGetHeaders) / 2));
1494 MockRead reads[] = { 1494 MockRead reads[] = {
1495 CreateMockRead(*resp), 1495 CreateMockRead(*resp),
1496 CreateMockRead(*body), 1496 CreateMockRead(*body),
1497 MockRead(true, 0, 0) // EOF 1497 MockRead(ASYNC, 0, 0) // EOF
1498 }; 1498 };
1499 1499
1500 scoped_ptr<DelayedSocketData> data( 1500 scoped_ptr<DelayedSocketData> data(
1501 new DelayedSocketData(1, reads, arraysize(reads), 1501 new DelayedSocketData(1, reads, arraysize(reads),
1502 writes, arraysize(writes))); 1502 writes, arraysize(writes)));
1503 NormalSpdyTransactionHelper helper(request, 1503 NormalSpdyTransactionHelper helper(request,
1504 BoundNetLog(), GetParam()); 1504 BoundNetLog(), GetParam());
1505 helper.RunToCompletion(data.get()); 1505 helper.RunToCompletion(data.get());
1506 TransactionHelperResult out = helper.output(); 1506 TransactionHelperResult out = helper.output();
1507 1507
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
1558 static const char* const kStandardGetHeaders[] = { 1558 static const char* const kStandardGetHeaders[] = {
1559 "status", "200", 1559 "status", "200",
1560 "version", "HTTP/1.1" 1560 "version", "HTTP/1.1"
1561 "content-length", "1234" 1561 "content-length", "1234"
1562 }; 1562 };
1563 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyPacket(kSynReplyHeader, 1563 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyPacket(kSynReplyHeader,
1564 NULL, 0, kStandardGetHeaders, arraysize(kStandardGetHeaders) / 2)); 1564 NULL, 0, kStandardGetHeaders, arraysize(kStandardGetHeaders) / 2));
1565 MockRead reads[] = { 1565 MockRead reads[] = {
1566 CreateMockRead(*resp), 1566 CreateMockRead(*resp),
1567 CreateMockRead(*body), 1567 CreateMockRead(*body),
1568 MockRead(true, 0, 0) // EOF 1568 MockRead(ASYNC, 0, 0) // EOF
1569 }; 1569 };
1570 1570
1571 scoped_ptr<DelayedSocketData> data( 1571 scoped_ptr<DelayedSocketData> data(
1572 new DelayedSocketData(1, reads, arraysize(reads), 1572 new DelayedSocketData(1, reads, arraysize(reads),
1573 writes, arraysize(writes))); 1573 writes, arraysize(writes)));
1574 NormalSpdyTransactionHelper helper(request, 1574 NormalSpdyTransactionHelper helper(request,
1575 BoundNetLog(), GetParam()); 1575 BoundNetLog(), GetParam());
1576 helper.RunToCompletion(data.get()); 1576 helper.RunToCompletion(data.get());
1577 TransactionHelperResult out = helper.output(); 1577 TransactionHelperResult out = helper.output();
1578 1578
1579 EXPECT_EQ(OK, out.rv); 1579 EXPECT_EQ(OK, out.rv);
1580 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); 1580 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line);
1581 } 1581 }
1582 1582
1583 // Test that a simple POST works. 1583 // Test that a simple POST works.
1584 TEST_P(SpdyNetworkTransactionTest, Post) { 1584 TEST_P(SpdyNetworkTransactionTest, Post) {
1585 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyPost(kUploadDataSize, NULL, 0)); 1585 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyPost(kUploadDataSize, NULL, 0));
1586 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); 1586 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
1587 MockWrite writes[] = { 1587 MockWrite writes[] = {
1588 CreateMockWrite(*req), 1588 CreateMockWrite(*req),
1589 CreateMockWrite(*body), // POST upload frame 1589 CreateMockWrite(*body), // POST upload frame
1590 }; 1590 };
1591 1591
1592 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyPostSynReply(NULL, 0)); 1592 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyPostSynReply(NULL, 0));
1593 MockRead reads[] = { 1593 MockRead reads[] = {
1594 CreateMockRead(*resp), 1594 CreateMockRead(*resp),
1595 CreateMockRead(*body), 1595 CreateMockRead(*body),
1596 MockRead(true, 0, 0) // EOF 1596 MockRead(ASYNC, 0, 0) // EOF
1597 }; 1597 };
1598 1598
1599 scoped_ptr<DelayedSocketData> data( 1599 scoped_ptr<DelayedSocketData> data(
1600 new DelayedSocketData(2, reads, arraysize(reads), 1600 new DelayedSocketData(2, reads, arraysize(reads),
1601 writes, arraysize(writes))); 1601 writes, arraysize(writes)));
1602 NormalSpdyTransactionHelper helper(CreatePostRequest(), 1602 NormalSpdyTransactionHelper helper(CreatePostRequest(),
1603 BoundNetLog(), GetParam()); 1603 BoundNetLog(), GetParam());
1604 helper.RunToCompletion(data.get()); 1604 helper.RunToCompletion(data.get());
1605 TransactionHelperResult out = helper.output(); 1605 TransactionHelperResult out = helper.output();
1606 EXPECT_EQ(OK, out.rv); 1606 EXPECT_EQ(OK, out.rv);
(...skipping 11 matching lines...) Expand all
1618 CreateMockWrite(*req), 1618 CreateMockWrite(*req),
1619 CreateMockWrite(*chunk1), 1619 CreateMockWrite(*chunk1),
1620 CreateMockWrite(*chunk2), 1620 CreateMockWrite(*chunk2),
1621 }; 1621 };
1622 1622
1623 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyPostSynReply(NULL, 0)); 1623 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyPostSynReply(NULL, 0));
1624 MockRead reads[] = { 1624 MockRead reads[] = {
1625 CreateMockRead(*resp), 1625 CreateMockRead(*resp),
1626 CreateMockRead(*chunk1), 1626 CreateMockRead(*chunk1),
1627 CreateMockRead(*chunk2), 1627 CreateMockRead(*chunk2),
1628 MockRead(true, 0, 0) // EOF 1628 MockRead(ASYNC, 0, 0) // EOF
1629 }; 1629 };
1630 1630
1631 scoped_ptr<DelayedSocketData> data( 1631 scoped_ptr<DelayedSocketData> data(
1632 new DelayedSocketData(2, reads, arraysize(reads), 1632 new DelayedSocketData(2, reads, arraysize(reads),
1633 writes, arraysize(writes))); 1633 writes, arraysize(writes)));
1634 NormalSpdyTransactionHelper helper(CreateChunkedPostRequest(), 1634 NormalSpdyTransactionHelper helper(CreateChunkedPostRequest(),
1635 BoundNetLog(), GetParam()); 1635 BoundNetLog(), GetParam());
1636 helper.RunToCompletion(data.get()); 1636 helper.RunToCompletion(data.get());
1637 TransactionHelperResult out = helper.output(); 1637 TransactionHelperResult out = helper.output();
1638 EXPECT_EQ(OK, out.rv); 1638 EXPECT_EQ(OK, out.rv);
(...skipping 17 matching lines...) Expand all
1656 req->set_flags(spdy::CONTROL_FLAG_FIN); 1656 req->set_flags(spdy::CONTROL_FLAG_FIN);
1657 MockWrite writes[] = { 1657 MockWrite writes[] = {
1658 CreateMockWrite(*req), 1658 CreateMockWrite(*req),
1659 }; 1659 };
1660 1660
1661 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyPostSynReply(NULL, 0)); 1661 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyPostSynReply(NULL, 0));
1662 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); 1662 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
1663 MockRead reads[] = { 1663 MockRead reads[] = {
1664 CreateMockRead(*resp), 1664 CreateMockRead(*resp),
1665 CreateMockRead(*body), 1665 CreateMockRead(*body),
1666 MockRead(true, 0, 0) // EOF 1666 MockRead(ASYNC, 0, 0) // EOF
1667 }; 1667 };
1668 1668
1669 scoped_ptr<DelayedSocketData> data( 1669 scoped_ptr<DelayedSocketData> data(
1670 new DelayedSocketData(1, reads, arraysize(reads), 1670 new DelayedSocketData(1, reads, arraysize(reads),
1671 writes, arraysize(writes))); 1671 writes, arraysize(writes)));
1672 1672
1673 NormalSpdyTransactionHelper helper(request, 1673 NormalSpdyTransactionHelper helper(request,
1674 BoundNetLog(), GetParam()); 1674 BoundNetLog(), GetParam());
1675 helper.RunToCompletion(data.get()); 1675 helper.RunToCompletion(data.get());
1676 TransactionHelperResult out = helper.output(); 1676 TransactionHelperResult out = helper.output();
(...skipping 26 matching lines...) Expand all
1703 req->set_flags(spdy::CONTROL_FLAG_FIN); 1703 req->set_flags(spdy::CONTROL_FLAG_FIN);
1704 MockWrite writes[] = { 1704 MockWrite writes[] = {
1705 CreateMockWrite(*req), 1705 CreateMockWrite(*req),
1706 }; 1706 };
1707 1707
1708 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyPostSynReply(NULL, 0)); 1708 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyPostSynReply(NULL, 0));
1709 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); 1709 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
1710 MockRead reads[] = { 1710 MockRead reads[] = {
1711 CreateMockRead(*resp), 1711 CreateMockRead(*resp),
1712 CreateMockRead(*body), 1712 CreateMockRead(*body),
1713 MockRead(true, 0, 0) // EOF 1713 MockRead(ASYNC, 0, 0) // EOF
1714 }; 1714 };
1715 1715
1716 scoped_ptr<DelayedSocketData> data( 1716 scoped_ptr<DelayedSocketData> data(
1717 new DelayedSocketData(1, reads, arraysize(reads), 1717 new DelayedSocketData(1, reads, arraysize(reads),
1718 writes, arraysize(writes))); 1718 writes, arraysize(writes)));
1719 1719
1720 NormalSpdyTransactionHelper helper(request, 1720 NormalSpdyTransactionHelper helper(request,
1721 BoundNetLog(), GetParam()); 1721 BoundNetLog(), GetParam());
1722 helper.RunToCompletion(data.get()); 1722 helper.RunToCompletion(data.get());
1723 TransactionHelperResult out = helper.output(); 1723 TransactionHelperResult out = helper.output();
(...skipping 18 matching lines...) Expand all
1742 scoped_ptr<UploadDataStream> stream( 1742 scoped_ptr<UploadDataStream> stream(
1743 new UploadDataStream(request.upload_data)); 1743 new UploadDataStream(request.upload_data));
1744 ASSERT_EQ(OK, stream->Init()); 1744 ASSERT_EQ(OK, stream->Init());
1745 ASSERT_EQ(request.upload_data->GetContentLengthSync(), 1745 ASSERT_EQ(request.upload_data->GetContentLengthSync(),
1746 stream->size()); 1746 stream->size());
1747 scoped_ptr<spdy::SpdyFrame> stream_reply(ConstructSpdyPostSynReply(NULL, 0)); 1747 scoped_ptr<spdy::SpdyFrame> stream_reply(ConstructSpdyPostSynReply(NULL, 0));
1748 scoped_ptr<spdy::SpdyFrame> stream_body(ConstructSpdyBodyFrame(1, true)); 1748 scoped_ptr<spdy::SpdyFrame> stream_body(ConstructSpdyBodyFrame(1, true));
1749 MockRead reads[] = { 1749 MockRead reads[] = {
1750 CreateMockRead(*stream_reply, 2), 1750 CreateMockRead(*stream_reply, 2),
1751 CreateMockRead(*stream_body, 3), 1751 CreateMockRead(*stream_body, 3),
1752 MockRead(false, 0, 0) // EOF 1752 MockRead(SYNCHRONOUS, 0, 0) // EOF
1753 }; 1753 };
1754 1754
1755 scoped_ptr<DelayedSocketData> data( 1755 scoped_ptr<DelayedSocketData> data(
1756 new DelayedSocketData(0, reads, arraysize(reads), NULL, 0)); 1756 new DelayedSocketData(0, reads, arraysize(reads), NULL, 0));
1757 NormalSpdyTransactionHelper helper(request, 1757 NormalSpdyTransactionHelper helper(request,
1758 BoundNetLog(), GetParam()); 1758 BoundNetLog(), GetParam());
1759 helper.RunPreTestSetup(); 1759 helper.RunPreTestSetup();
1760 helper.AddData(data.get()); 1760 helper.AddData(data.get());
1761 helper.RunDefaultTest(); 1761 helper.RunDefaultTest();
1762 helper.VerifyDataConsumed(); 1762 helper.VerifyDataConsumed();
1763 1763
1764 TransactionHelperResult out = helper.output(); 1764 TransactionHelperResult out = helper.output();
1765 EXPECT_EQ(ERR_SYN_REPLY_NOT_RECEIVED, out.rv); 1765 EXPECT_EQ(ERR_SYN_REPLY_NOT_RECEIVED, out.rv);
1766 } 1766 }
1767 1767
1768 // The client upon cancellation tries to send a RST_STREAM frame. The mock 1768 // The client upon cancellation tries to send a RST_STREAM frame. The mock
1769 // socket causes the TCP write to return zero. This test checks that the client 1769 // socket causes the TCP write to return zero. This test checks that the client
1770 // tries to queue up the RST_STREAM frame again. 1770 // tries to queue up the RST_STREAM frame again.
1771 TEST_P(SpdyNetworkTransactionTest, SocketWriteReturnsZero) { 1771 TEST_P(SpdyNetworkTransactionTest, SocketWriteReturnsZero) {
1772 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); 1772 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST));
1773 scoped_ptr<spdy::SpdyFrame> rst( 1773 scoped_ptr<spdy::SpdyFrame> rst(
1774 ConstructSpdyRstStream(1, spdy::CANCEL)); 1774 ConstructSpdyRstStream(1, spdy::CANCEL));
1775 MockWrite writes[] = { 1775 MockWrite writes[] = {
1776 CreateMockWrite(*req.get(), 0, false), 1776 CreateMockWrite(*req.get(), 0, SYNCHRONOUS),
1777 MockWrite(false, 0, 0, 2), 1777 MockWrite(SYNCHRONOUS, 0, 0, 2),
1778 CreateMockWrite(*rst.get(), 3, false), 1778 CreateMockWrite(*rst.get(), 3, SYNCHRONOUS),
1779 }; 1779 };
1780 1780
1781 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 1781 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
1782 MockRead reads[] = { 1782 MockRead reads[] = {
1783 CreateMockRead(*resp.get(), 1, true), 1783 CreateMockRead(*resp.get(), 1, ASYNC),
1784 MockRead(true, 0, 0, 4) // EOF 1784 MockRead(ASYNC, 0, 0, 4) // EOF
1785 }; 1785 };
1786 1786
1787 scoped_refptr<DeterministicSocketData> data( 1787 scoped_refptr<DeterministicSocketData> data(
1788 new DeterministicSocketData(reads, arraysize(reads), 1788 new DeterministicSocketData(reads, arraysize(reads),
1789 writes, arraysize(writes))); 1789 writes, arraysize(writes)));
1790 NormalSpdyTransactionHelper helper(CreateGetRequest(), 1790 NormalSpdyTransactionHelper helper(CreateGetRequest(),
1791 BoundNetLog(), GetParam()); 1791 BoundNetLog(), GetParam());
1792 helper.SetDeterministic(); 1792 helper.SetDeterministic();
1793 helper.RunPreTestSetup(); 1793 helper.RunPreTestSetup();
1794 helper.AddDeterministicData(data.get()); 1794 helper.AddDeterministicData(data.get());
(...skipping 11 matching lines...) Expand all
1806 data->Run(); 1806 data->Run();
1807 1807
1808 helper.VerifyDataConsumed(); 1808 helper.VerifyDataConsumed();
1809 } 1809 }
1810 1810
1811 // Test that the transaction doesn't crash when we don't have a reply. 1811 // Test that the transaction doesn't crash when we don't have a reply.
1812 TEST_P(SpdyNetworkTransactionTest, ResponseWithoutSynReply) { 1812 TEST_P(SpdyNetworkTransactionTest, ResponseWithoutSynReply) {
1813 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); 1813 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
1814 MockRead reads[] = { 1814 MockRead reads[] = {
1815 CreateMockRead(*body), 1815 CreateMockRead(*body),
1816 MockRead(true, 0, 0) // EOF 1816 MockRead(ASYNC, 0, 0) // EOF
1817 }; 1817 };
1818 1818
1819 scoped_ptr<DelayedSocketData> data( 1819 scoped_ptr<DelayedSocketData> data(
1820 new DelayedSocketData(1, reads, arraysize(reads), NULL, 0)); 1820 new DelayedSocketData(1, reads, arraysize(reads), NULL, 0));
1821 NormalSpdyTransactionHelper helper(CreateGetRequest(), 1821 NormalSpdyTransactionHelper helper(CreateGetRequest(),
1822 BoundNetLog(), GetParam()); 1822 BoundNetLog(), GetParam());
1823 helper.RunToCompletion(data.get()); 1823 helper.RunToCompletion(data.get());
1824 TransactionHelperResult out = helper.output(); 1824 TransactionHelperResult out = helper.output();
1825 EXPECT_EQ(ERR_SYN_REPLY_NOT_RECEIVED, out.rv); 1825 EXPECT_EQ(ERR_SYN_REPLY_NOT_RECEIVED, out.rv);
1826 } 1826 }
1827 1827
1828 // Test that the transaction doesn't crash when we get two replies on the same 1828 // Test that the transaction doesn't crash when we get two replies on the same
1829 // stream ID. See http://crbug.com/45639. 1829 // stream ID. See http://crbug.com/45639.
1830 TEST_P(SpdyNetworkTransactionTest, ResponseWithTwoSynReplies) { 1830 TEST_P(SpdyNetworkTransactionTest, ResponseWithTwoSynReplies) {
1831 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); 1831 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST));
1832 MockWrite writes[] = { CreateMockWrite(*req) }; 1832 MockWrite writes[] = { CreateMockWrite(*req) };
1833 1833
1834 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 1834 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
1835 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); 1835 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
1836 MockRead reads[] = { 1836 MockRead reads[] = {
1837 CreateMockRead(*resp), 1837 CreateMockRead(*resp),
1838 CreateMockRead(*resp), 1838 CreateMockRead(*resp),
1839 CreateMockRead(*body), 1839 CreateMockRead(*body),
1840 MockRead(true, 0, 0) // EOF 1840 MockRead(ASYNC, 0, 0) // EOF
1841 }; 1841 };
1842 1842
1843 scoped_ptr<DelayedSocketData> data( 1843 scoped_ptr<DelayedSocketData> data(
1844 new DelayedSocketData(1, reads, arraysize(reads), 1844 new DelayedSocketData(1, reads, arraysize(reads),
1845 writes, arraysize(writes))); 1845 writes, arraysize(writes)));
1846 1846
1847 NormalSpdyTransactionHelper helper(CreateGetRequest(), 1847 NormalSpdyTransactionHelper helper(CreateGetRequest(),
1848 BoundNetLog(), GetParam()); 1848 BoundNetLog(), GetParam());
1849 helper.RunPreTestSetup(); 1849 helper.RunPreTestSetup();
1850 helper.AddData(data.get()); 1850 helper.AddData(data.get());
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
1918 MockRead reads[] = { 1918 MockRead reads[] = {
1919 CreateMockRead(*window_update_dummy), 1919 CreateMockRead(*window_update_dummy),
1920 CreateMockRead(*window_update_dummy), 1920 CreateMockRead(*window_update_dummy),
1921 CreateMockRead(*window_update_dummy), 1921 CreateMockRead(*window_update_dummy),
1922 CreateMockRead(*window_update), // Four updates, therefore window 1922 CreateMockRead(*window_update), // Four updates, therefore window
1923 CreateMockRead(*window_update), // size should increase by 1923 CreateMockRead(*window_update), // size should increase by
1924 CreateMockRead(*window_update), // kDeltaWindowSize * 4 1924 CreateMockRead(*window_update), // kDeltaWindowSize * 4
1925 CreateMockRead(*window_update), 1925 CreateMockRead(*window_update),
1926 CreateMockRead(*resp), 1926 CreateMockRead(*resp),
1927 CreateMockRead(*body_end), 1927 CreateMockRead(*body_end),
1928 MockRead(true, 0, 0) // EOF 1928 MockRead(ASYNC, 0, 0) // EOF
1929 }; 1929 };
1930 1930
1931 scoped_ptr<DelayedSocketData> data( 1931 scoped_ptr<DelayedSocketData> data(
1932 new DelayedSocketData(0, reads, arraysize(reads), 1932 new DelayedSocketData(0, reads, arraysize(reads),
1933 writes, arraysize(writes))); 1933 writes, arraysize(writes)));
1934 1934
1935 // Setup the request 1935 // Setup the request
1936 HttpRequestInfo request; 1936 HttpRequestInfo request;
1937 request.method = "POST"; 1937 request.method = "POST";
1938 request.url = GURL(kDefaultURL); 1938 request.url = GURL(kDefaultURL);
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
1981 1981
1982 scoped_ptr<spdy::SpdyFrame> resp( 1982 scoped_ptr<spdy::SpdyFrame> resp(
1983 ConstructSpdyGetSynReply(NULL, 0, 1)); 1983 ConstructSpdyGetSynReply(NULL, 0, 1));
1984 scoped_ptr<spdy::SpdyFrame> body_no_fin( 1984 scoped_ptr<spdy::SpdyFrame> body_no_fin(
1985 ConstructSpdyBodyFrame(1, false)); 1985 ConstructSpdyBodyFrame(1, false));
1986 scoped_ptr<spdy::SpdyFrame> body_fin( 1986 scoped_ptr<spdy::SpdyFrame> body_fin(
1987 ConstructSpdyBodyFrame(1, NULL, 0, true)); 1987 ConstructSpdyBodyFrame(1, NULL, 0, true));
1988 MockRead reads[] = { 1988 MockRead reads[] = {
1989 CreateMockRead(*resp), 1989 CreateMockRead(*resp),
1990 CreateMockRead(*body_no_fin), 1990 CreateMockRead(*body_no_fin),
1991 MockRead(true, ERR_IO_PENDING, 0), // Force a pause 1991 MockRead(ASYNC, ERR_IO_PENDING, 0), // Force a pause
1992 CreateMockRead(*body_fin), 1992 CreateMockRead(*body_fin),
1993 MockRead(true, ERR_IO_PENDING, 0), // Force a pause 1993 MockRead(ASYNC, ERR_IO_PENDING, 0), // Force a pause
1994 MockRead(true, 0, 0) // EOF 1994 MockRead(ASYNC, 0, 0) // EOF
1995 }; 1995 };
1996 1996
1997 scoped_ptr<DelayedSocketData> data( 1997 scoped_ptr<DelayedSocketData> data(
1998 new DelayedSocketData(1, reads, arraysize(reads), 1998 new DelayedSocketData(1, reads, arraysize(reads),
1999 writes, arraysize(writes))); 1999 writes, arraysize(writes)));
2000 2000
2001 NormalSpdyTransactionHelper helper(CreateGetRequest(), 2001 NormalSpdyTransactionHelper helper(CreateGetRequest(),
2002 BoundNetLog(), GetParam()); 2002 BoundNetLog(), GetParam());
2003 helper.AddData(data.get()); 2003 helper.AddData(data.get());
2004 helper.RunPreTestSetup(); 2004 helper.RunPreTestSetup();
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
2081 scoped_ptr<spdy::SpdyFrame> window_update2( 2081 scoped_ptr<spdy::SpdyFrame> window_update2(
2082 ConstructSpdyWindowUpdate(2, kDeltaWindowSize)); 2082 ConstructSpdyWindowUpdate(2, kDeltaWindowSize));
2083 scoped_ptr<spdy::SpdyFrame> reply(ConstructSpdyPostSynReply(NULL, 0)); 2083 scoped_ptr<spdy::SpdyFrame> reply(ConstructSpdyPostSynReply(NULL, 0));
2084 2084
2085 MockRead reads[] = { 2085 MockRead reads[] = {
2086 CreateMockRead(*window_update2), 2086 CreateMockRead(*window_update2),
2087 CreateMockRead(*window_update2), 2087 CreateMockRead(*window_update2),
2088 CreateMockRead(*window_update), 2088 CreateMockRead(*window_update),
2089 CreateMockRead(*window_update), 2089 CreateMockRead(*window_update),
2090 CreateMockRead(*window_update), 2090 CreateMockRead(*window_update),
2091 MockRead(true, ERR_IO_PENDING, 0), // Wait for the RST to be written. 2091 MockRead(ASYNC, ERR_IO_PENDING, 0), // Wait for the RST to be written.
2092 MockRead(true, 0, 0) // EOF 2092 MockRead(ASYNC, 0, 0) // EOF
2093 }; 2093 };
2094 2094
2095 scoped_ptr<DelayedSocketData> data( 2095 scoped_ptr<DelayedSocketData> data(
2096 new DelayedSocketData(0, reads, arraysize(reads), 2096 new DelayedSocketData(0, reads, arraysize(reads),
2097 writes, arraysize(writes))); 2097 writes, arraysize(writes)));
2098 2098
2099 // Setup the request 2099 // Setup the request
2100 HttpRequestInfo request; 2100 HttpRequestInfo request;
2101 request.method = "POST"; 2101 request.method = "POST";
2102 request.url = GURL("http://www.google.com/"); 2102 request.url = GURL("http://www.google.com/");
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
2188 // data. 2188 // data.
2189 scoped_ptr<spdy::SpdyFrame> window_update( 2189 scoped_ptr<spdy::SpdyFrame> window_update(
2190 ConstructSpdyWindowUpdate(1, kUploadDataSize)); 2190 ConstructSpdyWindowUpdate(1, kUploadDataSize));
2191 scoped_ptr<spdy::SpdyFrame> reply(ConstructSpdyPostSynReply(NULL, 0)); 2191 scoped_ptr<spdy::SpdyFrame> reply(ConstructSpdyPostSynReply(NULL, 0));
2192 MockRead reads[] = { 2192 MockRead reads[] = {
2193 CreateMockRead(*window_update), 2193 CreateMockRead(*window_update),
2194 CreateMockRead(*window_update), 2194 CreateMockRead(*window_update),
2195 CreateMockRead(*reply), 2195 CreateMockRead(*reply),
2196 CreateMockRead(*body2), 2196 CreateMockRead(*body2),
2197 CreateMockRead(*body3), 2197 CreateMockRead(*body3),
2198 MockRead(true, 0, 0) // EOF 2198 MockRead(ASYNC, 0, 0) // EOF
2199 }; 2199 };
2200 2200
2201 // Force all writes to happen before any read, last write will not 2201 // Force all writes to happen before any read, last write will not
2202 // actually queue a frame, due to window size being 0. 2202 // actually queue a frame, due to window size being 0.
2203 scoped_ptr<DelayedSocketData> data( 2203 scoped_ptr<DelayedSocketData> data(
2204 new DelayedSocketData(nwrites, reads, arraysize(reads), 2204 new DelayedSocketData(nwrites, reads, arraysize(reads),
2205 writes.get(), nwrites)); 2205 writes.get(), nwrites));
2206 2206
2207 HttpRequestInfo request; 2207 HttpRequestInfo request;
2208 request.method = "POST"; 2208 request.method = "POST";
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
2250 CreateMockWrite(*req), 2250 CreateMockWrite(*req),
2251 }; 2251 };
2252 2252
2253 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 2253 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
2254 MockRead reads[] = { 2254 MockRead reads[] = {
2255 CreateMockRead(*resp), 2255 CreateMockRead(*resp),
2256 // This following read isn't used by the test, except during the 2256 // This following read isn't used by the test, except during the
2257 // RunAllPending() call at the end since the SpdySession survives the 2257 // RunAllPending() call at the end since the SpdySession survives the
2258 // HttpNetworkTransaction and still tries to continue Read()'ing. Any 2258 // HttpNetworkTransaction and still tries to continue Read()'ing. Any
2259 // MockRead will do here. 2259 // MockRead will do here.
2260 MockRead(true, 0, 0) // EOF 2260 MockRead(ASYNC, 0, 0) // EOF
2261 }; 2261 };
2262 2262
2263 StaticSocketDataProvider data(reads, arraysize(reads), 2263 StaticSocketDataProvider data(reads, arraysize(reads),
2264 writes, arraysize(writes)); 2264 writes, arraysize(writes));
2265 2265
2266 NormalSpdyTransactionHelper helper(CreateGetRequest(), 2266 NormalSpdyTransactionHelper helper(CreateGetRequest(),
2267 BoundNetLog(), GetParam()); 2267 BoundNetLog(), GetParam());
2268 helper.RunPreTestSetup(); 2268 helper.RunPreTestSetup();
2269 helper.AddData(&data); 2269 helper.AddData(&data);
2270 HttpNetworkTransaction* trans = helper.trans(); 2270 HttpNetworkTransaction* trans = helper.trans();
2271 2271
2272 TestCompletionCallback callback; 2272 TestCompletionCallback callback;
2273 int rv = trans->Start( 2273 int rv = trans->Start(
2274 &CreateGetRequest(), callback.callback(), BoundNetLog()); 2274 &CreateGetRequest(), callback.callback(), BoundNetLog());
2275 EXPECT_EQ(ERR_IO_PENDING, rv); 2275 EXPECT_EQ(ERR_IO_PENDING, rv);
2276 helper.ResetTrans(); // Cancel the transaction. 2276 helper.ResetTrans(); // Cancel the transaction.
2277 2277
2278 // Flush the MessageLoop while the SpdySessionDependencies (in particular, the 2278 // Flush the MessageLoop while the SpdySessionDependencies (in particular, the
2279 // MockClientSocketFactory) are still alive. 2279 // MockClientSocketFactory) are still alive.
2280 MessageLoop::current()->RunAllPending(); 2280 MessageLoop::current()->RunAllPending();
2281 helper.VerifyDataNotConsumed(); 2281 helper.VerifyDataNotConsumed();
2282 } 2282 }
2283 2283
2284 // Verify that the client sends a Rst Frame upon cancelling the stream. 2284 // Verify that the client sends a Rst Frame upon cancelling the stream.
2285 TEST_P(SpdyNetworkTransactionTest, CancelledTransactionSendRst) { 2285 TEST_P(SpdyNetworkTransactionTest, CancelledTransactionSendRst) {
2286 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); 2286 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST));
2287 scoped_ptr<spdy::SpdyFrame> rst( 2287 scoped_ptr<spdy::SpdyFrame> rst(
2288 ConstructSpdyRstStream(1, spdy::CANCEL)); 2288 ConstructSpdyRstStream(1, spdy::CANCEL));
2289 MockWrite writes[] = { 2289 MockWrite writes[] = {
2290 CreateMockWrite(*req, 0, false), 2290 CreateMockWrite(*req, 0, SYNCHRONOUS),
2291 CreateMockWrite(*rst, 2, false), 2291 CreateMockWrite(*rst, 2, SYNCHRONOUS),
2292 }; 2292 };
2293 2293
2294 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 2294 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
2295 MockRead reads[] = { 2295 MockRead reads[] = {
2296 CreateMockRead(*resp, 1, true), 2296 CreateMockRead(*resp, 1, ASYNC),
2297 MockRead(true, 0, 0, 3) // EOF 2297 MockRead(ASYNC, 0, 0, 3) // EOF
2298 }; 2298 };
2299 2299
2300 scoped_refptr<DeterministicSocketData> data( 2300 scoped_refptr<DeterministicSocketData> data(
2301 new DeterministicSocketData(reads, arraysize(reads), 2301 new DeterministicSocketData(reads, arraysize(reads),
2302 writes, arraysize(writes))); 2302 writes, arraysize(writes)));
2303 2303
2304 NormalSpdyTransactionHelper helper(CreateGetRequest(), 2304 NormalSpdyTransactionHelper helper(CreateGetRequest(),
2305 BoundNetLog(), 2305 BoundNetLog(),
2306 GetParam()); 2306 GetParam());
2307 helper.SetDeterministic(); 2307 helper.SetDeterministic();
(...skipping 29 matching lines...) Expand all
2337 // session, and calls the read callback with the incomplete data. 2337 // session, and calls the read callback with the incomplete data.
2338 const uint8 kGetBodyFrame2[] = { 2338 const uint8 kGetBodyFrame2[] = {
2339 0x00, 0x00, 0x00, 0x01, 2339 0x00, 0x00, 0x00, 0x01,
2340 0x01, 0x00, 0x00, 0x07, 2340 0x01, 0x00, 0x00, 0x07,
2341 'h', 'e', 'l', 'l', 'o', '!', 2341 'h', 'e', 'l', 'l', 'o', '!',
2342 }; 2342 };
2343 2343
2344 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 2344 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
2345 MockRead reads[] = { 2345 MockRead reads[] = {
2346 CreateMockRead(*resp, 2), 2346 CreateMockRead(*resp, 2),
2347 MockRead(true, ERR_IO_PENDING, 3), // Force a pause 2347 MockRead(ASYNC, ERR_IO_PENDING, 3), // Force a pause
2348 MockRead(true, reinterpret_cast<const char*>(kGetBodyFrame2), 2348 MockRead(ASYNC, reinterpret_cast<const char*>(kGetBodyFrame2),
2349 arraysize(kGetBodyFrame2), 4), 2349 arraysize(kGetBodyFrame2), 4),
2350 MockRead(true, ERR_IO_PENDING, 5), // Force a pause 2350 MockRead(ASYNC, ERR_IO_PENDING, 5), // Force a pause
2351 MockRead(true, 0, 0, 6), // EOF 2351 MockRead(ASYNC, 0, 0, 6), // EOF
2352 }; 2352 };
2353 MockRead reads2[] = { 2353 MockRead reads2[] = {
2354 CreateMockRead(*resp, 2), 2354 CreateMockRead(*resp, 2),
2355 MockRead(true, 0, 0, 3), // EOF 2355 MockRead(ASYNC, 0, 0, 3), // EOF
2356 }; 2356 };
2357 2357
2358 scoped_ptr<OrderedSocketData> data( 2358 scoped_ptr<OrderedSocketData> data(
2359 new OrderedSocketData(reads, arraysize(reads), 2359 new OrderedSocketData(reads, arraysize(reads),
2360 writes, arraysize(writes))); 2360 writes, arraysize(writes)));
2361 scoped_ptr<DelayedSocketData> data2( 2361 scoped_ptr<DelayedSocketData> data2(
2362 new DelayedSocketData(1, reads2, arraysize(reads2), 2362 new DelayedSocketData(1, reads2, arraysize(reads2),
2363 writes2, arraysize(writes2))); 2363 writes2, arraysize(writes2)));
2364 2364
2365 NormalSpdyTransactionHelper helper(CreateGetRequest(), 2365 NormalSpdyTransactionHelper helper(CreateGetRequest(),
(...skipping 26 matching lines...) Expand all
2392 // transaction. Failures will usually be valgrind errors. See 2392 // transaction. Failures will usually be valgrind errors. See
2393 // http://crbug.com/46925 2393 // http://crbug.com/46925
2394 TEST_P(SpdyNetworkTransactionTest, DeleteSessionOnReadCallback) { 2394 TEST_P(SpdyNetworkTransactionTest, DeleteSessionOnReadCallback) {
2395 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); 2395 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST));
2396 MockWrite writes[] = { CreateMockWrite(*req) }; 2396 MockWrite writes[] = { CreateMockWrite(*req) };
2397 2397
2398 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 2398 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
2399 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); 2399 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
2400 MockRead reads[] = { 2400 MockRead reads[] = {
2401 CreateMockRead(*resp.get(), 2), 2401 CreateMockRead(*resp.get(), 2),
2402 MockRead(true, ERR_IO_PENDING, 3), // Force a pause 2402 MockRead(ASYNC, ERR_IO_PENDING, 3), // Force a pause
2403 CreateMockRead(*body.get(), 4), 2403 CreateMockRead(*body.get(), 4),
2404 MockRead(true, 0, 0, 5), // EOF 2404 MockRead(ASYNC, 0, 0, 5), // EOF
2405 }; 2405 };
2406 2406
2407 scoped_ptr<OrderedSocketData> data( 2407 scoped_ptr<OrderedSocketData> data(
2408 new OrderedSocketData(reads, arraysize(reads), 2408 new OrderedSocketData(reads, arraysize(reads),
2409 writes, arraysize(writes))); 2409 writes, arraysize(writes)));
2410 2410
2411 NormalSpdyTransactionHelper helper(CreateGetRequest(), 2411 NormalSpdyTransactionHelper helper(CreateGetRequest(),
2412 BoundNetLog(), GetParam()); 2412 BoundNetLog(), GetParam());
2413 helper.RunPreTestSetup(); 2413 helper.RunPreTestSetup();
2414 helper.AddData(data.get()); 2414 helper.AddData(data.get());
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
2479 kStandardGetHeaders, arraysize(kStandardGetHeaders) / 2)); 2479 kStandardGetHeaders, arraysize(kStandardGetHeaders) / 2));
2480 scoped_ptr<spdy::SpdyFrame> req2(ConstructSpdyPacket( 2480 scoped_ptr<spdy::SpdyFrame> req2(ConstructSpdyPacket(
2481 kSynStartHeader, kExtraHeaders, arraysize(kExtraHeaders) / 2, 2481 kSynStartHeader, kExtraHeaders, arraysize(kExtraHeaders) / 2,
2482 kStandardGetHeaders2, arraysize(kStandardGetHeaders2) / 2)); 2482 kStandardGetHeaders2, arraysize(kStandardGetHeaders2) / 2));
2483 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReplyRedirect(1)); 2483 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReplyRedirect(1));
2484 MockWrite writes[] = { 2484 MockWrite writes[] = {
2485 CreateMockWrite(*req, 1), 2485 CreateMockWrite(*req, 1),
2486 }; 2486 };
2487 MockRead reads[] = { 2487 MockRead reads[] = {
2488 CreateMockRead(*resp, 2), 2488 CreateMockRead(*resp, 2),
2489 MockRead(true, 0, 0, 3) // EOF 2489 MockRead(ASYNC, 0, 0, 3) // EOF
2490 }; 2490 };
2491 2491
2492 // Setup writes/reads to www.foo.com 2492 // Setup writes/reads to www.foo.com
2493 scoped_ptr<spdy::SpdyFrame> resp2(ConstructSpdyGetSynReply(NULL, 0, 1)); 2493 scoped_ptr<spdy::SpdyFrame> resp2(ConstructSpdyGetSynReply(NULL, 0, 1));
2494 scoped_ptr<spdy::SpdyFrame> body2(ConstructSpdyBodyFrame(1, true)); 2494 scoped_ptr<spdy::SpdyFrame> body2(ConstructSpdyBodyFrame(1, true));
2495 MockWrite writes2[] = { 2495 MockWrite writes2[] = {
2496 CreateMockWrite(*req2, 1), 2496 CreateMockWrite(*req2, 1),
2497 }; 2497 };
2498 MockRead reads2[] = { 2498 MockRead reads2[] = {
2499 CreateMockRead(*resp2, 2), 2499 CreateMockRead(*resp2, 2),
2500 CreateMockRead(*body2, 3), 2500 CreateMockRead(*body2, 3),
2501 MockRead(true, 0, 0, 4) // EOF 2501 MockRead(ASYNC, 0, 0, 4) // EOF
2502 }; 2502 };
2503 scoped_ptr<OrderedSocketData> data( 2503 scoped_ptr<OrderedSocketData> data(
2504 new OrderedSocketData(reads, arraysize(reads), 2504 new OrderedSocketData(reads, arraysize(reads),
2505 writes, arraysize(writes))); 2505 writes, arraysize(writes)));
2506 scoped_ptr<OrderedSocketData> data2( 2506 scoped_ptr<OrderedSocketData> data2(
2507 new OrderedSocketData(reads2, arraysize(reads2), 2507 new OrderedSocketData(reads2, arraysize(reads2),
2508 writes2, arraysize(writes2))); 2508 writes2, arraysize(writes2)));
2509 2509
2510 // TODO(erikchen): Make test support SPDYSSL, SPDYNPN 2510 // TODO(erikchen): Make test support SPDYSSL, SPDYNPN
2511 HttpStreamFactory::set_force_spdy_over_ssl(false); 2511 HttpStreamFactory::set_force_spdy_over_ssl(false);
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
2550 MockWrite writes[] = { 2550 MockWrite writes[] = {
2551 CreateMockWrite(*syn, 0), 2551 CreateMockWrite(*syn, 0),
2552 CreateMockWrite(*rst, 2), 2552 CreateMockWrite(*rst, 2),
2553 }; 2553 };
2554 2554
2555 const char* const kExtraHeaders[] = {"X-UpperCase", "yes"}; 2555 const char* const kExtraHeaders[] = {"X-UpperCase", "yes"};
2556 scoped_ptr<spdy::SpdyFrame> 2556 scoped_ptr<spdy::SpdyFrame>
2557 reply(ConstructSpdyGetSynReply(kExtraHeaders, 1, 1)); 2557 reply(ConstructSpdyGetSynReply(kExtraHeaders, 1, 1));
2558 MockRead reads[] = { 2558 MockRead reads[] = {
2559 CreateMockRead(*reply, 1), 2559 CreateMockRead(*reply, 1),
2560 MockRead(true, ERR_IO_PENDING, 3), // Force a pause 2560 MockRead(ASYNC, ERR_IO_PENDING, 3), // Force a pause
2561 }; 2561 };
2562 2562
2563 HttpResponseInfo response; 2563 HttpResponseInfo response;
2564 HttpResponseInfo response2; 2564 HttpResponseInfo response2;
2565 scoped_ptr<OrderedSocketData> data(new OrderedSocketData( 2565 scoped_ptr<OrderedSocketData> data(new OrderedSocketData(
2566 reads, 2566 reads,
2567 arraysize(reads), 2567 arraysize(reads),
2568 writes, 2568 writes,
2569 arraysize(writes))); 2569 arraysize(writes)));
2570 NormalSpdyTransactionHelper helper(CreateGetRequest(), 2570 NormalSpdyTransactionHelper helper(CreateGetRequest(),
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
2613 spdy::HEADERS, 2613 spdy::HEADERS,
2614 spdy::CONTROL_FLAG_NONE, 2614 spdy::CONTROL_FLAG_NONE,
2615 NULL, 2615 NULL,
2616 0, 2616 0,
2617 0)); 2617 0));
2618 scoped_ptr<spdy::SpdyFrame> stream1_body(ConstructSpdyBodyFrame(1, true)); 2618 scoped_ptr<spdy::SpdyFrame> stream1_body(ConstructSpdyBodyFrame(1, true));
2619 MockRead reads[] = { 2619 MockRead reads[] = {
2620 CreateMockRead(*stream1_reply), 2620 CreateMockRead(*stream1_reply),
2621 CreateMockRead(*stream1_headers), 2621 CreateMockRead(*stream1_headers),
2622 CreateMockRead(*stream1_body), 2622 CreateMockRead(*stream1_body),
2623 MockRead(true, 0, 0) // EOF 2623 MockRead(ASYNC, 0, 0) // EOF
2624 }; 2624 };
2625 2625
2626 scoped_ptr<DelayedSocketData> data( 2626 scoped_ptr<DelayedSocketData> data(
2627 new DelayedSocketData(1, reads, arraysize(reads), 2627 new DelayedSocketData(1, reads, arraysize(reads),
2628 writes, arraysize(writes))); 2628 writes, arraysize(writes)));
2629 NormalSpdyTransactionHelper helper(CreateGetRequest(), 2629 NormalSpdyTransactionHelper helper(CreateGetRequest(),
2630 BoundNetLog(), GetParam()); 2630 BoundNetLog(), GetParam());
2631 helper.RunToCompletion(data.get()); 2631 helper.RunToCompletion(data.get());
2632 TransactionHelperResult out = helper.output(); 2632 TransactionHelperResult out = helper.output();
2633 EXPECT_EQ(ERR_SPDY_PROTOCOL_ERROR, out.rv); 2633 EXPECT_EQ(ERR_SPDY_PROTOCOL_ERROR, out.rv);
(...skipping 13 matching lines...) Expand all
2647 scoped_ptr<spdy::SpdyFrame> 2647 scoped_ptr<spdy::SpdyFrame>
2648 reply(ConstructSpdyGetSynReply(NULL, 0, 1)); 2648 reply(ConstructSpdyGetSynReply(NULL, 0, 1));
2649 const char* const extra_headers[] = {"X-UpperCase", "yes"}; 2649 const char* const extra_headers[] = {"X-UpperCase", "yes"};
2650 scoped_ptr<spdy::SpdyFrame> 2650 scoped_ptr<spdy::SpdyFrame>
2651 push(ConstructSpdyPush(extra_headers, 1, 2, 1)); 2651 push(ConstructSpdyPush(extra_headers, 1, 2, 1));
2652 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); 2652 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
2653 MockRead reads[] = { 2653 MockRead reads[] = {
2654 CreateMockRead(*reply, 1), 2654 CreateMockRead(*reply, 1),
2655 CreateMockRead(*push, 1), 2655 CreateMockRead(*push, 1),
2656 CreateMockRead(*body, 1), 2656 CreateMockRead(*body, 1),
2657 MockRead(true, ERR_IO_PENDING, 3), // Force a pause 2657 MockRead(ASYNC, ERR_IO_PENDING, 3), // Force a pause
2658 }; 2658 };
2659 2659
2660 HttpResponseInfo response; 2660 HttpResponseInfo response;
2661 HttpResponseInfo response2; 2661 HttpResponseInfo response2;
2662 scoped_ptr<OrderedSocketData> data(new OrderedSocketData( 2662 scoped_ptr<OrderedSocketData> data(new OrderedSocketData(
2663 reads, 2663 reads,
2664 arraysize(reads), 2664 arraysize(reads),
2665 writes, 2665 writes,
2666 arraysize(writes))); 2666 arraysize(writes)));
2667 NormalSpdyTransactionHelper helper(CreateGetRequest(), 2667 NormalSpdyTransactionHelper helper(CreateGetRequest(),
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
2714 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); 2714 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
2715 scoped_ptr<spdy::SpdyFrame> rst(ConstructSpdyRstStream(2, spdy::CANCEL)); 2715 scoped_ptr<spdy::SpdyFrame> rst(ConstructSpdyRstStream(2, spdy::CANCEL));
2716 MockWrite writes[] = { 2716 MockWrite writes[] = {
2717 CreateMockWrite(*req, 1), 2717 CreateMockWrite(*req, 1),
2718 CreateMockWrite(*rst, 6), 2718 CreateMockWrite(*rst, 6),
2719 }; 2719 };
2720 MockRead reads[] = { 2720 MockRead reads[] = {
2721 CreateMockRead(*resp, 2), 2721 CreateMockRead(*resp, 2),
2722 CreateMockRead(*rep, 3), 2722 CreateMockRead(*rep, 3),
2723 CreateMockRead(*body, 4), 2723 CreateMockRead(*body, 4),
2724 MockRead(true, ERR_IO_PENDING, 5), // Force a pause 2724 MockRead(ASYNC, ERR_IO_PENDING, 5), // Force a pause
2725 MockRead(true, 0, 0, 7) // EOF 2725 MockRead(ASYNC, 0, 0, 7) // EOF
2726 }; 2726 };
2727 2727
2728 // Setup writes/reads to www.foo.com 2728 // Setup writes/reads to www.foo.com
2729 const char* const kStandardGetHeaders2[] = { 2729 const char* const kStandardGetHeaders2[] = {
2730 "host", 2730 "host",
2731 "www.foo.com", 2731 "www.foo.com",
2732 "method", 2732 "method",
2733 "GET", 2733 "GET",
2734 "scheme", 2734 "scheme",
2735 "http", 2735 "http",
(...skipping 11 matching lines...) Expand all
2747 kStandardGetHeaders2, 2747 kStandardGetHeaders2,
2748 arraysize(kStandardGetHeaders2) / 2)); 2748 arraysize(kStandardGetHeaders2) / 2));
2749 scoped_ptr<spdy::SpdyFrame> resp2(ConstructSpdyGetSynReply(NULL, 0, 1)); 2749 scoped_ptr<spdy::SpdyFrame> resp2(ConstructSpdyGetSynReply(NULL, 0, 1));
2750 scoped_ptr<spdy::SpdyFrame> body2(ConstructSpdyBodyFrame(1, true)); 2750 scoped_ptr<spdy::SpdyFrame> body2(ConstructSpdyBodyFrame(1, true));
2751 MockWrite writes2[] = { 2751 MockWrite writes2[] = {
2752 CreateMockWrite(*req2, 1), 2752 CreateMockWrite(*req2, 1),
2753 }; 2753 };
2754 MockRead reads2[] = { 2754 MockRead reads2[] = {
2755 CreateMockRead(*resp2, 2), 2755 CreateMockRead(*resp2, 2),
2756 CreateMockRead(*body2, 3), 2756 CreateMockRead(*body2, 3),
2757 MockRead(true, 0, 0, 5) // EOF 2757 MockRead(ASYNC, 0, 0, 5) // EOF
2758 }; 2758 };
2759 scoped_ptr<OrderedSocketData> data( 2759 scoped_ptr<OrderedSocketData> data(
2760 new OrderedSocketData(reads, arraysize(reads), 2760 new OrderedSocketData(reads, arraysize(reads),
2761 writes, arraysize(writes))); 2761 writes, arraysize(writes)));
2762 scoped_ptr<OrderedSocketData> data2( 2762 scoped_ptr<OrderedSocketData> data2(
2763 new OrderedSocketData(reads2, arraysize(reads2), 2763 new OrderedSocketData(reads2, arraysize(reads2),
2764 writes2, arraysize(writes2))); 2764 writes2, arraysize(writes2)));
2765 2765
2766 // TODO(erikchen): Make test support SPDYSSL, SPDYNPN 2766 // TODO(erikchen): Make test support SPDYSSL, SPDYNPN
2767 HttpStreamFactory::set_force_spdy_over_ssl(false); 2767 HttpStreamFactory::set_force_spdy_over_ssl(false);
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
2827 stream1_reply(ConstructSpdyGetSynReply(NULL, 0, 1)); 2827 stream1_reply(ConstructSpdyGetSynReply(NULL, 0, 1));
2828 scoped_ptr<spdy::SpdyFrame> 2828 scoped_ptr<spdy::SpdyFrame>
2829 stream2_syn(ConstructSpdyPush(NULL, 2829 stream2_syn(ConstructSpdyPush(NULL,
2830 0, 2830 0,
2831 2, 2831 2,
2832 1, 2832 1,
2833 "http://www.google.com/foo.dat")); 2833 "http://www.google.com/foo.dat"));
2834 MockRead reads[] = { 2834 MockRead reads[] = {
2835 CreateMockRead(*stream1_reply, 2), 2835 CreateMockRead(*stream1_reply, 2),
2836 CreateMockRead(*stream2_syn, 3), 2836 CreateMockRead(*stream2_syn, 3),
2837 CreateMockRead(*stream1_body, 4, false), 2837 CreateMockRead(*stream1_body, 4, SYNCHRONOUS),
2838 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame), 2838 MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame),
2839 arraysize(kPushBodyFrame), 5), 2839 arraysize(kPushBodyFrame), 5),
2840 MockRead(true, ERR_IO_PENDING, 6), // Force a pause 2840 MockRead(ASYNC, ERR_IO_PENDING, 6), // Force a pause
2841 }; 2841 };
2842 2842
2843 HttpResponseInfo response; 2843 HttpResponseInfo response;
2844 HttpResponseInfo response2; 2844 HttpResponseInfo response2;
2845 std::string expected_push_result("pushed"); 2845 std::string expected_push_result("pushed");
2846 scoped_ptr<OrderedSocketData> data(new OrderedSocketData( 2846 scoped_ptr<OrderedSocketData> data(new OrderedSocketData(
2847 reads, 2847 reads,
2848 arraysize(reads), 2848 arraysize(reads),
2849 writes, 2849 writes,
2850 arraysize(writes))); 2850 arraysize(writes)));
(...skipping 29 matching lines...) Expand all
2880 stream2_syn(ConstructSpdyPush(NULL, 2880 stream2_syn(ConstructSpdyPush(NULL,
2881 0, 2881 0,
2882 2, 2882 2,
2883 1, 2883 1,
2884 "http://www.google.com/foo.dat")); 2884 "http://www.google.com/foo.dat"));
2885 scoped_ptr<spdy::SpdyFrame> 2885 scoped_ptr<spdy::SpdyFrame>
2886 stream1_body(ConstructSpdyBodyFrame(1, true)); 2886 stream1_body(ConstructSpdyBodyFrame(1, true));
2887 MockRead reads[] = { 2887 MockRead reads[] = {
2888 CreateMockRead(*stream1_reply, 2), 2888 CreateMockRead(*stream1_reply, 2),
2889 CreateMockRead(*stream2_syn, 3), 2889 CreateMockRead(*stream2_syn, 3),
2890 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame), 2890 MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame),
2891 arraysize(kPushBodyFrame), 5), 2891 arraysize(kPushBodyFrame), 5),
2892 CreateMockRead(*stream1_body, 4, false), 2892 CreateMockRead(*stream1_body, 4, SYNCHRONOUS),
2893 MockRead(true, ERR_IO_PENDING, 6), // Force a pause 2893 MockRead(ASYNC, ERR_IO_PENDING, 6), // Force a pause
2894 }; 2894 };
2895 2895
2896 HttpResponseInfo response; 2896 HttpResponseInfo response;
2897 HttpResponseInfo response2; 2897 HttpResponseInfo response2;
2898 std::string expected_push_result("pushed"); 2898 std::string expected_push_result("pushed");
2899 scoped_ptr<OrderedSocketData> data(new OrderedSocketData( 2899 scoped_ptr<OrderedSocketData> data(new OrderedSocketData(
2900 reads, 2900 reads,
2901 arraysize(reads), 2901 arraysize(reads),
2902 writes, 2902 writes,
2903 arraysize(writes))); 2903 arraysize(writes)));
(...skipping 27 matching lines...) Expand all
2931 0, 2931 0,
2932 2, 2932 2,
2933 1, 2933 1,
2934 "http://www.google.com/foo.dat")); 2934 "http://www.google.com/foo.dat"));
2935 scoped_ptr<spdy::SpdyFrame> 2935 scoped_ptr<spdy::SpdyFrame>
2936 stream2_rst(ConstructSpdyRstStream(2, spdy::PROTOCOL_ERROR)); 2936 stream2_rst(ConstructSpdyRstStream(2, spdy::PROTOCOL_ERROR));
2937 MockRead reads[] = { 2937 MockRead reads[] = {
2938 CreateMockRead(*stream1_reply, 2), 2938 CreateMockRead(*stream1_reply, 2),
2939 CreateMockRead(*stream2_syn, 3), 2939 CreateMockRead(*stream2_syn, 3),
2940 CreateMockRead(*stream2_rst, 4), 2940 CreateMockRead(*stream2_rst, 4),
2941 CreateMockRead(*stream1_body, 5, false), 2941 CreateMockRead(*stream1_body, 5, SYNCHRONOUS),
2942 MockRead(true, ERR_IO_PENDING, 6), // Force a pause 2942 MockRead(ASYNC, ERR_IO_PENDING, 6), // Force a pause
2943 }; 2943 };
2944 2944
2945 scoped_ptr<OrderedSocketData> data( 2945 scoped_ptr<OrderedSocketData> data(
2946 new OrderedSocketData(reads, arraysize(reads), 2946 new OrderedSocketData(reads, arraysize(reads),
2947 writes, arraysize(writes))); 2947 writes, arraysize(writes)));
2948 NormalSpdyTransactionHelper helper(CreateGetRequest(), 2948 NormalSpdyTransactionHelper helper(CreateGetRequest(),
2949 BoundNetLog(), GetParam()); 2949 BoundNetLog(), GetParam());
2950 2950
2951 helper.RunPreTestSetup(); 2951 helper.RunPreTestSetup();
2952 helper.AddData(data.get()); 2952 helper.AddData(data.get());
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
3008 scoped_ptr<spdy::SpdyFrame> 3008 scoped_ptr<spdy::SpdyFrame>
3009 stream3_syn(ConstructSpdyPush(NULL, 3009 stream3_syn(ConstructSpdyPush(NULL,
3010 0, 3010 0,
3011 4, 3011 4,
3012 1, 3012 1,
3013 "http://www.google.com/foo.dat")); 3013 "http://www.google.com/foo.dat"));
3014 MockRead reads[] = { 3014 MockRead reads[] = {
3015 CreateMockRead(*stream1_reply, 2), 3015 CreateMockRead(*stream1_reply, 2),
3016 CreateMockRead(*stream2_syn, 3), 3016 CreateMockRead(*stream2_syn, 3),
3017 CreateMockRead(*stream3_syn, 4), 3017 CreateMockRead(*stream3_syn, 4),
3018 CreateMockRead(*stream1_body, 6, false), 3018 CreateMockRead(*stream1_body, 6, SYNCHRONOUS),
3019 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame), 3019 MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame),
3020 arraysize(kPushBodyFrame), 7), 3020 arraysize(kPushBodyFrame), 7),
3021 MockRead(true, ERR_IO_PENDING, 8), // Force a pause 3021 MockRead(ASYNC, ERR_IO_PENDING, 8), // Force a pause
3022 }; 3022 };
3023 3023
3024 HttpResponseInfo response; 3024 HttpResponseInfo response;
3025 HttpResponseInfo response2; 3025 HttpResponseInfo response2;
3026 std::string expected_push_result("pushed"); 3026 std::string expected_push_result("pushed");
3027 scoped_ptr<OrderedSocketData> data(new OrderedSocketData( 3027 scoped_ptr<OrderedSocketData> data(new OrderedSocketData(
3028 reads, 3028 reads,
3029 arraysize(reads), 3029 arraysize(reads),
3030 writes, 3030 writes,
3031 arraysize(writes))); 3031 arraysize(writes)));
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
3065 stream1_reply(ConstructSpdyGetSynReply(NULL, 0, 1)); 3065 stream1_reply(ConstructSpdyGetSynReply(NULL, 0, 1));
3066 scoped_ptr<spdy::SpdyFrame> 3066 scoped_ptr<spdy::SpdyFrame>
3067 stream2_syn(ConstructSpdyPush(NULL, 3067 stream2_syn(ConstructSpdyPush(NULL,
3068 0, 3068 0,
3069 2, 3069 2,
3070 1, 3070 1,
3071 "http://www.google.com/foo.dat")); 3071 "http://www.google.com/foo.dat"));
3072 MockRead reads[] = { 3072 MockRead reads[] = {
3073 CreateMockRead(*stream1_reply, 2), 3073 CreateMockRead(*stream1_reply, 2),
3074 CreateMockRead(*stream2_syn, 3), 3074 CreateMockRead(*stream2_syn, 3),
3075 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame1), 3075 MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame1),
3076 arraysize(kPushBodyFrame1), 4), 3076 arraysize(kPushBodyFrame1), 4),
3077 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame2), 3077 MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame2),
3078 arraysize(kPushBodyFrame2) - 1, 5), 3078 arraysize(kPushBodyFrame2) - 1, 5),
3079 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame3), 3079 MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame3),
3080 arraysize(kPushBodyFrame3) - 1, 6), 3080 arraysize(kPushBodyFrame3) - 1, 6),
3081 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame4), 3081 MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame4),
3082 arraysize(kPushBodyFrame4) - 1, 7), 3082 arraysize(kPushBodyFrame4) - 1, 7),
3083 CreateMockRead(*stream1_body, 8, false), 3083 CreateMockRead(*stream1_body, 8, SYNCHRONOUS),
3084 MockRead(true, ERR_IO_PENDING, 9), // Force a pause 3084 MockRead(ASYNC, ERR_IO_PENDING, 9), // Force a pause
3085 }; 3085 };
3086 3086
3087 HttpResponseInfo response; 3087 HttpResponseInfo response;
3088 HttpResponseInfo response2; 3088 HttpResponseInfo response2;
3089 std::string expected_push_result("pushed my darling hello my baby"); 3089 std::string expected_push_result("pushed my darling hello my baby");
3090 scoped_ptr<OrderedSocketData> data(new OrderedSocketData( 3090 scoped_ptr<OrderedSocketData> data(new OrderedSocketData(
3091 reads, 3091 reads,
3092 arraysize(reads), 3092 arraysize(reads),
3093 writes, 3093 writes,
3094 arraysize(writes))); 3094 arraysize(writes)));
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
3130 stream1_reply(ConstructSpdyGetSynReply(NULL, 0, 1)); 3130 stream1_reply(ConstructSpdyGetSynReply(NULL, 0, 1));
3131 scoped_ptr<spdy::SpdyFrame> 3131 scoped_ptr<spdy::SpdyFrame>
3132 stream2_syn(ConstructSpdyPush(NULL, 3132 stream2_syn(ConstructSpdyPush(NULL,
3133 0, 3133 0,
3134 2, 3134 2,
3135 1, 3135 1,
3136 "http://www.google.com/foo.dat")); 3136 "http://www.google.com/foo.dat"));
3137 MockRead reads[] = { 3137 MockRead reads[] = {
3138 CreateMockRead(*stream1_reply, 2), 3138 CreateMockRead(*stream1_reply, 2),
3139 CreateMockRead(*stream2_syn, 3), 3139 CreateMockRead(*stream2_syn, 3),
3140 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame1), 3140 MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame1),
3141 arraysize(kPushBodyFrame1), 4), 3141 arraysize(kPushBodyFrame1), 4),
3142 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame2), 3142 MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame2),
3143 arraysize(kPushBodyFrame2) - 1, 5), 3143 arraysize(kPushBodyFrame2) - 1, 5),
3144 MockRead(true, ERR_IO_PENDING, 6), // Force a pause 3144 MockRead(ASYNC, ERR_IO_PENDING, 6), // Force a pause
3145 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame3), 3145 MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame3),
3146 arraysize(kPushBodyFrame3) - 1, 7), 3146 arraysize(kPushBodyFrame3) - 1, 7),
3147 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame4), 3147 MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame4),
3148 arraysize(kPushBodyFrame4) - 1, 8), 3148 arraysize(kPushBodyFrame4) - 1, 8),
3149 CreateMockRead(*stream1_body.get(), 9, false), 3149 CreateMockRead(*stream1_body.get(), 9, SYNCHRONOUS),
3150 MockRead(true, ERR_IO_PENDING, 10) // Force a pause. 3150 MockRead(ASYNC, ERR_IO_PENDING, 10) // Force a pause.
3151 }; 3151 };
3152 3152
3153 HttpResponseInfo response; 3153 HttpResponseInfo response;
3154 HttpResponseInfo response2; 3154 HttpResponseInfo response2;
3155 std::string expected_push_result("pushed my darling hello my baby"); 3155 std::string expected_push_result("pushed my darling hello my baby");
3156 scoped_ptr<OrderedSocketData> data(new OrderedSocketData( 3156 scoped_ptr<OrderedSocketData> data(new OrderedSocketData(
3157 reads, 3157 reads,
3158 arraysize(reads), 3158 arraysize(reads),
3159 writes, 3159 writes,
3160 arraysize(writes))); 3160 arraysize(writes)));
(...skipping 30 matching lines...) Expand all
3191 scoped_ptr<spdy::SpdyFrame> 3191 scoped_ptr<spdy::SpdyFrame>
3192 stream2_syn(ConstructSpdyPush(NULL, 3192 stream2_syn(ConstructSpdyPush(NULL,
3193 0, 3193 0,
3194 2, 3194 2,
3195 0, 3195 0,
3196 "http://www.google.com/foo.dat")); 3196 "http://www.google.com/foo.dat"));
3197 MockRead reads[] = { 3197 MockRead reads[] = {
3198 CreateMockRead(*stream1_reply, 2), 3198 CreateMockRead(*stream1_reply, 2),
3199 CreateMockRead(*stream2_syn, 3), 3199 CreateMockRead(*stream2_syn, 3),
3200 CreateMockRead(*stream1_body, 4), 3200 CreateMockRead(*stream1_body, 4),
3201 MockRead(true, ERR_IO_PENDING, 5) // Force a pause 3201 MockRead(ASYNC, ERR_IO_PENDING, 5) // Force a pause
3202 }; 3202 };
3203 3203
3204 scoped_ptr<OrderedSocketData> data( 3204 scoped_ptr<OrderedSocketData> data(
3205 new OrderedSocketData(reads, arraysize(reads), 3205 new OrderedSocketData(reads, arraysize(reads),
3206 writes, arraysize(writes))); 3206 writes, arraysize(writes)));
3207 NormalSpdyTransactionHelper helper(CreateGetRequest(), 3207 NormalSpdyTransactionHelper helper(CreateGetRequest(),
3208 BoundNetLog(), GetParam()); 3208 BoundNetLog(), GetParam());
3209 3209
3210 helper.RunPreTestSetup(); 3210 helper.RunPreTestSetup();
3211 helper.AddData(data.get()); 3211 helper.AddData(data.get());
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
3253 scoped_ptr<spdy::SpdyFrame> 3253 scoped_ptr<spdy::SpdyFrame>
3254 stream2_syn(ConstructSpdyPush(NULL, 3254 stream2_syn(ConstructSpdyPush(NULL,
3255 0, 3255 0,
3256 2, 3256 2,
3257 9, 3257 9,
3258 "http://www.google.com/foo.dat")); 3258 "http://www.google.com/foo.dat"));
3259 MockRead reads[] = { 3259 MockRead reads[] = {
3260 CreateMockRead(*stream1_reply, 2), 3260 CreateMockRead(*stream1_reply, 2),
3261 CreateMockRead(*stream2_syn, 3), 3261 CreateMockRead(*stream2_syn, 3),
3262 CreateMockRead(*stream1_body, 4), 3262 CreateMockRead(*stream1_body, 4),
3263 MockRead(true, ERR_IO_PENDING, 5), // Force a pause 3263 MockRead(ASYNC, ERR_IO_PENDING, 5), // Force a pause
3264 }; 3264 };
3265 3265
3266 scoped_ptr<OrderedSocketData> data( 3266 scoped_ptr<OrderedSocketData> data(
3267 new OrderedSocketData(reads, arraysize(reads), 3267 new OrderedSocketData(reads, arraysize(reads),
3268 writes, arraysize(writes))); 3268 writes, arraysize(writes)));
3269 NormalSpdyTransactionHelper helper(CreateGetRequest(), 3269 NormalSpdyTransactionHelper helper(CreateGetRequest(),
3270 BoundNetLog(), GetParam()); 3270 BoundNetLog(), GetParam());
3271 3271
3272 helper.RunPreTestSetup(); 3272 helper.RunPreTestSetup();
3273 helper.AddData(data.get()); 3273 helper.AddData(data.get());
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
3311 }; 3311 };
3312 3312
3313 scoped_ptr<spdy::SpdyFrame> 3313 scoped_ptr<spdy::SpdyFrame>
3314 stream1_reply(ConstructSpdyGetSynReply(NULL, 0, 1)); 3314 stream1_reply(ConstructSpdyGetSynReply(NULL, 0, 1));
3315 scoped_ptr<spdy::SpdyFrame> 3315 scoped_ptr<spdy::SpdyFrame>
3316 stream2_syn(ConstructSpdyPush(NULL, 0, 2, 1)); 3316 stream2_syn(ConstructSpdyPush(NULL, 0, 2, 1));
3317 MockRead reads[] = { 3317 MockRead reads[] = {
3318 CreateMockRead(*stream1_reply, 2), 3318 CreateMockRead(*stream1_reply, 2),
3319 CreateMockRead(*stream2_syn, 3), 3319 CreateMockRead(*stream2_syn, 3),
3320 CreateMockRead(*stream1_body, 4), 3320 CreateMockRead(*stream1_body, 4),
3321 MockRead(true, ERR_IO_PENDING, 5) // Force a pause 3321 MockRead(ASYNC, ERR_IO_PENDING, 5) // Force a pause
3322 }; 3322 };
3323 3323
3324 scoped_ptr<OrderedSocketData> data( 3324 scoped_ptr<OrderedSocketData> data(
3325 new OrderedSocketData(reads, arraysize(reads), 3325 new OrderedSocketData(reads, arraysize(reads),
3326 writes, arraysize(writes))); 3326 writes, arraysize(writes)));
3327 NormalSpdyTransactionHelper helper(CreateGetRequest(), 3327 NormalSpdyTransactionHelper helper(CreateGetRequest(),
3328 BoundNetLog(), GetParam()); 3328 BoundNetLog(), GetParam());
3329 3329
3330 helper.RunPreTestSetup(); 3330 helper.RunPreTestSetup();
3331 helper.AddData(data.get()); 3331 helper.AddData(data.get());
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
3400 MockWrite writes[] = { CreateMockWrite(*req) }; 3400 MockWrite writes[] = { CreateMockWrite(*req) };
3401 3401
3402 scoped_ptr<spdy::SpdyFrame> resp( 3402 scoped_ptr<spdy::SpdyFrame> resp(
3403 ConstructSpdyGetSynReply(test_cases[i].extra_headers, 3403 ConstructSpdyGetSynReply(test_cases[i].extra_headers,
3404 test_cases[i].num_headers, 3404 test_cases[i].num_headers,
3405 1)); 3405 1));
3406 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); 3406 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
3407 MockRead reads[] = { 3407 MockRead reads[] = {
3408 CreateMockRead(*resp), 3408 CreateMockRead(*resp),
3409 CreateMockRead(*body), 3409 CreateMockRead(*body),
3410 MockRead(true, 0, 0) // EOF 3410 MockRead(ASYNC, 0, 0) // EOF
3411 }; 3411 };
3412 3412
3413 scoped_ptr<DelayedSocketData> data( 3413 scoped_ptr<DelayedSocketData> data(
3414 new DelayedSocketData(1, reads, arraysize(reads), 3414 new DelayedSocketData(1, reads, arraysize(reads),
3415 writes, arraysize(writes))); 3415 writes, arraysize(writes)));
3416 NormalSpdyTransactionHelper helper(CreateGetRequest(), 3416 NormalSpdyTransactionHelper helper(CreateGetRequest(),
3417 BoundNetLog(), GetParam()); 3417 BoundNetLog(), GetParam());
3418 helper.RunToCompletion(data.get()); 3418 helper.RunToCompletion(data.get());
3419 TransactionHelperResult out = helper.output(); 3419 TransactionHelperResult out = helper.output();
3420 3420
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
3539 ConstructSpdyPacket(*test_cases[i].syn_reply, 3539 ConstructSpdyPacket(*test_cases[i].syn_reply,
3540 test_cases[i].extra_headers[1], 3540 test_cases[i].extra_headers[1],
3541 test_cases[i].num_headers[1], 3541 test_cases[i].num_headers[1],
3542 NULL, 3542 NULL,
3543 0)); 3543 0));
3544 3544
3545 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); 3545 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
3546 MockRead reads[] = { 3546 MockRead reads[] = {
3547 CreateMockRead(*frame_reply), 3547 CreateMockRead(*frame_reply),
3548 CreateMockRead(*body), 3548 CreateMockRead(*body),
3549 MockRead(true, 0, 0) // EOF 3549 MockRead(ASYNC, 0, 0) // EOF
3550 }; 3550 };
3551 3551
3552 // Attach the headers to the request. 3552 // Attach the headers to the request.
3553 int header_count = test_cases[i].num_headers[0]; 3553 int header_count = test_cases[i].num_headers[0];
3554 3554
3555 HttpRequestInfo request = CreateGetRequest(); 3555 HttpRequestInfo request = CreateGetRequest();
3556 for (int ct = 0; ct < header_count; ct++) { 3556 for (int ct = 0; ct < header_count; ct++) {
3557 const char* header_key = test_cases[i].extra_headers[0][ct * 2]; 3557 const char* header_key = test_cases[i].extra_headers[0][ct * 2];
3558 const char* header_value = test_cases[i].extra_headers[0][ct * 2 + 1]; 3558 const char* header_value = test_cases[i].extra_headers[0][ct * 2 + 1];
3559 request.extra_headers.SetHeader(header_key, header_value); 3559 request.extra_headers.SetHeader(header_key, header_value);
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
3655 3655
3656 scoped_ptr<spdy::SpdyFrame> resp( 3656 scoped_ptr<spdy::SpdyFrame> resp(
3657 ConstructSpdyPacket(kSynStartHeader, 3657 ConstructSpdyPacket(kSynStartHeader,
3658 NULL, 0, 3658 NULL, 0,
3659 test_cases[i].headers, 3659 test_cases[i].headers,
3660 test_cases[i].num_headers)); 3660 test_cases[i].num_headers));
3661 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); 3661 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
3662 MockRead reads[] = { 3662 MockRead reads[] = {
3663 CreateMockRead(*resp), 3663 CreateMockRead(*resp),
3664 CreateMockRead(*body), 3664 CreateMockRead(*body),
3665 MockRead(true, 0, 0) // EOF 3665 MockRead(ASYNC, 0, 0) // EOF
3666 }; 3666 };
3667 3667
3668 scoped_ptr<DelayedSocketData> data( 3668 scoped_ptr<DelayedSocketData> data(
3669 new DelayedSocketData(1, reads, arraysize(reads), 3669 new DelayedSocketData(1, reads, arraysize(reads),
3670 writes, arraysize(writes))); 3670 writes, arraysize(writes)));
3671 NormalSpdyTransactionHelper helper(CreateGetRequest(), 3671 NormalSpdyTransactionHelper helper(CreateGetRequest(),
3672 BoundNetLog(), GetParam()); 3672 BoundNetLog(), GetParam());
3673 helper.RunToCompletion(data.get()); 3673 helper.RunToCompletion(data.get());
3674 TransactionHelperResult out = helper.output(); 3674 TransactionHelperResult out = helper.output();
3675 EXPECT_EQ(ERR_INCOMPLETE_SPDY_HEADERS, out.rv); 3675 EXPECT_EQ(ERR_INCOMPLETE_SPDY_HEADERS, out.rv);
(...skipping 11 matching lines...) Expand all
3687 const spdy::SpdyFrame* syn_reply; 3687 const spdy::SpdyFrame* syn_reply;
3688 } test_cases[] = { 3688 } test_cases[] = {
3689 { syn_reply_wrong_length.get(), }, 3689 { syn_reply_wrong_length.get(), },
3690 }; 3690 };
3691 3691
3692 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_cases); ++i) { 3692 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_cases); ++i) {
3693 scoped_ptr<spdy::SpdyFrame> req( 3693 scoped_ptr<spdy::SpdyFrame> req(
3694 ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); 3694 ConstructSpdyGet(NULL, 0, false, 1, LOWEST));
3695 MockWrite writes[] = { 3695 MockWrite writes[] = {
3696 CreateMockWrite(*req), 3696 CreateMockWrite(*req),
3697 MockWrite(true, 0, 0) // EOF 3697 MockWrite(ASYNC, 0, 0) // EOF
3698 }; 3698 };
3699 3699
3700 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); 3700 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
3701 MockRead reads[] = { 3701 MockRead reads[] = {
3702 CreateMockRead(*test_cases[i].syn_reply), 3702 CreateMockRead(*test_cases[i].syn_reply),
3703 CreateMockRead(*body), 3703 CreateMockRead(*body),
3704 MockRead(true, 0, 0) // EOF 3704 MockRead(ASYNC, 0, 0) // EOF
3705 }; 3705 };
3706 3706
3707 scoped_ptr<DelayedSocketData> data( 3707 scoped_ptr<DelayedSocketData> data(
3708 new DelayedSocketData(1, reads, arraysize(reads), 3708 new DelayedSocketData(1, reads, arraysize(reads),
3709 writes, arraysize(writes))); 3709 writes, arraysize(writes)));
3710 NormalSpdyTransactionHelper helper(CreateGetRequest(), 3710 NormalSpdyTransactionHelper helper(CreateGetRequest(),
3711 BoundNetLog(), GetParam()); 3711 BoundNetLog(), GetParam());
3712 helper.RunToCompletion(data.get()); 3712 helper.RunToCompletion(data.get());
3713 TransactionHelperResult out = helper.output(); 3713 TransactionHelperResult out = helper.output();
3714 EXPECT_EQ(ERR_SPDY_PROTOCOL_ERROR, out.rv); 3714 EXPECT_EQ(ERR_SPDY_PROTOCOL_ERROR, out.rv);
3715 } 3715 }
3716 } 3716 }
3717 3717
3718 // Test that we shutdown correctly on write errors. 3718 // Test that we shutdown correctly on write errors.
3719 TEST_P(SpdyNetworkTransactionTest, WriteError) { 3719 TEST_P(SpdyNetworkTransactionTest, WriteError) {
3720 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); 3720 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST));
3721 MockWrite writes[] = { 3721 MockWrite writes[] = {
3722 // We'll write 10 bytes successfully 3722 // We'll write 10 bytes successfully
3723 MockWrite(true, req->data(), 10), 3723 MockWrite(ASYNC, req->data(), 10),
3724 // Followed by ERROR! 3724 // Followed by ERROR!
3725 MockWrite(true, ERR_FAILED), 3725 MockWrite(ASYNC, ERR_FAILED),
3726 }; 3726 };
3727 3727
3728 scoped_ptr<DelayedSocketData> data( 3728 scoped_ptr<DelayedSocketData> data(
3729 new DelayedSocketData(2, NULL, 0, 3729 new DelayedSocketData(2, NULL, 0,
3730 writes, arraysize(writes))); 3730 writes, arraysize(writes)));
3731 NormalSpdyTransactionHelper helper(CreateGetRequest(), 3731 NormalSpdyTransactionHelper helper(CreateGetRequest(),
3732 BoundNetLog(), GetParam()); 3732 BoundNetLog(), GetParam());
3733 helper.RunToCompletion(data.get()); 3733 helper.RunToCompletion(data.get());
3734 TransactionHelperResult out = helper.output(); 3734 TransactionHelperResult out = helper.output();
3735 EXPECT_EQ(ERR_FAILED, out.rv); 3735 EXPECT_EQ(ERR_FAILED, out.rv);
3736 data->Reset(); 3736 data->Reset();
3737 } 3737 }
3738 3738
3739 // Test that partial writes work. 3739 // Test that partial writes work.
3740 TEST_P(SpdyNetworkTransactionTest, PartialWrite) { 3740 TEST_P(SpdyNetworkTransactionTest, PartialWrite) {
3741 // Chop the SYN_STREAM frame into 5 chunks. 3741 // Chop the SYN_STREAM frame into 5 chunks.
3742 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); 3742 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST));
3743 const int kChunks = 5; 3743 const int kChunks = 5;
3744 scoped_array<MockWrite> writes(ChopWriteFrame(*req.get(), kChunks)); 3744 scoped_array<MockWrite> writes(ChopWriteFrame(*req.get(), kChunks));
3745 3745
3746 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 3746 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
3747 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); 3747 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
3748 MockRead reads[] = { 3748 MockRead reads[] = {
3749 CreateMockRead(*resp), 3749 CreateMockRead(*resp),
3750 CreateMockRead(*body), 3750 CreateMockRead(*body),
3751 MockRead(true, 0, 0) // EOF 3751 MockRead(ASYNC, 0, 0) // EOF
3752 }; 3752 };
3753 3753
3754 scoped_ptr<DelayedSocketData> data( 3754 scoped_ptr<DelayedSocketData> data(
3755 new DelayedSocketData(kChunks, reads, arraysize(reads), 3755 new DelayedSocketData(kChunks, reads, arraysize(reads),
3756 writes.get(), kChunks)); 3756 writes.get(), kChunks));
3757 NormalSpdyTransactionHelper helper(CreateGetRequest(), 3757 NormalSpdyTransactionHelper helper(CreateGetRequest(),
3758 BoundNetLog(), GetParam()); 3758 BoundNetLog(), GetParam());
3759 helper.RunToCompletion(data.get()); 3759 helper.RunToCompletion(data.get());
3760 TransactionHelperResult out = helper.output(); 3760 TransactionHelperResult out = helper.output();
3761 EXPECT_EQ(OK, out.rv); 3761 EXPECT_EQ(OK, out.rv);
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
3803 }; 3803 };
3804 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(kExtraHeaders, 1, false, 1, 3804 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(kExtraHeaders, 1, false, 1,
3805 LOWEST)); 3805 LOWEST));
3806 MockWrite writes[] = { CreateMockWrite(*req) }; 3806 MockWrite writes[] = { CreateMockWrite(*req) };
3807 3807
3808 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 3808 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
3809 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); 3809 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
3810 MockRead reads[] = { 3810 MockRead reads[] = {
3811 CreateMockRead(*resp), 3811 CreateMockRead(*resp),
3812 CreateMockRead(*body), 3812 CreateMockRead(*body),
3813 MockRead(true, 0, 0) // EOF 3813 MockRead(ASYNC, 0, 0) // EOF
3814 }; 3814 };
3815 3815
3816 net::CapturingBoundNetLog log(net::CapturingNetLog::kUnbounded); 3816 net::CapturingBoundNetLog log(net::CapturingNetLog::kUnbounded);
3817 3817
3818 scoped_ptr<DelayedSocketData> data( 3818 scoped_ptr<DelayedSocketData> data(
3819 new DelayedSocketData(1, reads, arraysize(reads), 3819 new DelayedSocketData(1, reads, arraysize(reads),
3820 writes, arraysize(writes))); 3820 writes, arraysize(writes)));
3821 NormalSpdyTransactionHelper helper(CreateGetRequestWithUserAgent(), 3821 NormalSpdyTransactionHelper helper(CreateGetRequestWithUserAgent(),
3822 log.bound(), GetParam()); 3822 log.bound(), GetParam());
3823 helper.RunToCompletion(data.get()); 3823 helper.RunToCompletion(data.get());
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
3905 char combined_data_frames[100]; 3905 char combined_data_frames[100];
3906 int combined_data_frames_len = 3906 int combined_data_frames_len =
3907 CombineFrames(data_frames, arraysize(data_frames), 3907 CombineFrames(data_frames, arraysize(data_frames),
3908 combined_data_frames, arraysize(combined_data_frames)); 3908 combined_data_frames, arraysize(combined_data_frames));
3909 scoped_ptr<spdy::SpdyFrame> last_frame( 3909 scoped_ptr<spdy::SpdyFrame> last_frame(
3910 framer.CreateDataFrame(1, "d", 1, spdy::DATA_FLAG_FIN)); 3910 framer.CreateDataFrame(1, "d", 1, spdy::DATA_FLAG_FIN));
3911 3911
3912 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 3912 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
3913 MockRead reads[] = { 3913 MockRead reads[] = {
3914 CreateMockRead(*resp), 3914 CreateMockRead(*resp),
3915 MockRead(true, ERR_IO_PENDING), // Force a pause 3915 MockRead(ASYNC, ERR_IO_PENDING), // Force a pause
3916 MockRead(true, combined_data_frames, combined_data_frames_len), 3916 MockRead(ASYNC, combined_data_frames, combined_data_frames_len),
3917 MockRead(true, ERR_IO_PENDING), // Force a pause 3917 MockRead(ASYNC, ERR_IO_PENDING), // Force a pause
3918 CreateMockRead(*last_frame), 3918 CreateMockRead(*last_frame),
3919 MockRead(true, 0, 0) // EOF 3919 MockRead(ASYNC, 0, 0) // EOF
3920 }; 3920 };
3921 3921
3922 scoped_ptr<DelayedSocketData> data( 3922 scoped_ptr<DelayedSocketData> data(
3923 new DelayedSocketData(1, reads, arraysize(reads), 3923 new DelayedSocketData(1, reads, arraysize(reads),
3924 writes, arraysize(writes))); 3924 writes, arraysize(writes)));
3925 3925
3926 3926
3927 TestCompletionCallback callback; 3927 TestCompletionCallback callback;
3928 3928
3929 NormalSpdyTransactionHelper helper(CreateGetRequest(), 3929 NormalSpdyTransactionHelper helper(CreateGetRequest(),
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
4004 data_frame_fin.get() 4004 data_frame_fin.get()
4005 }; 4005 };
4006 char combined_data_frames[100]; 4006 char combined_data_frames[100];
4007 int combined_data_frames_len = 4007 int combined_data_frames_len =
4008 CombineFrames(data_frames, arraysize(data_frames), 4008 CombineFrames(data_frames, arraysize(data_frames),
4009 combined_data_frames, arraysize(combined_data_frames)); 4009 combined_data_frames, arraysize(combined_data_frames));
4010 4010
4011 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 4011 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
4012 MockRead reads[] = { 4012 MockRead reads[] = {
4013 CreateMockRead(*resp), 4013 CreateMockRead(*resp),
4014 MockRead(true, ERR_IO_PENDING), // Force a pause 4014 MockRead(ASYNC, ERR_IO_PENDING), // Force a pause
4015 MockRead(true, combined_data_frames, combined_data_frames_len), 4015 MockRead(ASYNC, combined_data_frames, combined_data_frames_len),
4016 MockRead(true, 0, 0) // EOF 4016 MockRead(ASYNC, 0, 0) // EOF
4017 }; 4017 };
4018 4018
4019 scoped_ptr<DelayedSocketData> data( 4019 scoped_ptr<DelayedSocketData> data(
4020 new DelayedSocketData(1, reads, arraysize(reads), 4020 new DelayedSocketData(1, reads, arraysize(reads),
4021 writes, arraysize(writes))); 4021 writes, arraysize(writes)));
4022 4022
4023 NormalSpdyTransactionHelper helper(CreateGetRequest(), 4023 NormalSpdyTransactionHelper helper(CreateGetRequest(),
4024 BoundNetLog(), GetParam()); 4024 BoundNetLog(), GetParam());
4025 helper.RunPreTestSetup(); 4025 helper.RunPreTestSetup();
4026 helper.AddData(data.get()); 4026 helper.AddData(data.get());
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
4103 data_frame.get(), 4103 data_frame.get(),
4104 data_frame.get(), 4104 data_frame.get(),
4105 data_frame_fin.get() 4105 data_frame_fin.get()
4106 }; 4106 };
4107 char combined_frames[200]; 4107 char combined_frames[200];
4108 int combined_frames_len = 4108 int combined_frames_len =
4109 CombineFrames(frames, arraysize(frames), 4109 CombineFrames(frames, arraysize(frames),
4110 combined_frames, arraysize(combined_frames)); 4110 combined_frames, arraysize(combined_frames));
4111 4111
4112 MockRead reads[] = { 4112 MockRead reads[] = {
4113 MockRead(true, combined_frames, combined_frames_len), 4113 MockRead(ASYNC, combined_frames, combined_frames_len),
4114 MockRead(true, 0, 0) // EOF 4114 MockRead(ASYNC, 0, 0) // EOF
4115 }; 4115 };
4116 4116
4117 scoped_ptr<DelayedSocketData> data( 4117 scoped_ptr<DelayedSocketData> data(
4118 new DelayedSocketData(1, reads, arraysize(reads), 4118 new DelayedSocketData(1, reads, arraysize(reads),
4119 writes, arraysize(writes))); 4119 writes, arraysize(writes)));
4120 4120
4121 NormalSpdyTransactionHelper helper(CreateGetRequest(), 4121 NormalSpdyTransactionHelper helper(CreateGetRequest(),
4122 BoundNetLog(), GetParam()); 4122 BoundNetLog(), GetParam());
4123 helper.RunPreTestSetup(); 4123 helper.RunPreTestSetup();
4124 helper.AddData(data.get()); 4124 helper.AddData(data.get());
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
4191 data_frame.get(), 4191 data_frame.get(),
4192 data_frame.get() 4192 data_frame.get()
4193 }; 4193 };
4194 char combined_data_frames[100]; 4194 char combined_data_frames[100];
4195 int combined_data_frames_len = 4195 int combined_data_frames_len =
4196 CombineFrames(data_frames, arraysize(data_frames), 4196 CombineFrames(data_frames, arraysize(data_frames),
4197 combined_data_frames, arraysize(combined_data_frames)); 4197 combined_data_frames, arraysize(combined_data_frames));
4198 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 4198 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
4199 MockRead reads[] = { 4199 MockRead reads[] = {
4200 CreateMockRead(*resp), 4200 CreateMockRead(*resp),
4201 MockRead(true, ERR_IO_PENDING), // Force a wait 4201 MockRead(ASYNC, ERR_IO_PENDING), // Force a wait
4202 MockRead(true, combined_data_frames, combined_data_frames_len), 4202 MockRead(ASYNC, combined_data_frames, combined_data_frames_len),
4203 MockRead(true, 0, 0) // EOF 4203 MockRead(ASYNC, 0, 0) // EOF
4204 }; 4204 };
4205 4205
4206 scoped_ptr<DelayedSocketData> data( 4206 scoped_ptr<DelayedSocketData> data(
4207 new DelayedSocketData(1, reads, arraysize(reads), 4207 new DelayedSocketData(1, reads, arraysize(reads),
4208 writes, arraysize(writes))); 4208 writes, arraysize(writes)));
4209 4209
4210 NormalSpdyTransactionHelper helper(CreateGetRequest(), 4210 NormalSpdyTransactionHelper helper(CreateGetRequest(),
4211 BoundNetLog(), GetParam()); 4211 BoundNetLog(), GetParam());
4212 helper.RunPreTestSetup(); 4212 helper.RunPreTestSetup();
4213 helper.AddData(data.get()); 4213 helper.AddData(data.get());
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
4272 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); 4272 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST));
4273 MockWrite writes[] = { CreateMockWrite(*req) }; 4273 MockWrite writes[] = { CreateMockWrite(*req) };
4274 4274
4275 // NOTE: We don't FIN the stream. 4275 // NOTE: We don't FIN the stream.
4276 scoped_ptr<spdy::SpdyFrame> data_frame( 4276 scoped_ptr<spdy::SpdyFrame> data_frame(
4277 framer.CreateDataFrame(1, "message", 7, spdy::DATA_FLAG_NONE)); 4277 framer.CreateDataFrame(1, "message", 7, spdy::DATA_FLAG_NONE));
4278 4278
4279 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 4279 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
4280 MockRead reads[] = { 4280 MockRead reads[] = {
4281 CreateMockRead(*resp), 4281 CreateMockRead(*resp),
4282 MockRead(true, ERR_IO_PENDING), // Force a wait 4282 MockRead(ASYNC, ERR_IO_PENDING), // Force a wait
4283 CreateMockRead(*data_frame), 4283 CreateMockRead(*data_frame),
4284 MockRead(true, 0, 0) // EOF 4284 MockRead(ASYNC, 0, 0) // EOF
4285 }; 4285 };
4286 4286
4287 scoped_ptr<DelayedSocketData> data( 4287 scoped_ptr<DelayedSocketData> data(
4288 new DelayedSocketData(1, reads, arraysize(reads), 4288 new DelayedSocketData(1, reads, arraysize(reads),
4289 writes, arraysize(writes))); 4289 writes, arraysize(writes)));
4290 4290
4291 NormalSpdyTransactionHelper helper(CreateGetRequest(), 4291 NormalSpdyTransactionHelper helper(CreateGetRequest(),
4292 BoundNetLog(), GetParam()); 4292 BoundNetLog(), GetParam());
4293 helper.RunPreTestSetup(); 4293 helper.RunPreTestSetup();
4294 helper.AddData(data.get()); 4294 helper.AddData(data.get());
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
4403 setting.set_id(kSampleId3); 4403 setting.set_id(kSampleId3);
4404 settings.push_back(std::make_pair(setting, kSampleValue3)); 4404 settings.push_back(std::make_pair(setting, kSampleValue3));
4405 settings_frame.reset(ConstructSpdySettings(settings)); 4405 settings_frame.reset(ConstructSpdySettings(settings));
4406 } 4406 }
4407 4407
4408 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); 4408 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
4409 MockRead reads[] = { 4409 MockRead reads[] = {
4410 CreateMockRead(*reply), 4410 CreateMockRead(*reply),
4411 CreateMockRead(*body), 4411 CreateMockRead(*body),
4412 CreateMockRead(*settings_frame), 4412 CreateMockRead(*settings_frame),
4413 MockRead(true, 0, 0) // EOF 4413 MockRead(ASYNC, 0, 0) // EOF
4414 }; 4414 };
4415 4415
4416 scoped_ptr<DelayedSocketData> data( 4416 scoped_ptr<DelayedSocketData> data(
4417 new DelayedSocketData(1, reads, arraysize(reads), 4417 new DelayedSocketData(1, reads, arraysize(reads),
4418 writes, arraysize(writes))); 4418 writes, arraysize(writes)));
4419 helper.AddData(data.get()); 4419 helper.AddData(data.get());
4420 helper.RunDefaultTest(); 4420 helper.RunDefaultTest();
4421 helper.VerifyDataConsumed(); 4421 helper.VerifyDataConsumed();
4422 TransactionHelperResult out = helper.output(); 4422 TransactionHelperResult out = helper.output();
4423 EXPECT_EQ(OK, out.rv); 4423 EXPECT_EQ(OK, out.rv);
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
4521 ConstructSpdyPacket(kSynReplyInfo, 4521 ConstructSpdyPacket(kSynReplyInfo,
4522 kExtraHeaders, 4522 kExtraHeaders,
4523 arraysize(kExtraHeaders) / 2, 4523 arraysize(kExtraHeaders) / 2,
4524 NULL, 4524 NULL,
4525 0)); 4525 0));
4526 4526
4527 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); 4527 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
4528 MockRead reads[] = { 4528 MockRead reads[] = {
4529 CreateMockRead(*reply), 4529 CreateMockRead(*reply),
4530 CreateMockRead(*body), 4530 CreateMockRead(*body),
4531 MockRead(true, 0, 0) // EOF 4531 MockRead(ASYNC, 0, 0) // EOF
4532 }; 4532 };
4533 4533
4534 scoped_ptr<DelayedSocketData> data( 4534 scoped_ptr<DelayedSocketData> data(
4535 new DelayedSocketData(2, reads, arraysize(reads), 4535 new DelayedSocketData(2, reads, arraysize(reads),
4536 writes, arraysize(writes))); 4536 writes, arraysize(writes)));
4537 helper.AddData(data.get()); 4537 helper.AddData(data.get());
4538 helper.RunDefaultTest(); 4538 helper.RunDefaultTest();
4539 helper.VerifyDataConsumed(); 4539 helper.VerifyDataConsumed();
4540 TransactionHelperResult out = helper.output(); 4540 TransactionHelperResult out = helper.output();
4541 EXPECT_EQ(OK, out.rv); 4541 EXPECT_EQ(OK, out.rv);
(...skipping 23 matching lines...) Expand all
4565 } 4565 }
4566 } 4566 }
4567 4567
4568 TEST_P(SpdyNetworkTransactionTest, GoAwayWithActiveStream) { 4568 TEST_P(SpdyNetworkTransactionTest, GoAwayWithActiveStream) {
4569 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); 4569 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST));
4570 MockWrite writes[] = { CreateMockWrite(*req) }; 4570 MockWrite writes[] = { CreateMockWrite(*req) };
4571 4571
4572 scoped_ptr<spdy::SpdyFrame> go_away(ConstructSpdyGoAway()); 4572 scoped_ptr<spdy::SpdyFrame> go_away(ConstructSpdyGoAway());
4573 MockRead reads[] = { 4573 MockRead reads[] = {
4574 CreateMockRead(*go_away), 4574 CreateMockRead(*go_away),
4575 MockRead(true, 0, 0), // EOF 4575 MockRead(ASYNC, 0, 0), // EOF
4576 }; 4576 };
4577 4577
4578 scoped_ptr<DelayedSocketData> data( 4578 scoped_ptr<DelayedSocketData> data(
4579 new DelayedSocketData(1, reads, arraysize(reads), 4579 new DelayedSocketData(1, reads, arraysize(reads),
4580 writes, arraysize(writes))); 4580 writes, arraysize(writes)));
4581 NormalSpdyTransactionHelper helper(CreateGetRequest(), 4581 NormalSpdyTransactionHelper helper(CreateGetRequest(),
4582 BoundNetLog(), GetParam()); 4582 BoundNetLog(), GetParam());
4583 helper.AddData(data.get()); 4583 helper.AddData(data.get());
4584 helper.RunToCompletion(data.get()); 4584 helper.RunToCompletion(data.get());
4585 TransactionHelperResult out = helper.output(); 4585 TransactionHelperResult out = helper.output();
4586 EXPECT_EQ(ERR_ABORTED, out.rv); 4586 EXPECT_EQ(ERR_ABORTED, out.rv);
4587 } 4587 }
4588 4588
4589 TEST_P(SpdyNetworkTransactionTest, CloseWithActiveStream) { 4589 TEST_P(SpdyNetworkTransactionTest, CloseWithActiveStream) {
4590 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); 4590 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST));
4591 MockWrite writes[] = { CreateMockWrite(*req) }; 4591 MockWrite writes[] = { CreateMockWrite(*req) };
4592 4592
4593 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 4593 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
4594 MockRead reads[] = { 4594 MockRead reads[] = {
4595 CreateMockRead(*resp), 4595 CreateMockRead(*resp),
4596 MockRead(false, 0, 0) // EOF 4596 MockRead(SYNCHRONOUS, 0, 0) // EOF
4597 }; 4597 };
4598 4598
4599 scoped_ptr<DelayedSocketData> data( 4599 scoped_ptr<DelayedSocketData> data(
4600 new DelayedSocketData(1, reads, arraysize(reads), 4600 new DelayedSocketData(1, reads, arraysize(reads),
4601 writes, arraysize(writes))); 4601 writes, arraysize(writes)));
4602 BoundNetLog log; 4602 BoundNetLog log;
4603 NormalSpdyTransactionHelper helper(CreateGetRequest(), 4603 NormalSpdyTransactionHelper helper(CreateGetRequest(),
4604 log, GetParam()); 4604 log, GetParam());
4605 helper.RunPreTestSetup(); 4605 helper.RunPreTestSetup();
4606 helper.AddData(data.get()); 4606 helper.AddData(data.get());
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
4640 "Proxy-Connection: keep-alive\r\n\r\n"}; 4640 "Proxy-Connection: keep-alive\r\n\r\n"};
4641 const char kConnect80[] = {"CONNECT www.google.com:80 HTTP/1.1\r\n" 4641 const char kConnect80[] = {"CONNECT www.google.com:80 HTTP/1.1\r\n"
4642 "Host: www.google.com\r\n" 4642 "Host: www.google.com\r\n"
4643 "Proxy-Connection: keep-alive\r\n\r\n"}; 4643 "Proxy-Connection: keep-alive\r\n\r\n"};
4644 const char kHTTP200[] = {"HTTP/1.1 200 OK\r\n\r\n"}; 4644 const char kHTTP200[] = {"HTTP/1.1 200 OK\r\n\r\n"};
4645 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); 4645 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST));
4646 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 4646 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
4647 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); 4647 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
4648 4648
4649 MockWrite writes_SPDYNPN[] = { 4649 MockWrite writes_SPDYNPN[] = {
4650 MockWrite(false, kConnect443, arraysize(kConnect443) - 1, 0), 4650 MockWrite(SYNCHRONOUS, kConnect443, arraysize(kConnect443) - 1, 0),
4651 CreateMockWrite(*req, 2), 4651 CreateMockWrite(*req, 2),
4652 }; 4652 };
4653 MockRead reads_SPDYNPN[] = { 4653 MockRead reads_SPDYNPN[] = {
4654 MockRead(false, kHTTP200, arraysize(kHTTP200) - 1, 1), 4654 MockRead(SYNCHRONOUS, kHTTP200, arraysize(kHTTP200) - 1, 1),
4655 CreateMockRead(*resp, 3), 4655 CreateMockRead(*resp, 3),
4656 CreateMockRead(*body.get(), 4), 4656 CreateMockRead(*body.get(), 4),
4657 MockRead(true, 0, 0, 5), 4657 MockRead(ASYNC, 0, 0, 5),
4658 }; 4658 };
4659 4659
4660 MockWrite writes_SPDYSSL[] = { 4660 MockWrite writes_SPDYSSL[] = {
4661 MockWrite(false, kConnect80, arraysize(kConnect80) - 1, 0), 4661 MockWrite(SYNCHRONOUS, kConnect80, arraysize(kConnect80) - 1, 0),
4662 CreateMockWrite(*req, 2), 4662 CreateMockWrite(*req, 2),
4663 }; 4663 };
4664 MockRead reads_SPDYSSL[] = { 4664 MockRead reads_SPDYSSL[] = {
4665 MockRead(false, kHTTP200, arraysize(kHTTP200) - 1, 1), 4665 MockRead(SYNCHRONOUS, kHTTP200, arraysize(kHTTP200) - 1, 1),
4666 CreateMockRead(*resp, 3), 4666 CreateMockRead(*resp, 3),
4667 CreateMockRead(*body.get(), 4), 4667 CreateMockRead(*body.get(), 4),
4668 MockRead(true, 0, 0, 5), 4668 MockRead(ASYNC, 0, 0, 5),
4669 }; 4669 };
4670 4670
4671 MockWrite writes_SPDYNOSSL[] = { 4671 MockWrite writes_SPDYNOSSL[] = {
4672 CreateMockWrite(*req, 0), 4672 CreateMockWrite(*req, 0),
4673 }; 4673 };
4674 4674
4675 MockRead reads_SPDYNOSSL[] = { 4675 MockRead reads_SPDYNOSSL[] = {
4676 CreateMockRead(*resp, 1), 4676 CreateMockRead(*resp, 1),
4677 CreateMockRead(*body.get(), 2), 4677 CreateMockRead(*body.get(), 2),
4678 MockRead(true, 0, 0, 3), 4678 MockRead(ASYNC, 0, 0, 3),
4679 }; 4679 };
4680 4680
4681 scoped_ptr<OrderedSocketData> data; 4681 scoped_ptr<OrderedSocketData> data;
4682 switch(GetParam()) { 4682 switch(GetParam()) {
4683 case SPDYNOSSL: 4683 case SPDYNOSSL:
4684 data.reset(new OrderedSocketData(reads_SPDYNOSSL, 4684 data.reset(new OrderedSocketData(reads_SPDYNOSSL,
4685 arraysize(reads_SPDYNOSSL), 4685 arraysize(reads_SPDYNOSSL),
4686 writes_SPDYNOSSL, 4686 writes_SPDYNOSSL,
4687 arraysize(writes_SPDYNOSSL))); 4687 arraysize(writes_SPDYNOSSL)));
4688 break; 4688 break;
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
4748 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); 4748 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST));
4749 MockWrite writes[] = { 4749 MockWrite writes[] = {
4750 CreateMockWrite(*req, 1), 4750 CreateMockWrite(*req, 1),
4751 }; 4751 };
4752 4752
4753 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 4753 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
4754 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); 4754 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
4755 MockRead reads[] = { 4755 MockRead reads[] = {
4756 CreateMockRead(*resp, 2), 4756 CreateMockRead(*resp, 2),
4757 CreateMockRead(*body, 3), 4757 CreateMockRead(*body, 3),
4758 MockRead(true, ERR_IO_PENDING, 4), // Force a pause 4758 MockRead(ASYNC, ERR_IO_PENDING, 4), // Force a pause
4759 MockRead(true, 0, 5) // EOF 4759 MockRead(ASYNC, 0, 5) // EOF
4760 }; 4760 };
4761 scoped_ptr<OrderedSocketData> data( 4761 scoped_ptr<OrderedSocketData> data(
4762 new OrderedSocketData(reads, arraysize(reads), 4762 new OrderedSocketData(reads, arraysize(reads),
4763 writes, arraysize(writes))); 4763 writes, arraysize(writes)));
4764 helper.AddData(data.get()); 4764 helper.AddData(data.get());
4765 HttpNetworkTransaction* trans = helper.trans(); 4765 HttpNetworkTransaction* trans = helper.trans();
4766 4766
4767 TestCompletionCallback callback; 4767 TestCompletionCallback callback;
4768 TransactionHelperResult out; 4768 TransactionHelperResult out;
4769 out.rv = trans->Start( 4769 out.rv = trans->Start(
(...skipping 29 matching lines...) Expand all
4799 const char kConnect80[] = {"CONNECT www.google.com:80 HTTP/1.1\r\n" 4799 const char kConnect80[] = {"CONNECT www.google.com:80 HTTP/1.1\r\n"
4800 "Host: www.google.com\r\n" 4800 "Host: www.google.com\r\n"
4801 "Proxy-Connection: keep-alive\r\n\r\n"}; 4801 "Proxy-Connection: keep-alive\r\n\r\n"};
4802 const char kHTTP200[] = {"HTTP/1.1 200 OK\r\n\r\n"}; 4802 const char kHTTP200[] = {"HTTP/1.1 200 OK\r\n\r\n"};
4803 scoped_ptr<spdy::SpdyFrame> req2(ConstructSpdyGet( 4803 scoped_ptr<spdy::SpdyFrame> req2(ConstructSpdyGet(
4804 "http://www.google.com/foo.dat", false, 1, LOWEST)); 4804 "http://www.google.com/foo.dat", false, 1, LOWEST));
4805 scoped_ptr<spdy::SpdyFrame> resp2(ConstructSpdyGetSynReply(NULL, 0, 1)); 4805 scoped_ptr<spdy::SpdyFrame> resp2(ConstructSpdyGetSynReply(NULL, 0, 1));
4806 scoped_ptr<spdy::SpdyFrame> body2(ConstructSpdyBodyFrame(1, true)); 4806 scoped_ptr<spdy::SpdyFrame> body2(ConstructSpdyBodyFrame(1, true));
4807 4807
4808 MockWrite writes_SPDYNPN[] = { 4808 MockWrite writes_SPDYNPN[] = {
4809 MockWrite(false, kConnect443, arraysize(kConnect443) - 1, 0), 4809 MockWrite(SYNCHRONOUS, kConnect443, arraysize(kConnect443) - 1, 0),
4810 CreateMockWrite(*req2, 2), 4810 CreateMockWrite(*req2, 2),
4811 }; 4811 };
4812 MockRead reads_SPDYNPN[] = { 4812 MockRead reads_SPDYNPN[] = {
4813 MockRead(false, kHTTP200, arraysize(kHTTP200) - 1, 1), 4813 MockRead(SYNCHRONOUS, kHTTP200, arraysize(kHTTP200) - 1, 1),
4814 CreateMockRead(*resp2, 3), 4814 CreateMockRead(*resp2, 3),
4815 CreateMockRead(*body2, 4), 4815 CreateMockRead(*body2, 4),
4816 MockRead(true, 0, 5) // EOF 4816 MockRead(ASYNC, 0, 5) // EOF
4817 }; 4817 };
4818 4818
4819 MockWrite writes_SPDYNOSSL[] = { 4819 MockWrite writes_SPDYNOSSL[] = {
4820 CreateMockWrite(*req2, 0), 4820 CreateMockWrite(*req2, 0),
4821 }; 4821 };
4822 MockRead reads_SPDYNOSSL[] = { 4822 MockRead reads_SPDYNOSSL[] = {
4823 CreateMockRead(*resp2, 1), 4823 CreateMockRead(*resp2, 1),
4824 CreateMockRead(*body2, 2), 4824 CreateMockRead(*body2, 2),
4825 MockRead(true, 0, 3) // EOF 4825 MockRead(ASYNC, 0, 3) // EOF
4826 }; 4826 };
4827 4827
4828 MockWrite writes_SPDYSSL[] = { 4828 MockWrite writes_SPDYSSL[] = {
4829 MockWrite(false, kConnect80, arraysize(kConnect80) - 1, 0), 4829 MockWrite(SYNCHRONOUS, kConnect80, arraysize(kConnect80) - 1, 0),
4830 CreateMockWrite(*req2, 2), 4830 CreateMockWrite(*req2, 2),
4831 }; 4831 };
4832 MockRead reads_SPDYSSL[] = { 4832 MockRead reads_SPDYSSL[] = {
4833 MockRead(false, kHTTP200, arraysize(kHTTP200) - 1, 1), 4833 MockRead(SYNCHRONOUS, kHTTP200, arraysize(kHTTP200) - 1, 1),
4834 CreateMockRead(*resp2, 3), 4834 CreateMockRead(*resp2, 3),
4835 CreateMockRead(*body2, 4), 4835 CreateMockRead(*body2, 4),
4836 MockRead(true, 0, 0, 5), 4836 MockRead(ASYNC, 0, 0, 5),
4837 }; 4837 };
4838 4838
4839 scoped_ptr<OrderedSocketData> data_proxy; 4839 scoped_ptr<OrderedSocketData> data_proxy;
4840 switch(GetParam()) { 4840 switch(GetParam()) {
4841 case SPDYNPN: 4841 case SPDYNPN:
4842 data_proxy.reset(new OrderedSocketData(reads_SPDYNPN, 4842 data_proxy.reset(new OrderedSocketData(reads_SPDYNPN,
4843 arraysize(reads_SPDYNPN), 4843 arraysize(reads_SPDYNPN),
4844 writes_SPDYNPN, 4844 writes_SPDYNPN,
4845 arraysize(writes_SPDYNPN))); 4845 arraysize(writes_SPDYNPN)));
4846 break; 4846 break;
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
4903 // When we get a TCP-level RST, we need to retry a HttpNetworkTransaction 4903 // When we get a TCP-level RST, we need to retry a HttpNetworkTransaction
4904 // on a new connection, if the connection was previously known to be good. 4904 // on a new connection, if the connection was previously known to be good.
4905 // This can happen when a server reboots without saying goodbye, or when 4905 // This can happen when a server reboots without saying goodbye, or when
4906 // we're behind a NAT that masked the RST. 4906 // we're behind a NAT that masked the RST.
4907 TEST_P(SpdyNetworkTransactionTest, VerifyRetryOnConnectionReset) { 4907 TEST_P(SpdyNetworkTransactionTest, VerifyRetryOnConnectionReset) {
4908 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 4908 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
4909 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); 4909 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
4910 MockRead reads[] = { 4910 MockRead reads[] = {
4911 CreateMockRead(*resp), 4911 CreateMockRead(*resp),
4912 CreateMockRead(*body), 4912 CreateMockRead(*body),
4913 MockRead(true, ERR_IO_PENDING), 4913 MockRead(ASYNC, ERR_IO_PENDING),
4914 MockRead(true, ERR_CONNECTION_RESET), 4914 MockRead(ASYNC, ERR_CONNECTION_RESET),
4915 }; 4915 };
4916 4916
4917 MockRead reads2[] = { 4917 MockRead reads2[] = {
4918 CreateMockRead(*resp), 4918 CreateMockRead(*resp),
4919 CreateMockRead(*body), 4919 CreateMockRead(*body),
4920 MockRead(true, 0, 0) // EOF 4920 MockRead(ASYNC, 0, 0) // EOF
4921 }; 4921 };
4922 4922
4923 // This test has a couple of variants. 4923 // This test has a couple of variants.
4924 enum { 4924 enum {
4925 // Induce the RST while waiting for our transaction to send. 4925 // Induce the RST while waiting for our transaction to send.
4926 VARIANT_RST_DURING_SEND_COMPLETION, 4926 VARIANT_RST_DURING_SEND_COMPLETION,
4927 // Induce the RST while waiting for our transaction to read. 4927 // Induce the RST while waiting for our transaction to read.
4928 // In this case, the send completed - everything copied into the SNDBUF. 4928 // In this case, the send completed - everything copied into the SNDBUF.
4929 VARIANT_RST_DURING_READ_COMPLETION 4929 VARIANT_RST_DURING_READ_COMPLETION
4930 }; 4930 };
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
4989 TEST_P(SpdyNetworkTransactionTest, SpdyOnOffToggle) { 4989 TEST_P(SpdyNetworkTransactionTest, SpdyOnOffToggle) {
4990 net::HttpStreamFactory::set_spdy_enabled(true); 4990 net::HttpStreamFactory::set_spdy_enabled(true);
4991 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); 4991 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST));
4992 MockWrite spdy_writes[] = { CreateMockWrite(*req) }; 4992 MockWrite spdy_writes[] = { CreateMockWrite(*req) };
4993 4993
4994 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 4994 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
4995 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); 4995 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
4996 MockRead spdy_reads[] = { 4996 MockRead spdy_reads[] = {
4997 CreateMockRead(*resp), 4997 CreateMockRead(*resp),
4998 CreateMockRead(*body), 4998 CreateMockRead(*body),
4999 MockRead(true, 0, 0) // EOF 4999 MockRead(ASYNC, 0, 0) // EOF
5000 }; 5000 };
5001 5001
5002 scoped_ptr<DelayedSocketData> data( 5002 scoped_ptr<DelayedSocketData> data(
5003 new DelayedSocketData(1, 5003 new DelayedSocketData(1,
5004 spdy_reads, arraysize(spdy_reads), 5004 spdy_reads, arraysize(spdy_reads),
5005 spdy_writes, arraysize(spdy_writes))); 5005 spdy_writes, arraysize(spdy_writes)));
5006 NormalSpdyTransactionHelper helper(CreateGetRequest(), 5006 NormalSpdyTransactionHelper helper(CreateGetRequest(),
5007 BoundNetLog(), GetParam()); 5007 BoundNetLog(), GetParam());
5008 helper.RunToCompletion(data.get()); 5008 helper.RunToCompletion(data.get());
5009 TransactionHelperResult out = helper.output(); 5009 TransactionHelperResult out = helper.output();
5010 EXPECT_EQ(OK, out.rv); 5010 EXPECT_EQ(OK, out.rv);
5011 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); 5011 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line);
5012 EXPECT_EQ("hello!", out.response_data); 5012 EXPECT_EQ("hello!", out.response_data);
5013 5013
5014 net::HttpStreamFactory::set_spdy_enabled(false); 5014 net::HttpStreamFactory::set_spdy_enabled(false);
5015 MockRead http_reads[] = { 5015 MockRead http_reads[] = {
5016 MockRead("HTTP/1.1 200 OK\r\n\r\n"), 5016 MockRead("HTTP/1.1 200 OK\r\n\r\n"),
5017 MockRead("hello from http"), 5017 MockRead("hello from http"),
5018 MockRead(false, OK), 5018 MockRead(SYNCHRONOUS, OK),
5019 }; 5019 };
5020 scoped_ptr<DelayedSocketData> data2( 5020 scoped_ptr<DelayedSocketData> data2(
5021 new DelayedSocketData(1, http_reads, arraysize(http_reads), 5021 new DelayedSocketData(1, http_reads, arraysize(http_reads),
5022 NULL, 0)); 5022 NULL, 0));
5023 NormalSpdyTransactionHelper helper2(CreateGetRequest(), 5023 NormalSpdyTransactionHelper helper2(CreateGetRequest(),
5024 BoundNetLog(), GetParam()); 5024 BoundNetLog(), GetParam());
5025 helper2.SetSpdyDisabled(); 5025 helper2.SetSpdyDisabled();
5026 helper2.RunToCompletion(data2.get()); 5026 helper2.RunToCompletion(data2.get());
5027 TransactionHelperResult out2 = helper2.output(); 5027 TransactionHelperResult out2 = helper2.output();
5028 EXPECT_EQ(OK, out2.rv); 5028 EXPECT_EQ(OK, out2.rv);
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
5069 1)); 5069 1));
5070 scoped_ptr<spdy::SpdyFrame> body_authentication( 5070 scoped_ptr<spdy::SpdyFrame> body_authentication(
5071 ConstructSpdyBodyFrame(1, true)); 5071 ConstructSpdyBodyFrame(1, true));
5072 scoped_ptr<spdy::SpdyFrame> resp_data(ConstructSpdyGetSynReply(NULL, 0, 3)); 5072 scoped_ptr<spdy::SpdyFrame> resp_data(ConstructSpdyGetSynReply(NULL, 0, 3));
5073 scoped_ptr<spdy::SpdyFrame> body_data(ConstructSpdyBodyFrame(3, true)); 5073 scoped_ptr<spdy::SpdyFrame> body_data(ConstructSpdyBodyFrame(3, true));
5074 MockRead spdy_reads[] = { 5074 MockRead spdy_reads[] = {
5075 CreateMockRead(*resp_authentication, 2), 5075 CreateMockRead(*resp_authentication, 2),
5076 CreateMockRead(*body_authentication, 3), 5076 CreateMockRead(*body_authentication, 3),
5077 CreateMockRead(*resp_data, 5), 5077 CreateMockRead(*resp_data, 5),
5078 CreateMockRead(*body_data, 6), 5078 CreateMockRead(*body_data, 6),
5079 MockRead(true, 0, 7), 5079 MockRead(ASYNC, 0, 7),
5080 }; 5080 };
5081 5081
5082 scoped_ptr<OrderedSocketData> data( 5082 scoped_ptr<OrderedSocketData> data(
5083 new OrderedSocketData(spdy_reads, arraysize(spdy_reads), 5083 new OrderedSocketData(spdy_reads, arraysize(spdy_reads),
5084 spdy_writes, arraysize(spdy_writes))); 5084 spdy_writes, arraysize(spdy_writes)));
5085 HttpRequestInfo request(CreateGetRequest()); 5085 HttpRequestInfo request(CreateGetRequest());
5086 BoundNetLog net_log; 5086 BoundNetLog net_log;
5087 NormalSpdyTransactionHelper helper(request, net_log, GetParam()); 5087 NormalSpdyTransactionHelper helper(request, net_log, GetParam());
5088 5088
5089 helper.RunPreTestSetup(); 5089 helper.RunPreTestSetup();
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
5172 NULL, 5172 NULL,
5173 0, 5173 0,
5174 0)); 5174 0));
5175 5175
5176 scoped_ptr<spdy::SpdyFrame> 5176 scoped_ptr<spdy::SpdyFrame>
5177 stream1_reply(ConstructSpdyGetSynReply(NULL, 0, 1)); 5177 stream1_reply(ConstructSpdyGetSynReply(NULL, 0, 1));
5178 MockRead reads[] = { 5178 MockRead reads[] = {
5179 CreateMockRead(*stream1_reply, 2), 5179 CreateMockRead(*stream1_reply, 2),
5180 CreateMockRead(*stream2_syn, 3), 5180 CreateMockRead(*stream2_syn, 3),
5181 CreateMockRead(*stream2_headers, 4), 5181 CreateMockRead(*stream2_headers, 4),
5182 CreateMockRead(*stream1_body, 5, false), 5182 CreateMockRead(*stream1_body, 5, SYNCHRONOUS),
5183 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame), 5183 MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame),
5184 arraysize(kPushBodyFrame), 6), 5184 arraysize(kPushBodyFrame), 6),
5185 MockRead(true, ERR_IO_PENDING, 7), // Force a pause 5185 MockRead(ASYNC, ERR_IO_PENDING, 7), // Force a pause
5186 }; 5186 };
5187 5187
5188 HttpResponseInfo response; 5188 HttpResponseInfo response;
5189 HttpResponseInfo response2; 5189 HttpResponseInfo response2;
5190 std::string expected_push_result("pushed"); 5190 std::string expected_push_result("pushed");
5191 scoped_ptr<OrderedSocketData> data(new OrderedSocketData( 5191 scoped_ptr<OrderedSocketData> data(new OrderedSocketData(
5192 reads, 5192 reads,
5193 arraysize(reads), 5193 arraysize(reads),
5194 writes, 5194 writes,
5195 arraysize(writes))); 5195 arraysize(writes)));
(...skipping 16 matching lines...) Expand all
5212 static const unsigned char kPushBodyFrame[] = { 5212 static const unsigned char kPushBodyFrame[] = {
5213 0x00, 0x00, 0x00, 0x02, // header, ID 5213 0x00, 0x00, 0x00, 0x02, // header, ID
5214 0x01, 0x00, 0x00, 0x06, // FIN, length 5214 0x01, 0x00, 0x00, 0x06, // FIN, length
5215 'p', 'u', 's', 'h', 'e', 'd' // "pushed" 5215 'p', 'u', 's', 'h', 'e', 'd' // "pushed"
5216 }; 5216 };
5217 scoped_ptr<spdy::SpdyFrame> 5217 scoped_ptr<spdy::SpdyFrame>
5218 stream1_syn(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); 5218 stream1_syn(ConstructSpdyGet(NULL, 0, false, 1, LOWEST));
5219 scoped_ptr<spdy::SpdyFrame> 5219 scoped_ptr<spdy::SpdyFrame>
5220 stream1_body(ConstructSpdyBodyFrame(1, true)); 5220 stream1_body(ConstructSpdyBodyFrame(1, true));
5221 MockWrite writes[] = { 5221 MockWrite writes[] = {
5222 CreateMockWrite(*stream1_syn, 0, false), 5222 CreateMockWrite(*stream1_syn, 0, SYNCHRONOUS),
5223 }; 5223 };
5224 5224
5225 static const char* const kInitialHeaders[] = { 5225 static const char* const kInitialHeaders[] = {
5226 "url", 5226 "url",
5227 "http://www.google.com/foo.dat", 5227 "http://www.google.com/foo.dat",
5228 }; 5228 };
5229 static const char* const kLateHeaders[] = { 5229 static const char* const kLateHeaders[] = {
5230 "hello", 5230 "hello",
5231 "bye", 5231 "bye",
5232 "status", 5232 "status",
(...skipping 24 matching lines...) Expand all
5257 0, 5257 0,
5258 0)); 5258 0));
5259 5259
5260 scoped_ptr<spdy::SpdyFrame> 5260 scoped_ptr<spdy::SpdyFrame>
5261 stream1_reply(ConstructSpdyGetSynReply(NULL, 0, 1)); 5261 stream1_reply(ConstructSpdyGetSynReply(NULL, 0, 1));
5262 MockRead reads[] = { 5262 MockRead reads[] = {
5263 CreateMockRead(*stream1_reply, 1), 5263 CreateMockRead(*stream1_reply, 1),
5264 CreateMockRead(*stream2_syn, 2), 5264 CreateMockRead(*stream2_syn, 2),
5265 CreateMockRead(*stream1_body, 3), 5265 CreateMockRead(*stream1_body, 3),
5266 CreateMockRead(*stream2_headers, 4), 5266 CreateMockRead(*stream2_headers, 4),
5267 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame), 5267 MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame),
5268 arraysize(kPushBodyFrame), 5), 5268 arraysize(kPushBodyFrame), 5),
5269 MockRead(true, 0, 5), // EOF 5269 MockRead(ASYNC, 0, 5), // EOF
5270 }; 5270 };
5271 5271
5272 HttpResponseInfo response; 5272 HttpResponseInfo response;
5273 HttpResponseInfo response2; 5273 HttpResponseInfo response2;
5274 std::string expected_push_result("pushed"); 5274 std::string expected_push_result("pushed");
5275 scoped_refptr<DeterministicSocketData> data(new DeterministicSocketData( 5275 scoped_refptr<DeterministicSocketData> data(new DeterministicSocketData(
5276 reads, 5276 reads,
5277 arraysize(reads), 5277 arraysize(reads),
5278 writes, 5278 writes,
5279 arraysize(writes))); 5279 arraysize(writes)));
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
5349 static const unsigned char kPushBodyFrame[] = { 5349 static const unsigned char kPushBodyFrame[] = {
5350 0x00, 0x00, 0x00, 0x02, // header, ID 5350 0x00, 0x00, 0x00, 0x02, // header, ID
5351 0x01, 0x00, 0x00, 0x06, // FIN, length 5351 0x01, 0x00, 0x00, 0x06, // FIN, length
5352 'p', 'u', 's', 'h', 'e', 'd' // "pushed" 5352 'p', 'u', 's', 'h', 'e', 'd' // "pushed"
5353 }; 5353 };
5354 scoped_ptr<spdy::SpdyFrame> 5354 scoped_ptr<spdy::SpdyFrame>
5355 stream1_syn(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); 5355 stream1_syn(ConstructSpdyGet(NULL, 0, false, 1, LOWEST));
5356 scoped_ptr<spdy::SpdyFrame> 5356 scoped_ptr<spdy::SpdyFrame>
5357 stream1_body(ConstructSpdyBodyFrame(1, true)); 5357 stream1_body(ConstructSpdyBodyFrame(1, true));
5358 MockWrite writes[] = { 5358 MockWrite writes[] = {
5359 CreateMockWrite(*stream1_syn, 0, false), 5359 CreateMockWrite(*stream1_syn, 0, SYNCHRONOUS),
5360 }; 5360 };
5361 5361
5362 static const char* const kInitialHeaders[] = { 5362 static const char* const kInitialHeaders[] = {
5363 "url", 5363 "url",
5364 "http://www.google.com/foo.dat", 5364 "http://www.google.com/foo.dat",
5365 }; 5365 };
5366 static const char* const kMiddleHeaders[] = { 5366 static const char* const kMiddleHeaders[] = {
5367 "hello", 5367 "hello",
5368 "bye", 5368 "bye",
5369 }; 5369 };
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
5408 0)); 5408 0));
5409 5409
5410 scoped_ptr<spdy::SpdyFrame> 5410 scoped_ptr<spdy::SpdyFrame>
5411 stream1_reply(ConstructSpdyGetSynReply(NULL, 0, 1)); 5411 stream1_reply(ConstructSpdyGetSynReply(NULL, 0, 1));
5412 MockRead reads[] = { 5412 MockRead reads[] = {
5413 CreateMockRead(*stream1_reply, 1), 5413 CreateMockRead(*stream1_reply, 1),
5414 CreateMockRead(*stream2_syn, 2), 5414 CreateMockRead(*stream2_syn, 2),
5415 CreateMockRead(*stream1_body, 3), 5415 CreateMockRead(*stream1_body, 3),
5416 CreateMockRead(*stream2_headers1, 4), 5416 CreateMockRead(*stream2_headers1, 4),
5417 CreateMockRead(*stream2_headers2, 5), 5417 CreateMockRead(*stream2_headers2, 5),
5418 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame), 5418 MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame),
5419 arraysize(kPushBodyFrame), 6), 5419 arraysize(kPushBodyFrame), 6),
5420 MockRead(true, 0, 6), // EOF 5420 MockRead(ASYNC, 0, 6), // EOF
5421 }; 5421 };
5422 5422
5423 HttpResponseInfo response; 5423 HttpResponseInfo response;
5424 HttpResponseInfo response2; 5424 HttpResponseInfo response2;
5425 std::string expected_push_result("pushed"); 5425 std::string expected_push_result("pushed");
5426 scoped_refptr<DeterministicSocketData> data(new DeterministicSocketData( 5426 scoped_refptr<DeterministicSocketData> data(new DeterministicSocketData(
5427 reads, 5427 reads,
5428 arraysize(reads), 5428 arraysize(reads),
5429 writes, 5429 writes,
5430 arraysize(writes))); 5430 arraysize(writes)));
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
5537 spdy::HEADERS, 5537 spdy::HEADERS,
5538 spdy::CONTROL_FLAG_NONE, 5538 spdy::CONTROL_FLAG_NONE,
5539 NULL, 5539 NULL,
5540 0, 5540 0,
5541 0)); 5541 0));
5542 scoped_ptr<spdy::SpdyFrame> stream1_body(ConstructSpdyBodyFrame(1, true)); 5542 scoped_ptr<spdy::SpdyFrame> stream1_body(ConstructSpdyBodyFrame(1, true));
5543 MockRead reads[] = { 5543 MockRead reads[] = {
5544 CreateMockRead(*stream1_reply), 5544 CreateMockRead(*stream1_reply),
5545 CreateMockRead(*stream1_headers), 5545 CreateMockRead(*stream1_headers),
5546 CreateMockRead(*stream1_body), 5546 CreateMockRead(*stream1_body),
5547 MockRead(true, 0, 0) // EOF 5547 MockRead(ASYNC, 0, 0) // EOF
5548 }; 5548 };
5549 5549
5550 scoped_ptr<DelayedSocketData> data( 5550 scoped_ptr<DelayedSocketData> data(
5551 new DelayedSocketData(1, reads, arraysize(reads), 5551 new DelayedSocketData(1, reads, arraysize(reads),
5552 writes, arraysize(writes))); 5552 writes, arraysize(writes)));
5553 NormalSpdyTransactionHelper helper(CreateGetRequest(), 5553 NormalSpdyTransactionHelper helper(CreateGetRequest(),
5554 BoundNetLog(), GetParam()); 5554 BoundNetLog(), GetParam());
5555 helper.RunToCompletion(data.get()); 5555 helper.RunToCompletion(data.get());
5556 TransactionHelperResult out = helper.output(); 5556 TransactionHelperResult out = helper.output();
5557 EXPECT_EQ(OK, out.rv); 5557 EXPECT_EQ(OK, out.rv);
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
5595 NULL, 5595 NULL,
5596 0, 5596 0,
5597 0)); 5597 0));
5598 scoped_ptr<spdy::SpdyFrame> stream1_body(ConstructSpdyBodyFrame(1, false)); 5598 scoped_ptr<spdy::SpdyFrame> stream1_body(ConstructSpdyBodyFrame(1, false));
5599 scoped_ptr<spdy::SpdyFrame> stream1_body2(ConstructSpdyBodyFrame(1, true)); 5599 scoped_ptr<spdy::SpdyFrame> stream1_body2(ConstructSpdyBodyFrame(1, true));
5600 MockRead reads[] = { 5600 MockRead reads[] = {
5601 CreateMockRead(*stream1_reply), 5601 CreateMockRead(*stream1_reply),
5602 CreateMockRead(*stream1_body), 5602 CreateMockRead(*stream1_body),
5603 CreateMockRead(*stream1_headers), 5603 CreateMockRead(*stream1_headers),
5604 CreateMockRead(*stream1_body2), 5604 CreateMockRead(*stream1_body2),
5605 MockRead(true, 0, 0) // EOF 5605 MockRead(ASYNC, 0, 0) // EOF
5606 }; 5606 };
5607 5607
5608 scoped_ptr<DelayedSocketData> data( 5608 scoped_ptr<DelayedSocketData> data(
5609 new DelayedSocketData(1, reads, arraysize(reads), 5609 new DelayedSocketData(1, reads, arraysize(reads),
5610 writes, arraysize(writes))); 5610 writes, arraysize(writes)));
5611 NormalSpdyTransactionHelper helper(CreateGetRequest(), 5611 NormalSpdyTransactionHelper helper(CreateGetRequest(),
5612 BoundNetLog(), GetParam()); 5612 BoundNetLog(), GetParam());
5613 helper.RunToCompletion(data.get()); 5613 helper.RunToCompletion(data.get());
5614 TransactionHelperResult out = helper.output(); 5614 TransactionHelperResult out = helper.output();
5615 EXPECT_EQ(OK, out.rv); 5615 EXPECT_EQ(OK, out.rv);
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
5653 NULL, 5653 NULL,
5654 0, 5654 0,
5655 0)); 5655 0));
5656 scoped_ptr<spdy::SpdyFrame> stream1_body(ConstructSpdyBodyFrame(1, false)); 5656 scoped_ptr<spdy::SpdyFrame> stream1_body(ConstructSpdyBodyFrame(1, false));
5657 scoped_ptr<spdy::SpdyFrame> stream1_body2(ConstructSpdyBodyFrame(1, true)); 5657 scoped_ptr<spdy::SpdyFrame> stream1_body2(ConstructSpdyBodyFrame(1, true));
5658 MockRead reads[] = { 5658 MockRead reads[] = {
5659 CreateMockRead(*stream1_reply), 5659 CreateMockRead(*stream1_reply),
5660 CreateMockRead(*stream1_body), 5660 CreateMockRead(*stream1_body),
5661 CreateMockRead(*stream1_headers), 5661 CreateMockRead(*stream1_headers),
5662 CreateMockRead(*stream1_body2), 5662 CreateMockRead(*stream1_body2),
5663 MockRead(true, 0, 0) // EOF 5663 MockRead(ASYNC, 0, 0) // EOF
5664 }; 5664 };
5665 5665
5666 scoped_ptr<DelayedSocketData> data( 5666 scoped_ptr<DelayedSocketData> data(
5667 new DelayedSocketData(1, reads, arraysize(reads), 5667 new DelayedSocketData(1, reads, arraysize(reads),
5668 writes, arraysize(writes))); 5668 writes, arraysize(writes)));
5669 NormalSpdyTransactionHelper helper(CreateGetRequest(), 5669 NormalSpdyTransactionHelper helper(CreateGetRequest(),
5670 BoundNetLog(), GetParam()); 5670 BoundNetLog(), GetParam());
5671 helper.RunToCompletion(data.get()); 5671 helper.RunToCompletion(data.get());
5672 TransactionHelperResult out = helper.output(); 5672 TransactionHelperResult out = helper.output();
5673 EXPECT_EQ(ERR_SPDY_PROTOCOL_ERROR, out.rv); 5673 EXPECT_EQ(ERR_SPDY_PROTOCOL_ERROR, out.rv);
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
5727 0, 5727 0,
5728 2, 5728 2,
5729 1, 5729 1,
5730 url_to_push)); 5730 url_to_push));
5731 scoped_ptr<spdy::SpdyFrame> rst( 5731 scoped_ptr<spdy::SpdyFrame> rst(
5732 ConstructSpdyRstStream(2, spdy::CANCEL)); 5732 ConstructSpdyRstStream(2, spdy::CANCEL));
5733 5733
5734 MockRead reads[] = { 5734 MockRead reads[] = {
5735 CreateMockRead(*stream1_reply, 2), 5735 CreateMockRead(*stream1_reply, 2),
5736 CreateMockRead(*stream2_syn, 3), 5736 CreateMockRead(*stream2_syn, 3),
5737 CreateMockRead(*stream1_body, 5, false), 5737 CreateMockRead(*stream1_body, 5, SYNCHRONOUS),
5738 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame), 5738 MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame),
5739 arraysize(kPushBodyFrame), 6), 5739 arraysize(kPushBodyFrame), 6),
5740 MockRead(true, ERR_IO_PENDING, 7), // Force a pause 5740 MockRead(ASYNC, ERR_IO_PENDING, 7), // Force a pause
5741 }; 5741 };
5742 5742
5743 HttpResponseInfo response; 5743 HttpResponseInfo response;
5744 scoped_ptr<OrderedSocketData> data(new OrderedSocketData( 5744 scoped_ptr<OrderedSocketData> data(new OrderedSocketData(
5745 reads, 5745 reads,
5746 arraysize(reads), 5746 arraysize(reads),
5747 writes, 5747 writes,
5748 arraysize(writes))); 5748 arraysize(writes)));
5749 5749
5750 HttpRequestInfo request; 5750 HttpRequestInfo request;
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
5795 }; 5795 };
5796 5796
5797 scoped_ptr<spdy::SpdyFrame> refused( 5797 scoped_ptr<spdy::SpdyFrame> refused(
5798 ConstructSpdyRstStream(1, spdy::REFUSED_STREAM)); 5798 ConstructSpdyRstStream(1, spdy::REFUSED_STREAM));
5799 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 3)); 5799 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 3));
5800 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(3, true)); 5800 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(3, true));
5801 MockRead reads[] = { 5801 MockRead reads[] = {
5802 CreateMockRead(*refused, 2), 5802 CreateMockRead(*refused, 2),
5803 CreateMockRead(*resp, 4), 5803 CreateMockRead(*resp, 4),
5804 CreateMockRead(*body, 5), 5804 CreateMockRead(*body, 5),
5805 MockRead(true, 0, 6) // EOF 5805 MockRead(ASYNC, 0, 6) // EOF
5806 }; 5806 };
5807 5807
5808 scoped_ptr<OrderedSocketData> data( 5808 scoped_ptr<OrderedSocketData> data(
5809 new OrderedSocketData(reads, arraysize(reads), 5809 new OrderedSocketData(reads, arraysize(reads),
5810 writes, arraysize(writes))); 5810 writes, arraysize(writes)));
5811 NormalSpdyTransactionHelper helper(CreateGetRequest(), 5811 NormalSpdyTransactionHelper helper(CreateGetRequest(),
5812 BoundNetLog(), GetParam()); 5812 BoundNetLog(), GetParam());
5813 5813
5814 helper.RunPreTestSetup(); 5814 helper.RunPreTestSetup();
5815 helper.AddData(data.get()); 5815 helper.AddData(data.get());
(...skipping 18 matching lines...) Expand all
5834 << " Write index: " 5834 << " Write index: "
5835 << data->write_index(); 5835 << data->write_index();
5836 5836
5837 // Verify the SYN_REPLY. 5837 // Verify the SYN_REPLY.
5838 HttpResponseInfo response = *trans->GetResponseInfo(); 5838 HttpResponseInfo response = *trans->GetResponseInfo();
5839 EXPECT_TRUE(response.headers != NULL); 5839 EXPECT_TRUE(response.headers != NULL);
5840 EXPECT_EQ("HTTP/1.1 200 OK", response.headers->GetStatusLine()); 5840 EXPECT_EQ("HTTP/1.1 200 OK", response.headers->GetStatusLine());
5841 } 5841 }
5842 5842
5843 } // namespace net 5843 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698