#include "quiche/spdy/core/hpack/hpack_decoder_adapter.h"
#include <stdint.h>
#include <cstddef>
#include <string>
#include <tuple>
#include <utility>
#include <vector>
#include "absl/base/macros.h"
#include "absl/strings/escaping.h"
#include "absl/strings/string_view.h"
#include "quiche/http2/core/recording_headers_handler.h"
#include "quiche/http2/hpack/decoder/hpack_decoder.h"
#include "quiche/http2/hpack/decoder/hpack_decoder_state.h"
#include "quiche/http2/hpack/decoder/hpack_decoder_tables.h"
#include "quiche/http2/hpack/hpack_constants.h"
#include "quiche/http2/hpack/hpack_encoder.h"
#include "quiche/http2/hpack/hpack_output_stream.h"
#include "quiche/http2/hpack/http2_hpack_constants.h"
#include "quiche/http2/test_tools/hpack_block_builder.h"
#include "quiche/http2/test_tools/http2_random.h"
#include "quiche/common/http/http_header_block.h"
#include "quiche/common/platform/api/quiche_logging.h"
#include "quiche/common/platform/api/quiche_test.h"
#include "quiche/common/quiche_text_utils.h"
HpackEntryType;
HpackStringPair;
HpackBlockBuilder;
HpackDecoderPeer;
ElementsAre;
Pair;
namespace http2 {
namespace test {
class HpackDecoderStatePeer { … };
class HpackDecoderPeer { … };
}
}
namespace spdy {
namespace test {
class HpackDecoderAdapterPeer { … };
class HpackEncoderPeer { … };
namespace {
const bool kNoCheckDecodedSize = …;
const char* kCookieKey = …;
class HpackDecoderAdapterTest : public quiche::test::QuicheTestWithParam<bool> { … };
INSTANTIATE_TEST_SUITE_P(…);
INSTANTIATE_TEST_SUITE_P(…);
TEST_P(HpackDecoderAdapterTest, ApplyHeaderTableSizeSetting) { … }
TEST_P(HpackDecoderAdapterTest,
AddHeaderDataWithHandleControlFrameHeadersData) { … }
TEST_P(HpackDecoderAdapterTest, NameTooLong) { … }
TEST_P(HpackDecoderAdapterTest, HeaderTooLongToBuffer) { … }
TEST_P(HpackDecoderAdapterTest, HeaderBlockTooLong) { … }
TEST_P(HpackDecoderAdapterTest, DecodeWithIncompleteData) { … }
TEST_P(HpackDecoderAdapterTest, HandleHeaderRepresentation) { … }
TEST_P(HpackDecoderAdapterTest, IndexedHeaderStatic) { … }
TEST_P(HpackDecoderAdapterTest, IndexedHeaderDynamic) { … }
TEST_P(HpackDecoderAdapterTest, InvalidIndexedHeader) { … }
TEST_P(HpackDecoderAdapterTest, ContextUpdateMaximumSize) { … }
TEST_P(HpackDecoderAdapterTest, TwoTableSizeUpdates) { … }
TEST_P(HpackDecoderAdapterTest, ThreeTableSizeUpdatesError) { … }
TEST_P(HpackDecoderAdapterTest, TableSizeUpdateSecondError) { … }
TEST_P(HpackDecoderAdapterTest, TableSizeUpdateFirstThirdError) { … }
TEST_P(HpackDecoderAdapterTest, LiteralHeaderNoIndexing) { … }
TEST_P(HpackDecoderAdapterTest, LiteralHeaderIncrementalIndexing) { … }
TEST_P(HpackDecoderAdapterTest, LiteralHeaderWithIndexingInvalidNameIndex) { … }
TEST_P(HpackDecoderAdapterTest, LiteralHeaderNoIndexingInvalidNameIndex) { … }
TEST_P(HpackDecoderAdapterTest, LiteralHeaderNeverIndexedInvalidNameIndex) { … }
TEST_P(HpackDecoderAdapterTest, TruncatedIndex) { … }
TEST_P(HpackDecoderAdapterTest, TruncatedHuffmanLiteral) { … }
TEST_P(HpackDecoderAdapterTest, HuffmanEOSError) { … }
TEST_P(HpackDecoderAdapterTest, BasicC31) { … }
TEST_P(HpackDecoderAdapterTest, SectionC4RequestHuffmanExamples) { … }
TEST_P(HpackDecoderAdapterTest, SectionC6ResponseHuffmanExamples) { … }
TEST_P(HpackDecoderAdapterTest, ReuseNameOfEvictedEntry) { … }
TEST_P(HpackDecoderAdapterTest, Cookies) { … }
}
}
}