| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/http/http_network_transaction.h" | 5 #include "net/http/http_network_transaction.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 224 RunPreTestSetup(); | 224 RunPreTestSetup(); |
| 225 AddData(data); | 225 AddData(data); |
| 226 RunDefaultTest(); | 226 RunDefaultTest(); |
| 227 VerifyDataConsumed(); | 227 VerifyDataConsumed(); |
| 228 } | 228 } |
| 229 | 229 |
| 230 void AddData(StaticSocketDataProvider* data) { | 230 void AddData(StaticSocketDataProvider* data) { |
| 231 DCHECK(!deterministic_); | 231 DCHECK(!deterministic_); |
| 232 data_vector_.push_back(data); | 232 data_vector_.push_back(data); |
| 233 linked_ptr<SSLSocketDataProvider> ssl_( | 233 linked_ptr<SSLSocketDataProvider> ssl_( |
| 234 new SSLSocketDataProvider(true, OK)); | 234 new SSLSocketDataProvider(ASYNC, OK)); |
| 235 if (test_type_ == SPDYNPN) { | 235 if (test_type_ == SPDYNPN) { |
| 236 ssl_->SetNextProto(SSLClientSocket::kProtoSPDY21); | 236 ssl_->SetNextProto(SSLClientSocket::kProtoSPDY21); |
| 237 } | 237 } |
| 238 ssl_vector_.push_back(ssl_); | 238 ssl_vector_.push_back(ssl_); |
| 239 if (test_type_ == SPDYNPN || test_type_ == SPDYSSL) | 239 if (test_type_ == SPDYNPN || test_type_ == SPDYSSL) |
| 240 session_deps_->socket_factory->AddSSLSocketDataProvider(ssl_.get()); | 240 session_deps_->socket_factory->AddSSLSocketDataProvider(ssl_.get()); |
| 241 session_deps_->socket_factory->AddSocketDataProvider(data); | 241 session_deps_->socket_factory->AddSocketDataProvider(data); |
| 242 if (test_type_ == SPDYNPN) { | 242 if (test_type_ == SPDYNPN) { |
| 243 MockConnect never_finishing_connect(SYNCHRONOUS, ERR_IO_PENDING); | 243 MockConnect never_finishing_connect(SYNCHRONOUS, ERR_IO_PENDING); |
| 244 linked_ptr<StaticSocketDataProvider> | 244 linked_ptr<StaticSocketDataProvider> |
| 245 hanging_non_alternate_protocol_socket( | 245 hanging_non_alternate_protocol_socket( |
| 246 new StaticSocketDataProvider(NULL, 0, NULL, 0)); | 246 new StaticSocketDataProvider(NULL, 0, NULL, 0)); |
| 247 hanging_non_alternate_protocol_socket->set_connect_data( | 247 hanging_non_alternate_protocol_socket->set_connect_data( |
| 248 never_finishing_connect); | 248 never_finishing_connect); |
| 249 session_deps_->socket_factory->AddSocketDataProvider( | 249 session_deps_->socket_factory->AddSocketDataProvider( |
| 250 hanging_non_alternate_protocol_socket.get()); | 250 hanging_non_alternate_protocol_socket.get()); |
| 251 alternate_vector_.push_back(hanging_non_alternate_protocol_socket); | 251 alternate_vector_.push_back(hanging_non_alternate_protocol_socket); |
| 252 } | 252 } |
| 253 } | 253 } |
| 254 | 254 |
| 255 void AddDeterministicData(DeterministicSocketData* data) { | 255 void AddDeterministicData(DeterministicSocketData* data) { |
| 256 DCHECK(deterministic_); | 256 DCHECK(deterministic_); |
| 257 data_vector_.push_back(data); | 257 data_vector_.push_back(data); |
| 258 linked_ptr<SSLSocketDataProvider> ssl_( | 258 linked_ptr<SSLSocketDataProvider> ssl_( |
| 259 new SSLSocketDataProvider(true, OK)); | 259 new SSLSocketDataProvider(ASYNC, OK)); |
| 260 if (test_type_ == SPDYNPN) { | 260 if (test_type_ == SPDYNPN) { |
| 261 ssl_->SetNextProto(SSLClientSocket::kProtoSPDY21); | 261 ssl_->SetNextProto(SSLClientSocket::kProtoSPDY21); |
| 262 } | 262 } |
| 263 ssl_vector_.push_back(ssl_); | 263 ssl_vector_.push_back(ssl_); |
| 264 if (test_type_ == SPDYNPN || test_type_ == SPDYSSL) { | 264 if (test_type_ == SPDYNPN || test_type_ == SPDYSSL) { |
| 265 session_deps_->deterministic_socket_factory-> | 265 session_deps_->deterministic_socket_factory-> |
| 266 AddSSLSocketDataProvider(ssl_.get()); | 266 AddSSLSocketDataProvider(ssl_.get()); |
| 267 } | 267 } |
| 268 session_deps_->deterministic_socket_factory->AddSocketDataProvider(data); | 268 session_deps_->deterministic_socket_factory->AddSocketDataProvider(data); |
| 269 if (test_type_ == SPDYNPN) { | 269 if (test_type_ == SPDYNPN) { |
| (...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 544 TEST_P(SpdyNetworkTransactionTest, Get) { | 544 TEST_P(SpdyNetworkTransactionTest, Get) { |
| 545 // Construct the request. | 545 // Construct the request. |
| 546 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); | 546 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); |
| 547 MockWrite writes[] = { CreateMockWrite(*req) }; | 547 MockWrite writes[] = { CreateMockWrite(*req) }; |
| 548 | 548 |
| 549 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); | 549 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); |
| 550 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); | 550 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); |
| 551 MockRead reads[] = { | 551 MockRead reads[] = { |
| 552 CreateMockRead(*resp), | 552 CreateMockRead(*resp), |
| 553 CreateMockRead(*body), | 553 CreateMockRead(*body), |
| 554 MockRead(true, 0, 0) // EOF | 554 MockRead(ASYNC, 0, 0) // EOF |
| 555 }; | 555 }; |
| 556 | 556 |
| 557 scoped_ptr<DelayedSocketData> data( | 557 scoped_ptr<DelayedSocketData> data( |
| 558 new DelayedSocketData(1, reads, arraysize(reads), | 558 new DelayedSocketData(1, reads, arraysize(reads), |
| 559 writes, arraysize(writes))); | 559 writes, arraysize(writes))); |
| 560 NormalSpdyTransactionHelper helper(CreateGetRequest(), | 560 NormalSpdyTransactionHelper helper(CreateGetRequest(), |
| 561 BoundNetLog(), GetParam()); | 561 BoundNetLog(), GetParam()); |
| 562 helper.RunToCompletion(data.get()); | 562 helper.RunToCompletion(data.get()); |
| 563 TransactionHelperResult out = helper.output(); | 563 TransactionHelperResult out = helper.output(); |
| 564 EXPECT_EQ(OK, out.rv); | 564 EXPECT_EQ(OK, out.rv); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 594 break; | 594 break; |
| 595 default: | 595 default: |
| 596 FAIL(); | 596 FAIL(); |
| 597 } | 597 } |
| 598 | 598 |
| 599 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); | 599 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); |
| 600 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); | 600 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); |
| 601 MockRead reads[] = { | 601 MockRead reads[] = { |
| 602 CreateMockRead(*resp), | 602 CreateMockRead(*resp), |
| 603 CreateMockRead(*body), | 603 CreateMockRead(*body), |
| 604 MockRead(true, 0, 0) // EOF | 604 MockRead(ASYNC, 0, 0) // EOF |
| 605 }; | 605 }; |
| 606 | 606 |
| 607 scoped_ptr<DelayedSocketData> data( | 607 scoped_ptr<DelayedSocketData> data( |
| 608 new DelayedSocketData(1, reads, arraysize(reads), | 608 new DelayedSocketData(1, reads, arraysize(reads), |
| 609 writes, arraysize(writes))); | 609 writes, arraysize(writes))); |
| 610 HttpRequestInfo http_req = CreateGetRequest(); | 610 HttpRequestInfo http_req = CreateGetRequest(); |
| 611 http_req.priority = p; | 611 http_req.priority = p; |
| 612 | 612 |
| 613 NormalSpdyTransactionHelper helper(http_req, BoundNetLog(), GetParam()); | 613 NormalSpdyTransactionHelper helper(http_req, BoundNetLog(), GetParam()); |
| 614 helper.RunToCompletion(data.get()); | 614 helper.RunToCompletion(data.get()); |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 655 CreateMockRead(*body), | 655 CreateMockRead(*body), |
| 656 CreateMockRead(*resp2, 4), | 656 CreateMockRead(*resp2, 4), |
| 657 CreateMockRead(*body2), | 657 CreateMockRead(*body2), |
| 658 CreateMockRead(*resp3, 7), | 658 CreateMockRead(*resp3, 7), |
| 659 CreateMockRead(*body3), | 659 CreateMockRead(*body3), |
| 660 | 660 |
| 661 CreateMockRead(*fbody), | 661 CreateMockRead(*fbody), |
| 662 CreateMockRead(*fbody2), | 662 CreateMockRead(*fbody2), |
| 663 CreateMockRead(*fbody3), | 663 CreateMockRead(*fbody3), |
| 664 | 664 |
| 665 MockRead(true, 0, 0), // EOF | 665 MockRead(ASYNC, 0, 0), // EOF |
| 666 }; | 666 }; |
| 667 scoped_ptr<OrderedSocketData> data( | 667 scoped_ptr<OrderedSocketData> data( |
| 668 new OrderedSocketData(reads, arraysize(reads), | 668 new OrderedSocketData(reads, arraysize(reads), |
| 669 writes, arraysize(writes))); | 669 writes, arraysize(writes))); |
| 670 scoped_ptr<OrderedSocketData> data_placeholder( | 670 scoped_ptr<OrderedSocketData> data_placeholder( |
| 671 new OrderedSocketData(NULL, 0, NULL, 0)); | 671 new OrderedSocketData(NULL, 0, NULL, 0)); |
| 672 | 672 |
| 673 BoundNetLog log; | 673 BoundNetLog log; |
| 674 TransactionHelperResult out; | 674 TransactionHelperResult out; |
| 675 NormalSpdyTransactionHelper helper(CreateGetRequest(), | 675 NormalSpdyTransactionHelper helper(CreateGetRequest(), |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 739 CreateMockWrite(*req), | 739 CreateMockWrite(*req), |
| 740 CreateMockWrite(*req2), | 740 CreateMockWrite(*req2), |
| 741 }; | 741 }; |
| 742 MockRead reads[] = { | 742 MockRead reads[] = { |
| 743 CreateMockRead(*resp, 1), | 743 CreateMockRead(*resp, 1), |
| 744 CreateMockRead(*body), | 744 CreateMockRead(*body), |
| 745 CreateMockRead(*resp2, 4), | 745 CreateMockRead(*resp2, 4), |
| 746 CreateMockRead(*body2), | 746 CreateMockRead(*body2), |
| 747 CreateMockRead(*fbody), | 747 CreateMockRead(*fbody), |
| 748 CreateMockRead(*fbody2), | 748 CreateMockRead(*fbody2), |
| 749 MockRead(true, 0, 0), // EOF | 749 MockRead(ASYNC, 0, 0), // EOF |
| 750 }; | 750 }; |
| 751 scoped_ptr<OrderedSocketData> data( | 751 scoped_ptr<OrderedSocketData> data( |
| 752 new OrderedSocketData(reads, arraysize(reads), | 752 new OrderedSocketData(reads, arraysize(reads), |
| 753 writes, arraysize(writes))); | 753 writes, arraysize(writes))); |
| 754 | 754 |
| 755 MockConnect never_finishing_connect(SYNCHRONOUS, ERR_IO_PENDING); | 755 MockConnect never_finishing_connect(SYNCHRONOUS, ERR_IO_PENDING); |
| 756 | 756 |
| 757 scoped_ptr<OrderedSocketData> data_placeholder( | 757 scoped_ptr<OrderedSocketData> data_placeholder( |
| 758 new OrderedSocketData(NULL, 0, NULL, 0)); | 758 new OrderedSocketData(NULL, 0, NULL, 0)); |
| 759 data_placeholder->set_connect_data(never_finishing_connect); | 759 data_placeholder->set_connect_data(never_finishing_connect); |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 826 CreateMockWrite(*req), | 826 CreateMockWrite(*req), |
| 827 CreateMockWrite(*req2), | 827 CreateMockWrite(*req2), |
| 828 }; | 828 }; |
| 829 MockRead reads[] = { | 829 MockRead reads[] = { |
| 830 CreateMockRead(*resp, 1), | 830 CreateMockRead(*resp, 1), |
| 831 CreateMockRead(*body), | 831 CreateMockRead(*body), |
| 832 CreateMockRead(*resp2, 4), | 832 CreateMockRead(*resp2, 4), |
| 833 CreateMockRead(*body2), | 833 CreateMockRead(*body2), |
| 834 CreateMockRead(*fbody), | 834 CreateMockRead(*fbody), |
| 835 CreateMockRead(*fbody2), | 835 CreateMockRead(*fbody2), |
| 836 MockRead(true, 0, 0), // EOF | 836 MockRead(ASYNC, 0, 0), // EOF |
| 837 }; | 837 }; |
| 838 scoped_ptr<OrderedSocketData> preconnect_data( | 838 scoped_ptr<OrderedSocketData> preconnect_data( |
| 839 new OrderedSocketData(reads, arraysize(reads), | 839 new OrderedSocketData(reads, arraysize(reads), |
| 840 writes, arraysize(writes))); | 840 writes, arraysize(writes))); |
| 841 | 841 |
| 842 MockConnect never_finishing_connect(ASYNC, ERR_IO_PENDING); | 842 MockConnect never_finishing_connect(ASYNC, ERR_IO_PENDING); |
| 843 | 843 |
| 844 scoped_ptr<OrderedSocketData> data_placeholder( | 844 scoped_ptr<OrderedSocketData> data_placeholder( |
| 845 new OrderedSocketData(NULL, 0, NULL, 0)); | 845 new OrderedSocketData(NULL, 0, NULL, 0)); |
| 846 data_placeholder->set_connect_data(never_finishing_connect); | 846 data_placeholder->set_connect_data(never_finishing_connect); |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 952 CreateMockRead(*resp), | 952 CreateMockRead(*resp), |
| 953 CreateMockRead(*body), | 953 CreateMockRead(*body), |
| 954 CreateMockRead(*fbody), | 954 CreateMockRead(*fbody), |
| 955 CreateMockRead(*resp2, 7), | 955 CreateMockRead(*resp2, 7), |
| 956 CreateMockRead(*body2), | 956 CreateMockRead(*body2), |
| 957 CreateMockRead(*fbody2), | 957 CreateMockRead(*fbody2), |
| 958 CreateMockRead(*resp3, 12), | 958 CreateMockRead(*resp3, 12), |
| 959 CreateMockRead(*body3), | 959 CreateMockRead(*body3), |
| 960 CreateMockRead(*fbody3), | 960 CreateMockRead(*fbody3), |
| 961 | 961 |
| 962 MockRead(true, 0, 0), // EOF | 962 MockRead(ASYNC, 0, 0), // EOF |
| 963 }; | 963 }; |
| 964 | 964 |
| 965 scoped_ptr<OrderedSocketData> data( | 965 scoped_ptr<OrderedSocketData> data( |
| 966 new OrderedSocketData(reads, arraysize(reads), | 966 new OrderedSocketData(reads, arraysize(reads), |
| 967 writes, arraysize(writes))); | 967 writes, arraysize(writes))); |
| 968 scoped_ptr<OrderedSocketData> data_placeholder( | 968 scoped_ptr<OrderedSocketData> data_placeholder( |
| 969 new OrderedSocketData(NULL, 0, NULL, 0)); | 969 new OrderedSocketData(NULL, 0, NULL, 0)); |
| 970 | 970 |
| 971 BoundNetLog log; | 971 BoundNetLog log; |
| 972 TransactionHelperResult out; | 972 TransactionHelperResult out; |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1092 CreateMockRead(*fbody), | 1092 CreateMockRead(*fbody), |
| 1093 CreateMockRead(*resp2, 7), | 1093 CreateMockRead(*resp2, 7), |
| 1094 CreateMockRead(*body2), | 1094 CreateMockRead(*body2), |
| 1095 CreateMockRead(*fbody2), | 1095 CreateMockRead(*fbody2), |
| 1096 CreateMockRead(*resp4, 13), | 1096 CreateMockRead(*resp4, 13), |
| 1097 CreateMockRead(*fbody4), | 1097 CreateMockRead(*fbody4), |
| 1098 CreateMockRead(*resp3, 16), | 1098 CreateMockRead(*resp3, 16), |
| 1099 CreateMockRead(*body3), | 1099 CreateMockRead(*body3), |
| 1100 CreateMockRead(*fbody3), | 1100 CreateMockRead(*fbody3), |
| 1101 | 1101 |
| 1102 MockRead(true, 0, 0), // EOF | 1102 MockRead(ASYNC, 0, 0), // EOF |
| 1103 }; | 1103 }; |
| 1104 | 1104 |
| 1105 scoped_ptr<OrderedSocketData> data( | 1105 scoped_ptr<OrderedSocketData> data( |
| 1106 new OrderedSocketData(reads, arraysize(reads), | 1106 new OrderedSocketData(reads, arraysize(reads), |
| 1107 writes, arraysize(writes))); | 1107 writes, arraysize(writes))); |
| 1108 scoped_ptr<OrderedSocketData> data_placeholder( | 1108 scoped_ptr<OrderedSocketData> data_placeholder( |
| 1109 new OrderedSocketData(NULL, 0, NULL, 0)); | 1109 new OrderedSocketData(NULL, 0, NULL, 0)); |
| 1110 | 1110 |
| 1111 BoundNetLog log; | 1111 BoundNetLog log; |
| 1112 TransactionHelperResult out; | 1112 TransactionHelperResult out; |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1229 CreateMockWrite(*req2), | 1229 CreateMockWrite(*req2), |
| 1230 }; | 1230 }; |
| 1231 MockRead reads[] = { | 1231 MockRead reads[] = { |
| 1232 CreateMockRead(*settings_frame, 1), | 1232 CreateMockRead(*settings_frame, 1), |
| 1233 CreateMockRead(*resp), | 1233 CreateMockRead(*resp), |
| 1234 CreateMockRead(*body), | 1234 CreateMockRead(*body), |
| 1235 CreateMockRead(*fbody), | 1235 CreateMockRead(*fbody), |
| 1236 CreateMockRead(*resp2, 7), | 1236 CreateMockRead(*resp2, 7), |
| 1237 CreateMockRead(*body2), | 1237 CreateMockRead(*body2), |
| 1238 CreateMockRead(*fbody2), | 1238 CreateMockRead(*fbody2), |
| 1239 MockRead(true, 0, 0), // EOF | 1239 MockRead(ASYNC, 0, 0), // EOF |
| 1240 }; | 1240 }; |
| 1241 | 1241 |
| 1242 scoped_ptr<OrderedSocketData> data( | 1242 scoped_ptr<OrderedSocketData> data( |
| 1243 new OrderedSocketData(reads, arraysize(reads), | 1243 new OrderedSocketData(reads, arraysize(reads), |
| 1244 writes, arraysize(writes))); | 1244 writes, arraysize(writes))); |
| 1245 scoped_ptr<OrderedSocketData> data_placeholder( | 1245 scoped_ptr<OrderedSocketData> data_placeholder( |
| 1246 new OrderedSocketData(NULL, 0, NULL, 0)); | 1246 new OrderedSocketData(NULL, 0, NULL, 0)); |
| 1247 | 1247 |
| 1248 BoundNetLog log; | 1248 BoundNetLog log; |
| 1249 TransactionHelperResult out; | 1249 TransactionHelperResult out; |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1359 | 1359 |
| 1360 MockWrite writes[] = { CreateMockWrite(*req), | 1360 MockWrite writes[] = { CreateMockWrite(*req), |
| 1361 CreateMockWrite(*req2), | 1361 CreateMockWrite(*req2), |
| 1362 }; | 1362 }; |
| 1363 MockRead reads[] = { | 1363 MockRead reads[] = { |
| 1364 CreateMockRead(*settings_frame, 1), | 1364 CreateMockRead(*settings_frame, 1), |
| 1365 CreateMockRead(*resp), | 1365 CreateMockRead(*resp), |
| 1366 CreateMockRead(*body), | 1366 CreateMockRead(*body), |
| 1367 CreateMockRead(*fin_body), | 1367 CreateMockRead(*fin_body), |
| 1368 CreateMockRead(*resp2, 7), | 1368 CreateMockRead(*resp2, 7), |
| 1369 MockRead(true, ERR_CONNECTION_RESET, 0), // Abort! | 1369 MockRead(ASYNC, ERR_CONNECTION_RESET, 0), // Abort! |
| 1370 }; | 1370 }; |
| 1371 | 1371 |
| 1372 scoped_ptr<OrderedSocketData> data( | 1372 scoped_ptr<OrderedSocketData> data( |
| 1373 new OrderedSocketData(reads, arraysize(reads), | 1373 new OrderedSocketData(reads, arraysize(reads), |
| 1374 writes, arraysize(writes))); | 1374 writes, arraysize(writes))); |
| 1375 scoped_ptr<OrderedSocketData> data_placeholder( | 1375 scoped_ptr<OrderedSocketData> data_placeholder( |
| 1376 new OrderedSocketData(NULL, 0, NULL, 0)); | 1376 new OrderedSocketData(NULL, 0, NULL, 0)); |
| 1377 | 1377 |
| 1378 BoundNetLog log; | 1378 BoundNetLog log; |
| 1379 TransactionHelperResult out; | 1379 TransactionHelperResult out; |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1481 static const char* const kStandardGetHeaders[] = { | 1481 static const char* const kStandardGetHeaders[] = { |
| 1482 "status", "200", | 1482 "status", "200", |
| 1483 "version", "HTTP/1.1" | 1483 "version", "HTTP/1.1" |
| 1484 "content-length", "1234" | 1484 "content-length", "1234" |
| 1485 }; | 1485 }; |
| 1486 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyPacket(kSynReplyHeader, | 1486 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyPacket(kSynReplyHeader, |
| 1487 NULL, 0, kStandardGetHeaders, arraysize(kStandardGetHeaders) / 2)); | 1487 NULL, 0, kStandardGetHeaders, arraysize(kStandardGetHeaders) / 2)); |
| 1488 MockRead reads[] = { | 1488 MockRead reads[] = { |
| 1489 CreateMockRead(*resp), | 1489 CreateMockRead(*resp), |
| 1490 CreateMockRead(*body), | 1490 CreateMockRead(*body), |
| 1491 MockRead(true, 0, 0) // EOF | 1491 MockRead(ASYNC, 0, 0) // EOF |
| 1492 }; | 1492 }; |
| 1493 | 1493 |
| 1494 scoped_ptr<DelayedSocketData> data( | 1494 scoped_ptr<DelayedSocketData> data( |
| 1495 new DelayedSocketData(1, reads, arraysize(reads), | 1495 new DelayedSocketData(1, reads, arraysize(reads), |
| 1496 writes, arraysize(writes))); | 1496 writes, arraysize(writes))); |
| 1497 NormalSpdyTransactionHelper helper(request, | 1497 NormalSpdyTransactionHelper helper(request, |
| 1498 BoundNetLog(), GetParam()); | 1498 BoundNetLog(), GetParam()); |
| 1499 helper.RunToCompletion(data.get()); | 1499 helper.RunToCompletion(data.get()); |
| 1500 TransactionHelperResult out = helper.output(); | 1500 TransactionHelperResult out = helper.output(); |
| 1501 | 1501 |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1552 static const char* const kStandardGetHeaders[] = { | 1552 static const char* const kStandardGetHeaders[] = { |
| 1553 "status", "200", | 1553 "status", "200", |
| 1554 "version", "HTTP/1.1" | 1554 "version", "HTTP/1.1" |
| 1555 "content-length", "1234" | 1555 "content-length", "1234" |
| 1556 }; | 1556 }; |
| 1557 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyPacket(kSynReplyHeader, | 1557 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyPacket(kSynReplyHeader, |
| 1558 NULL, 0, kStandardGetHeaders, arraysize(kStandardGetHeaders) / 2)); | 1558 NULL, 0, kStandardGetHeaders, arraysize(kStandardGetHeaders) / 2)); |
| 1559 MockRead reads[] = { | 1559 MockRead reads[] = { |
| 1560 CreateMockRead(*resp), | 1560 CreateMockRead(*resp), |
| 1561 CreateMockRead(*body), | 1561 CreateMockRead(*body), |
| 1562 MockRead(true, 0, 0) // EOF | 1562 MockRead(ASYNC, 0, 0) // EOF |
| 1563 }; | 1563 }; |
| 1564 | 1564 |
| 1565 scoped_ptr<DelayedSocketData> data( | 1565 scoped_ptr<DelayedSocketData> data( |
| 1566 new DelayedSocketData(1, reads, arraysize(reads), | 1566 new DelayedSocketData(1, reads, arraysize(reads), |
| 1567 writes, arraysize(writes))); | 1567 writes, arraysize(writes))); |
| 1568 NormalSpdyTransactionHelper helper(request, | 1568 NormalSpdyTransactionHelper helper(request, |
| 1569 BoundNetLog(), GetParam()); | 1569 BoundNetLog(), GetParam()); |
| 1570 helper.RunToCompletion(data.get()); | 1570 helper.RunToCompletion(data.get()); |
| 1571 TransactionHelperResult out = helper.output(); | 1571 TransactionHelperResult out = helper.output(); |
| 1572 | 1572 |
| 1573 EXPECT_EQ(OK, out.rv); | 1573 EXPECT_EQ(OK, out.rv); |
| 1574 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); | 1574 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); |
| 1575 } | 1575 } |
| 1576 | 1576 |
| 1577 // Test that a simple POST works. | 1577 // Test that a simple POST works. |
| 1578 TEST_P(SpdyNetworkTransactionTest, Post) { | 1578 TEST_P(SpdyNetworkTransactionTest, Post) { |
| 1579 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyPost(kUploadDataSize, NULL, 0)); | 1579 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyPost(kUploadDataSize, NULL, 0)); |
| 1580 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); | 1580 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); |
| 1581 MockWrite writes[] = { | 1581 MockWrite writes[] = { |
| 1582 CreateMockWrite(*req), | 1582 CreateMockWrite(*req), |
| 1583 CreateMockWrite(*body), // POST upload frame | 1583 CreateMockWrite(*body), // POST upload frame |
| 1584 }; | 1584 }; |
| 1585 | 1585 |
| 1586 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyPostSynReply(NULL, 0)); | 1586 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyPostSynReply(NULL, 0)); |
| 1587 MockRead reads[] = { | 1587 MockRead reads[] = { |
| 1588 CreateMockRead(*resp), | 1588 CreateMockRead(*resp), |
| 1589 CreateMockRead(*body), | 1589 CreateMockRead(*body), |
| 1590 MockRead(true, 0, 0) // EOF | 1590 MockRead(ASYNC, 0, 0) // EOF |
| 1591 }; | 1591 }; |
| 1592 | 1592 |
| 1593 scoped_ptr<DelayedSocketData> data( | 1593 scoped_ptr<DelayedSocketData> data( |
| 1594 new DelayedSocketData(2, reads, arraysize(reads), | 1594 new DelayedSocketData(2, reads, arraysize(reads), |
| 1595 writes, arraysize(writes))); | 1595 writes, arraysize(writes))); |
| 1596 NormalSpdyTransactionHelper helper(CreatePostRequest(), | 1596 NormalSpdyTransactionHelper helper(CreatePostRequest(), |
| 1597 BoundNetLog(), GetParam()); | 1597 BoundNetLog(), GetParam()); |
| 1598 helper.RunToCompletion(data.get()); | 1598 helper.RunToCompletion(data.get()); |
| 1599 TransactionHelperResult out = helper.output(); | 1599 TransactionHelperResult out = helper.output(); |
| 1600 EXPECT_EQ(OK, out.rv); | 1600 EXPECT_EQ(OK, out.rv); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 1612 CreateMockWrite(*req), | 1612 CreateMockWrite(*req), |
| 1613 CreateMockWrite(*chunk1), | 1613 CreateMockWrite(*chunk1), |
| 1614 CreateMockWrite(*chunk2), | 1614 CreateMockWrite(*chunk2), |
| 1615 }; | 1615 }; |
| 1616 | 1616 |
| 1617 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyPostSynReply(NULL, 0)); | 1617 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyPostSynReply(NULL, 0)); |
| 1618 MockRead reads[] = { | 1618 MockRead reads[] = { |
| 1619 CreateMockRead(*resp), | 1619 CreateMockRead(*resp), |
| 1620 CreateMockRead(*chunk1), | 1620 CreateMockRead(*chunk1), |
| 1621 CreateMockRead(*chunk2), | 1621 CreateMockRead(*chunk2), |
| 1622 MockRead(true, 0, 0) // EOF | 1622 MockRead(ASYNC, 0, 0) // EOF |
| 1623 }; | 1623 }; |
| 1624 | 1624 |
| 1625 scoped_ptr<DelayedSocketData> data( | 1625 scoped_ptr<DelayedSocketData> data( |
| 1626 new DelayedSocketData(2, reads, arraysize(reads), | 1626 new DelayedSocketData(2, reads, arraysize(reads), |
| 1627 writes, arraysize(writes))); | 1627 writes, arraysize(writes))); |
| 1628 NormalSpdyTransactionHelper helper(CreateChunkedPostRequest(), | 1628 NormalSpdyTransactionHelper helper(CreateChunkedPostRequest(), |
| 1629 BoundNetLog(), GetParam()); | 1629 BoundNetLog(), GetParam()); |
| 1630 helper.RunToCompletion(data.get()); | 1630 helper.RunToCompletion(data.get()); |
| 1631 TransactionHelperResult out = helper.output(); | 1631 TransactionHelperResult out = helper.output(); |
| 1632 EXPECT_EQ(OK, out.rv); | 1632 EXPECT_EQ(OK, out.rv); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 1650 req->set_flags(spdy::CONTROL_FLAG_FIN); | 1650 req->set_flags(spdy::CONTROL_FLAG_FIN); |
| 1651 MockWrite writes[] = { | 1651 MockWrite writes[] = { |
| 1652 CreateMockWrite(*req), | 1652 CreateMockWrite(*req), |
| 1653 }; | 1653 }; |
| 1654 | 1654 |
| 1655 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyPostSynReply(NULL, 0)); | 1655 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyPostSynReply(NULL, 0)); |
| 1656 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); | 1656 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); |
| 1657 MockRead reads[] = { | 1657 MockRead reads[] = { |
| 1658 CreateMockRead(*resp), | 1658 CreateMockRead(*resp), |
| 1659 CreateMockRead(*body), | 1659 CreateMockRead(*body), |
| 1660 MockRead(true, 0, 0) // EOF | 1660 MockRead(ASYNC, 0, 0) // EOF |
| 1661 }; | 1661 }; |
| 1662 | 1662 |
| 1663 scoped_ptr<DelayedSocketData> data( | 1663 scoped_ptr<DelayedSocketData> data( |
| 1664 new DelayedSocketData(1, reads, arraysize(reads), | 1664 new DelayedSocketData(1, reads, arraysize(reads), |
| 1665 writes, arraysize(writes))); | 1665 writes, arraysize(writes))); |
| 1666 | 1666 |
| 1667 NormalSpdyTransactionHelper helper(request, | 1667 NormalSpdyTransactionHelper helper(request, |
| 1668 BoundNetLog(), GetParam()); | 1668 BoundNetLog(), GetParam()); |
| 1669 helper.RunToCompletion(data.get()); | 1669 helper.RunToCompletion(data.get()); |
| 1670 TransactionHelperResult out = helper.output(); | 1670 TransactionHelperResult out = helper.output(); |
| (...skipping 26 matching lines...) Expand all Loading... |
| 1697 req->set_flags(spdy::CONTROL_FLAG_FIN); | 1697 req->set_flags(spdy::CONTROL_FLAG_FIN); |
| 1698 MockWrite writes[] = { | 1698 MockWrite writes[] = { |
| 1699 CreateMockWrite(*req), | 1699 CreateMockWrite(*req), |
| 1700 }; | 1700 }; |
| 1701 | 1701 |
| 1702 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyPostSynReply(NULL, 0)); | 1702 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyPostSynReply(NULL, 0)); |
| 1703 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); | 1703 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); |
| 1704 MockRead reads[] = { | 1704 MockRead reads[] = { |
| 1705 CreateMockRead(*resp), | 1705 CreateMockRead(*resp), |
| 1706 CreateMockRead(*body), | 1706 CreateMockRead(*body), |
| 1707 MockRead(true, 0, 0) // EOF | 1707 MockRead(ASYNC, 0, 0) // EOF |
| 1708 }; | 1708 }; |
| 1709 | 1709 |
| 1710 scoped_ptr<DelayedSocketData> data( | 1710 scoped_ptr<DelayedSocketData> data( |
| 1711 new DelayedSocketData(1, reads, arraysize(reads), | 1711 new DelayedSocketData(1, reads, arraysize(reads), |
| 1712 writes, arraysize(writes))); | 1712 writes, arraysize(writes))); |
| 1713 | 1713 |
| 1714 NormalSpdyTransactionHelper helper(request, | 1714 NormalSpdyTransactionHelper helper(request, |
| 1715 BoundNetLog(), GetParam()); | 1715 BoundNetLog(), GetParam()); |
| 1716 helper.RunToCompletion(data.get()); | 1716 helper.RunToCompletion(data.get()); |
| 1717 TransactionHelperResult out = helper.output(); | 1717 TransactionHelperResult out = helper.output(); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 1736 scoped_ptr<UploadDataStream> stream( | 1736 scoped_ptr<UploadDataStream> stream( |
| 1737 new UploadDataStream(request.upload_data)); | 1737 new UploadDataStream(request.upload_data)); |
| 1738 ASSERT_EQ(OK, stream->Init()); | 1738 ASSERT_EQ(OK, stream->Init()); |
| 1739 ASSERT_EQ(request.upload_data->GetContentLengthSync(), | 1739 ASSERT_EQ(request.upload_data->GetContentLengthSync(), |
| 1740 stream->size()); | 1740 stream->size()); |
| 1741 scoped_ptr<spdy::SpdyFrame> stream_reply(ConstructSpdyPostSynReply(NULL, 0)); | 1741 scoped_ptr<spdy::SpdyFrame> stream_reply(ConstructSpdyPostSynReply(NULL, 0)); |
| 1742 scoped_ptr<spdy::SpdyFrame> stream_body(ConstructSpdyBodyFrame(1, true)); | 1742 scoped_ptr<spdy::SpdyFrame> stream_body(ConstructSpdyBodyFrame(1, true)); |
| 1743 MockRead reads[] = { | 1743 MockRead reads[] = { |
| 1744 CreateMockRead(*stream_reply, 2), | 1744 CreateMockRead(*stream_reply, 2), |
| 1745 CreateMockRead(*stream_body, 3), | 1745 CreateMockRead(*stream_body, 3), |
| 1746 MockRead(false, 0, 0) // EOF | 1746 MockRead(SYNCHRONOUS, 0, 0) // EOF |
| 1747 }; | 1747 }; |
| 1748 | 1748 |
| 1749 scoped_ptr<DelayedSocketData> data( | 1749 scoped_ptr<DelayedSocketData> data( |
| 1750 new DelayedSocketData(0, reads, arraysize(reads), NULL, 0)); | 1750 new DelayedSocketData(0, reads, arraysize(reads), NULL, 0)); |
| 1751 NormalSpdyTransactionHelper helper(request, | 1751 NormalSpdyTransactionHelper helper(request, |
| 1752 BoundNetLog(), GetParam()); | 1752 BoundNetLog(), GetParam()); |
| 1753 helper.RunPreTestSetup(); | 1753 helper.RunPreTestSetup(); |
| 1754 helper.AddData(data.get()); | 1754 helper.AddData(data.get()); |
| 1755 helper.RunDefaultTest(); | 1755 helper.RunDefaultTest(); |
| 1756 helper.VerifyDataConsumed(); | 1756 helper.VerifyDataConsumed(); |
| 1757 | 1757 |
| 1758 TransactionHelperResult out = helper.output(); | 1758 TransactionHelperResult out = helper.output(); |
| 1759 EXPECT_EQ(ERR_SYN_REPLY_NOT_RECEIVED, out.rv); | 1759 EXPECT_EQ(ERR_SYN_REPLY_NOT_RECEIVED, out.rv); |
| 1760 } | 1760 } |
| 1761 | 1761 |
| 1762 // The client upon cancellation tries to send a RST_STREAM frame. The mock | 1762 // The client upon cancellation tries to send a RST_STREAM frame. The mock |
| 1763 // socket causes the TCP write to return zero. This test checks that the client | 1763 // socket causes the TCP write to return zero. This test checks that the client |
| 1764 // tries to queue up the RST_STREAM frame again. | 1764 // tries to queue up the RST_STREAM frame again. |
| 1765 TEST_P(SpdyNetworkTransactionTest, SocketWriteReturnsZero) { | 1765 TEST_P(SpdyNetworkTransactionTest, SocketWriteReturnsZero) { |
| 1766 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); | 1766 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); |
| 1767 scoped_ptr<spdy::SpdyFrame> rst( | 1767 scoped_ptr<spdy::SpdyFrame> rst( |
| 1768 ConstructSpdyRstStream(1, spdy::CANCEL)); | 1768 ConstructSpdyRstStream(1, spdy::CANCEL)); |
| 1769 MockWrite writes[] = { | 1769 MockWrite writes[] = { |
| 1770 CreateMockWrite(*req.get(), 0, false), | 1770 CreateMockWrite(*req.get(), 0, SYNCHRONOUS), |
| 1771 MockWrite(false, 0, 0, 2), | 1771 MockWrite(SYNCHRONOUS, 0, 0, 2), |
| 1772 CreateMockWrite(*rst.get(), 3, false), | 1772 CreateMockWrite(*rst.get(), 3, SYNCHRONOUS), |
| 1773 }; | 1773 }; |
| 1774 | 1774 |
| 1775 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); | 1775 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); |
| 1776 MockRead reads[] = { | 1776 MockRead reads[] = { |
| 1777 CreateMockRead(*resp.get(), 1, true), | 1777 CreateMockRead(*resp.get(), 1, ASYNC), |
| 1778 MockRead(true, 0, 0, 4) // EOF | 1778 MockRead(ASYNC, 0, 0, 4) // EOF |
| 1779 }; | 1779 }; |
| 1780 | 1780 |
| 1781 scoped_refptr<DeterministicSocketData> data( | 1781 scoped_refptr<DeterministicSocketData> data( |
| 1782 new DeterministicSocketData(reads, arraysize(reads), | 1782 new DeterministicSocketData(reads, arraysize(reads), |
| 1783 writes, arraysize(writes))); | 1783 writes, arraysize(writes))); |
| 1784 NormalSpdyTransactionHelper helper(CreateGetRequest(), | 1784 NormalSpdyTransactionHelper helper(CreateGetRequest(), |
| 1785 BoundNetLog(), GetParam()); | 1785 BoundNetLog(), GetParam()); |
| 1786 helper.SetDeterministic(); | 1786 helper.SetDeterministic(); |
| 1787 helper.RunPreTestSetup(); | 1787 helper.RunPreTestSetup(); |
| 1788 helper.AddDeterministicData(data.get()); | 1788 helper.AddDeterministicData(data.get()); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 1800 data->Run(); | 1800 data->Run(); |
| 1801 | 1801 |
| 1802 helper.VerifyDataConsumed(); | 1802 helper.VerifyDataConsumed(); |
| 1803 } | 1803 } |
| 1804 | 1804 |
| 1805 // Test that the transaction doesn't crash when we don't have a reply. | 1805 // Test that the transaction doesn't crash when we don't have a reply. |
| 1806 TEST_P(SpdyNetworkTransactionTest, ResponseWithoutSynReply) { | 1806 TEST_P(SpdyNetworkTransactionTest, ResponseWithoutSynReply) { |
| 1807 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); | 1807 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); |
| 1808 MockRead reads[] = { | 1808 MockRead reads[] = { |
| 1809 CreateMockRead(*body), | 1809 CreateMockRead(*body), |
| 1810 MockRead(true, 0, 0) // EOF | 1810 MockRead(ASYNC, 0, 0) // EOF |
| 1811 }; | 1811 }; |
| 1812 | 1812 |
| 1813 scoped_ptr<DelayedSocketData> data( | 1813 scoped_ptr<DelayedSocketData> data( |
| 1814 new DelayedSocketData(1, reads, arraysize(reads), NULL, 0)); | 1814 new DelayedSocketData(1, reads, arraysize(reads), NULL, 0)); |
| 1815 NormalSpdyTransactionHelper helper(CreateGetRequest(), | 1815 NormalSpdyTransactionHelper helper(CreateGetRequest(), |
| 1816 BoundNetLog(), GetParam()); | 1816 BoundNetLog(), GetParam()); |
| 1817 helper.RunToCompletion(data.get()); | 1817 helper.RunToCompletion(data.get()); |
| 1818 TransactionHelperResult out = helper.output(); | 1818 TransactionHelperResult out = helper.output(); |
| 1819 EXPECT_EQ(ERR_SYN_REPLY_NOT_RECEIVED, out.rv); | 1819 EXPECT_EQ(ERR_SYN_REPLY_NOT_RECEIVED, out.rv); |
| 1820 } | 1820 } |
| 1821 | 1821 |
| 1822 // Test that the transaction doesn't crash when we get two replies on the same | 1822 // Test that the transaction doesn't crash when we get two replies on the same |
| 1823 // stream ID. See http://crbug.com/45639. | 1823 // stream ID. See http://crbug.com/45639. |
| 1824 TEST_P(SpdyNetworkTransactionTest, ResponseWithTwoSynReplies) { | 1824 TEST_P(SpdyNetworkTransactionTest, ResponseWithTwoSynReplies) { |
| 1825 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); | 1825 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); |
| 1826 MockWrite writes[] = { CreateMockWrite(*req) }; | 1826 MockWrite writes[] = { CreateMockWrite(*req) }; |
| 1827 | 1827 |
| 1828 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); | 1828 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); |
| 1829 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); | 1829 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); |
| 1830 MockRead reads[] = { | 1830 MockRead reads[] = { |
| 1831 CreateMockRead(*resp), | 1831 CreateMockRead(*resp), |
| 1832 CreateMockRead(*resp), | 1832 CreateMockRead(*resp), |
| 1833 CreateMockRead(*body), | 1833 CreateMockRead(*body), |
| 1834 MockRead(true, 0, 0) // EOF | 1834 MockRead(ASYNC, 0, 0) // EOF |
| 1835 }; | 1835 }; |
| 1836 | 1836 |
| 1837 scoped_ptr<DelayedSocketData> data( | 1837 scoped_ptr<DelayedSocketData> data( |
| 1838 new DelayedSocketData(1, reads, arraysize(reads), | 1838 new DelayedSocketData(1, reads, arraysize(reads), |
| 1839 writes, arraysize(writes))); | 1839 writes, arraysize(writes))); |
| 1840 | 1840 |
| 1841 NormalSpdyTransactionHelper helper(CreateGetRequest(), | 1841 NormalSpdyTransactionHelper helper(CreateGetRequest(), |
| 1842 BoundNetLog(), GetParam()); | 1842 BoundNetLog(), GetParam()); |
| 1843 helper.RunPreTestSetup(); | 1843 helper.RunPreTestSetup(); |
| 1844 helper.AddData(data.get()); | 1844 helper.AddData(data.get()); |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1912 MockRead reads[] = { | 1912 MockRead reads[] = { |
| 1913 CreateMockRead(*window_update_dummy), | 1913 CreateMockRead(*window_update_dummy), |
| 1914 CreateMockRead(*window_update_dummy), | 1914 CreateMockRead(*window_update_dummy), |
| 1915 CreateMockRead(*window_update_dummy), | 1915 CreateMockRead(*window_update_dummy), |
| 1916 CreateMockRead(*window_update), // Four updates, therefore window | 1916 CreateMockRead(*window_update), // Four updates, therefore window |
| 1917 CreateMockRead(*window_update), // size should increase by | 1917 CreateMockRead(*window_update), // size should increase by |
| 1918 CreateMockRead(*window_update), // kDeltaWindowSize * 4 | 1918 CreateMockRead(*window_update), // kDeltaWindowSize * 4 |
| 1919 CreateMockRead(*window_update), | 1919 CreateMockRead(*window_update), |
| 1920 CreateMockRead(*resp), | 1920 CreateMockRead(*resp), |
| 1921 CreateMockRead(*body_end), | 1921 CreateMockRead(*body_end), |
| 1922 MockRead(true, 0, 0) // EOF | 1922 MockRead(ASYNC, 0, 0) // EOF |
| 1923 }; | 1923 }; |
| 1924 | 1924 |
| 1925 scoped_ptr<DelayedSocketData> data( | 1925 scoped_ptr<DelayedSocketData> data( |
| 1926 new DelayedSocketData(0, reads, arraysize(reads), | 1926 new DelayedSocketData(0, reads, arraysize(reads), |
| 1927 writes, arraysize(writes))); | 1927 writes, arraysize(writes))); |
| 1928 | 1928 |
| 1929 // Setup the request | 1929 // Setup the request |
| 1930 HttpRequestInfo request; | 1930 HttpRequestInfo request; |
| 1931 request.method = "POST"; | 1931 request.method = "POST"; |
| 1932 request.url = GURL(kDefaultURL); | 1932 request.url = GURL(kDefaultURL); |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1975 | 1975 |
| 1976 scoped_ptr<spdy::SpdyFrame> resp( | 1976 scoped_ptr<spdy::SpdyFrame> resp( |
| 1977 ConstructSpdyGetSynReply(NULL, 0, 1)); | 1977 ConstructSpdyGetSynReply(NULL, 0, 1)); |
| 1978 scoped_ptr<spdy::SpdyFrame> body_no_fin( | 1978 scoped_ptr<spdy::SpdyFrame> body_no_fin( |
| 1979 ConstructSpdyBodyFrame(1, false)); | 1979 ConstructSpdyBodyFrame(1, false)); |
| 1980 scoped_ptr<spdy::SpdyFrame> body_fin( | 1980 scoped_ptr<spdy::SpdyFrame> body_fin( |
| 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(ASYNC, 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(ASYNC, ERR_IO_PENDING, 0), // Force a pause |
| 1988 MockRead(true, 0, 0) // EOF | 1988 MockRead(ASYNC, 0, 0) // EOF |
| 1989 }; | 1989 }; |
| 1990 | 1990 |
| 1991 scoped_ptr<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(); |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2075 scoped_ptr<spdy::SpdyFrame> window_update2( | 2075 scoped_ptr<spdy::SpdyFrame> window_update2( |
| 2076 ConstructSpdyWindowUpdate(2, kDeltaWindowSize)); | 2076 ConstructSpdyWindowUpdate(2, kDeltaWindowSize)); |
| 2077 scoped_ptr<spdy::SpdyFrame> reply(ConstructSpdyPostSynReply(NULL, 0)); | 2077 scoped_ptr<spdy::SpdyFrame> reply(ConstructSpdyPostSynReply(NULL, 0)); |
| 2078 | 2078 |
| 2079 MockRead reads[] = { | 2079 MockRead reads[] = { |
| 2080 CreateMockRead(*window_update2), | 2080 CreateMockRead(*window_update2), |
| 2081 CreateMockRead(*window_update2), | 2081 CreateMockRead(*window_update2), |
| 2082 CreateMockRead(*window_update), | 2082 CreateMockRead(*window_update), |
| 2083 CreateMockRead(*window_update), | 2083 CreateMockRead(*window_update), |
| 2084 CreateMockRead(*window_update), | 2084 CreateMockRead(*window_update), |
| 2085 MockRead(true, ERR_IO_PENDING, 0), // Wait for the RST to be written. | 2085 MockRead(ASYNC, ERR_IO_PENDING, 0), // Wait for the RST to be written. |
| 2086 MockRead(true, 0, 0) // EOF | 2086 MockRead(ASYNC, 0, 0) // EOF |
| 2087 }; | 2087 }; |
| 2088 | 2088 |
| 2089 scoped_ptr<DelayedSocketData> data( | 2089 scoped_ptr<DelayedSocketData> data( |
| 2090 new DelayedSocketData(0, reads, arraysize(reads), | 2090 new DelayedSocketData(0, reads, arraysize(reads), |
| 2091 writes, arraysize(writes))); | 2091 writes, arraysize(writes))); |
| 2092 | 2092 |
| 2093 // Setup the request | 2093 // Setup the request |
| 2094 HttpRequestInfo request; | 2094 HttpRequestInfo request; |
| 2095 request.method = "POST"; | 2095 request.method = "POST"; |
| 2096 request.url = GURL("http://www.google.com/"); | 2096 request.url = GURL("http://www.google.com/"); |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2182 // data. | 2182 // data. |
| 2183 scoped_ptr<spdy::SpdyFrame> window_update( | 2183 scoped_ptr<spdy::SpdyFrame> window_update( |
| 2184 ConstructSpdyWindowUpdate(1, kUploadDataSize)); | 2184 ConstructSpdyWindowUpdate(1, kUploadDataSize)); |
| 2185 scoped_ptr<spdy::SpdyFrame> reply(ConstructSpdyPostSynReply(NULL, 0)); | 2185 scoped_ptr<spdy::SpdyFrame> reply(ConstructSpdyPostSynReply(NULL, 0)); |
| 2186 MockRead reads[] = { | 2186 MockRead reads[] = { |
| 2187 CreateMockRead(*window_update), | 2187 CreateMockRead(*window_update), |
| 2188 CreateMockRead(*window_update), | 2188 CreateMockRead(*window_update), |
| 2189 CreateMockRead(*reply), | 2189 CreateMockRead(*reply), |
| 2190 CreateMockRead(*body2), | 2190 CreateMockRead(*body2), |
| 2191 CreateMockRead(*body3), | 2191 CreateMockRead(*body3), |
| 2192 MockRead(true, 0, 0) // EOF | 2192 MockRead(ASYNC, 0, 0) // EOF |
| 2193 }; | 2193 }; |
| 2194 | 2194 |
| 2195 // Force all writes to happen before any read, last write will not | 2195 // Force all writes to happen before any read, last write will not |
| 2196 // actually queue a frame, due to window size being 0. | 2196 // actually queue a frame, due to window size being 0. |
| 2197 scoped_ptr<DelayedSocketData> data( | 2197 scoped_ptr<DelayedSocketData> data( |
| 2198 new DelayedSocketData(nwrites, reads, arraysize(reads), | 2198 new DelayedSocketData(nwrites, reads, arraysize(reads), |
| 2199 writes.get(), nwrites)); | 2199 writes.get(), nwrites)); |
| 2200 | 2200 |
| 2201 HttpRequestInfo request; | 2201 HttpRequestInfo request; |
| 2202 request.method = "POST"; | 2202 request.method = "POST"; |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2244 CreateMockWrite(*req), | 2244 CreateMockWrite(*req), |
| 2245 }; | 2245 }; |
| 2246 | 2246 |
| 2247 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); | 2247 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); |
| 2248 MockRead reads[] = { | 2248 MockRead reads[] = { |
| 2249 CreateMockRead(*resp), | 2249 CreateMockRead(*resp), |
| 2250 // This following read isn't used by the test, except during the | 2250 // This following read isn't used by the test, except during the |
| 2251 // RunAllPending() call at the end since the SpdySession survives the | 2251 // RunAllPending() call at the end since the SpdySession survives the |
| 2252 // HttpNetworkTransaction and still tries to continue Read()'ing. Any | 2252 // HttpNetworkTransaction and still tries to continue Read()'ing. Any |
| 2253 // MockRead will do here. | 2253 // MockRead will do here. |
| 2254 MockRead(true, 0, 0) // EOF | 2254 MockRead(ASYNC, 0, 0) // EOF |
| 2255 }; | 2255 }; |
| 2256 | 2256 |
| 2257 StaticSocketDataProvider data(reads, arraysize(reads), | 2257 StaticSocketDataProvider data(reads, arraysize(reads), |
| 2258 writes, arraysize(writes)); | 2258 writes, arraysize(writes)); |
| 2259 | 2259 |
| 2260 NormalSpdyTransactionHelper helper(CreateGetRequest(), | 2260 NormalSpdyTransactionHelper helper(CreateGetRequest(), |
| 2261 BoundNetLog(), GetParam()); | 2261 BoundNetLog(), GetParam()); |
| 2262 helper.RunPreTestSetup(); | 2262 helper.RunPreTestSetup(); |
| 2263 helper.AddData(&data); | 2263 helper.AddData(&data); |
| 2264 HttpNetworkTransaction* trans = helper.trans(); | 2264 HttpNetworkTransaction* trans = helper.trans(); |
| 2265 | 2265 |
| 2266 TestCompletionCallback callback; | 2266 TestCompletionCallback callback; |
| 2267 int rv = trans->Start( | 2267 int rv = trans->Start( |
| 2268 &CreateGetRequest(), callback.callback(), BoundNetLog()); | 2268 &CreateGetRequest(), callback.callback(), BoundNetLog()); |
| 2269 EXPECT_EQ(ERR_IO_PENDING, rv); | 2269 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 2270 helper.ResetTrans(); // Cancel the transaction. | 2270 helper.ResetTrans(); // Cancel the transaction. |
| 2271 | 2271 |
| 2272 // Flush the MessageLoop while the SpdySessionDependencies (in particular, the | 2272 // Flush the MessageLoop while the SpdySessionDependencies (in particular, the |
| 2273 // MockClientSocketFactory) are still alive. | 2273 // MockClientSocketFactory) are still alive. |
| 2274 MessageLoop::current()->RunAllPending(); | 2274 MessageLoop::current()->RunAllPending(); |
| 2275 helper.VerifyDataNotConsumed(); | 2275 helper.VerifyDataNotConsumed(); |
| 2276 } | 2276 } |
| 2277 | 2277 |
| 2278 // Verify that the client sends a Rst Frame upon cancelling the stream. | 2278 // Verify that the client sends a Rst Frame upon cancelling the stream. |
| 2279 TEST_P(SpdyNetworkTransactionTest, CancelledTransactionSendRst) { | 2279 TEST_P(SpdyNetworkTransactionTest, CancelledTransactionSendRst) { |
| 2280 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); | 2280 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); |
| 2281 scoped_ptr<spdy::SpdyFrame> rst( | 2281 scoped_ptr<spdy::SpdyFrame> rst( |
| 2282 ConstructSpdyRstStream(1, spdy::CANCEL)); | 2282 ConstructSpdyRstStream(1, spdy::CANCEL)); |
| 2283 MockWrite writes[] = { | 2283 MockWrite writes[] = { |
| 2284 CreateMockWrite(*req, 0, false), | 2284 CreateMockWrite(*req, 0, SYNCHRONOUS), |
| 2285 CreateMockWrite(*rst, 2, false), | 2285 CreateMockWrite(*rst, 2, SYNCHRONOUS), |
| 2286 }; | 2286 }; |
| 2287 | 2287 |
| 2288 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); | 2288 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); |
| 2289 MockRead reads[] = { | 2289 MockRead reads[] = { |
| 2290 CreateMockRead(*resp, 1, true), | 2290 CreateMockRead(*resp, 1, ASYNC), |
| 2291 MockRead(true, 0, 0, 3) // EOF | 2291 MockRead(ASYNC, 0, 0, 3) // EOF |
| 2292 }; | 2292 }; |
| 2293 | 2293 |
| 2294 scoped_refptr<DeterministicSocketData> data( | 2294 scoped_refptr<DeterministicSocketData> data( |
| 2295 new DeterministicSocketData(reads, arraysize(reads), | 2295 new DeterministicSocketData(reads, arraysize(reads), |
| 2296 writes, arraysize(writes))); | 2296 writes, arraysize(writes))); |
| 2297 | 2297 |
| 2298 NormalSpdyTransactionHelper helper(CreateGetRequest(), | 2298 NormalSpdyTransactionHelper helper(CreateGetRequest(), |
| 2299 BoundNetLog(), | 2299 BoundNetLog(), |
| 2300 GetParam()); | 2300 GetParam()); |
| 2301 helper.SetDeterministic(); | 2301 helper.SetDeterministic(); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 2331 // session, and calls the read callback with the incomplete data. | 2331 // session, and calls the read callback with the incomplete data. |
| 2332 const uint8 kGetBodyFrame2[] = { | 2332 const uint8 kGetBodyFrame2[] = { |
| 2333 0x00, 0x00, 0x00, 0x01, | 2333 0x00, 0x00, 0x00, 0x01, |
| 2334 0x01, 0x00, 0x00, 0x07, | 2334 0x01, 0x00, 0x00, 0x07, |
| 2335 'h', 'e', 'l', 'l', 'o', '!', | 2335 'h', 'e', 'l', 'l', 'o', '!', |
| 2336 }; | 2336 }; |
| 2337 | 2337 |
| 2338 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); | 2338 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); |
| 2339 MockRead reads[] = { | 2339 MockRead reads[] = { |
| 2340 CreateMockRead(*resp, 2), | 2340 CreateMockRead(*resp, 2), |
| 2341 MockRead(true, ERR_IO_PENDING, 3), // Force a pause | 2341 MockRead(ASYNC, ERR_IO_PENDING, 3), // Force a pause |
| 2342 MockRead(true, reinterpret_cast<const char*>(kGetBodyFrame2), | 2342 MockRead(ASYNC, reinterpret_cast<const char*>(kGetBodyFrame2), |
| 2343 arraysize(kGetBodyFrame2), 4), | 2343 arraysize(kGetBodyFrame2), 4), |
| 2344 MockRead(true, ERR_IO_PENDING, 5), // Force a pause | 2344 MockRead(ASYNC, ERR_IO_PENDING, 5), // Force a pause |
| 2345 MockRead(true, 0, 0, 6), // EOF | 2345 MockRead(ASYNC, 0, 0, 6), // EOF |
| 2346 }; | 2346 }; |
| 2347 MockRead reads2[] = { | 2347 MockRead reads2[] = { |
| 2348 CreateMockRead(*resp, 2), | 2348 CreateMockRead(*resp, 2), |
| 2349 MockRead(true, 0, 0, 3), // EOF | 2349 MockRead(ASYNC, 0, 0, 3), // EOF |
| 2350 }; | 2350 }; |
| 2351 | 2351 |
| 2352 scoped_ptr<OrderedSocketData> data( | 2352 scoped_ptr<OrderedSocketData> data( |
| 2353 new OrderedSocketData(reads, arraysize(reads), | 2353 new OrderedSocketData(reads, arraysize(reads), |
| 2354 writes, arraysize(writes))); | 2354 writes, arraysize(writes))); |
| 2355 scoped_ptr<DelayedSocketData> data2( | 2355 scoped_ptr<DelayedSocketData> data2( |
| 2356 new DelayedSocketData(1, reads2, arraysize(reads2), | 2356 new DelayedSocketData(1, reads2, arraysize(reads2), |
| 2357 writes2, arraysize(writes2))); | 2357 writes2, arraysize(writes2))); |
| 2358 | 2358 |
| 2359 NormalSpdyTransactionHelper helper(CreateGetRequest(), | 2359 NormalSpdyTransactionHelper helper(CreateGetRequest(), |
| (...skipping 26 matching lines...) Expand all Loading... |
| 2386 // transaction. Failures will usually be valgrind errors. See | 2386 // transaction. Failures will usually be valgrind errors. See |
| 2387 // http://crbug.com/46925 | 2387 // http://crbug.com/46925 |
| 2388 TEST_P(SpdyNetworkTransactionTest, DeleteSessionOnReadCallback) { | 2388 TEST_P(SpdyNetworkTransactionTest, DeleteSessionOnReadCallback) { |
| 2389 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); | 2389 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); |
| 2390 MockWrite writes[] = { CreateMockWrite(*req) }; | 2390 MockWrite writes[] = { CreateMockWrite(*req) }; |
| 2391 | 2391 |
| 2392 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); | 2392 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); |
| 2393 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); | 2393 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); |
| 2394 MockRead reads[] = { | 2394 MockRead reads[] = { |
| 2395 CreateMockRead(*resp.get(), 2), | 2395 CreateMockRead(*resp.get(), 2), |
| 2396 MockRead(true, ERR_IO_PENDING, 3), // Force a pause | 2396 MockRead(ASYNC, ERR_IO_PENDING, 3), // Force a pause |
| 2397 CreateMockRead(*body.get(), 4), | 2397 CreateMockRead(*body.get(), 4), |
| 2398 MockRead(true, 0, 0, 5), // EOF | 2398 MockRead(ASYNC, 0, 0, 5), // EOF |
| 2399 }; | 2399 }; |
| 2400 | 2400 |
| 2401 scoped_ptr<OrderedSocketData> data( | 2401 scoped_ptr<OrderedSocketData> data( |
| 2402 new OrderedSocketData(reads, arraysize(reads), | 2402 new OrderedSocketData(reads, arraysize(reads), |
| 2403 writes, arraysize(writes))); | 2403 writes, arraysize(writes))); |
| 2404 | 2404 |
| 2405 NormalSpdyTransactionHelper helper(CreateGetRequest(), | 2405 NormalSpdyTransactionHelper helper(CreateGetRequest(), |
| 2406 BoundNetLog(), GetParam()); | 2406 BoundNetLog(), GetParam()); |
| 2407 helper.RunPreTestSetup(); | 2407 helper.RunPreTestSetup(); |
| 2408 helper.AddData(data.get()); | 2408 helper.AddData(data.get()); |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2473 kStandardGetHeaders, arraysize(kStandardGetHeaders) / 2)); | 2473 kStandardGetHeaders, arraysize(kStandardGetHeaders) / 2)); |
| 2474 scoped_ptr<spdy::SpdyFrame> req2(ConstructSpdyPacket( | 2474 scoped_ptr<spdy::SpdyFrame> req2(ConstructSpdyPacket( |
| 2475 kSynStartHeader, kExtraHeaders, arraysize(kExtraHeaders) / 2, | 2475 kSynStartHeader, kExtraHeaders, arraysize(kExtraHeaders) / 2, |
| 2476 kStandardGetHeaders2, arraysize(kStandardGetHeaders2) / 2)); | 2476 kStandardGetHeaders2, arraysize(kStandardGetHeaders2) / 2)); |
| 2477 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReplyRedirect(1)); | 2477 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReplyRedirect(1)); |
| 2478 MockWrite writes[] = { | 2478 MockWrite writes[] = { |
| 2479 CreateMockWrite(*req, 1), | 2479 CreateMockWrite(*req, 1), |
| 2480 }; | 2480 }; |
| 2481 MockRead reads[] = { | 2481 MockRead reads[] = { |
| 2482 CreateMockRead(*resp, 2), | 2482 CreateMockRead(*resp, 2), |
| 2483 MockRead(true, 0, 0, 3) // EOF | 2483 MockRead(ASYNC, 0, 0, 3) // EOF |
| 2484 }; | 2484 }; |
| 2485 | 2485 |
| 2486 // Setup writes/reads to www.foo.com | 2486 // Setup writes/reads to www.foo.com |
| 2487 scoped_ptr<spdy::SpdyFrame> resp2(ConstructSpdyGetSynReply(NULL, 0, 1)); | 2487 scoped_ptr<spdy::SpdyFrame> resp2(ConstructSpdyGetSynReply(NULL, 0, 1)); |
| 2488 scoped_ptr<spdy::SpdyFrame> body2(ConstructSpdyBodyFrame(1, true)); | 2488 scoped_ptr<spdy::SpdyFrame> body2(ConstructSpdyBodyFrame(1, true)); |
| 2489 MockWrite writes2[] = { | 2489 MockWrite writes2[] = { |
| 2490 CreateMockWrite(*req2, 1), | 2490 CreateMockWrite(*req2, 1), |
| 2491 }; | 2491 }; |
| 2492 MockRead reads2[] = { | 2492 MockRead reads2[] = { |
| 2493 CreateMockRead(*resp2, 2), | 2493 CreateMockRead(*resp2, 2), |
| 2494 CreateMockRead(*body2, 3), | 2494 CreateMockRead(*body2, 3), |
| 2495 MockRead(true, 0, 0, 4) // EOF | 2495 MockRead(ASYNC, 0, 0, 4) // EOF |
| 2496 }; | 2496 }; |
| 2497 scoped_ptr<OrderedSocketData> data( | 2497 scoped_ptr<OrderedSocketData> data( |
| 2498 new OrderedSocketData(reads, arraysize(reads), | 2498 new OrderedSocketData(reads, arraysize(reads), |
| 2499 writes, arraysize(writes))); | 2499 writes, arraysize(writes))); |
| 2500 scoped_ptr<OrderedSocketData> data2( | 2500 scoped_ptr<OrderedSocketData> data2( |
| 2501 new OrderedSocketData(reads2, arraysize(reads2), | 2501 new OrderedSocketData(reads2, arraysize(reads2), |
| 2502 writes2, arraysize(writes2))); | 2502 writes2, arraysize(writes2))); |
| 2503 | 2503 |
| 2504 // TODO(erikchen): Make test support SPDYSSL, SPDYNPN | 2504 // TODO(erikchen): Make test support SPDYSSL, SPDYNPN |
| 2505 HttpStreamFactory::set_force_spdy_over_ssl(false); | 2505 HttpStreamFactory::set_force_spdy_over_ssl(false); |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2544 MockWrite writes[] = { | 2544 MockWrite writes[] = { |
| 2545 CreateMockWrite(*syn, 0), | 2545 CreateMockWrite(*syn, 0), |
| 2546 CreateMockWrite(*rst, 2), | 2546 CreateMockWrite(*rst, 2), |
| 2547 }; | 2547 }; |
| 2548 | 2548 |
| 2549 const char* const kExtraHeaders[] = {"X-UpperCase", "yes"}; | 2549 const char* const kExtraHeaders[] = {"X-UpperCase", "yes"}; |
| 2550 scoped_ptr<spdy::SpdyFrame> | 2550 scoped_ptr<spdy::SpdyFrame> |
| 2551 reply(ConstructSpdyGetSynReply(kExtraHeaders, 1, 1)); | 2551 reply(ConstructSpdyGetSynReply(kExtraHeaders, 1, 1)); |
| 2552 MockRead reads[] = { | 2552 MockRead reads[] = { |
| 2553 CreateMockRead(*reply, 1), | 2553 CreateMockRead(*reply, 1), |
| 2554 MockRead(true, ERR_IO_PENDING, 3), // Force a pause | 2554 MockRead(ASYNC, ERR_IO_PENDING, 3), // Force a pause |
| 2555 }; | 2555 }; |
| 2556 | 2556 |
| 2557 HttpResponseInfo response; | 2557 HttpResponseInfo response; |
| 2558 HttpResponseInfo response2; | 2558 HttpResponseInfo response2; |
| 2559 scoped_ptr<OrderedSocketData> data(new OrderedSocketData( | 2559 scoped_ptr<OrderedSocketData> data(new OrderedSocketData( |
| 2560 reads, | 2560 reads, |
| 2561 arraysize(reads), | 2561 arraysize(reads), |
| 2562 writes, | 2562 writes, |
| 2563 arraysize(writes))); | 2563 arraysize(writes))); |
| 2564 NormalSpdyTransactionHelper helper(CreateGetRequest(), | 2564 NormalSpdyTransactionHelper helper(CreateGetRequest(), |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2607 spdy::HEADERS, | 2607 spdy::HEADERS, |
| 2608 spdy::CONTROL_FLAG_NONE, | 2608 spdy::CONTROL_FLAG_NONE, |
| 2609 NULL, | 2609 NULL, |
| 2610 0, | 2610 0, |
| 2611 0)); | 2611 0)); |
| 2612 scoped_ptr<spdy::SpdyFrame> stream1_body(ConstructSpdyBodyFrame(1, true)); | 2612 scoped_ptr<spdy::SpdyFrame> stream1_body(ConstructSpdyBodyFrame(1, true)); |
| 2613 MockRead reads[] = { | 2613 MockRead reads[] = { |
| 2614 CreateMockRead(*stream1_reply), | 2614 CreateMockRead(*stream1_reply), |
| 2615 CreateMockRead(*stream1_headers), | 2615 CreateMockRead(*stream1_headers), |
| 2616 CreateMockRead(*stream1_body), | 2616 CreateMockRead(*stream1_body), |
| 2617 MockRead(true, 0, 0) // EOF | 2617 MockRead(ASYNC, 0, 0) // EOF |
| 2618 }; | 2618 }; |
| 2619 | 2619 |
| 2620 scoped_ptr<DelayedSocketData> data( | 2620 scoped_ptr<DelayedSocketData> data( |
| 2621 new DelayedSocketData(1, reads, arraysize(reads), | 2621 new DelayedSocketData(1, reads, arraysize(reads), |
| 2622 writes, arraysize(writes))); | 2622 writes, arraysize(writes))); |
| 2623 NormalSpdyTransactionHelper helper(CreateGetRequest(), | 2623 NormalSpdyTransactionHelper helper(CreateGetRequest(), |
| 2624 BoundNetLog(), GetParam()); | 2624 BoundNetLog(), GetParam()); |
| 2625 helper.RunToCompletion(data.get()); | 2625 helper.RunToCompletion(data.get()); |
| 2626 TransactionHelperResult out = helper.output(); | 2626 TransactionHelperResult out = helper.output(); |
| 2627 EXPECT_EQ(ERR_SPDY_PROTOCOL_ERROR, out.rv); | 2627 EXPECT_EQ(ERR_SPDY_PROTOCOL_ERROR, out.rv); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 2641 scoped_ptr<spdy::SpdyFrame> | 2641 scoped_ptr<spdy::SpdyFrame> |
| 2642 reply(ConstructSpdyGetSynReply(NULL, 0, 1)); | 2642 reply(ConstructSpdyGetSynReply(NULL, 0, 1)); |
| 2643 const char* const extra_headers[] = {"X-UpperCase", "yes"}; | 2643 const char* const extra_headers[] = {"X-UpperCase", "yes"}; |
| 2644 scoped_ptr<spdy::SpdyFrame> | 2644 scoped_ptr<spdy::SpdyFrame> |
| 2645 push(ConstructSpdyPush(extra_headers, 1, 2, 1)); | 2645 push(ConstructSpdyPush(extra_headers, 1, 2, 1)); |
| 2646 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); | 2646 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); |
| 2647 MockRead reads[] = { | 2647 MockRead reads[] = { |
| 2648 CreateMockRead(*reply, 1), | 2648 CreateMockRead(*reply, 1), |
| 2649 CreateMockRead(*push, 1), | 2649 CreateMockRead(*push, 1), |
| 2650 CreateMockRead(*body, 1), | 2650 CreateMockRead(*body, 1), |
| 2651 MockRead(true, ERR_IO_PENDING, 3), // Force a pause | 2651 MockRead(ASYNC, ERR_IO_PENDING, 3), // Force a pause |
| 2652 }; | 2652 }; |
| 2653 | 2653 |
| 2654 HttpResponseInfo response; | 2654 HttpResponseInfo response; |
| 2655 HttpResponseInfo response2; | 2655 HttpResponseInfo response2; |
| 2656 scoped_ptr<OrderedSocketData> data(new OrderedSocketData( | 2656 scoped_ptr<OrderedSocketData> data(new OrderedSocketData( |
| 2657 reads, | 2657 reads, |
| 2658 arraysize(reads), | 2658 arraysize(reads), |
| 2659 writes, | 2659 writes, |
| 2660 arraysize(writes))); | 2660 arraysize(writes))); |
| 2661 NormalSpdyTransactionHelper helper(CreateGetRequest(), | 2661 NormalSpdyTransactionHelper helper(CreateGetRequest(), |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2708 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); | 2708 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); |
| 2709 scoped_ptr<spdy::SpdyFrame> rst(ConstructSpdyRstStream(2, spdy::CANCEL)); | 2709 scoped_ptr<spdy::SpdyFrame> rst(ConstructSpdyRstStream(2, spdy::CANCEL)); |
| 2710 MockWrite writes[] = { | 2710 MockWrite writes[] = { |
| 2711 CreateMockWrite(*req, 1), | 2711 CreateMockWrite(*req, 1), |
| 2712 CreateMockWrite(*rst, 6), | 2712 CreateMockWrite(*rst, 6), |
| 2713 }; | 2713 }; |
| 2714 MockRead reads[] = { | 2714 MockRead reads[] = { |
| 2715 CreateMockRead(*resp, 2), | 2715 CreateMockRead(*resp, 2), |
| 2716 CreateMockRead(*rep, 3), | 2716 CreateMockRead(*rep, 3), |
| 2717 CreateMockRead(*body, 4), | 2717 CreateMockRead(*body, 4), |
| 2718 MockRead(true, ERR_IO_PENDING, 5), // Force a pause | 2718 MockRead(ASYNC, ERR_IO_PENDING, 5), // Force a pause |
| 2719 MockRead(true, 0, 0, 7) // EOF | 2719 MockRead(ASYNC, 0, 0, 7) // EOF |
| 2720 }; | 2720 }; |
| 2721 | 2721 |
| 2722 // Setup writes/reads to www.foo.com | 2722 // Setup writes/reads to www.foo.com |
| 2723 const char* const kStandardGetHeaders2[] = { | 2723 const char* const kStandardGetHeaders2[] = { |
| 2724 "host", | 2724 "host", |
| 2725 "www.foo.com", | 2725 "www.foo.com", |
| 2726 "method", | 2726 "method", |
| 2727 "GET", | 2727 "GET", |
| 2728 "scheme", | 2728 "scheme", |
| 2729 "http", | 2729 "http", |
| (...skipping 11 matching lines...) Expand all Loading... |
| 2741 kStandardGetHeaders2, | 2741 kStandardGetHeaders2, |
| 2742 arraysize(kStandardGetHeaders2) / 2)); | 2742 arraysize(kStandardGetHeaders2) / 2)); |
| 2743 scoped_ptr<spdy::SpdyFrame> resp2(ConstructSpdyGetSynReply(NULL, 0, 1)); | 2743 scoped_ptr<spdy::SpdyFrame> resp2(ConstructSpdyGetSynReply(NULL, 0, 1)); |
| 2744 scoped_ptr<spdy::SpdyFrame> body2(ConstructSpdyBodyFrame(1, true)); | 2744 scoped_ptr<spdy::SpdyFrame> body2(ConstructSpdyBodyFrame(1, true)); |
| 2745 MockWrite writes2[] = { | 2745 MockWrite writes2[] = { |
| 2746 CreateMockWrite(*req2, 1), | 2746 CreateMockWrite(*req2, 1), |
| 2747 }; | 2747 }; |
| 2748 MockRead reads2[] = { | 2748 MockRead reads2[] = { |
| 2749 CreateMockRead(*resp2, 2), | 2749 CreateMockRead(*resp2, 2), |
| 2750 CreateMockRead(*body2, 3), | 2750 CreateMockRead(*body2, 3), |
| 2751 MockRead(true, 0, 0, 5) // EOF | 2751 MockRead(ASYNC, 0, 0, 5) // EOF |
| 2752 }; | 2752 }; |
| 2753 scoped_ptr<OrderedSocketData> data( | 2753 scoped_ptr<OrderedSocketData> data( |
| 2754 new OrderedSocketData(reads, arraysize(reads), | 2754 new OrderedSocketData(reads, arraysize(reads), |
| 2755 writes, arraysize(writes))); | 2755 writes, arraysize(writes))); |
| 2756 scoped_ptr<OrderedSocketData> data2( | 2756 scoped_ptr<OrderedSocketData> data2( |
| 2757 new OrderedSocketData(reads2, arraysize(reads2), | 2757 new OrderedSocketData(reads2, arraysize(reads2), |
| 2758 writes2, arraysize(writes2))); | 2758 writes2, arraysize(writes2))); |
| 2759 | 2759 |
| 2760 // TODO(erikchen): Make test support SPDYSSL, SPDYNPN | 2760 // TODO(erikchen): Make test support SPDYSSL, SPDYNPN |
| 2761 HttpStreamFactory::set_force_spdy_over_ssl(false); | 2761 HttpStreamFactory::set_force_spdy_over_ssl(false); |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2821 stream1_reply(ConstructSpdyGetSynReply(NULL, 0, 1)); | 2821 stream1_reply(ConstructSpdyGetSynReply(NULL, 0, 1)); |
| 2822 scoped_ptr<spdy::SpdyFrame> | 2822 scoped_ptr<spdy::SpdyFrame> |
| 2823 stream2_syn(ConstructSpdyPush(NULL, | 2823 stream2_syn(ConstructSpdyPush(NULL, |
| 2824 0, | 2824 0, |
| 2825 2, | 2825 2, |
| 2826 1, | 2826 1, |
| 2827 "http://www.google.com/foo.dat")); | 2827 "http://www.google.com/foo.dat")); |
| 2828 MockRead reads[] = { | 2828 MockRead reads[] = { |
| 2829 CreateMockRead(*stream1_reply, 2), | 2829 CreateMockRead(*stream1_reply, 2), |
| 2830 CreateMockRead(*stream2_syn, 3), | 2830 CreateMockRead(*stream2_syn, 3), |
| 2831 CreateMockRead(*stream1_body, 4, false), | 2831 CreateMockRead(*stream1_body, 4, SYNCHRONOUS), |
| 2832 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame), | 2832 MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame), |
| 2833 arraysize(kPushBodyFrame), 5), | 2833 arraysize(kPushBodyFrame), 5), |
| 2834 MockRead(true, ERR_IO_PENDING, 6), // Force a pause | 2834 MockRead(ASYNC, ERR_IO_PENDING, 6), // Force a pause |
| 2835 }; | 2835 }; |
| 2836 | 2836 |
| 2837 HttpResponseInfo response; | 2837 HttpResponseInfo response; |
| 2838 HttpResponseInfo response2; | 2838 HttpResponseInfo response2; |
| 2839 std::string expected_push_result("pushed"); | 2839 std::string expected_push_result("pushed"); |
| 2840 scoped_ptr<OrderedSocketData> data(new OrderedSocketData( | 2840 scoped_ptr<OrderedSocketData> data(new OrderedSocketData( |
| 2841 reads, | 2841 reads, |
| 2842 arraysize(reads), | 2842 arraysize(reads), |
| 2843 writes, | 2843 writes, |
| 2844 arraysize(writes))); | 2844 arraysize(writes))); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 2874 stream2_syn(ConstructSpdyPush(NULL, | 2874 stream2_syn(ConstructSpdyPush(NULL, |
| 2875 0, | 2875 0, |
| 2876 2, | 2876 2, |
| 2877 1, | 2877 1, |
| 2878 "http://www.google.com/foo.dat")); | 2878 "http://www.google.com/foo.dat")); |
| 2879 scoped_ptr<spdy::SpdyFrame> | 2879 scoped_ptr<spdy::SpdyFrame> |
| 2880 stream1_body(ConstructSpdyBodyFrame(1, true)); | 2880 stream1_body(ConstructSpdyBodyFrame(1, true)); |
| 2881 MockRead reads[] = { | 2881 MockRead reads[] = { |
| 2882 CreateMockRead(*stream1_reply, 2), | 2882 CreateMockRead(*stream1_reply, 2), |
| 2883 CreateMockRead(*stream2_syn, 3), | 2883 CreateMockRead(*stream2_syn, 3), |
| 2884 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame), | 2884 MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame), |
| 2885 arraysize(kPushBodyFrame), 5), | 2885 arraysize(kPushBodyFrame), 5), |
| 2886 CreateMockRead(*stream1_body, 4, false), | 2886 CreateMockRead(*stream1_body, 4, SYNCHRONOUS), |
| 2887 MockRead(true, ERR_IO_PENDING, 6), // Force a pause | 2887 MockRead(ASYNC, ERR_IO_PENDING, 6), // Force a pause |
| 2888 }; | 2888 }; |
| 2889 | 2889 |
| 2890 HttpResponseInfo response; | 2890 HttpResponseInfo response; |
| 2891 HttpResponseInfo response2; | 2891 HttpResponseInfo response2; |
| 2892 std::string expected_push_result("pushed"); | 2892 std::string expected_push_result("pushed"); |
| 2893 scoped_ptr<OrderedSocketData> data(new OrderedSocketData( | 2893 scoped_ptr<OrderedSocketData> data(new OrderedSocketData( |
| 2894 reads, | 2894 reads, |
| 2895 arraysize(reads), | 2895 arraysize(reads), |
| 2896 writes, | 2896 writes, |
| 2897 arraysize(writes))); | 2897 arraysize(writes))); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 2925 0, | 2925 0, |
| 2926 2, | 2926 2, |
| 2927 1, | 2927 1, |
| 2928 "http://www.google.com/foo.dat")); | 2928 "http://www.google.com/foo.dat")); |
| 2929 scoped_ptr<spdy::SpdyFrame> | 2929 scoped_ptr<spdy::SpdyFrame> |
| 2930 stream2_rst(ConstructSpdyRstStream(2, spdy::PROTOCOL_ERROR)); | 2930 stream2_rst(ConstructSpdyRstStream(2, spdy::PROTOCOL_ERROR)); |
| 2931 MockRead reads[] = { | 2931 MockRead reads[] = { |
| 2932 CreateMockRead(*stream1_reply, 2), | 2932 CreateMockRead(*stream1_reply, 2), |
| 2933 CreateMockRead(*stream2_syn, 3), | 2933 CreateMockRead(*stream2_syn, 3), |
| 2934 CreateMockRead(*stream2_rst, 4), | 2934 CreateMockRead(*stream2_rst, 4), |
| 2935 CreateMockRead(*stream1_body, 5, false), | 2935 CreateMockRead(*stream1_body, 5, SYNCHRONOUS), |
| 2936 MockRead(true, ERR_IO_PENDING, 6), // Force a pause | 2936 MockRead(ASYNC, ERR_IO_PENDING, 6), // Force a pause |
| 2937 }; | 2937 }; |
| 2938 | 2938 |
| 2939 scoped_ptr<OrderedSocketData> data( | 2939 scoped_ptr<OrderedSocketData> data( |
| 2940 new OrderedSocketData(reads, arraysize(reads), | 2940 new OrderedSocketData(reads, arraysize(reads), |
| 2941 writes, arraysize(writes))); | 2941 writes, arraysize(writes))); |
| 2942 NormalSpdyTransactionHelper helper(CreateGetRequest(), | 2942 NormalSpdyTransactionHelper helper(CreateGetRequest(), |
| 2943 BoundNetLog(), GetParam()); | 2943 BoundNetLog(), GetParam()); |
| 2944 | 2944 |
| 2945 helper.RunPreTestSetup(); | 2945 helper.RunPreTestSetup(); |
| 2946 helper.AddData(data.get()); | 2946 helper.AddData(data.get()); |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3002 scoped_ptr<spdy::SpdyFrame> | 3002 scoped_ptr<spdy::SpdyFrame> |
| 3003 stream3_syn(ConstructSpdyPush(NULL, | 3003 stream3_syn(ConstructSpdyPush(NULL, |
| 3004 0, | 3004 0, |
| 3005 4, | 3005 4, |
| 3006 1, | 3006 1, |
| 3007 "http://www.google.com/foo.dat")); | 3007 "http://www.google.com/foo.dat")); |
| 3008 MockRead reads[] = { | 3008 MockRead reads[] = { |
| 3009 CreateMockRead(*stream1_reply, 2), | 3009 CreateMockRead(*stream1_reply, 2), |
| 3010 CreateMockRead(*stream2_syn, 3), | 3010 CreateMockRead(*stream2_syn, 3), |
| 3011 CreateMockRead(*stream3_syn, 4), | 3011 CreateMockRead(*stream3_syn, 4), |
| 3012 CreateMockRead(*stream1_body, 6, false), | 3012 CreateMockRead(*stream1_body, 6, SYNCHRONOUS), |
| 3013 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame), | 3013 MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame), |
| 3014 arraysize(kPushBodyFrame), 7), | 3014 arraysize(kPushBodyFrame), 7), |
| 3015 MockRead(true, ERR_IO_PENDING, 8), // Force a pause | 3015 MockRead(ASYNC, ERR_IO_PENDING, 8), // Force a pause |
| 3016 }; | 3016 }; |
| 3017 | 3017 |
| 3018 HttpResponseInfo response; | 3018 HttpResponseInfo response; |
| 3019 HttpResponseInfo response2; | 3019 HttpResponseInfo response2; |
| 3020 std::string expected_push_result("pushed"); | 3020 std::string expected_push_result("pushed"); |
| 3021 scoped_ptr<OrderedSocketData> data(new OrderedSocketData( | 3021 scoped_ptr<OrderedSocketData> data(new OrderedSocketData( |
| 3022 reads, | 3022 reads, |
| 3023 arraysize(reads), | 3023 arraysize(reads), |
| 3024 writes, | 3024 writes, |
| 3025 arraysize(writes))); | 3025 arraysize(writes))); |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3059 stream1_reply(ConstructSpdyGetSynReply(NULL, 0, 1)); | 3059 stream1_reply(ConstructSpdyGetSynReply(NULL, 0, 1)); |
| 3060 scoped_ptr<spdy::SpdyFrame> | 3060 scoped_ptr<spdy::SpdyFrame> |
| 3061 stream2_syn(ConstructSpdyPush(NULL, | 3061 stream2_syn(ConstructSpdyPush(NULL, |
| 3062 0, | 3062 0, |
| 3063 2, | 3063 2, |
| 3064 1, | 3064 1, |
| 3065 "http://www.google.com/foo.dat")); | 3065 "http://www.google.com/foo.dat")); |
| 3066 MockRead reads[] = { | 3066 MockRead reads[] = { |
| 3067 CreateMockRead(*stream1_reply, 2), | 3067 CreateMockRead(*stream1_reply, 2), |
| 3068 CreateMockRead(*stream2_syn, 3), | 3068 CreateMockRead(*stream2_syn, 3), |
| 3069 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame1), | 3069 MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame1), |
| 3070 arraysize(kPushBodyFrame1), 4), | 3070 arraysize(kPushBodyFrame1), 4), |
| 3071 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame2), | 3071 MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame2), |
| 3072 arraysize(kPushBodyFrame2) - 1, 5), | 3072 arraysize(kPushBodyFrame2) - 1, 5), |
| 3073 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame3), | 3073 MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame3), |
| 3074 arraysize(kPushBodyFrame3) - 1, 6), | 3074 arraysize(kPushBodyFrame3) - 1, 6), |
| 3075 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame4), | 3075 MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame4), |
| 3076 arraysize(kPushBodyFrame4) - 1, 7), | 3076 arraysize(kPushBodyFrame4) - 1, 7), |
| 3077 CreateMockRead(*stream1_body, 8, false), | 3077 CreateMockRead(*stream1_body, 8, SYNCHRONOUS), |
| 3078 MockRead(true, ERR_IO_PENDING, 9), // Force a pause | 3078 MockRead(ASYNC, ERR_IO_PENDING, 9), // Force a pause |
| 3079 }; | 3079 }; |
| 3080 | 3080 |
| 3081 HttpResponseInfo response; | 3081 HttpResponseInfo response; |
| 3082 HttpResponseInfo response2; | 3082 HttpResponseInfo response2; |
| 3083 std::string expected_push_result("pushed my darling hello my baby"); | 3083 std::string expected_push_result("pushed my darling hello my baby"); |
| 3084 scoped_ptr<OrderedSocketData> data(new OrderedSocketData( | 3084 scoped_ptr<OrderedSocketData> data(new OrderedSocketData( |
| 3085 reads, | 3085 reads, |
| 3086 arraysize(reads), | 3086 arraysize(reads), |
| 3087 writes, | 3087 writes, |
| 3088 arraysize(writes))); | 3088 arraysize(writes))); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3124 stream1_reply(ConstructSpdyGetSynReply(NULL, 0, 1)); | 3124 stream1_reply(ConstructSpdyGetSynReply(NULL, 0, 1)); |
| 3125 scoped_ptr<spdy::SpdyFrame> | 3125 scoped_ptr<spdy::SpdyFrame> |
| 3126 stream2_syn(ConstructSpdyPush(NULL, | 3126 stream2_syn(ConstructSpdyPush(NULL, |
| 3127 0, | 3127 0, |
| 3128 2, | 3128 2, |
| 3129 1, | 3129 1, |
| 3130 "http://www.google.com/foo.dat")); | 3130 "http://www.google.com/foo.dat")); |
| 3131 MockRead reads[] = { | 3131 MockRead reads[] = { |
| 3132 CreateMockRead(*stream1_reply, 2), | 3132 CreateMockRead(*stream1_reply, 2), |
| 3133 CreateMockRead(*stream2_syn, 3), | 3133 CreateMockRead(*stream2_syn, 3), |
| 3134 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame1), | 3134 MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame1), |
| 3135 arraysize(kPushBodyFrame1), 4), | 3135 arraysize(kPushBodyFrame1), 4), |
| 3136 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame2), | 3136 MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame2), |
| 3137 arraysize(kPushBodyFrame2) - 1, 5), | 3137 arraysize(kPushBodyFrame2) - 1, 5), |
| 3138 MockRead(true, ERR_IO_PENDING, 6), // Force a pause | 3138 MockRead(ASYNC, ERR_IO_PENDING, 6), // Force a pause |
| 3139 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame3), | 3139 MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame3), |
| 3140 arraysize(kPushBodyFrame3) - 1, 7), | 3140 arraysize(kPushBodyFrame3) - 1, 7), |
| 3141 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame4), | 3141 MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame4), |
| 3142 arraysize(kPushBodyFrame4) - 1, 8), | 3142 arraysize(kPushBodyFrame4) - 1, 8), |
| 3143 CreateMockRead(*stream1_body.get(), 9, false), | 3143 CreateMockRead(*stream1_body.get(), 9, SYNCHRONOUS), |
| 3144 MockRead(true, ERR_IO_PENDING, 10) // Force a pause. | 3144 MockRead(ASYNC, ERR_IO_PENDING, 10) // Force a pause. |
| 3145 }; | 3145 }; |
| 3146 | 3146 |
| 3147 HttpResponseInfo response; | 3147 HttpResponseInfo response; |
| 3148 HttpResponseInfo response2; | 3148 HttpResponseInfo response2; |
| 3149 std::string expected_push_result("pushed my darling hello my baby"); | 3149 std::string expected_push_result("pushed my darling hello my baby"); |
| 3150 scoped_ptr<OrderedSocketData> data(new OrderedSocketData( | 3150 scoped_ptr<OrderedSocketData> data(new OrderedSocketData( |
| 3151 reads, | 3151 reads, |
| 3152 arraysize(reads), | 3152 arraysize(reads), |
| 3153 writes, | 3153 writes, |
| 3154 arraysize(writes))); | 3154 arraysize(writes))); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 3185 scoped_ptr<spdy::SpdyFrame> | 3185 scoped_ptr<spdy::SpdyFrame> |
| 3186 stream2_syn(ConstructSpdyPush(NULL, | 3186 stream2_syn(ConstructSpdyPush(NULL, |
| 3187 0, | 3187 0, |
| 3188 2, | 3188 2, |
| 3189 0, | 3189 0, |
| 3190 "http://www.google.com/foo.dat")); | 3190 "http://www.google.com/foo.dat")); |
| 3191 MockRead reads[] = { | 3191 MockRead reads[] = { |
| 3192 CreateMockRead(*stream1_reply, 2), | 3192 CreateMockRead(*stream1_reply, 2), |
| 3193 CreateMockRead(*stream2_syn, 3), | 3193 CreateMockRead(*stream2_syn, 3), |
| 3194 CreateMockRead(*stream1_body, 4), | 3194 CreateMockRead(*stream1_body, 4), |
| 3195 MockRead(true, ERR_IO_PENDING, 5) // Force a pause | 3195 MockRead(ASYNC, ERR_IO_PENDING, 5) // Force a pause |
| 3196 }; | 3196 }; |
| 3197 | 3197 |
| 3198 scoped_ptr<OrderedSocketData> data( | 3198 scoped_ptr<OrderedSocketData> data( |
| 3199 new OrderedSocketData(reads, arraysize(reads), | 3199 new OrderedSocketData(reads, arraysize(reads), |
| 3200 writes, arraysize(writes))); | 3200 writes, arraysize(writes))); |
| 3201 NormalSpdyTransactionHelper helper(CreateGetRequest(), | 3201 NormalSpdyTransactionHelper helper(CreateGetRequest(), |
| 3202 BoundNetLog(), GetParam()); | 3202 BoundNetLog(), GetParam()); |
| 3203 | 3203 |
| 3204 helper.RunPreTestSetup(); | 3204 helper.RunPreTestSetup(); |
| 3205 helper.AddData(data.get()); | 3205 helper.AddData(data.get()); |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3247 scoped_ptr<spdy::SpdyFrame> | 3247 scoped_ptr<spdy::SpdyFrame> |
| 3248 stream2_syn(ConstructSpdyPush(NULL, | 3248 stream2_syn(ConstructSpdyPush(NULL, |
| 3249 0, | 3249 0, |
| 3250 2, | 3250 2, |
| 3251 9, | 3251 9, |
| 3252 "http://www.google.com/foo.dat")); | 3252 "http://www.google.com/foo.dat")); |
| 3253 MockRead reads[] = { | 3253 MockRead reads[] = { |
| 3254 CreateMockRead(*stream1_reply, 2), | 3254 CreateMockRead(*stream1_reply, 2), |
| 3255 CreateMockRead(*stream2_syn, 3), | 3255 CreateMockRead(*stream2_syn, 3), |
| 3256 CreateMockRead(*stream1_body, 4), | 3256 CreateMockRead(*stream1_body, 4), |
| 3257 MockRead(true, ERR_IO_PENDING, 5), // Force a pause | 3257 MockRead(ASYNC, ERR_IO_PENDING, 5), // Force a pause |
| 3258 }; | 3258 }; |
| 3259 | 3259 |
| 3260 scoped_ptr<OrderedSocketData> data( | 3260 scoped_ptr<OrderedSocketData> data( |
| 3261 new OrderedSocketData(reads, arraysize(reads), | 3261 new OrderedSocketData(reads, arraysize(reads), |
| 3262 writes, arraysize(writes))); | 3262 writes, arraysize(writes))); |
| 3263 NormalSpdyTransactionHelper helper(CreateGetRequest(), | 3263 NormalSpdyTransactionHelper helper(CreateGetRequest(), |
| 3264 BoundNetLog(), GetParam()); | 3264 BoundNetLog(), GetParam()); |
| 3265 | 3265 |
| 3266 helper.RunPreTestSetup(); | 3266 helper.RunPreTestSetup(); |
| 3267 helper.AddData(data.get()); | 3267 helper.AddData(data.get()); |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3305 }; | 3305 }; |
| 3306 | 3306 |
| 3307 scoped_ptr<spdy::SpdyFrame> | 3307 scoped_ptr<spdy::SpdyFrame> |
| 3308 stream1_reply(ConstructSpdyGetSynReply(NULL, 0, 1)); | 3308 stream1_reply(ConstructSpdyGetSynReply(NULL, 0, 1)); |
| 3309 scoped_ptr<spdy::SpdyFrame> | 3309 scoped_ptr<spdy::SpdyFrame> |
| 3310 stream2_syn(ConstructSpdyPush(NULL, 0, 2, 1)); | 3310 stream2_syn(ConstructSpdyPush(NULL, 0, 2, 1)); |
| 3311 MockRead reads[] = { | 3311 MockRead reads[] = { |
| 3312 CreateMockRead(*stream1_reply, 2), | 3312 CreateMockRead(*stream1_reply, 2), |
| 3313 CreateMockRead(*stream2_syn, 3), | 3313 CreateMockRead(*stream2_syn, 3), |
| 3314 CreateMockRead(*stream1_body, 4), | 3314 CreateMockRead(*stream1_body, 4), |
| 3315 MockRead(true, ERR_IO_PENDING, 5) // Force a pause | 3315 MockRead(ASYNC, ERR_IO_PENDING, 5) // Force a pause |
| 3316 }; | 3316 }; |
| 3317 | 3317 |
| 3318 scoped_ptr<OrderedSocketData> data( | 3318 scoped_ptr<OrderedSocketData> data( |
| 3319 new OrderedSocketData(reads, arraysize(reads), | 3319 new OrderedSocketData(reads, arraysize(reads), |
| 3320 writes, arraysize(writes))); | 3320 writes, arraysize(writes))); |
| 3321 NormalSpdyTransactionHelper helper(CreateGetRequest(), | 3321 NormalSpdyTransactionHelper helper(CreateGetRequest(), |
| 3322 BoundNetLog(), GetParam()); | 3322 BoundNetLog(), GetParam()); |
| 3323 | 3323 |
| 3324 helper.RunPreTestSetup(); | 3324 helper.RunPreTestSetup(); |
| 3325 helper.AddData(data.get()); | 3325 helper.AddData(data.get()); |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3394 MockWrite writes[] = { CreateMockWrite(*req) }; | 3394 MockWrite writes[] = { CreateMockWrite(*req) }; |
| 3395 | 3395 |
| 3396 scoped_ptr<spdy::SpdyFrame> resp( | 3396 scoped_ptr<spdy::SpdyFrame> resp( |
| 3397 ConstructSpdyGetSynReply(test_cases[i].extra_headers, | 3397 ConstructSpdyGetSynReply(test_cases[i].extra_headers, |
| 3398 test_cases[i].num_headers, | 3398 test_cases[i].num_headers, |
| 3399 1)); | 3399 1)); |
| 3400 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); | 3400 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); |
| 3401 MockRead reads[] = { | 3401 MockRead reads[] = { |
| 3402 CreateMockRead(*resp), | 3402 CreateMockRead(*resp), |
| 3403 CreateMockRead(*body), | 3403 CreateMockRead(*body), |
| 3404 MockRead(true, 0, 0) // EOF | 3404 MockRead(ASYNC, 0, 0) // EOF |
| 3405 }; | 3405 }; |
| 3406 | 3406 |
| 3407 scoped_ptr<DelayedSocketData> data( | 3407 scoped_ptr<DelayedSocketData> data( |
| 3408 new DelayedSocketData(1, reads, arraysize(reads), | 3408 new DelayedSocketData(1, reads, arraysize(reads), |
| 3409 writes, arraysize(writes))); | 3409 writes, arraysize(writes))); |
| 3410 NormalSpdyTransactionHelper helper(CreateGetRequest(), | 3410 NormalSpdyTransactionHelper helper(CreateGetRequest(), |
| 3411 BoundNetLog(), GetParam()); | 3411 BoundNetLog(), GetParam()); |
| 3412 helper.RunToCompletion(data.get()); | 3412 helper.RunToCompletion(data.get()); |
| 3413 TransactionHelperResult out = helper.output(); | 3413 TransactionHelperResult out = helper.output(); |
| 3414 | 3414 |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3533 ConstructSpdyPacket(*test_cases[i].syn_reply, | 3533 ConstructSpdyPacket(*test_cases[i].syn_reply, |
| 3534 test_cases[i].extra_headers[1], | 3534 test_cases[i].extra_headers[1], |
| 3535 test_cases[i].num_headers[1], | 3535 test_cases[i].num_headers[1], |
| 3536 NULL, | 3536 NULL, |
| 3537 0)); | 3537 0)); |
| 3538 | 3538 |
| 3539 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); | 3539 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); |
| 3540 MockRead reads[] = { | 3540 MockRead reads[] = { |
| 3541 CreateMockRead(*frame_reply), | 3541 CreateMockRead(*frame_reply), |
| 3542 CreateMockRead(*body), | 3542 CreateMockRead(*body), |
| 3543 MockRead(true, 0, 0) // EOF | 3543 MockRead(ASYNC, 0, 0) // EOF |
| 3544 }; | 3544 }; |
| 3545 | 3545 |
| 3546 // Attach the headers to the request. | 3546 // Attach the headers to the request. |
| 3547 int header_count = test_cases[i].num_headers[0]; | 3547 int header_count = test_cases[i].num_headers[0]; |
| 3548 | 3548 |
| 3549 HttpRequestInfo request = CreateGetRequest(); | 3549 HttpRequestInfo request = CreateGetRequest(); |
| 3550 for (int ct = 0; ct < header_count; ct++) { | 3550 for (int ct = 0; ct < header_count; ct++) { |
| 3551 const char* header_key = test_cases[i].extra_headers[0][ct * 2]; | 3551 const char* header_key = test_cases[i].extra_headers[0][ct * 2]; |
| 3552 const char* header_value = test_cases[i].extra_headers[0][ct * 2 + 1]; | 3552 const char* header_value = test_cases[i].extra_headers[0][ct * 2 + 1]; |
| 3553 request.extra_headers.SetHeader(header_key, header_value); | 3553 request.extra_headers.SetHeader(header_key, header_value); |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3649 | 3649 |
| 3650 scoped_ptr<spdy::SpdyFrame> resp( | 3650 scoped_ptr<spdy::SpdyFrame> resp( |
| 3651 ConstructSpdyPacket(kSynStartHeader, | 3651 ConstructSpdyPacket(kSynStartHeader, |
| 3652 NULL, 0, | 3652 NULL, 0, |
| 3653 test_cases[i].headers, | 3653 test_cases[i].headers, |
| 3654 test_cases[i].num_headers)); | 3654 test_cases[i].num_headers)); |
| 3655 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); | 3655 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); |
| 3656 MockRead reads[] = { | 3656 MockRead reads[] = { |
| 3657 CreateMockRead(*resp), | 3657 CreateMockRead(*resp), |
| 3658 CreateMockRead(*body), | 3658 CreateMockRead(*body), |
| 3659 MockRead(true, 0, 0) // EOF | 3659 MockRead(ASYNC, 0, 0) // EOF |
| 3660 }; | 3660 }; |
| 3661 | 3661 |
| 3662 scoped_ptr<DelayedSocketData> data( | 3662 scoped_ptr<DelayedSocketData> data( |
| 3663 new DelayedSocketData(1, reads, arraysize(reads), | 3663 new DelayedSocketData(1, reads, arraysize(reads), |
| 3664 writes, arraysize(writes))); | 3664 writes, arraysize(writes))); |
| 3665 NormalSpdyTransactionHelper helper(CreateGetRequest(), | 3665 NormalSpdyTransactionHelper helper(CreateGetRequest(), |
| 3666 BoundNetLog(), GetParam()); | 3666 BoundNetLog(), GetParam()); |
| 3667 helper.RunToCompletion(data.get()); | 3667 helper.RunToCompletion(data.get()); |
| 3668 TransactionHelperResult out = helper.output(); | 3668 TransactionHelperResult out = helper.output(); |
| 3669 EXPECT_EQ(ERR_INCOMPLETE_SPDY_HEADERS, out.rv); | 3669 EXPECT_EQ(ERR_INCOMPLETE_SPDY_HEADERS, out.rv); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 3681 const spdy::SpdyFrame* syn_reply; | 3681 const spdy::SpdyFrame* syn_reply; |
| 3682 } test_cases[] = { | 3682 } test_cases[] = { |
| 3683 { syn_reply_wrong_length.get(), }, | 3683 { syn_reply_wrong_length.get(), }, |
| 3684 }; | 3684 }; |
| 3685 | 3685 |
| 3686 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_cases); ++i) { | 3686 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_cases); ++i) { |
| 3687 scoped_ptr<spdy::SpdyFrame> req( | 3687 scoped_ptr<spdy::SpdyFrame> req( |
| 3688 ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); | 3688 ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); |
| 3689 MockWrite writes[] = { | 3689 MockWrite writes[] = { |
| 3690 CreateMockWrite(*req), | 3690 CreateMockWrite(*req), |
| 3691 MockWrite(true, 0, 0) // EOF | 3691 MockWrite(ASYNC, 0, 0) // EOF |
| 3692 }; | 3692 }; |
| 3693 | 3693 |
| 3694 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); | 3694 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); |
| 3695 MockRead reads[] = { | 3695 MockRead reads[] = { |
| 3696 CreateMockRead(*test_cases[i].syn_reply), | 3696 CreateMockRead(*test_cases[i].syn_reply), |
| 3697 CreateMockRead(*body), | 3697 CreateMockRead(*body), |
| 3698 MockRead(true, 0, 0) // EOF | 3698 MockRead(ASYNC, 0, 0) // EOF |
| 3699 }; | 3699 }; |
| 3700 | 3700 |
| 3701 scoped_ptr<DelayedSocketData> data( | 3701 scoped_ptr<DelayedSocketData> data( |
| 3702 new DelayedSocketData(1, reads, arraysize(reads), | 3702 new DelayedSocketData(1, reads, arraysize(reads), |
| 3703 writes, arraysize(writes))); | 3703 writes, arraysize(writes))); |
| 3704 NormalSpdyTransactionHelper helper(CreateGetRequest(), | 3704 NormalSpdyTransactionHelper helper(CreateGetRequest(), |
| 3705 BoundNetLog(), GetParam()); | 3705 BoundNetLog(), GetParam()); |
| 3706 helper.RunToCompletion(data.get()); | 3706 helper.RunToCompletion(data.get()); |
| 3707 TransactionHelperResult out = helper.output(); | 3707 TransactionHelperResult out = helper.output(); |
| 3708 EXPECT_EQ(ERR_SPDY_PROTOCOL_ERROR, out.rv); | 3708 EXPECT_EQ(ERR_SPDY_PROTOCOL_ERROR, out.rv); |
| 3709 } | 3709 } |
| 3710 } | 3710 } |
| 3711 | 3711 |
| 3712 // Test that we shutdown correctly on write errors. | 3712 // Test that we shutdown correctly on write errors. |
| 3713 TEST_P(SpdyNetworkTransactionTest, WriteError) { | 3713 TEST_P(SpdyNetworkTransactionTest, WriteError) { |
| 3714 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); | 3714 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); |
| 3715 MockWrite writes[] = { | 3715 MockWrite writes[] = { |
| 3716 // We'll write 10 bytes successfully | 3716 // We'll write 10 bytes successfully |
| 3717 MockWrite(true, req->data(), 10), | 3717 MockWrite(ASYNC, req->data(), 10), |
| 3718 // Followed by ERROR! | 3718 // Followed by ERROR! |
| 3719 MockWrite(true, ERR_FAILED), | 3719 MockWrite(ASYNC, ERR_FAILED), |
| 3720 }; | 3720 }; |
| 3721 | 3721 |
| 3722 scoped_ptr<DelayedSocketData> data( | 3722 scoped_ptr<DelayedSocketData> data( |
| 3723 new DelayedSocketData(2, NULL, 0, | 3723 new DelayedSocketData(2, NULL, 0, |
| 3724 writes, arraysize(writes))); | 3724 writes, arraysize(writes))); |
| 3725 NormalSpdyTransactionHelper helper(CreateGetRequest(), | 3725 NormalSpdyTransactionHelper helper(CreateGetRequest(), |
| 3726 BoundNetLog(), GetParam()); | 3726 BoundNetLog(), GetParam()); |
| 3727 helper.RunToCompletion(data.get()); | 3727 helper.RunToCompletion(data.get()); |
| 3728 TransactionHelperResult out = helper.output(); | 3728 TransactionHelperResult out = helper.output(); |
| 3729 EXPECT_EQ(ERR_FAILED, out.rv); | 3729 EXPECT_EQ(ERR_FAILED, out.rv); |
| 3730 data->Reset(); | 3730 data->Reset(); |
| 3731 } | 3731 } |
| 3732 | 3732 |
| 3733 // Test that partial writes work. | 3733 // Test that partial writes work. |
| 3734 TEST_P(SpdyNetworkTransactionTest, PartialWrite) { | 3734 TEST_P(SpdyNetworkTransactionTest, PartialWrite) { |
| 3735 // Chop the SYN_STREAM frame into 5 chunks. | 3735 // Chop the SYN_STREAM frame into 5 chunks. |
| 3736 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); | 3736 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); |
| 3737 const int kChunks = 5; | 3737 const int kChunks = 5; |
| 3738 scoped_array<MockWrite> writes(ChopWriteFrame(*req.get(), kChunks)); | 3738 scoped_array<MockWrite> writes(ChopWriteFrame(*req.get(), kChunks)); |
| 3739 | 3739 |
| 3740 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); | 3740 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); |
| 3741 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); | 3741 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); |
| 3742 MockRead reads[] = { | 3742 MockRead reads[] = { |
| 3743 CreateMockRead(*resp), | 3743 CreateMockRead(*resp), |
| 3744 CreateMockRead(*body), | 3744 CreateMockRead(*body), |
| 3745 MockRead(true, 0, 0) // EOF | 3745 MockRead(ASYNC, 0, 0) // EOF |
| 3746 }; | 3746 }; |
| 3747 | 3747 |
| 3748 scoped_ptr<DelayedSocketData> data( | 3748 scoped_ptr<DelayedSocketData> data( |
| 3749 new DelayedSocketData(kChunks, reads, arraysize(reads), | 3749 new DelayedSocketData(kChunks, reads, arraysize(reads), |
| 3750 writes.get(), kChunks)); | 3750 writes.get(), kChunks)); |
| 3751 NormalSpdyTransactionHelper helper(CreateGetRequest(), | 3751 NormalSpdyTransactionHelper helper(CreateGetRequest(), |
| 3752 BoundNetLog(), GetParam()); | 3752 BoundNetLog(), GetParam()); |
| 3753 helper.RunToCompletion(data.get()); | 3753 helper.RunToCompletion(data.get()); |
| 3754 TransactionHelperResult out = helper.output(); | 3754 TransactionHelperResult out = helper.output(); |
| 3755 EXPECT_EQ(OK, out.rv); | 3755 EXPECT_EQ(OK, out.rv); |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3797 }; | 3797 }; |
| 3798 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(kExtraHeaders, 1, false, 1, | 3798 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(kExtraHeaders, 1, false, 1, |
| 3799 LOWEST)); | 3799 LOWEST)); |
| 3800 MockWrite writes[] = { CreateMockWrite(*req) }; | 3800 MockWrite writes[] = { CreateMockWrite(*req) }; |
| 3801 | 3801 |
| 3802 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); | 3802 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); |
| 3803 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); | 3803 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); |
| 3804 MockRead reads[] = { | 3804 MockRead reads[] = { |
| 3805 CreateMockRead(*resp), | 3805 CreateMockRead(*resp), |
| 3806 CreateMockRead(*body), | 3806 CreateMockRead(*body), |
| 3807 MockRead(true, 0, 0) // EOF | 3807 MockRead(ASYNC, 0, 0) // EOF |
| 3808 }; | 3808 }; |
| 3809 | 3809 |
| 3810 net::CapturingBoundNetLog log(net::CapturingNetLog::kUnbounded); | 3810 net::CapturingBoundNetLog log(net::CapturingNetLog::kUnbounded); |
| 3811 | 3811 |
| 3812 scoped_ptr<DelayedSocketData> data( | 3812 scoped_ptr<DelayedSocketData> data( |
| 3813 new DelayedSocketData(1, reads, arraysize(reads), | 3813 new DelayedSocketData(1, reads, arraysize(reads), |
| 3814 writes, arraysize(writes))); | 3814 writes, arraysize(writes))); |
| 3815 NormalSpdyTransactionHelper helper(CreateGetRequestWithUserAgent(), | 3815 NormalSpdyTransactionHelper helper(CreateGetRequestWithUserAgent(), |
| 3816 log.bound(), GetParam()); | 3816 log.bound(), GetParam()); |
| 3817 helper.RunToCompletion(data.get()); | 3817 helper.RunToCompletion(data.get()); |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3899 char combined_data_frames[100]; | 3899 char combined_data_frames[100]; |
| 3900 int combined_data_frames_len = | 3900 int combined_data_frames_len = |
| 3901 CombineFrames(data_frames, arraysize(data_frames), | 3901 CombineFrames(data_frames, arraysize(data_frames), |
| 3902 combined_data_frames, arraysize(combined_data_frames)); | 3902 combined_data_frames, arraysize(combined_data_frames)); |
| 3903 scoped_ptr<spdy::SpdyFrame> last_frame( | 3903 scoped_ptr<spdy::SpdyFrame> last_frame( |
| 3904 framer.CreateDataFrame(1, "d", 1, spdy::DATA_FLAG_FIN)); | 3904 framer.CreateDataFrame(1, "d", 1, spdy::DATA_FLAG_FIN)); |
| 3905 | 3905 |
| 3906 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); | 3906 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); |
| 3907 MockRead reads[] = { | 3907 MockRead reads[] = { |
| 3908 CreateMockRead(*resp), | 3908 CreateMockRead(*resp), |
| 3909 MockRead(true, ERR_IO_PENDING), // Force a pause | 3909 MockRead(ASYNC, ERR_IO_PENDING), // Force a pause |
| 3910 MockRead(true, combined_data_frames, combined_data_frames_len), | 3910 MockRead(ASYNC, combined_data_frames, combined_data_frames_len), |
| 3911 MockRead(true, ERR_IO_PENDING), // Force a pause | 3911 MockRead(ASYNC, ERR_IO_PENDING), // Force a pause |
| 3912 CreateMockRead(*last_frame), | 3912 CreateMockRead(*last_frame), |
| 3913 MockRead(true, 0, 0) // EOF | 3913 MockRead(ASYNC, 0, 0) // EOF |
| 3914 }; | 3914 }; |
| 3915 | 3915 |
| 3916 scoped_ptr<DelayedSocketData> data( | 3916 scoped_ptr<DelayedSocketData> data( |
| 3917 new DelayedSocketData(1, reads, arraysize(reads), | 3917 new DelayedSocketData(1, reads, arraysize(reads), |
| 3918 writes, arraysize(writes))); | 3918 writes, arraysize(writes))); |
| 3919 | 3919 |
| 3920 | 3920 |
| 3921 TestCompletionCallback callback; | 3921 TestCompletionCallback callback; |
| 3922 | 3922 |
| 3923 NormalSpdyTransactionHelper helper(CreateGetRequest(), | 3923 NormalSpdyTransactionHelper helper(CreateGetRequest(), |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3998 data_frame_fin.get() | 3998 data_frame_fin.get() |
| 3999 }; | 3999 }; |
| 4000 char combined_data_frames[100]; | 4000 char combined_data_frames[100]; |
| 4001 int combined_data_frames_len = | 4001 int combined_data_frames_len = |
| 4002 CombineFrames(data_frames, arraysize(data_frames), | 4002 CombineFrames(data_frames, arraysize(data_frames), |
| 4003 combined_data_frames, arraysize(combined_data_frames)); | 4003 combined_data_frames, arraysize(combined_data_frames)); |
| 4004 | 4004 |
| 4005 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); | 4005 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); |
| 4006 MockRead reads[] = { | 4006 MockRead reads[] = { |
| 4007 CreateMockRead(*resp), | 4007 CreateMockRead(*resp), |
| 4008 MockRead(true, ERR_IO_PENDING), // Force a pause | 4008 MockRead(ASYNC, ERR_IO_PENDING), // Force a pause |
| 4009 MockRead(true, combined_data_frames, combined_data_frames_len), | 4009 MockRead(ASYNC, combined_data_frames, combined_data_frames_len), |
| 4010 MockRead(true, 0, 0) // EOF | 4010 MockRead(ASYNC, 0, 0) // EOF |
| 4011 }; | 4011 }; |
| 4012 | 4012 |
| 4013 scoped_ptr<DelayedSocketData> data( | 4013 scoped_ptr<DelayedSocketData> data( |
| 4014 new DelayedSocketData(1, reads, arraysize(reads), | 4014 new DelayedSocketData(1, reads, arraysize(reads), |
| 4015 writes, arraysize(writes))); | 4015 writes, arraysize(writes))); |
| 4016 | 4016 |
| 4017 NormalSpdyTransactionHelper helper(CreateGetRequest(), | 4017 NormalSpdyTransactionHelper helper(CreateGetRequest(), |
| 4018 BoundNetLog(), GetParam()); | 4018 BoundNetLog(), GetParam()); |
| 4019 helper.RunPreTestSetup(); | 4019 helper.RunPreTestSetup(); |
| 4020 helper.AddData(data.get()); | 4020 helper.AddData(data.get()); |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4097 data_frame.get(), | 4097 data_frame.get(), |
| 4098 data_frame.get(), | 4098 data_frame.get(), |
| 4099 data_frame_fin.get() | 4099 data_frame_fin.get() |
| 4100 }; | 4100 }; |
| 4101 char combined_frames[200]; | 4101 char combined_frames[200]; |
| 4102 int combined_frames_len = | 4102 int combined_frames_len = |
| 4103 CombineFrames(frames, arraysize(frames), | 4103 CombineFrames(frames, arraysize(frames), |
| 4104 combined_frames, arraysize(combined_frames)); | 4104 combined_frames, arraysize(combined_frames)); |
| 4105 | 4105 |
| 4106 MockRead reads[] = { | 4106 MockRead reads[] = { |
| 4107 MockRead(true, combined_frames, combined_frames_len), | 4107 MockRead(ASYNC, combined_frames, combined_frames_len), |
| 4108 MockRead(true, 0, 0) // EOF | 4108 MockRead(ASYNC, 0, 0) // EOF |
| 4109 }; | 4109 }; |
| 4110 | 4110 |
| 4111 scoped_ptr<DelayedSocketData> data( | 4111 scoped_ptr<DelayedSocketData> data( |
| 4112 new DelayedSocketData(1, reads, arraysize(reads), | 4112 new DelayedSocketData(1, reads, arraysize(reads), |
| 4113 writes, arraysize(writes))); | 4113 writes, arraysize(writes))); |
| 4114 | 4114 |
| 4115 NormalSpdyTransactionHelper helper(CreateGetRequest(), | 4115 NormalSpdyTransactionHelper helper(CreateGetRequest(), |
| 4116 BoundNetLog(), GetParam()); | 4116 BoundNetLog(), GetParam()); |
| 4117 helper.RunPreTestSetup(); | 4117 helper.RunPreTestSetup(); |
| 4118 helper.AddData(data.get()); | 4118 helper.AddData(data.get()); |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4185 data_frame.get(), | 4185 data_frame.get(), |
| 4186 data_frame.get() | 4186 data_frame.get() |
| 4187 }; | 4187 }; |
| 4188 char combined_data_frames[100]; | 4188 char combined_data_frames[100]; |
| 4189 int combined_data_frames_len = | 4189 int combined_data_frames_len = |
| 4190 CombineFrames(data_frames, arraysize(data_frames), | 4190 CombineFrames(data_frames, arraysize(data_frames), |
| 4191 combined_data_frames, arraysize(combined_data_frames)); | 4191 combined_data_frames, arraysize(combined_data_frames)); |
| 4192 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); | 4192 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); |
| 4193 MockRead reads[] = { | 4193 MockRead reads[] = { |
| 4194 CreateMockRead(*resp), | 4194 CreateMockRead(*resp), |
| 4195 MockRead(true, ERR_IO_PENDING), // Force a wait | 4195 MockRead(ASYNC, ERR_IO_PENDING), // Force a wait |
| 4196 MockRead(true, combined_data_frames, combined_data_frames_len), | 4196 MockRead(ASYNC, combined_data_frames, combined_data_frames_len), |
| 4197 MockRead(true, 0, 0) // EOF | 4197 MockRead(ASYNC, 0, 0) // EOF |
| 4198 }; | 4198 }; |
| 4199 | 4199 |
| 4200 scoped_ptr<DelayedSocketData> data( | 4200 scoped_ptr<DelayedSocketData> data( |
| 4201 new DelayedSocketData(1, reads, arraysize(reads), | 4201 new DelayedSocketData(1, reads, arraysize(reads), |
| 4202 writes, arraysize(writes))); | 4202 writes, arraysize(writes))); |
| 4203 | 4203 |
| 4204 NormalSpdyTransactionHelper helper(CreateGetRequest(), | 4204 NormalSpdyTransactionHelper helper(CreateGetRequest(), |
| 4205 BoundNetLog(), GetParam()); | 4205 BoundNetLog(), GetParam()); |
| 4206 helper.RunPreTestSetup(); | 4206 helper.RunPreTestSetup(); |
| 4207 helper.AddData(data.get()); | 4207 helper.AddData(data.get()); |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4266 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); | 4266 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); |
| 4267 MockWrite writes[] = { CreateMockWrite(*req) }; | 4267 MockWrite writes[] = { CreateMockWrite(*req) }; |
| 4268 | 4268 |
| 4269 // NOTE: We don't FIN the stream. | 4269 // NOTE: We don't FIN the stream. |
| 4270 scoped_ptr<spdy::SpdyFrame> data_frame( | 4270 scoped_ptr<spdy::SpdyFrame> data_frame( |
| 4271 framer.CreateDataFrame(1, "message", 7, spdy::DATA_FLAG_NONE)); | 4271 framer.CreateDataFrame(1, "message", 7, spdy::DATA_FLAG_NONE)); |
| 4272 | 4272 |
| 4273 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); | 4273 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); |
| 4274 MockRead reads[] = { | 4274 MockRead reads[] = { |
| 4275 CreateMockRead(*resp), | 4275 CreateMockRead(*resp), |
| 4276 MockRead(true, ERR_IO_PENDING), // Force a wait | 4276 MockRead(ASYNC, ERR_IO_PENDING), // Force a wait |
| 4277 CreateMockRead(*data_frame), | 4277 CreateMockRead(*data_frame), |
| 4278 MockRead(true, 0, 0) // EOF | 4278 MockRead(ASYNC, 0, 0) // EOF |
| 4279 }; | 4279 }; |
| 4280 | 4280 |
| 4281 scoped_ptr<DelayedSocketData> data( | 4281 scoped_ptr<DelayedSocketData> data( |
| 4282 new DelayedSocketData(1, reads, arraysize(reads), | 4282 new DelayedSocketData(1, reads, arraysize(reads), |
| 4283 writes, arraysize(writes))); | 4283 writes, arraysize(writes))); |
| 4284 | 4284 |
| 4285 NormalSpdyTransactionHelper helper(CreateGetRequest(), | 4285 NormalSpdyTransactionHelper helper(CreateGetRequest(), |
| 4286 BoundNetLog(), GetParam()); | 4286 BoundNetLog(), GetParam()); |
| 4287 helper.RunPreTestSetup(); | 4287 helper.RunPreTestSetup(); |
| 4288 helper.AddData(data.get()); | 4288 helper.AddData(data.get()); |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4397 setting.set_id(kSampleId3); | 4397 setting.set_id(kSampleId3); |
| 4398 settings.push_back(std::make_pair(setting, kSampleValue3)); | 4398 settings.push_back(std::make_pair(setting, kSampleValue3)); |
| 4399 settings_frame.reset(ConstructSpdySettings(settings)); | 4399 settings_frame.reset(ConstructSpdySettings(settings)); |
| 4400 } | 4400 } |
| 4401 | 4401 |
| 4402 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); | 4402 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); |
| 4403 MockRead reads[] = { | 4403 MockRead reads[] = { |
| 4404 CreateMockRead(*reply), | 4404 CreateMockRead(*reply), |
| 4405 CreateMockRead(*body), | 4405 CreateMockRead(*body), |
| 4406 CreateMockRead(*settings_frame), | 4406 CreateMockRead(*settings_frame), |
| 4407 MockRead(true, 0, 0) // EOF | 4407 MockRead(ASYNC, 0, 0) // EOF |
| 4408 }; | 4408 }; |
| 4409 | 4409 |
| 4410 scoped_ptr<DelayedSocketData> data( | 4410 scoped_ptr<DelayedSocketData> data( |
| 4411 new DelayedSocketData(1, reads, arraysize(reads), | 4411 new DelayedSocketData(1, reads, arraysize(reads), |
| 4412 writes, arraysize(writes))); | 4412 writes, arraysize(writes))); |
| 4413 helper.AddData(data.get()); | 4413 helper.AddData(data.get()); |
| 4414 helper.RunDefaultTest(); | 4414 helper.RunDefaultTest(); |
| 4415 helper.VerifyDataConsumed(); | 4415 helper.VerifyDataConsumed(); |
| 4416 TransactionHelperResult out = helper.output(); | 4416 TransactionHelperResult out = helper.output(); |
| 4417 EXPECT_EQ(OK, out.rv); | 4417 EXPECT_EQ(OK, out.rv); |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4515 ConstructSpdyPacket(kSynReplyInfo, | 4515 ConstructSpdyPacket(kSynReplyInfo, |
| 4516 kExtraHeaders, | 4516 kExtraHeaders, |
| 4517 arraysize(kExtraHeaders) / 2, | 4517 arraysize(kExtraHeaders) / 2, |
| 4518 NULL, | 4518 NULL, |
| 4519 0)); | 4519 0)); |
| 4520 | 4520 |
| 4521 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); | 4521 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); |
| 4522 MockRead reads[] = { | 4522 MockRead reads[] = { |
| 4523 CreateMockRead(*reply), | 4523 CreateMockRead(*reply), |
| 4524 CreateMockRead(*body), | 4524 CreateMockRead(*body), |
| 4525 MockRead(true, 0, 0) // EOF | 4525 MockRead(ASYNC, 0, 0) // EOF |
| 4526 }; | 4526 }; |
| 4527 | 4527 |
| 4528 scoped_ptr<DelayedSocketData> data( | 4528 scoped_ptr<DelayedSocketData> data( |
| 4529 new DelayedSocketData(2, reads, arraysize(reads), | 4529 new DelayedSocketData(2, reads, arraysize(reads), |
| 4530 writes, arraysize(writes))); | 4530 writes, arraysize(writes))); |
| 4531 helper.AddData(data.get()); | 4531 helper.AddData(data.get()); |
| 4532 helper.RunDefaultTest(); | 4532 helper.RunDefaultTest(); |
| 4533 helper.VerifyDataConsumed(); | 4533 helper.VerifyDataConsumed(); |
| 4534 TransactionHelperResult out = helper.output(); | 4534 TransactionHelperResult out = helper.output(); |
| 4535 EXPECT_EQ(OK, out.rv); | 4535 EXPECT_EQ(OK, out.rv); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 4559 } | 4559 } |
| 4560 } | 4560 } |
| 4561 | 4561 |
| 4562 TEST_P(SpdyNetworkTransactionTest, GoAwayWithActiveStream) { | 4562 TEST_P(SpdyNetworkTransactionTest, GoAwayWithActiveStream) { |
| 4563 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); | 4563 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); |
| 4564 MockWrite writes[] = { CreateMockWrite(*req) }; | 4564 MockWrite writes[] = { CreateMockWrite(*req) }; |
| 4565 | 4565 |
| 4566 scoped_ptr<spdy::SpdyFrame> go_away(ConstructSpdyGoAway()); | 4566 scoped_ptr<spdy::SpdyFrame> go_away(ConstructSpdyGoAway()); |
| 4567 MockRead reads[] = { | 4567 MockRead reads[] = { |
| 4568 CreateMockRead(*go_away), | 4568 CreateMockRead(*go_away), |
| 4569 MockRead(true, 0, 0), // EOF | 4569 MockRead(ASYNC, 0, 0), // EOF |
| 4570 }; | 4570 }; |
| 4571 | 4571 |
| 4572 scoped_ptr<DelayedSocketData> data( | 4572 scoped_ptr<DelayedSocketData> data( |
| 4573 new DelayedSocketData(1, reads, arraysize(reads), | 4573 new DelayedSocketData(1, reads, arraysize(reads), |
| 4574 writes, arraysize(writes))); | 4574 writes, arraysize(writes))); |
| 4575 NormalSpdyTransactionHelper helper(CreateGetRequest(), | 4575 NormalSpdyTransactionHelper helper(CreateGetRequest(), |
| 4576 BoundNetLog(), GetParam()); | 4576 BoundNetLog(), GetParam()); |
| 4577 helper.AddData(data.get()); | 4577 helper.AddData(data.get()); |
| 4578 helper.RunToCompletion(data.get()); | 4578 helper.RunToCompletion(data.get()); |
| 4579 TransactionHelperResult out = helper.output(); | 4579 TransactionHelperResult out = helper.output(); |
| 4580 EXPECT_EQ(ERR_ABORTED, out.rv); | 4580 EXPECT_EQ(ERR_ABORTED, out.rv); |
| 4581 } | 4581 } |
| 4582 | 4582 |
| 4583 TEST_P(SpdyNetworkTransactionTest, CloseWithActiveStream) { | 4583 TEST_P(SpdyNetworkTransactionTest, CloseWithActiveStream) { |
| 4584 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); | 4584 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); |
| 4585 MockWrite writes[] = { CreateMockWrite(*req) }; | 4585 MockWrite writes[] = { CreateMockWrite(*req) }; |
| 4586 | 4586 |
| 4587 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); | 4587 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); |
| 4588 MockRead reads[] = { | 4588 MockRead reads[] = { |
| 4589 CreateMockRead(*resp), | 4589 CreateMockRead(*resp), |
| 4590 MockRead(false, 0, 0) // EOF | 4590 MockRead(SYNCHRONOUS, 0, 0) // EOF |
| 4591 }; | 4591 }; |
| 4592 | 4592 |
| 4593 scoped_ptr<DelayedSocketData> data( | 4593 scoped_ptr<DelayedSocketData> data( |
| 4594 new DelayedSocketData(1, reads, arraysize(reads), | 4594 new DelayedSocketData(1, reads, arraysize(reads), |
| 4595 writes, arraysize(writes))); | 4595 writes, arraysize(writes))); |
| 4596 BoundNetLog log; | 4596 BoundNetLog log; |
| 4597 NormalSpdyTransactionHelper helper(CreateGetRequest(), | 4597 NormalSpdyTransactionHelper helper(CreateGetRequest(), |
| 4598 log, GetParam()); | 4598 log, GetParam()); |
| 4599 helper.RunPreTestSetup(); | 4599 helper.RunPreTestSetup(); |
| 4600 helper.AddData(data.get()); | 4600 helper.AddData(data.get()); |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4634 "Proxy-Connection: keep-alive\r\n\r\n"}; | 4634 "Proxy-Connection: keep-alive\r\n\r\n"}; |
| 4635 const char kConnect80[] = {"CONNECT www.google.com:80 HTTP/1.1\r\n" | 4635 const char kConnect80[] = {"CONNECT www.google.com:80 HTTP/1.1\r\n" |
| 4636 "Host: www.google.com\r\n" | 4636 "Host: www.google.com\r\n" |
| 4637 "Proxy-Connection: keep-alive\r\n\r\n"}; | 4637 "Proxy-Connection: keep-alive\r\n\r\n"}; |
| 4638 const char kHTTP200[] = {"HTTP/1.1 200 OK\r\n\r\n"}; | 4638 const char kHTTP200[] = {"HTTP/1.1 200 OK\r\n\r\n"}; |
| 4639 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); | 4639 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); |
| 4640 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); | 4640 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); |
| 4641 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); | 4641 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); |
| 4642 | 4642 |
| 4643 MockWrite writes_SPDYNPN[] = { | 4643 MockWrite writes_SPDYNPN[] = { |
| 4644 MockWrite(false, kConnect443, arraysize(kConnect443) - 1, 0), | 4644 MockWrite(SYNCHRONOUS, kConnect443, arraysize(kConnect443) - 1, 0), |
| 4645 CreateMockWrite(*req, 2), | 4645 CreateMockWrite(*req, 2), |
| 4646 }; | 4646 }; |
| 4647 MockRead reads_SPDYNPN[] = { | 4647 MockRead reads_SPDYNPN[] = { |
| 4648 MockRead(false, kHTTP200, arraysize(kHTTP200) - 1, 1), | 4648 MockRead(SYNCHRONOUS, kHTTP200, arraysize(kHTTP200) - 1, 1), |
| 4649 CreateMockRead(*resp, 3), | 4649 CreateMockRead(*resp, 3), |
| 4650 CreateMockRead(*body.get(), 4), | 4650 CreateMockRead(*body.get(), 4), |
| 4651 MockRead(true, 0, 0, 5), | 4651 MockRead(ASYNC, 0, 0, 5), |
| 4652 }; | 4652 }; |
| 4653 | 4653 |
| 4654 MockWrite writes_SPDYSSL[] = { | 4654 MockWrite writes_SPDYSSL[] = { |
| 4655 MockWrite(false, kConnect80, arraysize(kConnect80) - 1, 0), | 4655 MockWrite(SYNCHRONOUS, kConnect80, arraysize(kConnect80) - 1, 0), |
| 4656 CreateMockWrite(*req, 2), | 4656 CreateMockWrite(*req, 2), |
| 4657 }; | 4657 }; |
| 4658 MockRead reads_SPDYSSL[] = { | 4658 MockRead reads_SPDYSSL[] = { |
| 4659 MockRead(false, kHTTP200, arraysize(kHTTP200) - 1, 1), | 4659 MockRead(SYNCHRONOUS, kHTTP200, arraysize(kHTTP200) - 1, 1), |
| 4660 CreateMockRead(*resp, 3), | 4660 CreateMockRead(*resp, 3), |
| 4661 CreateMockRead(*body.get(), 4), | 4661 CreateMockRead(*body.get(), 4), |
| 4662 MockRead(true, 0, 0, 5), | 4662 MockRead(ASYNC, 0, 0, 5), |
| 4663 }; | 4663 }; |
| 4664 | 4664 |
| 4665 MockWrite writes_SPDYNOSSL[] = { | 4665 MockWrite writes_SPDYNOSSL[] = { |
| 4666 CreateMockWrite(*req, 0), | 4666 CreateMockWrite(*req, 0), |
| 4667 }; | 4667 }; |
| 4668 | 4668 |
| 4669 MockRead reads_SPDYNOSSL[] = { | 4669 MockRead reads_SPDYNOSSL[] = { |
| 4670 CreateMockRead(*resp, 1), | 4670 CreateMockRead(*resp, 1), |
| 4671 CreateMockRead(*body.get(), 2), | 4671 CreateMockRead(*body.get(), 2), |
| 4672 MockRead(true, 0, 0, 3), | 4672 MockRead(ASYNC, 0, 0, 3), |
| 4673 }; | 4673 }; |
| 4674 | 4674 |
| 4675 scoped_ptr<OrderedSocketData> data; | 4675 scoped_ptr<OrderedSocketData> data; |
| 4676 switch(GetParam()) { | 4676 switch(GetParam()) { |
| 4677 case SPDYNOSSL: | 4677 case SPDYNOSSL: |
| 4678 data.reset(new OrderedSocketData(reads_SPDYNOSSL, | 4678 data.reset(new OrderedSocketData(reads_SPDYNOSSL, |
| 4679 arraysize(reads_SPDYNOSSL), | 4679 arraysize(reads_SPDYNOSSL), |
| 4680 writes_SPDYNOSSL, | 4680 writes_SPDYNOSSL, |
| 4681 arraysize(writes_SPDYNOSSL))); | 4681 arraysize(writes_SPDYNOSSL))); |
| 4682 break; | 4682 break; |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4742 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); | 4742 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); |
| 4743 MockWrite writes[] = { | 4743 MockWrite writes[] = { |
| 4744 CreateMockWrite(*req, 1), | 4744 CreateMockWrite(*req, 1), |
| 4745 }; | 4745 }; |
| 4746 | 4746 |
| 4747 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); | 4747 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); |
| 4748 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); | 4748 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); |
| 4749 MockRead reads[] = { | 4749 MockRead reads[] = { |
| 4750 CreateMockRead(*resp, 2), | 4750 CreateMockRead(*resp, 2), |
| 4751 CreateMockRead(*body, 3), | 4751 CreateMockRead(*body, 3), |
| 4752 MockRead(true, ERR_IO_PENDING, 4), // Force a pause | 4752 MockRead(ASYNC, ERR_IO_PENDING, 4), // Force a pause |
| 4753 MockRead(true, 0, 5) // EOF | 4753 MockRead(ASYNC, 0, 5) // EOF |
| 4754 }; | 4754 }; |
| 4755 scoped_ptr<OrderedSocketData> data( | 4755 scoped_ptr<OrderedSocketData> data( |
| 4756 new OrderedSocketData(reads, arraysize(reads), | 4756 new OrderedSocketData(reads, arraysize(reads), |
| 4757 writes, arraysize(writes))); | 4757 writes, arraysize(writes))); |
| 4758 helper.AddData(data.get()); | 4758 helper.AddData(data.get()); |
| 4759 HttpNetworkTransaction* trans = helper.trans(); | 4759 HttpNetworkTransaction* trans = helper.trans(); |
| 4760 | 4760 |
| 4761 TestCompletionCallback callback; | 4761 TestCompletionCallback callback; |
| 4762 TransactionHelperResult out; | 4762 TransactionHelperResult out; |
| 4763 out.rv = trans->Start( | 4763 out.rv = trans->Start( |
| (...skipping 29 matching lines...) Expand all Loading... |
| 4793 const char kConnect80[] = {"CONNECT www.google.com:80 HTTP/1.1\r\n" | 4793 const char kConnect80[] = {"CONNECT www.google.com:80 HTTP/1.1\r\n" |
| 4794 "Host: www.google.com\r\n" | 4794 "Host: www.google.com\r\n" |
| 4795 "Proxy-Connection: keep-alive\r\n\r\n"}; | 4795 "Proxy-Connection: keep-alive\r\n\r\n"}; |
| 4796 const char kHTTP200[] = {"HTTP/1.1 200 OK\r\n\r\n"}; | 4796 const char kHTTP200[] = {"HTTP/1.1 200 OK\r\n\r\n"}; |
| 4797 scoped_ptr<spdy::SpdyFrame> req2(ConstructSpdyGet( | 4797 scoped_ptr<spdy::SpdyFrame> req2(ConstructSpdyGet( |
| 4798 "http://www.google.com/foo.dat", false, 1, LOWEST)); | 4798 "http://www.google.com/foo.dat", false, 1, LOWEST)); |
| 4799 scoped_ptr<spdy::SpdyFrame> resp2(ConstructSpdyGetSynReply(NULL, 0, 1)); | 4799 scoped_ptr<spdy::SpdyFrame> resp2(ConstructSpdyGetSynReply(NULL, 0, 1)); |
| 4800 scoped_ptr<spdy::SpdyFrame> body2(ConstructSpdyBodyFrame(1, true)); | 4800 scoped_ptr<spdy::SpdyFrame> body2(ConstructSpdyBodyFrame(1, true)); |
| 4801 | 4801 |
| 4802 MockWrite writes_SPDYNPN[] = { | 4802 MockWrite writes_SPDYNPN[] = { |
| 4803 MockWrite(false, kConnect443, arraysize(kConnect443) - 1, 0), | 4803 MockWrite(SYNCHRONOUS, kConnect443, arraysize(kConnect443) - 1, 0), |
| 4804 CreateMockWrite(*req2, 2), | 4804 CreateMockWrite(*req2, 2), |
| 4805 }; | 4805 }; |
| 4806 MockRead reads_SPDYNPN[] = { | 4806 MockRead reads_SPDYNPN[] = { |
| 4807 MockRead(false, kHTTP200, arraysize(kHTTP200) - 1, 1), | 4807 MockRead(SYNCHRONOUS, kHTTP200, arraysize(kHTTP200) - 1, 1), |
| 4808 CreateMockRead(*resp2, 3), | 4808 CreateMockRead(*resp2, 3), |
| 4809 CreateMockRead(*body2, 4), | 4809 CreateMockRead(*body2, 4), |
| 4810 MockRead(true, 0, 5) // EOF | 4810 MockRead(ASYNC, 0, 5) // EOF |
| 4811 }; | 4811 }; |
| 4812 | 4812 |
| 4813 MockWrite writes_SPDYNOSSL[] = { | 4813 MockWrite writes_SPDYNOSSL[] = { |
| 4814 CreateMockWrite(*req2, 0), | 4814 CreateMockWrite(*req2, 0), |
| 4815 }; | 4815 }; |
| 4816 MockRead reads_SPDYNOSSL[] = { | 4816 MockRead reads_SPDYNOSSL[] = { |
| 4817 CreateMockRead(*resp2, 1), | 4817 CreateMockRead(*resp2, 1), |
| 4818 CreateMockRead(*body2, 2), | 4818 CreateMockRead(*body2, 2), |
| 4819 MockRead(true, 0, 3) // EOF | 4819 MockRead(ASYNC, 0, 3) // EOF |
| 4820 }; | 4820 }; |
| 4821 | 4821 |
| 4822 MockWrite writes_SPDYSSL[] = { | 4822 MockWrite writes_SPDYSSL[] = { |
| 4823 MockWrite(false, kConnect80, arraysize(kConnect80) - 1, 0), | 4823 MockWrite(SYNCHRONOUS, kConnect80, arraysize(kConnect80) - 1, 0), |
| 4824 CreateMockWrite(*req2, 2), | 4824 CreateMockWrite(*req2, 2), |
| 4825 }; | 4825 }; |
| 4826 MockRead reads_SPDYSSL[] = { | 4826 MockRead reads_SPDYSSL[] = { |
| 4827 MockRead(false, kHTTP200, arraysize(kHTTP200) - 1, 1), | 4827 MockRead(SYNCHRONOUS, kHTTP200, arraysize(kHTTP200) - 1, 1), |
| 4828 CreateMockRead(*resp2, 3), | 4828 CreateMockRead(*resp2, 3), |
| 4829 CreateMockRead(*body2, 4), | 4829 CreateMockRead(*body2, 4), |
| 4830 MockRead(true, 0, 0, 5), | 4830 MockRead(ASYNC, 0, 0, 5), |
| 4831 }; | 4831 }; |
| 4832 | 4832 |
| 4833 scoped_ptr<OrderedSocketData> data_proxy; | 4833 scoped_ptr<OrderedSocketData> data_proxy; |
| 4834 switch(GetParam()) { | 4834 switch(GetParam()) { |
| 4835 case SPDYNPN: | 4835 case SPDYNPN: |
| 4836 data_proxy.reset(new OrderedSocketData(reads_SPDYNPN, | 4836 data_proxy.reset(new OrderedSocketData(reads_SPDYNPN, |
| 4837 arraysize(reads_SPDYNPN), | 4837 arraysize(reads_SPDYNPN), |
| 4838 writes_SPDYNPN, | 4838 writes_SPDYNPN, |
| 4839 arraysize(writes_SPDYNPN))); | 4839 arraysize(writes_SPDYNPN))); |
| 4840 break; | 4840 break; |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4897 // When we get a TCP-level RST, we need to retry a HttpNetworkTransaction | 4897 // When we get a TCP-level RST, we need to retry a HttpNetworkTransaction |
| 4898 // on a new connection, if the connection was previously known to be good. | 4898 // on a new connection, if the connection was previously known to be good. |
| 4899 // This can happen when a server reboots without saying goodbye, or when | 4899 // This can happen when a server reboots without saying goodbye, or when |
| 4900 // we're behind a NAT that masked the RST. | 4900 // we're behind a NAT that masked the RST. |
| 4901 TEST_P(SpdyNetworkTransactionTest, VerifyRetryOnConnectionReset) { | 4901 TEST_P(SpdyNetworkTransactionTest, VerifyRetryOnConnectionReset) { |
| 4902 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); | 4902 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); |
| 4903 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); | 4903 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); |
| 4904 MockRead reads[] = { | 4904 MockRead reads[] = { |
| 4905 CreateMockRead(*resp), | 4905 CreateMockRead(*resp), |
| 4906 CreateMockRead(*body), | 4906 CreateMockRead(*body), |
| 4907 MockRead(true, ERR_IO_PENDING), | 4907 MockRead(ASYNC, ERR_IO_PENDING), |
| 4908 MockRead(true, ERR_CONNECTION_RESET), | 4908 MockRead(ASYNC, ERR_CONNECTION_RESET), |
| 4909 }; | 4909 }; |
| 4910 | 4910 |
| 4911 MockRead reads2[] = { | 4911 MockRead reads2[] = { |
| 4912 CreateMockRead(*resp), | 4912 CreateMockRead(*resp), |
| 4913 CreateMockRead(*body), | 4913 CreateMockRead(*body), |
| 4914 MockRead(true, 0, 0) // EOF | 4914 MockRead(ASYNC, 0, 0) // EOF |
| 4915 }; | 4915 }; |
| 4916 | 4916 |
| 4917 // This test has a couple of variants. | 4917 // This test has a couple of variants. |
| 4918 enum { | 4918 enum { |
| 4919 // Induce the RST while waiting for our transaction to send. | 4919 // Induce the RST while waiting for our transaction to send. |
| 4920 VARIANT_RST_DURING_SEND_COMPLETION, | 4920 VARIANT_RST_DURING_SEND_COMPLETION, |
| 4921 // Induce the RST while waiting for our transaction to read. | 4921 // Induce the RST while waiting for our transaction to read. |
| 4922 // In this case, the send completed - everything copied into the SNDBUF. | 4922 // In this case, the send completed - everything copied into the SNDBUF. |
| 4923 VARIANT_RST_DURING_READ_COMPLETION | 4923 VARIANT_RST_DURING_READ_COMPLETION |
| 4924 }; | 4924 }; |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4983 TEST_P(SpdyNetworkTransactionTest, SpdyOnOffToggle) { | 4983 TEST_P(SpdyNetworkTransactionTest, SpdyOnOffToggle) { |
| 4984 net::HttpStreamFactory::set_spdy_enabled(true); | 4984 net::HttpStreamFactory::set_spdy_enabled(true); |
| 4985 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); | 4985 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); |
| 4986 MockWrite spdy_writes[] = { CreateMockWrite(*req) }; | 4986 MockWrite spdy_writes[] = { CreateMockWrite(*req) }; |
| 4987 | 4987 |
| 4988 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); | 4988 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); |
| 4989 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); | 4989 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); |
| 4990 MockRead spdy_reads[] = { | 4990 MockRead spdy_reads[] = { |
| 4991 CreateMockRead(*resp), | 4991 CreateMockRead(*resp), |
| 4992 CreateMockRead(*body), | 4992 CreateMockRead(*body), |
| 4993 MockRead(true, 0, 0) // EOF | 4993 MockRead(ASYNC, 0, 0) // EOF |
| 4994 }; | 4994 }; |
| 4995 | 4995 |
| 4996 scoped_ptr<DelayedSocketData> data( | 4996 scoped_ptr<DelayedSocketData> data( |
| 4997 new DelayedSocketData(1, | 4997 new DelayedSocketData(1, |
| 4998 spdy_reads, arraysize(spdy_reads), | 4998 spdy_reads, arraysize(spdy_reads), |
| 4999 spdy_writes, arraysize(spdy_writes))); | 4999 spdy_writes, arraysize(spdy_writes))); |
| 5000 NormalSpdyTransactionHelper helper(CreateGetRequest(), | 5000 NormalSpdyTransactionHelper helper(CreateGetRequest(), |
| 5001 BoundNetLog(), GetParam()); | 5001 BoundNetLog(), GetParam()); |
| 5002 helper.RunToCompletion(data.get()); | 5002 helper.RunToCompletion(data.get()); |
| 5003 TransactionHelperResult out = helper.output(); | 5003 TransactionHelperResult out = helper.output(); |
| 5004 EXPECT_EQ(OK, out.rv); | 5004 EXPECT_EQ(OK, out.rv); |
| 5005 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); | 5005 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); |
| 5006 EXPECT_EQ("hello!", out.response_data); | 5006 EXPECT_EQ("hello!", out.response_data); |
| 5007 | 5007 |
| 5008 net::HttpStreamFactory::set_spdy_enabled(false); | 5008 net::HttpStreamFactory::set_spdy_enabled(false); |
| 5009 MockRead http_reads[] = { | 5009 MockRead http_reads[] = { |
| 5010 MockRead("HTTP/1.1 200 OK\r\n\r\n"), | 5010 MockRead("HTTP/1.1 200 OK\r\n\r\n"), |
| 5011 MockRead("hello from http"), | 5011 MockRead("hello from http"), |
| 5012 MockRead(false, OK), | 5012 MockRead(SYNCHRONOUS, OK), |
| 5013 }; | 5013 }; |
| 5014 scoped_ptr<DelayedSocketData> data2( | 5014 scoped_ptr<DelayedSocketData> data2( |
| 5015 new DelayedSocketData(1, http_reads, arraysize(http_reads), | 5015 new DelayedSocketData(1, http_reads, arraysize(http_reads), |
| 5016 NULL, 0)); | 5016 NULL, 0)); |
| 5017 NormalSpdyTransactionHelper helper2(CreateGetRequest(), | 5017 NormalSpdyTransactionHelper helper2(CreateGetRequest(), |
| 5018 BoundNetLog(), GetParam()); | 5018 BoundNetLog(), GetParam()); |
| 5019 helper2.SetSpdyDisabled(); | 5019 helper2.SetSpdyDisabled(); |
| 5020 helper2.RunToCompletion(data2.get()); | 5020 helper2.RunToCompletion(data2.get()); |
| 5021 TransactionHelperResult out2 = helper2.output(); | 5021 TransactionHelperResult out2 = helper2.output(); |
| 5022 EXPECT_EQ(OK, out2.rv); | 5022 EXPECT_EQ(OK, out2.rv); |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5063 1)); | 5063 1)); |
| 5064 scoped_ptr<spdy::SpdyFrame> body_authentication( | 5064 scoped_ptr<spdy::SpdyFrame> body_authentication( |
| 5065 ConstructSpdyBodyFrame(1, true)); | 5065 ConstructSpdyBodyFrame(1, true)); |
| 5066 scoped_ptr<spdy::SpdyFrame> resp_data(ConstructSpdyGetSynReply(NULL, 0, 3)); | 5066 scoped_ptr<spdy::SpdyFrame> resp_data(ConstructSpdyGetSynReply(NULL, 0, 3)); |
| 5067 scoped_ptr<spdy::SpdyFrame> body_data(ConstructSpdyBodyFrame(3, true)); | 5067 scoped_ptr<spdy::SpdyFrame> body_data(ConstructSpdyBodyFrame(3, true)); |
| 5068 MockRead spdy_reads[] = { | 5068 MockRead spdy_reads[] = { |
| 5069 CreateMockRead(*resp_authentication, 2), | 5069 CreateMockRead(*resp_authentication, 2), |
| 5070 CreateMockRead(*body_authentication, 3), | 5070 CreateMockRead(*body_authentication, 3), |
| 5071 CreateMockRead(*resp_data, 5), | 5071 CreateMockRead(*resp_data, 5), |
| 5072 CreateMockRead(*body_data, 6), | 5072 CreateMockRead(*body_data, 6), |
| 5073 MockRead(true, 0, 7), | 5073 MockRead(ASYNC, 0, 7), |
| 5074 }; | 5074 }; |
| 5075 | 5075 |
| 5076 scoped_ptr<OrderedSocketData> data( | 5076 scoped_ptr<OrderedSocketData> data( |
| 5077 new OrderedSocketData(spdy_reads, arraysize(spdy_reads), | 5077 new OrderedSocketData(spdy_reads, arraysize(spdy_reads), |
| 5078 spdy_writes, arraysize(spdy_writes))); | 5078 spdy_writes, arraysize(spdy_writes))); |
| 5079 HttpRequestInfo request(CreateGetRequest()); | 5079 HttpRequestInfo request(CreateGetRequest()); |
| 5080 BoundNetLog net_log; | 5080 BoundNetLog net_log; |
| 5081 NormalSpdyTransactionHelper helper(request, net_log, GetParam()); | 5081 NormalSpdyTransactionHelper helper(request, net_log, GetParam()); |
| 5082 | 5082 |
| 5083 helper.RunPreTestSetup(); | 5083 helper.RunPreTestSetup(); |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5166 NULL, | 5166 NULL, |
| 5167 0, | 5167 0, |
| 5168 0)); | 5168 0)); |
| 5169 | 5169 |
| 5170 scoped_ptr<spdy::SpdyFrame> | 5170 scoped_ptr<spdy::SpdyFrame> |
| 5171 stream1_reply(ConstructSpdyGetSynReply(NULL, 0, 1)); | 5171 stream1_reply(ConstructSpdyGetSynReply(NULL, 0, 1)); |
| 5172 MockRead reads[] = { | 5172 MockRead reads[] = { |
| 5173 CreateMockRead(*stream1_reply, 2), | 5173 CreateMockRead(*stream1_reply, 2), |
| 5174 CreateMockRead(*stream2_syn, 3), | 5174 CreateMockRead(*stream2_syn, 3), |
| 5175 CreateMockRead(*stream2_headers, 4), | 5175 CreateMockRead(*stream2_headers, 4), |
| 5176 CreateMockRead(*stream1_body, 5, false), | 5176 CreateMockRead(*stream1_body, 5, SYNCHRONOUS), |
| 5177 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame), | 5177 MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame), |
| 5178 arraysize(kPushBodyFrame), 6), | 5178 arraysize(kPushBodyFrame), 6), |
| 5179 MockRead(true, ERR_IO_PENDING, 7), // Force a pause | 5179 MockRead(ASYNC, ERR_IO_PENDING, 7), // Force a pause |
| 5180 }; | 5180 }; |
| 5181 | 5181 |
| 5182 HttpResponseInfo response; | 5182 HttpResponseInfo response; |
| 5183 HttpResponseInfo response2; | 5183 HttpResponseInfo response2; |
| 5184 std::string expected_push_result("pushed"); | 5184 std::string expected_push_result("pushed"); |
| 5185 scoped_ptr<OrderedSocketData> data(new OrderedSocketData( | 5185 scoped_ptr<OrderedSocketData> data(new OrderedSocketData( |
| 5186 reads, | 5186 reads, |
| 5187 arraysize(reads), | 5187 arraysize(reads), |
| 5188 writes, | 5188 writes, |
| 5189 arraysize(writes))); | 5189 arraysize(writes))); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 5206 static const unsigned char kPushBodyFrame[] = { | 5206 static const unsigned char kPushBodyFrame[] = { |
| 5207 0x00, 0x00, 0x00, 0x02, // header, ID | 5207 0x00, 0x00, 0x00, 0x02, // header, ID |
| 5208 0x01, 0x00, 0x00, 0x06, // FIN, length | 5208 0x01, 0x00, 0x00, 0x06, // FIN, length |
| 5209 'p', 'u', 's', 'h', 'e', 'd' // "pushed" | 5209 'p', 'u', 's', 'h', 'e', 'd' // "pushed" |
| 5210 }; | 5210 }; |
| 5211 scoped_ptr<spdy::SpdyFrame> | 5211 scoped_ptr<spdy::SpdyFrame> |
| 5212 stream1_syn(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); | 5212 stream1_syn(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); |
| 5213 scoped_ptr<spdy::SpdyFrame> | 5213 scoped_ptr<spdy::SpdyFrame> |
| 5214 stream1_body(ConstructSpdyBodyFrame(1, true)); | 5214 stream1_body(ConstructSpdyBodyFrame(1, true)); |
| 5215 MockWrite writes[] = { | 5215 MockWrite writes[] = { |
| 5216 CreateMockWrite(*stream1_syn, 0, false), | 5216 CreateMockWrite(*stream1_syn, 0, SYNCHRONOUS), |
| 5217 }; | 5217 }; |
| 5218 | 5218 |
| 5219 static const char* const kInitialHeaders[] = { | 5219 static const char* const kInitialHeaders[] = { |
| 5220 "url", | 5220 "url", |
| 5221 "http://www.google.com/foo.dat", | 5221 "http://www.google.com/foo.dat", |
| 5222 }; | 5222 }; |
| 5223 static const char* const kLateHeaders[] = { | 5223 static const char* const kLateHeaders[] = { |
| 5224 "hello", | 5224 "hello", |
| 5225 "bye", | 5225 "bye", |
| 5226 "status", | 5226 "status", |
| (...skipping 24 matching lines...) Expand all Loading... |
| 5251 0, | 5251 0, |
| 5252 0)); | 5252 0)); |
| 5253 | 5253 |
| 5254 scoped_ptr<spdy::SpdyFrame> | 5254 scoped_ptr<spdy::SpdyFrame> |
| 5255 stream1_reply(ConstructSpdyGetSynReply(NULL, 0, 1)); | 5255 stream1_reply(ConstructSpdyGetSynReply(NULL, 0, 1)); |
| 5256 MockRead reads[] = { | 5256 MockRead reads[] = { |
| 5257 CreateMockRead(*stream1_reply, 1), | 5257 CreateMockRead(*stream1_reply, 1), |
| 5258 CreateMockRead(*stream2_syn, 2), | 5258 CreateMockRead(*stream2_syn, 2), |
| 5259 CreateMockRead(*stream1_body, 3), | 5259 CreateMockRead(*stream1_body, 3), |
| 5260 CreateMockRead(*stream2_headers, 4), | 5260 CreateMockRead(*stream2_headers, 4), |
| 5261 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame), | 5261 MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame), |
| 5262 arraysize(kPushBodyFrame), 5), | 5262 arraysize(kPushBodyFrame), 5), |
| 5263 MockRead(true, 0, 5), // EOF | 5263 MockRead(ASYNC, 0, 5), // EOF |
| 5264 }; | 5264 }; |
| 5265 | 5265 |
| 5266 HttpResponseInfo response; | 5266 HttpResponseInfo response; |
| 5267 HttpResponseInfo response2; | 5267 HttpResponseInfo response2; |
| 5268 std::string expected_push_result("pushed"); | 5268 std::string expected_push_result("pushed"); |
| 5269 scoped_refptr<DeterministicSocketData> data(new DeterministicSocketData( | 5269 scoped_refptr<DeterministicSocketData> data(new DeterministicSocketData( |
| 5270 reads, | 5270 reads, |
| 5271 arraysize(reads), | 5271 arraysize(reads), |
| 5272 writes, | 5272 writes, |
| 5273 arraysize(writes))); | 5273 arraysize(writes))); |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5343 static const unsigned char kPushBodyFrame[] = { | 5343 static const unsigned char kPushBodyFrame[] = { |
| 5344 0x00, 0x00, 0x00, 0x02, // header, ID | 5344 0x00, 0x00, 0x00, 0x02, // header, ID |
| 5345 0x01, 0x00, 0x00, 0x06, // FIN, length | 5345 0x01, 0x00, 0x00, 0x06, // FIN, length |
| 5346 'p', 'u', 's', 'h', 'e', 'd' // "pushed" | 5346 'p', 'u', 's', 'h', 'e', 'd' // "pushed" |
| 5347 }; | 5347 }; |
| 5348 scoped_ptr<spdy::SpdyFrame> | 5348 scoped_ptr<spdy::SpdyFrame> |
| 5349 stream1_syn(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); | 5349 stream1_syn(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); |
| 5350 scoped_ptr<spdy::SpdyFrame> | 5350 scoped_ptr<spdy::SpdyFrame> |
| 5351 stream1_body(ConstructSpdyBodyFrame(1, true)); | 5351 stream1_body(ConstructSpdyBodyFrame(1, true)); |
| 5352 MockWrite writes[] = { | 5352 MockWrite writes[] = { |
| 5353 CreateMockWrite(*stream1_syn, 0, false), | 5353 CreateMockWrite(*stream1_syn, 0, SYNCHRONOUS), |
| 5354 }; | 5354 }; |
| 5355 | 5355 |
| 5356 static const char* const kInitialHeaders[] = { | 5356 static const char* const kInitialHeaders[] = { |
| 5357 "url", | 5357 "url", |
| 5358 "http://www.google.com/foo.dat", | 5358 "http://www.google.com/foo.dat", |
| 5359 }; | 5359 }; |
| 5360 static const char* const kMiddleHeaders[] = { | 5360 static const char* const kMiddleHeaders[] = { |
| 5361 "hello", | 5361 "hello", |
| 5362 "bye", | 5362 "bye", |
| 5363 }; | 5363 }; |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5402 0)); | 5402 0)); |
| 5403 | 5403 |
| 5404 scoped_ptr<spdy::SpdyFrame> | 5404 scoped_ptr<spdy::SpdyFrame> |
| 5405 stream1_reply(ConstructSpdyGetSynReply(NULL, 0, 1)); | 5405 stream1_reply(ConstructSpdyGetSynReply(NULL, 0, 1)); |
| 5406 MockRead reads[] = { | 5406 MockRead reads[] = { |
| 5407 CreateMockRead(*stream1_reply, 1), | 5407 CreateMockRead(*stream1_reply, 1), |
| 5408 CreateMockRead(*stream2_syn, 2), | 5408 CreateMockRead(*stream2_syn, 2), |
| 5409 CreateMockRead(*stream1_body, 3), | 5409 CreateMockRead(*stream1_body, 3), |
| 5410 CreateMockRead(*stream2_headers1, 4), | 5410 CreateMockRead(*stream2_headers1, 4), |
| 5411 CreateMockRead(*stream2_headers2, 5), | 5411 CreateMockRead(*stream2_headers2, 5), |
| 5412 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame), | 5412 MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame), |
| 5413 arraysize(kPushBodyFrame), 6), | 5413 arraysize(kPushBodyFrame), 6), |
| 5414 MockRead(true, 0, 6), // EOF | 5414 MockRead(ASYNC, 0, 6), // EOF |
| 5415 }; | 5415 }; |
| 5416 | 5416 |
| 5417 HttpResponseInfo response; | 5417 HttpResponseInfo response; |
| 5418 HttpResponseInfo response2; | 5418 HttpResponseInfo response2; |
| 5419 std::string expected_push_result("pushed"); | 5419 std::string expected_push_result("pushed"); |
| 5420 scoped_refptr<DeterministicSocketData> data(new DeterministicSocketData( | 5420 scoped_refptr<DeterministicSocketData> data(new DeterministicSocketData( |
| 5421 reads, | 5421 reads, |
| 5422 arraysize(reads), | 5422 arraysize(reads), |
| 5423 writes, | 5423 writes, |
| 5424 arraysize(writes))); | 5424 arraysize(writes))); |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5531 spdy::HEADERS, | 5531 spdy::HEADERS, |
| 5532 spdy::CONTROL_FLAG_NONE, | 5532 spdy::CONTROL_FLAG_NONE, |
| 5533 NULL, | 5533 NULL, |
| 5534 0, | 5534 0, |
| 5535 0)); | 5535 0)); |
| 5536 scoped_ptr<spdy::SpdyFrame> stream1_body(ConstructSpdyBodyFrame(1, true)); | 5536 scoped_ptr<spdy::SpdyFrame> stream1_body(ConstructSpdyBodyFrame(1, true)); |
| 5537 MockRead reads[] = { | 5537 MockRead reads[] = { |
| 5538 CreateMockRead(*stream1_reply), | 5538 CreateMockRead(*stream1_reply), |
| 5539 CreateMockRead(*stream1_headers), | 5539 CreateMockRead(*stream1_headers), |
| 5540 CreateMockRead(*stream1_body), | 5540 CreateMockRead(*stream1_body), |
| 5541 MockRead(true, 0, 0) // EOF | 5541 MockRead(ASYNC, 0, 0) // EOF |
| 5542 }; | 5542 }; |
| 5543 | 5543 |
| 5544 scoped_ptr<DelayedSocketData> data( | 5544 scoped_ptr<DelayedSocketData> data( |
| 5545 new DelayedSocketData(1, reads, arraysize(reads), | 5545 new DelayedSocketData(1, reads, arraysize(reads), |
| 5546 writes, arraysize(writes))); | 5546 writes, arraysize(writes))); |
| 5547 NormalSpdyTransactionHelper helper(CreateGetRequest(), | 5547 NormalSpdyTransactionHelper helper(CreateGetRequest(), |
| 5548 BoundNetLog(), GetParam()); | 5548 BoundNetLog(), GetParam()); |
| 5549 helper.RunToCompletion(data.get()); | 5549 helper.RunToCompletion(data.get()); |
| 5550 TransactionHelperResult out = helper.output(); | 5550 TransactionHelperResult out = helper.output(); |
| 5551 EXPECT_EQ(OK, out.rv); | 5551 EXPECT_EQ(OK, out.rv); |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5589 NULL, | 5589 NULL, |
| 5590 0, | 5590 0, |
| 5591 0)); | 5591 0)); |
| 5592 scoped_ptr<spdy::SpdyFrame> stream1_body(ConstructSpdyBodyFrame(1, false)); | 5592 scoped_ptr<spdy::SpdyFrame> stream1_body(ConstructSpdyBodyFrame(1, false)); |
| 5593 scoped_ptr<spdy::SpdyFrame> stream1_body2(ConstructSpdyBodyFrame(1, true)); | 5593 scoped_ptr<spdy::SpdyFrame> stream1_body2(ConstructSpdyBodyFrame(1, true)); |
| 5594 MockRead reads[] = { | 5594 MockRead reads[] = { |
| 5595 CreateMockRead(*stream1_reply), | 5595 CreateMockRead(*stream1_reply), |
| 5596 CreateMockRead(*stream1_body), | 5596 CreateMockRead(*stream1_body), |
| 5597 CreateMockRead(*stream1_headers), | 5597 CreateMockRead(*stream1_headers), |
| 5598 CreateMockRead(*stream1_body2), | 5598 CreateMockRead(*stream1_body2), |
| 5599 MockRead(true, 0, 0) // EOF | 5599 MockRead(ASYNC, 0, 0) // EOF |
| 5600 }; | 5600 }; |
| 5601 | 5601 |
| 5602 scoped_ptr<DelayedSocketData> data( | 5602 scoped_ptr<DelayedSocketData> data( |
| 5603 new DelayedSocketData(1, reads, arraysize(reads), | 5603 new DelayedSocketData(1, reads, arraysize(reads), |
| 5604 writes, arraysize(writes))); | 5604 writes, arraysize(writes))); |
| 5605 NormalSpdyTransactionHelper helper(CreateGetRequest(), | 5605 NormalSpdyTransactionHelper helper(CreateGetRequest(), |
| 5606 BoundNetLog(), GetParam()); | 5606 BoundNetLog(), GetParam()); |
| 5607 helper.RunToCompletion(data.get()); | 5607 helper.RunToCompletion(data.get()); |
| 5608 TransactionHelperResult out = helper.output(); | 5608 TransactionHelperResult out = helper.output(); |
| 5609 EXPECT_EQ(OK, out.rv); | 5609 EXPECT_EQ(OK, out.rv); |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5647 NULL, | 5647 NULL, |
| 5648 0, | 5648 0, |
| 5649 0)); | 5649 0)); |
| 5650 scoped_ptr<spdy::SpdyFrame> stream1_body(ConstructSpdyBodyFrame(1, false)); | 5650 scoped_ptr<spdy::SpdyFrame> stream1_body(ConstructSpdyBodyFrame(1, false)); |
| 5651 scoped_ptr<spdy::SpdyFrame> stream1_body2(ConstructSpdyBodyFrame(1, true)); | 5651 scoped_ptr<spdy::SpdyFrame> stream1_body2(ConstructSpdyBodyFrame(1, true)); |
| 5652 MockRead reads[] = { | 5652 MockRead reads[] = { |
| 5653 CreateMockRead(*stream1_reply), | 5653 CreateMockRead(*stream1_reply), |
| 5654 CreateMockRead(*stream1_body), | 5654 CreateMockRead(*stream1_body), |
| 5655 CreateMockRead(*stream1_headers), | 5655 CreateMockRead(*stream1_headers), |
| 5656 CreateMockRead(*stream1_body2), | 5656 CreateMockRead(*stream1_body2), |
| 5657 MockRead(true, 0, 0) // EOF | 5657 MockRead(ASYNC, 0, 0) // EOF |
| 5658 }; | 5658 }; |
| 5659 | 5659 |
| 5660 scoped_ptr<DelayedSocketData> data( | 5660 scoped_ptr<DelayedSocketData> data( |
| 5661 new DelayedSocketData(1, reads, arraysize(reads), | 5661 new DelayedSocketData(1, reads, arraysize(reads), |
| 5662 writes, arraysize(writes))); | 5662 writes, arraysize(writes))); |
| 5663 NormalSpdyTransactionHelper helper(CreateGetRequest(), | 5663 NormalSpdyTransactionHelper helper(CreateGetRequest(), |
| 5664 BoundNetLog(), GetParam()); | 5664 BoundNetLog(), GetParam()); |
| 5665 helper.RunToCompletion(data.get()); | 5665 helper.RunToCompletion(data.get()); |
| 5666 TransactionHelperResult out = helper.output(); | 5666 TransactionHelperResult out = helper.output(); |
| 5667 EXPECT_EQ(ERR_SPDY_PROTOCOL_ERROR, out.rv); | 5667 EXPECT_EQ(ERR_SPDY_PROTOCOL_ERROR, out.rv); |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5721 0, | 5721 0, |
| 5722 2, | 5722 2, |
| 5723 1, | 5723 1, |
| 5724 url_to_push)); | 5724 url_to_push)); |
| 5725 scoped_ptr<spdy::SpdyFrame> rst( | 5725 scoped_ptr<spdy::SpdyFrame> rst( |
| 5726 ConstructSpdyRstStream(2, spdy::CANCEL)); | 5726 ConstructSpdyRstStream(2, spdy::CANCEL)); |
| 5727 | 5727 |
| 5728 MockRead reads[] = { | 5728 MockRead reads[] = { |
| 5729 CreateMockRead(*stream1_reply, 2), | 5729 CreateMockRead(*stream1_reply, 2), |
| 5730 CreateMockRead(*stream2_syn, 3), | 5730 CreateMockRead(*stream2_syn, 3), |
| 5731 CreateMockRead(*stream1_body, 5, false), | 5731 CreateMockRead(*stream1_body, 5, SYNCHRONOUS), |
| 5732 MockRead(true, reinterpret_cast<const char*>(kPushBodyFrame), | 5732 MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame), |
| 5733 arraysize(kPushBodyFrame), 6), | 5733 arraysize(kPushBodyFrame), 6), |
| 5734 MockRead(true, ERR_IO_PENDING, 7), // Force a pause | 5734 MockRead(ASYNC, ERR_IO_PENDING, 7), // Force a pause |
| 5735 }; | 5735 }; |
| 5736 | 5736 |
| 5737 HttpResponseInfo response; | 5737 HttpResponseInfo response; |
| 5738 scoped_ptr<OrderedSocketData> data(new OrderedSocketData( | 5738 scoped_ptr<OrderedSocketData> data(new OrderedSocketData( |
| 5739 reads, | 5739 reads, |
| 5740 arraysize(reads), | 5740 arraysize(reads), |
| 5741 writes, | 5741 writes, |
| 5742 arraysize(writes))); | 5742 arraysize(writes))); |
| 5743 | 5743 |
| 5744 HttpRequestInfo request; | 5744 HttpRequestInfo request; |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5789 }; | 5789 }; |
| 5790 | 5790 |
| 5791 scoped_ptr<spdy::SpdyFrame> refused( | 5791 scoped_ptr<spdy::SpdyFrame> refused( |
| 5792 ConstructSpdyRstStream(1, spdy::REFUSED_STREAM)); | 5792 ConstructSpdyRstStream(1, spdy::REFUSED_STREAM)); |
| 5793 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 3)); | 5793 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 3)); |
| 5794 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(3, true)); | 5794 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(3, true)); |
| 5795 MockRead reads[] = { | 5795 MockRead reads[] = { |
| 5796 CreateMockRead(*refused, 2), | 5796 CreateMockRead(*refused, 2), |
| 5797 CreateMockRead(*resp, 4), | 5797 CreateMockRead(*resp, 4), |
| 5798 CreateMockRead(*body, 5), | 5798 CreateMockRead(*body, 5), |
| 5799 MockRead(true, 0, 6) // EOF | 5799 MockRead(ASYNC, 0, 6) // EOF |
| 5800 }; | 5800 }; |
| 5801 | 5801 |
| 5802 scoped_ptr<OrderedSocketData> data( | 5802 scoped_ptr<OrderedSocketData> data( |
| 5803 new OrderedSocketData(reads, arraysize(reads), | 5803 new OrderedSocketData(reads, arraysize(reads), |
| 5804 writes, arraysize(writes))); | 5804 writes, arraysize(writes))); |
| 5805 NormalSpdyTransactionHelper helper(CreateGetRequest(), | 5805 NormalSpdyTransactionHelper helper(CreateGetRequest(), |
| 5806 BoundNetLog(), GetParam()); | 5806 BoundNetLog(), GetParam()); |
| 5807 | 5807 |
| 5808 helper.RunPreTestSetup(); | 5808 helper.RunPreTestSetup(); |
| 5809 helper.AddData(data.get()); | 5809 helper.AddData(data.get()); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 5828 << " Write index: " | 5828 << " Write index: " |
| 5829 << data->write_index(); | 5829 << data->write_index(); |
| 5830 | 5830 |
| 5831 // Verify the SYN_REPLY. | 5831 // Verify the SYN_REPLY. |
| 5832 HttpResponseInfo response = *trans->GetResponseInfo(); | 5832 HttpResponseInfo response = *trans->GetResponseInfo(); |
| 5833 EXPECT_TRUE(response.headers != NULL); | 5833 EXPECT_TRUE(response.headers != NULL); |
| 5834 EXPECT_EQ("HTTP/1.1 200 OK", response.headers->GetStatusLine()); | 5834 EXPECT_EQ("HTTP/1.1 200 OK", response.headers->GetStatusLine()); |
| 5835 } | 5835 } |
| 5836 | 5836 |
| 5837 } // namespace net | 5837 } // namespace net |
| OLD | NEW |