| 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)
|
|
|