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

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

Issue 2064593002: Change SPDY to call request_callback after data is sent. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: append nullptr to data before request Created 4 years, 6 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
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 <cmath> 5 #include <cmath>
6 #include <memory> 6 #include <memory>
7 #include <string> 7 #include <string>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after
273 output_.response_info = *response; // Make a copy so we can verify. 273 output_.response_info = *response; // Make a copy so we can verify.
274 output_.rv = ReadTransaction(trans_.get(), &output_.response_data); 274 output_.rv = ReadTransaction(trans_.get(), &output_.response_data);
275 } 275 }
276 276
277 void FinishDefaultTestWithoutVerification() { 277 void FinishDefaultTestWithoutVerification() {
278 output_.rv = callback_.WaitForResult(); 278 output_.rv = callback_.WaitForResult();
279 if (output_.rv != OK) 279 if (output_.rv != OK)
280 session_->spdy_session_pool()->CloseCurrentSessions(ERR_ABORTED); 280 session_->spdy_session_pool()->CloseCurrentSessions(ERR_ABORTED);
281 } 281 }
282 282
283 void WaitForHeaders() { output_.rv = callback_.WaitForResult(); } 283 void WaitForCallbackToComplete() { output_.rv = callback_.WaitForResult(); }
284 284
285 // Most tests will want to call this function. In particular, the MockReads 285 // Most tests will want to call this function. In particular, the MockReads
286 // should end with an empty read, and that read needs to be processed to 286 // should end with an empty read, and that read needs to be processed to
287 // ensure proper deletion of the spdy_session_pool. 287 // ensure proper deletion of the spdy_session_pool.
288 void VerifyDataConsumed() { 288 void VerifyDataConsumed() {
289 for (const SocketDataProvider* provider : data_vector_) { 289 for (const SocketDataProvider* provider : data_vector_) {
290 EXPECT_TRUE(provider->AllReadDataConsumed()); 290 EXPECT_TRUE(provider->AllReadDataConsumed());
291 EXPECT_TRUE(provider->AllWriteDataConsumed()); 291 EXPECT_TRUE(provider->AllWriteDataConsumed());
292 } 292 }
293 } 293 }
(...skipping 1750 matching lines...) Expand 10 before | Expand all | Expand 10 after
2044 // while still waiting for chunked request data. 2044 // while still waiting for chunked request data.
2045 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); 2045 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes));
2046 NormalSpdyTransactionHelper helper(CreateChunkedPostRequest(), 2046 NormalSpdyTransactionHelper helper(CreateChunkedPostRequest(),
2047 DEFAULT_PRIORITY, 2047 DEFAULT_PRIORITY,
2048 BoundNetLog(), GetParam(), NULL); 2048 BoundNetLog(), GetParam(), NULL);
2049 helper.RunPreTestSetup(); 2049 helper.RunPreTestSetup();
2050 helper.AddData(&data); 2050 helper.AddData(&data);
2051 2051
2052 ASSERT_TRUE(helper.StartDefaultTest()); 2052 ASSERT_TRUE(helper.StartDefaultTest());
2053 2053
2054 helper.WaitForHeaders(); 2054 base::RunLoop().RunUntilIdle();
2055 EXPECT_EQ(OK, helper.output().rv);
2056 2055
2057 // Process the request headers, SYN_REPLY, and response body. 2056 // Process the request headers, SYN_REPLY, and response body.
2058 // The request body is still in flight. 2057 // The request body is still in flight.
2059 const HttpResponseInfo* response = helper.trans()->GetResponseInfo(); 2058 const HttpResponseInfo* response = helper.trans()->GetResponseInfo();
2060 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine()); 2059 EXPECT_EQ("HTTP/1.1 200", response->headers->GetStatusLine());
2061 2060
2062 // Finish sending the request body. 2061 // Finish sending the request body.
2063 upload_chunked_data_stream()->AppendData(kUploadData, kUploadDataSize, true); 2062 upload_chunked_data_stream()->AppendData(kUploadData, kUploadDataSize, true);
2063 helper.WaitForCallbackToComplete();
2064 EXPECT_EQ(OK, helper.output().rv);
2064 2065
2065 std::string response_body; 2066 std::string response_body;
2066 EXPECT_EQ(OK, ReadTransaction(helper.trans(), &response_body)); 2067 EXPECT_EQ(OK, ReadTransaction(helper.trans(), &response_body));
2067 EXPECT_EQ(kUploadData, response_body); 2068 EXPECT_EQ(kUploadData, response_body);
2068 helper.VerifyDataConsumed(); 2069 helper.VerifyDataConsumed();
2069 } 2070 }
2070 2071
2071 // The client upon cancellation tries to send a RST_STREAM frame. The mock 2072 // The client upon cancellation tries to send a RST_STREAM frame. The mock
2072 // socket causes the TCP write to return zero. This test checks that the client 2073 // socket causes the TCP write to return zero. This test checks that the client
2073 // tries to queue up the RST_STREAM frame again. 2074 // tries to queue up the RST_STREAM frame again.
(...skipping 5182 matching lines...) Expand 10 before | Expand all | Expand 10 after
7256 TEST_P(SpdyNetworkTransactionTLSUsageCheckTest, TLSCipherSuiteSucky) { 7257 TEST_P(SpdyNetworkTransactionTLSUsageCheckTest, TLSCipherSuiteSucky) {
7257 std::unique_ptr<SSLSocketDataProvider> ssl_provider( 7258 std::unique_ptr<SSLSocketDataProvider> ssl_provider(
7258 new SSLSocketDataProvider(ASYNC, OK)); 7259 new SSLSocketDataProvider(ASYNC, OK));
7259 // Set to TLS_RSA_WITH_NULL_MD5 7260 // Set to TLS_RSA_WITH_NULL_MD5
7260 SSLConnectionStatusSetCipherSuite(0x1, &ssl_provider->connection_status); 7261 SSLConnectionStatusSetCipherSuite(0x1, &ssl_provider->connection_status);
7261 7262
7262 RunTLSUsageCheckTest(std::move(ssl_provider)); 7263 RunTLSUsageCheckTest(std::move(ssl_provider));
7263 } 7264 }
7264 7265
7265 } // namespace net 7266 } // namespace net
OLDNEW
« net/spdy/spdy_http_stream_unittest.cc ('K') | « net/spdy/spdy_http_stream_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698