Index: net/quic/chromium/crypto/proof_verifier_chromium_test.cc |
diff --git a/net/quic/chromium/crypto/proof_verifier_chromium_test.cc b/net/quic/chromium/crypto/proof_verifier_chromium_test.cc |
index fa05362177356bdbc1d26cf07b6e09da49cd6f46..91f9aed025f28783366d1ea0b3436744b6e9902c 100644 |
--- a/net/quic/chromium/crypto/proof_verifier_chromium_test.cc |
+++ b/net/quic/chromium/crypto/proof_verifier_chromium_test.cc |
@@ -588,5 +588,34 @@ TEST_F(ProofVerifierChromiumTest, DISABLED_PKPAndCTBothTested) { |
CERT_STATUS_CERTIFICATE_TRANSPARENCY_REQUIRED); |
} |
+// Tests that the VerifyCertChain verifies certificates. |
+TEST_F(ProofVerifierChromiumTest, VerifyCertChain) { |
+ scoped_refptr<X509Certificate> test_cert = GetTestServerCertificate(); |
+ ASSERT_TRUE(test_cert); |
+ |
+ CertVerifyResult dummy_result; |
+ dummy_result.verified_cert = test_cert; |
+ dummy_result.cert_status = 0; |
+ |
+ MockCertVerifier dummy_verifier; |
+ dummy_verifier.AddResultForCert(test_cert.get(), dummy_result, OK); |
+ |
+ ProofVerifierChromium proof_verifier(&dummy_verifier, &ct_policy_enforcer_, |
+ &transport_security_state_, |
+ ct_verifier_.get()); |
+ |
+ std::unique_ptr<DummyProofVerifierCallback> callback( |
+ new DummyProofVerifierCallback); |
+ QuicAsyncStatus status = proof_verifier.VerifyCertChain( |
+ kTestHostname, certs_, verify_context_.get(), &error_details_, &details_, |
+ std::move(callback)); |
+ ASSERT_EQ(QUIC_SUCCESS, status); |
+ |
+ ASSERT_TRUE(details_.get()); |
+ ProofVerifyDetailsChromium* verify_details = |
+ static_cast<ProofVerifyDetailsChromium*>(details_.get()); |
+ EXPECT_EQ(0u, verify_details->cert_verify_result.cert_status); |
+} |
+ |
} // namespace test |
} // namespace net |