diff --git a/quic/test_tools/quic_test_utils.cc b/quic/test_tools/quic_test_utils.cc
index 506d323..e1f036d 100644
--- a/quic/test_tools/quic_test_utils.cc
+++ b/quic/test_tools/quic_test_utils.cc
@@ -1062,14 +1062,6 @@
   return config;
 }
 
-QuicConfig DefaultQuicConfigStatelessRejects() {
-  QuicConfig config = DefaultQuicConfig();
-  QuicTagVector copt;
-  copt.push_back(kSREJ);
-  config.SetConnectionOptionsToSend(copt);
-  return config;
-}
-
 QuicTransportVersionVector SupportedTransportVersions(
     QuicTransportVersion version) {
   QuicTransportVersionVector versions;
@@ -1100,7 +1092,6 @@
 
 void CreateClientSessionForTest(
     QuicServerId server_id,
-    bool supports_stateless_rejects,
     QuicTime::Delta connection_start_time,
     const ParsedQuicVersionVector& supported_versions,
     MockQuicConnectionHelper* helper,
@@ -1115,9 +1106,7 @@
       << "Connections must start at non-zero times, otherwise the "
       << "strike-register will be unhappy.";
 
-  QuicConfig config = supports_stateless_rejects
-                          ? DefaultQuicConfigStatelessRejects()
-                          : DefaultQuicConfig();
+  QuicConfig config = DefaultQuicConfig();
   *client_connection = new PacketSavingConnection(
       helper, alarm_factory, Perspective::IS_CLIENT, supported_versions);
   *client_session = new TestQuicSpdyClientSession(*client_connection, config,
diff --git a/quic/test_tools/quic_test_utils.h b/quic/test_tools/quic_test_utils.h
index f64ddbd..a889804 100644
--- a/quic/test_tools/quic_test_utils.h
+++ b/quic/test_tools/quic_test_utils.h
@@ -160,9 +160,6 @@
 // Returns QuicConfig set to default values.
 QuicConfig DefaultQuicConfig();
 
-// Returns a QuicConfig set to default values that supports stateless rejects.
-QuicConfig DefaultQuicConfigStatelessRejects();
-
 // Returns a version vector consisting of |version|.
 QuicTransportVersionVector SupportedTransportVersions(
     QuicTransportVersion version);
@@ -1072,7 +1069,6 @@
 // Creates a client session for testing.
 //
 // server_id: The server id associated with this stream.
-// supports_stateless_rejects:  Does this client support stateless rejects.
 // connection_start_time: The time to set for the connection clock.
 //   Needed for strike-register nonce verification.  The client
 //   connection_start_time should be synchronized witht the server
@@ -1087,7 +1083,6 @@
 //   session.  The new object will be owned by the caller.
 void CreateClientSessionForTest(
     QuicServerId server_id,
-    bool supports_stateless_rejects,
     QuicTime::Delta connection_start_time,
     const ParsedQuicVersionVector& supported_versions,
     MockQuicConnectionHelper* helper,
