summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/websockets/dataprocessor/dataprocessor.pro2
-rw-r--r--tests/auto/websockets/dataprocessor/tst_dataprocessor.cpp2
-rw-r--r--tests/auto/websockets/handshakerequest/handshakerequest.pro2
-rw-r--r--tests/auto/websockets/handshakeresponse/handshakeresponse.pro2
-rw-r--r--tests/auto/websockets/qdefaultmaskgenerator/qdefaultmaskgenerator.pro2
-rw-r--r--tests/auto/websockets/qwebsocket/qwebsocket.pro2
-rw-r--r--tests/auto/websockets/qwebsocket/tst_qwebsocket.cpp10
-rw-r--r--tests/auto/websockets/qwebsocketcorsauthenticator/qwebsocketcorsauthenticator.pro2
-rw-r--r--tests/auto/websockets/qwebsocketserver/qwebsocketserver.pro2
-rw-r--r--tests/auto/websockets/qwebsocketserver/tst_qwebsocketserver.cpp21
-rw-r--r--tests/auto/websockets/websocketframe/websocketframe.pro2
-rw-r--r--tests/auto/websockets/websocketprotocol/websocketprotocol.pro2
-rw-r--r--tests/manual/compliance/compliance.pro4
-rw-r--r--tests/manual/compliance/tst_compliance.cpp136
-rw-r--r--tests/manual/websockets/websockets.pro5
15 files changed, 89 insertions, 107 deletions
diff --git a/tests/auto/websockets/dataprocessor/dataprocessor.pro b/tests/auto/websockets/dataprocessor/dataprocessor.pro
index ad99900..907bfeb 100644
--- a/tests/auto/websockets/dataprocessor/dataprocessor.pro
+++ b/tests/auto/websockets/dataprocessor/dataprocessor.pro
@@ -6,7 +6,7 @@ TEMPLATE = app
TARGET = tst_dataprocessor
-QT = core testlib websockets websockets-private
+QT = testlib websockets-private
SOURCES += tst_dataprocessor.cpp
diff --git a/tests/auto/websockets/dataprocessor/tst_dataprocessor.cpp b/tests/auto/websockets/dataprocessor/tst_dataprocessor.cpp
index 5f6cfba..f9a91d5 100644
--- a/tests/auto/websockets/dataprocessor/tst_dataprocessor.cpp
+++ b/tests/auto/websockets/dataprocessor/tst_dataprocessor.cpp
@@ -901,7 +901,7 @@ void tst_DataProcessor::frameTooBig_data()
QTest::addColumn<QWebSocketProtocol::CloseCode>("expectedCloseCode");
quint64 swapped64 = 0;
- const char *wireRepresentation = 0;
+ const char *wireRepresentation = nullptr;
//only data frames are checked for being too big
//control frames have explicit checking on a maximum payload size of 125,
diff --git a/tests/auto/websockets/handshakerequest/handshakerequest.pro b/tests/auto/websockets/handshakerequest/handshakerequest.pro
index aa7779e..b641445 100644
--- a/tests/auto/websockets/handshakerequest/handshakerequest.pro
+++ b/tests/auto/websockets/handshakerequest/handshakerequest.pro
@@ -6,7 +6,7 @@ TEMPLATE = app
TARGET = tst_handshakerequest
-QT = core testlib websockets websockets-private
+QT = testlib websockets-private
SOURCES += tst_handshakerequest.cpp
diff --git a/tests/auto/websockets/handshakeresponse/handshakeresponse.pro b/tests/auto/websockets/handshakeresponse/handshakeresponse.pro
index ab6682b..61ff2f7 100644
--- a/tests/auto/websockets/handshakeresponse/handshakeresponse.pro
+++ b/tests/auto/websockets/handshakeresponse/handshakeresponse.pro
@@ -6,7 +6,7 @@ TEMPLATE = app
TARGET = tst_handshakeresponse
-QT = core testlib websockets websockets-private
+QT = testlib websockets-private
SOURCES += tst_handshakeresponse.cpp
diff --git a/tests/auto/websockets/qdefaultmaskgenerator/qdefaultmaskgenerator.pro b/tests/auto/websockets/qdefaultmaskgenerator/qdefaultmaskgenerator.pro
index c3b1046..07ea14d 100644
--- a/tests/auto/websockets/qdefaultmaskgenerator/qdefaultmaskgenerator.pro
+++ b/tests/auto/websockets/qdefaultmaskgenerator/qdefaultmaskgenerator.pro
@@ -6,7 +6,7 @@ TEMPLATE = app
TARGET = tst_defaultmaskgenerator
-QT = core testlib websockets websockets-private
+QT = testlib websockets-private
SOURCES += tst_defaultmaskgenerator.cpp
diff --git a/tests/auto/websockets/qwebsocket/qwebsocket.pro b/tests/auto/websockets/qwebsocket/qwebsocket.pro
index 1b08dc7..df143d5 100644
--- a/tests/auto/websockets/qwebsocket/qwebsocket.pro
+++ b/tests/auto/websockets/qwebsocket/qwebsocket.pro
@@ -2,7 +2,7 @@ CONFIG += console
CONFIG += testcase
CONFIG -= app_bundle
-QT = core testlib websockets
+QT = testlib websockets
TARGET = tst_qwebsocket
diff --git a/tests/auto/websockets/qwebsocket/tst_qwebsocket.cpp b/tests/auto/websockets/qwebsocket/tst_qwebsocket.cpp
index 211ea25..2bb5d16 100644
--- a/tests/auto/websockets/qwebsocket/tst_qwebsocket.cpp
+++ b/tests/auto/websockets/qwebsocket/tst_qwebsocket.cpp
@@ -435,9 +435,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);
@@ -509,9 +513,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);
@@ -650,7 +658,7 @@ struct Warned
origHandler(type, context, str);
}
};
-QtMessageHandler Warned::origHandler = 0;
+QtMessageHandler Warned::origHandler = nullptr;
bool Warned::warned = false;
diff --git a/tests/auto/websockets/qwebsocketcorsauthenticator/qwebsocketcorsauthenticator.pro b/tests/auto/websockets/qwebsocketcorsauthenticator/qwebsocketcorsauthenticator.pro
index 9a5af6b..caa97ad 100644
--- a/tests/auto/websockets/qwebsocketcorsauthenticator/qwebsocketcorsauthenticator.pro
+++ b/tests/auto/websockets/qwebsocketcorsauthenticator/qwebsocketcorsauthenticator.pro
@@ -6,7 +6,7 @@ TEMPLATE = app
TARGET = tst_qwebsocketcorsauthenticator
-QT = core testlib websockets
+QT = testlib websockets
SOURCES += tst_qwebsocketcorsauthenticator.cpp
diff --git a/tests/auto/websockets/qwebsocketserver/qwebsocketserver.pro b/tests/auto/websockets/qwebsocketserver/qwebsocketserver.pro
index 178fd88..c1ca4af 100644
--- a/tests/auto/websockets/qwebsocketserver/qwebsocketserver.pro
+++ b/tests/auto/websockets/qwebsocketserver/qwebsocketserver.pro
@@ -2,7 +2,7 @@ CONFIG += console
CONFIG += testcase
CONFIG -= app_bundle
-QT = core testlib websockets
+QT = testlib websockets
TARGET = tst_qwebsocketserver
diff --git a/tests/auto/websockets/qwebsocketserver/tst_qwebsocketserver.cpp b/tests/auto/websockets/qwebsocketserver/tst_qwebsocketserver.cpp
index 9b3d5b6..64b2489 100644
--- a/tests/auto/websockets/qwebsocketserver/tst_qwebsocketserver.cpp
+++ b/tests/auto/websockets/qwebsocketserver/tst_qwebsocketserver.cpp
@@ -192,7 +192,11 @@ void tst_QWebSocketServer::tst_initialisation()
QCOMPARE(server.maxPendingConnections(), 30);
QCOMPARE(server.serverPort(), quint16(0));
QCOMPARE(server.serverAddress(), QHostAddress());
+#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
QCOMPARE(server.socketDescriptor(), -1);
+#else // ### Qt 6: Remove leftovers
+ QCOMPARE(server.nativeDescriptor(), -1);
+#endif // (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
QVERIFY(!server.hasPendingConnections());
QVERIFY(!server.nextPendingConnection());
QCOMPARE(server.error(), QWebSocketProtocol::CloseCodeNormal);
@@ -217,7 +221,11 @@ void tst_QWebSocketServer::tst_initialisation()
QCOMPARE(server.maxPendingConnections(), 30);
QCOMPARE(server.serverPort(), quint16(0));
QCOMPARE(server.serverAddress(), QHostAddress());
+#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
QCOMPARE(server.socketDescriptor(), -1);
+#else // ### Qt 6: Remove leftovers
+ QCOMPARE(server.nativeDescriptor(), -1);
+#endif // (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
QVERIFY(!server.hasPendingConnections());
QVERIFY(!server.nextPendingConnection());
QCOMPARE(server.error(), QWebSocketProtocol::CloseCodeNormal);
@@ -253,8 +261,13 @@ void tst_QWebSocketServer::tst_settersAndGetters()
server.setMaxPendingConnections(INT_MAX);
QCOMPARE(server.maxPendingConnections(), INT_MAX);
+#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
QVERIFY(!server.setSocketDescriptor(-2));
QCOMPARE(server.socketDescriptor(), -1);
+#else // ### Qt 6: Remove leftovers
+ QVERIFY(!server.setNativeDescriptor(-2));
+ QCOMPARE(server.nativeDescriptor(), -1);
+#endif // (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
server.setServerName(QStringLiteral("Qt WebSocketServer"));
QCOMPARE(server.serverName(), QStringLiteral("Qt WebSocketServer"));
@@ -645,6 +658,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)
diff --git a/tests/auto/websockets/websocketframe/websocketframe.pro b/tests/auto/websockets/websocketframe/websocketframe.pro
index 8f58302..babb296 100644
--- a/tests/auto/websockets/websocketframe/websocketframe.pro
+++ b/tests/auto/websockets/websocketframe/websocketframe.pro
@@ -6,7 +6,7 @@ TEMPLATE = app
TARGET = tst_websocketframe
-QT = core testlib websockets websockets-private
+QT = testlib websockets-private
SOURCES += tst_websocketframe.cpp
diff --git a/tests/auto/websockets/websocketprotocol/websocketprotocol.pro b/tests/auto/websockets/websocketprotocol/websocketprotocol.pro
index 27748a9..22a8140 100644
--- a/tests/auto/websockets/websocketprotocol/websocketprotocol.pro
+++ b/tests/auto/websockets/websocketprotocol/websocketprotocol.pro
@@ -6,7 +6,7 @@ TEMPLATE = app
TARGET = tst_websocketprotocol
-QT = core testlib websockets websockets-private
+QT = testlib websockets-private
SOURCES += tst_websocketprotocol.cpp
diff --git a/tests/manual/compliance/compliance.pro b/tests/manual/compliance/compliance.pro
index 30ac320..078c258 100644
--- a/tests/manual/compliance/compliance.pro
+++ b/tests/manual/compliance/compliance.pro
@@ -1,5 +1,4 @@
CONFIG += console
-CONFIG += c++11
CONFIG += testcase
CONFIG -= app_bundle
@@ -7,7 +6,6 @@ TEMPLATE = app
TARGET = tst_compliance
-QT = core network websockets testlib
+QT = websockets testlib
SOURCES += tst_compliance.cpp
-
diff --git a/tests/manual/compliance/tst_compliance.cpp b/tests/manual/compliance/tst_compliance.cpp
index 478ca33..8ef3c14 100644
--- a/tests/manual/compliance/tst_compliance.cpp
+++ b/tests/manual/compliance/tst_compliance.cpp
@@ -37,116 +37,74 @@ class tst_ComplianceTest : public QObject
{
Q_OBJECT
-public:
- tst_ComplianceTest();
-
private Q_SLOTS:
- void initTestCase();
void cleanupTestCase();
- void init();
- void cleanup();
- /**
- * @brief Runs the autobahn tests against our implementation
- */
- void autobahnTest();
-
-private:
- QUrl m_url;
- void runTestCases(int startNbr, int stopNbr = -1);
- void runTestCase(int nbr, int total);
+ void autobahnTest_data();
+ void autobahnTest();
};
-tst_ComplianceTest::tst_ComplianceTest() :
- m_url("ws://localhost:9001")
-{
-}
-
-void tst_ComplianceTest::initTestCase()
-{
-}
+static const QUrl baseUrl { "ws://localhost:9001" };
+static const auto agent = QStringLiteral("QtWebSockets/" QT_VERSION_STR);
void tst_ComplianceTest::cleanupTestCase()
{
-}
-
-void tst_ComplianceTest::init()
-{
-}
-
-void tst_ComplianceTest::cleanup()
-{
-}
-
-void tst_ComplianceTest::runTestCase(int nbr, int total)
-{
- if (nbr == total)
- {
- return;
- }
-
- QWebSocket *pWebSocket = new QWebSocket;
- QSignalSpy spy(pWebSocket, SIGNAL(disconnected()));
-
- //next for every case, connect to url
- //ws://ipaddress:port/runCase?case=<number>&agent=<agentname>
- //where agent name will be QWebSocket
- QObject::connect(pWebSocket, &QWebSocket::textMessageReceived, [=](QString message) {
- pWebSocket->sendTextMessage(message);
- });
- QObject::connect(pWebSocket, &QWebSocket::binaryMessageReceived, [=](QByteArray message) {
- pWebSocket->sendBinaryMessage(message);
- });
-
- qDebug() << "Executing test" << (nbr + 1) << "/" << total;
- QUrl url = m_url;
- url.setPath(QStringLiteral("/runCase"));
+ QWebSocket webSocket;
+ QSignalSpy spy(&webSocket, &QWebSocket::disconnected);
+ auto url = baseUrl;
+ url.setPath(QStringLiteral("/updateReports"));
QUrlQuery query;
- query.addQueryItem(QStringLiteral("case"), QString::number(nbr + 1));
- query.addQueryItem(QStringLiteral("agent"), QStringLiteral("QtWebSockets/1.0"));
+ query.addQueryItem(QStringLiteral("agent"), agent);
url.setQuery(query);
- pWebSocket->open(url);
- spy.wait(60000);
- pWebSocket->close();
- delete pWebSocket;
- pWebSocket = nullptr;
- runTestCase(nbr + 1, total);
-}
-
-void tst_ComplianceTest::runTestCases(int startNbr, int stopNbr)
-{
- runTestCase(startNbr, stopNbr);
+ webSocket.open(url);
+ QVERIFY(spy.wait());
}
-void tst_ComplianceTest::autobahnTest()
+void tst_ComplianceTest::autobahnTest_data()
{
- //connect to autobahn server at url ws://ipaddress:port/getCaseCount
- QWebSocket *pWebSocket = new QWebSocket;
- QUrl url = m_url;
- int numberOfTestCases = 0;
- QSignalSpy spy(pWebSocket, SIGNAL(disconnected()));
- QObject::connect(pWebSocket, &QWebSocket::textMessageReceived, [&](QString message) {
- numberOfTestCases = message.toInt();
+ QTest::addColumn<int>("testCase");
+
+ // Ask /getCaseCount how many tests we have
+ QWebSocket webSocket;
+ QSignalSpy spy(&webSocket, &QWebSocket::disconnected);
+
+ connect(&webSocket, &QWebSocket::textMessageReceived, [](QString message) {
+ bool ok;
+ const auto numberOfTestCases = message.toInt(&ok);
+ if (!ok)
+ QSKIP("Unable to parse /getCaseCount result");
+ for (auto i = 1; i <= numberOfTestCases; ++i)
+ QTest::addRow("%d", i) << i;
});
+ auto url = baseUrl;
url.setPath(QStringLiteral("/getCaseCount"));
- pWebSocket->open(url);
- spy.wait(60000);
- QVERIFY(numberOfTestCases > 0);
-
- QObject::disconnect(pWebSocket, &QWebSocket::textMessageReceived, 0, 0);
- runTestCases(0, numberOfTestCases);
+ webSocket.open(url);
+ if (!spy.wait())
+ QSKIP("AutoBahn test server didn't deliver case-count");
+}
- url.setPath(QStringLiteral("/updateReports"));
+void tst_ComplianceTest::autobahnTest()
+{
+ QFETCH(int, testCase);
+ QWebSocket webSocket;
+ QSignalSpy spy(&webSocket, &QWebSocket::disconnected);
+ connect(&webSocket, &QWebSocket::textMessageReceived,
+ &webSocket, &QWebSocket::sendTextMessage);
+ connect(&webSocket, &QWebSocket::binaryMessageReceived,
+ &webSocket, &QWebSocket::sendBinaryMessage);
+
+ // Ask /runCase?case=<number>&agent=<agent> to run the test-case.
+ auto url = baseUrl;
+ url.setPath(QStringLiteral("/runCase"));
QUrlQuery query;
- query.addQueryItem(QStringLiteral("agent"), QStringLiteral("QtWebSockets"));
+ query.addQueryItem(QStringLiteral("case"), QString::number(testCase));
+ query.addQueryItem(QStringLiteral("agent"), agent);
url.setQuery(query);
- pWebSocket->open(url);
- spy.wait(60000);
- delete pWebSocket;
+ webSocket.open(url);
+ QVERIFY(spy.wait());
}
QTEST_MAIN(tst_ComplianceTest)
#include "tst_compliance.moc"
-
diff --git a/tests/manual/websockets/websockets.pro b/tests/manual/websockets/websockets.pro
index a8b2edb..62000b9 100644
--- a/tests/manual/websockets/websockets.pro
+++ b/tests/manual/websockets/websockets.pro
@@ -1,5 +1,4 @@
CONFIG += console
-CONFIG += c++11
CONFIG += testcase
CONFIG -= app_bundle
@@ -7,8 +6,6 @@ TEMPLATE = app
TARGET = tst_websockets
-QT = core network websockets testlib
+QT = websockets testlib
SOURCES += tst_websockets.cpp
-
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0