| Index: ios/web/net/cert_verifier_block_adapter_unittest.cc
|
| diff --git a/ios/web/net/cert_verifier_block_adapter_unittest.cc b/ios/web/net/cert_verifier_block_adapter_unittest.cc
|
| index f05acf68945f1b15ab00435c5b0a28ad1dec6555..948057108e2a159303a511d371feb0218de1d5e9 100644
|
| --- a/ios/web/net/cert_verifier_block_adapter_unittest.cc
|
| +++ b/ios/web/net/cert_verifier_block_adapter_unittest.cc
|
| @@ -148,4 +148,25 @@ TEST_F(CertVerifierBlockAdapterTest, DefaultParamsAndSyncError) {
|
| EXPECT_EQ(kExpectedError, actual_error);
|
| }
|
|
|
| +// Tests that the completion handler passed to |Verify()| is called, even if the
|
| +// adapter is destroyed.
|
| +TEST_F(CertVerifierBlockAdapterTest, CompletionHandlerIsAlwaysCalled) {
|
| + scoped_ptr<net::CertVerifier> verifier(net::CertVerifier::CreateDefault());
|
| + scoped_ptr<CertVerifierBlockAdapter> test_adapter(
|
| + new CertVerifierBlockAdapter(verifier.get(), &net_log_));
|
| +
|
| + // Call |Verify| and destroy the adapter.
|
| + CertVerifierBlockAdapter::Params params(cert_.get(), kHostName);
|
| + __block bool verification_completed = false;
|
| + test_adapter->Verify(params, ^(net::CertVerifyResult, int) {
|
| + verification_completed = true;
|
| + });
|
| + test_adapter.reset();
|
| +
|
| + // Make sure that the completion handler is called.
|
| + base::test::ios::WaitUntilCondition(^{
|
| + return verification_completed;
|
| + }, base::MessageLoop::current(), base::TimeDelta());
|
| +}
|
| +
|
| } // namespace web
|
|
|