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

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

Issue 10690104: DeterministicSocketDataProvider should not be RefCounted (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: One more leak fix Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/http/http_network_transaction.h" 5 #include "net/http/http_network_transaction.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
11 #include "base/bind_helpers.h" 11 #include "base/bind_helpers.h"
12 #include "base/memory/scoped_vector.h"
12 #include "net/base/auth.h" 13 #include "net/base/auth.h"
13 #include "net/base/net_log_unittest.h" 14 #include "net/base/net_log_unittest.h"
14 #include "net/http/http_network_session_peer.h" 15 #include "net/http/http_network_session_peer.h"
15 #include "net/http/http_transaction_unittest.h" 16 #include "net/http/http_transaction_unittest.h"
16 #include "net/socket/client_socket_pool_base.h" 17 #include "net/socket/client_socket_pool_base.h"
17 #include "net/spdy/buffered_spdy_framer.h" 18 #include "net/spdy/buffered_spdy_framer.h"
18 #include "net/spdy/spdy_http_stream.h" 19 #include "net/spdy/spdy_http_stream.h"
19 #include "net/spdy/spdy_http_utils.h" 20 #include "net/spdy/spdy_http_utils.h"
20 #include "net/spdy/spdy_session.h" 21 #include "net/spdy/spdy_session.h"
21 #include "net/spdy/spdy_session_pool.h" 22 #include "net/spdy/spdy_session_pool.h"
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 void RunToCompletion(StaticSocketDataProvider* data) { 223 void RunToCompletion(StaticSocketDataProvider* data) {
223 RunPreTestSetup(); 224 RunPreTestSetup();
224 AddData(data); 225 AddData(data);
225 RunDefaultTest(); 226 RunDefaultTest();
226 VerifyDataConsumed(); 227 VerifyDataConsumed();
227 } 228 }
228 229
229 void AddData(StaticSocketDataProvider* data) { 230 void AddData(StaticSocketDataProvider* data) {
230 DCHECK(!deterministic_); 231 DCHECK(!deterministic_);
231 data_vector_.push_back(data); 232 data_vector_.push_back(data);
232 linked_ptr<SSLSocketDataProvider> ssl_( 233 SSLSocketDataProvider* ssl_provider =
233 new SSLSocketDataProvider(ASYNC, OK)); 234 new SSLSocketDataProvider(ASYNC, OK);
234 if (test_type_ == SPDYNPN) { 235 if (test_type_ == SPDYNPN)
235 ssl_->SetNextProto(kProtoSPDY2); 236 ssl_provider->SetNextProto(kProtoSPDY2);
236 } 237
237 ssl_vector_.push_back(ssl_); 238 ssl_vector_.push_back(ssl_provider);
238 if (test_type_ == SPDYNPN || test_type_ == SPDYSSL) 239 if (test_type_ == SPDYNPN || test_type_ == SPDYSSL)
239 session_deps_->socket_factory->AddSSLSocketDataProvider(ssl_.get()); 240 session_deps_->socket_factory->AddSSLSocketDataProvider(ssl_provider);
241
240 session_deps_->socket_factory->AddSocketDataProvider(data); 242 session_deps_->socket_factory->AddSocketDataProvider(data);
241 if (test_type_ == SPDYNPN) { 243 if (test_type_ == SPDYNPN) {
242 MockConnect never_finishing_connect(SYNCHRONOUS, ERR_IO_PENDING); 244 MockConnect never_finishing_connect(SYNCHRONOUS, ERR_IO_PENDING);
243 linked_ptr<StaticSocketDataProvider> 245 StaticSocketDataProvider* hanging_non_alternate_protocol_socket =
244 hanging_non_alternate_protocol_socket( 246 new StaticSocketDataProvider(NULL, 0, NULL, 0);
245 new StaticSocketDataProvider(NULL, 0, NULL, 0));
246 hanging_non_alternate_protocol_socket->set_connect_data( 247 hanging_non_alternate_protocol_socket->set_connect_data(
247 never_finishing_connect); 248 never_finishing_connect);
248 session_deps_->socket_factory->AddSocketDataProvider( 249 session_deps_->socket_factory->AddSocketDataProvider(
249 hanging_non_alternate_protocol_socket.get()); 250 hanging_non_alternate_protocol_socket);
250 alternate_vector_.push_back(hanging_non_alternate_protocol_socket); 251 alternate_vector_.push_back(hanging_non_alternate_protocol_socket);
251 } 252 }
252 } 253 }
253 254
254 void AddDeterministicData(DeterministicSocketData* data) { 255 void AddDeterministicData(DeterministicSocketData* data) {
255 DCHECK(deterministic_); 256 DCHECK(deterministic_);
256 data_vector_.push_back(data); 257 data_vector_.push_back(data);
257 linked_ptr<SSLSocketDataProvider> ssl_( 258 SSLSocketDataProvider* ssl_provider =
258 new SSLSocketDataProvider(ASYNC, OK)); 259 new SSLSocketDataProvider(ASYNC, OK);
259 if (test_type_ == SPDYNPN) { 260 if (test_type_ == SPDYNPN)
260 ssl_->SetNextProto(kProtoSPDY2); 261 ssl_provider->SetNextProto(kProtoSPDY2);
261 } 262
262 ssl_vector_.push_back(ssl_); 263 ssl_vector_.push_back(ssl_provider);
263 if (test_type_ == SPDYNPN || test_type_ == SPDYSSL) { 264 if (test_type_ == SPDYNPN || test_type_ == SPDYSSL) {
264 session_deps_->deterministic_socket_factory-> 265 session_deps_->deterministic_socket_factory->
265 AddSSLSocketDataProvider(ssl_.get()); 266 AddSSLSocketDataProvider(ssl_provider);
266 } 267 }
267 session_deps_->deterministic_socket_factory->AddSocketDataProvider(data); 268 session_deps_->deterministic_socket_factory->AddSocketDataProvider(data);
268 if (test_type_ == SPDYNPN) { 269 if (test_type_ == SPDYNPN) {
269 MockConnect never_finishing_connect(SYNCHRONOUS, ERR_IO_PENDING); 270 MockConnect never_finishing_connect(SYNCHRONOUS, ERR_IO_PENDING);
270 scoped_refptr<DeterministicSocketData> 271 DeterministicSocketData* hanging_non_alternate_protocol_socket =
271 hanging_non_alternate_protocol_socket( 272 new DeterministicSocketData(NULL, 0, NULL, 0);
272 new DeterministicSocketData(NULL, 0, NULL, 0));
273 hanging_non_alternate_protocol_socket->set_connect_data( 273 hanging_non_alternate_protocol_socket->set_connect_data(
274 never_finishing_connect); 274 never_finishing_connect);
275 session_deps_->deterministic_socket_factory->AddSocketDataProvider( 275 session_deps_->deterministic_socket_factory->AddSocketDataProvider(
276 hanging_non_alternate_protocol_socket); 276 hanging_non_alternate_protocol_socket);
277 alternate_deterministic_vector_.push_back( 277 alternate_deterministic_vector_.push_back(
278 hanging_non_alternate_protocol_socket); 278 hanging_non_alternate_protocol_socket);
279 } 279 }
280 } 280 }
281 281
282 // This can only be called after RunPreTestSetup. It adds a Data Provider,
283 // but not a corresponding SSL data provider
284 void AddDataNoSSL(StaticSocketDataProvider* data) {
285 DCHECK(!deterministic_);
286 session_deps_->socket_factory->AddSocketDataProvider(data);
287 }
288 void AddDataNoSSL(DeterministicSocketData* data) {
289 DCHECK(deterministic_);
290 session_deps_->deterministic_socket_factory->AddSocketDataProvider(data);
291 }
292
293 void SetSession(const scoped_refptr<HttpNetworkSession>& session) { 282 void SetSession(const scoped_refptr<HttpNetworkSession>& session) {
294 session_ = session; 283 session_ = session;
295 } 284 }
296 HttpNetworkTransaction* trans() { return trans_.get(); } 285 HttpNetworkTransaction* trans() { return trans_.get(); }
297 void ResetTrans() { trans_.reset(); } 286 void ResetTrans() { trans_.reset(); }
298 TransactionHelperResult& output() { return output_; } 287 TransactionHelperResult& output() { return output_; }
299 const HttpRequestInfo& request() const { return request_; } 288 const HttpRequestInfo& request() const { return request_; }
300 const scoped_refptr<HttpNetworkSession>& session() const { 289 const scoped_refptr<HttpNetworkSession>& session() const {
301 return session_; 290 return session_;
302 } 291 }
303 scoped_ptr<SpdySessionDependencies>& session_deps() { 292 scoped_ptr<SpdySessionDependencies>& session_deps() {
304 return session_deps_; 293 return session_deps_;
305 } 294 }
306 int port() const { return port_; } 295 int port() const { return port_; }
307 SpdyNetworkTransactionSpdy2TestTypes test_type() const { 296 SpdyNetworkTransactionSpdy2TestTypes test_type() const {
308 return test_type_; 297 return test_type_;
309 } 298 }
310 299
311 private: 300 private:
312 typedef std::vector<StaticSocketDataProvider*> DataVector; 301 typedef std::vector<StaticSocketDataProvider*> DataVector;
313 typedef std::vector<linked_ptr<SSLSocketDataProvider> > SSLVector; 302 typedef ScopedVector<SSLSocketDataProvider> SSLVector;
314 typedef std::vector<linked_ptr<StaticSocketDataProvider> > AlternateVector; 303 typedef ScopedVector<StaticSocketDataProvider> AlternateVector;
315 typedef std::vector<scoped_refptr<DeterministicSocketData> > 304 typedef ScopedVector<DeterministicSocketData> AlternateDeterministicVector;
316 AlternateDeterministicVector;
317 HttpRequestInfo request_; 305 HttpRequestInfo request_;
318 scoped_ptr<SpdySessionDependencies> session_deps_; 306 scoped_ptr<SpdySessionDependencies> session_deps_;
319 scoped_refptr<HttpNetworkSession> session_; 307 scoped_refptr<HttpNetworkSession> session_;
320 TransactionHelperResult output_; 308 TransactionHelperResult output_;
321 scoped_ptr<StaticSocketDataProvider> first_transaction_; 309 scoped_ptr<StaticSocketDataProvider> first_transaction_;
322 SSLVector ssl_vector_; 310 SSLVector ssl_vector_;
323 TestCompletionCallback callback; 311 TestCompletionCallback callback;
324 scoped_ptr<HttpNetworkTransaction> trans_; 312 scoped_ptr<HttpNetworkTransaction> trans_;
325 scoped_ptr<HttpNetworkTransaction> trans_http_; 313 scoped_ptr<HttpNetworkTransaction> trans_http_;
326 DataVector data_vector_; 314 DataVector data_vector_;
(...skipping 1439 matching lines...) Expand 10 before | Expand all | Expand 10 after
1766 MockWrite(SYNCHRONOUS, 0, 0, 2), 1754 MockWrite(SYNCHRONOUS, 0, 0, 2),
1767 CreateMockWrite(*rst.get(), 3, SYNCHRONOUS), 1755 CreateMockWrite(*rst.get(), 3, SYNCHRONOUS),
1768 }; 1756 };
1769 1757
1770 scoped_ptr<SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 1758 scoped_ptr<SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
1771 MockRead reads[] = { 1759 MockRead reads[] = {
1772 CreateMockRead(*resp.get(), 1, ASYNC), 1760 CreateMockRead(*resp.get(), 1, ASYNC),
1773 MockRead(ASYNC, 0, 0, 4) // EOF 1761 MockRead(ASYNC, 0, 0, 4) // EOF
1774 }; 1762 };
1775 1763
1776 scoped_refptr<DeterministicSocketData> data( 1764 scoped_ptr<DeterministicSocketData> data(
1777 new DeterministicSocketData(reads, arraysize(reads), 1765 new DeterministicSocketData(reads, arraysize(reads),
1778 writes, arraysize(writes))); 1766 writes, arraysize(writes)));
1779 NormalSpdyTransactionHelper helper(CreateGetRequest(), 1767 NormalSpdyTransactionHelper helper(CreateGetRequest(),
1780 BoundNetLog(), GetParam(), NULL); 1768 BoundNetLog(), GetParam(), NULL);
1781 helper.SetDeterministic(); 1769 helper.SetDeterministic();
1782 helper.RunPreTestSetup(); 1770 helper.RunPreTestSetup();
1783 helper.AddDeterministicData(data.get()); 1771 helper.AddDeterministicData(data.get());
1784 HttpNetworkTransaction* trans = helper.trans(); 1772 HttpNetworkTransaction* trans = helper.trans();
1785 1773
1786 TestCompletionCallback callback; 1774 TestCompletionCallback callback;
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
1974 CreateMockWrite(*req, 0, SYNCHRONOUS), 1962 CreateMockWrite(*req, 0, SYNCHRONOUS),
1975 CreateMockWrite(*rst, 2, SYNCHRONOUS), 1963 CreateMockWrite(*rst, 2, SYNCHRONOUS),
1976 }; 1964 };
1977 1965
1978 scoped_ptr<SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); 1966 scoped_ptr<SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
1979 MockRead reads[] = { 1967 MockRead reads[] = {
1980 CreateMockRead(*resp, 1, ASYNC), 1968 CreateMockRead(*resp, 1, ASYNC),
1981 MockRead(ASYNC, 0, 0, 3) // EOF 1969 MockRead(ASYNC, 0, 0, 3) // EOF
1982 }; 1970 };
1983 1971
1984 scoped_refptr<DeterministicSocketData> data( 1972 scoped_ptr<DeterministicSocketData> data(
1985 new DeterministicSocketData(reads, arraysize(reads), 1973 new DeterministicSocketData(reads, arraysize(reads),
1986 writes, arraysize(writes))); 1974 writes, arraysize(writes)));
1987 1975
1988 NormalSpdyTransactionHelper helper(CreateGetRequest(), 1976 NormalSpdyTransactionHelper helper(CreateGetRequest(),
1989 BoundNetLog(), 1977 BoundNetLog(),
1990 GetParam(), NULL); 1978 GetParam(), NULL);
1991 helper.SetDeterministic(); 1979 helper.SetDeterministic();
1992 helper.RunPreTestSetup(); 1980 helper.RunPreTestSetup();
1993 helper.AddDeterministicData(data.get()); 1981 helper.AddDeterministicData(data.get());
1994 HttpNetworkTransaction* trans = helper.trans(); 1982 HttpNetworkTransaction* trans = helper.trans();
(...skipping 2984 matching lines...) Expand 10 before | Expand all | Expand 10 after
4979 CreateMockRead(*stream1_body, 3), 4967 CreateMockRead(*stream1_body, 3),
4980 CreateMockRead(*stream2_headers, 4), 4968 CreateMockRead(*stream2_headers, 4),
4981 MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame), 4969 MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame),
4982 arraysize(kPushBodyFrame), 5), 4970 arraysize(kPushBodyFrame), 5),
4983 MockRead(ASYNC, 0, 5), // EOF 4971 MockRead(ASYNC, 0, 5), // EOF
4984 }; 4972 };
4985 4973
4986 HttpResponseInfo response; 4974 HttpResponseInfo response;
4987 HttpResponseInfo response2; 4975 HttpResponseInfo response2;
4988 std::string expected_push_result("pushed"); 4976 std::string expected_push_result("pushed");
4989 scoped_refptr<DeterministicSocketData> data(new DeterministicSocketData( 4977 scoped_ptr<DeterministicSocketData> data(
4990 reads, 4978 new DeterministicSocketData(reads, arraysize(reads),
4991 arraysize(reads), 4979 writes, arraysize(writes)));
4992 writes,
4993 arraysize(writes)));
4994 4980
4995 NormalSpdyTransactionHelper helper(CreateGetRequest(), 4981 NormalSpdyTransactionHelper helper(CreateGetRequest(),
4996 BoundNetLog(), GetParam(), NULL); 4982 BoundNetLog(), GetParam(), NULL);
4997 helper.SetDeterministic(); 4983 helper.SetDeterministic();
4998 helper.AddDeterministicData(static_cast<DeterministicSocketData*>(data)); 4984 helper.AddDeterministicData(data.get());
4999 helper.RunPreTestSetup(); 4985 helper.RunPreTestSetup();
5000 4986
5001 HttpNetworkTransaction* trans = helper.trans(); 4987 HttpNetworkTransaction* trans = helper.trans();
5002 4988
5003 // Run until we've received the primary SYN_STREAM, the pushed SYN_STREAM, 4989 // Run until we've received the primary SYN_STREAM, the pushed SYN_STREAM,
5004 // and the body of the primary stream, but before we've received the HEADERS 4990 // and the body of the primary stream, but before we've received the HEADERS
5005 // for the pushed stream. 4991 // for the pushed stream.
5006 data->SetStop(3); 4992 data->SetStop(3);
5007 4993
5008 // Start the transaction. 4994 // Start the transaction.
(...skipping 13 matching lines...) Expand all
5022 &CreateGetPushRequest(), callback.callback(), BoundNetLog()); 5008 &CreateGetPushRequest(), callback.callback(), BoundNetLog());
5023 EXPECT_EQ(ERR_IO_PENDING, rv); 5009 EXPECT_EQ(ERR_IO_PENDING, rv);
5024 data->RunFor(3); 5010 data->RunFor(3);
5025 MessageLoop::current()->RunAllPending(); 5011 MessageLoop::current()->RunAllPending();
5026 5012
5027 // Read the server push body. 5013 // Read the server push body.
5028 std::string result2; 5014 std::string result2;
5029 ReadResult(trans2.get(), data.get(), &result2); 5015 ReadResult(trans2.get(), data.get(), &result2);
5030 // Read the response body. 5016 // Read the response body.
5031 std::string result; 5017 std::string result;
5032 ReadResult(trans, data, &result); 5018 ReadResult(trans, data.get(), &result);
5033 5019
5034 // Verify that we consumed all test data. 5020 // Verify that we consumed all test data.
5035 EXPECT_TRUE(data->at_read_eof()); 5021 EXPECT_TRUE(data->at_read_eof());
5036 EXPECT_TRUE(data->at_write_eof()); 5022 EXPECT_TRUE(data->at_write_eof());
5037 5023
5038 // Verify that the received push data is same as the expected push data. 5024 // Verify that the received push data is same as the expected push data.
5039 EXPECT_EQ(result2.compare(expected_push_result), 0) 5025 EXPECT_EQ(result2.compare(expected_push_result), 0)
5040 << "Received data: " 5026 << "Received data: "
5041 << result2 5027 << result2
5042 << "||||| Expected data: " 5028 << "||||| Expected data: "
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
5130 CreateMockRead(*stream2_headers1, 4), 5116 CreateMockRead(*stream2_headers1, 4),
5131 CreateMockRead(*stream2_headers2, 5), 5117 CreateMockRead(*stream2_headers2, 5),
5132 MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame), 5118 MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame),
5133 arraysize(kPushBodyFrame), 6), 5119 arraysize(kPushBodyFrame), 6),
5134 MockRead(ASYNC, 0, 6), // EOF 5120 MockRead(ASYNC, 0, 6), // EOF
5135 }; 5121 };
5136 5122
5137 HttpResponseInfo response; 5123 HttpResponseInfo response;
5138 HttpResponseInfo response2; 5124 HttpResponseInfo response2;
5139 std::string expected_push_result("pushed"); 5125 std::string expected_push_result("pushed");
5140 scoped_refptr<DeterministicSocketData> data(new DeterministicSocketData( 5126 scoped_ptr<DeterministicSocketData> data(
5141 reads, 5127 new DeterministicSocketData(reads, arraysize(reads),
5142 arraysize(reads), 5128 writes, arraysize(writes)));
5143 writes,
5144 arraysize(writes)));
5145 5129
5146 NormalSpdyTransactionHelper helper(CreateGetRequest(), 5130 NormalSpdyTransactionHelper helper(CreateGetRequest(),
5147 BoundNetLog(), GetParam(), NULL); 5131 BoundNetLog(), GetParam(), NULL);
5148 helper.SetDeterministic(); 5132 helper.SetDeterministic();
5149 helper.AddDeterministicData(static_cast<DeterministicSocketData*>(data)); 5133 helper.AddDeterministicData(data.get());
5150 helper.RunPreTestSetup(); 5134 helper.RunPreTestSetup();
5151 5135
5152 HttpNetworkTransaction* trans = helper.trans(); 5136 HttpNetworkTransaction* trans = helper.trans();
5153 5137
5154 // Run until we've received the primary SYN_STREAM, the pushed SYN_STREAM, 5138 // Run until we've received the primary SYN_STREAM, the pushed SYN_STREAM,
5155 // the first HEADERS frame, and the body of the primary stream, but before 5139 // the first HEADERS frame, and the body of the primary stream, but before
5156 // we've received the final HEADERS for the pushed stream. 5140 // we've received the final HEADERS for the pushed stream.
5157 data->SetStop(4); 5141 data->SetStop(4);
5158 5142
5159 // Start the transaction. 5143 // Start the transaction.
(...skipping 10 matching lines...) Expand all
5170 scoped_ptr<HttpNetworkTransaction> trans2( 5154 scoped_ptr<HttpNetworkTransaction> trans2(
5171 new HttpNetworkTransaction(helper.session())); 5155 new HttpNetworkTransaction(helper.session()));
5172 rv = trans2->Start( 5156 rv = trans2->Start(
5173 &CreateGetPushRequest(), callback.callback(), BoundNetLog()); 5157 &CreateGetPushRequest(), callback.callback(), BoundNetLog());
5174 EXPECT_EQ(ERR_IO_PENDING, rv); 5158 EXPECT_EQ(ERR_IO_PENDING, rv);
5175 data->RunFor(3); 5159 data->RunFor(3);
5176 MessageLoop::current()->RunAllPending(); 5160 MessageLoop::current()->RunAllPending();
5177 5161
5178 // Read the server push body. 5162 // Read the server push body.
5179 std::string result2; 5163 std::string result2;
5180 ReadResult(trans2.get(), data, &result2); 5164 ReadResult(trans2.get(), data.get(), &result2);
5181 // Read the response body. 5165 // Read the response body.
5182 std::string result; 5166 std::string result;
5183 ReadResult(trans, data, &result); 5167 ReadResult(trans, data.get(), &result);
5184 5168
5185 // Verify that we consumed all test data. 5169 // Verify that we consumed all test data.
5186 EXPECT_TRUE(data->at_read_eof()); 5170 EXPECT_TRUE(data->at_read_eof());
5187 EXPECT_TRUE(data->at_write_eof()); 5171 EXPECT_TRUE(data->at_write_eof());
5188 5172
5189 // Verify that the received push data is same as the expected push data. 5173 // Verify that the received push data is same as the expected push data.
5190 EXPECT_EQ(result2.compare(expected_push_result), 0) 5174 EXPECT_EQ(result2.compare(expected_push_result), 0)
5191 << "Received data: " 5175 << "Received data: "
5192 << result2 5176 << result2
5193 << "||||| Expected data: " 5177 << "||||| Expected data: "
(...skipping 390 matching lines...) Expand 10 before | Expand all | Expand 10 after
5584 MockRead reads[] = { 5568 MockRead reads[] = {
5585 CreateMockRead(*resp1, 1), 5569 CreateMockRead(*resp1, 1),
5586 CreateMockRead(*body1, 2), 5570 CreateMockRead(*body1, 2),
5587 CreateMockRead(*resp2, 5), 5571 CreateMockRead(*resp2, 5),
5588 CreateMockRead(*body2, 6), 5572 CreateMockRead(*body2, 6),
5589 CreateMockRead(*resp3, 7), 5573 CreateMockRead(*resp3, 7),
5590 CreateMockRead(*body3, 8), 5574 CreateMockRead(*body3, 8),
5591 MockRead(ASYNC, 0, 9) // EOF 5575 MockRead(ASYNC, 0, 9) // EOF
5592 }; 5576 };
5593 5577
5594 scoped_refptr<DeterministicSocketData> data( 5578 scoped_ptr<DeterministicSocketData> data(
5595 new DeterministicSocketData(reads, arraysize(reads), 5579 new DeterministicSocketData(reads, arraysize(reads),
5596 writes, arraysize(writes))); 5580 writes, arraysize(writes)));
5597 NormalSpdyTransactionHelper helper(CreateGetRequest(), 5581 NormalSpdyTransactionHelper helper(CreateGetRequest(),
5598 BoundNetLog(), GetParam(), NULL); 5582 BoundNetLog(), GetParam(), NULL);
5599 helper.SetDeterministic(); 5583 helper.SetDeterministic();
5600 helper.RunPreTestSetup(); 5584 helper.RunPreTestSetup();
5601 helper.AddDeterministicData(data.get()); 5585 helper.AddDeterministicData(data.get());
5602 5586
5603 // Start the first transaction to set up the SpdySession 5587 // Start the first transaction to set up the SpdySession
5604 HttpNetworkTransaction* trans = helper.trans(); 5588 HttpNetworkTransaction* trans = helper.trans();
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
5641 // And now we can allow everything else to run to completion. 5625 // And now we can allow everything else to run to completion.
5642 data->SetStop(10); 5626 data->SetStop(10);
5643 data->Run(); 5627 data->Run();
5644 EXPECT_EQ(OK, callback2.WaitForResult()); 5628 EXPECT_EQ(OK, callback2.WaitForResult());
5645 EXPECT_EQ(OK, callback3.WaitForResult()); 5629 EXPECT_EQ(OK, callback3.WaitForResult());
5646 5630
5647 helper.VerifyDataConsumed(); 5631 helper.VerifyDataConsumed();
5648 } 5632 }
5649 5633
5650 } // namespace net 5634 } // namespace net
OLDNEW
« no previous file with comments | « net/spdy/spdy_http_stream_spdy3_unittest.cc ('k') | net/spdy/spdy_network_transaction_spdy3_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698