| Index: components/cronet/android/cronet_url_request_context_adapter.cc | 
| diff --git a/components/cronet/android/cronet_url_request_context_adapter.cc b/components/cronet/android/cronet_url_request_context_adapter.cc | 
| index 29e9c8b01b92c6afb014dd92a6e3bab25d5f1984..bb121cca4a5247093e7d3ed2af245d9bc480d5a9 100644 | 
| --- a/components/cronet/android/cronet_url_request_context_adapter.cc | 
| +++ b/components/cronet/android/cronet_url_request_context_adapter.cc | 
| @@ -41,6 +41,14 @@ | 
| #include "components/cronet/android/cronet_data_reduction_proxy.h" | 
| #endif | 
|  | 
| +#if defined(CRONET_TEST) | 
| +#include "net/base/test_data_directory.h" | 
| +#include "net/cert/cert_verifier.h" | 
| +#include "net/cert/cert_verify_result.h" | 
| +#include "net/cert/mock_cert_verifier.h" | 
| +#include "net/test/cert_test_util.h" | 
| +#endif | 
| + | 
| namespace { | 
|  | 
| const char kHttpServerProperties[] = "net.http_server_properties"; | 
| @@ -278,6 +286,10 @@ void CronetURLRequestContextAdapter::InitializeOnNetworkThread( | 
| proxy_config_service_.Pass(), net_log_.get())); | 
| config->ConfigureURLRequestContextBuilder(&context_builder); | 
|  | 
| +#if defined(CRONET_TEST) | 
| +  ConfigureURLRequestContextBuilderForTesting(config.get(), &context_builder); | 
| +#endif | 
| + | 
| // Set up pref file if storage path is specified. | 
| if (!config->storage_path.empty()) { | 
| base::FilePath filepath(config->storage_path); | 
| @@ -504,6 +516,30 @@ void CronetURLRequestContextAdapter::OnThroughputObservation( | 
| (timestamp - base::TimeTicks::UnixEpoch()).InMilliseconds(), source); | 
| } | 
|  | 
| +#if defined(CRONET_TEST) | 
| +void CronetURLRequestContextAdapter:: | 
| +    ConfigureURLRequestContextBuilderForTesting( | 
| +        URLRequestContextConfig* config, | 
| +        net::URLRequestContextBuilder* builder) { | 
| +  DCHECK(GetNetworkTaskRunner()->BelongsToCurrentThread()); | 
| +  DCHECK(!mock_cert_verifier_); | 
| + | 
| +  if (config->mock_certs_for_testing.empty()) | 
| +    return; | 
| + | 
| +  base::StringTokenizer tokens(config->mock_certs_for_testing, ","); | 
| +  mock_cert_verifier_.reset(new net::MockCertVerifier()); | 
| +  while (tokens.GetNext()) { | 
| +    net::CertVerifyResult verify_result; | 
| +    verify_result.verified_cert = | 
| +        net::ImportCertFromFile(net::GetTestCertsDirectory(), tokens.token()); | 
| +    mock_cert_verifier_->AddResultForCert(verify_result.verified_cert.get(), | 
| +                                          verify_result, net::OK); | 
| +  } | 
| +  builder->set_cert_verifier(mock_cert_verifier_.get()); | 
| +} | 
| +#endif | 
| + | 
| // Creates RequestContextAdater if config is valid URLRequestContextConfig, | 
| // returns 0 otherwise. | 
| static jlong CreateRequestContextAdapter(JNIEnv* env, | 
|  |