diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-04-05 14:08:31 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-04-11 07:46:53 +0000 |
commit | 6a4cabb866f66d4128a97cdc6d9d08ce074f1247 (patch) | |
tree | ab00f70a5e89278d6a0d16ff0c42578dc4d84a2d /chromium/net/test | |
parent | e733310db58160074f574c429d48f8308c0afe17 (diff) | |
download | qtwebengine-chromium-6a4cabb866f66d4128a97cdc6d9d08ce074f1247.tar.gz |
BASELINE: Update Chromium to 57.0.2987.144
Change-Id: I29db402ff696c71a04c4dbaec822c2e53efe0267
Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
Diffstat (limited to 'chromium/net/test')
28 files changed, 196 insertions, 59 deletions
diff --git a/chromium/net/test/cert_test_util.h b/chromium/net/test/cert_test_util.h index 219ccd87257..f948bd8b06c 100644 --- a/chromium/net/test/cert_test_util.h +++ b/chromium/net/test/cert_test_util.h @@ -20,10 +20,6 @@ namespace base { class FilePath; } -namespace crypto { -class RSAPrivateKey; -} - namespace net { class EVRootCAMetadata; diff --git a/chromium/net/test/ct_test_util.h b/chromium/net/test/ct_test_util.h index 7a52becfce1..d39079690ad 100644 --- a/chromium/net/test/ct_test_util.h +++ b/chromium/net/test/ct_test_util.h @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef NET_CERT_CT_TEST_UTIL_H_ -#define NET_CERT_CT_TEST_UTIL_H_ +#ifndef NET_TEST_CT_TEST_UTIL_H_ +#define NET_TEST_CT_TEST_UTIL_H_ #include <stddef.h> #include <stdint.h> @@ -132,4 +132,4 @@ bool CheckForSCTOrigin(const SignedCertificateTimestampAndStatusList& scts, } // namespace net -#endif // NET_CERT_CT_TEST_UTIL_H_ +#endif // NET_TEST_CT_TEST_UTIL_H_ diff --git a/chromium/net/test/embedded_test_server/embedded_test_server.cc b/chromium/net/test/embedded_test_server/embedded_test_server.cc index 7f861d674c0..0f89bd9c9e4 100644 --- a/chromium/net/test/embedded_test_server/embedded_test_server.cc +++ b/chromium/net/test/embedded_test_server/embedded_test_server.cc @@ -23,6 +23,7 @@ #include "crypto/rsa_private_key.h" #include "net/base/ip_endpoint.h" #include "net/base/net_errors.h" +#include "net/base/port_util.h" #include "net/cert/pem_tokenizer.h" #include "net/cert/test_root_certs.h" #include "net/log/net_log_source.h" @@ -92,21 +93,38 @@ bool EmbeddedTestServer::Start() { bool EmbeddedTestServer::InitializeAndListen() { DCHECK(!Started()); - listen_socket_.reset(new TCPServerSocket(nullptr, NetLogSource())); + const int max_tries = 5; + int num_tries = 0; + bool is_valid_port = false; - int result = listen_socket_->ListenWithAddressAndPort("127.0.0.1", 0, 10); - if (result) { - LOG(ERROR) << "Listen failed: " << ErrorToString(result); - listen_socket_.reset(); - return false; - } + do { + if (++num_tries > max_tries) { + LOG(ERROR) << "Failed to listen on a valid port after " << max_tries + << " attempts."; + listen_socket_.reset(); + return false; + } - result = listen_socket_->GetLocalAddress(&local_endpoint_); - if (result != OK) { - LOG(ERROR) << "GetLocalAddress failed: " << ErrorToString(result); - listen_socket_.reset(); - return false; - } + listen_socket_.reset(new TCPServerSocket(nullptr, NetLogSource())); + + int result = listen_socket_->ListenWithAddressAndPort("127.0.0.1", 0, 10); + if (result) { + LOG(ERROR) << "Listen failed: " << ErrorToString(result); + listen_socket_.reset(); + return false; + } + + result = listen_socket_->GetLocalAddress(&local_endpoint_); + if (result != OK) { + LOG(ERROR) << "GetLocalAddress failed: " << ErrorToString(result); + listen_socket_.reset(); + return false; + } + + port_ = local_endpoint_.port(); + is_valid_port |= net::IsPortAllowedForScheme( + port_, is_using_ssl_ ? url::kHttpsScheme : url::kHttpScheme); + } while (!is_valid_port); if (is_using_ssl_) { base_url_ = GURL("https://" + local_endpoint_.ToString()); @@ -117,7 +135,6 @@ bool EmbeddedTestServer::InitializeAndListen() { } else { base_url_ = GURL("http://" + local_endpoint_.ToString()); } - port_ = local_endpoint_.port(); listen_socket_->DetachFromThread(); @@ -177,6 +194,7 @@ void EmbeddedTestServer::ShutdownOnIOThread() { void EmbeddedTestServer::HandleRequest(HttpConnection* connection, std::unique_ptr<HttpRequest> request) { DCHECK(io_thread_->task_runner()->BelongsToCurrentThread()); + request->base_url = base_url_; for (const auto& monitor : request_monitors_) monitor.Run(*request); @@ -297,22 +315,22 @@ void EmbeddedTestServer::AddDefaultHandlers(const base::FilePath& directory) { void EmbeddedTestServer::RegisterRequestHandler( const HandleRequestCallback& callback) { - // TODO(svaldez): Add check to prevent RegisterRequestHandler from being - // called after the server has started. https://crbug.com/546060 + DCHECK(!io_thread_.get()) + << "Handlers must be registered before starting the server."; request_handlers_.push_back(callback); } void EmbeddedTestServer::RegisterRequestMonitor( const MonitorRequestCallback& callback) { - // TODO(svaldez): Add check to prevent RegisterRequestMonitor from being - // called after the server has started. https://crbug.com/546060 + DCHECK(!io_thread_.get()) + << "Monitors must be registered before starting the server."; request_monitors_.push_back(callback); } void EmbeddedTestServer::RegisterDefaultHandler( const HandleRequestCallback& callback) { - // TODO(svaldez): Add check to prevent RegisterDefaultHandler from being - // called after the server has started. https://crbug.com/546060 + DCHECK(!io_thread_.get()) + << "Handlers must be registered before starting the server."; default_request_handlers_.push_back(callback); } diff --git a/chromium/net/test/embedded_test_server/embedded_test_server.h b/chromium/net/test/embedded_test_server/embedded_test_server.h index bc34d0a3f01..f2a93072720 100644 --- a/chromium/net/test/embedded_test_server/embedded_test_server.h +++ b/chromium/net/test/embedded_test_server/embedded_test_server.h @@ -205,16 +205,21 @@ class EmbeddedTestServer { // The most general purpose method. Any request processing can be added using // this method. Takes ownership of the object. The |callback| is called - // on the server's IO thread. + // on the server's IO thread so all handlers must be registered before the + // server is started. void RegisterRequestHandler(const HandleRequestCallback& callback); // Adds request monitors. The |callback| is called before any handlers are // called, but can not respond it. This is useful to monitor requests that - // will be handled by other request handlers. + // will be handled by other request handlers. The |callback| is called + // on the server's IO thread so all monitors must be registered before the + // server is started. void RegisterRequestMonitor(const MonitorRequestCallback& callback); // Adds default handlers, including those added by AddDefaultHandlers, to be - // tried after all other user-specified handlers have been tried. + // tried after all other user-specified handlers have been tried. The + // |callback| is called on the server's IO thread so all handlers must be + // registered before the server is started. void RegisterDefaultHandler(const HandleRequestCallback& callback); bool FlushAllSocketsAndConnectionsOnUIThread(); diff --git a/chromium/net/test/embedded_test_server/embedded_test_server_unittest.cc b/chromium/net/test/embedded_test_server/embedded_test_server_unittest.cc index 31c66f4489c..dae43e9709c 100644 --- a/chromium/net/test/embedded_test_server/embedded_test_server_unittest.cc +++ b/chromium/net/test/embedded_test_server/embedded_test_server_unittest.cc @@ -15,6 +15,7 @@ #include "base/strings/stringprintf.h" #include "base/synchronization/lock.h" #include "base/threading/thread.h" +#include "base/threading/thread_task_runner_handle.h" #include "crypto/nss_util.h" #include "net/base/test_completion_callback.h" #include "net/http/http_response_headers.h" @@ -179,9 +180,9 @@ class EmbeddedTestServerTest HttpStatusCode code, const HttpRequest& request) { request_relative_url_ = request.relative_url; + request_absolute_url_ = request.GetURL(); - GURL absolute_url = server_->GetURL(request.relative_url); - if (absolute_url.path() == path) { + if (request_absolute_url_.path() == path) { std::unique_ptr<BasicHttpResponse> http_response(new BasicHttpResponse); http_response->set_code(code); http_response->set_content(content); @@ -196,6 +197,7 @@ class EmbeddedTestServerTest int num_responses_received_; int num_responses_expected_; std::string request_relative_url_; + GURL request_absolute_url_; base::Thread io_thread_; scoped_refptr<TestURLRequestContextGetter> request_context_getter_; TestConnectionListener connection_listener_; @@ -261,6 +263,7 @@ TEST_P(EmbeddedTestServerTest, RegisterRequestHandler) { EXPECT_EQ("text/html", GetContentTypeFromFetcher(*fetcher)); EXPECT_EQ("/test?q=foo", request_relative_url_); + EXPECT_EQ(server_->GetURL("/test?q=foo"), request_absolute_url_); } TEST_P(EmbeddedTestServerTest, ServeFilesFromDirectory) { diff --git a/chromium/net/test/embedded_test_server/http_connection.h b/chromium/net/test/embedded_test_server/http_connection.h index 0b87fcb218d..ab7d96f50a5 100644 --- a/chromium/net/test/embedded_test_server/http_connection.h +++ b/chromium/net/test/embedded_test_server/http_connection.h @@ -24,7 +24,6 @@ class StreamSocket; namespace test_server { class HttpConnection; -class HttpResponse; // Calblack called when a request is parsed. Response should be sent // using HttpConnection::SendResponse() on the |connection| argument. diff --git a/chromium/net/test/embedded_test_server/http_request.cc b/chromium/net/test/embedded_test_server/http_request.cc index 2c247c614a9..ef624dcc8b0 100644 --- a/chromium/net/test/embedded_test_server/http_request.cc +++ b/chromium/net/test/embedded_test_server/http_request.cc @@ -40,7 +40,8 @@ HttpRequest::~HttpRequest() { } GURL HttpRequest::GetURL() const { - // TODO(svaldez): Use real URL from the EmbeddedTestServer. + if (base_url.is_valid()) + return base_url.Resolve(relative_url); return GURL("http://localhost" + relative_url); } diff --git a/chromium/net/test/embedded_test_server/http_request.h b/chromium/net/test/embedded_test_server/http_request.h index b58f7749d8e..864c094a104 100644 --- a/chromium/net/test/embedded_test_server/http_request.h +++ b/chromium/net/test/embedded_test_server/http_request.h @@ -53,10 +53,10 @@ struct HttpRequest { ~HttpRequest(); // Returns a GURL as a convenience to extract the path and query strings. - // TODO(svaldez): Use provided URL if available. GURL GetURL() const; std::string relative_url; // Starts with '/'. Example: "/test?query=foo" + GURL base_url; HttpMethod method; std::string method_string; std::string all_headers; diff --git a/chromium/net/test/embedded_test_server/http_request_unittest.cc b/chromium/net/test/embedded_test_server/http_request_unittest.cc index 64761cfb7fb..d0e534f4e0a 100644 --- a/chromium/net/test/embedded_test_server/http_request_unittest.cc +++ b/chromium/net/test/embedded_test_server/http_request_unittest.cc @@ -145,5 +145,19 @@ TEST(HttpRequestTest, ParseGet) { EXPECT_FALSE(request->has_content); } +TEST(HttpRequestTest, GetURL) { + HttpRequest request; + request.relative_url = "/foobar.html?q=foo"; + request.base_url = GURL("https://127.0.0.1:8080"); + EXPECT_EQ("https://127.0.0.1:8080/foobar.html?q=foo", + request.GetURL().spec()); +} + +TEST(HttpRequestTest, GetURLFallback) { + HttpRequest request; + request.relative_url = "/foobar.html?q=foo"; + EXPECT_EQ("http://localhost/foobar.html?q=foo", request.GetURL().spec()); +} + } // namespace test_server } // namespace net diff --git a/chromium/net/test/gtest_util.h b/chromium/net/test/gtest_util.h index 22d82b0bfa9..dec0bb9b396 100644 --- a/chromium/net/test/gtest_util.h +++ b/chromium/net/test/gtest_util.h @@ -7,9 +7,14 @@ #ifndef NET_TEST_GTEST_UTIL_H_ #define NET_TEST_GTEST_UTIL_H_ +#include <string> + +#include "base/macros.h" +#include "base/strings/string_piece.h" #include "base/test/mock_log.h" #include "net/base/net_errors.h" #include "net/test/scoped_disable_exit_on_dfatal.h" +#include "testing/gmock/include/gmock/gmock-matchers.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" @@ -36,6 +41,34 @@ MATCHER(IsOk, return arg == net::OK; } +// A gMock matcher for base::StringPiece arguments. +// gMock's built-in HasSubstrMatcher does not work, +// because base::StringPiece cannot be implicitly converted to std::string. +class StringPieceHasSubstrMatcher { + public: + explicit StringPieceHasSubstrMatcher(const std::string& substring) + : substring_(substring) {} + + bool MatchAndExplain(base::StringPiece s, + ::testing::MatchResultListener* listener) const { + return s.as_string().find(substring_) != std::string::npos; + } + + // Describe what this matcher matches. + void DescribeTo(std::ostream* os) const { + *os << "has substring " << substring_; + } + + void DescribeNegationTo(std::ostream* os) const { + *os << "has no substring " << substring_; + } + + private: + const std::string substring_; + + DISALLOW_ASSIGN(StringPieceHasSubstrMatcher); +}; + // Internal implementation for the EXPECT_DFATAL and ASSERT_DFATAL // macros. Do not use this directly. #define GTEST_DFATAL_(statement, severity, matcher, fail) \ diff --git a/chromium/net/test/python_utils.cc b/chromium/net/test/python_utils.cc index 868abbb4e35..57429626b17 100644 --- a/chromium/net/test/python_utils.cc +++ b/chromium/net/test/python_utils.cc @@ -23,6 +23,7 @@ #endif const char kPythonPathEnv[] = "PYTHONPATH"; +const char kPythonVirtualEnv[] = "VIRTUAL_ENV"; void ClearPythonPath() { std::unique_ptr<base::Environment> env(base::Environment::Create()); @@ -102,6 +103,10 @@ struct PythonExePath { static base::LazyInstance<PythonExePath>::Leaky g_python_path; #endif +bool IsInPythonVirtualEnv() { + return base::Environment::Create()->HasVar(kPythonVirtualEnv); +} + bool GetPythonCommand(base::CommandLine* python_cmd) { DCHECK(python_cmd); @@ -121,8 +126,10 @@ bool GetPythonCommand(base::CommandLine* python_cmd) { // gtest output in buildbot log files. See http://crbug.com/147368. python_cmd->AppendArg("-u"); - // Prevent using system-installed libraries. Use hermetic versioned copies. - python_cmd->AppendArg("-S"); + if (!IsInPythonVirtualEnv()) { + // Prevent using system-installed libraries. Use hermetic versioned copies. + python_cmd->AppendArg("-S"); + } return true; } diff --git a/chromium/net/test/python_utils.h b/chromium/net/test/python_utils.h index c72c9445dcb..aba4addddca 100644 --- a/chromium/net/test/python_utils.h +++ b/chromium/net/test/python_utils.h @@ -24,6 +24,9 @@ void AppendToPythonPath(const base::FilePath& dir); // Return the location of the compiler-generated python protobuf. bool GetPyProtoPath(base::FilePath* dir); +// Returns if a virtualenv is currently active. +bool IsInPythonVirtualEnv(); + // Returns the command that should be used to launch Python. bool GetPythonCommand(base::CommandLine* python_cmd) WARN_UNUSED_RESULT; diff --git a/chromium/net/test/run_all_unittests.cc b/chromium/net/test/run_all_unittests.cc index 604888e07f2..78307f756b0 100644 --- a/chromium/net/test/run_all_unittests.cc +++ b/chromium/net/test/run_all_unittests.cc @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#include "base/build_time.h" #include "base/metrics/statistics_recorder.h" #include "base/test/launcher/unit_test_launcher.h" #include "build/build_config.h" @@ -23,6 +24,38 @@ using net::internal::ClientSocketPoolBaseHelper; +namespace { + +bool VerifyBuildIsTimely() { + // This lines up with various //net security features, like Certificate + // Transparency or HPKP, in that they require the build time be less than 70 + // days old. Moreover, operating on the assumption that tests are run against + // recently compiled builds, this also serves as a sanity check for the + // system clock, which should be close to the build date. + base::TimeDelta kMaxAge = base::TimeDelta::FromDays(70); + + base::Time build_time = base::GetBuildTime(); + base::Time now = base::Time::Now(); + + if ((now - build_time).magnitude() <= kMaxAge) + return true; + + std::cerr + << "ERROR: This build is more than " << kMaxAge.InDays() + << " days out of date.\n" + "This could indicate a problem with the device's clock, or the build " + "is simply too old.\n" + "See crbug.com/666821 for why this is a problem\n" + << " base::Time::Now() --> " << now << " (" << now.ToInternalValue() + << ")\n" + << " base::GetBuildTime() --> " << build_time << " (" + << build_time.ToInternalValue() << ")\n"; + + return false; +} + +} // namespace + int main(int argc, char** argv) { // Record histograms, so we can get histograms data in tests. base::StatisticsRecorder::Initialize(); @@ -42,6 +75,9 @@ int main(int argc, char** argv) { arraysize(kNetTestRegisteredMethods)); #endif + if (!VerifyBuildIsTimely()) + return 1; + NetTestSuite test_suite(argc, argv); ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); diff --git a/chromium/net/test/spawned_test_server/base_test_server.cc b/chromium/net/test/spawned_test_server/base_test_server.cc index 87838c10a06..c3ffc07bc58 100644 --- a/chromium/net/test/spawned_test_server/base_test_server.cc +++ b/chromium/net/test/spawned_test_server/base_test_server.cc @@ -224,6 +224,7 @@ base::FilePath BaseTestServer::SSLOptions::GetCertificateFile() const { case CERT_BAD_VALIDITY: return base::FilePath(FILE_PATH_LITERAL("bad_validity.pem")); case CERT_AUTO: + case CERT_AUTO_AIA_INTERMEDIATE: return base::FilePath(); default: NOTREACHED(); @@ -481,7 +482,7 @@ bool BaseTestServer::ParseServerData(const std::string& server_data) { VLOG(1) << "Server data: " << server_data; base::JSONReader json_reader; std::unique_ptr<base::Value> value(json_reader.ReadToValue(server_data)); - if (!value.get() || !value->IsType(base::Value::TYPE_DICTIONARY)) { + if (!value.get() || !value->IsType(base::Value::Type::DICTIONARY)) { LOG(ERROR) << "Could not parse server data: " << json_reader.GetErrorMessage(); return false; @@ -592,6 +593,10 @@ bool BaseTestServer::GenerateArguments(base::DictionaryValue* arguments) const { if (type_ == TYPE_HTTPS) { arguments->Set("https", base::Value::CreateNullValue()); + if (ssl_options_.server_certificate == + SSLOptions::CERT_AUTO_AIA_INTERMEDIATE) + arguments->Set("aia-intermediate", base::Value::CreateNullValue()); + std::string ocsp_arg = ssl_options_.GetOCSPArgument(); if (!ocsp_arg.empty()) arguments->SetString("ocsp", ocsp_arg); diff --git a/chromium/net/test/spawned_test_server/base_test_server.h b/chromium/net/test/spawned_test_server/base_test_server.h index 24a119b6447..60a9c3b63e2 100644 --- a/chromium/net/test/spawned_test_server/base_test_server.h +++ b/chromium/net/test/spawned_test_server/base_test_server.h @@ -58,6 +58,10 @@ class BaseTestServer { // CERT_AUTO causes the testserver to generate a test certificate issued // by "Testing CA" (see net/data/ssl/certificates/ocsp-test-root.pem). CERT_AUTO, + // Generate an intermediate cert issued by "Testing CA", and generate a + // test certificate issued by that intermediate with an AIA record for + // retrieving the intermediate. + CERT_AUTO_AIA_INTERMEDIATE, CERT_MISMATCHED_NAME, CERT_EXPIRED, diff --git a/chromium/net/test/spawned_test_server/local_test_server.cc b/chromium/net/test/spawned_test_server/local_test_server.cc index 30211667249..70ea7a9450c 100644 --- a/chromium/net/test/spawned_test_server/local_test_server.cc +++ b/chromium/net/test/spawned_test_server/local_test_server.cc @@ -25,17 +25,17 @@ bool AppendArgumentFromJSONValue(const std::string& key, base::CommandLine* command_line) { std::string argument_name = "--" + key; switch (value_node.GetType()) { - case base::Value::TYPE_NULL: + case base::Value::Type::NONE: command_line->AppendArg(argument_name); break; - case base::Value::TYPE_INTEGER: { + case base::Value::Type::INTEGER: { int value; bool result = value_node.GetAsInteger(&value); DCHECK(result); command_line->AppendArg(argument_name + "=" + base::IntToString(value)); break; } - case base::Value::TYPE_STRING: { + case base::Value::Type::STRING: { std::string value; bool result = value_node.GetAsString(&value); if (!result || value.empty()) @@ -43,11 +43,11 @@ bool AppendArgumentFromJSONValue(const std::string& key, command_line->AppendArg(argument_name + "=" + value); break; } - case base::Value::TYPE_BOOLEAN: - case base::Value::TYPE_DOUBLE: - case base::Value::TYPE_LIST: - case base::Value::TYPE_DICTIONARY: - case base::Value::TYPE_BINARY: + case base::Value::Type::BOOLEAN: + case base::Value::Type::DOUBLE: + case base::Value::Type::LIST: + case base::Value::Type::DICTIONARY: + case base::Value::Type::BINARY: default: NOTREACHED() << "improper json type"; return false; @@ -207,7 +207,7 @@ bool LocalTestServer::AddCommandLineArguments( const std::string& key = it.key(); // Add arguments from a list. - if (value.IsType(base::Value::TYPE_LIST)) { + if (value.IsType(base::Value::Type::LIST)) { const base::ListValue* list = NULL; if (!value.GetAsList(&list) || !list || list->empty()) return false; diff --git a/chromium/net/test/spawned_test_server/local_test_server_win.cc b/chromium/net/test/spawned_test_server/local_test_server_win.cc index 6f325e064c0..65d554eba25 100644 --- a/chromium/net/test/spawned_test_server/local_test_server_win.cc +++ b/chromium/net/test/spawned_test_server/local_test_server_win.cc @@ -164,4 +164,3 @@ bool LocalTestServer::WaitToStart() { } } // namespace net - diff --git a/chromium/net/test/spawned_test_server/remote_test_server.cc b/chromium/net/test/spawned_test_server/remote_test_server.cc index 1baab8ceab6..17dc21eba2b 100644 --- a/chromium/net/test/spawned_test_server/remote_test_server.cc +++ b/chromium/net/test/spawned_test_server/remote_test_server.cc @@ -248,4 +248,3 @@ bool RemoteTestServer::Init(const base::FilePath& document_root) { } } // namespace net - diff --git a/chromium/net/test/spawned_test_server/remote_test_server.h b/chromium/net/test/spawned_test_server/remote_test_server.h index 788f68d2fb5..224c0cd6a11 100644 --- a/chromium/net/test/spawned_test_server/remote_test_server.h +++ b/chromium/net/test/spawned_test_server/remote_test_server.h @@ -69,4 +69,3 @@ class RemoteTestServer : public BaseTestServer { } // namespace net #endif // NET_TEST_SPAWNED_TEST_SERVER_REMOTE_TEST_SERVER_H_ - diff --git a/chromium/net/test/spawned_test_server/spawned_test_server.h b/chromium/net/test/spawned_test_server/spawned_test_server.h index 9bf5831d503..aa4e37a7b38 100644 --- a/chromium/net/test/spawned_test_server/spawned_test_server.h +++ b/chromium/net/test/spawned_test_server/spawned_test_server.h @@ -24,4 +24,3 @@ typedef LocalTestServer SpawnedTestServer; } // namespace net #endif // NET_TEST_SPAWNED_TEST_SERVER_SPAWNED_TEST_SERVER_H_ - diff --git a/chromium/net/test/spawned_test_server/spawner_communicator.cc b/chromium/net/test/spawned_test_server/spawner_communicator.cc index 3a1566db4cf..0f294a3c004 100644 --- a/chromium/net/test/spawned_test_server/spawner_communicator.cc +++ b/chromium/net/test/spawned_test_server/spawner_communicator.cc @@ -355,7 +355,7 @@ bool SpawnerCommunicator::StartServer(const std::string& arguments, // Check whether the data returned from spawner server is JSON-formatted. std::unique_ptr<base::Value> value = base::JSONReader::Read(server_return_data); - if (!value.get() || !value->IsType(base::Value::TYPE_DICTIONARY)) { + if (!value.get() || !value->IsType(base::Value::Type::DICTIONARY)) { LOG(ERROR) << "Invalid server data: " << server_return_data.c_str(); return false; } diff --git a/chromium/net/test/test_certificate_data.h b/chromium/net/test/test_certificate_data.h index a2e26a56e11..8c77e2f2c1d 100644 --- a/chromium/net/test/test_certificate_data.h +++ b/chromium/net/test/test_certificate_data.h @@ -2,6 +2,9 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#ifndef NET_TEST_TEST_CERTIFICATE_DATA_H_ +#define NET_TEST_TEST_CERTIFICATE_DATA_H_ + #include <stdint.h> namespace { @@ -782,3 +785,5 @@ const uint8_t VARIABLE_IS_NOT_USED MITDN[] = { 0x6C, 0x69, 0x65, 0x6E, 0x74, 0x20, 0x43, 0x41, 0x20, 0x76, 0x31}; } // namespace + +#endif // NET_TEST_TEST_CERTIFICATE_DATA_H_ diff --git a/chromium/net/test/url_request/url_request_failed_job.cc b/chromium/net/test/url_request/url_request_failed_job.cc index 3e1e5664934..1de2910eb3f 100644 --- a/chromium/net/test/url_request/url_request_failed_job.cc +++ b/chromium/net/test/url_request/url_request_failed_job.cc @@ -84,6 +84,7 @@ URLRequestFailedJob::URLRequestFailedJob(URLRequest* request, : URLRequestJob(request, network_delegate), phase_(phase), net_error_(net_error), + total_received_bytes_(0), weak_factory_(this) { CHECK_GE(phase, URLRequestFailedJob::FailurePhase::START); CHECK_LE(phase, URLRequestFailedJob::FailurePhase::READ_ASYNC); @@ -131,6 +132,10 @@ void URLRequestFailedJob::PopulateNetErrorDetails( } } +int64_t URLRequestFailedJob::GetTotalReceivedBytes() const { + return total_received_bytes_; +} + // static void URLRequestFailedJob::AddUrlHandler() { return AddUrlHandlerForHostname(kMockHostname); @@ -190,7 +195,9 @@ void URLRequestFailedJob::StartAsync() { } return; } - response_info_.headers = new net::HttpResponseHeaders("HTTP/1.1 200 OK"); + const std::string headers = "HTTP/1.1 200 OK"; + response_info_.headers = new net::HttpResponseHeaders(headers); + total_received_bytes_ = headers.size(); NotifyHeadersComplete(); } diff --git a/chromium/net/test/url_request/url_request_failed_job.h b/chromium/net/test/url_request/url_request_failed_job.h index 14c7efc9f5a..0c11c66dc86 100644 --- a/chromium/net/test/url_request/url_request_failed_job.h +++ b/chromium/net/test/url_request/url_request_failed_job.h @@ -44,6 +44,7 @@ class URLRequestFailedJob : public URLRequestJob { int GetResponseCode() const override; void GetResponseInfo(HttpResponseInfo* info) override; void PopulateNetErrorDetails(NetErrorDetails* details) const override; + int64_t GetTotalReceivedBytes() const override; // Adds the testing URLs to the URLRequestFilter. static void AddUrlHandler(); @@ -79,6 +80,7 @@ class URLRequestFailedJob : public URLRequestJob { HttpResponseInfo response_info_; const FailurePhase phase_; const int net_error_; + int64_t total_received_bytes_; base::WeakPtrFactory<URLRequestFailedJob> weak_factory_; diff --git a/chromium/net/test/url_request/url_request_hanging_read_job.cc b/chromium/net/test/url_request/url_request_hanging_read_job.cc index 74c680f2418..5223b297b45 100644 --- a/chromium/net/test/url_request/url_request_hanging_read_job.cc +++ b/chromium/net/test/url_request/url_request_hanging_read_job.cc @@ -92,6 +92,8 @@ void URLRequestHangingReadJob::GetResponseInfoConst( } void URLRequestHangingReadJob::StartAsync() { + if (is_done()) + return; set_expected_content_size(content_length_); NotifyHeadersComplete(); } diff --git a/chromium/net/test/url_request/url_request_hanging_read_job.h b/chromium/net/test/url_request/url_request_hanging_read_job.h index 62213f29262..f5eba1ef2c7 100644 --- a/chromium/net/test/url_request/url_request_hanging_read_job.h +++ b/chromium/net/test/url_request/url_request_hanging_read_job.h @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef NET_URL_REQUEST_URL_REQUEST_HANGING_READ_JOB_H_ -#define NET_URL_REQUEST_URL_REQUEST_HANGING_READ_JOB_H_ +#ifndef NET_TEST_URL_REQUEST_URL_REQUEST_HANGING_READ_JOB_H_ +#define NET_TEST_URL_REQUEST_URL_REQUEST_HANGING_READ_JOB_H_ #include "base/macros.h" #include "base/memory/weak_ptr.h" @@ -44,4 +44,4 @@ class URLRequestHangingReadJob : public URLRequestJob { } // namespace net -#endif // NET_URL_REQUEST_URL_REQUEST_SIMPLE_JOB_H_ +#endif // NET_TEST_URL_REQUEST_URL_REQUEST_HANGING_READ_JOB_H_ diff --git a/chromium/net/test/url_request/url_request_mock_data_job.h b/chromium/net/test/url_request/url_request_mock_data_job.h index 27f3a0953f0..0324201c599 100644 --- a/chromium/net/test/url_request/url_request_mock_data_job.h +++ b/chromium/net/test/url_request/url_request_mock_data_job.h @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef NET_URL_REQUEST_URL_REQUEST_MOCK_DATA_JOB_H_ -#define NET_URL_REQUEST_URL_REQUEST_MOCK_DATA_JOB_H_ +#ifndef NET_TEST_URL_REQUEST_URL_REQUEST_MOCK_DATA_JOB_H_ +#define NET_TEST_URL_REQUEST_URL_REQUEST_MOCK_DATA_JOB_H_ #include <stddef.h> @@ -71,4 +71,4 @@ class URLRequestMockDataJob : public URLRequestJob { } // namespace net -#endif // NET_URL_REQUEST_URL_REQUEST_SIMPLE_JOB_H_ +#endif // NET_TEST_URL_REQUEST_URL_REQUEST_MOCK_DATA_JOB_H_ diff --git a/chromium/net/test/url_request/url_request_mock_http_job.cc b/chromium/net/test/url_request/url_request_mock_http_job.cc index 5317b846ed0..7fdcfaaf901 100644 --- a/chromium/net/test/url_request/url_request_mock_http_job.cc +++ b/chromium/net/test/url_request/url_request_mock_http_job.cc @@ -184,6 +184,7 @@ void URLRequestMockHTTPJob::SetHeadersAndStart(const std::string& raw_headers) { // ParseRawHeaders expects \0 to end each header line. base::ReplaceSubstringsAfterOffset( &raw_headers_, 0, "\n", base::StringPiece("\0", 1)); + total_received_bytes_ += raw_headers_.size(); URLRequestFileJob::Start(); } |