diff --git a/quic/core/quic_connection_test.cc b/quic/core/quic_connection_test.cc
index 91d42db..62aa83f 100644
--- a/quic/core/quic_connection_test.cc
+++ b/quic/core/quic_connection_test.cc
@@ -11275,12 +11275,7 @@
   if (!connection_.version().CanSendCoalescedPackets()) {
     return;
   }
-  if (GetQuicReloadableFlag(quic_fix_extra_padding_bytes) ||
-      GetQuicReloadableFlag(quic_fix_min_crypto_frame_size)) {
-    EXPECT_CALL(visitor_, OnHandshakePacketSent()).Times(1);
-  } else {
-    EXPECT_CALL(visitor_, OnHandshakePacketSent()).Times(0);
-  }
+  EXPECT_CALL(visitor_, OnHandshakePacketSent()).Times(1);
   {
     QuicConnection::ScopedPacketFlusher flusher(&connection_);
     use_tagging_decrypter();
@@ -11292,21 +11287,9 @@
     SendStreamDataToPeer(2, std::string(1286, 'a'), 0, NO_FIN, nullptr);
     connection_.SetDefaultEncryptionLevel(ENCRYPTION_HANDSHAKE);
     // Try to coalesce a HANDSHAKE packet after 1-RTT packet.
-    if (GetQuicReloadableFlag(quic_fix_extra_padding_bytes) ||
-        GetQuicReloadableFlag(quic_fix_min_crypto_frame_size)) {
-      // Verify soft max packet length gets resumed and handshake packet gets
-      // successfully sent.
-      connection_.SendCryptoDataWithString("a", 0, ENCRYPTION_HANDSHAKE);
-    } else {
-      // Problematic: creator thinks there is space to consume 1-byte, however,
-      // extra paddings make the serialization fail because of
-      // MinPlaintextPacketSize.
-      EXPECT_CALL(visitor_,
-                  OnConnectionClosed(_, ConnectionCloseSource::FROM_SELF));
-      EXPECT_QUIC_BUG(
-          connection_.SendCryptoDataWithString("a", 0, ENCRYPTION_HANDSHAKE),
-          "AppendPaddingFrame of 3 failed");
-    }
+    // Verify soft max packet length gets resumed and handshake packet gets
+    // successfully sent.
+    connection_.SendCryptoDataWithString("a", 0, ENCRYPTION_HANDSHAKE);
   }
 }
 
