#ifdef UNSAFE_BUFFERS_BUILD
#pragma allow_unsafe_buffers
#endif
#include "net/websockets/websocket_test_util.h"
#include <stddef.h>
#include <algorithm>
#include <sstream>
#include <utility>
#include "base/check.h"
#include "base/containers/span.h"
#include "base/strings/strcat.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
#include "net/base/net_errors.h"
#include "net/http/http_network_session.h"
#include "net/proxy_resolution/configured_proxy_resolution_service.h"
#include "net/proxy_resolution/proxy_resolution_service.h"
#include "net/socket/socket_test_util.h"
#include "net/third_party/quiche/src/quiche/spdy/core/spdy_protocol.h"
#include "net/traffic_annotation/network_traffic_annotation_test_helper.h"
#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_context_builder.h"
#include "net/websockets/websocket_basic_handshake_stream.h"
#include "url/origin.h"
namespace net {
class AuthChallengeInfo;
class AuthCredentials;
class HttpResponseHeaders;
class WebSocketHttp2HandshakeStream;
class WebSocketHttp3HandshakeStream;
namespace {
const uint64_t kA = …;
const uint64_t kC = …;
const uint64_t kM = …;
}
LinearCongruentialGenerator::LinearCongruentialGenerator(uint32_t seed)
: … { … }
uint32_t LinearCongruentialGenerator::Generate() { … }
std::string WebSocketExtraHeadersToString(
const WebSocketExtraHeaders& headers) { … }
HttpRequestHeaders WebSocketExtraHeadersToHttpRequestHeaders(
const WebSocketExtraHeaders& headers) { … }
std::string WebSocketStandardRequest(
const std::string& path,
const std::string& host,
const url::Origin& origin,
const WebSocketExtraHeaders& send_additional_request_headers,
const WebSocketExtraHeaders& extra_headers) { … }
std::string WebSocketStandardRequestWithCookies(
const std::string& path,
const std::string& host,
const url::Origin& origin,
const WebSocketExtraHeaders& cookies,
const WebSocketExtraHeaders& send_additional_request_headers,
const WebSocketExtraHeaders& extra_headers) { … }
std::string WebSocketStandardResponse(const std::string& extra_headers) { … }
HttpRequestHeaders WebSocketCommonTestHeaders() { … }
quiche::HttpHeaderBlock WebSocketHttp2Request(
const std::string& path,
const std::string& authority,
const std::string& origin,
const WebSocketExtraHeaders& extra_headers) { … }
quiche::HttpHeaderBlock WebSocketHttp2Response(
const WebSocketExtraHeaders& extra_headers) { … }
struct WebSocketMockClientSocketFactoryMaker::Detail { … };
WebSocketMockClientSocketFactoryMaker::WebSocketMockClientSocketFactoryMaker()
: … { … }
WebSocketMockClientSocketFactoryMaker::
~WebSocketMockClientSocketFactoryMaker() = default;
MockClientSocketFactory* WebSocketMockClientSocketFactoryMaker::factory() { … }
void WebSocketMockClientSocketFactoryMaker::SetExpectations(
const std::string& expect_written,
const std::string& return_to_read) { … }
void WebSocketMockClientSocketFactoryMaker::AddRawExpectations(
std::unique_ptr<SequencedSocketData> socket_data) { … }
void WebSocketMockClientSocketFactoryMaker::AddSSLSocketDataProvider(
std::unique_ptr<SSLSocketDataProvider> ssl_socket_data) { … }
WebSocketTestURLRequestContextHost::WebSocketTestURLRequestContextHost()
: … { … }
WebSocketTestURLRequestContextHost::~WebSocketTestURLRequestContextHost() =
default;
void WebSocketTestURLRequestContextHost::AddRawExpectations(
std::unique_ptr<SequencedSocketData> socket_data) { … }
void WebSocketTestURLRequestContextHost::AddSSLSocketDataProvider(
std::unique_ptr<SSLSocketDataProvider> ssl_socket_data) { … }
void WebSocketTestURLRequestContextHost::SetProxyConfig(
const std::string& proxy_rules) { … }
void DummyConnectDelegate::OnURLRequestConnected(URLRequest* request,
const TransportInfo& info) { … }
int DummyConnectDelegate::OnAuthRequired(
const AuthChallengeInfo& auth_info,
scoped_refptr<HttpResponseHeaders> response_headers,
const IPEndPoint& host_port_pair,
base::OnceCallback<void(const AuthCredentials*)> callback,
std::optional<AuthCredentials>* credentials) { … }
URLRequestContext* WebSocketTestURLRequestContextHost::GetURLRequestContext() { … }
void TestWebSocketStreamRequestAPI::OnBasicHandshakeStreamCreated(
WebSocketBasicHandshakeStream* handshake_stream) { … }
void TestWebSocketStreamRequestAPI::OnHttp2HandshakeStreamCreated(
WebSocketHttp2HandshakeStream* handshake_stream) { … }
void TestWebSocketStreamRequestAPI::OnHttp3HandshakeStreamCreated(
WebSocketHttp3HandshakeStream* handshake_stream) { … }
}