#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 { … };
std::string PrintToString(const TestParams& tp) { … }
std::vector<TestParams> GetTestParams() { … }
class QuicHeadersStreamTest : public QuicTestWithParam<TestParams> { … };
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) { … }
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) { … }
}
}
}