diff options
Diffstat (limited to 'tests/auto/websockets/qwebsocketserver/tst_qwebsocketserver.cpp')
-rw-r--r-- | tests/auto/websockets/qwebsocketserver/tst_qwebsocketserver.cpp | 247 |
1 files changed, 131 insertions, 116 deletions
diff --git a/tests/auto/websockets/qwebsocketserver/tst_qwebsocketserver.cpp b/tests/auto/websockets/qwebsocketserver/tst_qwebsocketserver.cpp index 62d8d43..c0ba30c 100644 --- a/tests/auto/websockets/qwebsocketserver/tst_qwebsocketserver.cpp +++ b/tests/auto/websockets/qwebsocketserver/tst_qwebsocketserver.cpp @@ -1,44 +1,18 @@ -/**************************************************************************** -** -** Copyright (C) 2016 Kurt Pattyn <pattyn.kurt@gmail.com>. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ +// Copyright (C) 2016 Kurt Pattyn <pattyn.kurt@gmail.com>. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #include <QString> #include <QtTest> #include <QNetworkProxy> #include <QTcpSocket> #include <QTcpServer> #include <QtCore/QScopedPointer> -#ifndef QT_NO_OPENSSL #include <QtNetwork/qsslpresharedkeyauthenticator.h> -#endif #ifndef QT_NO_SSL #include <QtNetwork/qsslcipher.h> #include <QtNetwork/qsslkey.h> #include <QtNetwork/qsslsocket.h> #endif +#include <QtWebSockets/QWebSocketHandshakeOptions> #include <QtWebSockets/QWebSocketServer> #include <QtWebSockets/QWebSocket> #include <QtWebSockets/QWebSocketCorsAuthenticator> @@ -54,7 +28,6 @@ Q_DECLARE_METATYPE(QWebSocketCorsAuthenticator *) Q_DECLARE_METATYPE(QSslError) #endif -#ifndef QT_NO_OPENSSL // Use this cipher to force PSK key sharing. static const QString PSK_CIPHER_WITHOUT_AUTH = QStringLiteral("PSK-AES256-CBC-SHA"); static const QByteArray PSK_CLIENT_PRESHAREDKEY = QByteArrayLiteral("\x1a\x2b\x3c\x4d\x5e\x6f"); @@ -93,7 +66,6 @@ public slots: } } }; -#endif class tst_QWebSocketServer : public QObject { @@ -110,6 +82,8 @@ private Q_SLOTS: void tst_settersAndGetters(); void tst_listening(); void tst_connectivity(); + void tst_protocols_data(); + void tst_protocols(); void tst_preSharedKey(); void tst_maxPendingConnections(); void tst_serverDestroyedWhileSocketConnected(); @@ -137,10 +111,8 @@ void tst_QWebSocketServer::init() qRegisterMetaType<QWebSocketCorsAuthenticator *>("QWebSocketCorsAuthenticator *"); #ifndef QT_NO_SSL qRegisterMetaType<QSslError>("QSslError"); -#ifndef QT_NO_OPENSSL qRegisterMetaType<QSslPreSharedKeyAuthenticator *>(); #endif -#endif } #ifdef SHOULD_CHECK_SYSCALL_SUPPORT @@ -196,11 +168,7 @@ 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); @@ -211,7 +179,7 @@ void tst_QWebSocketServer::tst_initialisation() #ifndef QT_NO_SSL QCOMPARE(server.sslConfiguration(), QSslConfiguration::defaultConfiguration()); #endif - QCOMPARE(server.supportedVersions().count(), 1); + QCOMPARE(server.supportedVersions().size(), 1); QCOMPARE(server.supportedVersions().at(0), QWebSocketProtocol::VersionLatest); QCOMPARE(server.supportedVersions().at(0), QWebSocketProtocol::Version13); @@ -225,11 +193,7 @@ 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); @@ -240,7 +204,7 @@ void tst_QWebSocketServer::tst_initialisation() #ifndef QT_NO_SSL QCOMPARE(server.sslConfiguration(), QSslConfiguration::defaultConfiguration()); #endif - QCOMPARE(server.supportedVersions().count(), 1); + QCOMPARE(server.supportedVersions().size(), 1); QCOMPARE(server.supportedVersions().at(0), QWebSocketProtocol::VersionLatest); QCOMPARE(server.supportedVersions().at(0), QWebSocketProtocol::Version13); QCOMPARE(server.serverUrl(), QUrl()); @@ -265,13 +229,8 @@ 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")); @@ -297,7 +256,7 @@ void tst_QWebSocketServer::tst_settersAndGetters() server.setHandshakeTimeout(64); QCOMPARE(server.handshakeTimeoutMS(), 64); -#if QT_HAS_INCLUDE(<chrono>) +#if __has_include(<chrono>) auto expected = std::chrono::milliseconds(64); QCOMPARE(server.handshakeTimeout(), expected); @@ -329,26 +288,26 @@ void tst_QWebSocketServer::tst_listening() QVERIFY(server.listen()); //listen on all network interface, choose an appropriate port QVERIFY(server.isListening()); - QCOMPARE(serverClosedSpy.count(), 0); + QCOMPARE(serverClosedSpy.size(), 0); server.close(); - QTRY_COMPARE(serverClosedSpy.count(), 1); + QTRY_COMPARE(serverClosedSpy.size(), 1); QVERIFY(!server.isListening()); - QCOMPARE(serverErrorSpy.count(), 0); + QCOMPARE(serverErrorSpy.size(), 0); QVERIFY(!server.listen(QHostAddress(QStringLiteral("1.2.3.4")), 0)); QCOMPARE(server.error(), QWebSocketProtocol::CloseCodeAbnormalDisconnection); QCOMPARE(server.errorString().toLatin1().constData(), "The address is not available"); QVERIFY(!server.isListening()); - QCOMPARE(serverAcceptErrorSpy.count(), 0); - QCOMPARE(serverConnectionSpy.count(), 0); - QCOMPARE(corsAuthenticationSpy.count(), 0); + QCOMPARE(serverAcceptErrorSpy.size(), 0); + QCOMPARE(serverConnectionSpy.size(), 0); + QCOMPARE(corsAuthenticationSpy.size(), 0); #ifndef QT_NO_SSL - QCOMPARE(peerVerifyErrorSpy.count(), 0); - QCOMPARE(sslErrorsSpy.count(), 0); + QCOMPARE(peerVerifyErrorSpy.size(), 0); + QCOMPARE(sslErrorsSpy.size(), 0); #endif - QCOMPARE(serverErrorSpy.count(), 1); - QCOMPARE(serverClosedSpy.count(), 1); + QCOMPARE(serverErrorSpy.size(), 1); + QCOMPARE(serverClosedSpy.size(), 1); } void tst_QWebSocketServer::tst_connectivity() @@ -377,21 +336,77 @@ void tst_QWebSocketServer::tst_connectivity() socket.open(server.serverUrl().toString()); - QTRY_COMPARE(socketConnectedSpy.count(), 1); + QTRY_COMPARE(socketConnectedSpy.size(), 1); QCOMPARE(socket.state(), QAbstractSocket::ConnectedState); - QCOMPARE(serverConnectionSpy.count(), 1); - QCOMPARE(corsAuthenticationSpy.count(), 1); + QCOMPARE(serverConnectionSpy.size(), 1); + QCOMPARE(corsAuthenticationSpy.size(), 1); - QCOMPARE(serverClosedSpy.count(), 0); + QCOMPARE(serverClosedSpy.size(), 0); server.close(); - QTRY_COMPARE(serverClosedSpy.count(), 1); + QTRY_COMPARE(serverClosedSpy.size(), 1); #ifndef QT_NO_SSL - QCOMPARE(peerVerifyErrorSpy.count(), 0); - QCOMPARE(sslErrorsSpy.count(), 0); + QCOMPARE(peerVerifyErrorSpy.size(), 0); + QCOMPARE(sslErrorsSpy.size(), 0); #endif - QCOMPARE(serverErrorSpy.count(), 0); + QCOMPARE(serverErrorSpy.size(), 0); +} + +void tst_QWebSocketServer::tst_protocols_data() +{ + QTest::addColumn<QStringList>("clientProtocols"); + QTest::addColumn<QStringList>("headerProtocols"); + QTest::addColumn<QString>("expectedProtocol"); + + QTest::addRow("none") << QStringList{} << QStringList{} << QString{}; + QTest::addRow("same order as server") + << QStringList{ "chat", "superchat" } << QStringList{} << QStringLiteral("chat"); + QTest::addRow("different order from server") + << QStringList{ "superchat", "chat" } << QStringList{} << QStringLiteral("superchat"); + QTest::addRow("unsupported protocol") << QStringList{ "foo" } << QStringList{} << QString{}; + QTest::addRow("mixed supported/unsupported protocol") + << QStringList{ "foo", "chat" } << QStringList{} << QStringLiteral("chat"); + + QTest::addRow("same order as server, in header") + << QStringList{} << QStringList{ "chat", "superchat" } << QStringLiteral("chat"); + QTest::addRow("specified in options and in header") + << QStringList{ "superchat" } << QStringList{ "chat" } << QStringLiteral("superchat"); +} + +void tst_QWebSocketServer::tst_protocols() +{ + QFETCH(QStringList, clientProtocols); + QFETCH(QStringList, headerProtocols); + QFETCH(QString, expectedProtocol); + + QWebSocketServer server(QString(), QWebSocketServer::NonSecureMode); + server.setSupportedSubprotocols({ QStringLiteral("chat"), QStringLiteral("superchat") }); + + QSignalSpy newConnectionSpy(&server, &QWebSocketServer::newConnection); + + QVERIFY(server.listen()); + + QWebSocketHandshakeOptions opt; + QNetworkRequest request(server.serverUrl()); + if (!headerProtocols.isEmpty()) { + QString protocols = headerProtocols.join(u','); + request.setRawHeader("Sec-WebSocket-Protocol", protocols.toUtf8()); + } + opt.setSubprotocols(clientProtocols); + + QWebSocket client; + client.open(request, opt); + + QTRY_COMPARE(client.state(), QAbstractSocket::ConnectedState); + QTRY_COMPARE(newConnectionSpy.size(), 1); + + auto *serverSocket = server.nextPendingConnection(); + QVERIFY(serverSocket); + + QCOMPARE(client.subprotocol(), expectedProtocol); + QCOMPARE(serverSocket->subprotocol(), expectedProtocol); + QCOMPARE(serverSocket->handshakeOptions().subprotocols(), clientProtocols + headerProtocols); } void tst_QWebSocketServer::tst_preSharedKey() @@ -399,7 +414,9 @@ void tst_QWebSocketServer::tst_preSharedKey() if (m_shouldSkipUnsupportedIpv6Test) QSKIP("Syscalls needed for ipv6 sockoptions missing functionality"); -#ifndef QT_NO_OPENSSL + if (QSslSocket::activeBackend() != u"openssl") + QSKIP("OpenSSL required"); + QWebSocketServer server(QString(), QWebSocketServer::SecureMode); bool cipherFound = false; @@ -419,8 +436,7 @@ void tst_QWebSocketServer::tst_preSharedKey() list << cipher; QSslConfiguration config = QSslConfiguration::defaultConfiguration(); - if (QSslSocket::sslLibraryVersionNumber() >= 0x10101000L) - config.setProtocol(QSsl::TlsV1_2); // With TLS 1.3 there are some issues with PSK, force 1.2 + config.setProtocol(QSsl::TlsV1_2); // With TLS 1.3 there are some issues with PSK, force 1.2 config.setCiphers(list); config.setPeerVerifyMode(QSslSocket::VerifyNone); config.setPreSharedKeyIdentityHint(PSK_SERVER_IDENTITY_HINT); @@ -461,20 +477,19 @@ void tst_QWebSocketServer::tst_preSharedKey() socket.open(server.serverUrl().toString()); - QTRY_COMPARE(socketConnectedSpy.count(), 1); + QTRY_COMPARE(socketConnectedSpy.size(), 1); QCOMPARE(socket.state(), QAbstractSocket::ConnectedState); - QCOMPARE(serverConnectionSpy.count(), 1); - QCOMPARE(serverPskRequiredSpy.count(), 1); - QCOMPARE(socketPskRequiredSpy.count(), 1); + QCOMPARE(serverConnectionSpy.size(), 1); + QCOMPARE(serverPskRequiredSpy.size(), 1); + QCOMPARE(socketPskRequiredSpy.size(), 1); - QCOMPARE(serverClosedSpy.count(), 0); + QCOMPARE(serverClosedSpy.size(), 0); server.close(); - QTRY_COMPARE(serverClosedSpy.count(), 1); - QCOMPARE(sslErrorsSpy.count(), 0); - QCOMPARE(serverErrorSpy.count(), 0); -#endif + QTRY_COMPARE(serverClosedSpy.size(), 1); + QCOMPARE(sslErrorsSpy.size(), 0); + QCOMPARE(serverErrorSpy.size(), 0); } void tst_QWebSocketServer::tst_maxPendingConnections() @@ -510,21 +525,21 @@ void tst_QWebSocketServer::tst_maxPendingConnections() socket1.open(server.serverUrl().toString()); - QTRY_COMPARE(socket1ConnectedSpy.count(), 1); + QTRY_COMPARE(socket1ConnectedSpy.size(), 1); QCOMPARE(socket1.state(), QAbstractSocket::ConnectedState); - QCOMPARE(serverConnectionSpy.count(), 1); - QCOMPARE(corsAuthenticationSpy.count(), 1); + QCOMPARE(serverConnectionSpy.size(), 1); + QCOMPARE(corsAuthenticationSpy.size(), 1); socket2.open(server.serverUrl().toString()); - QTRY_COMPARE(socket2ConnectedSpy.count(), 1); + QTRY_COMPARE(socket2ConnectedSpy.size(), 1); QCOMPARE(socket2.state(), QAbstractSocket::ConnectedState); - QCOMPARE(serverConnectionSpy.count(), 2); - QCOMPARE(corsAuthenticationSpy.count(), 2); + QCOMPARE(serverConnectionSpy.size(), 2); + QCOMPARE(corsAuthenticationSpy.size(), 2); socket3.open(server.serverUrl().toString()); QVERIFY(!socket3ConnectedSpy.wait(250)); - QCOMPARE(socket3ConnectedSpy.count(), 0); + QCOMPARE(socket3ConnectedSpy.size(), 0); QCOMPARE(socket3.state(), QAbstractSocket::UnconnectedState); - QCOMPARE(serverConnectionSpy.count(), 2); - QCOMPARE(corsAuthenticationSpy.count(), 2); + QCOMPARE(serverConnectionSpy.size(), 2); + QCOMPARE(corsAuthenticationSpy.size(), 2); QVERIFY(server.hasPendingConnections()); QWebSocket *pSocket = server.nextPendingConnection(); @@ -539,20 +554,20 @@ void tst_QWebSocketServer::tst_maxPendingConnections() //will resolve in another commit #ifndef Q_OS_WIN - QCOMPARE(serverErrorSpy.count(), 1); + QCOMPARE(serverErrorSpy.size(), 1); QCOMPARE(serverErrorSpy.at(0).at(0).value<QWebSocketProtocol::CloseCode>(), QWebSocketProtocol::CloseCodeAbnormalDisconnection); #endif - QCOMPARE(serverClosedSpy.count(), 0); + QCOMPARE(serverClosedSpy.size(), 0); server.close(); - QTRY_COMPARE(serverClosedSpy.count(), 1); + QTRY_COMPARE(serverClosedSpy.size(), 1); #ifndef QT_NO_SSL - QCOMPARE(peerVerifyErrorSpy.count(), 0); - QCOMPARE(sslErrorsSpy.count(), 0); + QCOMPARE(peerVerifyErrorSpy.size(), 0); + QCOMPARE(sslErrorsSpy.size(), 0); #endif - QCOMPARE(serverAcceptErrorSpy.count(), 0); + QCOMPARE(serverAcceptErrorSpy.size(), 0); } void tst_QWebSocketServer::tst_serverDestroyedWhileSocketConnected() @@ -577,16 +592,16 @@ void tst_QWebSocketServer::tst_serverDestroyedWhileSocketConnected() socket.open(server->serverUrl().toString()); - QTRY_COMPARE(socketConnectedSpy.count(), 1); + QTRY_COMPARE(socketConnectedSpy.size(), 1); QCOMPARE(socket.state(), QAbstractSocket::ConnectedState); - QCOMPARE(serverConnectionSpy.count(), 1); - QCOMPARE(corsAuthenticationSpy.count(), 1); + QCOMPARE(serverConnectionSpy.size(), 1); + QCOMPARE(corsAuthenticationSpy.size(), 1); - QCOMPARE(serverClosedSpy.count(), 0); + QCOMPARE(serverClosedSpy.size(), 0); delete server; - QTRY_COMPARE(socketDisconnectedSpy.count(), 1); + QTRY_COMPARE(socketDisconnectedSpy.size(), 1); } #ifndef QT_NO_SSL @@ -621,7 +636,7 @@ void tst_QWebSocketServer::tst_scheme() QWebSocket plainSocket; plainSocket.open(plainServer.serverUrl().toString()); - QTRY_COMPARE(plainServerConnectionSpy.count(), 1); + QTRY_COMPARE(plainServerConnectionSpy.size(), 1); QScopedPointer<QWebSocket> plainServerSocket(plainServer.nextPendingConnection()); QVERIFY(!plainServerSocket.isNull()); QCOMPARE(plainServerSocket->requestUrl().scheme(), QStringLiteral("ws")); @@ -645,7 +660,7 @@ void tst_QWebSocketServer::tst_scheme() }); secureSocket.open(secureServer.serverUrl().toString()); - QTRY_COMPARE(secureServerConnectionSpy.count(), 1); + QTRY_COMPARE(secureServerConnectionSpy.size(), 1); QScopedPointer<QWebSocket> secureServerSocket(secureServer.nextPendingConnection()); QVERIFY(!secureServerSocket.isNull()); QCOMPARE(secureServerSocket->requestUrl().scheme(), QStringLiteral("wss")); @@ -669,9 +684,9 @@ void tst_QWebSocketServer::tst_handleConnection() QWebSocket webSocket; QSignalSpy wsConnectedSpy(&webSocket, &QWebSocket::connected); webSocket.open(QStringLiteral("ws://localhost:%1").arg(tcpServer.serverPort())); - QTRY_COMPARE(wsConnectedSpy.count(), 1); + QTRY_COMPARE(wsConnectedSpy.size(), 1); - QTRY_COMPARE(wsServerConnectionSpy.count(), 1); + QTRY_COMPARE(wsServerConnectionSpy.size(), 1); QScopedPointer<QWebSocket> webServerSocket(wsServer.nextPendingConnection()); QVERIFY(!webServerSocket.isNull()); @@ -679,7 +694,7 @@ void tst_QWebSocketServer::tst_handleConnection() QSignalSpy wsMessageReceivedSpy(webServerSocket.data(), &QWebSocket::textMessageReceived); webSocket.sendTextMessage("dummy"); - QTRY_COMPARE(wsMessageReceivedSpy.count(), 1); + QTRY_COMPARE(wsMessageReceivedSpy.size(), 1); QList<QVariant> arguments = wsMessageReceivedSpy.takeFirst(); QCOMPARE(arguments.first().toString(), QString("dummy")); @@ -687,7 +702,7 @@ void tst_QWebSocketServer::tst_handleConnection() webServerSocket->sendTextMessage("hello"); QVERIFY(webServerSocket->bytesToWrite() > 5); // 5 + a few extra bytes for header QTRY_COMPARE(webServerSocket->bytesToWrite(), 0); - QTRY_COMPARE(clientMessageReceivedSpy.count(), 1); + QTRY_COMPARE(clientMessageReceivedSpy.size(), 1); arguments = clientMessageReceivedSpy.takeFirst(); QCOMPARE(arguments.first().toString(), QString("hello")); } @@ -717,7 +732,7 @@ static void openManyConnections(QList<SocketSpy *> *sockets, quint16 port, int n static int sumSocketSpyCount(const QList<SocketSpy *> &sockets) { return std::accumulate(sockets.cbegin(), sockets.cend(), 0, [](int c, SocketSpy *s) { - return c + s->disconnectSpy->count(); + return c + s->disconnectSpy->size(); }); } @@ -733,7 +748,7 @@ void tst_QWebSocketServer::tst_handshakeTimeout() QWebSocket socket; socket.open(plainServer.serverUrl().toString()); - QTRY_COMPARE(plainServerConnectionSpy.count(), 1); + QTRY_COMPARE(plainServerConnectionSpy.size(), 1); QScopedPointer<QWebSocket> plainServerSocket(plainServer.nextPendingConnection()); QVERIFY(!plainServerSocket.isNull()); @@ -758,14 +773,14 @@ void tst_QWebSocketServer::tst_handshakeTimeout() QCoreApplication::processEvents(); /* We have 50 plain TCP connections open, that are not proper websockets. */ - QCOMPARE(plainServerConnectionSpy.count(), 0); + QCOMPARE(plainServerConnectionSpy.size(), 0); QWebSocket socket; socket.open(plainServer.serverUrl().toString()); /* Check that a real websocket will be processed after some non-websocket * TCP connections timeout. */ - QTRY_COMPARE(plainServerConnectionSpy.count(), 1); + QTRY_COMPARE(plainServerConnectionSpy.size(), 1); QScopedPointer<QWebSocket> plainServerSocket(plainServer.nextPendingConnection()); QVERIFY(!plainServerSocket.isNull()); @@ -793,10 +808,10 @@ void tst_QWebSocketServer::tst_handshakeTimeout() openManyConnections(&sockets, secureServer.serverPort(), numConnections); QCoreApplication::processEvents(); - QCOMPARE(secureServerConnectionSpy.count(), 0); + QCOMPARE(secureServerConnectionSpy.size(), 0); QWebSocket secureSocket; - connect(&secureSocket, QOverload<QAbstractSocket::SocketError>::of(&QWebSocket::error), + connect(&secureSocket, &QWebSocket::errorOccurred, [](QAbstractSocket::SocketError error) { // This shouldn't print but it's useful for debugging when/if it does. qDebug() << "Error occurred in the client:" << error; @@ -807,7 +822,7 @@ void tst_QWebSocketServer::tst_handshakeTimeout() secureSocket.open(secureServer.serverUrl().toString()); - QTRY_COMPARE(secureServerConnectionSpy.count(), 1); + QTRY_COMPARE(secureServerConnectionSpy.size(), 1); QScopedPointer<QWebSocket> serverSocket(secureServer.nextPendingConnection()); QVERIFY(!serverSocket.isNull()); @@ -829,14 +844,14 @@ void tst_QWebSocketServer::tst_handshakeTimeout() QSignalSpy socketDisconnectedSpy(&socket, &QWebSocket::disconnected); socket.open(plainServer.serverUrl().toString()); - QTRY_COMPARE(plainServerConnectionSpy.count(), 1); - QTRY_COMPARE(socketConnectedSpy.count(), 1); + QTRY_COMPARE(plainServerConnectionSpy.size(), 1); + QTRY_COMPARE(socketConnectedSpy.size(), 1); QEventLoop loop; QTimer::singleShot(500, &loop, &QEventLoop::quit); loop.exec(); - QCOMPARE(socketDisconnectedSpy.count(), 0); + QCOMPARE(socketDisconnectedSpy.size(), 0); } } @@ -864,7 +879,7 @@ void tst_QWebSocketServer::multipleFrames() QVERIFY(messageReceivedSpy.wait()); // Since there's no guarantee the operating system will fit all 10 websocket frames into 1 tcp // frame, let's just assume it will do at least 2. EXCEPT_FAIL any which doesn't merge any. - QVERIFY2(messageReceivedSpy.count() > 1, "Received only 1 message in the TCP frame!"); + QVERIFY2(messageReceivedSpy.size() > 1, "Received only 1 message in the TCP frame!"); } QTEST_MAIN(tst_QWebSocketServer) |