cef/tests/ceftests/test_server.cc

59 lines
1.7 KiB
C++

// Copyright (c) 2020 The Chromium Embedded Framework Authors. All rights
// reserved. Use of this source code is governed by a BSD-style license that
// can be found in the LICENSE file.
#include "tests/ceftests/test_server.h"
#include "tests/ceftests/test_server_manager.h"
#include <vector>
namespace test_server {
// Must use a different port than server_unittest.cc.
const char kHttpServerAddress[] = "127.0.0.1";
const uint16_t kHttpServerPort = 8098;
const char kIncompleteDoNotSendData[] = "DO NOT SEND";
CefRefPtr<CefResponse> Create404Response() {
auto response = CefResponse::Create();
response->SetStatus(404);
response->SetMimeType("text/html");
return response;
}
void Stop(base::OnceClosure callback) {
// Stop both HTTPS and HTTP servers in a chain.
Manager::Stop(base::BindOnce(
[](base::OnceClosure callback) {
Manager::Stop(std::move(callback),
/*https_server=*/false);
},
std::move(callback)),
/*https_server=*/true);
}
std::string GetOrigin(bool https_server) {
return Manager::GetOrigin(https_server);
}
std::string GetScheme(bool https_server) {
return https_server ? "https" : "http";
}
std::string GetHost(bool https_server, bool include_port) {
const auto& origin = GetOrigin(https_server);
const auto scheme_offset = origin.find("//");
const auto& origin_without_scheme = origin.substr(scheme_offset + 2);
if (include_port) {
return origin_without_scheme;
}
const auto port_offset = origin_without_scheme.find(':');
return origin_without_scheme.substr(0, port_offset);
}
} // namespace test_server