OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 <cstddef> | 5 #include <cstddef> |
6 #include <string> | 6 #include <string> |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/memory/ref_counted.h" | 9 #include "base/memory/ref_counted.h" |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
165 EXPECT_TRUE(stream->HasUrlFromHeaders()); | 165 EXPECT_TRUE(stream->HasUrlFromHeaders()); |
166 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); | 166 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); |
167 | 167 |
168 data.RunFor(GetNumReads() + GetNumWrites()); | 168 data.RunFor(GetNumReads() + GetNumWrites()); |
169 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose()); | 169 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose()); |
170 | 170 |
171 EXPECT_TRUE(delegate.send_headers_completed()); | 171 EXPECT_TRUE(delegate.send_headers_completed()); |
172 EXPECT_EQ("200", delegate.GetResponseHeaderValue(spdy_util_.GetStatusKey())); | 172 EXPECT_EQ("200", delegate.GetResponseHeaderValue(spdy_util_.GetStatusKey())); |
173 EXPECT_EQ(std::string(kPostBody, kPostBodyLength), | 173 EXPECT_EQ(std::string(kPostBody, kPostBodyLength), |
174 delegate.TakeReceivedData()); | 174 delegate.TakeReceivedData()); |
175 EXPECT_TRUE(data.AllWriteDataConsumed()); | 175 EXPECT_TRUE(data.at_write_eof()); |
176 } | 176 } |
177 | 177 |
178 TEST_P(SpdyStreamTest, PushedStream) { | 178 TEST_P(SpdyStreamTest, PushedStream) { |
179 session_ = | 179 session_ = |
180 SpdySessionDependencies::SpdyCreateSessionDeterministic(&session_deps_); | 180 SpdySessionDependencies::SpdyCreateSessionDeterministic(&session_deps_); |
181 | 181 |
182 AddReadEOF(); | 182 AddReadEOF(); |
183 | 183 |
184 DeterministicSocketData data(GetReads(), GetNumReads(), GetWrites(), | 184 DeterministicSocketData data(GetReads(), GetNumReads(), GetWrites(), |
185 GetNumWrites()); | 185 GetNumWrites()); |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
285 | 285 |
286 data.RunFor(GetNumReads() + GetNumWrites()); | 286 data.RunFor(GetNumReads() + GetNumWrites()); |
287 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose()); | 287 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose()); |
288 | 288 |
289 const SpdyStreamId stream_id = delegate.stream_id(); | 289 const SpdyStreamId stream_id = delegate.stream_id(); |
290 | 290 |
291 EXPECT_TRUE(delegate.send_headers_completed()); | 291 EXPECT_TRUE(delegate.send_headers_completed()); |
292 EXPECT_EQ("200", delegate.GetResponseHeaderValue(spdy_util_.GetStatusKey())); | 292 EXPECT_EQ("200", delegate.GetResponseHeaderValue(spdy_util_.GetStatusKey())); |
293 EXPECT_EQ(std::string(kPostBody, kPostBodyLength), | 293 EXPECT_EQ(std::string(kPostBody, kPostBodyLength), |
294 delegate.TakeReceivedData()); | 294 delegate.TakeReceivedData()); |
295 EXPECT_TRUE(data.AllWriteDataConsumed()); | 295 EXPECT_TRUE(data.at_write_eof()); |
296 | 296 |
297 // Check that the NetLog was filled reasonably. | 297 // Check that the NetLog was filled reasonably. |
298 CapturedNetLogEntry::List entries; | 298 CapturedNetLogEntry::List entries; |
299 log.GetEntries(&entries); | 299 log.GetEntries(&entries); |
300 EXPECT_LT(0u, entries.size()); | 300 EXPECT_LT(0u, entries.size()); |
301 | 301 |
302 // Check that we logged SPDY_STREAM_ERROR correctly. | 302 // Check that we logged SPDY_STREAM_ERROR correctly. |
303 int pos = ExpectLogContainsSomewhere( | 303 int pos = ExpectLogContainsSomewhere( |
304 entries, 0, NetLog::TYPE_HTTP2_STREAM_ERROR, NetLog::PHASE_NONE); | 304 entries, 0, NetLog::TYPE_HTTP2_STREAM_ERROR, NetLog::PHASE_NONE); |
305 | 305 |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
365 stream->SendRequestHeaders(headers.Pass(), MORE_DATA_TO_SEND)); | 365 stream->SendRequestHeaders(headers.Pass(), MORE_DATA_TO_SEND)); |
366 EXPECT_TRUE(stream->HasUrlFromHeaders()); | 366 EXPECT_TRUE(stream->HasUrlFromHeaders()); |
367 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); | 367 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); |
368 | 368 |
369 data.RunFor(GetNumReads() + GetNumWrites()); | 369 data.RunFor(GetNumReads() + GetNumWrites()); |
370 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose()); | 370 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose()); |
371 | 371 |
372 EXPECT_TRUE(delegate.send_headers_completed()); | 372 EXPECT_TRUE(delegate.send_headers_completed()); |
373 EXPECT_EQ("200", delegate.GetResponseHeaderValue(spdy_util_.GetStatusKey())); | 373 EXPECT_EQ("200", delegate.GetResponseHeaderValue(spdy_util_.GetStatusKey())); |
374 EXPECT_EQ(std::string(), delegate.TakeReceivedData()); | 374 EXPECT_EQ(std::string(), delegate.TakeReceivedData()); |
375 EXPECT_TRUE(data.AllWriteDataConsumed()); | 375 EXPECT_TRUE(data.at_write_eof()); |
376 } | 376 } |
377 | 377 |
378 // Make sure that large blocks of data are properly split up into | 378 // Make sure that large blocks of data are properly split up into |
379 // frame-sized chunks for a bidirectional (i.e., non-HTTP-like) | 379 // frame-sized chunks for a bidirectional (i.e., non-HTTP-like) |
380 // stream. | 380 // stream. |
381 TEST_P(SpdyStreamTest, SendLargeDataAfterOpenBidirectional) { | 381 TEST_P(SpdyStreamTest, SendLargeDataAfterOpenBidirectional) { |
382 GURL url(kStreamUrl); | 382 GURL url(kStreamUrl); |
383 | 383 |
384 session_ = | 384 session_ = |
385 SpdySessionDependencies::SpdyCreateSessionDeterministic(&session_deps_); | 385 SpdySessionDependencies::SpdyCreateSessionDeterministic(&session_deps_); |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
428 stream->SendRequestHeaders(headers.Pass(), MORE_DATA_TO_SEND)); | 428 stream->SendRequestHeaders(headers.Pass(), MORE_DATA_TO_SEND)); |
429 EXPECT_TRUE(stream->HasUrlFromHeaders()); | 429 EXPECT_TRUE(stream->HasUrlFromHeaders()); |
430 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); | 430 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); |
431 | 431 |
432 data.RunFor(GetNumReads() + GetNumWrites()); | 432 data.RunFor(GetNumReads() + GetNumWrites()); |
433 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose()); | 433 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose()); |
434 | 434 |
435 EXPECT_TRUE(delegate.send_headers_completed()); | 435 EXPECT_TRUE(delegate.send_headers_completed()); |
436 EXPECT_EQ("200", delegate.GetResponseHeaderValue(spdy_util_.GetStatusKey())); | 436 EXPECT_EQ("200", delegate.GetResponseHeaderValue(spdy_util_.GetStatusKey())); |
437 EXPECT_EQ(std::string(), delegate.TakeReceivedData()); | 437 EXPECT_EQ(std::string(), delegate.TakeReceivedData()); |
438 EXPECT_TRUE(data.AllWriteDataConsumed()); | 438 EXPECT_TRUE(data.at_write_eof()); |
439 } | 439 } |
440 | 440 |
441 // Receiving a header with uppercase ASCII should result in a protocol | 441 // Receiving a header with uppercase ASCII should result in a protocol |
442 // error. | 442 // error. |
443 TEST_P(SpdyStreamTest, UpperCaseHeaders) { | 443 TEST_P(SpdyStreamTest, UpperCaseHeaders) { |
444 GURL url(kStreamUrl); | 444 GURL url(kStreamUrl); |
445 | 445 |
446 session_ = | 446 session_ = |
447 SpdySessionDependencies::SpdyCreateSessionDeterministic(&session_deps_); | 447 SpdySessionDependencies::SpdyCreateSessionDeterministic(&session_deps_); |
448 | 448 |
(...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
868 | 868 |
869 EXPECT_FALSE(stream->send_stalled_by_flow_control()); | 869 EXPECT_FALSE(stream->send_stalled_by_flow_control()); |
870 | 870 |
871 data.RunFor(3); | 871 data.RunFor(3); |
872 | 872 |
873 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose()); | 873 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose()); |
874 | 874 |
875 EXPECT_TRUE(delegate.send_headers_completed()); | 875 EXPECT_TRUE(delegate.send_headers_completed()); |
876 EXPECT_EQ("200", delegate.GetResponseHeaderValue(":status")); | 876 EXPECT_EQ("200", delegate.GetResponseHeaderValue(":status")); |
877 EXPECT_EQ(std::string(), delegate.TakeReceivedData()); | 877 EXPECT_EQ(std::string(), delegate.TakeReceivedData()); |
878 EXPECT_TRUE(data.AllWriteDataConsumed()); | 878 EXPECT_TRUE(data.at_write_eof()); |
879 } | 879 } |
880 | 880 |
881 TEST_P(SpdyStreamTest, ResumeAfterSendWindowSizeIncreaseRequestResponse) { | 881 TEST_P(SpdyStreamTest, ResumeAfterSendWindowSizeIncreaseRequestResponse) { |
882 RunResumeAfterUnstallRequestResponseTest( | 882 RunResumeAfterUnstallRequestResponseTest( |
883 base::Bind(&IncreaseStreamSendWindowSize)); | 883 base::Bind(&IncreaseStreamSendWindowSize)); |
884 } | 884 } |
885 | 885 |
886 TEST_P(SpdyStreamTest, ResumeAfterSendWindowSizeAdjustRequestResponse) { | 886 TEST_P(SpdyStreamTest, ResumeAfterSendWindowSizeAdjustRequestResponse) { |
887 RunResumeAfterUnstallRequestResponseTest( | 887 RunResumeAfterUnstallRequestResponseTest( |
888 base::Bind(&AdjustStreamSendWindowSize)); | 888 base::Bind(&AdjustStreamSendWindowSize)); |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
957 EXPECT_FALSE(stream->send_stalled_by_flow_control()); | 957 EXPECT_FALSE(stream->send_stalled_by_flow_control()); |
958 | 958 |
959 data.RunFor(3); | 959 data.RunFor(3); |
960 | 960 |
961 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose()); | 961 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose()); |
962 | 962 |
963 EXPECT_TRUE(delegate.send_headers_completed()); | 963 EXPECT_TRUE(delegate.send_headers_completed()); |
964 EXPECT_EQ("200", delegate.GetResponseHeaderValue(":status")); | 964 EXPECT_EQ("200", delegate.GetResponseHeaderValue(":status")); |
965 EXPECT_EQ(std::string(kPostBody, kPostBodyLength), | 965 EXPECT_EQ(std::string(kPostBody, kPostBodyLength), |
966 delegate.TakeReceivedData()); | 966 delegate.TakeReceivedData()); |
967 EXPECT_TRUE(data.AllWriteDataConsumed()); | 967 EXPECT_TRUE(data.at_write_eof()); |
968 } | 968 } |
969 | 969 |
970 TEST_P(SpdyStreamTest, ResumeAfterSendWindowSizeIncreaseBidirectional) { | 970 TEST_P(SpdyStreamTest, ResumeAfterSendWindowSizeIncreaseBidirectional) { |
971 RunResumeAfterUnstallBidirectionalTest( | 971 RunResumeAfterUnstallBidirectionalTest( |
972 base::Bind(&IncreaseStreamSendWindowSize)); | 972 base::Bind(&IncreaseStreamSendWindowSize)); |
973 } | 973 } |
974 | 974 |
975 TEST_P(SpdyStreamTest, ResumeAfterSendWindowSizeAdjustBidirectional) { | 975 TEST_P(SpdyStreamTest, ResumeAfterSendWindowSizeAdjustBidirectional) { |
976 RunResumeAfterUnstallBidirectionalTest( | 976 RunResumeAfterUnstallBidirectionalTest( |
977 base::Bind(&AdjustStreamSendWindowSize)); | 977 base::Bind(&AdjustStreamSendWindowSize)); |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1040 data.RunFor(1); // FIN | 1040 data.RunFor(1); // FIN |
1041 | 1041 |
1042 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose()); | 1042 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose()); |
1043 } | 1043 } |
1044 | 1044 |
1045 } // namespace | 1045 } // namespace |
1046 | 1046 |
1047 } // namespace test | 1047 } // namespace test |
1048 | 1048 |
1049 } // namespace net | 1049 } // namespace net |
OLD | NEW |