Add ClearControlFrame() to quic_test_utils.

This function does not have to live in a class and does not need seven identical
definitions.

gfe-relnote: n/a, test-only refactoring.
PiperOrigin-RevId: 254999491
Change-Id: I1173acb47388e3a5ca010c927c4e886d3b6ab387
diff --git a/quic/core/quic_stream_test.cc b/quic/core/quic_stream_test.cc
index 4c5dac7..45fae55 100644
--- a/quic/core/quic_stream_test.cc
+++ b/quic/core/quic_stream_test.cc
@@ -121,11 +121,6 @@
     return QuicConsumedData(1, false);
   }
 
-  bool ClearControlFrame(const QuicFrame& frame) {
-    DeleteFrame(&const_cast<QuicFrame&>(frame));
-    return true;
-  }
-
   bool ClearResetStreamFrame(const QuicFrame& frame) {
     EXPECT_EQ(RST_STREAM_FRAME, frame.type);
     DeleteFrame(&const_cast<QuicFrame&>(frame));
@@ -610,7 +605,7 @@
       .Times(0);
   EXPECT_CALL(*connection_, SendControlFrame(_))
       .Times(AtLeast(1))
-      .WillRepeatedly(Invoke(this, &QuicStreamTest::ClearControlFrame));
+      .WillRepeatedly(Invoke(&ClearControlFrame));
 
   std::string data(1000, 'x');
   for (QuicStreamOffset offset = 0;
@@ -1493,7 +1488,7 @@
   EXPECT_CALL(*session_, WritevData(_, _, _, _, _))
       .WillRepeatedly(Invoke(MockQuicSession::ConsumeData));
   EXPECT_CALL(*connection_, SendControlFrame(_))
-      .WillOnce(Invoke(this, &QuicStreamTest::ClearControlFrame));
+      .WillOnce(Invoke(&ClearControlFrame));
   std::string data(1024, '.');
   stream_->WriteOrBufferData(data, false, nullptr);
   EXPECT_FALSE(HasWriteBlockedStreams());
@@ -1519,7 +1514,7 @@
   EXPECT_CALL(*session_, WritevData(_, _, _, _, _))
       .WillRepeatedly(Invoke(MockQuicSession::ConsumeData));
   EXPECT_CALL(*connection_, SendControlFrame(_))
-      .WillOnce(Invoke(this, &QuicStreamTest::ClearControlFrame));
+      .WillOnce(Invoke(&ClearControlFrame));
   stream_->WriteOrBufferData(data, false, nullptr);
   EXPECT_FALSE(HasWriteBlockedStreams());