QWebSocket should remember close code and reason upstream v5.4.1
authorFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>
Tue, 2 Dec 2014 12:15:54 +0000 (13:15 +0100)
committerFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>
Mon, 29 Dec 2014 15:49:54 +0000 (16:49 +0100)
Task-number: QTBUG-42982
Change-Id: I50dbff96d7d64a5213e6ea6ba7bb9429b21b1fb2
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
src/websockets/qwebsocket_p.cpp
tests/auto/qwebsocket/tst_qwebsocket.cpp

index f483e12..45913e5 100644 (file)
@@ -300,6 +300,8 @@ void QWebSocketPrivate::close(QWebSocketProtocol::CloseCode closeCode, QString r
         return;
     if (!m_isClosingHandshakeSent) {
         Q_Q(QWebSocket);
+        m_closeCode = closeCode;
+        m_closeReason = reason;
         const quint16 code = qToBigEndian<quint16>(closeCode);
         QByteArray payload;
         payload.append(static_cast<const char *>(static_cast<const void *>(&code)), 2);
index 0d1a46d..0e04ce1 100644 (file)
@@ -471,6 +471,11 @@ void tst_QWebSocket::tst_sendTextMessage()
     isLastFrame = arguments.at(1).toBool();
     QCOMPARE(frameReceived, QStringLiteral("Hello world!"));
     QVERIFY(isLastFrame);
+
+    QString reason = QStringLiteral("going away");
+    socket.close(QWebSocketProtocol::CloseCodeGoingAway, reason);
+    QCOMPARE(socket.closeCode(), QWebSocketProtocol::CloseCodeGoingAway);
+    QCOMPARE(socket.closeReason(), reason);
 #endif
 }