Index: net/test/base_test_server.cc |
diff --git a/net/test/base_test_server.cc b/net/test/base_test_server.cc |
index c4f0fc622e7920145077906f4e074814ea8e698b..eefd953a2c592c14feaceda2f84d437298e564d6 100644 |
--- a/net/test/base_test_server.cc |
+++ b/net/test/base_test_server.cc |
@@ -55,6 +55,7 @@ void GetCiphersList(int cipher, base::ListValue* values) { |
BaseTestServer::HTTPSOptions::HTTPSOptions() |
: server_certificate(CERT_OK), |
+ ocsp_status(OCSP_OK), |
request_client_certificate(false), |
bulk_ciphers(HTTPSOptions::BULK_CIPHER_ANY), |
record_resume(false) {} |
@@ -79,12 +80,31 @@ FilePath BaseTestServer::HTTPSOptions::GetCertificateFile() const { |
// This chain uses its own dedicated test root certificate to avoid |
// side-effects that may affect testing. |
return FilePath(FILE_PATH_LITERAL("redundant-server-chain.pem")); |
+ case CERT_AUTO: |
+ return FilePath(); |
default: |
NOTREACHED(); |
} |
return FilePath(); |
} |
+std::string BaseTestServer::HTTPSOptions::GetOCSPArgument() const { |
+ if (server_certificate != CERT_AUTO) |
+ return ""; |
+ |
+ switch (ocsp_status) { |
+ case OCSP_OK: |
+ return "ok"; |
+ case OCSP_REVOKED: |
+ return "revoked"; |
+ case OCSP_INVALID: |
+ return "invalid"; |
+ default: |
+ NOTREACHED(); |
+ return ""; |
+ } |
+} |
+ |
const char BaseTestServer::kLocalhost[] = "127.0.0.1"; |
const char BaseTestServer::kGDataAuthToken[] = "testtoken"; |
@@ -309,17 +329,25 @@ bool BaseTestServer::GenerateArguments(base::DictionaryValue* arguments) const { |
arguments->Set("log-to-console", base::Value::CreateNullValue()); |
if (type_ == TYPE_HTTPS) { |
+ arguments->Set("https", base::Value::CreateNullValue()); |
+ |
// Check the certificate arguments of the HTTPS server. |
FilePath certificate_path(certificates_dir_); |
- certificate_path = certificate_path.Append( |
- https_options_.GetCertificateFile()); |
- if (certificate_path.IsAbsolute() && |
- !file_util::PathExists(certificate_path)) { |
- LOG(ERROR) << "Certificate path " << certificate_path.value() |
- << " doesn't exist. Can't launch https server."; |
- return false; |
+ FilePath certificate_file(https_options_.GetCertificateFile()); |
+ if (!certificate_file.value().empty()) { |
+ certificate_path = certificate_path.Append(certificate_file); |
+ if (certificate_path.IsAbsolute() && |
+ !file_util::PathExists(certificate_path)) { |
+ LOG(ERROR) << "Certificate path " << certificate_path.value() |
+ << " doesn't exist. Can't launch https server."; |
+ return false; |
+ } |
+ arguments->SetString("cert-and-key-file", certificate_path.value()); |
} |
- arguments->SetString("https", certificate_path.value()); |
+ |
+ std::string ocsp_arg = https_options_.GetOCSPArgument(); |
+ if (!ocsp_arg.empty()) |
+ arguments->SetString("ocsp", ocsp_arg); |
// Check the client certificate related arguments. |
if (https_options_.request_client_certificate) |