OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 "net/tools/quic/quic_spdy_server_stream.h" | 5 #include "net/tools/quic/quic_spdy_server_stream.h" |
6 | 6 |
7 #include "base/strings/string_number_conversions.h" | 7 #include "base/strings/string_number_conversions.h" |
8 #include "base/strings/string_piece.h" | 8 #include "base/strings/string_piece.h" |
9 #include "net/quic/quic_connection.h" | 9 #include "net/quic/quic_connection.h" |
10 #include "net/quic/quic_flags.h" | 10 #include "net/quic/quic_flags.h" |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
170 stream_->OnStreamHeaders(headers_string_); | 170 stream_->OnStreamHeaders(headers_string_); |
171 stream_->OnStreamHeadersComplete(false, headers_string_.size()); | 171 stream_->OnStreamHeadersComplete(false, headers_string_.size()); |
172 stream_->OnStreamFrame( | 172 stream_->OnStreamFrame( |
173 QuicStreamFrame(stream_->id(), /*fin=*/false, /*offset=*/0, body_)); | 173 QuicStreamFrame(stream_->id(), /*fin=*/false, /*offset=*/0, body_)); |
174 EXPECT_EQ("11", StreamHeadersValue("content-length")); | 174 EXPECT_EQ("11", StreamHeadersValue("content-length")); |
175 EXPECT_EQ("/", StreamHeadersValue(":path")); | 175 EXPECT_EQ("/", StreamHeadersValue(":path")); |
176 EXPECT_EQ("POST", StreamHeadersValue(":method")); | 176 EXPECT_EQ("POST", StreamHeadersValue(":method")); |
177 EXPECT_EQ(body_, StreamBody()); | 177 EXPECT_EQ(body_, StreamBody()); |
178 } | 178 } |
179 | 179 |
| 180 TEST_P(QuicSpdyServerStreamTest, SendQuicRstStreamNoErrorInStopReading) { |
| 181 EXPECT_CALL(session_, WritevData(_, _, _, _, _, _)) |
| 182 .Times(AnyNumber()) |
| 183 .WillRepeatedly(Invoke(ConsumeAllData)); |
| 184 |
| 185 EXPECT_FALSE(stream_->fin_received()); |
| 186 EXPECT_FALSE(stream_->rst_received()); |
| 187 |
| 188 stream_->set_fin_sent(true); |
| 189 stream_->CloseWriteSide(); |
| 190 |
| 191 if (GetParam() > QUIC_VERSION_28) { |
| 192 EXPECT_CALL(session_, SendRstStream(_, QUIC_STREAM_NO_ERROR, _)).Times(1); |
| 193 } else { |
| 194 EXPECT_CALL(session_, SendRstStream(_, QUIC_STREAM_NO_ERROR, _)).Times(0); |
| 195 } |
| 196 stream_->StopReading(); |
| 197 } |
| 198 |
180 TEST_P(QuicSpdyServerStreamTest, TestFramingExtraData) { | 199 TEST_P(QuicSpdyServerStreamTest, TestFramingExtraData) { |
181 string large_body = "hello world!!!!!!"; | 200 string large_body = "hello world!!!!!!"; |
182 | 201 |
183 // We'll automatically write out an error (headers + body) | 202 // We'll automatically write out an error (headers + body) |
184 EXPECT_CALL(session_, WritevData(_, _, _, _, _, _)).Times(AnyNumber()). | 203 EXPECT_CALL(session_, WritevData(_, _, _, _, _, _)).Times(AnyNumber()). |
185 WillRepeatedly(Invoke(ConsumeAllData)); | 204 WillRepeatedly(Invoke(ConsumeAllData)); |
186 EXPECT_CALL(session_, SendRstStream(_, QUIC_STREAM_NO_ERROR, _)).Times(0); | 205 EXPECT_CALL(session_, SendRstStream(_, QUIC_STREAM_NO_ERROR, _)).Times(0); |
187 | 206 |
188 stream_->OnStreamHeaders(headers_string_); | 207 stream_->OnStreamHeaders(headers_string_); |
189 stream_->OnStreamHeadersComplete(false, headers_string_.size()); | 208 stream_->OnStreamHeadersComplete(false, headers_string_.size()); |
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
370 StringPiece data(arr, arraysize(arr)); | 389 StringPiece data(arr, arraysize(arr)); |
371 QuicStreamFrame frame(stream_->id(), true, 0, data); | 390 QuicStreamFrame frame(stream_->id(), true, 0, data); |
372 // Verify that we don't crash when we get a invalid headers in stream frame. | 391 // Verify that we don't crash when we get a invalid headers in stream frame. |
373 stream_->OnStreamFrame(frame); | 392 stream_->OnStreamFrame(frame); |
374 } | 393 } |
375 | 394 |
376 } // namespace | 395 } // namespace |
377 } // namespace test | 396 } // namespace test |
378 } // namespace tools | 397 } // namespace tools |
379 } // namespace net | 398 } // namespace net |
OLD | NEW |