diff options
author | Kurt Pattyn <pattyn.kurt@gmail.com> | 2014-03-09 11:05:36 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-03-12 10:55:46 +0100 |
commit | 89dcdaeedf0e42e99ccc1d44183e1fbaccc40bb1 (patch) | |
tree | 895ce5057491ca4443ac7f63df2ff4eb78e052ff /tests/auto/qwebsocket | |
parent | 8cda01eb77b9f52ad8f5d58e65d7cd76d8e20154 (diff) | |
download | qtwebsockets-89dcdaeedf0e42e99ccc1d44183e1fbaccc40bb1.tar.gz |
Return correct error string for known socket errors
Task-number: QTBUG-37228
Change-Id: I246b858694ea456bce9a0fc4ac963a83502fd058
Reviewed-by: Kurt Pattyn <pattyn.kurt@gmail.com>
Diffstat (limited to 'tests/auto/qwebsocket')
-rw-r--r-- | tests/auto/qwebsocket/tst_qwebsocket.cpp | 42 |
1 files changed, 36 insertions, 6 deletions
diff --git a/tests/auto/qwebsocket/tst_qwebsocket.cpp b/tests/auto/qwebsocket/tst_qwebsocket.cpp index f7f57b7..d2c5055 100644 --- a/tests/auto/qwebsocket/tst_qwebsocket.cpp +++ b/tests/auto/qwebsocket/tst_qwebsocket.cpp @@ -146,6 +146,7 @@ private Q_SLOTS: void tst_invalidOrigin(); void tst_sendTextMessage(); void tst_sendBinaryMessage(); + void tst_errorString(); }; tst_QWebSocket::tst_QWebSocket() @@ -202,8 +203,7 @@ void tst_QWebSocket::tst_initialisation() QCOMPARE(socket->origin(), expectedOrigin); QCOMPARE(socket->version(), expectedVersion); QCOMPARE(socket->error(), QAbstractSocket::UnknownSocketError); - //error string defaults to "Unknown error" (localised) - QVERIFY(!socket->errorString().isEmpty()); + QVERIFY(socket->errorString().isEmpty()); QVERIFY(!socket->isValid()); QVERIFY(socket->localAddress().isNull()); QCOMPARE(socket->localPort(), quint16(0)); @@ -298,7 +298,7 @@ void tst_QWebSocket::tst_invalidOpen() //at this point the socket is in a connecting state //so, there should no error at this point QCOMPARE(socket.error(), QAbstractSocket::UnknownSocketError); - QVERIFY(!socket.errorString().isEmpty()); + //QVERIFY(socket.errorString().isEmpty()); QVERIFY(!socket.isValid()); QVERIFY(socket.localAddress().isNull()); QCOMPARE(socket.localPort(), quint16(0)); @@ -407,11 +407,15 @@ void tst_QWebSocket::tst_invalidOrigin() void tst_QWebSocket::tst_sendTextMessage() { - //will resolve in another commit + //TODO: will resolve in another commit #ifndef Q_OS_WIN EchoServer echoServer; QWebSocket socket; + + //should return 0 because socket is not open yet + QCOMPARE(socket.sendTextMessage(QStringLiteral("1234")), 0); + QSignalSpy socketConnectedSpy(&socket, SIGNAL(connected())); QSignalSpy textMessageReceived(&socket, SIGNAL(textMessageReceived(QString))); QSignalSpy textFrameReceived(&socket, SIGNAL(textFrameReceived(QString,bool))); @@ -477,11 +481,15 @@ void tst_QWebSocket::tst_sendTextMessage() void tst_QWebSocket::tst_sendBinaryMessage() { - //will resolve in another commit + //TODO: will resolve in another commit #ifndef Q_OS_WIN EchoServer echoServer; QWebSocket socket; + + //should return 0 because socket is not open yet + QCOMPARE(socket.sendBinaryMessage(QByteArrayLiteral("1234")), 0); + QSignalSpy socketConnectedSpy(&socket, SIGNAL(connected())); QSignalSpy textMessageReceived(&socket, SIGNAL(textMessageReceived(QString))); QSignalSpy textFrameReceived(&socket, SIGNAL(textFrameReceived(QString,bool))); @@ -514,7 +522,7 @@ void tst_QWebSocket::tst_sendBinaryMessage() socket.close(); - //QTBUG-36762: QWebSocket emits multiplied signals when socket was reopened + //QTBUG-36762: QWebSocket emits multiple signals when socket is reopened socketConnectedSpy.clear(); binaryMessageReceived.clear(); binaryFrameReceived.clear(); @@ -545,6 +553,28 @@ void tst_QWebSocket::tst_sendBinaryMessage() #endif } +void tst_QWebSocket::tst_errorString() +{ + //Check for QTBUG-37228: QWebSocket returns "Unknown Error" for known errors + QWebSocket socket; + + //check that the default error string is empty + QVERIFY(socket.errorString().isEmpty()); + + QSignalSpy errorSpy(&socket, SIGNAL(error(QAbstractSocket::SocketError))); + + socket.open(QUrl(QStringLiteral("ws://someserver.on.mars:9999"))); + + if (errorSpy.count() == 0) + errorSpy.wait(); + QCOMPARE(errorSpy.count(), 1); + QList<QVariant> arguments = errorSpy.takeFirst(); + QAbstractSocket::SocketError socketError = + qvariant_cast<QAbstractSocket::SocketError>(arguments.at(0)); + QCOMPARE(socketError, QAbstractSocket::HostNotFoundError); + QCOMPARE(socket.errorString(), QStringLiteral("Host not found")); +} + QTEST_MAIN(tst_QWebSocket) #include "tst_qwebsocket.moc" |