Update tests to check that 1-RTT packets are also buffered when the connection ID is different.

PiperOrigin-RevId: 479426978
diff --git a/quiche/quic/core/quic_connection_test.cc b/quiche/quic/core/quic_connection_test.cc
index c6886c6..6ffef91 100644
--- a/quiche/quic/core/quic_connection_test.cc
+++ b/quiche/quic/core/quic_connection_test.cc
@@ -15747,15 +15747,15 @@
   }
 }
 
-ACTION_P(InstallHandshakeKeys, conn) {
-  conn->SetEncrypter(ENCRYPTION_HANDSHAKE,
-                     std::make_unique<TaggingEncrypter>(0x02));
-  conn->InstallDecrypter(ENCRYPTION_HANDSHAKE,
-                         std::make_unique<StrictTaggingDecrypter>(0x02));
-  conn->SetDefaultEncryptionLevel(ENCRYPTION_HANDSHAKE);
+ACTION_P2(InstallKeys, conn, level) {
+  uint8_t crypto_input = (level == ENCRYPTION_FORWARD_SECURE) ? 0x03 : 0x02;
+  conn->SetEncrypter(level, std::make_unique<TaggingEncrypter>(crypto_input));
+  conn->InstallDecrypter(
+      level, std::make_unique<StrictTaggingDecrypter>(crypto_input));
+  conn->SetDefaultEncryptionLevel(level);
 }
 
-TEST_P(QuicConnectionTest, ServerConnectionIdChangeWithLostInitial) {
+TEST_P(QuicConnectionTest, ServerConnectionIdChangeWithLateInitial) {
   if (!connection_.version().HasIetfQuicFrames()) {
     return;
   }
@@ -15764,34 +15764,42 @@
   EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _)).Times(1);
   QuicConfig config;
   connection_.SetFromConfig(config);
+  connection_.RemoveEncrypter(ENCRYPTION_FORWARD_SECURE);
+  connection_.RemoveDecrypter(ENCRYPTION_FORWARD_SECURE);
 
   // Send Client Initial.
   connection_.SetDefaultEncryptionLevel(ENCRYPTION_INITIAL);
   connection_.SendCryptoStreamData();
 
   EXPECT_EQ(1u, writer_->packets_write_attempts());
-  // Server Handshake Packet Arrives with new connection ID.
+  // Server Handshake packet with new connection ID is buffered.
   QuicConnectionId old_id = connection_id_;
   connection_id_ = TestConnectionId(2);
   peer_creator_.SetEncrypter(ENCRYPTION_HANDSHAKE,
                              std::make_unique<TaggingEncrypter>(0x02));
   ProcessCryptoPacketAtLevel(0, ENCRYPTION_HANDSHAKE);
-  // Packet is buffered.
   EXPECT_EQ(QuicConnectionPeer::NumUndecryptablePackets(&connection_), 1u);
   EXPECT_EQ(connection_.connection_id(), old_id);
 
+  // Server 1-RTT Packet is buffered.
+  peer_creator_.SetEncrypter(ENCRYPTION_FORWARD_SECURE,
+                             std::make_unique<TaggingEncrypter>(0x03));
+  ProcessDataPacket(0);
+  EXPECT_EQ(QuicConnectionPeer::NumUndecryptablePackets(&connection_), 2u);
+
   // Pretend the server Initial packet will yield the Handshake keys.
   EXPECT_CALL(visitor_, OnCryptoFrame(_))
       .Times(2)
-      .WillOnce(InstallHandshakeKeys(&connection_))
-      .WillOnce(Return());
+      .WillOnce(InstallKeys(&connection_, ENCRYPTION_HANDSHAKE))
+      .WillOnce(InstallKeys(&connection_, ENCRYPTION_FORWARD_SECURE));
+  EXPECT_CALL(visitor_, OnStreamFrame(_)).Times(1);
   ProcessCryptoPacketAtLevel(0, ENCRYPTION_INITIAL);
   // Two packets processed, connection ID changed.
   EXPECT_EQ(QuicConnectionPeer::NumUndecryptablePackets(&connection_), 0u);
   EXPECT_EQ(connection_.connection_id(), connection_id_);
 }
 
-TEST_P(QuicConnectionTest, ServerConnectionIdChangeTwiceWithLostInitial) {
+TEST_P(QuicConnectionTest, ServerConnectionIdChangeTwiceWithLateInitial) {
   if (!connection_.version().HasIetfQuicFrames()) {
     return;
   }
@@ -15818,7 +15826,7 @@
 
   // Pretend the server Initial packet will yield the Handshake keys.
   EXPECT_CALL(visitor_, OnCryptoFrame(_))
-      .WillOnce(InstallHandshakeKeys(&connection_));
+      .WillOnce(InstallKeys(&connection_, ENCRYPTION_HANDSHAKE));
   connection_id_ = TestConnectionId(1);
   ProcessCryptoPacketAtLevel(0, ENCRYPTION_INITIAL);
   // Handshake packet discarded because there's a different connection ID.