summaryrefslogtreecommitdiff
path: root/chromium/net/third_party/quiche/src/quic/qbone/qbone_stream_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/net/third_party/quiche/src/quic/qbone/qbone_stream_test.cc')
-rw-r--r--chromium/net/third_party/quiche/src/quic/qbone/qbone_stream_test.cc53
1 files changed, 31 insertions, 22 deletions
diff --git a/chromium/net/third_party/quiche/src/quic/qbone/qbone_stream_test.cc b/chromium/net/third_party/quiche/src/quic/qbone/qbone_stream_test.cc
index cfe9645c1d4..18f48f7331b 100644
--- a/chromium/net/third_party/quiche/src/quic/qbone/qbone_stream_test.cc
+++ b/chromium/net/third_party/quiche/src/quic/qbone/qbone_stream_test.cc
@@ -6,6 +6,7 @@
#include <utility>
+#include "absl/strings/string_view.h"
#include "net/third_party/quiche/src/quic/core/crypto/quic_random.h"
#include "net/third_party/quiche/src/quic/core/quic_session.h"
#include "net/third_party/quiche/src/quic/core/quic_simple_buffer_allocator.h"
@@ -16,7 +17,6 @@
#include "net/third_party/quiche/src/quic/qbone/qbone_session_base.h"
#include "net/third_party/quiche/src/quic/test_tools/mock_clock.h"
#include "net/third_party/quiche/src/quic/test_tools/quic_test_utils.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
#include "net/third_party/quiche/src/spdy/core/spdy_protocol.h"
namespace quic {
@@ -40,13 +40,12 @@ class MockQuicSession : public QboneSessionBase {
~MockQuicSession() override {}
// Writes outgoing data from QuicStream to a string.
- QuicConsumedData WritevData(
- QuicStreamId id,
- size_t write_length,
- QuicStreamOffset offset,
- StreamSendingState state,
- TransmissionType type,
- quiche::QuicheOptional<EncryptionLevel> level) override {
+ QuicConsumedData WritevData(QuicStreamId id,
+ size_t write_length,
+ QuicStreamOffset offset,
+ StreamSendingState state,
+ TransmissionType type,
+ absl::optional<EncryptionLevel> level) override {
if (!writable_) {
return QuicConsumedData(0, false);
}
@@ -58,14 +57,21 @@ class MockQuicSession : public QboneSessionBase {
return nullptr;
}
- const QuicCryptoStream* GetCryptoStream() const override { return nullptr; }
- QuicCryptoStream* GetMutableCryptoStream() override { return nullptr; }
-
// Called by QuicStream when they want to close stream.
MOCK_METHOD(void,
SendRstStream,
(QuicStreamId, QuicRstStreamErrorCode, QuicStreamOffset, bool),
(override));
+ MOCK_METHOD(void,
+ MaybeSendRstStreamFrame,
+ (QuicStreamId stream_id,
+ QuicRstStreamErrorCode error,
+ QuicStreamOffset bytes_written),
+ (override));
+ MOCK_METHOD(void,
+ MaybeSendStopSendingFrame,
+ (QuicStreamId stream_id, QuicRstStreamErrorCode error),
+ (override));
// Sets whether data is written to buffer, or else if this is write blocked.
void set_writable(bool writable) { writable_ = writable; }
@@ -86,17 +92,11 @@ class MockQuicSession : public QboneSessionBase {
}
std::unique_ptr<QuicCryptoStream> CreateCryptoStream() override {
- return nullptr;
+ return std::make_unique<test::MockQuicCryptoStream>(this);
}
- MOCK_METHOD(void,
- ProcessPacketFromPeer,
- (quiche::QuicheStringPiece),
- (override));
- MOCK_METHOD(void,
- ProcessPacketFromNetwork,
- (quiche::QuicheStringPiece),
- (override));
+ MOCK_METHOD(void, ProcessPacketFromPeer, (absl::string_view), (override));
+ MOCK_METHOD(void, ProcessPacketFromNetwork, (absl::string_view), (override));
private:
// Whether data is written to write_buffer_.
@@ -152,12 +152,14 @@ class QboneReadOnlyStreamTest : public ::testing::Test,
connection_.reset(new QuicConnection(
test::TestConnectionId(0), QuicSocketAddress(TestLoopback(), 0),
+ QuicSocketAddress(TestLoopback(), 0),
this /*QuicConnectionHelperInterface*/, alarm_factory_.get(),
new DummyPacketWriter(), owns_writer, perspective,
ParsedVersionOfIndex(CurrentSupportedVersions(), 0)));
clock_.AdvanceTime(QuicTime::Delta::FromSeconds(1));
session_ = std::make_unique<StrictMock<MockQuicSession>>(connection_.get(),
QuicConfig());
+ session_->Initialize();
stream_ = new QboneReadOnlyStream(kStreamId, session_.get());
session_->ActivateReliableStream(
std::unique_ptr<QboneReadOnlyStream>(stream_));
@@ -243,8 +245,15 @@ TEST_F(QboneReadOnlyStreamTest, ReadBufferedTooLarge) {
CreateReliableQuicStream();
std::string packet = "0123456789";
int iterations = (QboneConstants::kMaxQbonePacketBytes / packet.size()) + 2;
- EXPECT_CALL(*session_,
- SendRstStream(kStreamId, QUIC_BAD_APPLICATION_PAYLOAD, _, _));
+ if (!session_->split_up_send_rst()) {
+ EXPECT_CALL(*session_,
+ SendRstStream(kStreamId, QUIC_BAD_APPLICATION_PAYLOAD, _, _));
+ } else {
+ EXPECT_CALL(*session_, MaybeSendStopSendingFrame(
+ kStreamId, QUIC_BAD_APPLICATION_PAYLOAD));
+ EXPECT_CALL(*session_, MaybeSendRstStreamFrame(
+ kStreamId, QUIC_BAD_APPLICATION_PAYLOAD, _));
+ }
for (int i = 0; i < iterations; ++i) {
QuicStreamFrame frame(kStreamId, i == (iterations - 1), i * packet.size(),
packet);