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

Unified Diff: components/cronet/android/cronet_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/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,

Powered by Google App Engine
This is Rietveld 408576698