diff options
author | Kurt Pattyn <pattyn.kurt@gmail.com> | 2013-09-01 19:33:44 +0200 |
---|---|---|
committer | Kurt Pattyn <pattyn.kurt@gmail.com> | 2013-09-01 19:33:44 +0200 |
commit | 622bbc623efe26dbd7bd00fafc5deb7b8e1a6142 (patch) | |
tree | a67a9905d7bd481da57bb56f6fe8ba87ed67728f /tests | |
parent | 4fa4c3af00c44e6a7f09fdad56811a277601d0bf (diff) | |
download | qtwebsockets-622bbc623efe26dbd7bd00fafc5deb7b8e1a6142.tar.gz |
Corrected failing tests
Diffstat (limited to 'tests')
-rw-r--r-- | tests/tst_dataprocessor.cpp | 99 |
1 files changed, 68 insertions, 31 deletions
diff --git a/tests/tst_dataprocessor.cpp b/tests/tst_dataprocessor.cpp index b183d3b..f7d9e18 100644 --- a/tests/tst_dataprocessor.cpp +++ b/tests/tst_dataprocessor.cpp @@ -17,6 +17,7 @@ Q_DECLARE_METATYPE(QWebSocketProtocol::OpCode) //TODO: test for valid opcodes //DONE: test for valid close codes //TODO: test close frame with no close code and reason +//TODO: test if opcode is correct after processing of a continuation frame (text and binary frames) //TODO: test valid frame sequences @@ -678,6 +679,7 @@ void tst_DataProcessor::doCloseFrameTest() QBuffer buffer; DataProcessor dataProcessor; QSignalSpy spy(&dataProcessor, SIGNAL(closeReceived(QWebSocketProtocol::CloseCode,QString))); + QSignalSpy errorSpy(&dataProcessor, SIGNAL(errorEncountered(QWebSocketProtocol::CloseCode,QString))); QSignalSpy textMessageSpy(&dataProcessor, SIGNAL(textMessageReceived(QString))); QSignalSpy binaryMessageSpy(&dataProcessor, SIGNAL(binaryMessageReceived(QByteArray))); QSignalSpy textFrameSpy(&dataProcessor, SIGNAL(textFrameReceived(QString, bool))); @@ -686,9 +688,10 @@ void tst_DataProcessor::doCloseFrameTest() data.append(firstByte).append(secondByte); data.append(payload); buffer.setData(data); - buffer.open(QIODevice::ReadWrite); + buffer.open(QIODevice::ReadOnly); dataProcessor.process(&buffer); QCOMPARE(spy.count(), 1); + QCOMPARE(errorSpy.count(), 0); QCOMPARE(textMessageSpy.count(), 0); QCOMPARE(binaryMessageSpy.count(), 0); QCOMPARE(textFrameSpy.count(), 0); @@ -1190,84 +1193,118 @@ void tst_DataProcessor::invalidCloseFrame_data() QTest::newRow("Close control frame with payload size 1") << quint8(FIN | QWebSocketProtocol::OC_CLOSE) << quint8(1) << QByteArray(1, 'a') << false << QWebSocketProtocol::CC_PROTOCOL_ERROR; + quint16 swapped = qToBigEndian<quint16>(QWebSocketProtocol::CC_ABNORMAL_DISCONNECTION); + const char *wireRepresentation = static_cast<const char *>(static_cast<const void *>(&swapped)); QTest::newRow("Close control frame close code ABNORMAL DISCONNECTION") << quint8(FIN | QWebSocketProtocol::OC_CLOSE) << quint8(2) << - QByteArray() << + QByteArray(wireRepresentation, 2) << false << - QWebSocketProtocol::CC_ABNORMAL_DISCONNECTION; + QWebSocketProtocol::CC_PROTOCOL_ERROR; + swapped = qToBigEndian<quint16>(QWebSocketProtocol::CC_MISSING_STATUS_CODE); + wireRepresentation = static_cast<const char *>(static_cast<const void *>(&swapped)); QTest::newRow("Close control frame close code MISSING STATUS CODE") << quint8(FIN | QWebSocketProtocol::OC_CLOSE) << quint8(2) << - QByteArray() << + QByteArray(wireRepresentation, 2) << false << - QWebSocketProtocol::CC_MISSING_STATUS_CODE; + QWebSocketProtocol::CC_PROTOCOL_ERROR; + swapped = qToBigEndian<quint16>(1004); + wireRepresentation = static_cast<const char *>(static_cast<const void *>(&swapped)); QTest::newRow("Close control frame close code 1004") << quint8(FIN | QWebSocketProtocol::OC_CLOSE) << quint8(2) << - QByteArray() << + QByteArray(wireRepresentation, 2) << false << - QWebSocketProtocol::CC_RESERVED_1004; + QWebSocketProtocol::CC_PROTOCOL_ERROR; + swapped = qToBigEndian<quint16>(QWebSocketProtocol::CC_TLS_HANDSHAKE_FAILED); + wireRepresentation = static_cast<const char *>(static_cast<const void *>(&swapped)); QTest::newRow("Close control frame close code TLS HANDSHAKE FAILED") << quint8(FIN | QWebSocketProtocol::OC_CLOSE) << quint8(2) << - QByteArray() << + QByteArray(wireRepresentation, 2) << false << - QWebSocketProtocol::CC_TLS_HANDSHAKE_FAILED; + QWebSocketProtocol::CC_PROTOCOL_ERROR; + swapped = qToBigEndian<quint16>(0); + wireRepresentation = static_cast<const char *>(static_cast<const void *>(&swapped)); QTest::newRow("Close control frame close code 0") << quint8(FIN | QWebSocketProtocol::OC_CLOSE) << quint8(2) << - QByteArray() << + QByteArray(wireRepresentation, 2) << false << - QWebSocketProtocol::CloseCode(0); + QWebSocketProtocol::CC_PROTOCOL_ERROR; + swapped = qToBigEndian<quint16>(999); + wireRepresentation = static_cast<const char *>(static_cast<const void *>(&swapped)); QTest::newRow("Close control frame close code 999") << quint8(FIN | QWebSocketProtocol::OC_CLOSE) << quint8(2) << - QByteArray() << + QByteArray(wireRepresentation, 2) << false << - QWebSocketProtocol::CloseCode(999); + QWebSocketProtocol::CC_PROTOCOL_ERROR; + swapped = qToBigEndian<quint16>(1012); + wireRepresentation = static_cast<const char *>(static_cast<const void *>(&swapped)); QTest::newRow("Close control frame close code 1012") << quint8(FIN | QWebSocketProtocol::OC_CLOSE) << quint8(2) << - QByteArray() << + QByteArray(wireRepresentation, 2) << false << - QWebSocketProtocol::CloseCode(1012); + QWebSocketProtocol::CC_PROTOCOL_ERROR; + swapped = qToBigEndian<quint16>(1013); + wireRepresentation = static_cast<const char *>(static_cast<const void *>(&swapped)); QTest::newRow("Close control frame close code 1013") << quint8(FIN | QWebSocketProtocol::OC_CLOSE) << quint8(2) << - QByteArray() << - false << - QWebSocketProtocol::CloseCode(1013); - QTest::newRow("Close control frame close code 1014") - << quint8(FIN | QWebSocketProtocol::OC_CLOSE) << - quint8(2) << - QByteArray() << + QByteArray(wireRepresentation, 2) << false << - QWebSocketProtocol::CloseCode(1014); + QWebSocketProtocol::CC_PROTOCOL_ERROR; + swapped = qToBigEndian<quint16>(1014); + wireRepresentation = static_cast<const char *>(static_cast<const void *>(&swapped)); QTest::newRow("Close control frame close code 1014") << quint8(FIN | QWebSocketProtocol::OC_CLOSE) << quint8(2) << - QByteArray() << + QByteArray(wireRepresentation, 2) << false << - QWebSocketProtocol::CloseCode(1016); + QWebSocketProtocol::CC_PROTOCOL_ERROR; + swapped = qToBigEndian<quint16>(1100); + wireRepresentation = static_cast<const char *>(static_cast<const void *>(&swapped)); QTest::newRow("Close control frame close code 1100") << quint8(FIN | QWebSocketProtocol::OC_CLOSE) << quint8(2) << - QByteArray() << + QByteArray(wireRepresentation, 2) << false << - QWebSocketProtocol::CloseCode(1100); + QWebSocketProtocol::CC_PROTOCOL_ERROR; + swapped = qToBigEndian<quint16>(2000); + wireRepresentation = static_cast<const char *>(static_cast<const void *>(&swapped)); QTest::newRow("Close control frame close code 2000") << quint8(FIN | QWebSocketProtocol::OC_CLOSE) << quint8(2) << - QByteArray() << + QByteArray(wireRepresentation, 2) << false << - QWebSocketProtocol::CloseCode(2000); + QWebSocketProtocol::CC_PROTOCOL_ERROR; + swapped = qToBigEndian<quint16>(2999); + wireRepresentation = static_cast<const char *>(static_cast<const void *>(&swapped)); QTest::newRow("Close control frame close code 2999") << quint8(FIN | QWebSocketProtocol::OC_CLOSE) << quint8(2) << - QByteArray() << + QByteArray(wireRepresentation, 2) << + false << + QWebSocketProtocol::CC_PROTOCOL_ERROR; + swapped = qToBigEndian<quint16>(5000); + wireRepresentation = static_cast<const char *>(static_cast<const void *>(&swapped)); + QTest::newRow("Close control frame close code 5000") + << quint8(FIN | QWebSocketProtocol::OC_CLOSE) << + quint8(2) << + QByteArray(wireRepresentation, 2) << + false << + QWebSocketProtocol::CC_PROTOCOL_ERROR; + swapped = qToBigEndian<quint16>(65535u); + wireRepresentation = static_cast<const char *>(static_cast<const void *>(&swapped)); + QTest::newRow("Close control frame close code 65535") + << quint8(FIN | QWebSocketProtocol::OC_CLOSE) << + quint8(2) << + QByteArray(wireRepresentation, 2) << false << - QWebSocketProtocol::CloseCode(2999); + QWebSocketProtocol::CC_PROTOCOL_ERROR; } void tst_DataProcessor::incompleteSizeField_data() |