| 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 "base/basictypes.h" | 5 #include "base/basictypes.h" |
| 6 #include "base/memory/ref_counted.h" | 6 #include "base/memory/ref_counted.h" |
| 7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
| 8 #include "base/strings/string_piece.h" | 8 #include "base/strings/string_piece.h" |
| 9 #include "net/base/completion_callback.h" | 9 #include "net/base/completion_callback.h" |
| 10 #include "net/base/net_log_unittest.h" | 10 #include "net/base/net_log_unittest.h" |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 124 EXPECT_TRUE(stream->HasUrl()); | 124 EXPECT_TRUE(stream->HasUrl()); |
| 125 EXPECT_EQ(kStreamUrl, stream->GetUrl().spec()); | 125 EXPECT_EQ(kStreamUrl, stream->GetUrl().spec()); |
| 126 | 126 |
| 127 EXPECT_EQ(ERR_IO_PENDING, stream->SendRequest(true)); | 127 EXPECT_EQ(ERR_IO_PENDING, stream->SendRequest(true)); |
| 128 | 128 |
| 129 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose()); | 129 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose()); |
| 130 | 130 |
| 131 EXPECT_TRUE(delegate.send_headers_completed()); | 131 EXPECT_TRUE(delegate.send_headers_completed()); |
| 132 EXPECT_EQ("200", delegate.GetResponseHeaderValue(":status")); | 132 EXPECT_EQ("200", delegate.GetResponseHeaderValue(":status")); |
| 133 EXPECT_EQ("HTTP/1.1", delegate.GetResponseHeaderValue(":version")); | 133 EXPECT_EQ("HTTP/1.1", delegate.GetResponseHeaderValue(":version")); |
| 134 EXPECT_EQ(std::string(kPostBody, kPostBodyLength), delegate.received_data()); | 134 EXPECT_EQ(std::string(kPostBody, kPostBodyLength), |
| 135 delegate.TakeReceivedData()); |
| 135 EXPECT_EQ(static_cast<int>(kPostBodyLength), delegate.data_sent()); | 136 EXPECT_EQ(static_cast<int>(kPostBodyLength), delegate.data_sent()); |
| 136 } | 137 } |
| 137 | 138 |
| 138 TEST_F(SpdyStreamSpdy3Test, SendHeaderAndDataAfterOpen) { | 139 TEST_F(SpdyStreamSpdy3Test, SendHeaderAndDataAfterOpen) { |
| 139 session_ = SpdySessionDependencies::SpdyCreateSession(&session_deps_); | 140 session_ = SpdySessionDependencies::SpdyCreateSession(&session_deps_); |
| 140 | 141 |
| 141 scoped_ptr<SpdyFrame> expected_request(ConstructSpdyWebSocketSynStream( | 142 scoped_ptr<SpdyFrame> expected_request(ConstructSpdyWebSocketSynStream( |
| 142 1, | 143 1, |
| 143 "/chat", | 144 "/chat", |
| 144 "server.example.com", | 145 "server.example.com", |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 202 stream->set_spdy_headers(headers.Pass()); | 203 stream->set_spdy_headers(headers.Pass()); |
| 203 EXPECT_TRUE(stream->HasUrl()); | 204 EXPECT_TRUE(stream->HasUrl()); |
| 204 | 205 |
| 205 EXPECT_EQ(ERR_IO_PENDING, stream->SendRequest(true)); | 206 EXPECT_EQ(ERR_IO_PENDING, stream->SendRequest(true)); |
| 206 | 207 |
| 207 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose()); | 208 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose()); |
| 208 | 209 |
| 209 EXPECT_TRUE(delegate.send_headers_completed()); | 210 EXPECT_TRUE(delegate.send_headers_completed()); |
| 210 EXPECT_EQ("101", delegate.GetResponseHeaderValue(":status")); | 211 EXPECT_EQ("101", delegate.GetResponseHeaderValue(":status")); |
| 211 EXPECT_EQ(1, delegate.headers_sent()); | 212 EXPECT_EQ(1, delegate.headers_sent()); |
| 212 EXPECT_EQ(std::string(), delegate.received_data()); | 213 EXPECT_EQ(std::string(), delegate.TakeReceivedData()); |
| 213 EXPECT_EQ(6, delegate.data_sent()); | 214 EXPECT_EQ(6, delegate.data_sent()); |
| 214 } | 215 } |
| 215 | 216 |
| 216 TEST_F(SpdyStreamSpdy3Test, PushedStream) { | 217 TEST_F(SpdyStreamSpdy3Test, PushedStream) { |
| 217 session_ = SpdySessionDependencies::SpdyCreateSession(&session_deps_); | 218 session_ = SpdySessionDependencies::SpdyCreateSession(&session_deps_); |
| 218 scoped_refptr<SpdySession> spdy_session(CreateSpdySession()); | 219 scoped_refptr<SpdySession> spdy_session(CreateSpdySession()); |
| 219 | 220 |
| 220 MockRead reads[] = { | 221 MockRead reads[] = { |
| 221 MockRead(ASYNC, 0, 0), // EOF | 222 MockRead(ASYNC, 0, 0), // EOF |
| 222 }; | 223 }; |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 321 | 322 |
| 322 EXPECT_EQ(ERR_IO_PENDING, stream->SendRequest(true)); | 323 EXPECT_EQ(ERR_IO_PENDING, stream->SendRequest(true)); |
| 323 | 324 |
| 324 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose()); | 325 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose()); |
| 325 | 326 |
| 326 const SpdyStreamId stream_id = stream->stream_id(); | 327 const SpdyStreamId stream_id = stream->stream_id(); |
| 327 | 328 |
| 328 EXPECT_TRUE(delegate.send_headers_completed()); | 329 EXPECT_TRUE(delegate.send_headers_completed()); |
| 329 EXPECT_EQ("200", delegate.GetResponseHeaderValue(":status")); | 330 EXPECT_EQ("200", delegate.GetResponseHeaderValue(":status")); |
| 330 EXPECT_EQ("HTTP/1.1", delegate.GetResponseHeaderValue(":version")); | 331 EXPECT_EQ("HTTP/1.1", delegate.GetResponseHeaderValue(":version")); |
| 331 EXPECT_EQ(std::string(kPostBody, kPostBodyLength), delegate.received_data()); | 332 EXPECT_EQ(std::string(kPostBody, kPostBodyLength), |
| 333 delegate.TakeReceivedData()); |
| 332 EXPECT_EQ(static_cast<int>(kPostBodyLength), delegate.data_sent()); | 334 EXPECT_EQ(static_cast<int>(kPostBodyLength), delegate.data_sent()); |
| 333 | 335 |
| 334 // Check that the NetLog was filled reasonably. | 336 // Check that the NetLog was filled reasonably. |
| 335 net::CapturingNetLog::CapturedEntryList entries; | 337 net::CapturingNetLog::CapturedEntryList entries; |
| 336 log.GetEntries(&entries); | 338 log.GetEntries(&entries); |
| 337 EXPECT_LT(0u, entries.size()); | 339 EXPECT_LT(0u, entries.size()); |
| 338 | 340 |
| 339 // Check that we logged SPDY_STREAM_ERROR correctly. | 341 // Check that we logged SPDY_STREAM_ERROR correctly. |
| 340 int pos = net::ExpectLogContainsSomewhere( | 342 int pos = net::ExpectLogContainsSomewhere( |
| 341 entries, 0, | 343 entries, 0, |
| (...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 471 | 473 |
| 472 EXPECT_FALSE(stream->send_stalled_by_flow_control()); | 474 EXPECT_FALSE(stream->send_stalled_by_flow_control()); |
| 473 | 475 |
| 474 data.RunFor(3); | 476 data.RunFor(3); |
| 475 | 477 |
| 476 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose()); | 478 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose()); |
| 477 | 479 |
| 478 EXPECT_TRUE(delegate.send_headers_completed()); | 480 EXPECT_TRUE(delegate.send_headers_completed()); |
| 479 EXPECT_EQ("200", delegate.GetResponseHeaderValue(":status")); | 481 EXPECT_EQ("200", delegate.GetResponseHeaderValue(":status")); |
| 480 EXPECT_EQ("HTTP/1.1", delegate.GetResponseHeaderValue(":version")); | 482 EXPECT_EQ("HTTP/1.1", delegate.GetResponseHeaderValue(":version")); |
| 481 EXPECT_EQ(std::string(kPostBody, kPostBodyLength), delegate.received_data()); | 483 EXPECT_EQ(std::string(kPostBody, kPostBodyLength), |
| 484 delegate.TakeReceivedData()); |
| 482 EXPECT_EQ(static_cast<int>(kPostBodyLength), delegate.body_data_sent()); | 485 EXPECT_EQ(static_cast<int>(kPostBodyLength), delegate.body_data_sent()); |
| 483 } | 486 } |
| 484 | 487 |
| 485 // Cause a send stall by reducing the flow control send window to | 488 // Cause a send stall by reducing the flow control send window to |
| 486 // 0. The stream should resume when that window is then adjusted | 489 // 0. The stream should resume when that window is then adjusted |
| 487 // positively. | 490 // positively. |
| 488 TEST_F(SpdyStreamSpdy3Test, ResumeAfterSendWindowSizeAdjust) { | 491 TEST_F(SpdyStreamSpdy3Test, ResumeAfterSendWindowSizeAdjust) { |
| 489 GURL url(kStreamUrl); | 492 GURL url(kStreamUrl); |
| 490 | 493 |
| 491 session_ = | 494 session_ = |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 562 | 565 |
| 563 EXPECT_FALSE(stream->send_stalled_by_flow_control()); | 566 EXPECT_FALSE(stream->send_stalled_by_flow_control()); |
| 564 | 567 |
| 565 data.RunFor(3); | 568 data.RunFor(3); |
| 566 | 569 |
| 567 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose()); | 570 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose()); |
| 568 | 571 |
| 569 EXPECT_TRUE(delegate.send_headers_completed()); | 572 EXPECT_TRUE(delegate.send_headers_completed()); |
| 570 EXPECT_EQ("200", delegate.GetResponseHeaderValue(":status")); | 573 EXPECT_EQ("200", delegate.GetResponseHeaderValue(":status")); |
| 571 EXPECT_EQ("HTTP/1.1", delegate.GetResponseHeaderValue(":version")); | 574 EXPECT_EQ("HTTP/1.1", delegate.GetResponseHeaderValue(":version")); |
| 572 EXPECT_EQ(std::string(kPostBody, kPostBodyLength), delegate.received_data()); | 575 EXPECT_EQ(std::string(kPostBody, kPostBodyLength), |
| 576 delegate.TakeReceivedData()); |
| 573 EXPECT_EQ(static_cast<int>(kPostBodyLength), delegate.body_data_sent()); | 577 EXPECT_EQ(static_cast<int>(kPostBodyLength), delegate.body_data_sent()); |
| 574 } | 578 } |
| 575 | 579 |
| 576 } // namespace | 580 } // namespace |
| 577 | 581 |
| 578 } // namespace test | 582 } // namespace test |
| 579 | 583 |
| 580 } // namespace net | 584 } // namespace net |
| OLD | NEW |