summaryrefslogtreecommitdiff
path: root/chromium/net/test
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2018-08-28 15:28:34 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2018-08-28 13:54:51 +0000
commit2a19c63448c84c1805fb1a585c3651318bb86ca7 (patch)
treeeb17888e8531aa6ee5e85721bd553b832a7e5156 /chromium/net/test
parentb014812705fc80bff0a5c120dfcef88f349816dc (diff)
downloadqtwebengine-chromium-2a19c63448c84c1805fb1a585c3651318bb86ca7.tar.gz
BASELINE: Update Chromium to 69.0.3497.70
Change-Id: I2b7b56e4e7a8b26656930def0d4575dc32b900a0 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/net/test')
-rw-r--r--chromium/net/test/cert_test_util.cc6
-rw-r--r--chromium/net/test/embedded_test_server/controllable_http_response.cc15
-rw-r--r--chromium/net/test/embedded_test_server/controllable_http_response.h8
-rw-r--r--chromium/net/test/embedded_test_server/embedded_test_server.cc35
-rw-r--r--chromium/net/test/embedded_test_server/embedded_test_server.h7
-rw-r--r--chromium/net/test/embedded_test_server/embedded_test_server_unittest.cc17
-rw-r--r--chromium/net/test/embedded_test_server/request_handler_util.cc17
-rw-r--r--chromium/net/test/embedded_test_server/request_handler_util.h11
-rw-r--r--chromium/net/test/quic_simple_test_server.cc13
-rw-r--r--chromium/net/test/run_all_unittests.cc4
-rw-r--r--chromium/net/test/spawned_test_server/spawned_test_server.h4
-rw-r--r--chromium/net/test/url_request/url_request_failed_job.cc5
-rw-r--r--chromium/net/test/url_request/url_request_mock_http_job.cc9
-rw-r--r--chromium/net/test/url_request/url_request_mock_http_job.h4
14 files changed, 120 insertions, 35 deletions
diff --git a/chromium/net/test/cert_test_util.cc b/chromium/net/test/cert_test_util.cc
index 454071f2fc7..0e96958e99d 100644
--- a/chromium/net/test/cert_test_util.cc
+++ b/chromium/net/test/cert_test_util.cc
@@ -55,12 +55,10 @@ scoped_refptr<X509Certificate> CreateCertificateChainFromFile(
std::vector<bssl::UniquePtr<CRYPTO_BUFFER>> intermediates;
for (size_t i = 1; i < certs.size(); ++i)
- intermediates.push_back(
- x509_util::DupCryptoBuffer(certs[i]->cert_buffer()));
+ intermediates.push_back(bssl::UpRef(certs[i]->cert_buffer()));
scoped_refptr<X509Certificate> result(X509Certificate::CreateFromBuffer(
- x509_util::DupCryptoBuffer(certs[0]->cert_buffer()),
- std::move(intermediates)));
+ bssl::UpRef(certs[0]->cert_buffer()), std::move(intermediates)));
return result;
}
diff --git a/chromium/net/test/embedded_test_server/controllable_http_response.cc b/chromium/net/test/embedded_test_server/controllable_http_response.cc
index 226b126d6f5..9398b31aa79 100644
--- a/chromium/net/test/embedded_test_server/controllable_http_response.cc
+++ b/chromium/net/test/embedded_test_server/controllable_http_response.cc
@@ -5,6 +5,7 @@
#include "net/test/embedded_test_server/controllable_http_response.h"
#include "base/logging.h"
+#include "base/strings/stringprintf.h"
#include "base/threading/thread_task_runner_handle.h"
namespace net {
@@ -65,6 +66,20 @@ void ControllableHttpResponse::WaitForRequest() {
state_ = State::READY_TO_SEND_DATA;
}
+void ControllableHttpResponse::Send(net::HttpStatusCode http_status,
+ const std::string& content_type,
+ const std::string& content,
+ const std::vector<std::string>& cookies) {
+ std::string content_data(base::StringPrintf(
+ "HTTP/1.1 %d %s\nContent-type: %s\n", static_cast<int>(http_status),
+ net::GetHttpReasonPhrase(http_status), content_type.c_str()));
+ for (auto& cookie : cookies)
+ content_data += "Set-Cookie: " + cookie + "\n";
+ content_data += "\n";
+ content_data += content;
+ Send(content_data);
+}
+
void ControllableHttpResponse::Send(const std::string& bytes) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
DCHECK_EQ(State::READY_TO_SEND_DATA, state_) << "Send() called without any "
diff --git a/chromium/net/test/embedded_test_server/controllable_http_response.h b/chromium/net/test/embedded_test_server/controllable_http_response.h
index ffc72717e3f..efb23fda7e2 100644
--- a/chromium/net/test/embedded_test_server/controllable_http_response.h
+++ b/chromium/net/test/embedded_test_server/controllable_http_response.h
@@ -7,6 +7,7 @@
#include <memory>
#include <string>
+#include <vector>
#include "base/macros.h"
#include "base/memory/ref_counted.h"
@@ -14,6 +15,7 @@
#include "base/run_loop.h"
#include "base/sequence_checker.h"
#include "base/single_thread_task_runner.h"
+#include "net/http/http_status_code.h"
#include "net/test/embedded_test_server/embedded_test_server.h"
#include "net/test/embedded_test_server/http_request.h"
#include "net/test/embedded_test_server/http_response.h"
@@ -46,6 +48,12 @@ class ControllableHttpResponse {
// May be called several time.
void Send(const std::string& bytes);
+ // Same as 2) but with more specific parameters.
+ void Send(net::HttpStatusCode http_status,
+ const std::string& content_type = std::string("text/html"),
+ const std::string& content = std::string(),
+ const std::vector<std::string>& cookies = {});
+
// 3) Notify there are no more data to be sent and close the socket.
void Done();
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 b3473bb5aa9..2951551c536 100644
--- a/chromium/net/test/embedded_test_server/embedded_test_server.cc
+++ b/chromium/net/test/embedded_test_server/embedded_test_server.cc
@@ -30,6 +30,7 @@
#include "net/socket/ssl_server_socket.h"
#include "net/socket/stream_socket.h"
#include "net/socket/tcp_server_socket.h"
+#include "net/ssl/ssl_info.h"
#include "net/ssl/ssl_server_config.h"
#include "net/test/cert_test_util.h"
#include "net/test/embedded_test_server/default_handlers.h"
@@ -83,7 +84,8 @@ void EmbeddedTestServer::RegisterTestCerts() {
void EmbeddedTestServer::SetConnectionListener(
EmbeddedTestServerConnectionListener* listener) {
- DCHECK(!io_thread_.get());
+ DCHECK(!io_thread_.get())
+ << "ConnectionListener must be set before starting the server.";
connection_listener_ = listener;
}
@@ -170,7 +172,8 @@ void EmbeddedTestServer::InitializeSSLServerContext() {
}
void EmbeddedTestServer::StartAcceptingConnections() {
- DCHECK(!io_thread_.get());
+ DCHECK(!io_thread_.get())
+ << "Server must not be started while server is running";
base::Thread::Options thread_options;
thread_options.message_loop_type = base::MessageLoop::TYPE_IO;
io_thread_.reset(new base::Thread("EmbeddedTestServer IO Thread"));
@@ -206,6 +209,12 @@ void EmbeddedTestServer::HandleRequest(HttpConnection* connection,
DCHECK(io_thread_->task_runner()->BelongsToCurrentThread());
request->base_url = base_url_;
+ SSLInfo ssl_info;
+ if (connection->socket_->GetSSLInfo(&ssl_info) &&
+ ssl_info.early_data_received) {
+ request->headers["Early-Data"] = "1";
+ }
+
for (const auto& monitor : request_monitors_)
monitor.Run(*request);
@@ -256,16 +265,32 @@ GURL EmbeddedTestServer::GetURL(
return local_url.ReplaceComponents(replace_host);
}
+void EmbeddedTestServer::SetSSLConfig(ServerCertificate cert,
+ const SSLServerConfig& ssl_config) {
+ DCHECK(!Started());
+ cert_ = cert;
+ ssl_config_ = ssl_config;
+}
+
bool EmbeddedTestServer::GetAddressList(AddressList* address_list) const {
*address_list = AddressList(local_endpoint_);
return true;
}
-void EmbeddedTestServer::SetSSLConfig(ServerCertificate cert,
- const SSLServerConfig& ssl_config) {
- DCHECK(!Started());
+void EmbeddedTestServer::ResetSSLConfigOnIOThread(
+ ServerCertificate cert,
+ const SSLServerConfig& ssl_config) {
cert_ = cert;
ssl_config_ = ssl_config;
+ connections_.clear();
+ InitializeSSLServerContext();
+}
+
+bool EmbeddedTestServer::ResetSSLConfig(ServerCertificate cert,
+ const SSLServerConfig& ssl_config) {
+ return PostTaskToIOThreadAndWait(
+ base::BindRepeating(&EmbeddedTestServer::ResetSSLConfigOnIOThread,
+ base::Unretained(this), cert, ssl_config));
}
void EmbeddedTestServer::SetSSLConfig(ServerCertificate cert) {
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 4fc1bb59631..2f273ae1f28 100644
--- a/chromium/net/test/embedded_test_server/embedded_test_server.h
+++ b/chromium/net/test/embedded_test_server/embedded_test_server.h
@@ -193,6 +193,9 @@ class EmbeddedTestServer {
void SetSSLConfig(ServerCertificate cert, const SSLServerConfig& ssl_config);
void SetSSLConfig(ServerCertificate cert);
+ bool ResetSSLConfig(ServerCertificate cert,
+ const SSLServerConfig& ssl_config);
+
// Returns the file name of the certificate the server is using. The test
// certificates can be found in net/data/ssl/certificates/.
std::string GetCertificateName() const;
@@ -242,6 +245,10 @@ class EmbeddedTestServer {
// Shuts down the server.
void ShutdownOnIOThread();
+ // Resets the SSLServerConfig on the IO thread.
+ void ResetSSLConfigOnIOThread(ServerCertificate cert,
+ const SSLServerConfig& ssl_config);
+
// Upgrade the TCP connection to one over SSL.
std::unique_ptr<StreamSocket> DoSSLUpgrade(
std::unique_ptr<StreamSocket> connection);
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 2e257dee787..4d6a0769d1a 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
@@ -147,7 +147,7 @@ class EmbeddedTestServerTest
void OnURLFetchComplete(const URLFetcher* source) override {
++num_responses_received_;
if (num_responses_received_ == num_responses_expected_)
- base::RunLoop::QuitCurrentWhenIdleDeprecated();
+ std::move(quit_run_loop_).Run();
}
// Waits until the specified number of responses are received.
@@ -155,7 +155,9 @@ class EmbeddedTestServerTest
num_responses_received_ = 0;
num_responses_expected_ = num_responses;
// Will be terminated in OnURLFetchComplete().
- base::RunLoop().Run();
+ base::RunLoop run_loop;
+ quit_run_loop_ = run_loop.QuitClosure();
+ run_loop.Run();
}
// Handles |request| sent to |path| and returns the response per |content|,
@@ -188,6 +190,7 @@ class EmbeddedTestServerTest
scoped_refptr<TestURLRequestContextGetter> request_context_getter_;
TestConnectionListener connection_listener_;
std::unique_ptr<EmbeddedTestServer> server_;
+ base::OnceClosure quit_run_loop_;
};
TEST_P(EmbeddedTestServerTest, GetBaseURL) {
@@ -388,7 +391,7 @@ namespace {
class CancelRequestDelegate : public TestDelegate {
public:
- CancelRequestDelegate() = default;
+ CancelRequestDelegate() { set_on_complete(base::DoNothing()); }
~CancelRequestDelegate() override = default;
void OnResponseStarted(URLRequest* request, int net_error) override {
@@ -543,8 +546,10 @@ class EmbeddedTestServerThreadingTestDelegate
TRAFFIC_ANNOTATION_FOR_TESTS);
fetcher->SetRequestContext(
new TestURLRequestContextGetter(loop->task_runner()));
+ base::RunLoop run_loop;
+ quit_run_loop_ = run_loop.QuitClosure();
fetcher->Start();
- base::RunLoop().Run();
+ run_loop.Run();
fetcher.reset();
// Shut down.
@@ -556,7 +561,7 @@ class EmbeddedTestServerThreadingTestDelegate
// URLFetcherDelegate override.
void OnURLFetchComplete(const URLFetcher* source) override {
- base::RunLoop::QuitCurrentWhenIdleDeprecated();
+ std::move(quit_run_loop_).Run();
}
private:
@@ -564,6 +569,8 @@ class EmbeddedTestServerThreadingTestDelegate
const bool message_loop_present_on_shutdown_;
const EmbeddedTestServer::Type type_;
+ base::OnceClosure quit_run_loop_;
+
DISALLOW_COPY_AND_ASSIGN(EmbeddedTestServerThreadingTestDelegate);
};
diff --git a/chromium/net/test/embedded_test_server/request_handler_util.cc b/chromium/net/test/embedded_test_server/request_handler_util.cc
index f0efe4de91a..d671438c3aa 100644
--- a/chromium/net/test/embedded_test_server/request_handler_util.cc
+++ b/chromium/net/test/embedded_test_server/request_handler_util.cc
@@ -15,7 +15,9 @@
#include "base/format_macros.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
+#include "base/strings/utf_string_conversions.h"
#include "base/threading/thread_restrictions.h"
+#include "build/build_config.h"
#include "net/base/escape.h"
#include "net/base/url_util.h"
#include "net/http/http_byte_range.h"
@@ -25,7 +27,7 @@
namespace net {
namespace test_server {
-namespace {
+const char kMockHttpHeadersExtension[] = "mock-http-headers";
std::string GetContentType(const base::FilePath& path) {
if (path.MatchesExtension(FILE_PATH_LITERAL(".crx")))
@@ -65,8 +67,6 @@ std::string GetContentType(const base::FilePath& path) {
return "";
}
-} // namespace
-
bool ShouldHandle(const HttpRequest& request, const std::string& path_prefix) {
GURL url = request.GetURL();
return url.path() == path_prefix ||
@@ -189,8 +189,15 @@ std::unique_ptr<HttpResponse> HandleFileRequest(
}
}
- base::FilePath headers_path(
- file_path.AddExtension(FILE_PATH_LITERAL("mock-http-headers")));
+ base::FilePath::StringPieceType mock_headers_extension;
+#if defined(OS_WIN)
+ base::string16 temp = base::ASCIIToUTF16(kMockHttpHeadersExtension);
+ mock_headers_extension = temp;
+#else
+ mock_headers_extension = kMockHttpHeadersExtension;
+#endif
+
+ base::FilePath headers_path(file_path.AddExtension(mock_headers_extension));
if (base::PathExists(headers_path)) {
std::string headers_contents;
diff --git a/chromium/net/test/embedded_test_server/request_handler_util.h b/chromium/net/test/embedded_test_server/request_handler_util.h
index fe86755c17f..9c7b6805763 100644
--- a/chromium/net/test/embedded_test_server/request_handler_util.h
+++ b/chromium/net/test/embedded_test_server/request_handler_util.h
@@ -24,6 +24,17 @@ namespace net {
namespace test_server {
struct HttpRequest;
+// The extension that is used to find a file containing mock headers to use
+// for a test file. For example, a test data directory can have:
+// foo.html
+// foo.html.mock-http-headers
+// When the test server serves foo.html, if it finds foo.html.mock-http-headers
+// it will use the contents of that file for the headers.
+extern const char kMockHttpHeadersExtension[];
+
+// Returns the Content-Type header value for a path based on its extension.
+std::string GetContentType(const base::FilePath& path);
+
// This file is only meant for compatibility with testserver.py. No
// additional handlers should be added here that don't affect multiple
// distinct tests.
diff --git a/chromium/net/test/quic_simple_test_server.cc b/chromium/net/test/quic_simple_test_server.cc
index 13eccd0d9c4..c55f148df0c 100644
--- a/chromium/net/test/quic_simple_test_server.cc
+++ b/chromium/net/test/quic_simple_test_server.cc
@@ -51,7 +51,7 @@ const char kSimpleHeaderName[] = "hello_header";
const char kSimpleHeaderValue[] = "hello header value";
base::Thread* g_quic_server_thread = nullptr;
-net::QuicMemoryCacheBackend* g_quic_cache_backend = nullptr;
+quic::QuicMemoryCacheBackend* g_quic_cache_backend = nullptr;
net::QuicSimpleServer* g_quic_server = nullptr;
int g_quic_server_port = 0;
@@ -137,7 +137,7 @@ void SetupQuicMemoryCacheBackend() {
headers[kStatusHeader] = kHelloStatus;
spdy::SpdyHeaderBlock trailers;
trailers[kHelloTrailerName] = kHelloTrailerValue;
- g_quic_cache_backend = new QuicMemoryCacheBackend();
+ g_quic_cache_backend = new quic::QuicMemoryCacheBackend();
g_quic_cache_backend->AddResponse(base::StringPrintf("%s", kTestServerHost),
kHelloPath, std::move(headers),
kHelloBodyValue, std::move(trailers));
@@ -153,7 +153,7 @@ void StartQuicServerOnServerThread(const base::FilePath& test_files_root,
DCHECK(g_quic_server_thread->task_runner()->BelongsToCurrentThread());
DCHECK(!g_quic_server);
- QuicConfig config;
+ quic::QuicConfig config;
// Set up server certs.
base::FilePath directory;
directory = test_files_root;
@@ -163,9 +163,10 @@ void StartQuicServerOnServerThread(const base::FilePath& test_files_root,
base::FilePath()));
SetupQuicMemoryCacheBackend();
- g_quic_server = new QuicSimpleServer(
- std::move(proof_source), config, QuicCryptoServerConfig::ConfigOptions(),
- AllSupportedVersions(), g_quic_cache_backend);
+ g_quic_server =
+ new QuicSimpleServer(std::move(proof_source), config,
+ quic::QuicCryptoServerConfig::ConfigOptions(),
+ quic::AllSupportedVersions(), g_quic_cache_backend);
// Start listening on an unbound port.
int rv = g_quic_server->Listen(IPEndPoint(IPAddress::IPv4AllZeros(), 0));
diff --git a/chromium/net/test/run_all_unittests.cc b/chromium/net/test/run_all_unittests.cc
index 635c4099e9b..5786dfea0aa 100644
--- a/chromium/net/test/run_all_unittests.cc
+++ b/chromium/net/test/run_all_unittests.cc
@@ -13,7 +13,7 @@
#include "url/url_features.h"
#if !defined(OS_IOS)
-#include "mojo/edk/embedder/embedder.h" // nogncheck
+#include "mojo/core/embedder/embedder.h" // nogncheck
#endif
using net::internal::ClientSocketPoolBaseHelper;
@@ -58,7 +58,7 @@ int main(int argc, char** argv) {
ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false);
#if !defined(OS_IOS)
- mojo::edk::Init();
+ mojo::core::Init();
#endif
return base::LaunchUnitTests(
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 47232ba1ffc..662a9467df3 100644
--- a/chromium/net/test/spawned_test_server/spawned_test_server.h
+++ b/chromium/net/test/spawned_test_server/spawned_test_server.h
@@ -7,7 +7,7 @@
#include "build/build_config.h"
-#if defined(OS_ANDROID) || defined(OS_FUCHSIA)
+#if defined(USE_REMOTE_TEST_SERVER)
#include "net/test/spawned_test_server/remote_test_server.h"
#else
#include "net/test/spawned_test_server/local_test_server.h"
@@ -15,7 +15,7 @@
namespace net {
-#if defined(OS_ANDROID) || defined(OS_FUCHSIA)
+#if defined(USE_REMOTE_TEST_SERVER)
typedef RemoteTestServer SpawnedTestServer;
#else
typedef LocalTestServer SpawnedTestServer;
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 03da26a881f..d4c0bf9293b 100644
--- a/chromium/net/test/url_request/url_request_failed_job.cc
+++ b/chromium/net/test/url_request/url_request_failed_job.cc
@@ -121,9 +121,10 @@ void URLRequestFailedJob::GetResponseInfo(HttpResponseInfo* info) {
void URLRequestFailedJob::PopulateNetErrorDetails(
NetErrorDetails* details) const {
if (net_error_ == ERR_QUIC_PROTOCOL_ERROR) {
- details->quic_connection_error = QUIC_INTERNAL_ERROR;
+ details->quic_connection_error = quic::QUIC_INTERNAL_ERROR;
} else if (net_error_ == ERR_NETWORK_CHANGED) {
- details->quic_connection_error = QUIC_CONNECTION_MIGRATION_NO_NEW_NETWORK;
+ details->quic_connection_error =
+ quic::QUIC_CONNECTION_MIGRATION_NO_NEW_NETWORK;
}
}
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 8ca5a6982f5..1ce5694f216 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
@@ -141,11 +141,14 @@ void URLRequestMockHTTPJob::GetResponseInfo(HttpResponseInfo* info) {
GetResponseInfoConst(info);
}
-bool URLRequestMockHTTPJob::IsRedirectResponse(GURL* location,
- int* http_status_code) {
+bool URLRequestMockHTTPJob::IsRedirectResponse(
+ GURL* location,
+ int* http_status_code,
+ bool* insecure_scheme_was_upgraded) {
// Override the URLRequestFileJob implementation to invoke the default
// one based on HttpResponseInfo.
- return URLRequestJob::IsRedirectResponse(location, http_status_code);
+ return URLRequestJob::IsRedirectResponse(location, http_status_code,
+ insecure_scheme_was_upgraded);
}
void URLRequestMockHTTPJob::OnReadComplete(net::IOBuffer* buffer, int result) {
diff --git a/chromium/net/test/url_request/url_request_mock_http_job.h b/chromium/net/test/url_request/url_request_mock_http_job.h
index f9dc2cf59aa..a8515f9f5f2 100644
--- a/chromium/net/test/url_request/url_request_mock_http_job.h
+++ b/chromium/net/test/url_request/url_request_mock_http_job.h
@@ -39,7 +39,9 @@ class URLRequestMockHTTPJob : public URLRequestFileJob {
bool GetMimeType(std::string* mime_type) const override;
bool GetCharset(std::string* charset) override;
void GetResponseInfo(HttpResponseInfo* info) override;
- bool IsRedirectResponse(GURL* location, int* http_status_code) override;
+ bool IsRedirectResponse(GURL* location,
+ int* http_status_code,
+ bool* insecure_scheme_was_upgraded) override;
// URLRequestFileJob overridess.
void OnReadComplete(net::IOBuffer* buffer, int result) override;