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

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

Issue 9251019: Fixes to socket_test_util.cc. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Removed unsafe pointers to sockets. Created 8 years, 11 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 542 matching lines...) Expand 10 before | Expand all | Expand 10 after
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(true, 0, 0) // EOF
561 }; 561 };
562 562
563 scoped_refptr<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);
571 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); 571 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line);
572 EXPECT_EQ("hello!", out.response_data); 572 EXPECT_EQ("hello!", out.response_data);
573 } 573 }
(...skipping 29 matching lines...) Expand all
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(true, 0, 0) // EOF
611 }; 611 };
612 612
613 scoped_refptr<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());
621 TransactionHelperResult out = helper.output(); 621 TransactionHelperResult out = helper.output();
622 EXPECT_EQ(OK, out.rv); 622 EXPECT_EQ(OK, out.rv);
623 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); 623 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line);
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
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(true, 0, 0), // EOF
672 }; 672 };
673 scoped_refptr<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_refptr<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(),
682 BoundNetLog(), GetParam()); 682 BoundNetLog(), GetParam());
683 helper.RunPreTestSetup(); 683 helper.RunPreTestSetup();
684 helper.AddData(data.get()); 684 helper.AddData(data.get());
685 // We require placeholder data because three get requests are sent out, so 685 // We require placeholder data because three get requests are sent out, so
686 // there needs to be three sets of SSL connection data. 686 // there needs to be three sets of SSL connection data.
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
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(true, 0, 0), // EOF
756 }; 756 };
757 scoped_refptr<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(false, ERR_IO_PENDING); 761 MockConnect never_finishing_connect(false, ERR_IO_PENDING);
762 762
763 scoped_refptr<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);
766 766
767 BoundNetLog log; 767 BoundNetLog log;
768 TransactionHelperResult out; 768 TransactionHelperResult out;
769 NormalSpdyTransactionHelper helper(CreateGetRequest(), 769 NormalSpdyTransactionHelper helper(CreateGetRequest(),
770 BoundNetLog(), GetParam()); 770 BoundNetLog(), GetParam());
771 helper.RunPreTestSetup(); 771 helper.RunPreTestSetup();
772 helper.AddData(data.get()); 772 helper.AddData(data.get());
773 // We require placeholder data because two get requests are sent out, so 773 // We require placeholder data because two get requests are sent out, so
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
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(true, 0, 0), // EOF
843 }; 843 };
844 scoped_refptr<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(true, ERR_IO_PENDING); 848 MockConnect never_finishing_connect(true, ERR_IO_PENDING);
849 849
850 scoped_refptr<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);
853 853
854 BoundNetLog log; 854 BoundNetLog log;
855 TransactionHelperResult out; 855 TransactionHelperResult out;
856 NormalSpdyTransactionHelper helper(CreateGetRequest(), 856 NormalSpdyTransactionHelper helper(CreateGetRequest(),
857 BoundNetLog(), GetParam()); 857 BoundNetLog(), GetParam());
858 helper.RunPreTestSetup(); 858 helper.RunPreTestSetup();
859 helper.AddData(preconnect_data.get()); 859 helper.AddData(preconnect_data.get());
860 // We require placeholder data because 3 connections are attempted (first is 860 // We require placeholder data because 3 connections are attempted (first is
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
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(true, 0, 0), // EOF
969 }; 969 };
970 970
971 scoped_refptr<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_refptr<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;
979 { 979 {
980 NormalSpdyTransactionHelper helper(CreateGetRequest(), 980 NormalSpdyTransactionHelper helper(CreateGetRequest(),
981 BoundNetLog(), GetParam()); 981 BoundNetLog(), GetParam());
982 helper.RunPreTestSetup(); 982 helper.RunPreTestSetup();
983 helper.AddData(data.get()); 983 helper.AddData(data.get());
984 // We require placeholder data because three get requests are sent out, so 984 // We require placeholder data because three get requests are sent out, so
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
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(true, 0, 0), // EOF
1109 }; 1109 };
1110 1110
1111 scoped_refptr<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_refptr<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;
1119 NormalSpdyTransactionHelper helper(CreateGetRequest(), 1119 NormalSpdyTransactionHelper helper(CreateGetRequest(),
1120 BoundNetLog(), GetParam()); 1120 BoundNetLog(), GetParam());
1121 helper.RunPreTestSetup(); 1121 helper.RunPreTestSetup();
1122 helper.AddData(data.get()); 1122 helper.AddData(data.get());
1123 // We require placeholder data because four get requests are sent out, so 1123 // We require placeholder data because four get requests are sent out, so
1124 // there needs to be four sets of SSL connection data. 1124 // there needs to be four sets of SSL connection data.
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
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(true, 0, 0), // EOF
1246 }; 1246 };
1247 1247
1248 scoped_refptr<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_refptr<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;
1256 NormalSpdyTransactionHelper helper(CreateGetRequest(), 1256 NormalSpdyTransactionHelper helper(CreateGetRequest(),
1257 BoundNetLog(), GetParam()); 1257 BoundNetLog(), GetParam());
1258 helper.RunPreTestSetup(); 1258 helper.RunPreTestSetup();
1259 helper.AddData(data.get()); 1259 helper.AddData(data.get());
1260 // We require placeholder data because three get requests are sent out, so 1260 // We require placeholder data because three get requests are sent out, so
1261 // there needs to be three sets of SSL connection data. 1261 // there needs to be three sets of SSL connection data.
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
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(true, ERR_CONNECTION_RESET, 0), // Abort!
1376 }; 1376 };
1377 1377
1378 scoped_refptr<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_refptr<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;
1386 NormalSpdyTransactionHelper helper(CreateGetRequest(), 1386 NormalSpdyTransactionHelper helper(CreateGetRequest(),
1387 BoundNetLog(), GetParam()); 1387 BoundNetLog(), GetParam());
1388 helper.RunPreTestSetup(); 1388 helper.RunPreTestSetup();
1389 helper.AddData(data.get()); 1389 helper.AddData(data.get());
1390 // We require placeholder data because three get requests are sent out, so 1390 // We require placeholder data because three get requests are sent out, so
1391 // there needs to be three sets of SSL connection data. 1391 // there needs to be three sets of SSL connection data.
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
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(true, 0, 0) // EOF
1498 }; 1498 };
1499 1499
1500 scoped_refptr<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
1508 EXPECT_EQ(OK, out.rv); 1508 EXPECT_EQ(OK, out.rv);
1509 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); 1509 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line);
1510 } 1510 }
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
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(true, 0, 0) // EOF
1569 }; 1569 };
1570 1570
1571 scoped_refptr<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(true, 0, 0) // EOF
1597 }; 1597 };
1598 1598
1599 scoped_refptr<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);
1607 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); 1607 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line);
1608 EXPECT_EQ("hello!", out.response_data); 1608 EXPECT_EQ("hello!", out.response_data);
1609 } 1609 }
(...skipping 11 matching lines...) Expand all
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(true, 0, 0) // EOF
1629 }; 1629 };
1630 1630
1631 scoped_refptr<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);
1639 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); 1639 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line);
1640 EXPECT_EQ("hello!hello!", out.response_data); 1640 EXPECT_EQ("hello!hello!", out.response_data);
1641 } 1641 }
(...skipping 17 matching lines...) Expand all
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(true, 0, 0) // EOF
1667 }; 1667 };
1668 1668
1669 scoped_refptr<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();
1677 EXPECT_EQ(OK, out.rv); 1677 EXPECT_EQ(OK, out.rv);
1678 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); 1678 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line);
1679 EXPECT_EQ("hello!", out.response_data); 1679 EXPECT_EQ("hello!", out.response_data);
(...skipping 23 matching lines...) Expand all
1703 }; 1703 };
1704 1704
1705 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyPostSynReply(NULL, 0)); 1705 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyPostSynReply(NULL, 0));
1706 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); 1706 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
1707 MockRead reads[] = { 1707 MockRead reads[] = {
1708 CreateMockRead(*resp), 1708 CreateMockRead(*resp),
1709 CreateMockRead(*body), 1709 CreateMockRead(*body),
1710 MockRead(true, 0, 0) // EOF 1710 MockRead(true, 0, 0) // EOF
1711 }; 1711 };
1712 1712
1713 scoped_refptr<DelayedSocketData> data( 1713 scoped_ptr<DelayedSocketData> data(
1714 new DelayedSocketData(1, reads, arraysize(reads), 1714 new DelayedSocketData(1, reads, arraysize(reads),
1715 writes, arraysize(writes))); 1715 writes, arraysize(writes)));
1716 1716
1717 NormalSpdyTransactionHelper helper(request, 1717 NormalSpdyTransactionHelper helper(request,
1718 BoundNetLog(), GetParam()); 1718 BoundNetLog(), GetParam());
1719 helper.RunToCompletion(data.get()); 1719 helper.RunToCompletion(data.get());
1720 TransactionHelperResult out = helper.output(); 1720 TransactionHelperResult out = helper.output();
1721 EXPECT_EQ(OK, out.rv); 1721 EXPECT_EQ(OK, out.rv);
1722 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); 1722 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line);
1723 EXPECT_EQ("hello!", out.response_data); 1723 EXPECT_EQ("hello!", out.response_data);
(...skipping 16 matching lines...) Expand all
1740 request.upload_data, NULL)); 1740 request.upload_data, NULL));
1741 ASSERT_EQ(request.upload_data->GetContentLength(), stream->size()); 1741 ASSERT_EQ(request.upload_data->GetContentLength(), stream->size());
1742 scoped_ptr<spdy::SpdyFrame> stream_reply(ConstructSpdyPostSynReply(NULL, 0)); 1742 scoped_ptr<spdy::SpdyFrame> stream_reply(ConstructSpdyPostSynReply(NULL, 0));
1743 scoped_ptr<spdy::SpdyFrame> stream_body(ConstructSpdyBodyFrame(1, true)); 1743 scoped_ptr<spdy::SpdyFrame> stream_body(ConstructSpdyBodyFrame(1, true));
1744 MockRead reads[] = { 1744 MockRead reads[] = {
1745 CreateMockRead(*stream_reply, 2), 1745 CreateMockRead(*stream_reply, 2),
1746 CreateMockRead(*stream_body, 3), 1746 CreateMockRead(*stream_body, 3),
1747 MockRead(false, 0, 0) // EOF 1747 MockRead(false, 0, 0) // EOF
1748 }; 1748 };
1749 1749
1750 scoped_refptr<DelayedSocketData> data( 1750 scoped_ptr<DelayedSocketData> data(
1751 new DelayedSocketData(0, reads, arraysize(reads), NULL, 0)); 1751 new DelayedSocketData(0, reads, arraysize(reads), NULL, 0));
1752 NormalSpdyTransactionHelper helper(request, 1752 NormalSpdyTransactionHelper helper(request,
1753 BoundNetLog(), GetParam()); 1753 BoundNetLog(), GetParam());
1754 helper.RunPreTestSetup(); 1754 helper.RunPreTestSetup();
1755 helper.AddData(data.get()); 1755 helper.AddData(data.get());
1756 helper.RunDefaultTest(); 1756 helper.RunDefaultTest();
1757 helper.VerifyDataConsumed(); 1757 helper.VerifyDataConsumed();
1758 1758
1759 TransactionHelperResult out = helper.output(); 1759 TransactionHelperResult out = helper.output();
1760 EXPECT_EQ(ERR_SYN_REPLY_NOT_RECEIVED, out.rv); 1760 EXPECT_EQ(ERR_SYN_REPLY_NOT_RECEIVED, out.rv);
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
1804 } 1804 }
1805 1805
1806 // Test that the transaction doesn't crash when we don't have a reply. 1806 // Test that the transaction doesn't crash when we don't have a reply.
1807 TEST_P(SpdyNetworkTransactionTest, ResponseWithoutSynReply) { 1807 TEST_P(SpdyNetworkTransactionTest, ResponseWithoutSynReply) {
1808 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); 1808 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
1809 MockRead reads[] = { 1809 MockRead reads[] = {
1810 CreateMockRead(*body), 1810 CreateMockRead(*body),
1811 MockRead(true, 0, 0) // EOF 1811 MockRead(true, 0, 0) // EOF
1812 }; 1812 };
1813 1813
1814 scoped_refptr<DelayedSocketData> data( 1814 scoped_ptr<DelayedSocketData> data(
1815 new DelayedSocketData(1, reads, arraysize(reads), NULL, 0)); 1815 new DelayedSocketData(1, reads, arraysize(reads), NULL, 0));
1816 NormalSpdyTransactionHelper helper(CreateGetRequest(), 1816 NormalSpdyTransactionHelper helper(CreateGetRequest(),
1817 BoundNetLog(), GetParam()); 1817 BoundNetLog(), GetParam());
1818 helper.RunToCompletion(data.get()); 1818 helper.RunToCompletion(data.get());
1819 TransactionHelperResult out = helper.output(); 1819 TransactionHelperResult out = helper.output();
1820 EXPECT_EQ(ERR_SYN_REPLY_NOT_RECEIVED, out.rv); 1820 EXPECT_EQ(ERR_SYN_REPLY_NOT_RECEIVED, out.rv);
1821 } 1821 }
1822 1822
1823 // Test that the transaction doesn't crash when we get two replies on the same 1823 // Test that the transaction doesn't crash when we get two replies on the same
1824 // stream ID. See http://crbug.com/45639. 1824 // stream ID. See http://crbug.com/45639.
1825 TEST_P(SpdyNetworkTransactionTest, ResponseWithTwoSynReplies) { 1825 TEST_P(SpdyNetworkTransactionTest, ResponseWithTwoSynReplies) {
1826 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); 1826 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST));
1827 MockWrite writes[] = { CreateMockWrite(*req) }; 1827 MockWrite writes[] = { CreateMockWrite(*req) };
1828 1828
1829 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 1829 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
1830 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); 1830 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
1831 MockRead reads[] = { 1831 MockRead reads[] = {
1832 CreateMockRead(*resp), 1832 CreateMockRead(*resp),
1833 CreateMockRead(*resp), 1833 CreateMockRead(*resp),
1834 CreateMockRead(*body), 1834 CreateMockRead(*body),
1835 MockRead(true, 0, 0) // EOF 1835 MockRead(true, 0, 0) // EOF
1836 }; 1836 };
1837 1837
1838 scoped_refptr<DelayedSocketData> data( 1838 scoped_ptr<DelayedSocketData> data(
1839 new DelayedSocketData(1, reads, arraysize(reads), 1839 new DelayedSocketData(1, reads, arraysize(reads),
1840 writes, arraysize(writes))); 1840 writes, arraysize(writes)));
1841 1841
1842 NormalSpdyTransactionHelper helper(CreateGetRequest(), 1842 NormalSpdyTransactionHelper helper(CreateGetRequest(),
1843 BoundNetLog(), GetParam()); 1843 BoundNetLog(), GetParam());
1844 helper.RunPreTestSetup(); 1844 helper.RunPreTestSetup();
1845 helper.AddData(data.get()); 1845 helper.AddData(data.get());
1846 1846
1847 HttpNetworkTransaction* trans = helper.trans(); 1847 HttpNetworkTransaction* trans = helper.trans();
1848 1848
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
1916 CreateMockRead(*window_update_dummy), 1916 CreateMockRead(*window_update_dummy),
1917 CreateMockRead(*window_update), // Four updates, therefore window 1917 CreateMockRead(*window_update), // Four updates, therefore window
1918 CreateMockRead(*window_update), // size should increase by 1918 CreateMockRead(*window_update), // size should increase by
1919 CreateMockRead(*window_update), // kDeltaWindowSize * 4 1919 CreateMockRead(*window_update), // kDeltaWindowSize * 4
1920 CreateMockRead(*window_update), 1920 CreateMockRead(*window_update),
1921 CreateMockRead(*resp), 1921 CreateMockRead(*resp),
1922 CreateMockRead(*body_end), 1922 CreateMockRead(*body_end),
1923 MockRead(true, 0, 0) // EOF 1923 MockRead(true, 0, 0) // EOF
1924 }; 1924 };
1925 1925
1926 scoped_refptr<DelayedSocketData> data( 1926 scoped_ptr<DelayedSocketData> data(
1927 new DelayedSocketData(0, reads, arraysize(reads), 1927 new DelayedSocketData(0, reads, arraysize(reads),
1928 writes, arraysize(writes))); 1928 writes, arraysize(writes)));
1929 1929
1930 // Setup the request 1930 // Setup the request
1931 HttpRequestInfo request; 1931 HttpRequestInfo request;
1932 request.method = "POST"; 1932 request.method = "POST";
1933 request.url = GURL(kDefaultURL); 1933 request.url = GURL(kDefaultURL);
1934 request.upload_data = new UploadData(); 1934 request.upload_data = new UploadData();
1935 for (int i = 0; i < kFrameCount; ++i) 1935 for (int i = 0; i < kFrameCount; ++i)
1936 request.upload_data->AppendBytes(content->c_str(), content->size()); 1936 request.upload_data->AppendBytes(content->c_str(), content->size());
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
1981 ConstructSpdyBodyFrame(1, NULL, 0, true)); 1981 ConstructSpdyBodyFrame(1, NULL, 0, true));
1982 MockRead reads[] = { 1982 MockRead reads[] = {
1983 CreateMockRead(*resp), 1983 CreateMockRead(*resp),
1984 CreateMockRead(*body_no_fin), 1984 CreateMockRead(*body_no_fin),
1985 MockRead(true, ERR_IO_PENDING, 0), // Force a pause 1985 MockRead(true, ERR_IO_PENDING, 0), // Force a pause
1986 CreateMockRead(*body_fin), 1986 CreateMockRead(*body_fin),
1987 MockRead(true, ERR_IO_PENDING, 0), // Force a pause 1987 MockRead(true, ERR_IO_PENDING, 0), // Force a pause
1988 MockRead(true, 0, 0) // EOF 1988 MockRead(true, 0, 0) // EOF
1989 }; 1989 };
1990 1990
1991 scoped_refptr<DelayedSocketData> data( 1991 scoped_ptr<DelayedSocketData> data(
1992 new DelayedSocketData(1, reads, arraysize(reads), 1992 new DelayedSocketData(1, reads, arraysize(reads),
1993 writes, arraysize(writes))); 1993 writes, arraysize(writes)));
1994 1994
1995 NormalSpdyTransactionHelper helper(CreateGetRequest(), 1995 NormalSpdyTransactionHelper helper(CreateGetRequest(),
1996 BoundNetLog(), GetParam()); 1996 BoundNetLog(), GetParam());
1997 helper.AddData(data.get()); 1997 helper.AddData(data.get());
1998 helper.RunPreTestSetup(); 1998 helper.RunPreTestSetup();
1999 HttpNetworkTransaction* trans = helper.trans(); 1999 HttpNetworkTransaction* trans = helper.trans();
2000 2000
2001 TestCompletionCallback callback; 2001 TestCompletionCallback callback;
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
2078 MockRead reads[] = { 2078 MockRead reads[] = {
2079 CreateMockRead(*window_update2), 2079 CreateMockRead(*window_update2),
2080 CreateMockRead(*window_update2), 2080 CreateMockRead(*window_update2),
2081 CreateMockRead(*window_update), 2081 CreateMockRead(*window_update),
2082 CreateMockRead(*window_update), 2082 CreateMockRead(*window_update),
2083 CreateMockRead(*window_update), 2083 CreateMockRead(*window_update),
2084 MockRead(true, ERR_IO_PENDING, 0), // Wait for the RST to be written. 2084 MockRead(true, ERR_IO_PENDING, 0), // Wait for the RST to be written.
2085 MockRead(true, 0, 0) // EOF 2085 MockRead(true, 0, 0) // EOF
2086 }; 2086 };
2087 2087
2088 scoped_refptr<DelayedSocketData> data( 2088 scoped_ptr<DelayedSocketData> data(
2089 new DelayedSocketData(0, reads, arraysize(reads), 2089 new DelayedSocketData(0, reads, arraysize(reads),
2090 writes, arraysize(writes))); 2090 writes, arraysize(writes)));
2091 2091
2092 // Setup the request 2092 // Setup the request
2093 HttpRequestInfo request; 2093 HttpRequestInfo request;
2094 request.method = "POST"; 2094 request.method = "POST";
2095 request.url = GURL("http://www.google.com/"); 2095 request.url = GURL("http://www.google.com/");
2096 request.upload_data = new UploadData(); 2096 request.upload_data = new UploadData();
2097 for (int i = 0; i < kFrameCount; ++i) 2097 for (int i = 0; i < kFrameCount; ++i)
2098 request.upload_data->AppendBytes(content->c_str(), content->size()); 2098 request.upload_data->AppendBytes(content->c_str(), content->size());
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
2186 CreateMockRead(*window_update), 2186 CreateMockRead(*window_update),
2187 CreateMockRead(*window_update), 2187 CreateMockRead(*window_update),
2188 CreateMockRead(*reply), 2188 CreateMockRead(*reply),
2189 CreateMockRead(*body2), 2189 CreateMockRead(*body2),
2190 CreateMockRead(*body3), 2190 CreateMockRead(*body3),
2191 MockRead(true, 0, 0) // EOF 2191 MockRead(true, 0, 0) // EOF
2192 }; 2192 };
2193 2193
2194 // Force all writes to happen before any read, last write will not 2194 // Force all writes to happen before any read, last write will not
2195 // actually queue a frame, due to window size being 0. 2195 // actually queue a frame, due to window size being 0.
2196 scoped_refptr<DelayedSocketData> data( 2196 scoped_ptr<DelayedSocketData> data(
2197 new DelayedSocketData(nwrites, reads, arraysize(reads), 2197 new DelayedSocketData(nwrites, reads, arraysize(reads),
2198 writes.get(), nwrites)); 2198 writes.get(), nwrites));
2199 2199
2200 HttpRequestInfo request; 2200 HttpRequestInfo request;
2201 request.method = "POST"; 2201 request.method = "POST";
2202 request.url = GURL("http://www.google.com/"); 2202 request.url = GURL("http://www.google.com/");
2203 request.upload_data = new UploadData(); 2203 request.upload_data = new UploadData();
2204 scoped_ptr<std::string> upload_data( 2204 scoped_ptr<std::string> upload_data(
2205 new std::string(spdy::kSpdyStreamInitialWindowSize, 'a')); 2205 new std::string(spdy::kSpdyStreamInitialWindowSize, 'a'));
2206 upload_data->append(kUploadData, kUploadDataSize); 2206 upload_data->append(kUploadData, kUploadDataSize);
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
2336 MockRead(true, reinterpret_cast<const char*>(kGetBodyFrame2), 2336 MockRead(true, reinterpret_cast<const char*>(kGetBodyFrame2),
2337 arraysize(kGetBodyFrame2), 4), 2337 arraysize(kGetBodyFrame2), 4),
2338 MockRead(true, ERR_IO_PENDING, 5), // Force a pause 2338 MockRead(true, ERR_IO_PENDING, 5), // Force a pause
2339 MockRead(true, 0, 0, 6), // EOF 2339 MockRead(true, 0, 0, 6), // EOF
2340 }; 2340 };
2341 MockRead reads2[] = { 2341 MockRead reads2[] = {
2342 CreateMockRead(*resp, 2), 2342 CreateMockRead(*resp, 2),
2343 MockRead(true, 0, 0, 3), // EOF 2343 MockRead(true, 0, 0, 3), // EOF
2344 }; 2344 };
2345 2345
2346 scoped_refptr<OrderedSocketData> data( 2346 scoped_ptr<OrderedSocketData> data(
2347 new OrderedSocketData(reads, arraysize(reads), 2347 new OrderedSocketData(reads, arraysize(reads),
2348 writes, arraysize(writes))); 2348 writes, arraysize(writes)));
2349 scoped_refptr<DelayedSocketData> data2( 2349 scoped_ptr<DelayedSocketData> data2(
2350 new DelayedSocketData(1, reads2, arraysize(reads2), 2350 new DelayedSocketData(1, reads2, arraysize(reads2),
2351 writes2, arraysize(writes2))); 2351 writes2, arraysize(writes2)));
2352 2352
2353 NormalSpdyTransactionHelper helper(CreateGetRequest(), 2353 NormalSpdyTransactionHelper helper(CreateGetRequest(),
2354 BoundNetLog(), GetParam()); 2354 BoundNetLog(), GetParam());
2355 helper.RunPreTestSetup(); 2355 helper.RunPreTestSetup();
2356 helper.AddData(data.get()); 2356 helper.AddData(data.get());
2357 helper.AddData(data2.get()); 2357 helper.AddData(data2.get());
2358 HttpNetworkTransaction* trans = helper.trans(); 2358 HttpNetworkTransaction* trans = helper.trans();
2359 2359
(...skipping 25 matching lines...) Expand all
2385 2385
2386 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 2386 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
2387 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); 2387 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
2388 MockRead reads[] = { 2388 MockRead reads[] = {
2389 CreateMockRead(*resp.get(), 2), 2389 CreateMockRead(*resp.get(), 2),
2390 MockRead(true, ERR_IO_PENDING, 3), // Force a pause 2390 MockRead(true, ERR_IO_PENDING, 3), // Force a pause
2391 CreateMockRead(*body.get(), 4), 2391 CreateMockRead(*body.get(), 4),
2392 MockRead(true, 0, 0, 5), // EOF 2392 MockRead(true, 0, 0, 5), // EOF
2393 }; 2393 };
2394 2394
2395 scoped_refptr<OrderedSocketData> data( 2395 scoped_ptr<OrderedSocketData> data(
2396 new OrderedSocketData(reads, arraysize(reads), 2396 new OrderedSocketData(reads, arraysize(reads),
2397 writes, arraysize(writes))); 2397 writes, arraysize(writes)));
2398 2398
2399 NormalSpdyTransactionHelper helper(CreateGetRequest(), 2399 NormalSpdyTransactionHelper helper(CreateGetRequest(),
2400 BoundNetLog(), GetParam()); 2400 BoundNetLog(), GetParam());
2401 helper.RunPreTestSetup(); 2401 helper.RunPreTestSetup();
2402 helper.AddData(data.get()); 2402 helper.AddData(data.get());
2403 HttpNetworkTransaction* trans = helper.trans(); 2403 HttpNetworkTransaction* trans = helper.trans();
2404 2404
2405 // Start the transaction with basic parameters. 2405 // Start the transaction with basic parameters.
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
2481 scoped_ptr<spdy::SpdyFrame> resp2(ConstructSpdyGetSynReply(NULL, 0, 1)); 2481 scoped_ptr<spdy::SpdyFrame> resp2(ConstructSpdyGetSynReply(NULL, 0, 1));
2482 scoped_ptr<spdy::SpdyFrame> body2(ConstructSpdyBodyFrame(1, true)); 2482 scoped_ptr<spdy::SpdyFrame> body2(ConstructSpdyBodyFrame(1, true));
2483 MockWrite writes2[] = { 2483 MockWrite writes2[] = {
2484 CreateMockWrite(*req2, 1), 2484 CreateMockWrite(*req2, 1),
2485 }; 2485 };
2486 MockRead reads2[] = { 2486 MockRead reads2[] = {
2487 CreateMockRead(*resp2, 2), 2487 CreateMockRead(*resp2, 2),
2488 CreateMockRead(*body2, 3), 2488 CreateMockRead(*body2, 3),
2489 MockRead(true, 0, 0, 4) // EOF 2489 MockRead(true, 0, 0, 4) // EOF
2490 }; 2490 };
2491 scoped_refptr<OrderedSocketData> data( 2491 scoped_ptr<OrderedSocketData> data(
2492 new OrderedSocketData(reads, arraysize(reads), 2492 new OrderedSocketData(reads, arraysize(reads),
2493 writes, arraysize(writes))); 2493 writes, arraysize(writes)));
2494 scoped_refptr<OrderedSocketData> data2( 2494 scoped_ptr<OrderedSocketData> data2(
2495 new OrderedSocketData(reads2, arraysize(reads2), 2495 new OrderedSocketData(reads2, arraysize(reads2),
2496 writes2, arraysize(writes2))); 2496 writes2, arraysize(writes2)));
2497 2497
2498 // TODO(erikchen): Make test support SPDYSSL, SPDYNPN 2498 // TODO(erikchen): Make test support SPDYSSL, SPDYNPN
2499 HttpStreamFactory::set_force_spdy_over_ssl(false); 2499 HttpStreamFactory::set_force_spdy_over_ssl(false);
2500 HttpStreamFactory::set_force_spdy_always(true); 2500 HttpStreamFactory::set_force_spdy_always(true);
2501 TestDelegate d; 2501 TestDelegate d;
2502 { 2502 {
2503 net::URLRequest r(GURL("http://www.google.com/"), &d); 2503 net::URLRequest r(GURL("http://www.google.com/"), &d);
2504 SpdyURLRequestContext* spdy_url_request_context = 2504 SpdyURLRequestContext* spdy_url_request_context =
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
2607 scoped_ptr<spdy::SpdyFrame> resp2(ConstructSpdyGetSynReply(NULL, 0, 1)); 2607 scoped_ptr<spdy::SpdyFrame> resp2(ConstructSpdyGetSynReply(NULL, 0, 1));
2608 scoped_ptr<spdy::SpdyFrame> body2(ConstructSpdyBodyFrame(1, true)); 2608 scoped_ptr<spdy::SpdyFrame> body2(ConstructSpdyBodyFrame(1, true));
2609 MockWrite writes2[] = { 2609 MockWrite writes2[] = {
2610 CreateMockWrite(*req2, 1), 2610 CreateMockWrite(*req2, 1),
2611 }; 2611 };
2612 MockRead reads2[] = { 2612 MockRead reads2[] = {
2613 CreateMockRead(*resp2, 2), 2613 CreateMockRead(*resp2, 2),
2614 CreateMockRead(*body2, 3), 2614 CreateMockRead(*body2, 3),
2615 MockRead(true, 0, 0, 5) // EOF 2615 MockRead(true, 0, 0, 5) // EOF
2616 }; 2616 };
2617 scoped_refptr<OrderedSocketData> data( 2617 scoped_ptr<OrderedSocketData> data(
2618 new OrderedSocketData(reads, arraysize(reads), 2618 new OrderedSocketData(reads, arraysize(reads),
2619 writes, arraysize(writes))); 2619 writes, arraysize(writes)));
2620 scoped_refptr<OrderedSocketData> data2( 2620 scoped_ptr<OrderedSocketData> data2(
2621 new OrderedSocketData(reads2, arraysize(reads2), 2621 new OrderedSocketData(reads2, arraysize(reads2),
2622 writes2, arraysize(writes2))); 2622 writes2, arraysize(writes2)));
2623 2623
2624 // TODO(erikchen): Make test support SPDYSSL, SPDYNPN 2624 // TODO(erikchen): Make test support SPDYSSL, SPDYNPN
2625 HttpStreamFactory::set_force_spdy_over_ssl(false); 2625 HttpStreamFactory::set_force_spdy_over_ssl(false);
2626 HttpStreamFactory::set_force_spdy_always(true); 2626 HttpStreamFactory::set_force_spdy_always(true);
2627 TestDelegate d; 2627 TestDelegate d;
2628 TestDelegate d2; 2628 TestDelegate d2;
2629 scoped_refptr<SpdyURLRequestContext> spdy_url_request_context( 2629 scoped_refptr<SpdyURLRequestContext> spdy_url_request_context(
2630 new SpdyURLRequestContext()); 2630 new SpdyURLRequestContext());
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
2694 CreateMockRead(*stream2_syn, 3), 2694 CreateMockRead(*stream2_syn, 3),
2695 CreateMockRead(*stream1_body, 4, false), 2695 CreateMockRead(*stream1_body, 4, false),
2696 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame), 2696 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame),
2697 arraysize(kPushBodyFrame), 5), 2697 arraysize(kPushBodyFrame), 5),
2698 MockRead(true, ERR_IO_PENDING, 6), // Force a pause 2698 MockRead(true, ERR_IO_PENDING, 6), // Force a pause
2699 }; 2699 };
2700 2700
2701 HttpResponseInfo response; 2701 HttpResponseInfo response;
2702 HttpResponseInfo response2; 2702 HttpResponseInfo response2;
2703 std::string expected_push_result("pushed"); 2703 std::string expected_push_result("pushed");
2704 scoped_refptr<OrderedSocketData> data(new OrderedSocketData( 2704 scoped_ptr<OrderedSocketData> data(new OrderedSocketData(
2705 reads, 2705 reads,
2706 arraysize(reads), 2706 arraysize(reads),
2707 writes, 2707 writes,
2708 arraysize(writes))); 2708 arraysize(writes)));
2709 RunServerPushTest(data.get(), 2709 RunServerPushTest(data.get(),
2710 &response, 2710 &response,
2711 &response2, 2711 &response2,
2712 expected_push_result); 2712 expected_push_result);
2713 2713
2714 // Verify the SYN_REPLY. 2714 // Verify the SYN_REPLY.
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
2747 CreateMockRead(*stream2_syn, 3), 2747 CreateMockRead(*stream2_syn, 3),
2748 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame), 2748 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame),
2749 arraysize(kPushBodyFrame), 5), 2749 arraysize(kPushBodyFrame), 5),
2750 CreateMockRead(*stream1_body, 4, false), 2750 CreateMockRead(*stream1_body, 4, false),
2751 MockRead(true, ERR_IO_PENDING, 6), // Force a pause 2751 MockRead(true, ERR_IO_PENDING, 6), // Force a pause
2752 }; 2752 };
2753 2753
2754 HttpResponseInfo response; 2754 HttpResponseInfo response;
2755 HttpResponseInfo response2; 2755 HttpResponseInfo response2;
2756 std::string expected_push_result("pushed"); 2756 std::string expected_push_result("pushed");
2757 scoped_refptr<OrderedSocketData> data(new OrderedSocketData( 2757 scoped_ptr<OrderedSocketData> data(new OrderedSocketData(
2758 reads, 2758 reads,
2759 arraysize(reads), 2759 arraysize(reads),
2760 writes, 2760 writes,
2761 arraysize(writes))); 2761 arraysize(writes)));
2762 RunServerPushTest(data.get(), 2762 RunServerPushTest(data.get(),
2763 &response, 2763 &response,
2764 &response2, 2764 &response2,
2765 expected_push_result); 2765 expected_push_result);
2766 2766
2767 // Verify the SYN_REPLY. 2767 // Verify the SYN_REPLY.
(...skipping 25 matching lines...) Expand all
2793 scoped_ptr<spdy::SpdyFrame> 2793 scoped_ptr<spdy::SpdyFrame>
2794 stream2_rst(ConstructSpdyRstStream(2, spdy::PROTOCOL_ERROR)); 2794 stream2_rst(ConstructSpdyRstStream(2, spdy::PROTOCOL_ERROR));
2795 MockRead reads[] = { 2795 MockRead reads[] = {
2796 CreateMockRead(*stream1_reply, 2), 2796 CreateMockRead(*stream1_reply, 2),
2797 CreateMockRead(*stream2_syn, 3), 2797 CreateMockRead(*stream2_syn, 3),
2798 CreateMockRead(*stream2_rst, 4), 2798 CreateMockRead(*stream2_rst, 4),
2799 CreateMockRead(*stream1_body, 5, false), 2799 CreateMockRead(*stream1_body, 5, false),
2800 MockRead(true, ERR_IO_PENDING, 6), // Force a pause 2800 MockRead(true, ERR_IO_PENDING, 6), // Force a pause
2801 }; 2801 };
2802 2802
2803 scoped_refptr<OrderedSocketData> data( 2803 scoped_ptr<OrderedSocketData> data(
2804 new OrderedSocketData(reads, arraysize(reads), 2804 new OrderedSocketData(reads, arraysize(reads),
2805 writes, arraysize(writes))); 2805 writes, arraysize(writes)));
2806 NormalSpdyTransactionHelper helper(CreateGetRequest(), 2806 NormalSpdyTransactionHelper helper(CreateGetRequest(),
2807 BoundNetLog(), GetParam()); 2807 BoundNetLog(), GetParam());
2808 2808
2809 helper.RunPreTestSetup(); 2809 helper.RunPreTestSetup();
2810 helper.AddData(data.get()); 2810 helper.AddData(data.get());
2811 2811
2812 HttpNetworkTransaction* trans = helper.trans(); 2812 HttpNetworkTransaction* trans = helper.trans();
2813 2813
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
2875 CreateMockRead(*stream3_syn, 4), 2875 CreateMockRead(*stream3_syn, 4),
2876 CreateMockRead(*stream1_body, 6, false), 2876 CreateMockRead(*stream1_body, 6, false),
2877 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame), 2877 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame),
2878 arraysize(kPushBodyFrame), 7), 2878 arraysize(kPushBodyFrame), 7),
2879 MockRead(true, ERR_IO_PENDING, 8), // Force a pause 2879 MockRead(true, ERR_IO_PENDING, 8), // Force a pause
2880 }; 2880 };
2881 2881
2882 HttpResponseInfo response; 2882 HttpResponseInfo response;
2883 HttpResponseInfo response2; 2883 HttpResponseInfo response2;
2884 std::string expected_push_result("pushed"); 2884 std::string expected_push_result("pushed");
2885 scoped_refptr<OrderedSocketData> data(new OrderedSocketData( 2885 scoped_ptr<OrderedSocketData> data(new OrderedSocketData(
2886 reads, 2886 reads,
2887 arraysize(reads), 2887 arraysize(reads),
2888 writes, 2888 writes,
2889 arraysize(writes))); 2889 arraysize(writes)));
2890 RunServerPushTest(data.get(), 2890 RunServerPushTest(data.get(),
2891 &response, 2891 &response,
2892 &response2, 2892 &response2,
2893 expected_push_result); 2893 expected_push_result);
2894 2894
2895 // Verify the SYN_REPLY. 2895 // Verify the SYN_REPLY.
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
2938 arraysize(kPushBodyFrame3) - 1, 6), 2938 arraysize(kPushBodyFrame3) - 1, 6),
2939 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame4), 2939 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame4),
2940 arraysize(kPushBodyFrame4) - 1, 7), 2940 arraysize(kPushBodyFrame4) - 1, 7),
2941 CreateMockRead(*stream1_body, 8, false), 2941 CreateMockRead(*stream1_body, 8, false),
2942 MockRead(true, ERR_IO_PENDING, 9), // Force a pause 2942 MockRead(true, ERR_IO_PENDING, 9), // Force a pause
2943 }; 2943 };
2944 2944
2945 HttpResponseInfo response; 2945 HttpResponseInfo response;
2946 HttpResponseInfo response2; 2946 HttpResponseInfo response2;
2947 std::string expected_push_result("pushed my darling hello my baby"); 2947 std::string expected_push_result("pushed my darling hello my baby");
2948 scoped_refptr<OrderedSocketData> data(new OrderedSocketData( 2948 scoped_ptr<OrderedSocketData> data(new OrderedSocketData(
2949 reads, 2949 reads,
2950 arraysize(reads), 2950 arraysize(reads),
2951 writes, 2951 writes,
2952 arraysize(writes))); 2952 arraysize(writes)));
2953 RunServerPushTest(data.get(), 2953 RunServerPushTest(data.get(),
2954 &response, 2954 &response,
2955 &response2, 2955 &response2,
2956 expected_push_result); 2956 expected_push_result);
2957 2957
2958 // Verify the SYN_REPLY. 2958 // Verify the SYN_REPLY.
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
3002 arraysize(kPushBodyFrame3) - 1, 7), 3002 arraysize(kPushBodyFrame3) - 1, 7),
3003 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame4), 3003 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame4),
3004 arraysize(kPushBodyFrame4) - 1, 8), 3004 arraysize(kPushBodyFrame4) - 1, 8),
3005 CreateMockRead(*stream1_body.get(), 9, false), 3005 CreateMockRead(*stream1_body.get(), 9, false),
3006 MockRead(true, ERR_IO_PENDING, 10) // Force a pause. 3006 MockRead(true, ERR_IO_PENDING, 10) // Force a pause.
3007 }; 3007 };
3008 3008
3009 HttpResponseInfo response; 3009 HttpResponseInfo response;
3010 HttpResponseInfo response2; 3010 HttpResponseInfo response2;
3011 std::string expected_push_result("pushed my darling hello my baby"); 3011 std::string expected_push_result("pushed my darling hello my baby");
3012 scoped_refptr<OrderedSocketData> data(new OrderedSocketData( 3012 scoped_ptr<OrderedSocketData> data(new OrderedSocketData(
3013 reads, 3013 reads,
3014 arraysize(reads), 3014 arraysize(reads),
3015 writes, 3015 writes,
3016 arraysize(writes))); 3016 arraysize(writes)));
3017 RunServerPushTest(data.get(), 3017 RunServerPushTest(data.get(),
3018 &response, 3018 &response,
3019 &response2, 3019 &response2,
3020 expected_push_result); 3020 expected_push_result);
3021 3021
3022 // Verify the SYN_REPLY. 3022 // Verify the SYN_REPLY.
(...skipping 25 matching lines...) Expand all
3048 2, 3048 2,
3049 0, 3049 0,
3050 "http://www.google.com/foo.dat")); 3050 "http://www.google.com/foo.dat"));
3051 MockRead reads[] = { 3051 MockRead reads[] = {
3052 CreateMockRead(*stream1_reply, 2), 3052 CreateMockRead(*stream1_reply, 2),
3053 CreateMockRead(*stream2_syn, 3), 3053 CreateMockRead(*stream2_syn, 3),
3054 CreateMockRead(*stream1_body, 4), 3054 CreateMockRead(*stream1_body, 4),
3055 MockRead(true, ERR_IO_PENDING, 5) // Force a pause 3055 MockRead(true, ERR_IO_PENDING, 5) // Force a pause
3056 }; 3056 };
3057 3057
3058 scoped_refptr<OrderedSocketData> data( 3058 scoped_ptr<OrderedSocketData> data(
3059 new OrderedSocketData(reads, arraysize(reads), 3059 new OrderedSocketData(reads, arraysize(reads),
3060 writes, arraysize(writes))); 3060 writes, arraysize(writes)));
3061 NormalSpdyTransactionHelper helper(CreateGetRequest(), 3061 NormalSpdyTransactionHelper helper(CreateGetRequest(),
3062 BoundNetLog(), GetParam()); 3062 BoundNetLog(), GetParam());
3063 3063
3064 helper.RunPreTestSetup(); 3064 helper.RunPreTestSetup();
3065 helper.AddData(data.get()); 3065 helper.AddData(data.get());
3066 3066
3067 HttpNetworkTransaction* trans = helper.trans(); 3067 HttpNetworkTransaction* trans = helper.trans();
3068 3068
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
3110 2, 3110 2,
3111 9, 3111 9,
3112 "http://www.google.com/foo.dat")); 3112 "http://www.google.com/foo.dat"));
3113 MockRead reads[] = { 3113 MockRead reads[] = {
3114 CreateMockRead(*stream1_reply, 2), 3114 CreateMockRead(*stream1_reply, 2),
3115 CreateMockRead(*stream2_syn, 3), 3115 CreateMockRead(*stream2_syn, 3),
3116 CreateMockRead(*stream1_body, 4), 3116 CreateMockRead(*stream1_body, 4),
3117 MockRead(true, ERR_IO_PENDING, 5), // Force a pause 3117 MockRead(true, ERR_IO_PENDING, 5), // Force a pause
3118 }; 3118 };
3119 3119
3120 scoped_refptr<OrderedSocketData> data( 3120 scoped_ptr<OrderedSocketData> data(
3121 new OrderedSocketData(reads, arraysize(reads), 3121 new OrderedSocketData(reads, arraysize(reads),
3122 writes, arraysize(writes))); 3122 writes, arraysize(writes)));
3123 NormalSpdyTransactionHelper helper(CreateGetRequest(), 3123 NormalSpdyTransactionHelper helper(CreateGetRequest(),
3124 BoundNetLog(), GetParam()); 3124 BoundNetLog(), GetParam());
3125 3125
3126 helper.RunPreTestSetup(); 3126 helper.RunPreTestSetup();
3127 helper.AddData(data.get()); 3127 helper.AddData(data.get());
3128 3128
3129 HttpNetworkTransaction* trans = helper.trans(); 3129 HttpNetworkTransaction* trans = helper.trans();
3130 3130
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
3168 stream1_reply(ConstructSpdyGetSynReply(NULL, 0, 1)); 3168 stream1_reply(ConstructSpdyGetSynReply(NULL, 0, 1));
3169 scoped_ptr<spdy::SpdyFrame> 3169 scoped_ptr<spdy::SpdyFrame>
3170 stream2_syn(ConstructSpdyPush(NULL, 0, 2, 1)); 3170 stream2_syn(ConstructSpdyPush(NULL, 0, 2, 1));
3171 MockRead reads[] = { 3171 MockRead reads[] = {
3172 CreateMockRead(*stream1_reply, 2), 3172 CreateMockRead(*stream1_reply, 2),
3173 CreateMockRead(*stream2_syn, 3), 3173 CreateMockRead(*stream2_syn, 3),
3174 CreateMockRead(*stream1_body, 4), 3174 CreateMockRead(*stream1_body, 4),
3175 MockRead(true, ERR_IO_PENDING, 5) // Force a pause 3175 MockRead(true, ERR_IO_PENDING, 5) // Force a pause
3176 }; 3176 };
3177 3177
3178 scoped_refptr<OrderedSocketData> data( 3178 scoped_ptr<OrderedSocketData> data(
3179 new OrderedSocketData(reads, arraysize(reads), 3179 new OrderedSocketData(reads, arraysize(reads),
3180 writes, arraysize(writes))); 3180 writes, arraysize(writes)));
3181 NormalSpdyTransactionHelper helper(CreateGetRequest(), 3181 NormalSpdyTransactionHelper helper(CreateGetRequest(),
3182 BoundNetLog(), GetParam()); 3182 BoundNetLog(), GetParam());
3183 3183
3184 helper.RunPreTestSetup(); 3184 helper.RunPreTestSetup();
3185 helper.AddData(data.get()); 3185 helper.AddData(data.get());
3186 3186
3187 HttpNetworkTransaction* trans = helper.trans(); 3187 HttpNetworkTransaction* trans = helper.trans();
3188 3188
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
3257 ConstructSpdyGetSynReply(test_cases[i].extra_headers, 3257 ConstructSpdyGetSynReply(test_cases[i].extra_headers,
3258 test_cases[i].num_headers, 3258 test_cases[i].num_headers,
3259 1)); 3259 1));
3260 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); 3260 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
3261 MockRead reads[] = { 3261 MockRead reads[] = {
3262 CreateMockRead(*resp), 3262 CreateMockRead(*resp),
3263 CreateMockRead(*body), 3263 CreateMockRead(*body),
3264 MockRead(true, 0, 0) // EOF 3264 MockRead(true, 0, 0) // EOF
3265 }; 3265 };
3266 3266
3267 scoped_refptr<DelayedSocketData> data( 3267 scoped_ptr<DelayedSocketData> data(
3268 new DelayedSocketData(1, reads, arraysize(reads), 3268 new DelayedSocketData(1, reads, arraysize(reads),
3269 writes, arraysize(writes))); 3269 writes, arraysize(writes)));
3270 NormalSpdyTransactionHelper helper(CreateGetRequest(), 3270 NormalSpdyTransactionHelper helper(CreateGetRequest(),
3271 BoundNetLog(), GetParam()); 3271 BoundNetLog(), GetParam());
3272 helper.RunToCompletion(data.get()); 3272 helper.RunToCompletion(data.get());
3273 TransactionHelperResult out = helper.output(); 3273 TransactionHelperResult out = helper.output();
3274 3274
3275 EXPECT_EQ(OK, out.rv); 3275 EXPECT_EQ(OK, out.rv);
3276 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); 3276 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line);
3277 EXPECT_EQ("hello!", out.response_data); 3277 EXPECT_EQ("hello!", out.response_data);
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
3406 // Attach the headers to the request. 3406 // Attach the headers to the request.
3407 int header_count = test_cases[i].num_headers[0]; 3407 int header_count = test_cases[i].num_headers[0];
3408 3408
3409 HttpRequestInfo request = CreateGetRequest(); 3409 HttpRequestInfo request = CreateGetRequest();
3410 for (int ct = 0; ct < header_count; ct++) { 3410 for (int ct = 0; ct < header_count; ct++) {
3411 const char* header_key = test_cases[i].extra_headers[0][ct * 2]; 3411 const char* header_key = test_cases[i].extra_headers[0][ct * 2];
3412 const char* header_value = test_cases[i].extra_headers[0][ct * 2 + 1]; 3412 const char* header_value = test_cases[i].extra_headers[0][ct * 2 + 1];
3413 request.extra_headers.SetHeader(header_key, header_value); 3413 request.extra_headers.SetHeader(header_key, header_value);
3414 } 3414 }
3415 3415
3416 scoped_refptr<DelayedSocketData> data( 3416 scoped_ptr<DelayedSocketData> data(
3417 new DelayedSocketData(1, reads, arraysize(reads), 3417 new DelayedSocketData(1, reads, arraysize(reads),
3418 writes, arraysize(writes))); 3418 writes, arraysize(writes)));
3419 NormalSpdyTransactionHelper helper(request, 3419 NormalSpdyTransactionHelper helper(request,
3420 BoundNetLog(), GetParam()); 3420 BoundNetLog(), GetParam());
3421 helper.RunToCompletion(data.get()); 3421 helper.RunToCompletion(data.get());
3422 TransactionHelperResult out = helper.output(); 3422 TransactionHelperResult out = helper.output();
3423 3423
3424 EXPECT_EQ(OK, out.rv) << i; 3424 EXPECT_EQ(OK, out.rv) << i;
3425 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line) << i; 3425 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line) << i;
3426 EXPECT_EQ("hello!", out.response_data) << i; 3426 EXPECT_EQ("hello!", out.response_data) << i;
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
3512 NULL, 0, 3512 NULL, 0,
3513 test_cases[i].headers, 3513 test_cases[i].headers,
3514 test_cases[i].num_headers)); 3514 test_cases[i].num_headers));
3515 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); 3515 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
3516 MockRead reads[] = { 3516 MockRead reads[] = {
3517 CreateMockRead(*resp), 3517 CreateMockRead(*resp),
3518 CreateMockRead(*body), 3518 CreateMockRead(*body),
3519 MockRead(true, 0, 0) // EOF 3519 MockRead(true, 0, 0) // EOF
3520 }; 3520 };
3521 3521
3522 scoped_refptr<DelayedSocketData> data( 3522 scoped_ptr<DelayedSocketData> data(
3523 new DelayedSocketData(1, reads, arraysize(reads), 3523 new DelayedSocketData(1, reads, arraysize(reads),
3524 writes, arraysize(writes))); 3524 writes, arraysize(writes)));
3525 NormalSpdyTransactionHelper helper(CreateGetRequest(), 3525 NormalSpdyTransactionHelper helper(CreateGetRequest(),
3526 BoundNetLog(), GetParam()); 3526 BoundNetLog(), GetParam());
3527 helper.RunToCompletion(data.get()); 3527 helper.RunToCompletion(data.get());
3528 TransactionHelperResult out = helper.output(); 3528 TransactionHelperResult out = helper.output();
3529 EXPECT_EQ(ERR_INCOMPLETE_SPDY_HEADERS, out.rv); 3529 EXPECT_EQ(ERR_INCOMPLETE_SPDY_HEADERS, out.rv);
3530 } 3530 }
3531 } 3531 }
3532 3532
(...skipping 18 matching lines...) Expand all
3551 MockWrite(true, 0, 0) // EOF 3551 MockWrite(true, 0, 0) // EOF
3552 }; 3552 };
3553 3553
3554 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); 3554 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
3555 MockRead reads[] = { 3555 MockRead reads[] = {
3556 CreateMockRead(*test_cases[i].syn_reply), 3556 CreateMockRead(*test_cases[i].syn_reply),
3557 CreateMockRead(*body), 3557 CreateMockRead(*body),
3558 MockRead(true, 0, 0) // EOF 3558 MockRead(true, 0, 0) // EOF
3559 }; 3559 };
3560 3560
3561 scoped_refptr<DelayedSocketData> data( 3561 scoped_ptr<DelayedSocketData> data(
3562 new DelayedSocketData(1, reads, arraysize(reads), 3562 new DelayedSocketData(1, reads, arraysize(reads),
3563 writes, arraysize(writes))); 3563 writes, arraysize(writes)));
3564 NormalSpdyTransactionHelper helper(CreateGetRequest(), 3564 NormalSpdyTransactionHelper helper(CreateGetRequest(),
3565 BoundNetLog(), GetParam()); 3565 BoundNetLog(), GetParam());
3566 helper.RunToCompletion(data.get()); 3566 helper.RunToCompletion(data.get());
3567 TransactionHelperResult out = helper.output(); 3567 TransactionHelperResult out = helper.output();
3568 EXPECT_EQ(ERR_SPDY_PROTOCOL_ERROR, out.rv); 3568 EXPECT_EQ(ERR_SPDY_PROTOCOL_ERROR, out.rv);
3569 } 3569 }
3570 } 3570 }
3571 3571
3572 // Test that we shutdown correctly on write errors. 3572 // Test that we shutdown correctly on write errors.
3573 TEST_P(SpdyNetworkTransactionTest, WriteError) { 3573 TEST_P(SpdyNetworkTransactionTest, WriteError) {
3574 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); 3574 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST));
3575 MockWrite writes[] = { 3575 MockWrite writes[] = {
3576 // We'll write 10 bytes successfully 3576 // We'll write 10 bytes successfully
3577 MockWrite(true, req->data(), 10), 3577 MockWrite(true, req->data(), 10),
3578 // Followed by ERROR! 3578 // Followed by ERROR!
3579 MockWrite(true, ERR_FAILED), 3579 MockWrite(true, ERR_FAILED),
3580 }; 3580 };
3581 3581
3582 scoped_refptr<DelayedSocketData> data( 3582 scoped_ptr<DelayedSocketData> data(
3583 new DelayedSocketData(2, NULL, 0, 3583 new DelayedSocketData(2, NULL, 0,
3584 writes, arraysize(writes))); 3584 writes, arraysize(writes)));
3585 NormalSpdyTransactionHelper helper(CreateGetRequest(), 3585 NormalSpdyTransactionHelper helper(CreateGetRequest(),
3586 BoundNetLog(), GetParam()); 3586 BoundNetLog(), GetParam());
3587 helper.RunToCompletion(data.get()); 3587 helper.RunToCompletion(data.get());
3588 TransactionHelperResult out = helper.output(); 3588 TransactionHelperResult out = helper.output();
3589 EXPECT_EQ(ERR_FAILED, out.rv); 3589 EXPECT_EQ(ERR_FAILED, out.rv);
3590 data->Reset(); 3590 data->Reset();
3591 } 3591 }
3592 3592
3593 // Test that partial writes work. 3593 // Test that partial writes work.
3594 TEST_P(SpdyNetworkTransactionTest, PartialWrite) { 3594 TEST_P(SpdyNetworkTransactionTest, PartialWrite) {
3595 // Chop the SYN_STREAM frame into 5 chunks. 3595 // Chop the SYN_STREAM frame into 5 chunks.
3596 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); 3596 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST));
3597 const int kChunks = 5; 3597 const int kChunks = 5;
3598 scoped_array<MockWrite> writes(ChopWriteFrame(*req.get(), kChunks)); 3598 scoped_array<MockWrite> writes(ChopWriteFrame(*req.get(), kChunks));
3599 3599
3600 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 3600 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
3601 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); 3601 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
3602 MockRead reads[] = { 3602 MockRead reads[] = {
3603 CreateMockRead(*resp), 3603 CreateMockRead(*resp),
3604 CreateMockRead(*body), 3604 CreateMockRead(*body),
3605 MockRead(true, 0, 0) // EOF 3605 MockRead(true, 0, 0) // EOF
3606 }; 3606 };
3607 3607
3608 scoped_refptr<DelayedSocketData> data( 3608 scoped_ptr<DelayedSocketData> data(
3609 new DelayedSocketData(kChunks, reads, arraysize(reads), 3609 new DelayedSocketData(kChunks, reads, arraysize(reads),
3610 writes.get(), kChunks)); 3610 writes.get(), kChunks));
3611 NormalSpdyTransactionHelper helper(CreateGetRequest(), 3611 NormalSpdyTransactionHelper helper(CreateGetRequest(),
3612 BoundNetLog(), GetParam()); 3612 BoundNetLog(), GetParam());
3613 helper.RunToCompletion(data.get()); 3613 helper.RunToCompletion(data.get());
3614 TransactionHelperResult out = helper.output(); 3614 TransactionHelperResult out = helper.output();
3615 EXPECT_EQ(OK, out.rv); 3615 EXPECT_EQ(OK, out.rv);
3616 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); 3616 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line);
3617 EXPECT_EQ("hello!", out.response_data); 3617 EXPECT_EQ("hello!", out.response_data);
3618 } 3618 }
(...skipping 11 matching lines...) Expand all
3630 MockWrite writes[] = { 3630 MockWrite writes[] = {
3631 CreateMockWrite(*compressed), 3631 CreateMockWrite(*compressed),
3632 }; 3632 };
3633 3633
3634 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 3634 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
3635 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); 3635 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
3636 MockRead reads[] = { 3636 MockRead reads[] = {
3637 CreateMockRead(*resp), 3637 CreateMockRead(*resp),
3638 }; 3638 };
3639 3639
3640 scoped_refptr<DelayedSocketData> data( 3640 scoped_ptr<DelayedSocketData> data(
3641 new DelayedSocketData(1, reads, arraysize(reads), 3641 new DelayedSocketData(1, reads, arraysize(reads),
3642 writes, arraysize(writes))); 3642 writes, arraysize(writes)));
3643 NormalSpdyTransactionHelper helper(CreateGetRequest(), 3643 NormalSpdyTransactionHelper helper(CreateGetRequest(),
3644 BoundNetLog(), GetParam()); 3644 BoundNetLog(), GetParam());
3645 helper.RunToCompletion(data.get()); 3645 helper.RunToCompletion(data.get());
3646 TransactionHelperResult out = helper.output(); 3646 TransactionHelperResult out = helper.output();
3647 EXPECT_EQ(ERR_SPDY_PROTOCOL_ERROR, out.rv); 3647 EXPECT_EQ(ERR_SPDY_PROTOCOL_ERROR, out.rv);
3648 data->Reset(); 3648 data->Reset();
3649 3649
3650 EnableCompression(false); 3650 EnableCompression(false);
(...skipping 11 matching lines...) Expand all
3662 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 3662 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
3663 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); 3663 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
3664 MockRead reads[] = { 3664 MockRead reads[] = {
3665 CreateMockRead(*resp), 3665 CreateMockRead(*resp),
3666 CreateMockRead(*body), 3666 CreateMockRead(*body),
3667 MockRead(true, 0, 0) // EOF 3667 MockRead(true, 0, 0) // EOF
3668 }; 3668 };
3669 3669
3670 net::CapturingBoundNetLog log(net::CapturingNetLog::kUnbounded); 3670 net::CapturingBoundNetLog log(net::CapturingNetLog::kUnbounded);
3671 3671
3672 scoped_refptr<DelayedSocketData> data( 3672 scoped_ptr<DelayedSocketData> data(
3673 new DelayedSocketData(1, reads, arraysize(reads), 3673 new DelayedSocketData(1, reads, arraysize(reads),
3674 writes, arraysize(writes))); 3674 writes, arraysize(writes)));
3675 NormalSpdyTransactionHelper helper(CreateGetRequestWithUserAgent(), 3675 NormalSpdyTransactionHelper helper(CreateGetRequestWithUserAgent(),
3676 log.bound(), GetParam()); 3676 log.bound(), GetParam());
3677 helper.RunToCompletion(data.get()); 3677 helper.RunToCompletion(data.get());
3678 TransactionHelperResult out = helper.output(); 3678 TransactionHelperResult out = helper.output();
3679 EXPECT_EQ(OK, out.rv); 3679 EXPECT_EQ(OK, out.rv);
3680 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); 3680 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line);
3681 EXPECT_EQ("hello!", out.response_data); 3681 EXPECT_EQ("hello!", out.response_data);
3682 3682
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
3764 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 3764 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
3765 MockRead reads[] = { 3765 MockRead reads[] = {
3766 CreateMockRead(*resp), 3766 CreateMockRead(*resp),
3767 MockRead(true, ERR_IO_PENDING), // Force a pause 3767 MockRead(true, ERR_IO_PENDING), // Force a pause
3768 MockRead(true, combined_data_frames, combined_data_frames_len), 3768 MockRead(true, combined_data_frames, combined_data_frames_len),
3769 MockRead(true, ERR_IO_PENDING), // Force a pause 3769 MockRead(true, ERR_IO_PENDING), // Force a pause
3770 CreateMockRead(*last_frame), 3770 CreateMockRead(*last_frame),
3771 MockRead(true, 0, 0) // EOF 3771 MockRead(true, 0, 0) // EOF
3772 }; 3772 };
3773 3773
3774 scoped_refptr<DelayedSocketData> data( 3774 scoped_ptr<DelayedSocketData> data(
3775 new DelayedSocketData(1, reads, arraysize(reads), 3775 new DelayedSocketData(1, reads, arraysize(reads),
3776 writes, arraysize(writes))); 3776 writes, arraysize(writes)));
3777 3777
3778 3778
3779 TestCompletionCallback callback; 3779 TestCompletionCallback callback;
3780 3780
3781 NormalSpdyTransactionHelper helper(CreateGetRequest(), 3781 NormalSpdyTransactionHelper helper(CreateGetRequest(),
3782 BoundNetLog(), GetParam()); 3782 BoundNetLog(), GetParam());
3783 helper.RunPreTestSetup(); 3783 helper.RunPreTestSetup();
3784 helper.AddData(data.get()); 3784 helper.AddData(data.get());
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
3857 combined_data_frames, arraysize(combined_data_frames)); 3857 combined_data_frames, arraysize(combined_data_frames));
3858 3858
3859 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 3859 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
3860 MockRead reads[] = { 3860 MockRead reads[] = {
3861 CreateMockRead(*resp), 3861 CreateMockRead(*resp),
3862 MockRead(true, ERR_IO_PENDING), // Force a pause 3862 MockRead(true, ERR_IO_PENDING), // Force a pause
3863 MockRead(true, combined_data_frames, combined_data_frames_len), 3863 MockRead(true, combined_data_frames, combined_data_frames_len),
3864 MockRead(true, 0, 0) // EOF 3864 MockRead(true, 0, 0) // EOF
3865 }; 3865 };
3866 3866
3867 scoped_refptr<DelayedSocketData> data( 3867 scoped_ptr<DelayedSocketData> data(
3868 new DelayedSocketData(1, reads, arraysize(reads), 3868 new DelayedSocketData(1, reads, arraysize(reads),
3869 writes, arraysize(writes))); 3869 writes, arraysize(writes)));
3870 3870
3871 NormalSpdyTransactionHelper helper(CreateGetRequest(), 3871 NormalSpdyTransactionHelper helper(CreateGetRequest(),
3872 BoundNetLog(), GetParam()); 3872 BoundNetLog(), GetParam());
3873 helper.RunPreTestSetup(); 3873 helper.RunPreTestSetup();
3874 helper.AddData(data.get()); 3874 helper.AddData(data.get());
3875 HttpNetworkTransaction* trans = helper.trans(); 3875 HttpNetworkTransaction* trans = helper.trans();
3876 3876
3877 TestCompletionCallback callback; 3877 TestCompletionCallback callback;
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
3953 char combined_frames[200]; 3953 char combined_frames[200];
3954 int combined_frames_len = 3954 int combined_frames_len =
3955 CombineFrames(frames, arraysize(frames), 3955 CombineFrames(frames, arraysize(frames),
3956 combined_frames, arraysize(combined_frames)); 3956 combined_frames, arraysize(combined_frames));
3957 3957
3958 MockRead reads[] = { 3958 MockRead reads[] = {
3959 MockRead(true, combined_frames, combined_frames_len), 3959 MockRead(true, combined_frames, combined_frames_len),
3960 MockRead(true, 0, 0) // EOF 3960 MockRead(true, 0, 0) // EOF
3961 }; 3961 };
3962 3962
3963 scoped_refptr<DelayedSocketData> data( 3963 scoped_ptr<DelayedSocketData> data(
3964 new DelayedSocketData(1, reads, arraysize(reads), 3964 new DelayedSocketData(1, reads, arraysize(reads),
3965 writes, arraysize(writes))); 3965 writes, arraysize(writes)));
3966 3966
3967 NormalSpdyTransactionHelper helper(CreateGetRequest(), 3967 NormalSpdyTransactionHelper helper(CreateGetRequest(),
3968 BoundNetLog(), GetParam()); 3968 BoundNetLog(), GetParam());
3969 helper.RunPreTestSetup(); 3969 helper.RunPreTestSetup();
3970 helper.AddData(data.get()); 3970 helper.AddData(data.get());
3971 HttpNetworkTransaction* trans = helper.trans(); 3971 HttpNetworkTransaction* trans = helper.trans();
3972 3972
3973 TestCompletionCallback callback; 3973 TestCompletionCallback callback;
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
4042 CombineFrames(data_frames, arraysize(data_frames), 4042 CombineFrames(data_frames, arraysize(data_frames),
4043 combined_data_frames, arraysize(combined_data_frames)); 4043 combined_data_frames, arraysize(combined_data_frames));
4044 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 4044 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
4045 MockRead reads[] = { 4045 MockRead reads[] = {
4046 CreateMockRead(*resp), 4046 CreateMockRead(*resp),
4047 MockRead(true, ERR_IO_PENDING), // Force a wait 4047 MockRead(true, ERR_IO_PENDING), // Force a wait
4048 MockRead(true, combined_data_frames, combined_data_frames_len), 4048 MockRead(true, combined_data_frames, combined_data_frames_len),
4049 MockRead(true, 0, 0) // EOF 4049 MockRead(true, 0, 0) // EOF
4050 }; 4050 };
4051 4051
4052 scoped_refptr<DelayedSocketData> data( 4052 scoped_ptr<DelayedSocketData> data(
4053 new DelayedSocketData(1, reads, arraysize(reads), 4053 new DelayedSocketData(1, reads, arraysize(reads),
4054 writes, arraysize(writes))); 4054 writes, arraysize(writes)));
4055 4055
4056 NormalSpdyTransactionHelper helper(CreateGetRequest(), 4056 NormalSpdyTransactionHelper helper(CreateGetRequest(),
4057 BoundNetLog(), GetParam()); 4057 BoundNetLog(), GetParam());
4058 helper.RunPreTestSetup(); 4058 helper.RunPreTestSetup();
4059 helper.AddData(data.get()); 4059 helper.AddData(data.get());
4060 HttpNetworkTransaction* trans = helper.trans(); 4060 HttpNetworkTransaction* trans = helper.trans();
4061 4061
4062 TestCompletionCallback callback; 4062 TestCompletionCallback callback;
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
4123 framer.CreateDataFrame(1, "message", 7, spdy::DATA_FLAG_NONE)); 4123 framer.CreateDataFrame(1, "message", 7, spdy::DATA_FLAG_NONE));
4124 4124
4125 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 4125 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
4126 MockRead reads[] = { 4126 MockRead reads[] = {
4127 CreateMockRead(*resp), 4127 CreateMockRead(*resp),
4128 MockRead(true, ERR_IO_PENDING), // Force a wait 4128 MockRead(true, ERR_IO_PENDING), // Force a wait
4129 CreateMockRead(*data_frame), 4129 CreateMockRead(*data_frame),
4130 MockRead(true, 0, 0) // EOF 4130 MockRead(true, 0, 0) // EOF
4131 }; 4131 };
4132 4132
4133 scoped_refptr<DelayedSocketData> data( 4133 scoped_ptr<DelayedSocketData> data(
4134 new DelayedSocketData(1, reads, arraysize(reads), 4134 new DelayedSocketData(1, reads, arraysize(reads),
4135 writes, arraysize(writes))); 4135 writes, arraysize(writes)));
4136 4136
4137 NormalSpdyTransactionHelper helper(CreateGetRequest(), 4137 NormalSpdyTransactionHelper helper(CreateGetRequest(),
4138 BoundNetLog(), GetParam()); 4138 BoundNetLog(), GetParam());
4139 helper.RunPreTestSetup(); 4139 helper.RunPreTestSetup();
4140 helper.AddData(data.get()); 4140 helper.AddData(data.get());
4141 HttpNetworkTransaction* trans = helper.trans(); 4141 HttpNetworkTransaction* trans = helper.trans();
4142 TestCompletionCallback callback; 4142 TestCompletionCallback callback;
4143 4143
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
4252 } 4252 }
4253 4253
4254 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); 4254 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
4255 MockRead reads[] = { 4255 MockRead reads[] = {
4256 CreateMockRead(*reply), 4256 CreateMockRead(*reply),
4257 CreateMockRead(*body), 4257 CreateMockRead(*body),
4258 CreateMockRead(*settings_frame), 4258 CreateMockRead(*settings_frame),
4259 MockRead(true, 0, 0) // EOF 4259 MockRead(true, 0, 0) // EOF
4260 }; 4260 };
4261 4261
4262 scoped_refptr<DelayedSocketData> data( 4262 scoped_ptr<DelayedSocketData> data(
4263 new DelayedSocketData(1, reads, arraysize(reads), 4263 new DelayedSocketData(1, reads, arraysize(reads),
4264 writes, arraysize(writes))); 4264 writes, arraysize(writes)));
4265 helper.AddData(data.get()); 4265 helper.AddData(data.get());
4266 helper.RunDefaultTest(); 4266 helper.RunDefaultTest();
4267 helper.VerifyDataConsumed(); 4267 helper.VerifyDataConsumed();
4268 TransactionHelperResult out = helper.output(); 4268 TransactionHelperResult out = helper.output();
4269 EXPECT_EQ(OK, out.rv); 4269 EXPECT_EQ(OK, out.rv);
4270 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); 4270 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line);
4271 EXPECT_EQ("hello!", out.response_data); 4271 EXPECT_EQ("hello!", out.response_data);
4272 4272
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
4370 NULL, 4370 NULL,
4371 0)); 4371 0));
4372 4372
4373 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); 4373 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
4374 MockRead reads[] = { 4374 MockRead reads[] = {
4375 CreateMockRead(*reply), 4375 CreateMockRead(*reply),
4376 CreateMockRead(*body), 4376 CreateMockRead(*body),
4377 MockRead(true, 0, 0) // EOF 4377 MockRead(true, 0, 0) // EOF
4378 }; 4378 };
4379 4379
4380 scoped_refptr<DelayedSocketData> data( 4380 scoped_ptr<DelayedSocketData> data(
4381 new DelayedSocketData(2, reads, arraysize(reads), 4381 new DelayedSocketData(2, reads, arraysize(reads),
4382 writes, arraysize(writes))); 4382 writes, arraysize(writes)));
4383 helper.AddData(data.get()); 4383 helper.AddData(data.get());
4384 helper.RunDefaultTest(); 4384 helper.RunDefaultTest();
4385 helper.VerifyDataConsumed(); 4385 helper.VerifyDataConsumed();
4386 TransactionHelperResult out = helper.output(); 4386 TransactionHelperResult out = helper.output();
4387 EXPECT_EQ(OK, out.rv); 4387 EXPECT_EQ(OK, out.rv);
4388 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); 4388 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line);
4389 EXPECT_EQ("hello!", out.response_data); 4389 EXPECT_EQ("hello!", out.response_data);
4390 4390
(...skipping 23 matching lines...) Expand all
4414 TEST_P(SpdyNetworkTransactionTest, GoAwayWithActiveStream) { 4414 TEST_P(SpdyNetworkTransactionTest, GoAwayWithActiveStream) {
4415 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); 4415 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST));
4416 MockWrite writes[] = { CreateMockWrite(*req) }; 4416 MockWrite writes[] = { CreateMockWrite(*req) };
4417 4417
4418 scoped_ptr<spdy::SpdyFrame> go_away(ConstructSpdyGoAway()); 4418 scoped_ptr<spdy::SpdyFrame> go_away(ConstructSpdyGoAway());
4419 MockRead reads[] = { 4419 MockRead reads[] = {
4420 CreateMockRead(*go_away), 4420 CreateMockRead(*go_away),
4421 MockRead(true, 0, 0), // EOF 4421 MockRead(true, 0, 0), // EOF
4422 }; 4422 };
4423 4423
4424 scoped_refptr<DelayedSocketData> data( 4424 scoped_ptr<DelayedSocketData> data(
4425 new DelayedSocketData(1, reads, arraysize(reads), 4425 new DelayedSocketData(1, reads, arraysize(reads),
4426 writes, arraysize(writes))); 4426 writes, arraysize(writes)));
4427 NormalSpdyTransactionHelper helper(CreateGetRequest(), 4427 NormalSpdyTransactionHelper helper(CreateGetRequest(),
4428 BoundNetLog(), GetParam()); 4428 BoundNetLog(), GetParam());
4429 helper.AddData(data); 4429 helper.AddData(data.get());
4430 helper.RunToCompletion(data.get()); 4430 helper.RunToCompletion(data.get());
4431 TransactionHelperResult out = helper.output(); 4431 TransactionHelperResult out = helper.output();
4432 EXPECT_EQ(ERR_ABORTED, out.rv); 4432 EXPECT_EQ(ERR_ABORTED, out.rv);
4433 } 4433 }
4434 4434
4435 TEST_P(SpdyNetworkTransactionTest, CloseWithActiveStream) { 4435 TEST_P(SpdyNetworkTransactionTest, CloseWithActiveStream) {
4436 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); 4436 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST));
4437 MockWrite writes[] = { CreateMockWrite(*req) }; 4437 MockWrite writes[] = { CreateMockWrite(*req) };
4438 4438
4439 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 4439 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
4440 MockRead reads[] = { 4440 MockRead reads[] = {
4441 CreateMockRead(*resp), 4441 CreateMockRead(*resp),
4442 MockRead(false, 0, 0) // EOF 4442 MockRead(false, 0, 0) // EOF
4443 }; 4443 };
4444 4444
4445 scoped_refptr<DelayedSocketData> data( 4445 scoped_ptr<DelayedSocketData> data(
4446 new DelayedSocketData(1, reads, arraysize(reads), 4446 new DelayedSocketData(1, reads, arraysize(reads),
4447 writes, arraysize(writes))); 4447 writes, arraysize(writes)));
4448 BoundNetLog log; 4448 BoundNetLog log;
4449 NormalSpdyTransactionHelper helper(CreateGetRequest(), 4449 NormalSpdyTransactionHelper helper(CreateGetRequest(),
4450 log, GetParam()); 4450 log, GetParam());
4451 helper.RunPreTestSetup(); 4451 helper.RunPreTestSetup();
4452 helper.AddData(data.get()); 4452 helper.AddData(data.get());
4453 HttpNetworkTransaction* trans = helper.trans(); 4453 HttpNetworkTransaction* trans = helper.trans();
4454 4454
4455 TestCompletionCallback callback; 4455 TestCompletionCallback callback;
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
4517 MockWrite writes_SPDYNOSSL[] = { 4517 MockWrite writes_SPDYNOSSL[] = {
4518 CreateMockWrite(*req, 0), 4518 CreateMockWrite(*req, 0),
4519 }; 4519 };
4520 4520
4521 MockRead reads_SPDYNOSSL[] = { 4521 MockRead reads_SPDYNOSSL[] = {
4522 CreateMockRead(*resp, 1), 4522 CreateMockRead(*resp, 1),
4523 CreateMockRead(*body.get(), 2), 4523 CreateMockRead(*body.get(), 2),
4524 MockRead(true, 0, 0, 3), 4524 MockRead(true, 0, 0, 3),
4525 }; 4525 };
4526 4526
4527 scoped_refptr<OrderedSocketData> data; 4527 scoped_ptr<OrderedSocketData> data;
4528 switch(GetParam()) { 4528 switch(GetParam()) {
4529 case SPDYNOSSL: 4529 case SPDYNOSSL:
4530 data = new OrderedSocketData(reads_SPDYNOSSL, 4530 data.reset(new OrderedSocketData(reads_SPDYNOSSL,
4531 arraysize(reads_SPDYNOSSL), 4531 arraysize(reads_SPDYNOSSL),
4532 writes_SPDYNOSSL, 4532 writes_SPDYNOSSL,
4533 arraysize(writes_SPDYNOSSL)); 4533 arraysize(writes_SPDYNOSSL)));
4534 break; 4534 break;
4535 case SPDYSSL: 4535 case SPDYSSL:
4536 data = new OrderedSocketData(reads_SPDYSSL, arraysize(reads_SPDYSSL), 4536 data.reset(new OrderedSocketData(reads_SPDYSSL,
4537 writes_SPDYSSL, arraysize(writes_SPDYSSL)); 4537 arraysize(reads_SPDYSSL),
4538 writes_SPDYSSL,
4539 arraysize(writes_SPDYSSL)));
4538 break; 4540 break;
4539 case SPDYNPN: 4541 case SPDYNPN:
4540 data = new OrderedSocketData(reads_SPDYNPN, arraysize(reads_SPDYNPN), 4542 data.reset(new OrderedSocketData(reads_SPDYNPN,
4541 writes_SPDYNPN, arraysize(writes_SPDYNPN)); 4543 arraysize(reads_SPDYNPN),
4544 writes_SPDYNPN,
4545 arraysize(writes_SPDYNPN)));
4542 break; 4546 break;
4543 default: 4547 default:
4544 NOTREACHED(); 4548 NOTREACHED();
4545 } 4549 }
4546 4550
4547 helper.AddData(data.get()); 4551 helper.AddData(data.get());
4548 TestCompletionCallback callback; 4552 TestCompletionCallback callback;
4549 4553
4550 int rv = trans->Start( 4554 int rv = trans->Start(
4551 &CreateGetRequest(), callback.callback(), BoundNetLog()); 4555 &CreateGetRequest(), callback.callback(), BoundNetLog());
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
4593 }; 4597 };
4594 4598
4595 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 4599 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
4596 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); 4600 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
4597 MockRead reads[] = { 4601 MockRead reads[] = {
4598 CreateMockRead(*resp, 2), 4602 CreateMockRead(*resp, 2),
4599 CreateMockRead(*body, 3), 4603 CreateMockRead(*body, 3),
4600 MockRead(true, ERR_IO_PENDING, 4), // Force a pause 4604 MockRead(true, ERR_IO_PENDING, 4), // Force a pause
4601 MockRead(true, 0, 5) // EOF 4605 MockRead(true, 0, 5) // EOF
4602 }; 4606 };
4603 scoped_refptr<OrderedSocketData> data( 4607 scoped_ptr<OrderedSocketData> data(
4604 new OrderedSocketData(reads, arraysize(reads), 4608 new OrderedSocketData(reads, arraysize(reads),
4605 writes, arraysize(writes))); 4609 writes, arraysize(writes)));
4606 helper.AddData(data.get()); 4610 helper.AddData(data.get());
4607 HttpNetworkTransaction* trans = helper.trans(); 4611 HttpNetworkTransaction* trans = helper.trans();
4608 4612
4609 TestCompletionCallback callback; 4613 TestCompletionCallback callback;
4610 TransactionHelperResult out; 4614 TransactionHelperResult out;
4611 out.rv = trans->Start( 4615 out.rv = trans->Start(
4612 &CreateGetRequest(), callback.callback(), BoundNetLog()); 4616 &CreateGetRequest(), callback.callback(), BoundNetLog());
4613 4617
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
4671 MockWrite(false, kConnect80, arraysize(kConnect80) - 1, 0), 4675 MockWrite(false, kConnect80, arraysize(kConnect80) - 1, 0),
4672 CreateMockWrite(*req2, 2), 4676 CreateMockWrite(*req2, 2),
4673 }; 4677 };
4674 MockRead reads_SPDYSSL[] = { 4678 MockRead reads_SPDYSSL[] = {
4675 MockRead(false, kHTTP200, arraysize(kHTTP200) - 1, 1), 4679 MockRead(false, kHTTP200, arraysize(kHTTP200) - 1, 1),
4676 CreateMockRead(*resp2, 3), 4680 CreateMockRead(*resp2, 3),
4677 CreateMockRead(*body2, 4), 4681 CreateMockRead(*body2, 4),
4678 MockRead(true, 0, 0, 5), 4682 MockRead(true, 0, 0, 5),
4679 }; 4683 };
4680 4684
4681 scoped_refptr<OrderedSocketData> data_proxy; 4685 scoped_ptr<OrderedSocketData> data_proxy;
4682 switch(GetParam()) { 4686 switch(GetParam()) {
4683 case SPDYNPN: 4687 case SPDYNPN:
4684 data_proxy = new OrderedSocketData(reads_SPDYNPN, 4688 data_proxy.reset(new OrderedSocketData(reads_SPDYNPN,
4685 arraysize(reads_SPDYNPN), 4689 arraysize(reads_SPDYNPN),
4686 writes_SPDYNPN, 4690 writes_SPDYNPN,
4687 arraysize(writes_SPDYNPN)); 4691 arraysize(writes_SPDYNPN)));
4688 break; 4692 break;
4689 case SPDYNOSSL: 4693 case SPDYNOSSL:
4690 data_proxy = new OrderedSocketData(reads_SPDYNOSSL, 4694 data_proxy.reset(new OrderedSocketData(reads_SPDYNOSSL,
4691 arraysize(reads_SPDYNOSSL), 4695 arraysize(reads_SPDYNOSSL),
4692 writes_SPDYNOSSL, 4696 writes_SPDYNOSSL,
4693 arraysize(writes_SPDYNOSSL)); 4697 arraysize(writes_SPDYNOSSL)));
4694 break; 4698 break;
4695 case SPDYSSL: 4699 case SPDYSSL:
4696 data_proxy = new OrderedSocketData(reads_SPDYSSL, 4700 data_proxy.reset(new OrderedSocketData(reads_SPDYSSL,
4697 arraysize(reads_SPDYSSL), 4701 arraysize(reads_SPDYSSL),
4698 writes_SPDYSSL, 4702 writes_SPDYSSL,
4699 arraysize(writes_SPDYSSL)); 4703 arraysize(writes_SPDYSSL)));
4700 break; 4704 break;
4701 default: 4705 default:
4702 NOTREACHED(); 4706 NOTREACHED();
4703 } 4707 }
4704 4708
4705 // Create another request to www.google.com, but this time through a proxy. 4709 // Create another request to www.google.com, but this time through a proxy.
4706 HttpRequestInfo request_proxy; 4710 HttpRequestInfo request_proxy;
4707 request_proxy.method = "GET"; 4711 request_proxy.method = "GET";
4708 request_proxy.url = GURL("http://www.google.com/foo.dat"); 4712 request_proxy.url = GURL("http://www.google.com/foo.dat");
4709 request_proxy.load_flags = 0; 4713 request_proxy.load_flags = 0;
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
4767 // Induce the RST while waiting for our transaction to send. 4771 // Induce the RST while waiting for our transaction to send.
4768 VARIANT_RST_DURING_SEND_COMPLETION, 4772 VARIANT_RST_DURING_SEND_COMPLETION,
4769 // Induce the RST while waiting for our transaction to read. 4773 // Induce the RST while waiting for our transaction to read.
4770 // In this case, the send completed - everything copied into the SNDBUF. 4774 // In this case, the send completed - everything copied into the SNDBUF.
4771 VARIANT_RST_DURING_READ_COMPLETION 4775 VARIANT_RST_DURING_READ_COMPLETION
4772 }; 4776 };
4773 4777
4774 for (int variant = VARIANT_RST_DURING_SEND_COMPLETION; 4778 for (int variant = VARIANT_RST_DURING_SEND_COMPLETION;
4775 variant <= VARIANT_RST_DURING_READ_COMPLETION; 4779 variant <= VARIANT_RST_DURING_READ_COMPLETION;
4776 ++variant) { 4780 ++variant) {
4777 scoped_refptr<DelayedSocketData> data1( 4781 scoped_ptr<DelayedSocketData> data1(
4778 new DelayedSocketData(1, reads, arraysize(reads), 4782 new DelayedSocketData(1, reads, arraysize(reads),
4779 NULL, 0)); 4783 NULL, 0));
4780 4784
4781 scoped_refptr<DelayedSocketData> data2( 4785 scoped_ptr<DelayedSocketData> data2(
4782 new DelayedSocketData(1, reads2, arraysize(reads2), 4786 new DelayedSocketData(1, reads2, arraysize(reads2),
4783 NULL, 0)); 4787 NULL, 0));
4784 4788
4785 NormalSpdyTransactionHelper helper(CreateGetRequest(), 4789 NormalSpdyTransactionHelper helper(CreateGetRequest(),
4786 BoundNetLog(), GetParam()); 4790 BoundNetLog(), GetParam());
4787 helper.AddData(data1.get()); 4791 helper.AddData(data1.get());
4788 helper.AddData(data2.get()); 4792 helper.AddData(data2.get());
4789 helper.RunPreTestSetup(); 4793 helper.RunPreTestSetup();
4790 4794
4791 for (int i = 0; i < 2; ++i) { 4795 for (int i = 0; i < 2; ++i) {
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
4834 MockWrite spdy_writes[] = { CreateMockWrite(*req) }; 4838 MockWrite spdy_writes[] = { CreateMockWrite(*req) };
4835 4839
4836 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 4840 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
4837 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); 4841 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
4838 MockRead spdy_reads[] = { 4842 MockRead spdy_reads[] = {
4839 CreateMockRead(*resp), 4843 CreateMockRead(*resp),
4840 CreateMockRead(*body), 4844 CreateMockRead(*body),
4841 MockRead(true, 0, 0) // EOF 4845 MockRead(true, 0, 0) // EOF
4842 }; 4846 };
4843 4847
4844 scoped_refptr<DelayedSocketData> data( 4848 scoped_ptr<DelayedSocketData> data(
4845 new DelayedSocketData(1, 4849 new DelayedSocketData(1,
4846 spdy_reads, arraysize(spdy_reads), 4850 spdy_reads, arraysize(spdy_reads),
4847 spdy_writes, arraysize(spdy_writes))); 4851 spdy_writes, arraysize(spdy_writes)));
4848 NormalSpdyTransactionHelper helper(CreateGetRequest(), 4852 NormalSpdyTransactionHelper helper(CreateGetRequest(),
4849 BoundNetLog(), GetParam()); 4853 BoundNetLog(), GetParam());
4850 helper.RunToCompletion(data.get()); 4854 helper.RunToCompletion(data.get());
4851 TransactionHelperResult out = helper.output(); 4855 TransactionHelperResult out = helper.output();
4852 EXPECT_EQ(OK, out.rv); 4856 EXPECT_EQ(OK, out.rv);
4853 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); 4857 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line);
4854 EXPECT_EQ("hello!", out.response_data); 4858 EXPECT_EQ("hello!", out.response_data);
4855 4859
4856 net::HttpStreamFactory::set_spdy_enabled(false); 4860 net::HttpStreamFactory::set_spdy_enabled(false);
4857 MockRead http_reads[] = { 4861 MockRead http_reads[] = {
4858 MockRead("HTTP/1.1 200 OK\r\n\r\n"), 4862 MockRead("HTTP/1.1 200 OK\r\n\r\n"),
4859 MockRead("hello from http"), 4863 MockRead("hello from http"),
4860 MockRead(false, OK), 4864 MockRead(false, OK),
4861 }; 4865 };
4862 scoped_refptr<DelayedSocketData> data2( 4866 scoped_ptr<DelayedSocketData> data2(
4863 new DelayedSocketData(1, http_reads, arraysize(http_reads), 4867 new DelayedSocketData(1, http_reads, arraysize(http_reads),
4864 NULL, 0)); 4868 NULL, 0));
4865 NormalSpdyTransactionHelper helper2(CreateGetRequest(), 4869 NormalSpdyTransactionHelper helper2(CreateGetRequest(),
4866 BoundNetLog(), GetParam()); 4870 BoundNetLog(), GetParam());
4867 helper2.SetSpdyDisabled(); 4871 helper2.SetSpdyDisabled();
4868 helper2.RunToCompletion(data2.get()); 4872 helper2.RunToCompletion(data2.get());
4869 TransactionHelperResult out2 = helper2.output(); 4873 TransactionHelperResult out2 = helper2.output();
4870 EXPECT_EQ(OK, out2.rv); 4874 EXPECT_EQ(OK, out2.rv);
4871 EXPECT_EQ("HTTP/1.1 200 OK", out2.status_line); 4875 EXPECT_EQ("HTTP/1.1 200 OK", out2.status_line);
4872 EXPECT_EQ("hello from http", out2.response_data); 4876 EXPECT_EQ("hello from http", out2.response_data);
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
4914 scoped_ptr<spdy::SpdyFrame> resp_data(ConstructSpdyGetSynReply(NULL, 0, 3)); 4918 scoped_ptr<spdy::SpdyFrame> resp_data(ConstructSpdyGetSynReply(NULL, 0, 3));
4915 scoped_ptr<spdy::SpdyFrame> body_data(ConstructSpdyBodyFrame(3, true)); 4919 scoped_ptr<spdy::SpdyFrame> body_data(ConstructSpdyBodyFrame(3, true));
4916 MockRead spdy_reads[] = { 4920 MockRead spdy_reads[] = {
4917 CreateMockRead(*resp_authentication, 2), 4921 CreateMockRead(*resp_authentication, 2),
4918 CreateMockRead(*body_authentication, 3), 4922 CreateMockRead(*body_authentication, 3),
4919 CreateMockRead(*resp_data, 5), 4923 CreateMockRead(*resp_data, 5),
4920 CreateMockRead(*body_data, 6), 4924 CreateMockRead(*body_data, 6),
4921 MockRead(true, 0, 7), 4925 MockRead(true, 0, 7),
4922 }; 4926 };
4923 4927
4924 scoped_refptr<OrderedSocketData> data( 4928 scoped_ptr<OrderedSocketData> data(
4925 new OrderedSocketData(spdy_reads, arraysize(spdy_reads), 4929 new OrderedSocketData(spdy_reads, arraysize(spdy_reads),
4926 spdy_writes, arraysize(spdy_writes))); 4930 spdy_writes, arraysize(spdy_writes)));
4927 HttpRequestInfo request(CreateGetRequest()); 4931 HttpRequestInfo request(CreateGetRequest());
4928 BoundNetLog net_log; 4932 BoundNetLog net_log;
4929 NormalSpdyTransactionHelper helper(request, net_log, GetParam()); 4933 NormalSpdyTransactionHelper helper(request, net_log, GetParam());
4930 4934
4931 helper.RunPreTestSetup(); 4935 helper.RunPreTestSetup();
4932 helper.AddData(data.get()); 4936 helper.AddData(data.get());
4933 HttpNetworkTransaction* trans = helper.trans(); 4937 HttpNetworkTransaction* trans = helper.trans();
4934 TestCompletionCallback callback; 4938 TestCompletionCallback callback;
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
5023 CreateMockRead(*stream2_headers, 4), 5027 CreateMockRead(*stream2_headers, 4),
5024 CreateMockRead(*stream1_body, 5, false), 5028 CreateMockRead(*stream1_body, 5, false),
5025 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame), 5029 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame),
5026 arraysize(kPushBodyFrame), 6), 5030 arraysize(kPushBodyFrame), 6),
5027 MockRead(true, ERR_IO_PENDING, 7), // Force a pause 5031 MockRead(true, ERR_IO_PENDING, 7), // Force a pause
5028 }; 5032 };
5029 5033
5030 HttpResponseInfo response; 5034 HttpResponseInfo response;
5031 HttpResponseInfo response2; 5035 HttpResponseInfo response2;
5032 std::string expected_push_result("pushed"); 5036 std::string expected_push_result("pushed");
5033 scoped_refptr<OrderedSocketData> data(new OrderedSocketData( 5037 scoped_ptr<OrderedSocketData> data(new OrderedSocketData(
5034 reads, 5038 reads,
5035 arraysize(reads), 5039 arraysize(reads),
5036 writes, 5040 writes,
5037 arraysize(writes))); 5041 arraysize(writes)));
5038 RunServerPushTest(data.get(), 5042 RunServerPushTest(data.get(),
5039 &response, 5043 &response,
5040 &response2, 5044 &response2,
5041 expected_push_result); 5045 expected_push_result);
5042 5046
5043 // Verify the SYN_REPLY. 5047 // Verify the SYN_REPLY.
(...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after
5382 0, 5386 0,
5383 0)); 5387 0));
5384 scoped_ptr<spdy::SpdyFrame> stream1_body(ConstructSpdyBodyFrame(1, true)); 5388 scoped_ptr<spdy::SpdyFrame> stream1_body(ConstructSpdyBodyFrame(1, true));
5385 MockRead reads[] = { 5389 MockRead reads[] = {
5386 CreateMockRead(*stream1_reply), 5390 CreateMockRead(*stream1_reply),
5387 CreateMockRead(*stream1_headers), 5391 CreateMockRead(*stream1_headers),
5388 CreateMockRead(*stream1_body), 5392 CreateMockRead(*stream1_body),
5389 MockRead(true, 0, 0) // EOF 5393 MockRead(true, 0, 0) // EOF
5390 }; 5394 };
5391 5395
5392 scoped_refptr<DelayedSocketData> data( 5396 scoped_ptr<DelayedSocketData> data(
5393 new DelayedSocketData(1, reads, arraysize(reads), 5397 new DelayedSocketData(1, reads, arraysize(reads),
5394 writes, arraysize(writes))); 5398 writes, arraysize(writes)));
5395 NormalSpdyTransactionHelper helper(CreateGetRequest(), 5399 NormalSpdyTransactionHelper helper(CreateGetRequest(),
5396 BoundNetLog(), GetParam()); 5400 BoundNetLog(), GetParam());
5397 helper.RunToCompletion(data.get()); 5401 helper.RunToCompletion(data.get());
5398 TransactionHelperResult out = helper.output(); 5402 TransactionHelperResult out = helper.output();
5399 EXPECT_EQ(OK, out.rv); 5403 EXPECT_EQ(OK, out.rv);
5400 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); 5404 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line);
5401 EXPECT_EQ("hello!", out.response_data); 5405 EXPECT_EQ("hello!", out.response_data);
5402 } 5406 }
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
5440 scoped_ptr<spdy::SpdyFrame> stream1_body(ConstructSpdyBodyFrame(1, false)); 5444 scoped_ptr<spdy::SpdyFrame> stream1_body(ConstructSpdyBodyFrame(1, false));
5441 scoped_ptr<spdy::SpdyFrame> stream1_body2(ConstructSpdyBodyFrame(1, true)); 5445 scoped_ptr<spdy::SpdyFrame> stream1_body2(ConstructSpdyBodyFrame(1, true));
5442 MockRead reads[] = { 5446 MockRead reads[] = {
5443 CreateMockRead(*stream1_reply), 5447 CreateMockRead(*stream1_reply),
5444 CreateMockRead(*stream1_body), 5448 CreateMockRead(*stream1_body),
5445 CreateMockRead(*stream1_headers), 5449 CreateMockRead(*stream1_headers),
5446 CreateMockRead(*stream1_body2), 5450 CreateMockRead(*stream1_body2),
5447 MockRead(true, 0, 0) // EOF 5451 MockRead(true, 0, 0) // EOF
5448 }; 5452 };
5449 5453
5450 scoped_refptr<DelayedSocketData> data( 5454 scoped_ptr<DelayedSocketData> data(
5451 new DelayedSocketData(1, reads, arraysize(reads), 5455 new DelayedSocketData(1, reads, arraysize(reads),
5452 writes, arraysize(writes))); 5456 writes, arraysize(writes)));
5453 NormalSpdyTransactionHelper helper(CreateGetRequest(), 5457 NormalSpdyTransactionHelper helper(CreateGetRequest(),
5454 BoundNetLog(), GetParam()); 5458 BoundNetLog(), GetParam());
5455 helper.RunToCompletion(data.get()); 5459 helper.RunToCompletion(data.get());
5456 TransactionHelperResult out = helper.output(); 5460 TransactionHelperResult out = helper.output();
5457 EXPECT_EQ(OK, out.rv); 5461 EXPECT_EQ(OK, out.rv);
5458 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); 5462 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line);
5459 EXPECT_EQ("hello!hello!", out.response_data); 5463 EXPECT_EQ("hello!hello!", out.response_data);
5460 } 5464 }
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
5498 scoped_ptr<spdy::SpdyFrame> stream1_body(ConstructSpdyBodyFrame(1, false)); 5502 scoped_ptr<spdy::SpdyFrame> stream1_body(ConstructSpdyBodyFrame(1, false));
5499 scoped_ptr<spdy::SpdyFrame> stream1_body2(ConstructSpdyBodyFrame(1, true)); 5503 scoped_ptr<spdy::SpdyFrame> stream1_body2(ConstructSpdyBodyFrame(1, true));
5500 MockRead reads[] = { 5504 MockRead reads[] = {
5501 CreateMockRead(*stream1_reply), 5505 CreateMockRead(*stream1_reply),
5502 CreateMockRead(*stream1_body), 5506 CreateMockRead(*stream1_body),
5503 CreateMockRead(*stream1_headers), 5507 CreateMockRead(*stream1_headers),
5504 CreateMockRead(*stream1_body2), 5508 CreateMockRead(*stream1_body2),
5505 MockRead(true, 0, 0) // EOF 5509 MockRead(true, 0, 0) // EOF
5506 }; 5510 };
5507 5511
5508 scoped_refptr<DelayedSocketData> data( 5512 scoped_ptr<DelayedSocketData> data(
5509 new DelayedSocketData(1, reads, arraysize(reads), 5513 new DelayedSocketData(1, reads, arraysize(reads),
5510 writes, arraysize(writes))); 5514 writes, arraysize(writes)));
5511 NormalSpdyTransactionHelper helper(CreateGetRequest(), 5515 NormalSpdyTransactionHelper helper(CreateGetRequest(),
5512 BoundNetLog(), GetParam()); 5516 BoundNetLog(), GetParam());
5513 helper.RunToCompletion(data.get()); 5517 helper.RunToCompletion(data.get());
5514 TransactionHelperResult out = helper.output(); 5518 TransactionHelperResult out = helper.output();
5515 EXPECT_EQ(ERR_SPDY_PROTOCOL_ERROR, out.rv); 5519 EXPECT_EQ(ERR_SPDY_PROTOCOL_ERROR, out.rv);
5516 } 5520 }
5517 5521
5518 TEST_P(SpdyNetworkTransactionTest, ServerPushCrossOriginCorrectness) { 5522 TEST_P(SpdyNetworkTransactionTest, ServerPushCrossOriginCorrectness) {
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
5576 MockRead reads[] = { 5580 MockRead reads[] = {
5577 CreateMockRead(*stream1_reply, 2), 5581 CreateMockRead(*stream1_reply, 2),
5578 CreateMockRead(*stream2_syn, 3), 5582 CreateMockRead(*stream2_syn, 3),
5579 CreateMockRead(*stream1_body, 5, false), 5583 CreateMockRead(*stream1_body, 5, false),
5580 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame), 5584 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame),
5581 arraysize(kPushBodyFrame), 6), 5585 arraysize(kPushBodyFrame), 6),
5582 MockRead(true, ERR_IO_PENDING, 7), // Force a pause 5586 MockRead(true, ERR_IO_PENDING, 7), // Force a pause
5583 }; 5587 };
5584 5588
5585 HttpResponseInfo response; 5589 HttpResponseInfo response;
5586 scoped_refptr<OrderedSocketData> data(new OrderedSocketData( 5590 scoped_ptr<OrderedSocketData> data(new OrderedSocketData(
5587 reads, 5591 reads,
5588 arraysize(reads), 5592 arraysize(reads),
5589 writes, 5593 writes,
5590 arraysize(writes))); 5594 arraysize(writes)));
5591 5595
5592 HttpRequestInfo request; 5596 HttpRequestInfo request;
5593 request.method = "GET"; 5597 request.method = "GET";
5594 request.url = GURL(url_to_fetch); 5598 request.url = GURL(url_to_fetch);
5595 request.load_flags = 0; 5599 request.load_flags = 0;
5596 NormalSpdyTransactionHelper helper(request, 5600 NormalSpdyTransactionHelper helper(request,
5597 BoundNetLog(), GetParam()); 5601 BoundNetLog(), GetParam());
5598 helper.RunPreTestSetup(); 5602 helper.RunPreTestSetup();
5599 helper.AddData(data); 5603 helper.AddData(data.get());
5600 5604
5601 HttpNetworkTransaction* trans = helper.trans(); 5605 HttpNetworkTransaction* trans = helper.trans();
5602 5606
5603 // Start the transaction with basic parameters. 5607 // Start the transaction with basic parameters.
5604 TestCompletionCallback callback; 5608 TestCompletionCallback callback;
5605 5609
5606 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); 5610 int rv = trans->Start(&request, callback.callback(), BoundNetLog());
5607 EXPECT_EQ(ERR_IO_PENDING, rv); 5611 EXPECT_EQ(ERR_IO_PENDING, rv);
5608 rv = callback.WaitForResult(); 5612 rv = callback.WaitForResult();
5609 5613
5610 // Read the response body. 5614 // Read the response body.
5611 std::string result; 5615 std::string result;
5612 ReadResult(trans, data, &result); 5616 ReadResult(trans, data.get(), &result);
5613 5617
5614 // Verify that we consumed all test data. 5618 // Verify that we consumed all test data.
5615 EXPECT_TRUE(data->at_read_eof()); 5619 EXPECT_TRUE(data->at_read_eof());
5616 EXPECT_TRUE(data->at_write_eof()); 5620 EXPECT_TRUE(data->at_write_eof());
5617 5621
5618 // Verify the SYN_REPLY. 5622 // Verify the SYN_REPLY.
5619 // Copy the response info, because trans goes away. 5623 // Copy the response info, because trans goes away.
5620 response = *trans->GetResponseInfo(); 5624 response = *trans->GetResponseInfo();
5621 5625
5622 VerifyStreamsClosed(helper); 5626 VerifyStreamsClosed(helper);
(...skipping 17 matching lines...) Expand all
5640 ConstructSpdyRstStream(1, spdy::REFUSED_STREAM)); 5644 ConstructSpdyRstStream(1, spdy::REFUSED_STREAM));
5641 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 3)); 5645 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 3));
5642 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(3, true)); 5646 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(3, true));
5643 MockRead reads[] = { 5647 MockRead reads[] = {
5644 CreateMockRead(*refused, 2), 5648 CreateMockRead(*refused, 2),
5645 CreateMockRead(*resp, 4), 5649 CreateMockRead(*resp, 4),
5646 CreateMockRead(*body, 5), 5650 CreateMockRead(*body, 5),
5647 MockRead(true, 0, 6) // EOF 5651 MockRead(true, 0, 6) // EOF
5648 }; 5652 };
5649 5653
5650 scoped_refptr<OrderedSocketData> data( 5654 scoped_ptr<OrderedSocketData> data(
5651 new OrderedSocketData(reads, arraysize(reads), 5655 new OrderedSocketData(reads, arraysize(reads),
5652 writes, arraysize(writes))); 5656 writes, arraysize(writes)));
5653 NormalSpdyTransactionHelper helper(CreateGetRequest(), 5657 NormalSpdyTransactionHelper helper(CreateGetRequest(),
5654 BoundNetLog(), GetParam()); 5658 BoundNetLog(), GetParam());
5655 5659
5656 helper.RunPreTestSetup(); 5660 helper.RunPreTestSetup();
5657 helper.AddData(data.get()); 5661 helper.AddData(data.get());
5658 5662
5659 HttpNetworkTransaction* trans = helper.trans(); 5663 HttpNetworkTransaction* trans = helper.trans();
5660 5664
(...skipping 15 matching lines...) Expand all
5676 << " Write index: " 5680 << " Write index: "
5677 << data->write_index(); 5681 << data->write_index();
5678 5682
5679 // Verify the SYN_REPLY. 5683 // Verify the SYN_REPLY.
5680 HttpResponseInfo response = *trans->GetResponseInfo(); 5684 HttpResponseInfo response = *trans->GetResponseInfo();
5681 EXPECT_TRUE(response.headers != NULL); 5685 EXPECT_TRUE(response.headers != NULL);
5682 EXPECT_EQ("HTTP/1.1 200 OK", response.headers->GetStatusLine()); 5686 EXPECT_EQ("HTTP/1.1 200 OK", response.headers->GetStatusLine());
5683 } 5687 }
5684 5688
5685 } // namespace net 5689 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698