summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKurt Pattyn <pattyn.kurt@gmail.com>2014-03-09 11:05:36 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-03-12 10:55:46 +0100
commit89dcdaeedf0e42e99ccc1d44183e1fbaccc40bb1 (patch)
tree895ce5057491ca4443ac7f63df2ff4eb78e052ff
parent8cda01eb77b9f52ad8f5d58e65d7cd76d8e20154 (diff)
downloadqtwebsockets-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>
-rw-r--r--src/websockets/qwebsocket_p.cpp2
-rw-r--r--tests/auto/qwebsocket/tst_qwebsocket.cpp42
2 files changed, 37 insertions, 7 deletions
diff --git a/src/websockets/qwebsocket_p.cpp b/src/websockets/qwebsocket_p.cpp
index be589db..c51ba38 100644
--- a/src/websockets/qwebsocket_p.cpp
+++ b/src/websockets/qwebsocket_p.cpp
@@ -92,7 +92,7 @@ QWebSocketPrivate::QWebSocketPrivate(const QString &origin, QWebSocketProtocol::
QObjectPrivate(),
q_ptr(pWebSocket),
m_pSocket(),
- m_errorString(QWebSocket::tr("Unknown error")),
+ m_errorString(),
m_version(version),
m_resourceName(),
m_requestUrl(),
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"