| Index: components/cronet/android/url_request_context_adapter.cc
|
| diff --git a/components/cronet/android/url_request_context_adapter.cc b/components/cronet/android/url_request_context_adapter.cc
|
| index 58abcb027b31d7804fa7027991083da257ab129b..11204ac7728b65fe3d8eb2e74ebc6b55cbc8c4a2 100644
|
| --- a/components/cronet/android/url_request_context_adapter.cc
|
| +++ b/components/cronet/android/url_request_context_adapter.cc
|
| @@ -18,7 +18,6 @@
|
| #include "net/base/net_util.h"
|
| #include "net/base/network_change_notifier.h"
|
| #include "net/base/network_delegate_impl.h"
|
| -#include "net/cert/cert_verifier.h"
|
| #include "net/http/http_auth_handler_factory.h"
|
| #include "net/http/http_network_layer.h"
|
| #include "net/http/http_server_properties.h"
|
| @@ -31,6 +30,14 @@
|
| #include "net/url_request/url_request_context_storage.h"
|
| #include "net/url_request/url_request_job_factory_impl.h"
|
|
|
| +#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 {
|
|
|
| class BasicNetworkDelegate : public net::NetworkDelegateImpl {
|
| @@ -144,6 +151,10 @@ void URLRequestContextAdapter::InitRequestContextOnNetworkThread() {
|
| context_builder.set_proxy_config_service(proxy_config_service_.Pass());
|
| config_->ConfigureURLRequestContextBuilder(&context_builder);
|
|
|
| +#if defined(CRONET_TEST)
|
| + ConfigureURLRequestContextBuilderForTesting(&context_builder);
|
| +#endif
|
| +
|
| context_ = context_builder.Build().Pass();
|
|
|
| if (config_->enable_sdch) {
|
| @@ -306,6 +317,28 @@ void URLRequestContextAdapter::StopNetLogHelper() {
|
| }
|
| }
|
|
|
| +#if defined(CRONET_TEST)
|
| +void URLRequestContextAdapter::ConfigureURLRequestContextBuilderForTesting(
|
| + 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
|
| +
|
| void NetLogObserver::OnAddEntry(const net::NetLog::Entry& entry) {
|
| VLOG(2) << "Net log entry: type=" << entry.type()
|
| << ", source=" << entry.source().type << ", phase=" << entry.phase();
|
|
|