#include "quiche/quic/core/http/quic_spdy_client_session.h"
#include <memory>
#include <string>
#include <utility>
#include <vector>
#include "absl/base/macros.h"
#include "absl/memory/memory.h"
#include "absl/strings/str_cat.h"
#include "absl/strings/string_view.h"
#include "quiche/quic/core/crypto/null_decrypter.h"
#include "quiche/quic/core/crypto/null_encrypter.h"
#include "quiche/quic/core/http/http_constants.h"
#include "quiche/quic/core/http/http_frames.h"
#include "quiche/quic/core/http/quic_spdy_client_stream.h"
#include "quiche/quic/core/quic_constants.h"
#include "quiche/quic/core/quic_error_codes.h"
#include "quiche/quic/core/quic_utils.h"
#include "quiche/quic/core/quic_versions.h"
#include "quiche/quic/core/tls_client_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/mock_quic_spdy_client_stream.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_framer_peer.h"
#include "quiche/quic/test_tools/quic_packet_creator_peer.h"
#include "quiche/quic/test_tools/quic_sent_packet_manager_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_peer.h"
#include "quiche/quic/test_tools/quic_test_utils.h"
#include "quiche/quic/test_tools/simple_session_cache.h"
#include "quiche/common/http/http_header_block.h"
HttpHeaderBlock;
_;
AnyNumber;
AtLeast;
AtMost;
Invoke;
StrictMock;
Truly;
namespace quic {
namespace test {
namespace {
const char kServerHostname[] = …;
const uint16_t kPort = …;
class TestQuicSpdyClientSession : public QuicSpdyClientSession { … };
class QuicSpdyClientSessionTest : public QuicTestWithParam<ParsedQuicVersion> { … };
std::string ParamNameFormatter(
const testing::TestParamInfo<QuicSpdyClientSessionTest::ParamType>& info) { … }
INSTANTIATE_TEST_SUITE_P(…);
TEST_P(QuicSpdyClientSessionTest, GetSSLConfig) { … }
TEST_P(QuicSpdyClientSessionTest, CryptoConnect) { … }
TEST_P(QuicSpdyClientSessionTest, NoEncryptionAfterInitialEncryption) { … }
TEST_P(QuicSpdyClientSessionTest, MaxNumStreamsWithNoFinOrRst) { … }
TEST_P(QuicSpdyClientSessionTest, MaxNumStreamsWithRst) { … }
TEST_P(QuicSpdyClientSessionTest, ResetAndTrailers) { … }
TEST_P(QuicSpdyClientSessionTest, ReceivedMalformedTrailersAfterSendingRst) { … }
TEST_P(QuicSpdyClientSessionTest, OnStreamHeaderListWithStaticStream) { … }
TEST_P(QuicSpdyClientSessionTest, GoAwayReceived) { … }
static bool CheckForDecryptionError(QuicFramer* framer) { … }
TEST_P(QuicSpdyClientSessionTest, InvalidPacketReceived) { … }
TEST_P(QuicSpdyClientSessionTest, InvalidFramedPacketReceived) { … }
TEST_P(QuicSpdyClientSessionTest,
TryToCreateServerInitiatedBidirectionalStream) { … }
TEST_P(QuicSpdyClientSessionTest, OnSettingsFrame) { … }
TEST_P(QuicSpdyClientSessionTest, IetfZeroRttSetup) { … }
TEST_P(QuicSpdyClientSessionTest, RetransmitDataOnZeroRttReject) { … }
TEST_P(QuicSpdyClientSessionTest, ZeroRttRejectReducesStreamLimitTooMuch) { … }
TEST_P(QuicSpdyClientSessionTest,
ZeroRttRejectReducesStreamFlowControlTooMuch) { … }
TEST_P(QuicSpdyClientSessionTest,
ZeroRttRejectReducesSessionFlowControlTooMuch) { … }
TEST_P(QuicSpdyClientSessionTest, BadSettingsInZeroRttResumption) { … }
TEST_P(QuicSpdyClientSessionTest, BadSettingsInZeroRttRejection) { … }
TEST_P(QuicSpdyClientSessionTest, ServerAcceptsZeroRttButOmitSetting) { … }
}
}
}