Index: net/quic/quic_crypto_server_stream_test.cc |
diff --git a/net/quic/quic_crypto_server_stream_test.cc b/net/quic/quic_crypto_server_stream_test.cc |
index ce9654444443e83abf336bab20b42f31d54d1d9a..f2ba4eda558816d3ea3ce9e1337e9232bede46ba 100644 |
--- a/net/quic/quic_crypto_server_stream_test.cc |
+++ b/net/quic/quic_crypto_server_stream_test.cc |
@@ -234,6 +234,28 @@ TEST_P(QuicCryptoServerStreamTest, ConnectedAfterCHLO) { |
EXPECT_TRUE(server_stream()->handshake_confirmed()); |
} |
+TEST_P(QuicCryptoServerStreamTest, EncryptionLevelAfterCHLO) { |
+ Initialize(); |
+ InitializeFakeClient(/* supports_stateless_rejects= */ false); |
+ |
+ // Do a first handshake in order to prime the client config with the server's |
+ // information. |
+ AdvanceHandshakeWithFakeClient(); |
+ EXPECT_FALSE(server_stream()->encryption_established()); |
+ EXPECT_FALSE(server_stream()->handshake_confirmed()); |
+ |
+ // Now do another handshake, with the blocking SHLO connection option. |
+ InitializeServer(); |
+ InitializeFakeClient(/* supports_stateless_rejects= */ false); |
+ client_session_->config()->SetConnectionOptionsToSend({kIPFS}); |
+ |
+ AdvanceHandshakeWithFakeClient(); |
+ EXPECT_TRUE(server_stream()->encryption_established()); |
+ EXPECT_TRUE(server_stream()->handshake_confirmed()); |
+ EXPECT_EQ(ENCRYPTION_FORWARD_SECURE, |
+ server_session_->connection()->encryption_level()); |
+} |
+ |
TEST_P(QuicCryptoServerStreamTest, StatelessRejectAfterCHLO) { |
ValueRestore<bool> old_flag(&FLAGS_enable_quic_stateless_reject_support, |
true); |