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

Unified Diff: components/cronet/android/url_request_context_adapter.cc

Issue 1389213003: [Cronet] Use Https for Quic Test Server (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ryancl
Patch Set: Use mock verifier and fix tests Created 5 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
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();

Powered by Google App Engine
This is Rietveld 408576698