Compare commits

..

1 commit

Author SHA1 Message Date
Anton
4ad3045c1b Successful Connect() with proxy
Some checks failed
PR Check / on-push-commit-check (push) Has been cancelled
2024-11-26 18:34:49 +03:00

View file

@ -10,8 +10,8 @@ namespace asio = boost::asio;
class ProxyTest : public ::testing::Test { class ProxyTest : public ::testing::Test {
protected: protected:
boost::asio::io_context io_context; boost::asio::io_context io;
larra::xmpp::impl::MockSocket mock_socket{io_context.get_executor()}; larra::xmpp::impl::MockSocket mockSocket{io.get_executor()};
}; };
// Test 1: Connect via HTTP proxy with successful server response // Test 1: Connect via HTTP proxy with successful server response
@ -26,15 +26,15 @@ TEST_F(ProxyTest, ConnectViaHttpProxy_SuccessfulResponse) {
std::string proxyResponse = "HTTP/1.1 200 Connection established\r\n\r\n"; std::string proxyResponse = "HTTP/1.1 200 Connection established\r\n\r\n";
mock_socket.AddReceivedData(proxyResponse); mockSocket.AddReceivedData(proxyResponse);
bool connectSuccessful = false; bool connectSuccessful = false;
asio::co_spawn( asio::co_spawn(
io_context, io,
[&]() -> asio::awaitable<void> { [&]() -> asio::awaitable<void> {
try { try {
co_await client::impl::ConnectViaProxy(mock_socket, proxy, targetHost, targetPort); co_await client::impl::ConnectViaProxy(mockSocket, proxy, targetHost, targetPort);
connectSuccessful = true; connectSuccessful = true;
} catch(...) { } catch(...) {
connectSuccessful = false; connectSuccessful = false;
@ -42,9 +42,9 @@ TEST_F(ProxyTest, ConnectViaHttpProxy_SuccessfulResponse) {
}, },
asio::detached); asio::detached);
io_context.run(); io.run();
std::string sentData = mock_socket.GetSentData(); std::string sentData = mockSocket.GetSentData();
EXPECT_EQ(sentData, expectedRequest); EXPECT_EQ(sentData, expectedRequest);
EXPECT_TRUE(connectSuccessful); EXPECT_TRUE(connectSuccessful);
@ -99,11 +99,11 @@ TEST(Socks5ProxyTest, ConnectViaProxy) {
expectedRequest[reqLen++] = static_cast<std::uint8_t>(networkOrderPort & 0xFF); expectedRequest[reqLen++] = static_cast<std::uint8_t>(networkOrderPort & 0xFF);
std::string expectedData = expectedGreeting; std::string expectedData = expectedGreeting;
auto transformed_view = expectedRequest | std::views::take(reqLen) | std::views::transform([](std::uint8_t byte) { auto transformedView = expectedRequest | std::views::take(reqLen) | std::views::transform([](std::uint8_t byte) {
return static_cast<char>(byte); return static_cast<char>(byte);
}); });
expectedData.append(std::ranges::to<std::string>(transformed_view)); expectedData.append(std::ranges::to<std::string>(transformedView));
EXPECT_EQ(sentData, expectedData); EXPECT_EQ(sentData, expectedData);
co_return; co_return;