Fix CryptoTestUtilsTest.

CryptoTestUtilsTest.TestGenerateFullCHLO picks the first version with
PROTOCOL_QUIC_CRYPTO, but ShloVerifier.ValidateClientHelloDone() uses
AllSupportedVersions().front() and assumes it is the same version.  In order to
fix it, this CL pumbs the version through ShloVerifier.

This is prework for cl/290840338.

gfe-relnote: n/a (test-only change)
PiperOrigin-RevId: 297615868
Change-Id: I7fbceeac1b2ad1dda5cacea5e9e7bda891e3f311
diff --git a/quic/test_tools/crypto_test_utils_test.cc b/quic/test_tools/crypto_test_utils_test.cc
index 582568c..6e64cb8 100644
--- a/quic/test_tools/crypto_test_utils_test.cc
+++ b/quic/test_tools/crypto_test_utils_test.cc
@@ -24,14 +24,16 @@
       QuicSocketAddress client_addr,
       const QuicClock* clock,
       QuicReferenceCountedPointer<QuicSignedServerConfig> signed_config,
-      QuicCompressedCertsCache* compressed_certs_cache)
+      QuicCompressedCertsCache* compressed_certs_cache,
+      ParsedQuicVersion version)
       : crypto_config_(crypto_config),
         server_addr_(server_addr),
         client_addr_(client_addr),
         clock_(clock),
         signed_config_(signed_config),
         compressed_certs_cache_(compressed_certs_cache),
-        params_(new QuicCryptoNegotiatedParameters) {}
+        params_(new QuicCryptoNegotiatedParameters),
+        version_(version) {}
 
   class ValidateClientHelloCallback : public ValidateClientHelloResultCallback {
    public:
@@ -60,9 +62,9 @@
     crypto_config_->ProcessClientHello(
         result_, /*reject_only=*/false,
         /*connection_id=*/TestConnectionId(1), server_addr_, client_addr_,
-        AllSupportedVersions().front(), AllSupportedVersions(), clock_,
-        QuicRandom::GetInstance(), compressed_certs_cache_, params_,
-        signed_config_, /*total_framing_overhead=*/50, kDefaultMaxPacketSize,
+        version_, AllSupportedVersions(), clock_, QuicRandom::GetInstance(),
+        compressed_certs_cache_, params_, signed_config_,
+        /*total_framing_overhead=*/50, kDefaultMaxPacketSize,
         GetProcessClientHelloCallback());
   }
 
@@ -103,6 +105,8 @@
   QuicReferenceCountedPointer<QuicCryptoNegotiatedParameters> params_;
   QuicReferenceCountedPointer<ValidateClientHelloResultCallback::Result>
       result_;
+
+  const ParsedQuicVersion version_;
 };
 
 class CryptoTestUtilsTest : public QuicTest {};
@@ -169,8 +173,10 @@
                                       transport_version, &clock, signed_config,
                                       &compressed_certs_cache, &full_chlo);
   // Verify that full_chlo can pass crypto_config's verification.
-  ShloVerifier shlo_verifier(&crypto_config, server_addr, client_addr, &clock,
-                             signed_config, &compressed_certs_cache);
+  ShloVerifier shlo_verifier(
+      &crypto_config, server_addr, client_addr, &clock, signed_config,
+      &compressed_certs_cache,
+      ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, transport_version));
   crypto_config.ValidateClientHello(
       full_chlo, client_addr.host(), server_addr, transport_version, &clock,
       signed_config, shlo_verifier.GetValidateClientHelloCallback());