chromium/net/third_party/quiche/src/quiche/quic/core/http/quic_headers_stream_test.cc

// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "quiche/quic/core/http/quic_headers_stream.h"

#include <cstdint>
#include <memory>
#include <ostream>
#include <string>
#include <tuple>
#include <utility>
#include <vector>

#include "absl/strings/str_cat.h"
#include "absl/strings/string_view.h"
#include "quiche/http2/core/recording_headers_handler.h"
#include "quiche/http2/test_tools/spdy_test_utils.h"
#include "quiche/quic/core/crypto/null_encrypter.h"
#include "quiche/quic/core/http/spdy_utils.h"
#include "quiche/quic/core/quic_data_writer.h"
#include "quiche/quic/core/quic_utils.h"
#include "quiche/quic/platform/api/quic_bug_tracker.h"
#include "quiche/quic/platform/api/quic_expect_bug.h"
#include "quiche/quic/platform/api/quic_flags.h"
#include "quiche/quic/platform/api/quic_logging.h"
#include "quiche/quic/platform/api/quic_test.h"
#include "quiche/quic/test_tools/quic_connection_peer.h"
#include "quiche/quic/test_tools/quic_spdy_session_peer.h"
#include "quiche/quic/test_tools/quic_stream_peer.h"
#include "quiche/quic/test_tools/quic_test_utils.h"
#include "quiche/common/http/http_header_block.h"
#include "quiche/common/quiche_endian.h"
#include "quiche/spdy/core/http2_frame_decoder_adapter.h"
#include "quiche/spdy/core/spdy_alt_svc_wire_format.h"
#include "quiche/spdy/core/spdy_protocol.h"

HttpHeaderBlock;
ERROR_CODE_PROTOCOL_ERROR;
RecordingHeadersHandler;
SETTINGS_ENABLE_PUSH;
SETTINGS_HEADER_TABLE_SIZE;
SETTINGS_INITIAL_WINDOW_SIZE;
SETTINGS_MAX_CONCURRENT_STREAMS;
SETTINGS_MAX_FRAME_SIZE;
Spdy3PriorityToHttp2Weight;
SpdyAltSvcWireFormat;
SpdyDataIR;
SpdyErrorCode;
SpdyFramer;
SpdyFramerVisitorInterface;
SpdyGoAwayIR;
SpdyHeadersHandlerInterface;
SpdyHeadersIR;
SpdyPingId;
SpdyPingIR;
SpdyPriority;
SpdyPriorityIR;
SpdyPushPromiseIR;
SpdyRstStreamIR;
SpdySerializedFrame;
SpdySettingsId;
SpdySettingsIR;
SpdyStreamId;
SpdyWindowUpdateIR;
_;
AnyNumber;
AtLeast;
InSequence;
Invoke;
Return;
StrictMock;
WithArgs;

namespace quic {
namespace test {
namespace {

class MockVisitor : public SpdyFramerVisitorInterface {};

struct TestParams {};

// Used by ::testing::PrintToStringParamName().
std::string PrintToString(const TestParams& tp) {}

std::vector<TestParams> GetTestParams() {}

class QuicHeadersStreamTest : public QuicTestWithParam<TestParams> {};

// Run all tests with each version and perspective (client or server).
INSTANTIATE_TEST_SUITE_P();

TEST_P(QuicHeadersStreamTest, StreamId) {}

TEST_P(QuicHeadersStreamTest, WriteHeaders) {}

TEST_P(QuicHeadersStreamTest, ProcessRawData) {}

TEST_P(QuicHeadersStreamTest, ProcessPushPromise) {}

TEST_P(QuicHeadersStreamTest, ProcessPriorityFrame) {}

TEST_P(QuicHeadersStreamTest, ProcessPushPromiseDisabledSetting) {}

TEST_P(QuicHeadersStreamTest, ProcessLargeRawData) {}

TEST_P(QuicHeadersStreamTest, ProcessBadData) {}

TEST_P(QuicHeadersStreamTest, ProcessSpdyDataFrame) {}

TEST_P(QuicHeadersStreamTest, ProcessSpdyRstStreamFrame) {}

TEST_P(QuicHeadersStreamTest, RespectHttp2SettingsFrameSupportedFields) {}

// Regression test for b/208997000.
TEST_P(QuicHeadersStreamTest, LimitEncoderDynamicTableSize) {}

TEST_P(QuicHeadersStreamTest, RespectHttp2SettingsFrameUnsupportedFields) {}

TEST_P(QuicHeadersStreamTest, ProcessSpdyPingFrame) {}

TEST_P(QuicHeadersStreamTest, ProcessSpdyGoAwayFrame) {}

TEST_P(QuicHeadersStreamTest, ProcessSpdyWindowUpdateFrame) {}

TEST_P(QuicHeadersStreamTest, NoConnectionLevelFlowControl) {}

TEST_P(QuicHeadersStreamTest, AckSentData) {}

TEST_P(QuicHeadersStreamTest, FrameContainsMultipleHeaders) {}

TEST_P(QuicHeadersStreamTest, HeadersGetAckedMultipleTimes) {}

TEST_P(QuicHeadersStreamTest, CloseOnPushPromiseToServer) {}

}  // namespace
}  // namespace test
}  // namespace quic