summaryrefslogtreecommitdiff
path: root/tests/auto
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/websockets/dataprocessor/tst_dataprocessor.cpp2
-rw-r--r--tests/auto/websockets/qwebsocket/tst_qwebsocket.cpp46
-rw-r--r--tests/auto/websockets/websocketframe/tst_websocketframe.cpp32
3 files changed, 51 insertions, 29 deletions
diff --git a/tests/auto/websockets/dataprocessor/tst_dataprocessor.cpp b/tests/auto/websockets/dataprocessor/tst_dataprocessor.cpp
index 660d8eb..c1dd9a1 100644
--- a/tests/auto/websockets/dataprocessor/tst_dataprocessor.cpp
+++ b/tests/auto/websockets/dataprocessor/tst_dataprocessor.cpp
@@ -329,7 +329,7 @@ void tst_DataProcessor::goodTextFrame_data()
//error C2308: concatenating mismatched strings
QTest::newRow((QStringLiteral("Text frame containing Hello-") +
QStringLiteral("\xC2\xB5\x40\xC3\x9F\xC3\xB6\xC3\xA4\xC3\xBC\xC3\xA0") +
- QStringLiteral("\xC3\xA1-UTF-8!!")).toLatin1().constData())
+ QStringLiteral("\xC3\xA1-UTF-8!!")).toUtf8().constData())
<< QByteArray::fromHex("48656c6c6f2dc2b540c39fc3b6c3a4c3bcc3a0c3a12d5554462d382121")
<< 22;
}
diff --git a/tests/auto/websockets/qwebsocket/tst_qwebsocket.cpp b/tests/auto/websockets/qwebsocket/tst_qwebsocket.cpp
index 80bf19a..3ac47c4 100644
--- a/tests/auto/websockets/qwebsocket/tst_qwebsocket.cpp
+++ b/tests/auto/websockets/qwebsocket/tst_qwebsocket.cpp
@@ -52,6 +52,7 @@ public:
Q_SIGNALS:
void newConnection(QUrl requestUrl);
+ void newConnection(QNetworkRequest request);
private Q_SLOTS:
void onNewConnection();
@@ -87,6 +88,7 @@ void EchoServer::onNewConnection()
QWebSocket *pSocket = m_pWebSocketServer->nextPendingConnection();
Q_EMIT newConnection(pSocket->requestUrl());
+ Q_EMIT newConnection(pSocket->request());
connect(pSocket, SIGNAL(textMessageReceived(QString)), this, SLOT(processTextMessage(QString)));
connect(pSocket, SIGNAL(binaryMessageReceived(QByteArray)), this, SLOT(processBinaryMessage(QByteArray)));
@@ -140,6 +142,7 @@ private Q_SLOTS:
void tst_sendTextMessage();
void tst_sendBinaryMessage();
void tst_errorString();
+ void tst_openRequest();
void tst_moveToThread();
void tst_moveToThreadNoWarning();
#ifndef QT_NO_NETWORKPROXY
@@ -427,11 +430,9 @@ void tst_QWebSocket::tst_sendTextMessage()
socket.open(url);
- if (socketConnectedSpy.count() == 0)
- QVERIFY(socketConnectedSpy.wait(500));
+ QTRY_COMPARE(socketConnectedSpy.count(), 1);
QCOMPARE(socketError.count(), 0);
QCOMPARE(socket.state(), QAbstractSocket::ConnectedState);
- QCOMPARE(serverConnectedSpy.count(), 1);
QList<QVariant> arguments = serverConnectedSpy.takeFirst();
QUrl urlConnected = arguments.at(0).toUrl();
QCOMPARE(urlConnected, url);
@@ -463,8 +464,7 @@ void tst_QWebSocket::tst_sendTextMessage()
socket.open(QUrl(QStringLiteral("ws://") + echoServer.hostAddress().toString() +
QStringLiteral(":") + QString::number(echoServer.port())));
- if (socketConnectedSpy.count() == 0)
- QVERIFY(socketConnectedSpy.wait(500));
+ QTRY_COMPARE(socketConnectedSpy.count(), 1);
QCOMPARE(socket.state(), QAbstractSocket::ConnectedState);
socket.sendTextMessage(QStringLiteral("Hello world!"));
@@ -508,8 +508,7 @@ void tst_QWebSocket::tst_sendBinaryMessage()
socket.open(QUrl(QStringLiteral("ws://") + echoServer.hostAddress().toString() +
QStringLiteral(":") + QString::number(echoServer.port())));
- if (socketConnectedSpy.count() == 0)
- QVERIFY(socketConnectedSpy.wait(500));
+ QTRY_COMPARE(socketConnectedSpy.count(), 1);
QCOMPARE(socket.state(), QAbstractSocket::ConnectedState);
socket.sendBinaryMessage(QByteArrayLiteral("Hello world!"));
@@ -539,8 +538,7 @@ void tst_QWebSocket::tst_sendBinaryMessage()
socket.open(QUrl(QStringLiteral("ws://") + echoServer.hostAddress().toString() +
QStringLiteral(":") + QString::number(echoServer.port())));
- if (socketConnectedSpy.count() == 0)
- QVERIFY(socketConnectedSpy.wait(500));
+ QTRY_COMPARE(socketConnectedSpy.count(), 1);
QCOMPARE(socket.state(), QAbstractSocket::ConnectedState);
socket.sendBinaryMessage(QByteArrayLiteral("Hello world!"));
@@ -573,9 +571,7 @@ void tst_QWebSocket::tst_errorString()
socket.open(QUrl(QStringLiteral("ws://someserver.on.mars:9999")));
- if (errorSpy.count() == 0)
- errorSpy.wait(500);
- QCOMPARE(errorSpy.count(), 1);
+ QTRY_COMPARE(errorSpy.count(), 1);
QList<QVariant> arguments = errorSpy.takeFirst();
QAbstractSocket::SocketError socketError =
qvariant_cast<QAbstractSocket::SocketError>(arguments.at(0));
@@ -583,6 +579,32 @@ void tst_QWebSocket::tst_errorString()
QCOMPARE(socket.errorString(), QStringLiteral("Host not found"));
}
+void tst_QWebSocket::tst_openRequest()
+{
+ EchoServer echoServer;
+
+ QWebSocket socket;
+
+ QSignalSpy socketConnectedSpy(&socket, SIGNAL(connected()));
+ QSignalSpy serverRequestSpy(&echoServer, SIGNAL(newConnection(QNetworkRequest)));
+
+ QUrl url = QUrl(QStringLiteral("ws://") + echoServer.hostAddress().toString() +
+ QLatin1Char(':') + QString::number(echoServer.port()));
+ url.addQueryItem("queryitem", "with encoded characters");
+ QNetworkRequest req(url);
+ req.setRawHeader("X-Custom-Header", "A custom header");
+ socket.open(req);
+
+ QTRY_COMPARE(socketConnectedSpy.count(), 1);
+ QTRY_COMPARE(serverRequestSpy.count(), 1);
+ QCOMPARE(socket.state(), QAbstractSocket::ConnectedState);
+ QList<QVariant> arguments = serverRequestSpy.takeFirst();
+ QNetworkRequest requestConnected = arguments.at(0).value<QNetworkRequest>();
+ QCOMPARE(requestConnected.url(), req.url());
+ QCOMPARE(requestConnected.rawHeader("X-Custom-Header"), req.rawHeader("X-Custom-Header"));
+ socket.close();
+}
+
class WebSocket : public QWebSocket
{
Q_OBJECT
diff --git a/tests/auto/websockets/websocketframe/tst_websocketframe.cpp b/tests/auto/websockets/websocketframe/tst_websocketframe.cpp
index 5db82d5..ecfcf3b 100644
--- a/tests/auto/websockets/websocketframe/tst_websocketframe.cpp
+++ b/tests/auto/websockets/websocketframe/tst_websocketframe.cpp
@@ -244,9 +244,9 @@ void tst_WebSocketFrame::tst_copyConstructorAndAssignment()
void tst_WebSocketFrame::tst_goodFrames_data()
{
- QTest::addColumn<int>("rsv1");
- QTest::addColumn<int>("rsv2");
- QTest::addColumn<int>("rsv3");
+ QTest::addColumn<bool>("rsv1");
+ QTest::addColumn<bool>("rsv2");
+ QTest::addColumn<bool>("rsv3");
QTest::addColumn<quint32>("mask");
QTest::addColumn<QWebSocketProtocol::OpCode>("opCode");
QTest::addColumn<bool>("isFinal");
@@ -256,54 +256,54 @@ void tst_WebSocketFrame::tst_goodFrames_data()
QTest::addColumn<bool>("isContinuationFrame");
QTest::newRow("Non masked final text frame with small payload")
- << 0 << 0 << 0
+ << false << false << false
<< 0U << QWebSocketProtocol::OpCodeText
<< true << QStringLiteral("Hello world!").toUtf8()
<< false << true << false;
QTest::newRow("Non masked final binary frame with small payload")
- << 0 << 0 << 0
+ << false << false << false
<< 0U << QWebSocketProtocol::OpCodeBinary
<< true << QByteArrayLiteral("\x00\x01\x02\x03\x04")
<< false << true << false;
QTest::newRow("Non masked final text frame with no payload")
- << 0 << 0 << 0
+ << false << false << false
<< 0U << QWebSocketProtocol::OpCodeText
<< true << QByteArray()
<< false << true << false;
QTest::newRow("Non masked final binary frame with no payload")
- << 0 << 0 << 0
+ << false << false << false
<< 0U << QWebSocketProtocol::OpCodeBinary
<< true << QByteArray()
<< false << true << false;
QTest::newRow("Non masked final close frame with small payload")
- << 0 << 0 << 0
+ << false << false << false
<< 0U << QWebSocketProtocol::OpCodeClose
<< true << QStringLiteral("Hello world!").toUtf8()
<< true << false << false;
QTest::newRow("Non masked final close frame with no payload")
- << 0 << 0 << 0
+ << false << false << false
<< 0U << QWebSocketProtocol::OpCodeClose
<< true << QByteArray()
<< true << false << false;
QTest::newRow("Non masked final ping frame with small payload")
- << 0 << 0 << 0
+ << false << false << false
<< 0U << QWebSocketProtocol::OpCodePing
<< true << QStringLiteral("Hello world!").toUtf8()
<< true << false << false;
QTest::newRow("Non masked final pong frame with no payload")
- << 0 << 0 << 0
+ << false << false << false
<< 0U << QWebSocketProtocol::OpCodePong
<< true << QByteArray()
<< true << false << false;
QTest::newRow("Non masked final continuation frame with small payload")
- << 0 << 0 << 0
+ << false << false << false
<< 0U << QWebSocketProtocol::OpCodeContinue
<< true << QStringLiteral("Hello world!").toUtf8()
<< false << true << true;
QTest::newRow("Non masked non-final continuation frame with small payload")
- << 0 << 0 << 0
+ << false << false << false
<< 0U << QWebSocketProtocol::OpCodeContinue
<< false << QStringLiteral("Hello world!").toUtf8()
<< false << true << true;
@@ -311,9 +311,9 @@ void tst_WebSocketFrame::tst_goodFrames_data()
void tst_WebSocketFrame::tst_goodFrames()
{
- QFETCH(int, rsv1);
- QFETCH(int, rsv2);
- QFETCH(int, rsv3);
+ QFETCH(bool, rsv1);
+ QFETCH(bool, rsv2);
+ QFETCH(bool, rsv3);
QFETCH(quint32, mask);
QFETCH(QWebSocketProtocol::OpCode, opCode);
QFETCH(bool, isFinal);