Move versionFromString() from public to private API
authorKurt Pattyn <pattyn.kurt@gmail.com>
Sun, 26 Jan 2014 00:44:46 +0000 (01:44 +0100)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Sat, 1 Feb 2014 16:01:19 +0000 (17:01 +0100)
This method is only necessary for processing of handshakes and hence
is not needed in the public API.

Change-Id: I6bb2327337600523a136fb394275c31b9819f631
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
src/websockets/qwebsockethandshakerequest.cpp
src/websockets/qwebsocketprotocol.h
src/websockets/qwebsocketprotocol_p.h
tests/auto/websocketprotocol/tst_websocketprotocol.cpp

index c47dfd0..5d6e827 100644 (file)
@@ -41,6 +41,7 @@
 
 #include "qwebsockethandshakerequest_p.h"
 #include "qwebsocketprotocol.h"
+#include "qwebsocketprotocol_p.h"
 
 #include <QtCore/QString>
 #include <QtCore/QMap>
index 1affc76..a7cb1ff 100644 (file)
@@ -65,8 +65,6 @@ enum Version
     VersionLatest = Version13
 };
 
-Version versionFromString(const QString &versionString);
-
 enum CloseCode
 {
     CloseCodeNormal                 = 1000,
index 4ce51b5..8850c4d 100644 (file)
@@ -87,6 +87,7 @@ inline bool isCloseCodeValid(int closeCode)
 }
 
 inline Version currentVersion() { return VersionLatest; }
+Version versionFromString(const QString &versionString);
 
 void Q_AUTOTEST_EXPORT mask(QByteArray *payload, quint32 maskingKey);
 void Q_AUTOTEST_EXPORT mask(char *payload, quint64 size, quint32 maskingKey);
index eea434b..b8948d5 100644 (file)
@@ -44,7 +44,7 @@
 
 #include <QDebug>
 
-#include "qwebsocketprotocol.h"
+#include "QtWebSockets/qwebsocketprotocol.h"
 #include "private/qwebsocketprotocol_p.h"
 
 QT_USE_NAMESPACE
@@ -73,6 +73,9 @@ private Q_SLOTS:
 
     void tst_closeCodes_data();
     void tst_closeCodes();
+
+    void tst_versionFromString_data();
+    void tst_versionFromString();
 };
 
 tst_WebSocketProtocol::tst_WebSocketProtocol()
@@ -215,6 +218,78 @@ void tst_WebSocketProtocol::tst_closeCodes()
     QCOMPARE(result, isValid);
 }
 
+void tst_WebSocketProtocol::tst_versionFromString_data()
+{
+    QTest::addColumn<QWebSocketProtocol::Version>("version");
+    QTest::addColumn<QString>("versionString");
+
+    //happy flow; good data
+    QTest::newRow("Version 0")
+            << QWebSocketProtocol::Version0
+            << QStringLiteral("0");
+    QTest::newRow("Version 4")
+            << QWebSocketProtocol::Version4
+            << QStringLiteral("4");
+    QTest::newRow("Version 5")
+            << QWebSocketProtocol::Version5
+            << QStringLiteral("5");
+    QTest::newRow("Version 6")
+            << QWebSocketProtocol::Version6
+            << QStringLiteral("6");
+    QTest::newRow("Version 7")
+            << QWebSocketProtocol::Version7
+            << QStringLiteral("7");
+    QTest::newRow("Version 8")
+            << QWebSocketProtocol::Version8
+            << QStringLiteral("8");
+    QTest::newRow("Version 13")
+            << QWebSocketProtocol::Version13
+            << QStringLiteral("13");
+
+    //rainy flow; invalid data
+    QTest::newRow("Version -1")
+            << QWebSocketProtocol::VersionUnknown
+            << QStringLiteral("-1");
+    QTest::newRow("Version 1")
+            << QWebSocketProtocol::VersionUnknown
+            << QStringLiteral("1");
+    QTest::newRow("Version 2")
+            << QWebSocketProtocol::VersionUnknown
+            << QStringLiteral("2");
+    QTest::newRow("Version 3")
+            << QWebSocketProtocol::VersionUnknown
+            << QStringLiteral("3");
+    QTest::newRow("Version 9")
+            << QWebSocketProtocol::VersionUnknown
+            << QStringLiteral("9");
+    QTest::newRow("Version 10")
+            << QWebSocketProtocol::VersionUnknown
+            << QStringLiteral("10");
+    QTest::newRow("Version 11")
+            << QWebSocketProtocol::VersionUnknown
+            << QStringLiteral("11");
+    QTest::newRow("Version 12")
+            << QWebSocketProtocol::VersionUnknown
+            << QStringLiteral("12");
+    QTest::newRow("Version abcd")
+            << QWebSocketProtocol::VersionUnknown
+            << QStringLiteral("abcd");
+    QTest::newRow("Version 1.6")
+            << QWebSocketProtocol::VersionUnknown
+            << QStringLiteral("1.6");
+    QTest::newRow("Version empty")
+            << QWebSocketProtocol::VersionUnknown
+            << QString();
+}
+
+void tst_WebSocketProtocol::tst_versionFromString()
+{
+    QFETCH(QWebSocketProtocol::Version, version);
+    QFETCH(QString, versionString);
+
+    QCOMPARE(QWebSocketProtocol::versionFromString(versionString), version);
+}
+
 QTEST_MAIN(tst_WebSocketProtocol)
 
 #include "tst_websocketprotocol.moc"