summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMårten Nordheim <marten.nordheim@qt.io>2018-04-10 15:04:10 +0200
committerMårten Nordheim <marten.nordheim@qt.io>2018-04-14 21:42:11 +0000
commitbd100e777190f68c4da11d4f7a1c4bf8274211d9 (patch)
treef6c68bcab73988658a3abac8a6dcf0c2a81911a8 /tests
parent4f0346907cd1e3c6e37dd0eb7ef99434a0e21587 (diff)
downloadqtwebsockets-bd100e777190f68c4da11d4f7a1c4bf8274211d9.tar.gz
QWebSocket: Add 'bytesToWrite'
Add the well-known 'bytesToWrite' function to QWebSocket. Previously the only way to know how many bytes were left to be written was to make a guesstimate on the overhead your message would get and then keep track of the amount sent using the 'bytesWritten' signal. The tests compare using '>' because there is overhead from the headers. [ChangeLog][QWebSocket] Added the bytesToWrite function to QWebSocket. Call this function to see how many bytes are left to write. Change-Id: I82f17a98b582ee3bc02f0c47597b4a6717761f12 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/websockets/qwebsocket/tst_qwebsocket.cpp8
-rw-r--r--tests/auto/websockets/qwebsocketserver/tst_qwebsocketserver.cpp8
2 files changed, 16 insertions, 0 deletions
diff --git a/tests/auto/websockets/qwebsocket/tst_qwebsocket.cpp b/tests/auto/websockets/qwebsocket/tst_qwebsocket.cpp
index ac54270..e80eeb1 100644
--- a/tests/auto/websockets/qwebsocket/tst_qwebsocket.cpp
+++ b/tests/auto/websockets/qwebsocket/tst_qwebsocket.cpp
@@ -434,9 +434,13 @@ void tst_QWebSocket::tst_sendTextMessage()
QUrl urlConnected = arguments.at(0).toUrl();
QCOMPARE(urlConnected, url);
+ QCOMPARE(socket.bytesToWrite(), 0);
socket.sendTextMessage(QStringLiteral("Hello world!"));
+ QVERIFY(socket.bytesToWrite() > 12); // 12 + a few extra bytes for header
QVERIFY(textMessageReceived.wait(500));
+ QCOMPARE(socket.bytesToWrite(), 0);
+
QCOMPARE(textMessageReceived.count(), 1);
QCOMPARE(binaryMessageReceived.count(), 0);
QCOMPARE(binaryFrameReceived.count(), 0);
@@ -508,9 +512,13 @@ void tst_QWebSocket::tst_sendBinaryMessage()
QTRY_COMPARE(socketConnectedSpy.count(), 1);
QCOMPARE(socket.state(), QAbstractSocket::ConnectedState);
+ QCOMPARE(socket.bytesToWrite(), 0);
socket.sendBinaryMessage(QByteArrayLiteral("Hello world!"));
+ QVERIFY(socket.bytesToWrite() > 12); // 12 + a few extra bytes for header
QVERIFY(binaryMessageReceived.wait(500));
+ QCOMPARE(socket.bytesToWrite(), 0);
+
QCOMPARE(textMessageReceived.count(), 0);
QCOMPARE(textFrameReceived.count(), 0);
QCOMPARE(binaryMessageReceived.count(), 1);
diff --git a/tests/auto/websockets/qwebsocketserver/tst_qwebsocketserver.cpp b/tests/auto/websockets/qwebsocketserver/tst_qwebsocketserver.cpp
index 8a3760d..a2f3c15 100644
--- a/tests/auto/websockets/qwebsocketserver/tst_qwebsocketserver.cpp
+++ b/tests/auto/websockets/qwebsocketserver/tst_qwebsocketserver.cpp
@@ -640,6 +640,14 @@ void tst_QWebSocketServer::tst_handleConnection()
QTRY_COMPARE(wsMessageReceivedSpy.count(), 1);
QList<QVariant> arguments = wsMessageReceivedSpy.takeFirst();
QCOMPARE(arguments.first().toString(), QString("dummy"));
+
+ QSignalSpy clientMessageReceivedSpy(&webSocket, &QWebSocket::textMessageReceived);
+ webServerSocket->sendTextMessage("hello");
+ QVERIFY(webServerSocket->bytesToWrite() > 5); // 5 + a few extra bytes for header
+ QTRY_COMPARE(webServerSocket->bytesToWrite(), 0);
+ QTRY_COMPARE(clientMessageReceivedSpy.count(), 1);
+ arguments = clientMessageReceivedSpy.takeFirst();
+ QCOMPARE(arguments.first().toString(), QString("hello"));
}
QTEST_MAIN(tst_QWebSocketServer)