Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(665)

Unified Diff: net/tools/quic/quic_dispatcher_test.cc

Issue 2429173004: Move FakeProofSource into its own library (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/quic/test_tools/fake_proof_source.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/tools/quic/quic_dispatcher_test.cc
diff --git a/net/tools/quic/quic_dispatcher_test.cc b/net/tools/quic/quic_dispatcher_test.cc
index a857e74e66e773ed82f489f45e8f5a8faa373454..62d7b4238d31829d814f991382f5d7b7bf61d9ea 100644
--- a/net/tools/quic/quic_dispatcher_test.cc
+++ b/net/tools/quic/quic_dispatcher_test.cc
@@ -17,6 +17,7 @@
#include "net/quic/core/quic_flags.h"
#include "net/quic/core/quic_utils.h"
#include "net/quic/test_tools/crypto_test_utils.h"
+#include "net/quic/test_tools/fake_proof_source.h"
#include "net/quic/test_tools/quic_buffered_packet_store_peer.h"
#include "net/quic/test_tools/quic_crypto_server_config_peer.h"
#include "net/quic/test_tools/quic_test_utils.h"
@@ -1539,91 +1540,6 @@ TEST_P(BufferedPacketStoreTest, ReceiveCHLOForBufferedConnection) {
EXPECT_TRUE(store->HasChloForConnection(/*connection_id=*/1));
}
-// Implementation of ProofSource which delegates to a ProofSourceForTesting,
-// except that when the async GetProof is called, it captures the call and
-// allows tests to see that a call is pending, which they can then cause to
-// complete at a time of their choosing.
-class FakeProofSource : public ProofSource {
- public:
- FakeProofSource() : delegate_(CryptoTestUtils::ProofSourceForTesting()) {}
-
- // Before this object is "active", all calls to GetProof will be delegated
- // immediately. Once "active", the async ones will be intercepted. This
- // distinction is necessary to ensure that GetProof can be called without
- // interference during test case setup.
- void Activate() { active_ = true; }
-
- bool GetProof(const IPAddress& server_ip,
- const string& hostname,
- const string& server_config,
- QuicVersion quic_version,
- StringPiece chlo_hash,
- scoped_refptr<ProofSource::Chain>* out_chain,
- string* out_signature,
- string* out_leaf_cert_sct) override {
- return delegate_->GetProof(server_ip, hostname, server_config, quic_version,
- chlo_hash, out_chain, out_signature,
- out_leaf_cert_sct);
- }
-
- void GetProof(const IPAddress& server_ip,
- const string& hostname,
- const string& server_config,
- QuicVersion quic_version,
- StringPiece chlo_hash,
- std::unique_ptr<ProofSource::Callback> callback) override {
- if (!active_) {
- scoped_refptr<Chain> chain;
- string signature;
- string leaf_cert_sct;
- const bool ok =
- GetProof(server_ip, hostname, server_config, quic_version,
- chlo_hash.as_string(), &chain, &signature, &leaf_cert_sct);
- callback->Run(ok, chain, signature, leaf_cert_sct,
- /* details = */ nullptr);
- return;
- }
-
- params_.push_back(Params{server_ip, hostname, server_config, quic_version,
- chlo_hash.as_string(), std::move(callback)});
- }
-
- int NumPendingCallbacks() const { return params_.size(); }
-
- void InvokePendingCallback(int n) {
- CHECK(NumPendingCallbacks() > n);
-
- const Params& params = params_[n];
-
- scoped_refptr<ProofSource::Chain> chain;
- string signature;
- string leaf_cert_sct;
- const bool ok = delegate_->GetProof(params.server_ip, params.hostname,
- params.server_config,
- params.quic_version, params.chlo_hash,
- &chain, &signature, &leaf_cert_sct);
-
- params.callback->Run(ok, chain, signature, leaf_cert_sct,
- /* details = */ nullptr);
- params_.erase(params_.begin() + n);
- }
-
- private:
- std::unique_ptr<ProofSource> delegate_;
- bool active_ = false;
-
- struct Params {
- IPAddress server_ip;
- string hostname;
- string server_config;
- QuicVersion quic_version;
- string chlo_hash;
- std::unique_ptr<ProofSource::Callback> callback;
- };
-
- std::vector<Params> params_;
-};
-
// Test which exercises the async GetProof codepaths, especially in the context
// of stateless rejection.
class AsyncGetProofTest : public QuicDispatcherTest {
« no previous file with comments | « net/quic/test_tools/fake_proof_source.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698