diff --git a/quic/test_tools/quic_test_client.cc b/quic/test_tools/quic_test_client.cc
index c25bd8e..56dc1ec 100644
--- a/quic/test_tools/quic_test_client.cc
+++ b/quic/test_tools/quic_test_client.cc
@@ -605,10 +605,6 @@
   return client()->connection_error();
 }
 
-MockableQuicClient* QuicTestClient::client() {
-  return client_.get();
-}
-
 const std::string& QuicTestClient::cert_common_name() const {
   return reinterpret_cast<RecordingProofVerifier*>(client_->proof_verifier())
       ->common_name();
diff --git a/quic/test_tools/quic_test_client.h b/quic/test_tools/quic_test_client.h
index a7c9d6a..1bd0247 100644
--- a/quic/test_tools/quic_test_client.h
+++ b/quic/test_tools/quic_test_client.h
@@ -271,7 +271,8 @@
   QuicRstStreamErrorCode stream_error() { return stream_error_; }
   QuicErrorCode connection_error();
 
-  MockableQuicClient* client();
+  MockableQuicClient* client() { return client_.get(); }
+  const MockableQuicClient* client() const { return client_.get(); }
 
   // cert_common_name returns the common name value of the server's certificate,
   // or the empty std::string if no certificate was presented.
diff --git a/quic/tools/quic_client_base.cc b/quic/tools/quic_client_base.cc
index efd668f..f0def98 100644
--- a/quic/tools/quic_client_base.cc
+++ b/quic/tools/quic_client_base.cc
@@ -226,6 +226,10 @@
   return session_.get();
 }
 
+const QuicSession* QuicClientBase::session() const {
+  return session_.get();
+}
+
 QuicClientBase::NetworkHelper* QuicClientBase::network_helper() {
   return network_helper_.get();
 }
diff --git a/quic/tools/quic_client_base.h b/quic/tools/quic_client_base.h
index 842afc6..ff600ae 100644
--- a/quic/tools/quic_client_base.h
+++ b/quic/tools/quic_client_base.h
@@ -125,6 +125,7 @@
   bool ChangeEphemeralPort();
 
   QuicSession* session();
+  const QuicSession* session() const;
 
   bool connected() const;
   bool goaway_received() const;
diff --git a/quic/tools/quic_spdy_client_base.cc b/quic/tools/quic_spdy_client_base.cc
index 1bb01ef..6ee3ad6 100644
--- a/quic/tools/quic_spdy_client_base.cc
+++ b/quic/tools/quic_spdy_client_base.cc
@@ -62,6 +62,10 @@
   return static_cast<QuicSpdyClientSession*>(QuicClientBase::session());
 }
 
+const QuicSpdyClientSession* QuicSpdyClientBase::client_session() const {
+  return static_cast<const QuicSpdyClientSession*>(QuicClientBase::session());
+}
+
 void QuicSpdyClientBase::InitializeSession() {
   client_session()->Initialize();
   client_session()->CryptoConnect();
diff --git a/quic/tools/quic_spdy_client_base.h b/quic/tools/quic_spdy_client_base.h
index a6d4f86..874aa2d 100644
--- a/quic/tools/quic_spdy_client_base.h
+++ b/quic/tools/quic_spdy_client_base.h
@@ -104,6 +104,7 @@
   // Returns a the session used for this client downcasted to a
   // QuicSpdyClientSession.
   QuicSpdyClientSession* client_session();
+  const QuicSpdyClientSession* client_session() const;
 
   QuicClientPushPromiseIndex* push_promise_index() {
     return &push_promise_index_;
