mirror of
https://github.com/pocoproject/poco.git
synced 2025-10-29 20:59:45 +01:00
merge Unix Domain Sockets support and other changes from develop
This commit is contained in:
@@ -118,7 +118,7 @@ void WebSocketTest::testWebSocket()
|
||||
|
||||
Poco::Thread::sleep(200);
|
||||
|
||||
HTTPClientSession cs("localhost", ss.address().port());
|
||||
HTTPClientSession cs("127.0.0.1", ss.address().port());
|
||||
HTTPRequest request(HTTPRequest::HTTP_GET, "/ws", HTTPRequest::HTTP_1_1);
|
||||
HTTPResponse response;
|
||||
WebSocket ws(cs, request, response);
|
||||
@@ -140,6 +140,13 @@ void WebSocketTest::testWebSocket()
|
||||
assert (n == payload.size());
|
||||
assert (payload.compare(0, payload.size(), buffer, 0, n) == 0);
|
||||
assert (flags == WebSocket::FRAME_TEXT);
|
||||
|
||||
ws.sendFrame(payload.data(), (int) payload.size());
|
||||
Poco::Buffer<char> pocobuffer(0);
|
||||
n = ws.receiveFrame(pocobuffer, flags);
|
||||
assert (n == payload.size());
|
||||
assert (payload.compare(0, payload.size(), pocobuffer.begin(), 0, n) == 0);
|
||||
assert (flags == WebSocket::FRAME_TEXT);
|
||||
}
|
||||
|
||||
for (int i = 125; i < 129; i++)
|
||||
@@ -150,6 +157,13 @@ void WebSocketTest::testWebSocket()
|
||||
assert (n == payload.size());
|
||||
assert (payload.compare(0, payload.size(), buffer, 0, n) == 0);
|
||||
assert (flags == WebSocket::FRAME_TEXT);
|
||||
|
||||
ws.sendFrame(payload.data(), (int) payload.size());
|
||||
Poco::Buffer<char> pocobuffer(0);
|
||||
n = ws.receiveFrame(pocobuffer, flags);
|
||||
assert (n == payload.size());
|
||||
assert (payload.compare(0, payload.size(), pocobuffer.begin(), 0, n) == 0);
|
||||
assert (flags == WebSocket::FRAME_TEXT);
|
||||
}
|
||||
|
||||
payload = "Hello, world!";
|
||||
@@ -185,7 +199,7 @@ void WebSocketTest::testWebSocketLarge()
|
||||
|
||||
Poco::Thread::sleep(200);
|
||||
|
||||
HTTPClientSession cs("localhost", ss.address().port());
|
||||
HTTPClientSession cs("127.0.0.1", ss.address().port());
|
||||
HTTPRequest request(HTTPRequest::HTTP_GET, "/ws", HTTPRequest::HTTP_1_1);
|
||||
HTTPResponse response;
|
||||
WebSocket ws(cs, request, response);
|
||||
@@ -209,6 +223,49 @@ void WebSocketTest::testWebSocketLarge()
|
||||
}
|
||||
|
||||
|
||||
void WebSocketTest::testOneLargeFrame(int msgSize)
|
||||
{
|
||||
Poco::Net::ServerSocket ss(0);
|
||||
Poco::Net::HTTPServer server(new WebSocketRequestHandlerFactory(msgSize), ss, new Poco::Net::HTTPServerParams);
|
||||
server.start();
|
||||
|
||||
Poco::Thread::sleep(200);
|
||||
|
||||
HTTPClientSession cs("127.0.0.1", ss.address().port());
|
||||
HTTPRequest request(HTTPRequest::HTTP_GET, "/ws", HTTPRequest::HTTP_1_1);
|
||||
HTTPResponse response;
|
||||
WebSocket ws(cs, request, response);
|
||||
ws.setSendBufferSize(msgSize);
|
||||
ws.setReceiveBufferSize(msgSize);
|
||||
std::string payload(msgSize, 'x');
|
||||
|
||||
ws.sendFrame(payload.data(), msgSize);
|
||||
|
||||
Poco::Buffer<char> buffer(msgSize);
|
||||
int flags;
|
||||
int n;
|
||||
|
||||
n = ws.receiveFrame(buffer.begin(), buffer.size(), flags);
|
||||
assert (n == payload.size());
|
||||
assert (payload.compare(0, payload.size(), buffer.begin(), 0, n) == 0);
|
||||
|
||||
ws.sendFrame(payload.data(), msgSize);
|
||||
|
||||
Poco::Buffer<char> pocobuffer(0);
|
||||
|
||||
n = ws.receiveFrame(pocobuffer, flags);
|
||||
assert (n == payload.size());
|
||||
assert (payload.compare(0, payload.size(), pocobuffer.begin(), 0, n) == 0);
|
||||
}
|
||||
|
||||
|
||||
void WebSocketTest::testWebSocketLargeInOneFrame()
|
||||
{
|
||||
testOneLargeFrame(64000);
|
||||
testOneLargeFrame(70000);
|
||||
}
|
||||
|
||||
|
||||
void WebSocketTest::setUp()
|
||||
{
|
||||
}
|
||||
@@ -225,6 +282,7 @@ CppUnit::Test* WebSocketTest::suite()
|
||||
|
||||
CppUnit_addTest(pSuite, WebSocketTest, testWebSocket);
|
||||
CppUnit_addTest(pSuite, WebSocketTest, testWebSocketLarge);
|
||||
CppUnit_addTest(pSuite, WebSocketTest, testWebSocketLargeInOneFrame);
|
||||
|
||||
return pSuite;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user