#include "quiche/quic/core/http/quic_server_session_base.h"
#include <cstdint>
#include <memory>
#include <string>
#include <utility>
#include <vector>
#include "absl/memory/memory.h"
#include "quiche/quic/core/crypto/null_encrypter.h"
#include "quiche/quic/core/crypto/quic_crypto_server_config.h"
#include "quiche/quic/core/crypto/quic_random.h"
#include "quiche/quic/core/proto/cached_network_parameters_proto.h"
#include "quiche/quic/core/quic_connection.h"
#include "quiche/quic/core/quic_crypto_server_stream.h"
#include "quiche/quic/core/quic_crypto_server_stream_base.h"
#include "quiche/quic/core/quic_types.h"
#include "quiche/quic/core/quic_utils.h"
#include "quiche/quic/core/tls_server_handshaker.h"
#include "quiche/quic/platform/api/quic_expect_bug.h"
#include "quiche/quic/platform/api/quic_flags.h"
#include "quiche/quic/platform/api/quic_socket_address.h"
#include "quiche/quic/platform/api/quic_test.h"
#include "quiche/quic/test_tools/crypto_test_utils.h"
#include "quiche/quic/test_tools/fake_proof_source.h"
#include "quiche/quic/test_tools/mock_quic_session_visitor.h"
#include "quiche/quic/test_tools/quic_config_peer.h"
#include "quiche/quic/test_tools/quic_connection_peer.h"
#include "quiche/quic/test_tools/quic_crypto_server_config_peer.h"
#include "quiche/quic/test_tools/quic_sent_packet_manager_peer.h"
#include "quiche/quic/test_tools/quic_server_session_base_peer.h"
#include "quiche/quic/test_tools/quic_session_peer.h"
#include "quiche/quic/test_tools/quic_spdy_session_peer.h"
#include "quiche/quic/test_tools/quic_stream_id_manager_peer.h"
#include "quiche/quic/test_tools/quic_stream_peer.h"
#include "quiche/quic/test_tools/quic_sustained_bandwidth_recorder_peer.h"
#include "quiche/quic/test_tools/quic_test_utils.h"
#include "quiche/quic/tools/quic_memory_cache_backend.h"
#include "quiche/quic/tools/quic_simple_server_stream.h"
_;
StrictMock;
AtLeast;
namespace quic {
namespace test {
namespace {
const char* const kStreamData = …;
class TestServerSession : public QuicServerSessionBase { … };
const size_t kMaxStreamsForTest = …;
class QuicServerSessionBaseTest : public QuicTestWithParam<ParsedQuicVersion> { … };
MATCHER_P(EqualsProto, network_params, "") { … }
INSTANTIATE_TEST_SUITE_P(…);
TEST_P(QuicServerSessionBaseTest, GetSSLConfig) { … }
TEST_P(QuicServerSessionBaseTest, CloseStreamDueToReset) { … }
TEST_P(QuicServerSessionBaseTest, NeverOpenStreamDueToReset) { … }
TEST_P(QuicServerSessionBaseTest, AcceptClosedStream) { … }
TEST_P(QuicServerSessionBaseTest, MaxOpenStreams) { … }
TEST_P(QuicServerSessionBaseTest, MaxAvailableBidirectionalStreams) { … }
TEST_P(QuicServerSessionBaseTest, GetEvenIncomingError) { … }
TEST_P(QuicServerSessionBaseTest, GetStreamDisconnected) { … }
class MockQuicCryptoServerStream : public QuicCryptoServerStream { … };
class MockTlsServerHandshaker : public TlsServerHandshaker { … };
TEST_P(QuicServerSessionBaseTest, BandwidthEstimates) { … }
TEST_P(QuicServerSessionBaseTest, BandwidthResumptionExperiment) { … }
TEST_P(QuicServerSessionBaseTest, BandwidthMaxEnablesResumption) { … }
TEST_P(QuicServerSessionBaseTest, NoBandwidthResumptionByDefault) { … }
TEST_P(QuicServerSessionBaseTest, OpenStreamLimitPerEventLoop) { … }
class StreamMemberLifetimeTest : public QuicServerSessionBaseTest { … };
INSTANTIATE_TEST_SUITE_P(…);
TEST_P(StreamMemberLifetimeTest, Basic) { … }
}
}
}